@metricinsights/pp-dev 0.19.0 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/README.md +222 -250
  3. package/dist/CHANGELOG.md +148 -0
  4. package/dist/README.md +222 -250
  5. package/dist/cjs/cli.js +1 -1
  6. package/dist/cjs/cli.js.map +1 -1
  7. package/dist/cjs/helpers.js +1 -1
  8. package/dist/cjs/helpers.js.map +1 -1
  9. package/dist/cjs/index-MzGAxNTB.js +2 -0
  10. package/dist/cjs/index-MzGAxNTB.js.map +1 -0
  11. package/dist/cjs/index.js +1 -1
  12. package/dist/cjs/migrate-r2mXdGLZ.js +2 -0
  13. package/dist/cjs/migrate-r2mXdGLZ.js.map +1 -0
  14. package/dist/cjs/package.json +16 -16
  15. package/dist/cjs/plugin-34c8_AjI.js +2 -0
  16. package/dist/cjs/plugin-34c8_AjI.js.map +1 -0
  17. package/dist/cjs/plugin.js +1 -1
  18. package/dist/cjs/version-plugin-BOFuJ-Rp.js +2 -0
  19. package/dist/cjs/{version-plugin-DUKsGBsW.js.map → version-plugin-BOFuJ-Rp.js.map} +1 -1
  20. package/dist/client/client.css +1 -1
  21. package/dist/client/client.css.map +1 -1
  22. package/dist/client/client.js +30 -19
  23. package/dist/client/client.js.map +1 -1
  24. package/dist/client/index.html +33 -16
  25. package/dist/esm/cli.js +1 -1
  26. package/dist/esm/cli.js.map +1 -1
  27. package/dist/esm/helpers.js +1 -1
  28. package/dist/esm/helpers.js.map +1 -1
  29. package/dist/esm/index-C7dYPskY.js +2 -0
  30. package/dist/esm/index-C7dYPskY.js.map +1 -0
  31. package/dist/esm/index.js +1 -1
  32. package/dist/esm/migrate-BYuCtRbI.js +2 -0
  33. package/dist/esm/migrate-BYuCtRbI.js.map +1 -0
  34. package/dist/esm/package.json +16 -16
  35. package/dist/esm/plugin-Dvva-sxE.js +2 -0
  36. package/dist/esm/plugin-Dvva-sxE.js.map +1 -0
  37. package/dist/esm/plugin.js +1 -1
  38. package/dist/esm/version-plugin-vu8VWkws.js +2 -0
  39. package/dist/esm/{version-plugin-C7j2jDQX.js.map → version-plugin-vu8VWkws.js.map} +1 -1
  40. package/dist/types/index.d.ts +103 -139
  41. package/package.json +34 -28
  42. package/dist/cjs/index-Bb3yIW5d.js +0 -2
  43. package/dist/cjs/index-Bb3yIW5d.js.map +0 -1
  44. package/dist/cjs/plugin-CqahMAGe.js +0 -2
  45. package/dist/cjs/plugin-CqahMAGe.js.map +0 -1
  46. package/dist/cjs/version-plugin-DUKsGBsW.js +0 -2
  47. package/dist/esm/index-Cd-DmbPQ.js +0 -2
  48. package/dist/esm/index-Cd-DmbPQ.js.map +0 -1
  49. package/dist/esm/plugin-BeehFkJq.js +0 -2
  50. package/dist/esm/plugin-BeehFkJq.js.map +0 -1
  51. package/dist/esm/version-plugin-C7j2jDQX.js +0 -2
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("http-proxy-middleware"),t=require("url"),n=require("vite"),s=require("picocolors"),r=require("axios"),i=require("node:http"),a=require("node:https"),o=require("jsdom"),c=require("path"),l=require("fs"),p=require("crypto"),d=require("process"),u=require("child_process"),h=require("console"),g=require("os"),f=require("module"),m=require("extract-zip"),y=require("jszip"),w=require("memory-cache"),v=require("zlib"),b=require("express");var k="undefined"!=typeof document?document.currentScript:null;const x=e=>e&&"object"==typeof e&&"default"in e?e.default:e;function T(e){if(e&&"object"==typeof e&&"default"in e)return e;const t=Object.create(null);if(e)for(const n in e)t[n]=e[n];return t.default=e,Object.freeze(t)}const S=x(r),E=x(i),P=x(a),I=x(c),$=T(c),A=T(p),R=T(d),F=T(u),N=T(h),L=T(g),C=x(m),j=x(y),O=T(w),D=x(b),B=(e,t,n)=>{const s=new RegExp(`(!!)?(https?(:(\\\\)?/(\\\\)?/)${e})`,"gi");return n.replace(s,(e,...n)=>e.startsWith("!!")?n[1]:`http${n[2]}${t}`)},M=(e,t,n)=>{e.setHeader("location",t),e.statusCode=n,e.end()};let H=new Map;const U="default",V=(e="info",t=U)=>{if(H&&"function"==typeof H.has||(H=new Map),H.has(t))return H.get(t);if(t===U){const s=n.createLogger(e);return H.set(t,s),s}const s=n.createLogger(e);return H.set(t,s),s},_=s.createColors(),z=function(){const e={personal:{placeholder:"API Token",caption:`You can get the API Token\n <a href="https://${host}/api-token" target="_blank" \n style="color: #007bff; text-decoration: none;">here</a>`,endpoint:"/@api/login"},regular:{placeholder:"Legacy Token",caption:`You can get the Legacy Token\n <a href="https://${host}/api/get_token" target="_blank" \n style="color: #007bff; text-decoration: none;">here</a>`,endpoint:"/@api/login"}};function t(t,n,s){const r=e[t];r&&(n.placeholder=r.placeholder,s.innerHTML=r.caption)}function n(e,t){t.textContent=e,t.classList.add("show")}function s(e){e.classList.remove("show")}function r(e,t,r,i){r.addEventListener("click",async r=>{if(r.preventDefault(),s(i),!t.value.trim())return n(`${t.placeholder} is required`,i),void t.focus();const a=document.getElementById("token-type-switcher"),o=a?.querySelector(".token-type-option.active"),c=o?.dataset.value||"personal";await async function(e,t,s,r){try{s.classList.add("loading");const i=await fetch("/@api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,tokenType:t}),redirect:"follow"}),a=i.url&&new URL(i.url,window.location.origin);if(!a||a.pathname.startsWith("/login")||a.pathname.startsWith("/@api/"))try{const e=await i.json();n(`Login failed: ${e?.error||"Unknown error occurred"}`,r)}catch(e){n("Login failed: Unable to parse response",r)}else window.location.href=i.url}catch(e){n("Login failed: Network error. Please check your connection.",r)}finally{s.classList.remove("loading")}}(t.value.trim(),c,e,i)}),t.addEventListener("keydown",e=>{"Enter"===e.key&&(e.preventDefault(),r.click())}),t.addEventListener("input",()=>{s(i)})}function i(e){const n=e.firstChild;if(!n)return;const s=n.lastChild?.cloneNode(!0);if(!s)return;s.innerHTML="";const i=s.cloneNode(!0);i.innerText="OR",i.setAttribute("role","separator"),i.setAttribute("aria-label","Alternative login method");const a=s.cloneNode(!0),o=document.createElement("div"),c=document.createElement("style");c.textContent="\n.helper-login-wrapper {\n font-family: Arial, sans-serif;\n color: #222;\n padding: 8px;\n background-color: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #ddd;\n width: 100%;\n max-width: 400px;\n margin: 0 auto;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.helper-login-wrapper .title {\n font-weight: bold;\n font-size: 18px;\n margin-bottom: 12px;\n text-align: center;\n}\n\n.helper-login-wrapper .control {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.helper-login-wrapper .control input {\n border: 1px solid #ddd;\n border-radius: 4px;\n width: 100%;\n box-sizing: border-box;\n text-align: center;\n height: 26px;\n padding: 0 8px;\n font-size: 14px;\n}\n\n.helper-login-wrapper .control input:focus {\n outline: none;\n border-color: #007bff;\n box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);\n}\n\n.helper-login-wrapper .control .caption {\n font-size: 12px;\n color: #666;\n text-align: center;\n}\n\n.helper-login-wrapper .footer {\n margin-top: 16px;\n text-align: center;\n}\n\n.helper-login-wrapper .footer .btn.submit {\n background-color: #007bff;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n width: 100%;\n font-size: 14px;\n transition: background-color 0.3s;\n height: 26px;\n font-weight: 500;\n}\n\n.helper-login-wrapper .footer .btn.submit:hover {\n background-color: #0056b3;\n}\n\n.helper-login-wrapper .footer .btn.submit:disabled {\n background-color: #6c757d;\n cursor: not-allowed;\n}\n\n.helper-login-wrapper .token-type-switcher {\n display: flex;\n border: 1px solid #ccc;\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 12px;\n width: 100%;\n}\n\n.helper-login-wrapper .token-type-option {\n padding: 4px 8px;\n cursor: pointer;\n background-color: #f8f9fa;\n color: #666;\n font-size: 12px;\n text-align: center;\n transition: background-color 0.2s, color 0.2s;\n border-right: 1px solid #ccc;\n flex: 1;\n user-select: none;\n}\n\n.helper-login-wrapper .token-type-option:last-child {\n border-right: none;\n}\n\n.helper-login-wrapper .token-type-option.active {\n background-color: #007bff;\n color: white;\n font-weight: bold;\n}\n\n.helper-login-wrapper .token-type-option:not(.active):hover {\n background-color: #e9ecef;\n}\n\n.helper-login-wrapper .error-message {\n color: #dc3545;\n font-size: 12px;\n text-align: center;\n margin-top: 8px;\n display: none;\n}\n\n.helper-login-wrapper .error-message.show {\n display: block;\n}\n\n.helper-login-wrapper .loading {\n opacity: 0.6;\n pointer-events: none;\n}\n",document.head.appendChild(c),o.innerHTML=`\n<div class="helper-login-wrapper" role="form" aria-label="PP Dev Helper Login">\n <div class="title" role="heading" aria-level="2">PP Dev Helper</div>\n\n <div class="token-type-switcher" id="token-type-switcher" role="tablist" aria-label="Token type selection">\n <div class="token-type-option active" data-value="personal" role="tab" aria-selected="true" tabindex="0">\n API Token\n </div>\n <div class="token-type-option" data-value="regular" role="tab" aria-selected="false" tabindex="0">\n Legacy Token\n </div>\n </div>\n\n <div class="control">\n <input \n type="password" \n id="helper-token" \n placeholder="API Token"\n aria-label="Token input"\n aria-describedby="token-caption"\n >\n <span class="caption" id="token-caption">\n You can get the API Token\n <a href="https://${host}/api-token" target="_blank" style="color: #007bff; text-decoration: none;">here</a>\n </span>\n </div>\n\n <div class="error-message" id="error-message" role="alert" aria-live="polite"></div>\n\n <div class="footer">\n <button id="helper-token-submit" class="btn submit" type="button">\n Token Login\n </button>\n </div>\n</div>`,a.appendChild(o),n.appendChild(i),n.appendChild(a);const l=document.getElementById("token-type-switcher"),p=document.getElementById("helper-token"),d=document.getElementById("token-caption"),u=document.getElementById("helper-token-submit"),h=document.getElementById("error-message"),g=o.querySelector(".helper-login-wrapper");l&&p&&d&&u&&h&&g?(!function(e,n,s){const r=e.querySelectorAll(".token-type-option"),i=e=>{const i=e.dataset.value;r.forEach(e=>{e.classList.remove("active"),e.setAttribute("aria-selected","false"),e.setAttribute("tabindex","-1")}),e.classList.add("active"),e.setAttribute("aria-selected","true"),e.setAttribute("tabindex","0"),t(i,n,s)};r.forEach(e=>{e.addEventListener("click",e=>{const t=e.currentTarget;i(t)}),e.addEventListener("keydown",t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),i(e))})})}(l,p,d),r(g,p,u,h),t("personal",p,d)):console.error("Failed to find required form elements")}const a='#mi-react-root form:not([id]):has(input[name="login"]):has(input[name="password"])',o=new MutationObserver(e=>{for(const t of e)if("childList"===t.type){const e=document.querySelector(a);if(e){o.disconnect(),i(e);break}}});o.observe(document.body,{childList:!0,subtree:!0});const c=document.querySelector(a);c&&(o.disconnect(),i(c))},q=/^(https?:\/\/)([^/]+)(\/.*)?$/i,Z="X-PP-Proxy";function W(n){const{rewritePath:s=/^\/(?!p[tl]).*/i,baseURL:r="",disableSSLValidation:i=!1,miAPI:a,templateName:o}=n;if(!r)throw new Error("Base url is required");const c=r.replace(q,"$2"),l=r.replace(q,"$1$2"),p=import("file-type"),d=V();return e.createProxyMiddleware({selfHandleResponse:!0,pathFilter:(e,t)=>!(n.proxyIgnore||[]).some(t=>"string"==typeof t?e.startsWith(t):"function"!=typeof t.test||t.test(e))&&("string"==typeof s?e.startsWith(s):Array.isArray(s)?s.some(t=>e.startsWith(t)):"function"==typeof s.test&&s.test(e)),target:r,changeOrigin:!0,autoRewrite:!0,cookieDomainRewrite:{[c]:"localhost"},logger:{info:()=>{},log:()=>{},error:()=>{},warn:()=>{}},secure:!i,headers:{host:c,origin:l},on:{proxyReq(e,n,s){const i=n.headers.host,c=e.getHeader("referer");i&&c&&"string"==typeof c&&e.setHeader("referer",c.replace(new RegExp(`https?://${i}`),r)),a.personalAccessToken&&e.setHeader("Authorization",`Bearer ${a.personalAccessToken}`);const l=n.url??"/",p=function(e,n,s,r){if(!n||!s||!r||s===r)return e;try{const n=new t.URL(e,"http://localhost"),i=n.pathname.match(/^\/data\/page\/([^/]+)(\/.*)?$/);if(!i)return e;let a;try{a=decodeURIComponent(i[1])}catch{a=i[1]}if(a!==s)return e;return`/data/page/${r}${i[2]??""}`+n.search+n.hash}catch{return e}}(l,a.v7Features,o,a.internalPageName);return p!==l&&(n.url=p,e.path=p,console.info(`${_.cyan("Rewrites data page to correct internal page name")}: ${_.yellow(l)} ${_.blue("→")} ${_.green(p)}`)),d.info(`${_.blue("Proxies request:")} ${_.green(n.method)} ${n.url} -> ${_.green(e.method)} ${e.protocol}//${e.host}${e.path}`),n.socket.setMaxListeners(0),n.socket.once("close",()=>{setTimeout(()=>{e.destroyed||e.destroy()},200)}),e},proxyRes:(t,n,s)=>{if(t.headers["content-type"]?.includes("text/event-stream")||t.headers["transfer-encoding"]?.includes("chunked")&&"no"===t.headers["x-accel-buffering"]){d.info(`${_.blue("Start streaming for request:")} ${_.green(n.method)} ${n.url}`);const e=async(e,t,n)=>{n.setHeader(Z,1),n.setHeaders(new Map(Object.entries(e.headers))),e.pipe(n)};return e(t,n,s)}const r=e.responseInterceptor(async(e,t,n,s)=>{s.setHeader(Z,1);if(await(await p).fileTypeFromBuffer(e))return e;{let t=e.toString("utf8");try{const e=new URL(n.url??"",`http://${c}`);if(e.searchParams&&e.searchParams.has("proxyRedirect")){const e=function(){const e="pp-dev::redirectCount",t="pp-dev::lastRedirect";let n=+(localStorage.getItem(e)??0);localStorage.getItem(t);Number.isNaN(n)&&(n=0);let s=window.location.href;const r=function(){const i=new URLSearchParams(window.location.search);if(!i.has("proxyRedirect"))return console.debug("No proxyRedirect param. Cleaning up."),void localStorage.removeItem(e);s!==window.location.href?(s=window.location.href,setTimeout(r,n<3?3e3:5e3)):window.location.href=i.get("proxyRedirect"),localStorage.setItem(e,""+ ++n),localStorage.setItem(t,(new Date).toISOString())};setTimeout(r,3e3)};t+=`<script>(${e.toString()})()<\/script>`}e.pathname.startsWith("/login")&&(s.setHeader("Cache-Control","no-cache, no-store, must-revalidate"),s.setHeader("Pragma","no-cache"),s.setHeader("Expires","0"));const r=t.slice(0,100);(r.includes("<html")||r.includes("<body")||r.includes("<head")||r.includes("html>"))&&(t+=`<script>const host = "${c}";\n(${z.toString()})()<\/script>`)}catch{}const r=n.headers.host??"";return((e,t,n)=>{const s=new RegExp(`${e.replace(/\\*\//gi,"\\\\/")}`,"gi"),r=new RegExp(`${e}`,"gi"),i=n.replace(s,t);return i===n?i.replace(r,t):i})("/auth/saml/login","/login",B(c,r,t))}});return r(t,n,s)},error(e,t,n){const s=`Proxy error: "${e.message}" when trying to "${t.method} ${t.url}"\n\n${e.stack}`;d.error(s),n.writable&&n.writeHead(500,{"Content-Type":"text/plain"}),n.end(s)}}})}class J{axios;constructor(e){this.axios=e}async checkAuth(e){return this.axios.get("/data/page/index/auth/info",{headers:Object.assign({},e,{accept:"text/html"}),maxRedirects:0}).then(()=>!0).catch(()=>!1)}}class K extends J{formdataModulePromise=import("formdata-node");constructor(e){super(e)}getDownloadUrl(e){return`/admin/page/downloadassets/id/${e}`}getDownloadTemplateUrl(e){return`/admin/pagetemplate/downloadassets/id/${e}`}getUploadUrl(e){return`/admin/page/uploadassets/id/${e}`}getUploadTemplateUrl(e){return`/admin/pagetemplate/uploadassets/id/${e}`}async downloadPageAssets(e,t){return this.axios.get(this.getDownloadUrl(e),{withCredentials:!0,headers:Object.assign({},t,{accept:"*/*"}),responseType:"arraybuffer"}).then(e=>e.data)}async uploadPageAssets(e,t,n){const s=new(await this.formdataModulePromise).FormData,{File:r}=await this.formdataModulePromise,i=new r([t],"file.zip",{type:"application/zip"});s.append("file",i);const a=this.getUploadUrl(e);return this.axios.post(a,s,{withCredentials:!0,headers:Object.assign({},n,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:a})})}).then(e=>e.data)}async downloadTemplateAssets(e,t){return this.axios.get(this.getDownloadTemplateUrl(e),{withCredentials:!0,headers:Object.assign({},t,{accept:"*/*"}),responseType:"arraybuffer"}).then(e=>e.data)}async uploadTemplateAssets(e,t,n){const s=new(await this.formdataModulePromise).FormData,{File:r}=await this.formdataModulePromise,i=new r([t],"file.zip",{type:"application/zip"});s.append("file",i,"file.zip");const a=this.getUploadTemplateUrl(e);return this.axios.post(a,s,{withCredentials:!0,headers:Object.assign({},n,{accept:"application/json","Content-Type":"multipart/form-data",Referer:this.axios.getUri({url:a})})}).then(e=>e.data)}}class Y extends K{getDownloadUrl(e){return`/api/page/id/${e}/asset/download`}getDownloadTemplateUrl(e){return`/api/page_template/id/${e}/asset/download`}getUploadUrl(e){return`/api/page/id/${e}/asset/upload`}getUploadTemplateUrl(e){return`/api/page_template/id/${e}/asset/upload`}}const X="Something went wrong when fetching page data",G="Something went wrong when fetching page template data",Q=" The instance may be down or in maintenance mode. Please try again later.";function ee(){return new Error(`${G}.${Q}`)}function te(e){return e instanceof Error&&(e.message.includes(X)||e.message.includes(G))}class ne extends J{async getAll(e){return(await this.axios.get("/api/page",{withCredentials:!0,headers:Object.assign({},e,{Accept:"application/json","Content-Type":"application/json","Cache-Control":"no-cache",Pragma:"no-cache",Expires:"0"})})).data.pages}async get(e,t){const n=(await this.axios.get(`/api/page/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data;if("object"!=typeof n||null===n)throw new Error(`${X}.${Q}`);return n.page}async getPageContent(e,t){return(await this.axios.get(`/p/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"text/html","content-type":"application/json"})})).data}async create(e,t){return(await this.axios.post("/api/page",e,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data.page}}class se extends J{async getAll(e,t){const n=(await this.axios.get("/api/page_template",{withCredentials:!0,headers:Object.assign({},t,{Accept:"application/json","Content-Type":"application/json","Cache-Control":"no-cache",Pragma:"no-cache",Expires:"0"}),params:{internal_name:e}})).data;if("object"!=typeof n||null===n||!Array.isArray(n.page_templates))throw ee();return n.page_templates}async get(e,t){const n=(await this.axios.get(`/api/page_template/id/${e}`,{withCredentials:!0,headers:Object.assign({},t,{accept:"application/json","content-type":"application/json"})})).data;if("object"!=typeof n||null===n||"object"!=typeof n.page_template||null===n.page_template)throw ee();return n.page_template}}function re(e){const t=e.response?.status||0,n=e.response?.data?.message||e.message||"Unknown error";switch(t){case 412:const e=n.toLowerCase();return e.includes("session expired")||e.includes("session has expired")?{status:t,message:n,code:"SESSION_EXPIRED",userFriendlyMessage:"Your session has expired",suggestions:["Refresh your token in the portal","Re-authenticate with the portal","Check if your token has been revoked","Ensure your token has the correct permissions"]}:{status:t,message:n,code:"AUTH_FAILED",userFriendlyMessage:"Authentication failed",suggestions:["Verify your token is correct","Check token permissions","Ensure the token hasn't expired","Try generating a new token"]};case 401:return{status:t,message:n,code:"UNAUTHORIZED",userFriendlyMessage:"Unauthorized access",suggestions:["Check if your token is valid","Verify you have the required permissions","Ensure the token hasn't been revoked","Try logging in again"]};case 403:return{status:t,message:n,code:"FORBIDDEN",userFriendlyMessage:"Access forbidden",suggestions:["Check your user permissions","Verify the portal page ID is correct","Ensure your token has the right scope","Contact your administrator"]};default:return{status:t,message:n,code:"UNKNOWN_ERROR",userFriendlyMessage:"An unexpected error occurred",suggestions:["Check your network connection","Verify the portal URL is correct","Try again in a few moments","Check the portal status"]}}}const ie="[DEV PAGE. DO NOT DELETE]",ae=new Map;class oe{#e;#t;#n=null;#s;#r;#i;#a;#o;#c;#l;internalPageName;portalPageId;templateLess;assetsApi;pageApi;pageTemplateApi;logger;constructor(e,t){const{headers:n={},portalPageId:s,templateLess:r=!0,disableSSLValidation:i=!1,v7Features:a=!1,personalAccessToken:o}=t||{};this.#e=n,this.#r=[],this.#s="",this.#i=a,this.#a=o,this.#o=!1,this.#c=Promise.resolve(!1);const c=`${e}:${i}`;if(ae.has(c))this.#t=ae.get(c);else{i&&(process.env.NODE_TLS_REJECT_UNAUTHORIZED="0");const t=new P.Agent({keepAlive:!1,...i?{rejectUnauthorized:!1}:{}});this.#t=S.create({baseURL:e,headers:n,timeout:3e4,maxRedirects:5,httpAgent:new E.Agent({keepAlive:!1}),httpsAgent:t}),i&&(S.defaults.httpsAgent=t),ae.set(c,this.#t)}this.portalPageId=s,this.templateLess=r,this.assetsApi=new(a?Y:K)(this.#t),this.pageApi=new ne(this.#t),this.pageTemplateApi=new se(this.#t),this.logger=V()}async isTemplateLoaded(){return this.#c}get isV710OrHigher(){return this.#o}get v7Features(){return this.#i}#p(e){const t=Object.assign({},e,{host:void 0,referer:void 0});return Object.keys(t).forEach(e=>void 0===t[e]&&delete t[e]),this.#e=t,!t.authorization&&this.#a&&(t.authorization=`Bearer ${this.#a}`),t}#d(e){return e.replace(/[.*+?^${}()|[\]\\\/]/g,"\\$&")}get personalAccessToken(){return this.#a}set personalAccessToken(e){this.#a=e}updateHeaders(e){this.#p(e)}get localTemplateHTML(){return'<!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="UTF-8" />\n <title>%%PAGE TITLE%%</title>\n <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\n <meta name="theme-color" content="rgba(255, 255, 255, 1)" />\n <link rel="shortcut icon" type="image/x-icon" sizes="any" href="/img/favicon/favicon.ico" />\n <link rel="icon" type="image/png" sizes="16x16" href="/img/favicon/favicon-16x16.png" />\n <link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png" />\n <link rel="icon" type="image/png" sizes="48x48" href="/img/favicon/favicon-48x48.png" />\n <meta name="msapplication-config" content="/auth/browserconfig.xml" />\n <link rel="apple-touch-icon" sizes="180x180" href="/img/favicon/apple-touch-icon.png" />\n <link rel="manifest" href="/auth/site.webmanifest" />\n <link rel="manifest" href="/auth/manifest.json" />\n <link rel="stylesheet" type="text/css" href="/auth/theme-vars.css" />\n <link rel="icon" type="image/svg+xml" href="/favicon.ico" />\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n <script src="/js/libs/underscore-latest.min.js" charset="utf-8"><\/script>\n <script src="/js/jquery/jquery-latest.min.js" charset="utf-8"><\/script>\n <script src="/js/application/rating_component.js" charset="utf-8"><\/script>\n </head>\n <body>\n <div id="mi-react-root"></div>\n <script src="/auth/info.js"><\/script>\n <script src="/js/main.js" defer><\/script>\n <link rel="stylesheet" href="/css/main.css" />\n </body>\n </html>'}async getPageTemplate(e){if(await this.#c||this.#n||(this.#c=new Promise(e=>{this.#l=e})),this.#n)return Promise.resolve(this.#n);if(void 0===this.templateLess&&(this.templateLess=!1),this.#i){const t=await this.pageApi.get(this.portalPageId,this.#p(e)).then(e=>(this.logger.info(_.green("Page fetched")),e)).catch(async t=>{if(this.#l(!1),te(t))throw t;throw await this.pageApi.checkAuth(this.#p(e))?(this.logger.error(_.red(`Error fetching page data: ${t.message}\n${t.stack}`)),new Error("The current user does not have access to this page. Check your configuration to ensure the portalPageId is correct.")):t});return void 0!==t.template_id&&(this.#o=!0),this.internalPageName=t.internal_name,this.#n=this.localTemplateHTML,this.#n=this.#n.replace(/%%PAGE TITLE%%/g,t.name||"Local template"),this.logger.info(_.green("Local page template fetched")),this.#l(!0),this.#n}let t=(await this.pageApi.getAll(this.#p(e)).then(e=>(this.logger.info(_.green("Page list fetched")),e)).catch(async t=>{throw this.#l(!1),await this.pageApi.checkAuth(this.#p(e))?(this.logger.error(_.red(`Error fetching page list: ${t.message}\n${t.stack}`)),new Error("Current user does not have access to page list")):t})).find(e=>e.name===ie);return t||(this.logger.warn(_.yellow("Creating dev page template...")),t=await this.pageApi.create({enabled:"Y",name:ie,internal_name:"dev-page-template",visible_in_homepage:"Y"},this.#p(e)).then(e=>(this.logger.info(_.green("Dev page created")),e)).catch(e=>{throw this.logger.error(_.red(`Error creating dev page: ${e.message}`)),this.#l(!1),new Error(`Error when creating dev page.\n That can be caused by missing permissions or page with name "${ie}" already exists`)})),await this.pageApi.getPageContent(t.internal_name,this.#p(e)).then(e=>(this.#n=e,e)).then(e=>(this.#l(!0),this.logger.info(_.green("Page template fetched")),e)).catch(e=>{throw this.#l(!1),this.logger.error(_.red(`Error fetching page template: ${e.message}`)),new Error("Error fetching page template")})}async getPageVariables(e,t){return this.#n=await this.getPageTemplate(t),this.portalPageId||(this.portalPageId=e,this.templateLess=!1),await this.pageApi.get(e,this.#p(t)).then(e=>{const{tags:t="[]",name:n,template:s}=e;if(s&&t){const e=JSON.parse(t);return this.#r=e,this.#s=n,e}return this.#r=[],this.#s=n,[]}).catch(t=>{if(this.logger.error(_.red(`Error fetching page variables: ${t.message}`)),404===t.response?.status)throw new Error(`Portal Page with id "${e}" not found on instance ${this.#t.getUri()}`);if(401===t.response?.status)throw new Error(`Current user does not have access to page with id "${e}" on instance ${this.#t.getUri()}`);throw t})}async getPageInfo(e,t){this.portalPageId||(this.portalPageId=e);const n=this.#p(t),s=this.portalPageId;try{return this.#i?await this.#u(s,n):await this.#h(s,n)}catch(e){this.#g(e,s)}}async#u(e,t){const n=await this.pageApi.get(e,t);return this.logger.info(_.green("Page fetched")),void 0!==n.template_id&&(this.#o=!0),this.internalPageName=n.internal_name,n}async#h(e,t){return await this.pageApi.get(e,t)}#g(e,t){if(te(e))throw e;if(this.#i&&e.message?.includes("access"))throw new Error("The current user does not have access to this page. Check your configuration to ensure the portalPageId is correct.");if(404===e.response?.status)throw new Error(`Portal Page with id "${t}" not found on instance ${this.#t.getUri()}`);throw 401===e.response?.status&&this.logger.error(_.red(`Current user does not have access to page with id "${t}" on instance ${this.#t.getUri()}`)),e}buildPage(e,t=!1){let n="string"==typeof e?e:e.toString("utf-8");for(const e of this.#r){const t=this.#d(e.name),s=new RegExp(`\\[${t}\\]`,"g");n=n.replace(s,()=>e.value)}const s=new o.JSDOM(t?n:this.#n),r="%%PLACEHOLDER%%";if(!t){const e=s.window.document.createElement("div");e.innerHTML=r;const t=s.window.document.querySelector(".main-side");if(t){const n=t.querySelectorAll("script");n.length?t.insertBefore(e,n.item(n.length-1)):t.append(e)}else{const t=s.window.document.createElement("div");t.append(e),s.window.document.body.append(t)}const n=s.window.document.querySelector("head"),i=n.querySelector("title");if(i)i.text=this.#s;else{const e=s.window.document.createElement("title");e.textContent=this.#s,n.appendChild(e)}}return s.serialize().replace(new RegExp(`<div>\\s*${r}\\s*<\\/div>`,"i"),n)}async getAssets(){if(this.portalPageId){if(this.templateLess)return await this.assetsApi.downloadPageAssets(this.portalPageId,this.#e);{const e=await this.pageApi.get(this.portalPageId,this.#e);if(this.#o){const t=await this.pageTemplateApi.get(e.template_id,this.#e);return await this.assetsApi.downloadTemplateAssets(t.id,this.#e)}if(e.template)return await this.assetsApi.downloadTemplateAssets(e.template,this.#e)}}}async updateAssets(e){if(this.portalPageId){if(this.templateLess)return await this.assetsApi.uploadPageAssets(this.portalPageId,e,this.#e);{const t=await this.pageApi.get(this.portalPageId,this.#e);if(this.#o){const n=await this.pageTemplateApi.get(t.template_id,this.#e);return await this.assetsApi.uploadTemplateAssets(n.id,e,this.#e)}if(t.template)return await this.assetsApi.uploadTemplateAssets(t.template,e,this.#e)}}}async validateCredentials(e){try{const t=e||this.#e;return await this.get("/api/user",t,!0),{isValid:!0}}catch(e){const t=re(e);return{isValid:!1,error:t.userFriendlyMessage,code:t.code}}}async get(e,t,n=!1){const s=n?t:Object.assign({},this.#p(this.#e),t);try{return await this.#t.get(e,{headers:s})}catch(e){if("UNKNOWN_ERROR"!==re(e).code){const t=re(e);throw this.logger.error(_.red(`API request failed: ${t.userFriendlyMessage}`)),function(e,t,n){const s=re(t),r=`[${n}] `;e.error(_.red(`${r}${s.userFriendlyMessage}`)),e.error(_.red(`Status: ${s.status} (${s.code})`)),e.error(_.red(`Details: ${s.message}`)),s.suggestions.length>0&&(e.info(_.yellow("Suggestions:")),s.suggestions.forEach((t,n)=>{e.info(_.yellow(` ${n+1}. ${t}`))}))}(this.logger,e,"API Request"),e.response||(e.response={status:t.status,data:{message:t.message}}),e.tokenErrorInfo=t,e}throw e}}}const ce="BUILD-MANIFEST.json";function le(e,t,n=new Set){const s=l.readdirSync(e,{withFileTypes:!0}),r=[];for(const i of s){const s=I.join(e,i.name),a=I.relative(t,s).replace(/\\/g,"/");i.isDirectory()?r.push(...le(s,t,n)):i.isFile()&&!n.has(a)&&r.push(s)}return r}function pe(e){const t=l.readFileSync(e);return p.createHash("sha256").update(t).digest("hex")}function de(e){return e.replace(/^([a-z][a-z\d+.-]*:\/\/)(?:[^/?#@]+(?::[^/?#@]*)?@)/i,"$1")}function ue(e){const t=e.trim().replace(/^git\+/,"").replace(/\.git$/i,""),n=t.match(/^([^@]+)@([^:]+):(.+)$/);if(n){const[,,e,t]=n;return de(`https://${e}/${t.replace(/^\/+/,"")}`)}const s=t.match(/^ssh:\/\/(?:[^@]+@)?([^/:]+)(?::\d+)?\/(.+)$/i);if(s){const[,e,t]=s;return de(`https://${e}/${t.replace(/^\/+/,"")}`)}const r=t.match(/^git:\/\/([^/]+)\/(.+)$/i);if(r){const[,e,t]=r;return de(`https://${e}/${t.replace(/^\/+/,"")}`)}return de(t)}function he(e){if(!1===e.enabled)return;const{outDir:n,versionFileTemplate:s,packageVersion:r}=e,i=I.resolve(process.cwd(),n);if(!l.statSync(i,{throwIfNoEntry:!1})?.isDirectory())return;const a=(new Date).toISOString(),o=s??"VERSION-v{packageversion}-{currentDate}.json",c=function(e,t,n){return e.replace(/\{packageversion\}/g,t).replace(/\{currentDate\}/g,n)}(o,r,a.replace(/:/g,"-")),d=le(i,i,new Set([c,ce])),h={};for(const e of d){h[I.relative(i,e).replace(/\\/g,"/")]=pe(e)}const g=function(e){const t=Object.keys(e).sort().map(t=>e[t]).join("");return p.createHash("sha256").update(t).digest("hex")}(h),f=function(e){const t=Object.keys(e).sort().map(t=>`${t}:${e[t]}`).join("\n");return p.createHash("sha256").update(t,"utf-8").digest("hex")}(h),m=function(){const e=t.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:k&&"SCRIPT"===k.tagName.toUpperCase()&&k.src||new URL("plugin-CqahMAGe.js",document.baseURI).href);let n=I.dirname(e);for(;;){const e=I.join(n,"package.json"),t=l.statSync(e,{throwIfNoEntry:!1});if(t?.isFile())try{const t=JSON.parse(l.readFileSync(e,"utf-8"));if("string"==typeof t.version)return t.version}catch{}const s=I.dirname(n);if(s===n)return"unknown";n=s}}(),y=function(e){if("string"==typeof e&&e.trim())return e.trim();const t=["GITHUB_HEAD_REF","GITHUB_REF_NAME","CI_COMMIT_REF_NAME","BITBUCKET_BRANCH","BUILD_SOURCEBRANCHNAME","BRANCH_NAME","TRAVIS_BRANCH","CIRCLE_BRANCH","BUILDKITE_BRANCH","VERCEL_GIT_COMMIT_REF"];for(const e of t){const t=process.env[e];if("string"==typeof t&&t.trim())return t.trim()}try{const e=u.execSync("git rev-parse --abbrev-ref HEAD",{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(e&&"HEAD"!==e)return e}catch{}}(e.packageBranchName),w={schemaVersion:1,version:`v${r}`,date:a,checksum:g,files:h,repositoryUrl:e.packageRepositoryUrl?ue(e.packageRepositoryUrl):void 0,branchName:y,helperVersion:m},v=I.join(i,c),b=I.join(i,ce),x={schemaVersion:1,manifestType:"pp-dev-build-manifest",generatedAt:a,versionFile:c,versionFileTemplate:o,versionFileSchemaVersion:1,buildFingerprint:f,compat:{versionFileRequired:!0}};l.writeFileSync(v,JSON.stringify(w,null,2),"utf-8"),l.writeFileSync(b,JSON.stringify(x,null,2),"utf-8")}const ge="pageName",fe="date",me=$.dirname("undefined"!=typeof __filename&&__filename||t.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:k&&"SCRIPT"===k.tagName.toUpperCase()&&k.src||new URL("plugin-CqahMAGe.js",document.baseURI).href)),ye=$.resolve(me,"..",".."),we=$.resolve(ye,"..",".."),ve=$.resolve(we,".pp-dev-meta"),be=$.resolve(ve,"sync-service.meta.json"),ke="BUILD-MANIFEST.json",xe="__template_variables.json";class Te{backupFolder;backupNameTemplate;dateFormat;pageName;currentMeta=null;distZipFolder;distZipFilename;versionFileTemplate;nextBuild;logger;constructor(e,t){this.pageName=e;const{backupFolder:n=$.resolve(R.cwd(),"backups"),distZipFolder:s=$.resolve(R.cwd(),"dist-zip"),distZipFilename:r=`${this.pageName}.zip`,backupNameTemplate:i=`{${ge}}-{${fe}}.zip`,versionFileTemplate:a="VERSION-v{packageversion}-{currentDate}.json",dateFormat:o=e=>e.toISOString().replace(/:/g,"-").replace(/\..*$/,""),nextBuild:c}=t||{};this.backupFolder=n,this.backupNameTemplate=i,this.dateFormat=o,this.distZipFolder=s,this.distZipFilename=r,this.versionFileTemplate=a,this.nextBuild=c,this.syncMeta(),this.logger=V()}async checkMeta(){try{await l.promises.stat(ve)}catch{await l.promises.mkdir(ve)}try{await l.promises.stat(this.backupFolder)}catch{await l.promises.mkdir(this.backupFolder)}}async readMetaFile(){return await this.checkMeta(),await l.promises.readFile(be,{encoding:"utf-8"}).catch(()=>"{}")}async writeMetaFile(e){return await this.checkMeta(),await l.promises.writeFile(be,JSON.stringify(e,null,2),{encoding:"utf-8"})}async syncMeta(){this.currentMeta?await this.writeMetaFile(this.currentMeta):this.currentMeta=JSON.parse(await this.readMetaFile())}async getLatestSavedBackup(){const{lastBackupName:e}=this.currentMeta;if(!e)return null;const t=$.resolve(this.backupFolder,e);try{return await l.promises.stat(t),t}catch{return null}}backupName(e,t=new Date){return this.backupNameTemplate.replace(`{${ge}}`,e).replace(`{${fe}}`,this.dateFormat(t))}getBackupMeta(){return this.currentMeta}pathToPosix(e){return e.replace(/\\/g,"/")}async normalizeExtractedRootDir(e){let t=e;for(;;){const e=await l.promises.readdir(t,{withFileTypes:!0});if(1!==e.length||!e[0]?.isDirectory())return t;t=$.join(t,e[0].name)}}async listFilesRecursive(e){const t=await l.promises.readdir(e,{withFileTypes:!0}),n=[];for(const s of t){const t=$.join(e,s.name);s.isDirectory()?n.push(...await this.listFilesRecursive(t)):s.isFile()&&n.push(t)}return n}buildManifestChecksum(e){const t=Object.keys(e).sort().map(t=>e[t]).join("");return A.createHash("sha256").update(t).digest("hex")}buildBackupFingerprint(e){const t=Object.keys(e).sort().map(t=>`${t}:${e[t]}`).join("\n");return A.createHash("sha256").update(t,"utf-8").digest("hex")}escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}versionFileTemplateMatcher(){const e=/\{[^}]+\}/g,t=[];let n=0,s=null;for(;s=e.exec(this.versionFileTemplate),s;){const[e]=s,r=this.versionFileTemplate.slice(n,s.index);t.push(this.escapeRegExp(r)),t.push("[^/]+"),n=s.index+e.length}const r=this.versionFileTemplate.slice(n);return t.push(this.escapeRegExp(r)),new RegExp(`^${t.join("")}$`,"i")}isTemplateVariablesBasename(e){return e===xe}async pickTemplateVariablesFromBackupZip(e,t){const n=e.find(e=>$.basename(e)===xe);if(!n)return null;const s=$.join(t,n),r=await l.promises.readFile(s);return{relativePath:n,content:r,actualHash:A.createHash("sha256").update(r).digest("hex"),manifestHash:null}}async resolveBackupAnalysisFromZip(e){const t=await l.promises.mkdtemp($.join(L.tmpdir(),"pp-dev-backup-")),n=$.join(t,"backup.zip"),s=$.join(t,"extracted");try{await l.promises.mkdir(s,{recursive:!0}),await l.promises.writeFile(n,e),await C(n,{dir:s});const t=await this.normalizeExtractedRootDir(s),r=(await this.listFilesRecursive(t)).map(e=>this.pathToPosix($.relative(t,e))),i=r.filter(e=>$.basename(e)===ke);if(i.length>1)throw new Error(`Expected at most one ${ke} in backup ZIP, found ${i.length}`);const a=1===i.length?i[0]:null;let o=null;if(a){const e=$.join(t,a);if(o=JSON.parse(await l.promises.readFile(e,"utf-8")),!(o&&"pp-dev-build-manifest"===o.manifestType&&"string"==typeof o.versionFile&&o.versionFile.trim()&&"string"==typeof o.versionFileTemplate&&o.versionFileTemplate.trim()&&"string"==typeof o.buildFingerprint&&o.buildFingerprint.trim()))throw new Error("Build manifest is missing required fields")}let c=null;if(o){const e=this.pathToPosix(o.versionFile.trim()),t=r.filter(t=>t===e),n=r.filter(t=>$.basename(t)===$.basename(e)),s=t.length>0?t:n;if(s.length>1)throw new Error(`Build manifest version file "${o.versionFile}" must resolve to exactly one file in backup ZIP, found ${s.length}`);if(1===s.length&&(c=s[0]),!0===o.compat?.versionFileRequired&&null===c)throw new Error(`Build manifest requires version file "${o.versionFile}", but it is missing in backup ZIP`)}else{const e=this.versionFileTemplateMatcher(),t=r.filter(t=>e.test($.basename(t)));if(t.length>1)throw new Error(`Expected exactly one version file matching template "${this.versionFileTemplate}" in backup ZIP, found ${t.length}`);1===t.length&&(c=t[0])}const p={};let d=null,u=null;const h={};let g=[];if(c){const e=$.join(t,c),n=JSON.parse(await l.promises.readFile(e,"utf-8"));if(!n?.files||"object"!=typeof n.files)throw new Error("VERSION manifest files map is missing or invalid");if("string"!=typeof n.checksum||!n.checksum)throw new Error("VERSION manifest checksum is missing or invalid");u=n.checksum;for(const[e,t]of Object.entries(n.files)){if("string"!=typeof t||!t.trim())throw new Error(`VERSION manifest contains invalid hash for file: ${e}`);p[this.pathToPosix(e)]=t}if(this.buildManifestChecksum(p)!==n.checksum)throw new Error("VERSION manifest checksum does not match its files map");for(const[e,n]of Object.entries(p)){const s=$.join(t,e),r=await l.promises.readFile(s).catch(()=>null);if(!r)throw new Error(`VERSION manifest references missing file: ${e}`);const i=A.createHash("sha256").update(r).digest("hex");h[e]=i,i!==n&&g.push({relativePath:e,expected:n,actual:i}),this.isTemplateVariablesBasename($.basename(e))&&(d={relativePath:e,content:r,actualHash:i,manifestHash:n})}g.length>0&&this.logger.warn(_.yellow(`[DistService] VERSION manifest hash mismatch for ${g.length} file(s) (confirm in UI): ${g.map(e=>e.relativePath).join(", ")}`))}const f=new Set(g.map(e=>e.relativePath)),m={},y=[];for(const e of r){if(e===a)continue;if(c&&e===c)continue;if(c&&Object.prototype.hasOwnProperty.call(m,e))continue;const n=$.join(t,e),s=await l.promises.readFile(n),r=A.createHash("sha256").update(s).digest("hex");c&&Object.prototype.hasOwnProperty.call(p,e)?m[e]=f.has(e)?h[e]:p[e]:c?(m[e]="__NOT_IN_VERSION_FILE__",y.push(e)):m[e]=r}d||(d=await this.pickTemplateVariablesFromBackupZip(r,t));const w=this.buildBackupFingerprint(m);let v=null;return o&&c&&w!==o.buildFingerprint&&(v={expected:o.buildFingerprint,actual:w},this.logger.warn(_.yellow(`[DistService] Build manifest fingerprint mismatch (confirm in UI): expected ${o.buildFingerprint}, got ${w}`))),{backupFingerprint:w,unknownFiles:y,templateVariables:d,mainHash:u,allFilesInMeta:Boolean(c&&0===y.length),buildManifestMismatch:v,versionManifestHashMismatches:g}}finally{await l.promises.rm(t,{recursive:!0,force:!0})}}async analyzeBackup(e){if("PK"!==e.toString("utf-8").slice(0,4))throw new Error("Backup file is not a ZIP file");return await this.resolveBackupAnalysisFromZip(e)}async getPublicTemplateVariablesHash(){const e=$.resolve(R.cwd(),"public",xe),t=await l.promises.readFile(e).catch(()=>null);return t?A.createHash("sha256").update(t).digest("hex"):null}async saveTemplateVariablesFile(e){const t=$.resolve(R.cwd(),"public",xe);return await l.promises.mkdir($.dirname(t),{recursive:!0}),await l.promises.writeFile(t,e),t}async saveBackup(e,t){const n=t??await this.analyzeBackup(e),s=n.backupFingerprint;if(await this.getLatestSavedBackup()){const{lastBackupHash:e,lastMainHash:t}=this.currentMeta;if(e===s)return void this.logger.info(_.yellow(`[DistService] Backup skipped: same backup fingerprint as last saved (${s.slice(0,12)}...)`));if(n.allFilesInMeta&&n.mainHash&&t===n.mainHash)return void this.logger.info(_.yellow("[DistService] Backup skipped: same VERSION manifest checksum (main hash) and all files listed in VERSION"))}const r=new Date,i=this.backupName(this.pageName,r);return this.currentMeta.lastBackupName=i,this.currentMeta.lastBackupHash=s,this.currentMeta.lastBackupDate=r.toISOString(),n.mainHash?this.currentMeta.lastMainHash=n.mainHash:delete this.currentMeta.lastMainHash,await this.syncMeta(),await l.promises.writeFile($.resolve(this.backupFolder,i),e).finally(()=>{this.logger.info(`Backup saved to ${i}`)})}async buildNewAssets(){if(this.nextBuild)return await this.buildNextAssets();const e=new Promise((e,t)=>{let n="";this.logger.info(_.cyan("[DistService] Build started"));const s=F.spawn("node",[$.resolve(ye,"./bin/pp-dev.js"),"build"],{cwd:R.cwd(),env:Object.assign({},R.env,{NODE_ENV:"production"}),stdio:"inherit"});s.on("message",e=>{n+=e}),s.on("close",s=>{0===s?e(n):t(new Error(`build command exited with code ${s}`))}),s.on("error",e=>{t(e)})});try{await e.finally(()=>{this.logger.info(_.cyan("[DistService] Build finished"))});const t=$.resolve(R.cwd(),this.distZipFolder,this.distZipFilename);if(!await l.promises.stat(t))throw new Error(`File ${t} not found`);return await l.promises.readFile(t)}catch(e){throw N.log(e),e}}async saveBackupAndBuild(e){return await this.saveBackup(e),await this.buildNewAssets()}async buildNextAssets(){const{projectRoot:e,distDir:t}=this.nextBuild;this.logger.info(_.cyan("[DistService] Next.js build started")),await this.runNextBuild(e),this.logger.info(_.cyan("[DistService] Next.js build finished"));const n=$.resolve(e,t);if(!await this.isDirectory(n))throw new Error(`Next.js build output directory not found: ${n}`);return he({outDir:n,packageVersion:this.nextBuild.packageVersion,versionFileTemplate:this.versionFileTemplate,packageRepositoryUrl:this.nextBuild.packageRepositoryUrl,packageBranchName:this.nextBuild.packageBranchName}),await this.zipDirectory(n)}runNextBuild(e){return new Promise((t,n)=>{let s;try{const t=f.createRequire($.join(e,"package.json")).resolve("next/package.json");s=$.resolve($.dirname(t),"dist/bin/next")}catch{return void n(new Error(`Unable to resolve the "next" binary from ${e}. Is Next.js installed?`))}const r=F.spawn(R.execPath,[s,"build"],{cwd:e,env:Object.assign({},R.env,{NODE_ENV:"production"}),stdio:"inherit"});r.on("close",e=>{0===e?t():n(new Error(`next build exited with code ${e}`))}),r.on("error",n)})}async zipDirectory(e){const t=new j,n=async s=>{const r=await l.promises.readdir(s,{withFileTypes:!0});for(const i of r){const r=$.join(s,i.name);if(i.isDirectory())await n(r);else if(i.isFile()){const n=$.relative(e,r).replace(/\\/g,"/");t.file(n,await l.promises.readFile(r))}}};return await n(e),await t.generateAsync({type:"nodebuffer",compression:"DEFLATE"})}async isDirectory(e){try{return(await l.promises.stat(e)).isDirectory()}catch{return!1}}}class Se{server;opts;eventMap;logger;syncActionResolvers=new Map;constructor(e,t){this.server=e,this.opts=t||{},this.eventMap=new Map,this.eventMap.set("info-data:request",this.onInfoDataRequest.bind(this)),this.eventMap.set("template:sync",this.onTemplateSync.bind(this)),this.eventMap.set("template:sync:action-response",this.onTemplateSyncActionResponse.bind(this)),this.logger=V(),this.init()}init(){const{ws:e}=this.server;for(const[t,n]of this.eventMap)e.on(t,n);e.on("close",()=>{this.clearAllPendingSyncActions(!1)}),e.on("error",()=>{this.clearAllPendingSyncActions(!1)})}resolveSyncAction(e,t){const n=this.syncActionResolvers.get(e);n&&(clearTimeout(n.timeoutId),this.syncActionResolvers.delete(e),n.resolve(t))}clearAllPendingSyncActions(e){for(const t of[...this.syncActionResolvers.keys()])this.resolveSyncAction(t,e)}onInfoDataRequest(e,t){t.send("info-data:response",{})}onTemplateSyncActionResponse(e){e&&"string"==typeof e.requestId&&"boolean"==typeof e.approved&&this.resolveSyncAction(e.requestId,e.approved)}async requestSyncAction(e,t){const n=p.randomUUID(),s=this.opts.syncActionTimeoutMs??12e4;return await new Promise(r=>{const i=setTimeout(()=>{this.resolveSyncAction(n,!1)},s);this.syncActionResolvers.set(n,{resolve:r,timeoutId:i}),t.send("template:sync:action-required",{...e,requestId:n})})}async onTemplateSync(e,t){if(!this.opts.distService||!this.opts.miAPI)return t.send("template:sync:response",{error:"Dist service or MiAPI is not defined"}),void this.logger.error(_.red("Dist service or MiAPI is not defined"));{const{distService:e,miAPI:n}=this.opts;try{if(this.server.config.clientInjectionPlugin?.v7Features){if(!n?.isV710OrHigher)return void t.send("template:sync:response",{error:"This feature is available only for MI v7.1.0 or higher",config:{canSync:!1}});t.send("client:config:update",{config:{canSync:!0}})}const s=await(n?.getAssets().catch(async e=>{if(r.isAxiosError(e)){if("SESSION_EXPIRED"===re(e).code){this.logger.info(_.yellow("Session expired - attempting to validate credentials"));try{const e=await(n?.validateCredentials());e&&!e.isValid?(this.logger.error(_.red(`Authentication error: ${e.error}`)),t.send("template:sync:response",{error:e.error,code:e.code,refresh:!0})):(this.logger.info(_.yellow("Session expired")),t.send("template:sync:response",{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0}))}catch(e){this.logger.info(_.yellow("Session expired")),t.send("template:sync:response",{error:"Session expired",code:"SESSION_EXPIRED",refresh:!0})}return e}if(e.cause instanceof Error&&("ECONNRESET"===e.cause.code||"ENOTFOUND"===e.cause.code))return this.logger.info(_.yellow("Server in maintenance mode, VPN connection is needed or no internet connection")),t.send("template:sync:response",{error:"Server in maintenance mode, VPN connection is needed or no internet connection",code:"CONNECTION_ERROR"}),e;const s=e.response?.status;if(502===s||503===s||504===s)return this.logger.info(_.yellow(`Server in maintenance mode or unreachable (HTTP ${s}); VPN may be required`)),t.send("template:sync:response",{error:"Server in maintenance mode, VPN connection is needed or no internet connection",code:"CONNECTION_ERROR"}),e}if(te(e))return this.logger.info(_.yellow("Server in maintenance mode or non-JSON page / page-template API response (unavailable HTML body)")),t.send("template:sync:response",{error:"Server in maintenance mode, VPN connection is needed or no internet connection",code:"CONNECTION_ERROR"}),e;throw e}));if(s instanceof Error)return;let i;if(s){const n=await(e?.analyzeBackup(s).catch(e=>"Backup file is not a ZIP file"===e.message?(this.logger.error(_.red("Backup file is not a ZIP file")),e):e));if(n instanceof Error)i=n;else if(n){await(e?.saveBackup(s,n));const r=0===n.unknownFiles.length&&1===n.versionManifestHashMismatches.length&&$.basename(n.versionManifestHashMismatches[0].relativePath)===xe,a=n.versionManifestHashMismatches,o=a.filter(e=>$.basename(e.relativePath)===xe),c=a.filter(e=>$.basename(e.relativePath)!==xe),l=!r&&o.length>0&&c.length>0,p=r?[]:c.map(e=>e.relativePath),d=async()=>{if(!n.templateVariables||!e)return;const{templateVariables:s}=n;if(await e.getPublicTemplateVariablesHash()!==s.actualHash){await this.requestSyncAction({title:"Template variables (server backup)",content:"The server backup includes __template_variables.json. It differs from your local public/__template_variables.json (or that file is missing). Replace your project copy with the server backup?",confirmText:"Replace from server",cancelText:"Keep local"},t)&&await e.saveTemplateVariablesFile(s.content)}};if(n.unknownFiles.length>0){if(!await this.requestSyncAction({title:"Unknown files found in backup",content:`Backup contains files not listed in VERSION: ${n.unknownFiles.join(", ")}. Continue sync or cancel?`,confirmText:"Continue sync",cancelText:"Cancel sync"},t))return t.send("template:sync:response",{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(_.yellow("Sync cancelled by user"))}if(l&&await d(),!r&&p.length>0){const e=40,n=p,s=n.slice(0,e),r=n.length-s.length,i=s.map(e=>`• ${e}`).join("\n"),a=r>0?`\n... and ${r} more file${1===r?"":"s"}`:"";if(!await this.requestSyncAction({title:"VERSION manifest out of date",content:`These files no longer match the hashes recorded in the VERSION manifest:\n\n${i}${a}\n\nCancel sync, or override and continue using the files on disk?`,confirmText:"Override and continue",cancelText:"Cancel sync"},t))return t.send("template:sync:response",{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(_.yellow("Sync cancelled by user"))}if(!r&&n.buildManifestMismatch&&0===n.versionManifestHashMismatches.length){const{expected:e,actual:s}=n.buildManifestMismatch;if(!await this.requestSyncAction({title:"Build manifest fingerprint mismatch",content:`The recomputed backup fingerprint does not match BUILD-MANIFEST.json.\nManifest: ${e.slice(0,12)}...\nComputed: ${s.slice(0,12)}...\nContinue sync anyway?`,confirmText:"Continue sync",cancelText:"Cancel sync"},t))return t.send("template:sync:response",{cancelled:!0,message:"Sync cancelled by user. Backup was saved."}),void this.logger.info(_.yellow("Sync cancelled by user"))}l||await d(),i=await(e?.buildNewAssets())}}else i=await(e?.buildNewAssets());if(!(i&&i instanceof Buffer))return i instanceof Error?(t.send("template:sync:response",{error:i.message}),void this.logger.error(_.red(i.message))):(t.send("template:sync:response",{error:"Failed to build new assets"}),void this.logger.error(_.red("Failed to build new assets")));{const s=await(n?.updateAssets(i));if("OK"===s?.status){const n=e?.getBackupMeta(),{lastBackupName:s,lastBackupHash:r,lastBackupDate:i}=n||{lastBackupName:"",lastBackupHash:"",lastBackupDate:(new Date).toISOString()};t.send("template:sync:response",{syncedAt:new Date(i),currentHash:r,backupFilename:s}),this.logger.info(_.green("Template synced"))}else t.send("template:sync:response",{error:"Failed to update assets"}),this.logger.error(_.red("Failed to update assets"))}}catch(e){const n=e instanceof Error?e.message:"Template sync failed";return this.logger.error(_.red(`Template sync failed: ${n}`)),void t.send("template:sync:response",{error:n,code:"SYNC_FAILED"})}}}}const Ee=/\.(?:[a-z0-9]+)$/i,Pe=6e5,Ie=104857600,$e=1e3;class Ae extends O.Cache{totalSize=0;maxSize;maxItems;constructor(e,t){super(),this.maxSize=e,this.maxItems=t}put(e,t,n){const s=this.get(e);s&&(this.totalSize-=s.size);const r=super.put(e,t,n);return this.totalSize+=t.size,this.cleanup(),r}cleanup(){const e=this.keys();if(e.length>this.maxItems){const t=e.length-this.maxItems,n=e.sort((e,t)=>{const n=this.get(e),s=this.get(t);return(n?.timestamp||0)-(s?.timestamp||0)});for(let e=0;e<t;e++){const t=n[e],s=this.get(t);s&&(this.totalSize-=s.size,this.del(t))}}for(;this.totalSize>this.maxSize&&e.length>0;){const t=e.sort((e,t)=>{const n=this.get(e),s=this.get(t);return(n?.timestamp||0)-(s?.timestamp||0)})[0];if(t){const e=this.get(t);e&&(this.totalSize-=e.size,this.del(t))}}}getTotalSize(){return this.totalSize}getItemCount(){return this.keys().length}}const Re=new Ae(Ie,$e);function Fe(e){if(0===e.length)return Buffer.alloc(0);if(1===e.length)return e[0];const t=e.reduce((e,t)=>Buffer.byteLength(t)+e,0);return Buffer.concat(e,t)}function Ne(e){const{devServer:t,ttl:n=Pe,maxSize:s=Ie,maxItems:r=$e}=e,i=V();return s===Ie&&r===$e||(Re.maxSize=s,Re.maxItems=r),t.cache=Re,(e,t,s)=>{const r=e.originalUrl||e.url||"",a=function(e){const t=e.split("?")[0];return Ee.test(t)?t.includes("/auth/info.js")?"":e:""}(r);if(!a)return s();const o=Re.get(a);if(o)return i.info(`${_.blue("Proxies request:")} ${_.green(e.method)} ${r} -> ${_.blue("Cache")} ${a}`),function(e,t){try{for(const[n,s]of Object.entries(t))null!=s&&e.setHeader(n,s)}catch(e){console.warn("Failed to set some response headers:",e)}}(t,o.headers),t.write(o.content),void t.end();const c=t.end,l=t.write,p=[];t.write=function(e,n,s){if(!t.hasHeader(Z))return l.call(this,e,n,s);if("string"==typeof e){const t=n||"utf8";p.push(Buffer.from(e,t))}else Buffer.isBuffer(e)?p.push(e):null!=e&&p.push(Buffer.from(String(e),"utf8"));return!0},t.end=function(e,s,r){if(!t.hasHeader(Z))return c.call(this,e,s,r);if(null!=e)if("string"==typeof e){const t=s||"utf8";p.push(Buffer.from(e,t))}else Buffer.isBuffer(e)?p.push(e):p.push(Buffer.from(String(e),"utf8"));let o;try{o=Fe(p);const e=Buffer.byteLength(o);if(e>0&&e<10485760){const s={headers:t.getHeaders(),content:o,timestamp:Date.now(),size:e};Re.put(a,s,n),i.info(`${_.blue("[Cached]")} ${a} (${(e/1024).toFixed(1)}KB)`)}}catch(e){i.error(`Failed to cache response for ${a}: ${e}`),o=Fe(p)}const l=s||"utf8";return c.call(this,o,l,r)},s()}}function Le(e,t){return async(n,s,r)=>{if(await e(n.url??"",n,s)){V().info(`Rewrite response for ${n.url}`);const e=s.end,r=[];s.write=function(e){return r.push(e),!0},s.end=function(i,a,o){"string"==typeof i&&r.push(Buffer.from(i));const c=s.getHeader("content-encoding"),l=function(e,t){switch(t){case"gzip":return v.unzipSync(e);case"br":return v.brotliDecompressSync(e);case"deflate":return v.inflateSync(e);default:return e}}(Buffer.from(Buffer.concat(r)),c),p="function"!=typeof a&&a?a:"utf-8",d="function"==typeof a?a:o;return e.call(this,function(e,t){switch(t){case"gzip":return v.gzipSync(e);case"br":return v.brotliCompressSync(e);case"deflate":return v.deflateSync(e);default:return e}}(t(l,n,s),c),p,d),this}}r()}}function Ce(e,n){const s=(e=(e=e.startsWith("/")?e:`/${e}`).endsWith("/")?e:`${e}/`).endsWith("/")?e.slice(0,-1):e,r=V();return(i,a,o)=>{const c=new t.URL(i.url??"","http://localhost"),{pathname:l,search:p}=c,d=["/",s];if(n&&(d.push(`/pt/${n}`),d.push(`/pl/${n}`)),d.includes(l)){const t=`${e}${p}`;return r.info(_.yellow(`Redirecting to: ${t}`)),M(a,t,302)}o()}}class je{state={isAuthenticated:!1,isRedirected:!1,lastChecked:0};listeners=new Set;getState(){return{...this.state}}isAuthenticated(){return this.state.isAuthenticated}isRedirected(){return this.state.isRedirected}setAuthenticated(e){this.state.isAuthenticated=e,this.state.lastChecked=Date.now(),this.notifyListeners()}setRedirected(e){this.state.isRedirected=e,this.notifyListeners()}updateState(e){void 0!==e.isAuthenticated&&(this.state.isAuthenticated=e.isAuthenticated),void 0!==e.isRedirected&&(this.state.isRedirected=e.isRedirected),this.state.lastChecked=Date.now(),this.notifyListeners()}reset(){this.state={isAuthenticated:!1,isRedirected:!1,lastChecked:0},this.notifyListeners()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notifyListeners(){this.listeners.forEach(e=>{try{e(this.getState())}catch(e){console.error("Error in auth state listener:",e)}})}getDebugInfo(){return{...this.getState(),listenerCount:this.listeners.size}}}const Oe=new je,De=new Map;function Be(e){const t=De.get(e);return t?Date.now()-t.timestamp>18e4?(De.delete(e),null):t.data:null}function Me(e,t){De.set(e,{timestamp:Date.now(),data:t})}const He="/home?proxyRedirect=";function Ue(e,t,n){const{templateLess:s=!1,miHudLess:r=!1,appId:i,base:a,appBase:o,v7Features:c}=n,l=V();if(s&&r&&void 0===i)throw new Error("Custom App ID is required when both templateLess and miHudLess are true");let p=Oe.getState();return Oe.subscribe(e=>{p=e}),async(n,d,u)=>{try{const h=!(s&&r),g=function(e){return e.split("?")[0]}(n.url??""),f=e.test(g),m=!f&&!g.startsWith("/home")&&function(e,t){if(!t||"/"===t)return!0;const n=t.endsWith("/")?t:`${t}/`;return e===n||e===n.slice(0,-1)||e.startsWith(n)}(g,o)&&function(e){const t=e.headers["sec-fetch-dest"];if("string"==typeof t)return"document"===t;const n=e.headers.accept;return"string"==typeof n&&n.includes("text/html")}(n);if(!p.isAuthenticated&&!p.isRedirected&&n.url?.startsWith("/home")&&!n.url?.startsWith(He)){l.info(_.blue("Trying to authenticate and redirect to base"));try{return h?await _e(t,{templateLess:s,miHudLess:r,appId:i,redirectUrl:c&&a?`${a}`:`${He}${encodeURIComponent("/")}`},n,d,()=>{},l):await Ve(t,{templateLess:s,miHudLess:r,appId:i,redirectUrl:c&&a?`${a}`:`${He}${encodeURIComponent("/")}`},n,d,()=>{},l),Oe.setRedirected(!0),l.info(_.blue("Successfully authenticated. Redirecting to base")),M(d,a??"/",302)}catch(e){return u()}}if(!f&&!m)return u();if(!h){return await Ve(t,{templateLess:s,miHudLess:r,appId:i,redirectUrl:c&&a?`${a}`:`${He}${encodeURIComponent("/")}`},n,d,u,l)}return await _e(t,{templateLess:s,miHudLess:r,appId:i,redirectUrl:c&&a?`${a}`:`${He}${encodeURIComponent("/")}`},n,d,u,l)}catch(e){return l.error(_.red(`Unexpected error in load-pp-data middleware: ${e instanceof Error?e.message:String(e)}`)),Oe.reset(),u(e)}}}async function Ve(e,t,n,s,r,i){const{appId:a,redirectOnAuthFailure:o,redirectUrl:c}=t;if(void 0===a){const e=new Error("Custom App ID is required for page info only mode");return i.error(_.red(e.message)),r(e)}const l=n.headers??{};i.info(_.green("Start loading page info"));try{const t=`pageInfo:${a}`;return Be(t)?(i.info(_.green("Page info loaded from cache")),r()):(await e.getPageInfo(a,l),i.info(_.blue("Clearing proxy cache after successful login")),Re.clear(),Me(t,{success:!0}),Oe.updateState({isAuthenticated:!0}),i.info(_.green("Page info loaded successfully")),r())}catch(e){return Oe.reset(),ze(e,o??!0,c||`${He}${encodeURIComponent("/")}`,s,r,i,"Page info")}}async function _e(e,t,n,s,r,i){const{templateLess:a,appId:o,redirectOnAuthFailure:c,redirectUrl:l}=t,p=n.headers??{};i.info(_.green("Start loading page data"));try{const t=`pageData:${a}:${o}`;if(Be(t))return i.info(_.green("Page data loaded from cache")),r();const n=a||void 0===o?e.getPageTemplate(p):e.getPageVariables(o,p);return await n,i.info(_.blue("Clearing proxy cache after successful login")),Re.clear(),Me(t,{success:!0}),i.info(_.green("Page data loaded successfully")),r()}catch(e){return Oe.reset(),ze(e,c??!0,l||`${He}${encodeURIComponent("/")}`,s,r,i,"Page data")}}function ze(e,t,n,s,r,i,a){if(function(e){return null!==e&&"object"==typeof e&&"response"in e&&void 0!==e.response}(e)&&(i.info(_.red(`${a} loading failed. Not authorized`)),t)){const e=`${n}`;return i.info(_.yellow(`Redirecting to: ${e}`)),M(s,e,302)}const o=e instanceof Error?e.message:String(e);return i.info(_.red(`${a} loading failed. Error: ${o}`)),r(e)}function qe(){const e=D();return e.use(D.json()),e.use(D.urlencoded({extended:!0})),e}const Ze=qe();function We(e,t,n){return t(e)?{isValid:!0}:{isValid:!1,error:n}}exports.AuthProvider=je,exports.ClientService=Se,exports.DistService=Te,exports.MiAPI=oe,exports.authProvider=Oe,exports.colors=_,exports.createLogger=V,exports.initLoadPPData=Ue,exports.initPPRedirect=Ce,exports.initProxy=W,exports.initProxyCache=Ne,exports.initRewriteResponse=Le,exports.internalServer=Ze,exports.normalizeVitePPDevConfig=function(e){const t=function(e){const t=[We(e,e=>"object"==typeof e&&null!==e,"VitePPDevOptions must be an object"),We(e.templateName,e=>"string"==typeof e&&e.length>0,"VitePPDevOptions.templateName must be a non-empty string"),We(e.backendBaseURL,e=>void 0===e||"string"==typeof e&&e.length>0,"VitePPDevOptions.backendBaseURL must be a non-empty string if provided"),We(e.portalPageId,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.portalPageId must be a positive number if provided"),We(e.appId,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.appId must be a positive number if provided"),We(e.proxyCacheTTL,e=>void 0===e||"number"==typeof e&&e>0,"VitePPDevOptions.proxyCacheTTL must be a positive number if provided"),We(e.integrateMiTopBar,t=>{if(void 0===t)return!0;if(null===t)return!1;if("boolean"!=typeof t&&"object"!=typeof t)return!1;if(!0===t&&!0!==e.miHudLess)return!1;if("object"==typeof t&&null!==t){if(void 0!==t.addRootElement&&"boolean"!=typeof t.addRootElement)return!1;if(void 0!==t.addSharedComponentsScripts&&"boolean"!=typeof t.addSharedComponentsScripts)return!1;if(!0!==e.miHudLess&&(!0===t.addRootElement||!0===t.addSharedComponentsScripts))return!1}return!0},"VitePPDevOptions.integrateMiTopBar must be a boolean or an object with addRootElement and addSharedComponentsScripts booleans")];return t.find(e=>!e.isValid)||{isValid:!0}}(e);if(!t.isValid)throw new Error(t.error);const n=e.appId??e.portalPageId,{enableProxyCache:s=!0,proxyCacheTTL:r=6e5,disableSSLValidation:i=!1,imageOptimizer:a=!0,miHudLess:o=!1,integrateMiTopBar:c=!1,templateLess:l=!1,outDir:p="dist",distZip:d=!0,versionPlugin:u=!0,syncBackupsDir:h="backups",v7Features:g=!1,personalAccessToken:f=process.env.MI_ACCESS_TOKEN}=e||{};let m=d;m=!0===m?{outFileName:`${e.templateName}.zip`,outDir:"dist-zip"}:"object"==typeof d&&{outFileName:"string"==typeof d.outFileName?d.outFileName.replace("[templateName]",e.templateName):`${e.templateName}.zip`,outDir:d.outDir??"dist-zip"};let y=a;"boolean"==typeof a?!0===y&&(y={}):"object"!=typeof a&&(y=!1);const w="VERSION-v{packageversion}-{currentDate}.json";let v;return v=!1!==u&&(!0===u?{versionFileTemplate:w,enabled:!0}:{versionFileTemplate:u.versionFileTemplate??w,enabled:u.enabled??!0}),{enableProxyCache:s,proxyCacheTTL:r,disableSSLValidation:i,imageOptimizer:y,templateLess:l,miHudLess:o,outDir:p,distZip:m,versionPlugin:v,syncBackupsDir:h,v7Features:g,personalAccessToken:f,portalPageId:n,integrateMiTopBar:c,...e}},exports.urlReplacer=B,exports.vitePPDev=function(e){const{templateName:t,templateLess:n,backendBaseURL:s,miHudLess:r,portalPageId:i,appId:a,enableProxyCache:o,proxyCacheTTL:c,disableSSLValidation:l,distZip:p,versionPlugin:d,syncBackupsDir:u,v7Features:h,personalAccessToken:g}=e||{};let f=!0;process.cwd();const m=a??i;return{name:"vite-pp-dev",apply:"serve",config:e=>{const r=function(e){return[We(e.base,e=>"string"==typeof e&&e.length>0&&"/"!==e,'Server base path cannot be empty or "/"'),We(e.port,e=>void 0===e||"number"==typeof e&&e>0&&e<65536,"Server port must be a valid port number (1-65535)")].find(e=>!e.isValid)||{isValid:!0}}({base:e.base||"",...e.server});if(!r.isValid)throw new Error(r.error);return e.clientInjectionPlugin={backendBaseURL:s,portalPageId:m,templateLess:n,v7Features:h},h&&(e.base=`/pl/${t}`),e},transformIndexHtml:async(e,t)=>{const n={html:e,tags:[]};return f&&(f=!1,n.tags.push({tag:"script",injectTo:"body",children:`${Math.random()}`})),n},configureServer:i=>{let a=i.config.base;a.endsWith("/")||(a+="/");const f=a.substring(0,a.lastIndexOf("/"));if(i.middlewares.use(Ce(a,t)),s){const w=new URL(s).host,v={headers:{host:w,referer:s,origin:s.replace(/^(https?:\/\/)([^/]+)(\/.*)?$/i,"$1$2")},portalPageId:m,appId:m,templateLess:n,disableSSLValidation:l,v7Features:h,personalAccessToken:g??process.env.MI_ACCESS_TOKEN},b=[We((y=v).headers,e=>"object"==typeof e&&"string"==typeof e.host&&"string"==typeof e.referer&&"string"==typeof e.origin,"MiAPI headers must be properly configured"),We(y.portalPageId,e=>void 0===e||"number"==typeof e&&e>0,"MiAPI portalPageId must be a positive number if provided"),We(y.appId,e=>void 0===e||"number"==typeof e&&e>0,"MiAPI appId must be a positive number if provided"),We(y.personalAccessToken,e=>void 0===e||"string"==typeof e,"MiAPI personalAccessToken must be a string if provided")].find(e=>!e.isValid)||{isValid:!0};if(!b.isValid)throw new Error(b.error);const k=new oe(s,v);if(o){let e=+c;(!e||Number.isNaN(e)||e<0)&&(e=6e5);const t={devServer:i,ttl:e},n=function(e){return[We(e.ttl,e=>"number"==typeof e&&e>0,"Proxy cache TTL must be a positive number")].find(e=>!e.isValid)||{isValid:!0}}(t);if(!n.isValid)throw new Error(n.error);i.middlewares.use(Ne(t))}const x=new RegExp(`^((${a})|/)$`);i.middlewares.use(Ue(x,k,Object.assign({},e,{appId:m,portalPageId:m,appBase:a}))),i.middlewares.use(W({baseURL:s,proxyIgnore:["/@vite","/@metricinsights","/@",f],disableSSLValidation:l,miAPI:k,templateName:t}));const T=(e,t,n,s,r)=>{const i={error:n};s&&(i.details=s),r&&(i.code=r),e.status(t).json(i).end()},S=(e,t,n)=>{i.config.logger.error(`${n} token validation error:`,t);const s=re(t);if(t.tokenErrorInfo){const n=t.tokenErrorInfo;i.config.logger.info(`Using enhanced error info: ${n.code} - ${n.userFriendlyMessage}`);const s=n.status||500,r=n.code,a=n.userFriendlyMessage,o=n.message;T(e,s,a,o,r)}else{let t,r,a;switch(i.config.logger.info(`Using original error info: ${s.code} - ${s.userFriendlyMessage}`),s.code){case"SESSION_EXPIRED":t=412,r="personal"===n?"Personal access token expired":"Session expired",a="personal"===n?"PAT_EXPIRED":"SESSION_EXPIRED";break;case"UNAUTHORIZED":t=401,r="Unauthorized",a="UNAUTHORIZED";break;case"FORBIDDEN":t=403,r="Access forbidden",a="FORBIDDEN";break;default:t=500,r="Internal server error",a=s.code}const o="personal"===n&&"PAT_EXPIRED"===a?"Your personal access token has expired. Please generate a new token from the portal.":"regular"===n&&"SESSION_EXPIRED"===a?"Your portal session has expired. Please refresh your token or re-authenticate.":s.userFriendlyMessage;T(e,t,r,o,a)}return null},E=qe();E.post("/@api/login",async(e,t,n)=>{const{token:s,tokenType:r}=e.body;if(s)if(i.config.logger.info(`Attempting to validate ${r} token...`),"personal"===r){if(!await k.get("/data/page/index/auth/info",{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${s}`},!0).then(async e=>"number"==typeof e.data?.user?.user_id?(k.personalAccessToken=s,i.config.logger.info(`Personal access token validated successfully for user ${e.data.user.user_id}`),e):(T(t,400,"Token expired or invalid"),null)).catch(e=>S(t,e,"personal")))return;M(t,"/",302)}else if("regular"===r){if(!await k.get("/api/user",{"Content-Type":"application/json",Accept:"application/json",Token:s},!0).then(e=>e.data?.users?.length?(k.personalAccessToken=void 0,i.config.logger.info(`Regular token validated successfully for ${e.data.users.length} user(s)`),t.setHeader("set-cookie",e.headers["set-cookie"]??""),e):(T(t,400,"Token expired or invalid"),null)).catch(e=>S(t,e,"regular")))return;M(t,"/",302)}else T(t,400,"Invalid tokenType",'tokenType must be "personal" or "regular".',"INVALID_TOKEN_TYPE");else T(t,400,"Token is required")}),i.middlewares.use(E);const P=!1!==p?new Te(t,Object.assign({backupDir:u},"object"==typeof p?{distZipFolder:p.outDir,distZipFilename:p.outFileName}:void 0,"object"==typeof d?{versionFileTemplate:d.versionFileTemplate}:void 0)):void 0;return new Se(i,{distService:P,miAPI:k}),()=>{i.middlewares.use(Le(e=>e.split("?")[0].endsWith("index.html"),(e,t)=>Buffer.from(B(w,t.headers.host??"",k.buildPage(e,r)))))}}var y}}},exports.writeBuildVersionManifest=he;
2
- //# sourceMappingURL=plugin-CqahMAGe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-CqahMAGe.js","sources":["../../../src/lib/helpers/url.helper.ts","../../../src/lib/logger.ts","../../../src/lib/helpers/color.helper.ts","../../../src/lib/helpers/login.helper.ts","../../../src/lib/proxy-pass.middleware.ts","../../../src/api/base.ts","../../../src/api/assets.ts","../../../src/api/assets-v7.ts","../../../src/api/unavailable-json-api.ts","../../../src/api/page.ts","../../../src/api/page-template.ts","../../../src/lib/helpers/token.helper.ts","../../../src/lib/pp.middleware.ts","../../../src/lib/version-manifest.ts","../../../src/lib/dist.service.ts","../../../src/lib/client.service.ts","../../../src/lib/proxy-cache.middleware.ts","../../../src/lib/rewrite-response.middleware.ts","../../../src/lib/helpers/content-encoding.helper.ts","../../../src/lib/pp-redirect.middleware.ts","../../../src/lib/auth.provider.ts","../../../src/lib/load-pp-data.middleware.ts","../../../src/lib/internal.middleware.ts","../../../src/plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["urlReplacer","originalHost","destinationHost","content","urlReplaceRegExp","RegExp","replace","substring","args","startsWith","redirect","res","url","statusCode","setHeader","end","storage","Map","DEFAULT_LOGGER_KEY","createLogger","level","name","has","get","logger","cL","set","colors","createColors","tokenLoginFunction","TOKEN_TYPE_CONFIG","personal","placeholder","caption","host","endpoint","regular","updateTokenUI","type","tokenInput","tokenCaption","info","innerHTML","showError","message","errorElement","textContent","classList","add","hideError","remove","setupEventHandlers","formWrapper","submitButton","addEventListener","async","e","preventDefault","value","trim","focus","tokenTypeSwitcher","document","getElementById","activeOption","querySelector","tokenType","dataset","token","response","fetch","method","headers","body","JSON","stringify","URL","window","location","origin","pathname","json","error","parseError","href","networkError","handleFormSubmission","key","click","initializeLoginForm","loginForm","contentWrapper","firstChild","rowTemplate","lastChild","cloneNode","orRow","innerText","setAttribute","helperForm","formContent","createElement","styleElement","head","appendChild","tokenTypeOptions","querySelectorAll","handleTokenTypeChange","target","forEach","opt","option","currentTarget","setupTokenTypeSwitcher","console","formSelector","observer","MutationObserver","mutations","mutation","disconnect","observe","childList","subtree","existingForm","hostOriginRegExp","PROXY_HEADER","initProxy","opts","rewritePath","baseURL","disableSSLValidation","miAPI","templateName","Error","fileType","import","createProxyMiddleware","selfHandleResponse","pathFilter","req","proxyIgnore","some","test","Array","isArray","rP","changeOrigin","autoRewrite","cookieDomainRewrite","log","warn","secure","on","proxyReq","referer","getHeader","personalAccessToken","originalUrl","rewritten","requestUrl","v7Features","internalPageName","u","m","match","segmentDecoded","decodeURIComponent","search","hash","rewriteDataPagePathForV7Proxy","path","cyan","yellow","blue","green","protocol","socket","setMaxListeners","once","setTimeout","destroyed","destroy","proxyRes","serverRes","includes","streamInterceptor","setHeaders","Object","entries","pipe","rewriteInterceptor","responseInterceptor","responseBuffer","fileTypeFromBuffer","toString","reqUrl","searchParams","redirectToFunction","storageKey","lastRedirectKey","redirectCount","localStorage","getItem","Number","isNaN","func","params","URLSearchParams","debug","removeItem","setItem","Date","toISOString","slice","reqHost","urlPath","destinationPath","unescapedUrlReplaceRegExp","replacedContent","urlPathReplacer","err","errorMessage","stack","writable","writeHead","BaseAPI","axios","constructor","this","checkAuth","assign","accept","maxRedirects","then","catch","AssetsAPI","formdataModulePromise","super","getDownloadUrl","portalPageId","getDownloadTemplateUrl","templateId","getUploadUrl","getUploadTemplateUrl","downloadPageAssets","withCredentials","responseType","data","uploadPageAssets","file","formData","FormData","File","assetFile","append","post","Referer","getUri","downloadTemplateAssets","uploadTemplateAssets","AssetsV7API","PAGE_DATA_FETCH_FRAGMENT","PAGE_TEMPLATE_FETCH_FRAGMENT","MAINTENANCE_SUFFIX","unavailablePageTemplateDataError","isUnavailableJsonApiError","PageAPI","getAll","Accept","Pragma","Expires","pages","id","page","getPageContent","create","PageTemplateAPI","internal_name","page_templates","page_template","getTokenErrorInfo","status","lowerMessage","toLowerCase","code","userFriendlyMessage","suggestions","TEMPLATE_PAGE_NAME","axiosInstanceCache","MiAPI","pageTemplate","pageTitle","pageVars","isV710OrHigher","templateLoaded","templateLoadedResolve","templateLess","assetsApi","pageApi","pageTemplateApi","Promise","resolve","cacheKey","process","env","NODE_TLS_REJECT_UNAUTHORIZED","httpsAgent","https","Agent","keepAlive","rejectUnauthorized","timeout","httpAgent","http","defaults","isTemplateLoaded","clearHeaders","obj","undefined","keys","authorization","escapeRegExp","updateHeaders","localTemplateHTML","getPageTemplate","red","template_id","find","p","enabled","visible_in_homepage","getPageVariables","pageId","tags","template","parsed","parse","reason","getPageInfo","pageIdToFetch","fetchV7Page","fetchLegacyPage","handlePageFetchError","buildPage","miHudLess","result","v","escapedName","pageVarRegex","dom","JSDOM","placeholderText","container","scripts","length","insertBefore","item","title","text","titleEl","serialize","getAssets","pageInfo","templateInfo","updateAssets","assets","validateCredentials","testHeaders","isValid","errorInfo","cleanup","normalizedHeaders","context","contextPrefix","suggestion","index","logTokenError","tokenErrorInfo","BUILD_MANIFEST_FILE_NAME","walkDir","dir","baseDir","excludeFiles","Set","readdirSync","withFileTypes","files","entry","fullPath","join","relativePath","relative","isDirectory","push","isFile","sha256OfContent","filePath","readFileSync","createHash","update","digest","stripUrlUserInfo","normalizeRepositoryUrl","normalizedUrl","scpLikeMatch","repositoryPath","sshProtocolMatch","gitProtocolMatch","writeBuildVersionManifest","config","outDir","versionFileTemplate","packageVersion","outDirResolved","cwd","statSync","throwIfNoEntry","manifestDate","resolvedVersionFileTemplate","versionFileName","currentDate","resolveVersionFileName","allPaths","checksum","hashesConcatenated","sort","map","computeChecksum","buildFingerprint","normalizedEntries","computeBuildFingerprint","helperVersion","modulePath","fileURLToPath","currentDir","dirname","packageJsonPath","packageStat","packageJson","version","parentDir","resolveHelperVersion","branchName","configBranchName","ciBranchEnvVars","variableName","currentBranchName","execSync","encoding","stdio","resolveBranchName","packageBranchName","manifest","schemaVersion","date","repositoryUrl","packageRepositoryUrl","manifestPath","buildManifestPath","buildManifest","manifestType","generatedAt","versionFile","versionFileSchemaVersion","compat","versionFileRequired","writeFileSync","TEMPLATE_PART_PAGE_NAME","TEMPLATE_PART_DATE","DIRNAME","__filename","require","pathToFileURL","_documentCurrentScript","tagName","toUpperCase","src","baseURI","pluginPath","node_modules_path","metaDirPath","metaFilePath","TEMPLATE_VARIABLES_FILE_NAME","DistService","backupFolder","backupNameTemplate","dateFormat","pageName","currentMeta","distZipFolder","distZipFilename","nextBuild","syncOptions","syncMeta","checkMeta","fs","stat","mkdir","readMetaFile","readFile","writeMetaFile","meta","writeFile","getLatestSavedBackup","lastBackupName","backupPath","backupName","getBackupMeta","pathToPosix","normalizeExtractedRootDir","extractedDir","readdir","listFilesRecursive","rootDir","buildManifestChecksum","crypto","buildBackupFingerprint","versionFileTemplateMatcher","placeholderPattern","segments","lastIndex","exec","staticPart","trailingStaticPart","isTemplateVariablesBasename","fileBasename","pickTemplateVariablesFromBackupZip","relativePaths","contentRootDir","basename","absolutePath","fileData","actualHash","manifestHash","resolveBackupAnalysisFromZip","backupFile","tempDir","mkdtemp","os","tmpdir","zipPath","recursive","extractZip","buildManifestCandidates","filter","buildManifestAbsolutePath","versionManifestPath","requestedVersionFile","exactMatchCandidates","basenameMatchCandidates","resolvedCandidates","versionFileMatcher","versionManifestCandidates","normalizedManifestFiles","templateVariables","manifestChecksum","manifestFileActualHashes","versionManifestHashMismatches","versionManifestAbsolutePath","expectedHash","expected","actual","mismatchedManifestPaths","fingerprintFiles","unknownFiles","prototype","hasOwnProperty","call","backupFingerprint","buildManifestMismatch","mainHash","allFilesInMeta","Boolean","rm","force","analyzeBackup","getPublicTemplateVariablesHash","templateVariablesPath","saveTemplateVariablesFile","saveBackup","precomputedAnalysis","resolvedAnalysis","resolvedBackupFileHash","lastBackupHash","lastMainHash","backupDate","filename","lastBackupDate","finally","buildNewAssets","buildNextAssets","buildCommand","reject","proc","child_process","spawn","NODE_ENV","msg","saveBackupAndBuild","projectRoot","distDir","runNextBuild","zipDirectory","nextBin","nextPkgPath","createRequire","execPath","zip","JSZip","addDir","current","full","generateAsync","compression","ClientService","server","eventMap","syncActionResolvers","onInfoDataRequest","bind","onTemplateSync","onTemplateSyncActionResponse","init","ws","event","handler","clearAllPendingSyncActions","resolveSyncAction","requestId","approved","clearTimeout","timeoutId","delete","_data","client","send","payload","requestSyncAction","randomUUID","timeoutMs","syncActionTimeoutMs","distService","clientInjectionPlugin","canSync","currentAssets","isAxiosError","validation","refresh","validationError","cause","httpStatus","newAssets","backupAnalysis","onlyTemplateVariablesMismatch","mm","templateVarMismatches","otherManifestMismatches","mixedTemplateAndOthers","pathsForVersionModal","promptReplaceTemplateVariables","confirmText","cancelText","cancelled","maxPaths","paths","listed","remainder","fileList","suffix","Buffer","updateResult","backupMeta","backupFilename","currentHash","syncedAt","syncError","FILE_EXTENSION_REGEX","DEFAULT_TTL","DEFAULT_MAX_SIZE","DEFAULT_MAX_ITEMS","EnhancedCache","memoryCache","Cache","totalSize","maxSize","maxItems","put","ttl","oldItem","size","itemsToRemove","sortedKeys","a","b","itemA","itemB","timestamp","i","del","oldestKey","getTotalSize","getItemCount","cache","createResponseBuffer","chunks","alloc","totalLength","reduce","sum","chunk","byteLength","concat","initProxyCache","devServer","next","cleanUrl","split","generateCacheKey","cacheItem","header","setResponseHeaders","write","originalEnd","originalWrite","callback","hasHeader","safeEncoding","from","isBuffer","String","finalBuffer","responseSize","getHeaders","now","toFixed","finalEncoding","initRewriteResponse","predicate","rewrite","buffers","cb","contentEncoding","unzipSync","brotliDecompressSync","inflateSync","decodeContent","bufferEncoding","endCallback","gzipSync","brotliCompressSync","deflateSync","encodeContent","initPPRedirect","base","baseWithoutTrailingSlash","endsWith","parsedUrl","findPaths","redirectUrl","AuthProvider","state","isAuthenticated","isRedirected","lastChecked","listeners","getState","setAuthenticated","authenticated","notifyListeners","setRedirected","redirected","updateState","updates","reset","subscribe","listener","getDebugInfo","listenerCount","authProvider","apiResponseCache","getCachedResponse","cached","setCachedResponse","DEFAULT_REDIRECT_URL","initLoadPPData","applyUrlRegExp","mi","appId","appBase","authState","isNeedTemplateLoad","requestPath","cutUrlParams","isApplyRequest","isAppNavigation","normalizedBase","isUnderBase","dest","isHtmlDocumentRequest","handleTemplateLoad","encodeURIComponent","handlePageInfoOnly","options","redirectOnAuthFailure","clear","success","handleLoadError","loadPageData","operationType","isAuthError","fullRedirectUrl","createInternalServer","app","express","use","urlencoded","extended","internalServer","validateConfigValue","validator","validationResult","validations","c","backendBaseURL","proxyCacheTTL","integrateMiTopBar","integrate","addRootElement","addSharedComponentsScripts","validateConfig","enableProxyCache","imageOptimizer","distZip","versionPlugin","syncBackupsDir","MI_ACCESS_TOKEN","distZipConfig","outFileName","imageOptimizerConfig","versionPluginDefaultTemplate","versionPluginConfig","isFirstRequest","normalizedAppId","apply","port","validateServerConfig","transformIndexHtml","html","ctx","tag","injectTo","children","Math","random","configureServer","lastIndexOf","middlewares","baseUrlHost","miConfig","cacheConfig","validateProxyCacheConfig","isIndexRegExp","proxyPassMiddleware","sendErrorResponse","details","handleTokenValidationError","enhancedErrorInfo","errorCode","Authorization","user","user_id","Token","users","backupDir"],"mappings":"o1BAiBaA,EAAc,CAACC,EAAsBC,EAAyBC,KACzE,MAAMC,EAAmB,IAAIC,OAAO,kCAAkCJ,KAAiB,MAEvF,OAAOE,EAAQG,QAAQF,EAAkB,CAACG,KAAcC,IAClDD,EAAUE,WAAW,MAChBD,EAAK,GAGP,OAAOA,EAAK,KAAKN,MAefQ,EAAW,CAACC,EAAqBC,EAAaC,KACzDF,EAAIG,UAAU,WAAYF,GAC1BD,EAAIE,WAAaA,EAEjBF,EAAII,OC1CN,IAAIC,EAA2C,IAAIC,IAE5C,MAAMC,EAAqB,UAErBC,EAAe,CAACC,EAAkB,OAAQC,EAAOH,KAM5D,GAJKF,GAAkC,mBAAhBA,EAAQM,MAC7BN,EAAU,IAAIC,KAGZD,EAAQM,IAAID,GACd,OAAOL,EAAQO,IAAIF,GAGrB,GAAIA,IAASH,EAAoB,CAC/B,MAAMM,EAASC,EAAAA,aAAGL,GAIlB,OAFAJ,EAAQU,IAAIL,EAAMG,GAEXA,CACT,CAEA,MAAMA,EAASC,EAAAA,aAAGL,GAIlB,OAFAJ,EAAQU,IAAIL,EAAMG,GAEXA,GC1BIG,EAASC,EAAAA,eCATC,EAAqB,WAKhC,MAAMC,EAAoB,CACxBC,SAAU,CACRC,YAAa,YACbC,QAAS,uDACYC,uGAErBC,SAAU,eAEZC,QAAS,CACPJ,YAAa,eACbC,QAAS,0DACYC,2GAErBC,SAAU,gBA8Kd,SAASE,EAAcC,EAAiBC,EAA8BC,GACpE,MAAMC,EAAOX,EAAkBQ,GAE3BG,IACFF,EAAWP,YAAcS,EAAKT,YAC9BQ,EAAaE,UAAYD,EAAKR,QAElC,CAEA,SAASU,EAAUC,EAAiBC,GAClCA,EAAaC,YAAcF,EAC3BC,EAAaE,UAAUC,IAAI,OAC7B,CAEA,SAASC,EAAUJ,GACjBA,EAAaE,UAAUG,OAAO,OAChC,CAwFA,SAASC,EACPC,EACAb,EACAc,EACAR,GAGAQ,EAAaC,iBAAiB,QAASC,MAAOC,IAI5C,GAHAA,EAAEC,iBACFR,EAAUJ,IAELN,EAAWmB,MAAMC,OAIpB,OAHAhB,EAAU,GAAGJ,EAAWP,0BAA2Ba,QACnDN,EAAWqB,QAKb,MAAMC,EAAoBC,SAASC,eAAe,uBAC5CC,EAAeH,GAAmBI,cAAc,6BAChDC,EAAaF,GAAcG,QAAQT,OAAS,iBA/DtDH,eACEa,EACAF,EACAd,EACAP,GAEA,IAEEO,EAAYL,UAAUC,IAAI,WAE1B,MAAMqB,QAAiBC,MAAM,cAAe,CAC1CC,OAAQ,OACRC,QAAS,CACP,eAAgB,oBAElBC,KAAMC,KAAKC,UAAU,CAAEP,QAAOF,cAC9BxD,SAAU,WAGNE,EAAMyD,EAASzD,KAAO,IAAIgE,IAAIP,EAASzD,IAAKiE,OAAOC,SAASC,QAElE,IAAInE,GAAQA,EAAIoE,SAASvE,WAAW,WAAcG,EAAIoE,SAASvE,WAAW,UAKxE,IACE,MAAMwE,QAAaZ,EAASY,OAG5BtC,EAAU,iBAFWsC,GAAMC,OAAS,2BAEOrC,EAC7C,CAAE,MAAOsC,GACPxC,EAAU,yCAA0CE,EACtD,MAVAgC,OAAOC,SAASM,KAAOf,EAASzD,GAYpC,CAAE,MAAOyE,GACP1C,EAAU,6DAA8DE,EAC1E,SAEEO,EAAYL,UAAUG,OAAO,UAC/B,CACF,CAwBUoC,CAAqB/C,EAAWmB,MAAMC,OAAQO,EAAWd,EAAaP,KAI9EN,EAAWe,iBAAiB,UAAYE,IACxB,UAAVA,EAAE+B,MACJ/B,EAAEC,iBACFJ,EAAamC,WAKjBjD,EAAWe,iBAAiB,QAAS,KACnCL,EAAUJ,IAEd,CAEA,SAAS4C,EAAoBC,GAC3B,MAAMC,EAAiBD,EAAUE,WAEjC,IAAKD,EACH,OAIF,MAAME,EAAeF,EAAeG,WAA8BC,WAAU,GAE5E,IAAKF,EACH,OAGFA,EAAYnD,UAAY,GAExB,MAAMsD,EAAQH,EAAYE,WAAU,GAEpCC,EAAMC,UAAY,KAClBD,EAAME,aAAa,OAAQ,aAC3BF,EAAME,aAAa,aAAc,4BAEjC,MAAMC,EAAaN,EAAYE,WAAU,GACnCK,EAActC,SAASuC,cAAc,OAGrCC,EAAexC,SAASuC,cAAc,SAE5CC,EAAaxD,YArVe,0iFAsV5BgB,SAASyC,KAAKC,YAAYF,GAE1BF,EAAY1D,UAnNL,41BAuBcR,iWA6LrBiE,EAAWK,YAAYJ,GAGvBT,EAAea,YAAYR,GAC3BL,EAAea,YAAYL,GAG3B,MAAMtC,EAAoBC,SAASC,eAAe,uBAC5CxB,EAAauB,SAASC,eAAe,gBACrCvB,EAAesB,SAASC,eAAe,iBACvCV,EAAeS,SAASC,eAAe,uBACvClB,EAAeiB,SAASC,eAAe,iBACvCX,EAAcgD,EAAYnC,cAAc,yBAEzCJ,GAAsBtB,GAAeC,GAAiBa,GAAiBR,GAAiBO,IA3K/F,SACES,EACAtB,EACAC,GAEA,MAAMiE,EAAmB5C,EAAkB6C,iBAAiC,sBAEtEC,EAAyBC,IAC7B,MAAMlD,EAAQkD,EAAOzC,QAAQT,MAG7B+C,EAAiBI,QAASC,IACxBA,EAAI/D,UAAUG,OAAO,UACrB4D,EAAIZ,aAAa,gBAAiB,SAClCY,EAAIZ,aAAa,WAAY,QAG/BU,EAAO7D,UAAUC,IAAI,UACrB4D,EAAOV,aAAa,gBAAiB,QACrCU,EAAOV,aAAa,WAAY,KAGhC7D,EAAcqB,EAAOnB,EAAYC,IAInCiE,EAAiBI,QAASE,IACxBA,EAAOzD,iBAAiB,QAAUE,IAChC,MAAMoD,EAASpD,EAAEwD,cAEjBL,EAAsBC,KAIxBG,EAAOzD,iBAAiB,UAAYE,IACpB,UAAVA,EAAE+B,KAA6B,MAAV/B,EAAE+B,MACzB/B,EAAEC,iBACFkD,EAAsBI,OAI9B,CAyIEE,CAAuBpD,EAAmBtB,EAAYC,GACtDW,EAAmBC,EAAab,EAAYc,EAAcR,GAG1DR,EAAc,WAAYE,EAAYC,IAVpC0E,QAAQhC,MAAM,wCAWlB,CAEA,MAAMiC,EAAe,qFAGfC,EAAW,IAAIC,iBAAkBC,IACrC,IAAK,MAAMC,KAAYD,EACrB,GAAsB,cAAlBC,EAASjF,KAAsB,CACjC,MAAMoD,EAAY5B,SAASG,cAA+BkD,GAE1D,GAAIzB,EAAW,CACb0B,EAASI,aACT/B,EAAoBC,GAEpB,KACF,CACF,IAKJ0B,EAASK,QAAQ3D,SAASW,KAAM,CAC9BiD,WAAW,EACXC,SAAS,IAIX,MAAMC,EAAe9D,SAASG,cAA+BkD,GAEzDS,IACFR,EAASI,aACT/B,EAAoBmC,GAExB,ECjZMC,EAAmB,iCACZC,EAAe,aAatB,SAAUC,EAAUC,GACxB,MAAMC,YACJA,EAAc,kBAAiBC,QAC/BA,EAAU,GAAEC,qBAEZA,GAAuB,EAAKC,MAC5BA,EAAKC,aACLA,GACEL,EAEJ,IAAKE,EACH,MAAM,IAAII,MAAM,wBAGlB,MAAMpG,EAAOgG,EAAQ5H,QAAQuH,EAAkB,MACzC9C,EAASmD,EAAQ5H,QAAQuH,EAAkB,QAE3CU,EAAWC,OAAO,aAElBhH,EAASL,IAEf,OAAOsH,wBAAsB,CAI3BC,oBAAoB,EAEpBC,WAAY,CAAC3D,EAAU4D,MAElBZ,EAAKa,aAAe,IAAIC,KAAMpF,GACR,iBAAVA,EACFsB,EAASvE,WAAWiD,GACI,mBAAfA,EAAMqF,MACfrF,EAAMqF,KAAK/D,MAWG,iBAAhBiD,EACFjD,EAASvE,WAAWwH,GAClBe,MAAMC,QAAQhB,GAChBA,EAAYa,KAAMI,GAAOlE,EAASvE,WAAWyI,IACf,mBAArBjB,EAAYc,MACrBd,EAAYc,KAAK/D,IAM5B4B,OAAQsB,EACRiB,cAAc,EACdC,aAAa,EACbC,oBAAqB,CACnBnH,CAACA,GAAO,aAEVV,OAAQ,CACNiB,KAAM,OAGN6G,IAAK,OAGLpE,MAAO,OAGPqE,KAAM,QAIRC,QAASrB,EACT3D,QAAS,CACPtC,OACA6C,UAEF0E,GAAI,CACF,QAAAC,CAASA,EAAUd,EAAKjI,GACtB,MAAMuB,EAAO0G,EAAIpE,QAAQtC,KACnByH,EAAUD,EAASE,UAAU,WAE/B1H,GAAQyH,GAA8B,iBAAZA,GAC5BD,EAAS5I,UAAU,UAAW6I,EAAQrJ,QAAQ,IAAID,OAAO,YAAY6B,KAASgG,IAG5EE,EAAMyB,qBACRH,EAAS5I,UAAU,gBAAiB,UAAUsH,EAAMyB,uBAGtD,MAAMC,EAAclB,EAAIhI,KAAO,IACzBmJ,EJtER,SACJC,EACAC,EACA5B,EACA6B,GAEA,IAAKD,IAAe5B,IAAiB6B,GAAoB7B,IAAiB6B,EACxE,OAAOF,EAGT,IACE,MAAMG,EAAI,IAAIvF,MAAIoF,EAAY,oBACxBI,EAAID,EAAEnF,SAASqF,MAAM,kCAE3B,IAAKD,EACH,OAAOJ,EAGT,IAAIM,EAEJ,IACEA,EAAiBC,mBAAmBH,EAAE,GACxC,CAAE,MACAE,EAAiBF,EAAE,EACrB,CAEA,GAAIE,IAAmBjC,EACrB,OAAO2B,EAMT,MAFgB,cAAcE,IADjBE,EAAE,IAAM,KACqCD,EAAEK,OAASL,EAAEM,IAGzE,CAAE,MACA,OAAOT,CACT,CACF,CIiC0BU,CAChBZ,EACA1B,EAAM6B,WACN5B,EACAD,EAAM8B,kBAiCR,OA9BIH,IAAcD,IAChBlB,EAAIhI,IAAMmJ,EACTL,EAA+BiB,KAAOZ,EACvC7C,QAAQzE,KACN,GAAGd,EAAOiJ,KAAK,wDAAwDjJ,EAAOkJ,OAC5Ef,MACGnI,EAAOmJ,KAAK,QAAQnJ,EAAOoJ,MAAMhB,OAI1CvI,EAAOiB,KACL,GAAGd,EAAOmJ,KAAK,uBAAuBnJ,EAAOoJ,MAAMnC,EAAIrE,WAAWqE,EAAIhI,UAAUe,EAAOoJ,MACrFrB,EAASnF,WACNmF,EAASsB,aAAatB,EAASxH,OAAOwH,EAASiB,QAQtD/B,EAAIqC,OAAOC,gBAAgB,GAC3BtC,EAAIqC,OAAOE,KAAK,QAAS,KACvBC,WAAW,KACJ1B,EAAS2B,WACZ3B,EAAS4B,WAEV,OAGE5B,CACT,EACA6B,SAAU,CAACC,EAAW5C,EAAKjI,KACzB,GACE6K,EAAUhH,QAAQ,iBAAiBiH,SAAS,sBAC3CD,EAAUhH,QAAQ,sBAAsBiH,SAAS,YACL,OAA3CD,EAAUhH,QAAQ,qBACpB,CACAhD,EAAOiB,KAAK,GAAGd,EAAOmJ,KAAK,mCAAmCnJ,EAAOoJ,MAAMnC,EAAIrE,WAAWqE,EAAIhI,OAE9F,MAAM8K,EAtJPnI,MAAkCgI,EAAa3C,EAAQjI,KAC5DA,EAAIG,UAAUgH,EAAc,GAE5BnH,EAAIgL,WAAW,IAAI1K,IAAI2K,OAAOC,QAAQN,EAAS/G,WAE/C+G,EAASO,KAAKnL,IAqJR,OAAO+K,EAAkBF,EAAW5C,EAAKjI,EAC3C,CAEA,MAAMoL,EAAqBC,EAAAA,oBAAoBzI,MAAO0I,EAAgBV,EAAU3C,EAAKjI,KACnFA,EAAIG,UAAUgH,EAAc,GAI5B,eAF0BS,GAAU2D,mBAAmBD,GAGrD,OAAOA,EACF,CACL,IAAI5H,EAAW4H,EAAeE,SAAS,QAEvC,IACE,MAAMC,EAAS,IAAIxH,IAAIgE,EAAIhI,KAAO,GAAI,UAAUsB,KAEhD,GAAIkK,EAAOC,cAAgBD,EAAOC,aAAa/K,IAAI,iBAAkB,CACnE,MAAMgL,EAAqB,WACzB,MAAMC,EAAa,wBACbC,EAAkB,uBAExB,IAAIC,IAAkBC,aAAaC,QAAQJ,IAAe,GACvCG,aAAaC,QAAQH,GAEpCI,OAAOC,MAAMJ,KACfA,EAAgB,GAGlB,IAAI7L,EAAMiE,OAAOC,SAASM,KAE1B,MAAM0H,EAAO,WACX,MAAMC,EAAS,IAAIC,gBAAgBnI,OAAOC,SAAS0F,QAEnD,IAAKuC,EAAOzL,IAAI,iBAId,OAHA4F,QAAQ+F,MAAM,6CACdP,aAAaQ,WAAWX,GAKtB3L,IAAQiE,OAAOC,SAASM,MAC1BxE,EAAMiE,OAAOC,SAASM,KAEtBgG,WAAW0B,EAAML,EAAgB,EAAI,IAAO,MAE5C5H,OAAOC,SAASM,KAAO2H,EAAOxL,IAAI,iBAGpCmL,aAAaS,QAAQZ,EAAY,MAAKE,GACtCC,aAAaS,QAAQX,GAAiB,IAAIY,MAAOC,cACnD,EAEAjC,WAAW0B,EAAM,IACnB,EAEAzI,GAAyB,YAAIiI,EAAmBH,yBAClD,CAEIC,EAAOpH,SAASvE,WAAW,YAE7BE,EAAIG,UAAU,gBAAiB,uCAC/BH,EAAIG,UAAU,SAAU,YACxBH,EAAIG,UAAU,UAAW,MAG3B,MAAMwM,EAAQjJ,EAASiJ,MAAM,EAAG,MAG9BA,EAAM7B,SAAS,UACf6B,EAAM7B,SAAS,UACf6B,EAAM7B,SAAS,UACf6B,EAAM7B,SAAS,YAEfpH,GAAyB,yBAAiBnC,SAAYL,EAAmBsK,0BAE7E,CAAE,MAEF,CAEA,MAAMoB,EAAU3E,EAAIpE,QAAQtC,MAAQ,GAGpC,MJ/OmB,EAACsL,EAAiBC,EAAyBtN,KACxE,MAAMC,EAAmB,IAAIC,OAAO,GAAGmN,EAAQlN,QAAQ,UAAW,WAAY,MACxEoN,EAA4B,IAAIrN,OAAO,GAAGmN,IAAW,MAErDG,EAAkBxN,EAAQG,QAAQF,EAAkBqN,GAE1D,OAAOE,IAAoBxN,EACvBwN,EAAgBrN,QAAQoN,EAA2BD,GACnDE,GIuOaC,CAAgB,mBAAoB,SAAU5N,EAAYkC,EAAMqL,EAASlJ,GAClF,IAGF,OAAO0H,EAAmBP,EAAW5C,EAAKjI,IAE5C,KAAAuE,CAAM2I,EAAKjF,EAAKjI,GACd,MAAMmN,EAAe,iBAAiBD,EAAIjL,4BAA4BgG,EAAIrE,UAAUqE,EAAIhI,WAAWiN,EAAIE,QAEvGvM,EAAO0D,MAAM4I,GAETnN,EAAIqN,UACLrN,EAAuBsN,UAAU,IAAK,CACrC,eAAgB,eAIpBtN,EAAII,IAAI+M,EACV,IAGN,OC9RaI,EACDC,MAEV,WAAAC,CAAYD,GACVE,KAAKF,MAAQA,CACf,CAEA,eAAMG,CAAU9J,GACd,OAAO6J,KAAKF,MACT5M,IAAI,6BAA8B,CACjCiD,QAASoH,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CAAEgK,OAAQ,cAC9CC,aAAc,IAEfC,KAAK,KAAM,GACXC,MAAM,KAAM,EACjB,ECdI,MAAOC,UAAkBV,EAErBW,sBAAwBrG,OAAO,iBAEvC,WAAA4F,CAAYD,GACVW,MAAMX,EACR,CAEU,cAAAY,CAAeC,GACvB,MAAO,iCAAiCA,GAC1C,CAEU,sBAAAC,CAAuBC,GAC/B,MAAO,yCAAyCA,GAClD,CAEU,YAAAC,CAAaH,GACrB,MAAO,+BAA+BA,GACxC,CAEU,oBAAAI,CAAqBF,GAC7B,MAAO,uCAAuCA,GAChD,CAEA,wBAAMG,CAAmBL,EAA+BxK,GACtD,OAAO6J,KAAKF,MACT5M,IAAY8M,KAAKU,eAAeC,GAAe,CAC9CM,iBAAiB,EACjB9K,QAASoH,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CAAEgK,OAAQ,QAC9Ce,aAAc,gBAEfb,KAAM/N,GAAQA,EAAI6O,KACvB,CAQA,sBAAMC,CAAiBT,EAA+BU,EAAclL,GAClE,MAAMmL,EAAW,UAAWtB,KAAKQ,uBAAuBe,UAClDC,KAAEA,SAAexB,KAAKQ,sBAEtBiB,EAAY,IAAID,EAAK,CAACH,GAAO,WAAY,CAAEpN,KAAM,oBAEvDqN,EAASI,OAAO,OAAQD,GAExB,MAAMlP,EAAMyN,KAAKc,aAAaH,GAE9B,OAAOX,KAAKF,MACT6B,KAAwBpP,EAAK+O,EAAU,CACtCL,iBAAiB,EACjB9K,QAASoH,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CAClCgK,OAAQ,mBACR,eAAgB,sBAChByB,QAAS5B,KAAKF,MAAM+B,OAAO,CAAEtP,YAGhC8N,KAAM/N,GAAQA,EAAI6O,KACvB,CAEA,4BAAMW,CAAuBjB,EAA6B1K,GACxD,OAAO6J,KAAKF,MACT5M,IAAY8M,KAAKY,uBAAuBC,GAAa,CACpDI,iBAAiB,EACjB9K,QAASoH,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CAAEgK,OAAQ,QAC9Ce,aAAc,gBAEfb,KAAM/N,GAAQA,EAAI6O,KACvB,CAQA,0BAAMY,CAAqBlB,EAA6BQ,EAAclL,GACpE,MAAMmL,EAAW,UAAWtB,KAAKQ,uBAAuBe,UAClDC,KAAEA,SAAexB,KAAKQ,sBAEtBiB,EAAY,IAAID,EAAK,CAACH,GAAO,WAAY,CAAEpN,KAAM,oBAEvDqN,EAASI,OAAO,OAAQD,EAAW,YAEnC,MAAMlP,EAAMyN,KAAKe,qBAAqBF,GAEtC,OAAOb,KAAKF,MACT6B,KAAwBpP,EAAK+O,EAAU,CACtCL,iBAAiB,EACjB9K,QAASoH,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CAClCgK,OAAQ,mBACR,eAAgB,sBAChByB,QAAS5B,KAAKF,MAAM+B,OAAO,CAAEtP,YAGhC8N,KAAM/N,GAAQA,EAAI6O,KACvB,ECpGI,MAAOa,UAAoBzB,EACrB,cAAAG,CAAeC,GACvB,MAAO,gBAAgBA,kBACzB,CAEU,sBAAAC,CAAuBC,GAC/B,MAAO,yBAAyBA,kBAClC,CAEU,YAAAC,CAAaH,GACrB,MAAO,gBAAgBA,gBACzB,CAEU,oBAAAI,CAAqBF,GAC7B,MAAO,yBAAyBA,gBAClC,EChBK,MAAMoB,EAA2B,+CAG3BC,EAA+B,wDAEtCC,EAAqB,qFAMXC,KACd,OAAO,IAAInI,MAAM,GAAGiI,KAAgCC,IACtD,CAKM,SAAUE,GAA0B7C,GACxC,OAAMA,aAAevF,QAIduF,EAAIjL,QAAQ6I,SAAS6E,IAA6BzC,EAAIjL,QAAQ6I,SAAS8E,GAChF,CCRM,MAAOI,WAAgBzC,EAC3B,YAAM0C,CAAOpM,GACX,aACQ6J,KAAKF,MAAM5M,IAAuB,YAAa,CACnD+N,iBAAiB,EACjB9K,QAASoH,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CAClCqM,OAAQ,mBACR,eAAgB,mBAChB,gBAAiB,WACjBC,OAAQ,WACRC,QAAS,SAGbvB,KAAKwB,KACT,CAEA,SAAMzP,CAAI0P,EAAqBzM,GAC7B,MAAMgL,SACEnB,KAAKF,MAAM5M,IAAoB,gBAAgB0P,IAAM,CACzD3B,iBAAiB,EACjB9K,QAASoH,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CAClCgK,OAAQ,mBACR,eAAgB,wBAGpBgB,KAGF,GAAoB,iBAATA,GAA8B,OAATA,EAC9B,MDrCG,IAAIlH,MAAM,GAAGgI,KAA4BE,KCwC9C,OAAOhB,EAAK0B,IACd,CAEA,oBAAMC,CAAejH,EAA0B1F,GAC7C,aACQ6J,KAAKF,MAAM5M,IAAY,MAAM2I,IAAoB,CACrDoF,iBAAiB,EACjB9K,QAASoH,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CAClCgK,OAAQ,YACR,eAAgB,wBAGpBgB,IACJ,CAEA,YAAM4B,CAAOF,EAAY1M,GACvB,aACQ6J,KAAKF,MAAM6B,KAAqB,YAAakB,EAAM,CACvD5B,iBAAiB,EACjB9K,QAASoH,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CAClCgK,OAAQ,mBACR,eAAgB,wBAGpBgB,KAAK0B,IACT,ECvDI,MAAOG,WAAwBnD,EAC5B,YAAM0C,CAAOU,EAAwB9M,GAC1C,MAAMgL,SACEnB,KAAKF,MAAM5M,IAAwC,qBAAsB,CAC7E+N,iBAAiB,EACjB9K,QAASoH,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CAClCqM,OAAQ,mBACR,eAAgB,mBAChB,gBAAiB,WACjBC,OAAQ,WACRC,QAAS,MAEXhE,OAAQ,CACNuE,oBAGJ9B,KAEF,GAAoB,iBAATA,GAA8B,OAATA,IAAkBxG,MAAMC,QAAQuG,EAAK+B,gBACnE,MAAMd,KAGR,OAAOjB,EAAK+B,cACd,CAEO,SAAMhQ,CAAI0P,EAAYzM,GAC3B,MAAMgL,SACEnB,KAAKF,MAAM5M,IAA6C,yBAAyB0P,IAAM,CAC3F3B,iBAAiB,EACjB9K,QAASoH,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CAClCgK,OAAQ,mBACR,eAAgB,wBAGpBgB,KAEF,GACkB,iBAATA,GACE,OAATA,GAC8B,iBAAvBA,EAAKgC,eACW,OAAvBhC,EAAKgC,cAEL,MAAMf,KAGR,OAAOjB,EAAKgC,aACd,EC7CI,SAAUC,GAAkBvM,GAChC,MAAMwM,EAASxM,EAAMb,UAAUqN,QAAU,EACnC9O,EAAUsC,EAAMb,UAAUmL,MAAM5M,SAAWsC,EAAMtC,SAAW,gBAElE,OAAQ8O,GACN,KAAK,IACH,MAAMC,EAAe/O,EAAQgP,cAE7B,OAAID,EAAalG,SAAS,oBAAsBkG,EAAalG,SAAS,uBAC7D,CACLiG,SACA9O,UACAiP,KAAM,kBACNC,oBAAqB,2BACrBC,YAAa,CACX,mCACA,kCACA,uCACA,kDAIC,CACLL,SACA9O,UACAiP,KAAM,cACNC,oBAAqB,wBACrBC,YAAa,CACX,+BACA,0BACA,kCACA,+BAIN,KAAK,IACH,MAAO,CACLL,SACA9O,UACAiP,KAAM,eACNC,oBAAqB,sBACrBC,YAAa,CACX,+BACA,2CACA,uCACA,yBAIN,KAAK,IACH,MAAO,CACLL,SACA9O,UACAiP,KAAM,YACNC,oBAAqB,mBACrBC,YAAa,CACX,8BACA,uCACA,wCACA,+BAIN,QACE,MAAO,CACLL,SACA9O,UACAiP,KAAM,gBACNC,oBAAqB,+BACrBC,YAAa,CACX,gCACA,mCACA,6BACA,4BAIV,CC3EO,MAAMC,GAAqB,4BAG5BC,GAAqB,IAAIhR,UAElBiR,GACX1N,GAES2J,GAETgE,GAA+B,KAE/BC,GAEAC,GAEApI,GAEAJ,GAEAyI,GAEAC,GACAC,GAEOtI,iBAEC8E,aACAyD,aAEAC,UACAC,QACAC,gBAEApR,OAER,WAAA4M,CAAYlG,EAAiBF,GAC3B,MAAMxD,QACJA,EAAU,CAAA,EAAEwK,aACZA,EAAYyD,aACZA,GAAe,EAAItK,qBACnBA,GAAuB,EAAK8B,WAC5BA,GAAa,EAAKJ,oBAClBA,GACE7B,GAAQ,CAAA,EAEZqG,MAAK7J,EAAWA,EAEhB6J,MAAKgE,EAAY,GACjBhE,MAAK+D,EAAa,GAElB/D,MAAKpE,EAAcA,EACnBoE,MAAKxE,EAAuBA,EAC5BwE,MAAKiE,GAAkB,EAEvBjE,MAAKkE,EAAkBM,QAAQC,SAAQ,GAGvC,MAAMC,EAAW,GAAG7K,KAAWC,IAE/B,GAAI8J,GAAmB3Q,IAAIyR,GACzB1E,MAAKF,EAAS8D,GAAmB1Q,IAAIwR,OAChC,CACD5K,IACF6K,QAAQC,IAAIC,6BAA+B,KAG7C,MAAMC,EAAa,IAAIC,EAAMC,MAAM,CAGjCC,WAAW,KACPnL,EAAuB,CAAEoL,oBAAoB,GAAU,CAAA,IAG7DlF,MAAKF,EAASA,EAAMiD,OAAO,CACzBlJ,UACA1D,UACAgP,QAAS,IACT/E,aAAc,EACdgF,UAAW,IAAIC,EAAKL,MAAM,CAAEC,WAAW,IACvCH,eAMEhL,IACFgG,EAAMwF,SAASR,WAAaA,GAG9BlB,GAAmBvQ,IAAIqR,EAAU1E,MAAKF,EACxC,CAEAE,KAAKW,aAAeA,EACpBX,KAAKoE,aAAeA,EAEpBpE,KAAKqE,UAAY,IAAMzI,EAAyBoG,EAAZzB,GAAyBP,MAAKF,GAClEE,KAAKsE,QAAU,IAAIhC,GAAQtC,MAAKF,GAChCE,KAAKuE,gBAAkB,IAAIvB,GAAgBhD,MAAKF,GAEhDE,KAAK7M,OAASL,GAChB,CAEA,sBAAMyS,GACJ,OAAOvF,MAAKkE,CACd,CAEA,kBAAID,GACF,OAAOjE,MAAKiE,CACd,CAEA,cAAIrI,GACF,OAAOoE,MAAKpE,CACd,CAEA,EAAA4J,CAAcrP,GACZ,MAAMsP,EAAMlI,OAAO2C,OAAO,CAAA,EAAI/J,EAAS,CACrCtC,UAAM6R,EACNpK,aAASoK,IAWX,OARAnI,OAAOoI,KAAKF,GAAKjN,QAAStB,QAAqBwO,IAAbD,EAAIvO,WAA6BuO,EAAIvO,IAEvE8I,MAAK7J,EAAWsP,GAEXA,EAAIG,eAAiB5F,MAAKxE,IAC7BiK,EAAIG,cAAgB,UAAU5F,MAAKxE,KAG9BiK,CACT,CAEA,EAAAI,CAAcxQ,GACZ,OAAOA,EAAMpD,QAAQ,wBAAyB,OAChD,CAEA,uBAAIuJ,GACF,OAAOwE,MAAKxE,CACd,CAEA,uBAAIA,CAAoBzF,GACtBiK,MAAKxE,EAAuBzF,CAC9B,CAEA,aAAA+P,CAAc3P,GACZ6J,MAAKwF,EAAcrP,EACrB,CAEA,qBAAY4P,GACV,MAAkB,ouDA6BpB,CAMA,qBAAMC,CAAgB7P,GAOpB,SANY6J,MAAKkE,GAAqBlE,MAAK8D,IACzC9D,MAAKkE,EAAkB,IAAIM,QAASC,IAClCzE,MAAKmE,EAAyBM,KAI9BzE,MAAK8D,EACP,OAAOU,QAAQC,QAAQzE,MAAK8D,GAO9B,QAJiC,IAAtB9D,KAAKoE,eACdpE,KAAKoE,cAAe,GAGlBpE,MAAKpE,EAAa,CACpB,MAAMiH,QAAa7C,KAAKsE,QACrBpR,IAAI8M,KAAKW,aAAeX,MAAKwF,EAAcrP,IAC3CkK,KAAMrK,IACLgK,KAAK7M,OAAOiB,KAAKd,EAAOoJ,MAAM,iBAEvB1G,IAERsK,MAAMpL,MAAOC,IAIZ,GAHA6K,MAAKmE,GAAuB,GAGxB9B,GAA0BlN,GAC5B,MAAMA,EAGR,YAAU6K,KAAKsE,QAAQrE,UAAUD,MAAKwF,EAAcrP,KAClD6J,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,6BAA6B9Q,EAAEZ,YAAYY,EAAEuK,UAEpE,IAAIzF,MACR,wHAII9E,IAkBZ,YAdgC,IAArB0N,EAAKqD,cACdlG,MAAKiE,GAAkB,GAGzBjE,KAAKnE,iBAAmBgH,EAAKI,cAE7BjD,MAAK8D,EAAgB9D,KAAK+F,kBAE1B/F,MAAK8D,EAAgB9D,MAAK8D,EAAc7R,QAAQ,kBAAmB4Q,EAAK7P,MAAQ,kBAEhFgN,KAAK7M,OAAOiB,KAAKd,EAAOoJ,MAAM,gCAE9BsD,MAAKmE,GAAuB,GAErBnE,MAAK8D,CACd,CAqBA,IAAIjB,SAnBmB7C,KAAKsE,QACzB/B,OAAOvC,MAAKwF,EAAcrP,IAC1BkK,KAAMrK,IACLgK,KAAK7M,OAAOiB,KAAKd,EAAOoJ,MAAM,sBAEvB1G,IAERsK,MAAMpL,MAAOC,IAGZ,MAFA6K,MAAKmE,GAAuB,SAElBnE,KAAKsE,QAAQrE,UAAUD,MAAKwF,EAAcrP,KAClD6J,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,6BAA6B9Q,EAAEZ,YAAYY,EAAEuK,UAEpE,IAAIzF,MAAM,mDAEV9E,KAIQgR,KAAMC,GAAMA,EAAEpT,OAAS2Q,IAgC3C,OA9BKd,IACH7C,KAAK7M,OAAO+H,KAAK5H,EAAOkJ,OAAO,kCAE/BqG,QAAa7C,KAAKsE,QACfvB,OACC,CACEsD,QAAS,IACTrT,KAAM2Q,GACNV,cAAe,oBACfqD,oBAAqB,KAEvBtG,MAAKwF,EAAcrP,IAEpBkK,KAAMrK,IACLgK,KAAK7M,OAAOiB,KAAKd,EAAOoJ,MAAM,qBAEvB1G,IAERsK,MAAOnL,IAKN,MAJA6K,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,4BAA4B9Q,EAAEZ,YAE3DyL,MAAKmE,GAAuB,GAEtB,IAAIlK,MACR,2GAC+D0J,+BAK1D3D,KAAKsE,QACfxB,eAAeD,EAAKI,cAAejD,MAAKwF,EAAcrP,IACtDkK,KAAMrK,IACLgK,MAAK8D,EAAgB9N,EAEdA,IAERqK,KAAMrK,IACLgK,MAAKmE,GAAuB,GAE5BnE,KAAK7M,OAAOiB,KAAKd,EAAOoJ,MAAM,0BAEvB1G,IAERsK,MAAOnL,IAKN,MAJA6K,MAAKmE,GAAuB,GAE5BnE,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,iCAAiC9Q,EAAEZ,YAE1D,IAAI0F,MAAM,iCAEtB,CAQA,sBAAMsM,CAAiBC,EAAgBrQ,GAQrC,OAPA6J,MAAK8D,QAAsB9D,KAAKgG,gBAAgB7P,GAE3C6J,KAAKW,eACRX,KAAKW,aAAe6F,EACpBxG,KAAKoE,cAAe,SAGTpE,KAAKsE,QACfpR,IAAIsT,EAAQxG,MAAKwF,EAAcrP,IAC/BkK,KAAMrK,IACL,MAAMyQ,KAAEA,EAAO,KAAIzT,KAAEA,EAAI0T,SAAEA,GAAa1Q,EAExC,GAAI0Q,GAAYD,EAAM,CACpB,MAAME,EAAStQ,KAAKuQ,MAAMH,GAK1B,OAHAzG,MAAKgE,EAAY2C,EACjB3G,MAAK+D,EAAa/Q,EAEX2T,CACT,CAKA,OAHA3G,MAAKgE,EAAY,GACjBhE,MAAK+D,EAAa/Q,EAEX,KAERsN,MAAOuG,IAGN,GAFA7G,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,kCAAkCY,EAAOtS,YAEtC,MAA5BsS,EAAO7Q,UAAUqN,OACnB,MAAM,IAAIpJ,MAAM,wBAAwBuM,4BAAiCxG,MAAKF,EAAO+B,YAGvF,GAAgC,MAA5BgF,EAAO7Q,UAAUqN,OAGnB,MAAM,IAAIpJ,MACR,sDAAsDuM,kBAAuBxG,MAAKF,EAAO+B,YAI7F,MAAMgF,GAEZ,CAQA,iBAAMC,CAAYN,EAAgBrQ,GAC3B6J,KAAKW,eACRX,KAAKW,aAAe6F,GAGtB,MAAMhB,EAAexF,MAAKwF,EAAcrP,GAClC4Q,EAAgB/G,KAAKW,aAE3B,IACE,OAAIX,MAAKpE,QACMoE,MAAKgH,EAAaD,EAAevB,SAGnCxF,MAAKiH,EAAiBF,EAAevB,EACpD,CAAE,MAAO3O,GACPmJ,MAAKkH,EAAsBrQ,EAAOkQ,EACpC,CACF,CAKA,OAAMC,CAAaR,EAAgBrQ,GACjC,MAAM0M,QAAa7C,KAAKsE,QAAQpR,IAAIsT,EAAQrQ,GAU5C,OARA6J,KAAK7M,OAAOiB,KAAKd,EAAOoJ,MAAM,sBAEE,IAArBmG,EAAKqD,cACdlG,MAAKiE,GAAkB,GAGzBjE,KAAKnE,iBAAmBgH,EAAKI,cAEtBJ,CACT,CAKA,OAAMoE,CAAiBT,EAAgBrQ,GACrC,aAAa6J,KAAKsE,QAAQpR,IAAIsT,EAAQrQ,EACxC,CAKA,EAAA+Q,CAAsBrQ,EAAY2P,GAChC,GAAInE,GAA0BxL,GAC5B,MAAMA,EAGR,GAAImJ,MAAKpE,GAAe/E,EAAMtC,SAAS6I,SAAS,UAC9C,MAAM,IAAInD,MACR,uHAKJ,GAA+B,MAA3BpD,EAAMb,UAAUqN,OAClB,MAAM,IAAIpJ,MAAM,wBAAwBuM,4BAAiCxG,MAAKF,EAAO+B,YAUvF,MAP+B,MAA3BhL,EAAMb,UAAUqN,QAClBrD,KAAK7M,OAAO0D,MACVvD,EAAO2S,IAAI,sDAAsDO,kBAAuBxG,MAAKF,EAAO+B,aAKlGhL,CACR,CAQA,SAAAsQ,CAAUrV,EAA0BsV,GAAY,GAC9C,IAAIC,EAA4B,iBAAZvV,EAAuBA,EAAUA,EAAQgM,SAAS,SAEtE,IAAK,MAAMwJ,KAAKtH,MAAKgE,EAAW,CAC9B,MAAMuD,EAAcvH,MAAK6F,EAAcyB,EAAEtU,MACnCwU,EAAe,IAAIxV,OAAO,MAAMuV,OAAkB,KAExDF,EAASA,EAAOpV,QAAQuV,EAAc,IAAMF,EAAEjS,MAChD,CAEA,MAAMoS,EAAM,IAAIC,EAAAA,MAAMN,EAAYC,EAASrH,MAAK8D,GAE1C6D,EAAkB,kBAExB,IAAKP,EAAW,CACd,MAAMzT,EAAc8T,EAAIjR,OAAOf,SAASuC,cAAc,OACtDrE,EAAYU,UAAYsT,EAExB,MAAMC,EAAYH,EAAIjR,OAAOf,SAASG,cAAc,cAEpD,GAAIgS,EAAW,CACb,MAAMC,EAAUD,EAAUvP,iBAAiB,UAEvCwP,EAAQC,OACVF,EAAUG,aAAapU,EAAakU,EAAQG,KAAKH,EAAQC,OAAS,IAElEF,EAAUlG,OAAO/N,EAErB,KAAO,CACL,MAAMiU,EAAYH,EAAIjR,OAAOf,SAASuC,cAAc,OAEpD4P,EAAUlG,OAAO/N,GAEjB8T,EAAIjR,OAAOf,SAASW,KAAKsL,OAAOkG,EAClC,CAEA,MAAM1P,EAAOuP,EAAIjR,OAAOf,SAASG,cAAc,QACzCqS,EAAQ/P,EAAMtC,cAAc,SAElC,GAAIqS,EACFA,EAAMC,KAAOlI,MAAK+D,MACb,CACL,MAAMoE,EAAUV,EAAIjR,OAAOf,SAASuC,cAAc,SAElDmQ,EAAQ1T,YAAcuL,MAAK+D,EAC3B7L,EAAKC,YAAYgQ,EACnB,CACF,CAIA,OAFsBV,EAAIW,YAELnW,QAAQ,IAAID,OAAO,YAAY2V,gBAA+B,KAAMN,EAC3F,CAEA,eAAMgB,GACJ,GAAIrI,KAAKW,aAAc,CACrB,GAAIX,KAAKoE,aACP,aAAapE,KAAKqE,UAAUrD,mBAAmBhB,KAAKW,aAAcX,MAAK7J,GAClE,CACL,MAAMmS,QAAiBtI,KAAKsE,QAAQpR,IAAI8M,KAAKW,aAAcX,MAAK7J,GAEhE,GAAI6J,MAAKiE,EAAiB,CACxB,MAAMsE,QAAqBvI,KAAKuE,gBAAgBrR,IAAIoV,EAASpC,YAAclG,MAAK7J,GAEhF,aAAa6J,KAAKqE,UAAUvC,uBAAuByG,EAAa3F,GAAI5C,MAAK7J,EAC3E,CACE,GAAImS,EAAS5B,SACX,aAAa1G,KAAKqE,UAAUvC,uBAAuBwG,EAAS5B,SAAU1G,MAAK7J,EAGjF,CACF,CACF,CAEA,kBAAMqS,CAAaC,GACjB,GAAIzI,KAAKW,aAAc,CACrB,GAAIX,KAAKoE,aACP,aAAapE,KAAKqE,UAAUjD,iBAAiBpB,KAAKW,aAAc8H,EAAQzI,MAAK7J,GACxE,CACL,MAAMmS,QAAiBtI,KAAKsE,QAAQpR,IAAI8M,KAAKW,aAAcX,MAAK7J,GAEhE,GAAI6J,MAAKiE,EAAiB,CACxB,MAAMsE,QAAqBvI,KAAKuE,gBAAgBrR,IAAIoV,EAASpC,YAAclG,MAAK7J,GAEhF,aAAa6J,KAAKqE,UAAUtC,qBAAqBwG,EAAa3F,GAAI6F,EAAQzI,MAAK7J,EACjF,CACE,GAAImS,EAAS5B,SACX,aAAa1G,KAAKqE,UAAUtC,qBAAqBuG,EAAS5B,SAAU+B,EAAQzI,MAAK7J,EAGvF,CACF,CACF,CAOA,yBAAMuS,CAAoBvS,GACxB,IACE,MAAMwS,EAAcxS,GAAW6J,MAAK7J,EAKpC,aAFM6J,KAAK9M,IAAI,YAAayV,GAAa,GAElC,CAAEC,SAAS,EACpB,CAAE,MAAO/R,GACP,MAAMgS,EAAYzF,GAAkBvM,GAEpC,MAAO,CACL+R,SAAS,EACT/R,MAAOgS,EAAUpF,oBACjBD,KAAMqF,EAAUrF,KAEpB,CACF,CAEA,SAAMtQ,CAAyBoJ,EAAcnG,EAA+B2S,GAAU,GACpF,MAAMC,EAAoBD,EAAU3S,EAAUoH,OAAO2C,OAAO,GAAIF,MAAKwF,EAAcxF,MAAK7J,GAAWA,GAEnG,IACE,aAAa6J,MAAKF,EAAO5M,IAAOoJ,EAAM,CACpCnG,QAAS4S,GAEb,CAAE,MAAOlS,GAEP,GAAsC,kBAAlCuM,GAAkBvM,GAAO2M,KAA0B,CACrD,MAAMqF,EAAYzF,GAAkBvM,GAmBpC,MAlBAmJ,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,uBAAuB4C,EAAUpF,iCDvfxCtQ,EAAa0D,EAAYmS,GACrD,MAAMH,EAAYzF,GAAkBvM,GAC9BoS,EAA0B,IAAID,MAEpC7V,EAAO0D,MAAMvD,EAAO2S,IAAI,GAAGgD,IAAgBJ,EAAUpF,wBACrDtQ,EAAO0D,MAAMvD,EAAO2S,IAAI,WAAW4C,EAAUxF,WAAWwF,EAAUrF,UAClErQ,EAAO0D,MAAMvD,EAAO2S,IAAI,YAAY4C,EAAUtU,YAE1CsU,EAAUnF,YAAYoE,OAAS,IACjC3U,EAAOiB,KAAKd,EAAOkJ,OAAO,iBAC1BqM,EAAUnF,YAAYlL,QAAQ,CAAC0Q,EAAYC,KACzChW,EAAOiB,KAAKd,EAAOkJ,OAAO,KAAK2M,EAAQ,MAAMD,QAGnD,CC4eQE,CAAcpJ,KAAK7M,OAAQ0D,EAAO,eAG9BA,EAAMb,WAKPa,EAAcb,SAAW,CACxBqN,OAAQwF,EAAUxF,OAClBlC,KAAM,CAAE5M,QAASsU,EAAUtU,WAL7BsC,EAAMwS,eAAiBR,EAUnBhS,CACR,CAGA,MAAMA,CACR,CACF,ECtkBK,MAEMyS,GAA2B,sBAGxC,SAASC,GAAQC,EAAaC,EAAiBC,EAAoC,IAAIC,KACrF,MAAMnM,EAAUoM,EAAAA,YAAYJ,EAAK,CAAEK,eAAe,IAC5CC,EAAkB,GAExB,IAAK,MAAMC,KAASvM,EAAS,CAC3B,MAAMwM,EAAW1N,EAAK2N,KAAKT,EAAKO,EAAM/W,MAChCkX,EAAe5N,EAAK6N,SAASV,EAASO,GAAU/X,QAAQ,MAAO,KAEjE8X,EAAMK,cACRN,EAAMO,QAAQd,GAAQS,EAAUP,EAASC,IAChCK,EAAMO,WAAaZ,EAAazW,IAAIiX,IAC7CJ,EAAMO,KAAKL,EAEf,CAEA,OAAOF,CACT,CAEA,SAASS,GAAgBC,GACvB,MAAM1Y,EAAU2Y,EAAAA,aAAaD,GAE7B,OAAOE,EAAAA,WAAW,UAAUC,OAAO7Y,GAAS8Y,OAAO,MACrD,CAsBA,SAASC,GAAiBxV,GACxB,OAAOA,EAAMpD,QAAQ,uDAAwD,KAC/E,CAEA,SAAS6Y,GAAuBvY,GAC9B,MAAMwY,EAAgBxY,EACnB+C,OACArD,QAAQ,SAAU,IAClBA,QAAQ,UAAW,IAChB+Y,EAAeD,EAAc/O,MAAM,0BAEzC,GAAIgP,EAAc,CAChB,MAAM,CAAA,CAAKnX,EAAMoX,GAAkBD,EAEnC,OAAOH,GAAiB,WAAWhX,KAAQoX,EAAehZ,QAAQ,OAAQ,MAC5E,CAEA,MAAMiZ,EAAmBH,EAAc/O,MAAM,iDAE7C,GAAIkP,EAAkB,CACpB,MAAM,CAAGrX,EAAMoX,GAAkBC,EAEjC,OAAOL,GAAiB,WAAWhX,KAAQoX,EAAehZ,QAAQ,OAAQ,MAC5E,CAEA,MAAMkZ,EAAmBJ,EAAc/O,MAAM,4BAE7C,GAAImP,EAAkB,CACpB,MAAM,CAAGtX,EAAMoX,GAAkBE,EAEjC,OAAON,GAAiB,WAAWhX,KAAQoX,EAAehZ,QAAQ,OAAQ,MAC5E,CAEA,OAAO4Y,GAAiBE,EAC1B,CA8EM,SAAUK,GAA0BC,GACxC,IAAuB,IAAnBA,EAAOhF,QACT,OAGF,MAAMiF,OAAEA,EAAMC,oBAAEA,EAAmBC,eAAEA,GAAmBH,EAClDI,EAAiBnP,EAAKmI,QAAQE,QAAQ+G,MAAOJ,GAEnD,IAAKK,EAAAA,SAASF,EAAgB,CAAEG,gBAAgB,KAAUxB,cACxD,OAGF,MACMyB,GADM,IAAI9M,MACSC,cAEnB8M,EAA8BP,GA7KO,+CA8KrCQ,EApIR,SAAgCrF,EAAkB8E,EAAwBQ,GACxE,OAAOtF,EAASzU,QAAQ,sBAAuBuZ,GAAgBvZ,QAAQ,mBAAoB+Z,EAC7F,CAkI0BC,CAAuBH,EAA6BN,EAFxDK,EAAa5Z,QAAQ,KAAM,MAIzCia,EAAW3C,GAAQkC,EAAgBA,EAAgB,IAAI9B,IAAI,CAACoC,EAAiBzC,MAC7EQ,EAAgC,CAAA,EAEtC,IAAK,MAAMU,KAAY0B,EAAU,CAG/BpC,EAFqBxN,EAAK6N,SAASsB,EAAgBjB,GAAUvY,QAAQ,MAAO,MAEtDsY,GAAgBC,EACxC,CAEA,MAAM2B,EA/JR,SAAyBrC,GACvB,MACMsC,EADc7O,OAAOoI,KAAKmE,GAAOuC,OACAC,IAAKlG,GAAM0D,EAAM1D,IAAI6D,KAAK,IAEjE,OAAOS,EAAAA,WAAW,UAAUC,OAAOyB,GAAoBxB,OAAO,MAChE,CA0JmB2B,CAAgBzC,GAC3B0C,EAzJR,SAAiC1C,GAC/B,MAAM2C,EAAoBlP,OAAOoI,KAAKmE,GACnCuC,OACAC,IAAKvC,GAAU,GAAGA,KAASD,EAAMC,MACjCE,KAAK,MAER,OAAOS,EAAAA,WAAW,UAAUC,OAAO8B,EAAmB,SAAS7B,OAAO,MACxE,CAkJ2B8B,CAAwB5C,GAC3C6C,EAzGR,WACE,MAAMC,EAAaC,EAAAA,4LACnB,IAAIC,EAAaxQ,EAAKyQ,QAAQH,GAE9B,OAAa,CACX,MAAMI,EAAkB1Q,EAAK2N,KAAK6C,EAAY,gBACxCG,EAActB,EAAAA,SAASqB,EAAiB,CAAEpB,gBAAgB,IAEhE,GAAIqB,GAAa3C,SACf,IACE,MAAM4C,EAAc7W,KAAKuQ,MAAM6D,EAAAA,aAAauC,EAAiB,UAE7D,GAAmC,iBAAxBE,EAAYC,QACrB,OAAOD,EAAYC,OAEvB,CAAE,MAEF,CAGF,MAAMC,EAAY9Q,EAAKyQ,QAAQD,GAE/B,GAAIM,IAAcN,EAChB,MAAO,UAGTA,EAAaM,CACf,CACF,CA6EwBC,GAChBC,EA5ER,SAA2BC,GACzB,GAAgC,iBAArBA,GAAiCA,EAAiBjY,OAC3D,OAAOiY,EAAiBjY,OAG1B,MAAMkY,EAAkB,CACtB,kBACA,kBACA,qBACA,mBACA,yBACA,cACA,gBACA,gBACA,mBACA,yBAGF,IAAK,MAAMC,KAAgBD,EAAiB,CAC1C,MAAMF,EAAa3I,QAAQC,IAAI6I,GAE/B,GAA0B,iBAAfH,GAA2BA,EAAWhY,OAC/C,OAAOgY,EAAWhY,MAEtB,CAEA,IACE,MAAMoY,EAAoBC,EAAAA,SAAS,kCAAmC,CACpEC,SAAU,OACVC,MAAO,CAAC,SAAU,OAAQ,YACzBvY,OAEH,GAAIoY,GAA2C,SAAtBA,EACvB,OAAOA,CAEX,CAAE,MAEF,CAGF,CAoCqBI,CAAkBzC,EAAO0C,mBAEtCC,EAA4B,CAChCC,cAlMuC,EAmMvCd,QAAS,IAAI3B,IACb0C,KAAMrC,EACNM,WACArC,QACAqE,cAAe9C,EAAO+C,qBAAuBtD,GAAuBO,EAAO+C,2BAAwB1I,EACnG4H,aACAX,iBAGI0B,EAAe/R,EAAK2N,KAAKwB,EAAgBM,GACzCuC,EAAoBhS,EAAK2N,KAAKwB,EAAgBnC,IAC9CiF,EAA+B,CACnCN,cA9MyC,EA+MzCO,aAAc,wBACdC,YAAa5C,EACb6C,YAAa3C,EACbR,oBAAqBO,EACrB6C,yBApNuC,EAqNvCnC,mBACAoC,OAAQ,CACNC,qBAAqB,IAIzBC,gBAAcT,EAAchY,KAAKC,UAAU0X,EAAU,KAAM,GAAI,SAC/Dc,gBAAcR,EAAmBjY,KAAKC,UAAUiY,EAAe,KAAM,GAAI,QAC3E,CC5PO,MAAMQ,GAA0B,WAC1BC,GAAqB,OAE5BC,GAAU3S,EAAKyQ,QAA+B,oBAAfmC,YAA8BA,YAAerC,gBAAc,oBAAApX,SAAA0Z,QAAA,OAAAC,cAAAF,YAAAnY,KAAAsY,GAAA,WAAAA,EAAAC,QAAAC,eAAAF,EAAAG,KAAA,IAAAjZ,IAAA,qBAAAd,SAAAga,SAAA1Y,OAE1F2Y,GAAapT,EAAKmI,QAAQwK,GAAS,KAAM,MACzCU,GAAoBrT,EAAKmI,QAAQiL,GAAY,KAAM,MA+EnDE,GAActT,EAAKmI,QAAQkL,GADb,gBAEdE,GAAevT,EAAKmI,QAAQmL,GAAa,0BAEzCtG,GAA2B,sBAGpBwG,GAA+B,kCAE/BC,GACMC,aACTC,mBACSC,WACAC,SACTC,YAA+B,KACtBC,cACAC,gBACA/E,oBACAgF,UAETpd,OAER,WAAA4M,CAAYoQ,EAAkBK,GAC5BxQ,KAAKmQ,SAAWA,EAEhB,MAAMH,aACJA,EAAe1T,EAAKmI,QAAQE,EAAQ+G,MAAO,WAAU2E,cACrDA,EAAgB/T,EAAKmI,QAAQE,EAAQ+G,MAAO,YAAW4E,gBACvDA,EAAkB,GAAGtQ,KAAKmQ,eAAcF,mBACxCA,EAAqB,IAAIlB,QAA6BC,UAAyBzD,oBAC/EA,EAAsB,+CAA8C2E,WACpEA,EAAchC,GAAeA,EAAKlP,cAAc/M,QAAQ,KAAM,KAAKA,QAAQ,QAAS,IAAGse,UACvFA,GACEC,GAAe,CAAA,EAEnBxQ,KAAKgQ,aAAeA,EACpBhQ,KAAKiQ,mBAAqBA,EAC1BjQ,KAAKkQ,WAAaA,EAElBlQ,KAAKqQ,cAAgBA,EACrBrQ,KAAKsQ,gBAAkBA,EACvBtQ,KAAKuL,oBAAsBA,EAC3BvL,KAAKuQ,UAAYA,EAEjBvQ,KAAKyQ,WAELzQ,KAAK7M,OAASL,GAChB,CAEA,eAAM4d,GACJ,UACQC,EAAAA,SAAGC,KAAKhB,GAChB,CAAE,YACMe,EAAAA,SAAGE,MAAMjB,GACjB,CAEA,UACQe,WAAGC,KAAK5Q,KAAKgQ,aACrB,CAAE,YACMW,WAAGE,MAAM7Q,KAAKgQ,aACtB,CACF,CAEA,kBAAMc,GAGJ,aAFM9Q,KAAK0Q,kBAEEC,EAAAA,SACVI,SAASlB,GAAc,CACtBjC,SAAU,UAEXtN,MAAM,IAAM,KACjB,CAEA,mBAAM0Q,CAAcC,GAGlB,aAFMjR,KAAK0Q,kBAEEC,EAAAA,SAAGO,UAAUrB,GAAcxZ,KAAKC,UAAU2a,EAAM,KAAM,GAAI,CACrErD,SAAU,SAEd,CAEA,cAAM6C,GACCzQ,KAAKoQ,kBAGFpQ,KAAKgR,cAAchR,KAAKoQ,aAF9BpQ,KAAKoQ,YAAc/Z,KAAKuQ,YAAY5G,KAAK8Q,eAI7C,CAEA,0BAAMK,GACJ,MAAMC,eAAEA,GAAmBpR,KAAKoQ,YAEhC,IAAKgB,EACH,OAAO,KAGT,MAAMC,EAAa/U,EAAKmI,QAAQzE,KAAKgQ,aAAcoB,GAEnD,IAGE,aAFMT,EAAAA,SAAGC,KAAKS,GAEPA,CACT,CAAE,MACA,OAAO,IACT,CACF,CAEA,UAAAC,CAAWnB,EAAkBjC,EAAa,IAAInP,MAC5C,OAAOiB,KAAKiQ,mBACThe,QAAQ,IAAI8c,MAA4BoB,GACxCle,QAAQ,IAAI+c,MAAuBhP,KAAKkQ,WAAWhC,GACxD,CAEA,aAAAqD,GACE,OAAOvR,KAAKoQ,WACd,CAEQ,WAAAoB,CAAYhH,GAClB,OAAOA,EAASvY,QAAQ,MAAO,IACjC,CAEQ,+BAAMwf,CAA0BC,GACtC,IAAI5E,EAAa4E,EAEjB,OAAa,CACX,MAAMlU,QAAgBmT,WAAGgB,QAAQ7E,EAAY,CAAEjD,eAAe,IAE9D,GAAuB,IAAnBrM,EAAQsK,SAAiBtK,EAAQ,IAAI4M,cACvC,OAAO0C,EAGTA,EAAaxQ,EAAK2N,KAAK6C,EAAYtP,EAAQ,GAAGxK,KAChD,CACF,CAEQ,wBAAM4e,CAAmBC,GAC/B,MAAMrU,QAAgBmT,WAAGgB,QAAQE,EAAS,CAAEhI,eAAe,IACrDC,EAAkB,GAExB,IAAK,MAAMC,KAASvM,EAAS,CAC3B,MAAMwM,EAAW1N,EAAK2N,KAAK4H,EAAS9H,EAAM/W,MAEtC+W,EAAMK,cACRN,EAAMO,cAAerK,KAAK4R,mBAAmB5H,IACpCD,EAAMO,UACfR,EAAMO,KAAKL,EAEf,CAEA,OAAOF,CACT,CAEQ,qBAAAgI,CAAsBhI,GAC5B,MACMsC,EADc7O,OAAOoI,KAAKmE,GAAOuC,OACAC,IAAKjX,GAAUyU,EAAMzU,IAAQ4U,KAAK,IAEzE,OAAO8H,EAAOrH,WAAW,UAAUC,OAAOyB,GAAoBxB,OAAO,MACvE,CAEQ,sBAAAoH,CAAuBlI,GAC7B,MAAM2C,EAAoBlP,OAAOoI,KAAKmE,GACnCuC,OACAC,IAAKjX,GAAU,GAAGA,KAASyU,EAAMzU,MACjC4U,KAAK,MAER,OAAO8H,EAAOrH,WAAW,UAAUC,OAAO8B,EAAmB,SAAS7B,OAAO,MAC/E,CAEQ,YAAA/E,CAAaxQ,GACnB,OAAOA,EAAMpD,QAAQ,sBAAuB,OAC9C,CAEQ,0BAAAggB,GACN,MAAMC,EAAqB,aACrBC,EAAqB,GAC3B,IAAIC,EAAY,EACZpW,EAAgC,KAEpC,KACEA,EAAQkW,EAAmBG,KAAKrS,KAAKuL,qBAEhCvP,GAHM,CAOX,MAAOrI,GAAeqI,EAChBsW,EAAatS,KAAKuL,oBAAoBtM,MAAMmT,EAAWpW,EAAMmN,OAEnEgJ,EAAS9H,KAAKrK,KAAK6F,aAAayM,IAChCH,EAAS9H,KAAK,SAEd+H,EAAYpW,EAAMmN,MAAQxV,EAAYmU,MACxC,CAEA,MAAMyK,EAAqBvS,KAAKuL,oBAAoBtM,MAAMmT,GAG1D,OAFAD,EAAS9H,KAAKrK,KAAK6F,aAAa0M,IAEzB,IAAIvgB,OAAO,IAAImgB,EAASlI,KAAK,OAAQ,IAC9C,CAEQ,2BAAAuI,CAA4BC,GAClC,OAAOA,IAAiB3C,EAC1B,CAGQ,wCAAM4C,CACZC,EACAC,GAEA,MAAM1I,EAAeyI,EAAcxM,KAAMC,GAAM9J,EAAKuW,SAASzM,KAAO0J,IAEpE,IAAK5F,EACH,OAAO,KAGT,MAAM4I,EAAexW,EAAK2N,KAAK2I,EAAgB1I,GACzC6I,QAAiBpC,WAAGI,SAAS+B,GAGnC,MAAO,CACL5I,eACApY,QAASihB,EACTC,WALiBjB,EAAOrH,WAAW,UAAUC,OAAOoI,GAAUnI,OAAO,OAMrEqI,aAAc,KAElB,CAEQ,kCAAMC,CAA6BC,GACzC,MAAMC,QAAgBzC,EAAAA,SAAG0C,QAAQ/W,EAAK2N,KAAKqJ,EAAGC,SAAU,mBAClDC,EAAUlX,EAAK2N,KAAKmJ,EAAS,cAC7B1B,EAAepV,EAAK2N,KAAKmJ,EAAS,aAExC,UACQzC,EAAAA,SAAGE,MAAMa,EAAc,CAAE+B,WAAW,UACpC9C,WAAGO,UAAUsC,EAASL,SACtBO,EAAWF,EAAS,CAAEhK,IAAKkI,IAEjC,MAAMkB,QAAuB5S,KAAKyR,0BAA0BC,GAEtDiB,SADiB3S,KAAK4R,mBAAmBgB,IAChBtG,IAAK9B,GAAaxK,KAAKwR,YAAYlV,EAAK6N,SAASyI,EAAgBpI,KAE1FmJ,EAA0BhB,EAAciB,OAC3CpJ,GAAalO,EAAKuW,SAASrI,KAAclB,IAG5C,GAAIqK,EAAwB7L,OAAS,EACnC,MAAM,IAAI7N,MACR,wBAAwBqP,2BAAiDqK,EAAwB7L,UAIrG,MAAMwG,EAAuD,IAAnCqF,EAAwB7L,OAAe6L,EAAwB,GAAM,KAE/F,IAAIpF,EAAsC,KAE1C,GAAID,EAAmB,CACrB,MAAMuF,EAA4BvX,EAAK2N,KAAK2I,EAAgBtE,GAG5D,GAFAC,EAAgBlY,KAAKuQ,YAAY+J,EAAAA,SAAGI,SAAS8C,EAA2B,YAGrEtF,GAC8B,0BAA/BA,EAAcC,cACuB,iBAA9BD,EAAcG,aACpBH,EAAcG,YAAYpZ,QACkB,iBAAtCiZ,EAAchD,qBACpBgD,EAAchD,oBAAoBjW,QACO,iBAAnCiZ,EAAc/B,kBACpB+B,EAAc/B,iBAAiBlX,QAEhC,MAAM,IAAI2E,MAAM,4CAEpB,CAEA,IAAI6Z,EAAqC,KAEzC,GAAIvF,EAAe,CACjB,MAAMwF,EAAuB/T,KAAKwR,YAAYjD,EAAcG,YAAYpZ,QAClE0e,EAAuBrB,EAAciB,OAAQpJ,GAAaA,IAAauJ,GACvEE,EAA0BtB,EAAciB,OAC3CpJ,GAAalO,EAAKuW,SAASrI,KAAclO,EAAKuW,SAASkB,IAEpDG,EAAqBF,EAAqBlM,OAAS,EAAIkM,EAAuBC,EAEpF,GAAIC,EAAmBpM,OAAS,EAC9B,MAAM,IAAI7N,MACR,gCAAgCsU,EAAcG,sEAAsEwF,EAAmBpM,UAQ3I,GAJkC,IAA9BoM,EAAmBpM,SACrBgM,EAAsBI,EAAmB,KAGO,IAA9C3F,EAAcK,QAAQC,qBAAwD,OAAxBiF,EACxD,MAAM,IAAI7Z,MACR,yCAAyCsU,EAAcG,gDAG7D,KAAO,CACL,MAAMyF,EAAqBnU,KAAKiS,6BAC1BmC,EAA4BzB,EAAciB,OAAQpJ,GACtD2J,EAAmBzZ,KAAK4B,EAAKuW,SAASrI,KAGxC,GAAI4J,EAA0BtM,OAAS,EACrC,MAAM,IAAI7N,MACR,wDAAwD+F,KAAKuL,6CAA6C6I,EAA0BtM,UAI/F,IAArCsM,EAA0BtM,SAC5BgM,EAAsBM,EAA0B,GAEpD,CAEA,MAAMC,EAAkD,CAAA,EACxD,IAAIC,EAAwD,KACxDC,EAAkC,KACtC,MAAMC,EAAmD,CAAA,EACzD,IAAIC,EAA+D,GAEnE,GAAIX,EAAqB,CACvB,MAAMY,EAA8BpY,EAAK2N,KAAK2I,EAAgBkB,GACxD9F,EAAW3X,KAAKuQ,YAAY+J,EAAAA,SAAGI,SAAS2D,EAA6B,UAE3E,IAAK1G,GAAUlE,OAAmC,iBAAnBkE,EAASlE,MACtC,MAAM,IAAI7P,MAAM,oDAGlB,GAAiC,iBAAtB+T,EAAS7B,WAA0B6B,EAAS7B,SACrD,MAAM,IAAIlS,MAAM,mDAGlBsa,EAAmBvG,EAAS7B,SAE5B,IAAK,MAAOjC,EAAcyK,KAAiBpX,OAAOC,QAAQwQ,EAASlE,OAAQ,CACzE,GAA4B,iBAAjB6K,IAA8BA,EAAarf,OACpD,MAAM,IAAI2E,MAAM,oDAAoDiQ,KAGtEmK,EAAwBrU,KAAKwR,YAAYtH,IAAiByK,CAC5D,CAIA,GAFmC3U,KAAK8R,sBAAsBuC,KAE3BrG,EAAS7B,SAC1C,MAAM,IAAIlS,MAAM,0DAGlB,IAAK,MAAOiQ,EAAcyK,KAAiBpX,OAAOC,QAAQ6W,GAA0B,CAClF,MAAMvB,EAAexW,EAAK2N,KAAK2I,EAAgB1I,GACzC6I,QAAiBpC,WAAGI,SAAS+B,GAAcxS,MAAM,IAAM,MAE7D,IAAKyS,EACH,MAAM,IAAI9Y,MAAM,6CAA6CiQ,KAG/D,MAAM8I,EAAajB,EAAOrH,WAAW,UAAUC,OAAOoI,GAAUnI,OAAO,OAEvE4J,EAAyBtK,GAAgB8I,EAErCA,IAAe2B,GACjBF,EAA8BpK,KAAK,CAAEH,eAAc0K,SAAUD,EAAcE,OAAQ7B,IAGjFhT,KAAKwS,4BAA4BlW,EAAKuW,SAAS3I,MACjDoK,EAAoB,CAClBpK,eACApY,QAASihB,EACTC,aACAC,aAAc0B,GAGpB,CAEIF,EAA8B3M,OAAS,GACzC9H,KAAK7M,OAAO+H,KACV5H,EAAOkJ,OACL,oDAAoDiY,EAA8B3M,mCAAmC2M,EAA8BnI,IAAKvQ,GAAMA,EAAEmO,cAAcD,KAAK,SAI3L,CAEA,MAAM6K,EAA0B,IAAInL,IAAI8K,EAA8BnI,IAAKvQ,GAAMA,EAAEmO,eAE7E6K,EAA2C,CAAA,EAC3CC,EAAyB,GAE/B,IAAK,MAAM9K,KAAgByI,EAAe,CACxC,GAAIzI,IAAiBoE,EACnB,SAGF,GAAIwF,GAAuB5J,IAAiB4J,EAC1C,SAGF,GAAIA,GAAuBvW,OAAO0X,UAAUC,eAAeC,KAAKJ,EAAkB7K,GAChF,SAGF,MAAM4I,EAAexW,EAAK2N,KAAK2I,EAAgB1I,GACzC6I,QAAiBpC,WAAGI,SAAS+B,GAC7BE,EAAajB,EAAOrH,WAAW,UAAUC,OAAOoI,GAAUnI,OAAO,OAEnEkJ,GAAuBvW,OAAO0X,UAAUC,eAAeC,KAAKd,EAAyBnK,GACvF6K,EAAiB7K,GAAgB4K,EAAwB7hB,IAAIiX,GACzDsK,EAAyBtK,GACzBmK,EAAwBnK,GACnB4J,GACTiB,EAAiB7K,GAxZW,0BAyZ5B8K,EAAa3K,KAAKH,IAElB6K,EAAiB7K,GAAgB8I,CAErC,CAEKsB,IACHA,QAA0BtU,KAAK0S,mCAAmCC,EAAeC,IAGnF,MAAMwC,EAAoBpV,KAAKgS,uBAAuB+C,GAEtD,IAAIM,EAAqE,KAezE,OAbI9G,GAAiBuF,GAAuBsB,IAAsB7G,EAAc/B,mBAC9E6I,EAAwB,CACtBT,SAAUrG,EAAc/B,iBACxBqI,OAAQO,GAGVpV,KAAK7M,OAAO+H,KACV5H,EAAOkJ,OACL,+EAA+E+R,EAAc/B,yBAAyB4I,OAKrH,CACLA,oBACAJ,eACAV,oBACAgB,SAAUf,EACVgB,eAAgBC,QAAQ1B,GAA+C,IAAxBkB,EAAalN,QAC5DuN,wBACAZ,gCAEJ,eACQ9D,EAAAA,SAAG8E,GAAGrC,EAAS,CAAEK,WAAW,EAAMiC,OAAO,GACjD,CACF,CAEA,mBAAMC,CAAcxC,GAElB,GAAiD,SAA7CA,EAAWrV,SAAS,SAASmB,MAAM,EAAG,GACxC,MAAM,IAAIhF,MAAM,iCAGlB,aAAa+F,KAAKkT,6BAA6BC,EACjD,CAEA,oCAAMyC,GACJ,MAAMC,EAAwBvZ,EAAKmI,QAAQE,EAAQ+G,MAAO,SAAUoE,IAC9DiD,QAAiBpC,WAAGI,SAAS8E,GAAuBvV,MAAM,IAAM,MAEtE,OAAKyS,EAIEhB,EAAOrH,WAAW,UAAUC,OAAOoI,GAAUnI,OAAO,OAHlD,IAIX,CAEA,+BAAMkL,CAA0BhkB,GAC9B,MAAM+jB,EAAwBvZ,EAAKmI,QAAQE,EAAQ+G,MAAO,SAAUoE,IAKpE,aAHMa,EAAAA,SAAGE,MAAMvU,EAAKyQ,QAAQ8I,GAAwB,CAAEpC,WAAW,UAC3D9C,WAAGO,UAAU2E,EAAuB/jB,GAEnC+jB,CACT,CAEA,gBAAME,CAAW5C,EAAoB6C,GACnC,MAAMC,EAAmBD,SAA8BhW,KAAK2V,cAAcxC,GACpE+C,EAAyBD,EAAiBb,kBAGhD,SAF8BpV,KAAKmR,uBAEd,CACnB,MAAMgF,eAAEA,EAAcC,aAAEA,GAAiBpW,KAAKoQ,YAE9C,GAAI+F,IAAmBD,EAOrB,YANAlW,KAAK7M,OAAOiB,KACVd,EAAOkJ,OACL,wEAAwE0Z,EAAuBjX,MAAM,EAAG,YAO9G,GAAIgX,EAAiBV,gBAAkBU,EAAiBX,UAAYc,IAAiBH,EAAiBX,SAOpG,YANAtV,KAAK7M,OAAOiB,KACVd,EAAOkJ,OACL,4GAMR,CAEA,MAAM6Z,EAAa,IAAItX,KAEjBuX,EAAWtW,KAAKsR,WAAWtR,KAAKmQ,SAAUkG,GAchD,OAZArW,KAAKoQ,YAAagB,eAAiBkF,EACnCtW,KAAKoQ,YAAa+F,eAAiBD,EACnClW,KAAKoQ,YAAamG,eAAiBF,EAAWrX,cAE1CiX,EAAiBX,SACnBtV,KAAKoQ,YAAagG,aAAeH,EAAiBX,gBAE3CtV,KAAKoQ,YAAagG,mBAGrBpW,KAAKyQ,iBAEEE,EAAAA,SAAGO,UAAU5U,EAAKmI,QAAQzE,KAAKgQ,aAAcsG,GAAWnD,GAAYqD,QAAQ,KACvFxW,KAAK7M,OAAOiB,KAAK,mBAAmBkiB,MAExC,CAEA,oBAAMG,GAEJ,GAAIzW,KAAKuQ,UACP,aAAavQ,KAAK0W,kBAGpB,MAAMC,EAAe,IAAInS,QAAgB,CAACC,EAASmS,KACjD,IAAIzV,EAAO,GAGXnB,KAAK7M,OAAOiB,KAAKd,EAAOiJ,KAAK,gCAE7B,MAAMsa,EAAOC,EAAcC,MAAM,OAAQ,CAACza,EAAKmI,QAAQiL,GAAY,mBAAoB,SAAU,CAC/FhE,IAAK/G,EAAQ+G,MACb9G,IAAKrH,OAAO2C,OAAO,CAAA,EAAIyE,EAAQC,IAAK,CAAEoS,SAAU,eAChDnJ,MAAO,YAGTgJ,EAAKzb,GAAG,UAAY6b,IAClB9V,GAAQ8V,IAGVJ,EAAKzb,GAAG,QAAUoI,IACH,IAATA,EAMJiB,EAAQtD,GALNyV,EAAO,IAAI3c,MAAM,kCAAkCuJ,QAQvDqT,EAAKzb,GAAG,QAAUoE,IAChBoX,EAAOpX,OAIX,UACQmX,EAAaH,QAAQ,KAEzBxW,KAAK7M,OAAOiB,KAAKd,EAAOiJ,KAAK,mCAG/B,MAAMkF,EAAYnF,EAAKmI,QAAQE,EAAQ+G,MAAO1L,KAAKqQ,cAAerQ,KAAKsQ,iBAEvE,UAAYK,EAAAA,SAAGC,KAAKnP,GAClB,MAAM,IAAIxH,MAAM,QAAQwH,eAG1B,aAAakP,EAAAA,SAAGI,SAAStP,EAC3B,CAAE,MAAOtM,GAGP,MAFA0D,EAAQoC,IAAI9F,GAENA,CACR,CACF,CAEA,wBAAM+hB,CAAmB/D,GAGvB,aAFMnT,KAAK+V,WAAW5C,SAETnT,KAAKyW,gBACpB,CAOQ,qBAAMC,GACZ,MAAMS,YAAEA,EAAWC,QAAEA,GAAYpX,KAAKuQ,UAEtCvQ,KAAK7M,OAAOiB,KAAKd,EAAOiJ,KAAK,8CAEvByD,KAAKqX,aAAaF,GAExBnX,KAAK7M,OAAOiB,KAAKd,EAAOiJ,KAAK,yCAE7B,MAAM+O,EAAShP,EAAKmI,QAAQ0S,EAAaC,GAEzC,UAAYpX,KAAKoK,YAAYkB,GAC3B,MAAM,IAAIrR,MAAM,6CAA6CqR,KAW/D,OARAF,GAA0B,CACxBE,SACAE,eAAgBxL,KAAKuQ,UAAW/E,eAChCD,oBAAqBvL,KAAKuL,oBAC1B6C,qBAAsBpO,KAAKuQ,UAAWnC,qBACtCL,kBAAmB/N,KAAKuQ,UAAWxC,0BAGxB/N,KAAKsX,aAAahM,EACjC,CAGQ,YAAA+L,CAAaF,GACnB,OAAO,IAAI3S,QAAc,CAACC,EAASmS,KACjC,IAAIW,EAEJ,IACE,MACMC,EADUC,EAAAA,cAAcnb,EAAK2N,KAAKkN,EAAa,iBACzB1S,QAAQ,qBAEpC8S,EAAUjb,EAAKmI,QAAQnI,EAAKyQ,QAAQyK,GAAc,gBACpD,CAAE,MAGA,YAFAZ,EAAO,IAAI3c,MAAM,4CAA4Ckd,4BAG/D,CAEA,MAAMN,EAAOC,EAAcC,MAAMpS,EAAQ+S,SAAU,CAACH,EAAS,SAAU,CACrE7L,IAAKyL,EACLvS,IAAKrH,OAAO2C,OAAO,CAAA,EAAIyE,EAAQC,IAAK,CAAEoS,SAAU,eAChDnJ,MAAO,YAGTgJ,EAAKzb,GAAG,QAAUoI,IACH,IAATA,EAMJiB,IALEmS,EAAO,IAAI3c,MAAM,+BAA+BuJ,QAQpDqT,EAAKzb,GAAG,QAASwb,IAErB,CAGQ,kBAAMU,CAAa9N,GACzB,MAAMmO,EAAM,IAAIC,EAEVC,EAAS3iB,MAAO4iB,IACpB,MAAMta,QAAgBmT,WAAGgB,QAAQmG,EAAS,CAAEjO,eAAe,IAE3D,IAAK,MAAME,KAASvM,EAAS,CAC3B,MAAMua,EAAOzb,EAAK2N,KAAK6N,EAAS/N,EAAM/W,MAEtC,GAAI+W,EAAMK,oBACFyN,EAAOE,QACR,GAAIhO,EAAMO,SAAU,CACzB,MAAMJ,EAAe5N,EAAK6N,SAASX,EAAKuO,GAAM9lB,QAAQ,MAAO,KAE7D0lB,EAAItW,KAAK6I,QAAoByG,EAAAA,SAAGI,SAASgH,GAC3C,CACF,GAKF,aAFMF,EAAOrO,SAEAmO,EAAIK,cAAc,CAAE/jB,KAAM,aAAcgkB,YAAa,WACpE,CAEQ,iBAAM7N,CAAY7R,GACxB,IACE,aAAcoY,EAAAA,SAAGC,KAAKrY,IAAS6R,aACjC,CAAE,MACA,OAAO,CACT,CACF,QCvvBW8N,GACMC,OACAxe,KACAye,SAETjlB,OACSklB,oBAAsB,IAAIzlB,IAK3C,WAAAmN,CAAYoY,EAAuBxe,GACjCqG,KAAKmY,OAASA,EACdnY,KAAKrG,KAAOA,GAAQ,CAAA,EAEpBqG,KAAKoY,SAAW,IAAIxlB,IAEpBoN,KAAKoY,SAAS/kB,IAAI,oBAAqB2M,KAAKsY,kBAAkBC,KAAKvY,OACnEA,KAAKoY,SAAS/kB,IAAI,gBAAiB2M,KAAKwY,eAAeD,KAAKvY,OAC5DA,KAAKoY,SAAS/kB,IAAI,gCAAiC2M,KAAKyY,6BAA6BF,KAAKvY,OAE1FA,KAAK7M,OAASL,IAEdkN,KAAK0Y,MACP,CAEA,IAAAA,GACE,MAAMC,GAAEA,GAAO3Y,KAAKmY,OAEpB,IAAK,MAAOS,EAAOC,KAAY7Y,KAAKoY,SAClCO,EAAGvd,GAAGwd,EAAOC,GAGfF,EAAGvd,GAAG,QAAS,KACb4E,KAAK8Y,4BAA2B,KAGlCH,EAAGvd,GAAG,QAAS,KACb4E,KAAK8Y,4BAA2B,IAEpC,CAEQ,iBAAAC,CAAkBC,EAAmBC,GAC3C,MAAMlP,EAAQ/J,KAAKqY,oBAAoBnlB,IAAI8lB,GAEtCjP,IAILmP,aAAanP,EAAMoP,WACnBnZ,KAAKqY,oBAAoBe,OAAOJ,GAChCjP,EAAMtF,QAAQwU,GAChB,CAGQ,0BAAAH,CAA2BG,GACjC,IAAK,MAAMD,IAAa,IAAIhZ,KAAKqY,oBAAoB1S,QACnD3F,KAAK+Y,kBAAkBC,EAAWC,EAEtC,CAEA,iBAAAX,CAAkBe,EAAgBC,GAChCA,EAAOC,KAAK,qBAAsB,GACpC,CAEA,4BAAAd,CAA6Be,GACtBA,GAAwC,iBAAtBA,EAAQR,WAAsD,kBAArBQ,EAAQP,UAIxEjZ,KAAK+Y,kBAAkBS,EAAQR,UAAWQ,EAAQP,SACpD,CAEA,uBAAMQ,CAAkBD,EAAsDF,GAC5E,MAAMN,EAAYU,EAAAA,aACZC,EAAY3Z,KAAKrG,KAAKigB,qBAAuB,KAEnD,aAAa,IAAIpV,QAAkBC,IACjC,MAAM0U,EAAYpc,WAAW,KAC3BiD,KAAK+Y,kBAAkBC,GAAW,IACjCW,GAEH3Z,KAAKqY,oBAAoBhlB,IAAI2lB,EAAW,CAAEvU,UAAS0U,cAEnDG,EAAOC,KAAK,gCAAiC,IACxCC,EACHR,eAGN,CAEA,oBAAMR,CAAea,EAAgBC,GACnC,IAAItZ,KAAKrG,KAAKkgB,cAAe7Z,KAAKrG,KAAKI,MAgWrC,OANAuf,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAO,8CAGTmJ,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,yCA9Ve,CAC5C,MAAM4T,YAAEA,EAAW9f,MAAEA,GAAUiG,KAAKrG,KAEpC,IACE,GAAIqG,KAAKmY,OAAO9M,OAAOyO,uBAAuBle,WAAY,CACxD,IAAK7B,GAAOkK,eAQV,YAPAqV,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAO,yDACPwU,OAAQ,CACN0O,SAAS,KAMbT,EAAOC,KAAK,uBAAwB,CAClClO,OAAQ,CACN0O,SAAS,IAIjB,CAEA,MAAMC,QAAsBjgB,GAAOsO,YAAY/H,MAAMpL,MAAOsK,IAC1D,GAAIya,EAAAA,aAAaza,GAAM,CAIrB,GAAuB,oBAFL4D,GAAkB5D,GAEtBgE,KAA4B,CACxCxD,KAAK7M,OAAOiB,KAAKd,EAAOkJ,OAAO,yDAG/B,IACE,MAAM0d,QAAmBngB,GAAO2O,uBAE5BwR,IAAeA,EAAWtR,SAC5B5I,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,yBAAyBiU,EAAWrjB,UACjEyiB,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAOqjB,EAAWrjB,MAClB2M,KAAM0W,EAAW1W,KACjB2W,SAAS,MAGXna,KAAK7M,OAAOiB,KAAKd,EAAOkJ,OAAO,oBAC/B8c,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAO,kBACP2M,KAAM,kBACN2W,SAAS,IAGf,CAAE,MAAOC,GACPpa,KAAK7M,OAAOiB,KAAKd,EAAOkJ,OAAO,oBAC/B8c,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAO,kBACP2M,KAAM,kBACN2W,SAAS,GAEb,CAEA,OAAO3a,CACT,CAGA,GACEA,EAAI6a,iBAAiBpgB,QAC6B,eAAhDuF,EAAI6a,MAAmC7W,MACU,cAAhDhE,EAAI6a,MAAmC7W,MAW1C,OATAxD,KAAK7M,OAAOiB,KACVd,EAAOkJ,OAAO,mFAGhB8c,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAO,iFACP2M,KAAM,qBAGDhE,EAIT,MAAM8a,EAAa9a,EAAIxJ,UAAUqN,OACjC,GAAmB,MAAfiX,GAAqC,MAAfA,GAAqC,MAAfA,EAU9C,OATAta,KAAK7M,OAAOiB,KACVd,EAAOkJ,OAAO,mDAAmD8d,4BAGnEhB,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAO,iFACP2M,KAAM,qBAGDhE,CAEX,CAGA,GAAI6C,GAA0B7C,GAY5B,OAXAQ,KAAK7M,OAAOiB,KACVd,EAAOkJ,OACL,qGAIJ8c,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAO,iFACP2M,KAAM,qBAGDhE,EAGT,MAAMA,KAGR,GAAIwa,aAAyB/f,MAC3B,OAGF,IAAIsgB,EAEJ,GAAIP,EAAe,CACjB,MAAMQ,QAAuBX,GAAalE,cAAcqE,GAAe1Z,MAAOd,GACxD,kCAAhBA,EAAIjL,SACNyL,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,kCAEtBzG,GAGFA,IAGT,GAAIgb,aAA0BvgB,MAC5BsgB,EAAYC,OACP,GAAIA,EAAgB,OACnBX,GAAa9D,WAAWiE,EAAeQ,IAG7C,MAAMC,EACmC,IAAvCD,EAAexF,aAAalN,QAC4B,IAAxD0S,EAAe/F,8BAA8B3M,QAC7CxL,EAAKuW,SAAS2H,EAAe/F,8BAA8B,GAAGvK,gBAC5D4F,GAEE4K,EAAKF,EAAe/F,8BACpBkG,EAAwBD,EAAG9G,OAC9B7X,GAAMO,EAAKuW,SAAS9W,EAAEmO,gBAAkB4F,IAErC8K,EAA0BF,EAAG9G,OAChC7X,GAAMO,EAAKuW,SAAS9W,EAAEmO,gBAAkB4F,IAIrC+K,GACHJ,GAAiCE,EAAsB7S,OAAS,GAAK8S,EAAwB9S,OAAS,EAEnGgT,EAAuBL,EACzB,GACAG,EAAwBtO,IAAKvQ,GAAMA,EAAEmO,cAEnC6Q,EAAiC7lB,UACrC,IAAKslB,EAAelG,oBAAsBuF,EACxC,OAGF,MAAMvF,kBAAEA,GAAsBkG,EAI9B,SAHwBX,EAAYjE,mCACRtB,EAAkBtB,WAEP,OACLhT,KAAKyZ,kBACnC,CACExR,MAAO,qCACPnW,QACE,iMACFkpB,YAAa,sBACbC,WAAY,cAEd3B,UAIMO,EAAY/D,0BAA0BxB,EAAkBxiB,QAElE,GAGF,GAAI0oB,EAAexF,aAAalN,OAAS,EAAG,CAW1C,UAViC9H,KAAKyZ,kBACpC,CACExR,MAAO,gCACPnW,QAAS,gDAAgD0oB,EAAexF,aAAa/K,KAAK,kCAC1F+Q,YAAa,gBACbC,WAAY,eAEd3B,GAWA,OAPAA,EAAOC,KAAK,yBAA0B,CACpC2B,WAAW,EACX3mB,QAAS,mDAGXyL,KAAK7M,OAAOiB,KAAKd,EAAOkJ,OAAO,0BAInC,CAMA,GAJIqe,SACIE,KAGHN,GAAiCK,EAAqBhT,OAAS,EAAG,CACrE,MAAMqT,EAAW,GACXC,EAAQN,EACRO,EAASD,EAAMnc,MAAM,EAAGkc,GACxBG,EAAYF,EAAMtT,OAASuT,EAAOvT,OAClCyT,EAAWF,EAAO/O,IAAKlG,GAAM,KAAKA,KAAK6D,KAAK,MAC5CuR,EAASF,EAAY,EAAI,aAAaA,cAAoC,IAAdA,EAAkB,GAAK,MAAQ,GAYjG,UAViDtb,KAAKyZ,kBACpD,CACExR,MAAO,+BACPnW,QAAS,+EAA+EypB,IAAWC,sEACnGR,YAAa,wBACbC,WAAY,eAEd3B,GAWA,OAPAA,EAAOC,KAAK,yBAA0B,CACpC2B,WAAW,EACX3mB,QAAS,mDAGXyL,KAAK7M,OAAOiB,KAAKd,EAAOkJ,OAAO,0BAInC,CAGA,IACGie,GACDD,EAAenF,uBACyC,IAAxDmF,EAAe/F,8BAA8B3M,OAC7C,CACA,MAAM8M,SAAEA,EAAQC,OAAEA,GAAW2F,EAAenF,sBAY5C,UAV0CrV,KAAKyZ,kBAC7C,CACExR,MAAO,sCACPnW,QAAS,oFAAoF8iB,EAAS3V,MAAM,EAAG,qBAAqB4V,EAAO5V,MAAM,EAAG,gCACpJ+b,YAAa,gBACbC,WAAY,eAEd3B,GAWA,OAPAA,EAAOC,KAAK,yBAA0B,CACpC2B,WAAW,EACX3mB,QAAS,mDAGXyL,KAAK7M,OAAOiB,KAAKd,EAAOkJ,OAAO,0BAInC,CAEKqe,SACGE,IAGRR,QAAkBV,GAAapD,iBACjC,CACF,MACE8D,QAAkBV,GAAapD,kBAGjC,KAAI8D,GAAaA,aAAqBkB,QA+BpC,OAAIlB,aAAqBtgB,OACvBqf,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAO0jB,EAAUhmB,eAGnByL,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAIsU,EAAUhmB,YAKzC+kB,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAO,oCAGTmJ,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,gCA7Ce,CAC5C,MAAMyV,QAAqB3hB,GAAOyO,aAAa+R,IAE/C,GAA6B,OAAzBmB,GAAcrY,OAAiB,CACjC,MAAMsY,EAAa9B,GAAatI,iBAG9BH,eAAgBwK,EAChBzF,eAAgB0F,EAChBtF,eAAgBF,GACdsF,GAAc,CAChBvK,eAAgB,GAChB+E,eAAgB,GAChBI,gBAAgB,IAAIxX,MAAOC,eAG7Bsa,EAAOC,KAAK,yBAA0B,CACpCuC,SAAU,IAAI/c,KAAKsX,GACnBwF,cACAD,mBAGF5b,KAAK7M,OAAOiB,KAAKd,EAAOoJ,MAAM,mBAChC,MACE4c,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAO,4BAGTmJ,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,2BAEjC,CAmBF,CAAE,MAAO8V,GACP,MAAMxnB,EAAUwnB,aAAqB9hB,MAAQ8hB,EAAUxnB,QAAU,uBASjE,OAPAyL,KAAK7M,OAAO0D,MAAMvD,EAAO2S,IAAI,yBAAyB1R,WAEtD+kB,EAAOC,KAAK,yBAA0B,CACpC1iB,MAAOtC,EACPiP,KAAM,eAIV,CACF,CASF,EClcF,MAAMwY,GAAuB,oBAGvBC,GAAc,IACdC,GAAmB,UACnBC,GAAoB,IAG1B,MAAMC,WAAsBC,EAAYC,MAC9BC,UAAY,EACbC,QACAC,SAEP,WAAA1c,CAAYyc,EAAiBC,GAC3Bhc,QACAT,KAAKwc,QAAUA,EACfxc,KAAKyc,SAAWA,CAClB,CAEA,GAAAC,CAAIxlB,EAAa7B,EAAkBsnB,GAEjC,MAAMC,EAAU5c,KAAK9M,IAAIgE,GAErB0lB,IACF5c,KAAKuc,WAAaK,EAAQC,MAI5B,MAAMxV,EAAS5G,MAAMic,IAAIxlB,EAAK7B,EAAOsnB,GAOrC,OALA3c,KAAKuc,WAAalnB,EAAMwnB,KAGxB7c,KAAK8I,UAEEzB,CACT,CAEQ,OAAAyB,GACN,MAAMnD,EAAO3F,KAAK2F,OAGlB,GAAIA,EAAKmC,OAAS9H,KAAKyc,SAAU,CAC/B,MAAMK,EAAgBnX,EAAKmC,OAAS9H,KAAKyc,SACnCM,EAAapX,EAAK0G,KAAK,CAAC2Q,EAAGC,KAC/B,MAAMC,EAAQld,KAAK9M,IAAI8pB,GACjBG,EAAQnd,KAAK9M,IAAI+pB,GAEvB,OAAQC,GAAOE,WAAa,IAAMD,GAAOC,WAAa,KAGxD,IAAK,IAAIC,EAAI,EAAGA,EAAIP,EAAeO,IAAK,CACtC,MAAMnmB,EAAM6lB,EAAWM,GACjBrV,EAAOhI,KAAK9M,IAAIgE,GAElB8Q,IACFhI,KAAKuc,WAAavU,EAAK6U,KACvB7c,KAAKsd,IAAIpmB,GAEb,CACF,CAGA,KAAO8I,KAAKuc,UAAYvc,KAAKwc,SAAW7W,EAAKmC,OAAS,GAAG,CACvD,MAAMyV,EAAY5X,EAAK0G,KAAK,CAAC2Q,EAAGC,KAC9B,MAAMC,EAAQld,KAAK9M,IAAI8pB,GACjBG,EAAQnd,KAAK9M,IAAI+pB,GAEvB,OAAQC,GAAOE,WAAa,IAAMD,GAAOC,WAAa,KACrD,GAEH,GAAIG,EAAW,CACb,MAAMvV,EAAOhI,KAAK9M,IAAIqqB,GAElBvV,IACFhI,KAAKuc,WAAavU,EAAK6U,KACvB7c,KAAKsd,IAAIC,GAEb,CACF,CACF,CAEA,YAAAC,GACE,OAAOxd,KAAKuc,SACd,CAEA,YAAAkB,GACE,OAAOzd,KAAK2F,OAAOmC,MACrB,EAIF,MAAM4V,GAAQ,IAAItB,GAAcF,GAAkBC,IAwBlD,SAASwB,GAAqBC,GAC5B,GAAsB,IAAlBA,EAAO9V,OACT,OAAO2T,OAAOoC,MAAM,GAGtB,GAAsB,IAAlBD,EAAO9V,OACT,OAAO8V,EAAO,GAGhB,MAAME,EAAcF,EAAOG,OAAO,CAACC,EAAKC,IAAUxC,OAAOyC,WAAWD,GAASD,EAAK,GAElF,OAAOvC,OAAO0C,OAAOP,EAAmCE,EAC1D,CAkBM,SAAUM,GAAezkB,GAC7B,MAAM0kB,UAAEA,EAAS1B,IAAEA,EAAMV,GAAWO,QAAEA,EAAUN,GAAgBO,SAAEA,EAAWN,IAAsBxiB,EAE7FxG,EAASL,IAUf,OAPI0pB,IAAYN,IAAoBO,IAAaN,KAC/CuB,GAAMlB,QAAUA,EAChBkB,GAAMjB,SAAWA,GAGnB4B,EAAUX,MAAQA,GAEX,CAACnjB,EAAKjI,EAAKgsB,KAChB,MAAM/rB,EAAMgI,EAAIkB,aAAelB,EAAIhI,KAAO,GACpCmS,EAhEV,SAA0BnS,GAExB,MAAMgsB,EAAWhsB,EAAIisB,MAAM,KAAK,GAGhC,OAAKxC,GAAqBthB,KAAK6jB,GAI3BA,EAASnhB,SAAS,iBACb,GAGF7K,EAPE,EAQX,CAkDqBksB,CAAiBlsB,GAGlC,IAAKmS,EACH,OAAO4Z,IAIT,MAAMI,EAAYhB,GAAMxqB,IAAIwR,GAE5B,GAAIga,EAUF,OATAvrB,EAAOiB,KACL,GAAGd,EAAOmJ,KAAK,uBAAuBnJ,EAAOoJ,MAAMnC,EAAIrE,WAAW3D,QAAUe,EAAOmJ,KAAK,YAAYiI,KAxC5G,SAA4BpS,EAAqB6D,GAC/C,IACE,IAAK,MAAOwoB,EAAQtpB,KAAUkI,OAAOC,QAAQrH,GACvCd,SACF/C,EAAIG,UAAUksB,EAAQtpB,EAG5B,CAAE,MAAOwB,GAEPgC,QAAQqC,KAAK,uCAAwCrE,EACvD,CACF,CAgCM+nB,CAAmBtsB,EAAKosB,EAAUvoB,SAElC7D,EAAIusB,MAAMH,EAAU5sB,cACpBQ,EAAII,MAMN,MAAMosB,EAAcxsB,EAAII,IAClBqsB,EAAgBzsB,EAAIusB,MACpBjB,EAAmB,GAGxBtrB,EAAYusB,MAAQ,SACnB1d,EACAyM,EACAoR,GAEA,IAAK1sB,EAAI2sB,UAAUxlB,GACjB,OAAOslB,EAAc5J,KAAKnV,KAAMmB,EAAMyM,EAA4BoR,GAIpE,GAAoB,iBAAT7d,EAAmB,CAC5B,MAAM+d,EAA+BtR,GAAY,OACjDgQ,EAAOvT,KAAKoR,OAAO0D,KAAKhe,EAAM+d,GAChC,MAAWzD,OAAO2D,SAASje,GACzByc,EAAOvT,KAAKlJ,GACHA,SACTyc,EAAOvT,KAAKoR,OAAO0D,KAAKE,OAAOle,GAAO,SAGxC,OAAO,CACT,EAGC7O,EAAYI,IAAM,SAAUurB,EAAarQ,EAA2BoR,GACnE,IAAK1sB,EAAI2sB,UAAUxlB,GACjB,OAAOqlB,EAAY3J,KAAKnV,KAAMie,EAAOrQ,EAA4BoR,GAInE,GAAIf,QACF,GAAqB,iBAAVA,EAAoB,CAC7B,MAAMiB,EAA+BtR,GAAY,OACjDgQ,EAAOvT,KAAKoR,OAAO0D,KAAKlB,EAAOiB,GACjC,MAAWzD,OAAO2D,SAASnB,GACzBL,EAAOvT,KAAK4T,GAEZL,EAAOvT,KAAKoR,OAAO0D,KAAKE,OAAOpB,GAAQ,SAK3C,IAAIqB,EAEJ,IACEA,EAAc3B,GAAqBC,GAEnC,MAAM2B,EAAe9D,OAAOyC,WAAWoB,GAGvC,GAAIC,EAAe,GAAKA,EAAe,SAAkB,CAEvD,MAAMb,EAAuB,CAC3BvoB,QAAS7D,EAAIktB,aACb1tB,QAASwtB,EACTlC,UAAWre,KAAK0gB,MAChB5C,KAAM0C,GAGR7B,GAAMhB,IAAIhY,EAAUga,EAAW/B,GAE/BxpB,EAAOiB,KAAK,GAAGd,EAAOmJ,KAAK,eAAeiI,OAAc6a,EAAe,MAAMG,QAAQ,QACvF,CACF,CAAE,MAAO7oB,GACP1D,EAAO0D,MAAM,gCAAgC6N,MAAa7N,KAC1DyoB,EAAc3B,GAAqBC,EACrC,CAGA,MAAM+B,EAAgB/R,GAAY,OAElC,OAAOkR,EAAY3J,KAAKnV,KAAMsf,EAAaK,EAAiCX,EAC9E,EAEAV,IAEJ,CC5RM,SAAUsB,GACdC,EACAC,GAEA,OAAO5qB,MAAOqF,EAAKjI,EAAKgsB,KACtB,SAAUuB,EAAUtlB,EAAIhI,KAAO,GAAIgI,EAAKjI,GAAM,CAC7BQ,IAERsB,KAAK,wBAAwBmG,EAAIhI,OAExC,MAAMG,EAAMJ,EAAII,IAEVqtB,EAAoB,GAE1BztB,EAAIusB,MAAQ,SAAUzoB,GAGpB,OAFA2pB,EAAQ1V,KAAKjU,IAEN,CACT,EAEA9D,EAAII,IAAM,SAAUurB,EAAarQ,EAA0CoS,GACpD,iBAAV/B,GACT8B,EAAQ1V,KAAKoR,OAAO0D,KAAKlB,IAG3B,MAAMgC,EAAkB3tB,EAAIiJ,UAAU,oBAChCzJ,ECnCR,SAAwBA,EAAiBmuB,GAC7C,OAAQA,GACN,IAAK,OACH,OAAOC,EAAAA,UAAUpuB,GAEnB,IAAK,KACH,OAAOquB,EAAAA,qBAAqBruB,GAE9B,IAAK,UACH,OAAOsuB,EAAAA,YAAYtuB,GAErB,QACE,OAAOA,EAEb,CDqBwBuuB,CAAc5E,OAAO0D,KAAK1D,OAAO0C,OAAO4B,IAAWE,GAE7DK,EAAqC,mBAAb1S,GAA2BA,EAAWA,EAAW,QACzE2S,EAAkC,mBAAb3S,EAA0BA,EAAWoS,EAIhE,OAFAttB,EAAIyiB,KAAKnV,KCxBX,SAAwBlO,EAAiBmuB,GAC7C,OAAQA,GACN,IAAK,OACH,OAAOO,EAAAA,SAAS1uB,GAElB,IAAK,KACH,OAAO2uB,EAAAA,mBAAmB3uB,GAE5B,IAAK,UACH,OAAO4uB,EAAAA,YAAY5uB,GAErB,QACE,OAAOA,EAEb,CDUuB6uB,CAAcb,EAAQhuB,EAASyI,EAAKjI,GAAM2tB,GAAkBK,EAAgBC,GAEpFvgB,IACT,CACF,CAEAse,IAEJ,CE5CM,SAAUsC,GAAeC,EAAc7mB,GAI3C,MAAM8mB,GAFND,GADAA,EAAOA,EAAKzuB,WAAW,KAAOyuB,EAAO,IAAIA,KAC7BE,SAAS,KAAOF,EAAO,GAAGA,MAEAE,SAAS,KAAOF,EAAK5hB,MAAM,GAAG,GAAM4hB,EAEpE1tB,EAASL,IAEf,MAAO,CAACyH,EAAKjI,EAAKgsB,KAChB,MAAM0C,EAAY,IAAIzqB,EAAAA,IAAIgE,EAAIhI,KAAO,GAAI,qBACnCoE,SAAEA,EAAQwF,OAAEA,GAAW6kB,EACvBC,EAAY,CAAC,IAAKH,GAQxB,GANI9mB,IACFinB,EAAU5W,KAAK,OAAOrQ,KACtBinB,EAAU5W,KAAK,OAAOrQ,MAIpBinB,EAAU7jB,SAASzG,GAAW,CAChC,MAAMuqB,EAAc,GAAGL,IAAO1kB,IAI9B,OAFAhJ,EAAOiB,KAAKd,EAAOkJ,OAAO,mBAAmB0kB,MAEtC7uB,EAASC,EAAK4uB,EAAa,IACpC,CAEA5C,IAEJ,CCtBA,MAAM6C,GACIC,MAAmB,CACzBC,iBAAiB,EACjBC,cAAc,EACdC,YAAa,GAGPC,UAA6C,IAAI7X,IAKzD,QAAA8X,GACE,MAAO,IAAKzhB,KAAKohB,MACnB,CAKA,eAAAC,GACE,OAAOrhB,KAAKohB,MAAMC,eACpB,CAKA,YAAAC,GACE,OAAOthB,KAAKohB,MAAME,YACpB,CAKA,gBAAAI,CAAiBC,GACf3hB,KAAKohB,MAAMC,gBAAkBM,EAC7B3hB,KAAKohB,MAAMG,YAAcxiB,KAAK0gB,MAC9Bzf,KAAK4hB,iBACP,CAKA,aAAAC,CAAcC,GACZ9hB,KAAKohB,MAAME,aAAeQ,EAC1B9hB,KAAK4hB,iBACP,CAKA,WAAAG,CAAYC,QACsBtc,IAA5Bsc,EAAQX,kBACVrhB,KAAKohB,MAAMC,gBAAkBW,EAAQX,sBAEV3b,IAAzBsc,EAAQV,eACVthB,KAAKohB,MAAME,aAAeU,EAAQV,cAEpCthB,KAAKohB,MAAMG,YAAcxiB,KAAK0gB,MAC9Bzf,KAAK4hB,iBACP,CAKA,KAAAK,GACEjiB,KAAKohB,MAAQ,CACXC,iBAAiB,EACjBC,cAAc,EACdC,YAAa,GAEfvhB,KAAK4hB,iBACP,CAKA,SAAAM,CAAUC,GAIR,OAHAniB,KAAKwhB,UAAU7sB,IAAIwtB,GAGZ,KACLniB,KAAKwhB,UAAUpI,OAAO+I,GAE1B,CAKQ,eAAAP,GACN5hB,KAAKwhB,UAAUhpB,QAAS2pB,IACtB,IACEA,EAASniB,KAAKyhB,WAChB,CAAE,MAAO5qB,GACPgC,QAAQhC,MAAM,gCAAiCA,EACjD,GAEJ,CAKA,YAAAurB,GACE,MAAO,IACFpiB,KAAKyhB,WACRY,cAAeriB,KAAKwhB,UAAU3E,KAElC,EAIK,MAAMyF,GAAe,IAAInB,GCtG1BoB,GAAmB,IAAI3vB,IAG7B,SAAS4vB,GAAkBtrB,GACzB,MAAMurB,EAASF,GAAiBrvB,IAAIgE,GACpC,OAAKurB,EAED1jB,KAAK0gB,MAAQgD,EAAOrF,UANR,MAOdmF,GAAiBnJ,OAAOliB,GAEjB,MAGFurB,EAAOthB,KARM,IAStB,CAEA,SAASuhB,GAAkBxrB,EAAaiK,GACtCohB,GAAiBlvB,IAAI6D,EAAK,CAAEkmB,UAAWre,KAAK0gB,MAAOte,QACrD,CAGA,MAAMwhB,GAAuB,gCAkCbC,GACdC,EACAC,EACAnpB,GAEA,MAAMyK,aAAEA,GAAe,EAAKgD,UAAEA,GAAY,EAAK2b,MAAEA,EAAKlC,KAAEA,EAAImC,QAAEA,EAAOpnB,WAAEA,GAAejC,EAEhFxG,EAASL,IAGf,GAAIsR,GAAgBgD,QAA8B,IAAV2b,EACtC,MAAM,IAAI9oB,MAAM,2EAGlB,IAAIgpB,EAAYX,GAAab,WAM7B,OAJAa,GAAaJ,UAAWd,IACtB6B,EAAY7B,IAGPlsB,MAAOqF,EAAsBjI,EAAqBgsB,KACvD,IACE,MAAM4E,IAAuB9e,GAAgBgD,GACvC+b,ErBpDN,SAAuB5wB,GAG3B,OAFiBA,EAAIisB,MAAM,KAEX,EAClB,CqBgD0B4E,CAAa7oB,EAAIhI,KAAO,IACtC8wB,EAAiBR,EAAenoB,KAAKyoB,GAOrCG,GACHD,IACAF,EAAY/wB,WAAW,UA3ChC,SAAqB+wB,EAAqBtC,GACxC,IAAKA,GAAiB,MAATA,EACX,OAAO,EAGT,MAAM0C,EAAiB1C,EAAKE,SAAS,KAAOF,EAAO,GAAGA,KAEtD,OAAOsC,IAAgBI,GAAkBJ,IAAgBI,EAAetkB,MAAM,OAAUkkB,EAAY/wB,WAAWmxB,EACjH,CAoCQC,CAAYL,EAAaH,IA7DjC,SAA+BzoB,GAC7B,MAAMkpB,EAAOlpB,EAAIpE,QAAQ,kBAEzB,GAAoB,iBAATstB,EACT,MAAgB,aAATA,EAIT,MAAMtjB,EAAS5F,EAAIpE,QAAgB,OAEnC,MAAyB,iBAAXgK,GAAuBA,EAAO/C,SAAS,YACvD,CAmDQsmB,CAAsBnpB,GAGxB,IACG0oB,EAAU5B,kBACV4B,EAAU3B,cAEX/mB,EAAIhI,KAAKH,WAAW,WAEnBmI,EAAIhI,KAAKH,WAAWuwB,IACrB,CACAxvB,EAAOiB,KAAKd,EAAOmJ,KAAK,gDAExB,IAmCE,OAlCKymB,QAeGS,GACJb,EACA,CACE1e,eACAgD,YACA2b,MAAOA,EACP7B,YAAatlB,GAAcilB,EAAO,GAAGA,IAAS,GAAG8B,KAAuBiB,mBAAmB,QAE7FrpB,EACAjI,EACA,OACAa,SAzBI0wB,GACJf,EACA,CACE1e,eACAgD,YACA2b,MAAOA,EACP7B,YAAatlB,GAAcilB,EAAO,GAAGA,IAAS,GAAG8B,KAAuBiB,mBAAmB,QAE7FrpB,EACAjI,EACA,OACAa,GAkBJmvB,GAAaT,eAAc,GAE3B1uB,EAAOiB,KAAKd,EAAOmJ,KAAK,oDAEjBpK,EAASC,EAAKuuB,GAAQ,IAAK,IACpC,CAAE,MAAOhqB,GAEP,OAAOynB,GACT,CACF,CAGA,IAAK+E,IAAmBC,EACtB,OAAOhF,IAGT,IAAK4E,EAAoB,CAevB,aAdqBW,GACnBf,EACA,CACE1e,eACAgD,YACA2b,MAAOA,EACP7B,YAAatlB,GAAcilB,EAAO,GAAGA,IAAS,GAAG8B,KAAuBiB,mBAAmB,QAE7FrpB,EACAjI,EACAgsB,EACAnrB,EAIJ,CAgBA,aAdqBwwB,GACnBb,EACA,CACE1e,eACAgD,YACA2b,MAAOA,EACP7B,YAAatlB,GAAcilB,EAAO,GAAGA,IAAS,GAAG8B,KAAuBiB,mBAAmB,QAE7FrpB,EACAjI,EACAgsB,EACAnrB,EAIJ,CAAE,MAAO0D,GASP,OARA1D,EAAO0D,MACLvD,EAAO2S,IACL,gDAAgDpP,aAAiBoD,MAAQpD,EAAMtC,QAAU8qB,OAAOxoB,OAIpGyrB,GAAaL,QAEN3D,EAAKznB,EACd,EAEJ,CAKA3B,eAAe2uB,GACbf,EACAgB,EACAvpB,EACAjI,EACAgsB,EACAnrB,GAEA,MAAM4vB,MAAEA,EAAKgB,sBAAEA,EAAqB7C,YAAEA,GAAgB4C,EAEtD,QAAqB,IAAVf,EAAuB,CAChC,MAAMlsB,EAAQ,IAAIoD,MAAM,qDAIxB,OAFA9G,EAAO0D,MAAMvD,EAAO2S,IAAIpP,EAAMtC,UAEvB+pB,EAAKznB,EACd,CAEA,MAAMV,EAAWoE,EAAIpE,SAAW,GAEhChD,EAAOiB,KAAKd,EAAOoJ,MAAM,4BAEzB,IAEE,MAAMgI,EAAW,YAAYqe,IAG7B,OAFmBP,GAAkB9d,IAGnCvR,EAAOiB,KAAKd,EAAOoJ,MAAM,gCAClB4hB,YAGHwE,EAAGhc,YAAYic,EAAO5sB,GAE5BhD,EAAOiB,KAAKd,EAAOmJ,KAAK,gDACxBihB,GAAMsG,QAGNtB,GAAkBhe,EAAU,CAAEuf,SAAS,IAEvC3B,GAAaP,YAAY,CAAEV,iBAAiB,IAE5CluB,EAAOiB,KAAKd,EAAOoJ,MAAM,kCAElB4hB,IACT,CAAE,MAAOznB,GAGP,OAFAyrB,GAAaL,QAENiC,GACLrtB,EACAktB,IAAyB,EACzB7C,GAAe,GAAGyB,KAAuBiB,mBAAmB,OAC5DtxB,EACAgsB,EACAnrB,EACA,YAEJ,CACF,CAKA+B,eAAeyuB,GACbb,EACAgB,EACAvpB,EACAjI,EACAgsB,EACAnrB,GAEA,MAAMiR,aAAEA,EAAY2e,MAAEA,EAAKgB,sBAAEA,EAAqB7C,YAAEA,GAAgB4C,EAC9D3tB,EAAWoE,EAAIpE,SAAW,GAEhChD,EAAOiB,KAAKd,EAAOoJ,MAAM,4BAEzB,IAEE,MAAMgI,EAAW,YAAYN,KAAgB2e,IAG7C,GAFmBP,GAAkB9d,GAInC,OADAvR,EAAOiB,KAAKd,EAAOoJ,MAAM,gCAClB4hB,IAGT,MAAM6F,EACH/f,QAAiC,IAAV2e,EAA8DD,EAAG9c,gBAAgB7P,GAAzD2sB,EAAGvc,iBAAiBwc,EAAO5sB,GAY7E,aAVMguB,EAENhxB,EAAOiB,KAAKd,EAAOmJ,KAAK,gDACxBihB,GAAMsG,QAGNtB,GAAkBhe,EAAU,CAAEuf,SAAS,IAEvC9wB,EAAOiB,KAAKd,EAAOoJ,MAAM,kCAElB4hB,GACT,CAAE,MAAOznB,GAGP,OAFAyrB,GAAaL,QAENiC,GACLrtB,EACAktB,IAAyB,EACzB7C,GAAe,GAAGyB,KAAuBiB,mBAAmB,OAC5DtxB,EACAgsB,EACAnrB,EACA,YAEJ,CACF,CAKA,SAAS+wB,GACPrtB,EACAktB,EACA7C,EACA5uB,EACAgsB,EACAnrB,EACAixB,GAGA,GAwBF,SAAqBvtB,GACnB,OAAiB,OAAVA,GAAmC,iBAAVA,GAAsB,aAAcA,QAA4B6O,IAAnB7O,EAAMb,QACrF,CA1BMquB,CAAYxtB,KACd1D,EAAOiB,KAAKd,EAAO2S,IAAI,GAAGme,qCAEtBL,GAAuB,CACzB,MAAMO,EAAkB,GAAGpD,IAI3B,OAFA/tB,EAAOiB,KAAKd,EAAOkJ,OAAO,mBAAmB8nB,MAEtCjyB,EAASC,EAAKgyB,EAAiB,IACxC,CAIF,MAAM7kB,EAAe5I,aAAiBoD,MAAQpD,EAAMtC,QAAU8qB,OAAOxoB,GAKrE,OAHA1D,EAAOiB,KAAKd,EAAO2S,IAAI,GAAGme,4BAAwC3kB,MAG3D6e,EAAKznB,EACd,UCzWgB0tB,KACd,MAAMC,EAAMC,IAKZ,OAHAD,EAAIE,IAAID,EAAQ7tB,QAChB4tB,EAAIE,IAAID,EAAQE,WAAW,CAAEC,UAAU,KAEhCJ,CACT,CAEA,MAAMK,GAAiBN,KC4LvB,SAASO,GAAuBzvB,EAAU0vB,EAA8BtlB,GACtE,OAAOslB,EAAU1vB,GAAS,CAAEuT,SAAS,GAAS,CAAEA,SAAS,EAAO/R,MAAO4I,EACzE,sVAuFM,SAAmC4L,GACvC,MAAM2Z,EAtFR,SAAwB3Z,GACtB,MAAM4Z,EAAkC,CACtCH,GACEzZ,EACC6Z,GAA0C,iBAANA,GAAwB,OAANA,EACvD,sCAEFJ,GACEzZ,EAAOrR,aACNhH,GAAyC,iBAATA,GAAqBA,EAAK8U,OAAS,EACpE,4DAEFgd,GACEzZ,EAAO8Z,eACN5yB,QAA2CmT,IAARnT,GAAqC,iBAARA,GAAoBA,EAAIuV,OAAS,EAClG,0EAEFgd,GACEzZ,EAAO1K,aACNiC,QAAwC8C,IAAP9C,GAAmC,iBAAPA,GAAmBA,EAAK,EACtF,uEAEFkiB,GACEzZ,EAAO0X,MACNngB,QAAwC8C,IAAP9C,GAAmC,iBAAPA,GAAmBA,EAAK,EACtF,gEAEFkiB,GACEzZ,EAAO+Z,cACNzI,QAA2CjX,IAARiX,GAAqC,iBAARA,GAAoBA,EAAM,EAC3F,wEAEFmI,GACEzZ,EAAOga,kBAELC,IAEA,QAAkB5f,IAAd4f,EACF,OAAO,EAGT,GAAkB,OAAdA,EACF,OAAO,EAGT,GAAyB,kBAAdA,GAAgD,iBAAdA,EAC3C,OAAO,EAIT,IAAkB,IAAdA,IAA2C,IAArBja,EAAOjE,UAC/B,OAAO,EAGT,GAAyB,iBAAdke,GAAwC,OAAdA,EAAoB,CACvD,QAAiC5f,IAA7B4f,EAAUC,gBAAoE,kBAA7BD,EAAUC,eAC7D,OAAO,EAGT,QAC2C7f,IAAzC4f,EAAUE,4BACsC,kBAAzCF,EAAUE,2BAEjB,OAAO,EAGT,IACuB,IAArBna,EAAOjE,aACuB,IAA7Bke,EAAUC,iBAAoE,IAAzCD,EAAUE,4BAEhD,OAAO,CAEX,CAEA,OAAO,GAET,kIAMJ,OAFsBP,EAAY9e,KAAMkB,IAAYA,EAAOuB,UAEnC,CAAEA,SAAS,EACrC,CAG2B6c,CAAepa,GAExC,IAAK2Z,EAAiBpc,QACpB,MAAM,IAAI3O,MAAM+qB,EAAiBnuB,OAInC,MAAM8J,EAAe0K,EAAO0X,OAAS1X,EAAO1K,cAEtC+kB,iBACJA,GAAmB,EAAIN,cACvBA,EAAgB,IAActrB,qBAC9BA,GAAuB,EAAK6rB,eAC5BA,GAAiB,EAAIve,UACrBA,GAAY,EAAKie,kBACjBA,GAAoB,EAAKjhB,aACzBA,GAAe,EAAKkH,OACpBA,EAAS,OAAMsa,QACfA,GAAU,EAAIC,cACdA,GAAgB,EAAIC,eACpBA,EAAiB,UAASlqB,WAC1BA,GAAa,EAAKJ,oBAClBA,EAAsBmJ,QAAQC,IAAImhB,iBAChC1a,GAAU,CAAA,EAEd,IAAI2a,EAAgBJ,EAGlBI,GADoB,IAAlBA,EACc,CACdC,YAAa,GAAG5a,EAAOrR,mBACvBsR,OAAQ,YAEkB,iBAAZsa,GACA,CACdK,YACiC,iBAAxBL,EAAQK,YACXL,EAAQK,YAAYh0B,QAAQ,iBAAkBoZ,EAAOrR,cACrD,GAAGqR,EAAOrR,mBAChBsR,OAAQsa,EAAQta,QAAU,YAM9B,IAAI4a,EAAuBP,EAEG,kBAAnBA,GACoB,IAAzBO,IACFA,EAAuB,CAAA,GAEU,iBAAnBP,IAChBO,GAAuB,GAGzB,MAAMC,EAA+B,+CACrC,IAAIC,EAgBJ,OAbEA,GADoB,IAAlBP,KAEyB,IAAlBA,EACa,CACpBta,oBAAqB4a,EACrB9f,SAAS,GAGW,CACpBkF,oBAAqBsa,EAActa,qBAAuB4a,EAC1D9f,QAASwf,EAAcxf,UAAW,IAI/B,CACLqf,mBACAN,gBACAtrB,uBACA6rB,eAAgBO,EAChB9hB,eACAgD,YACAkE,SACAsa,QAASI,EACTH,cAAeO,EACfN,iBACAlqB,aACAJ,sBACAmF,eACA0kB,uBACGha,EAEP,0CAwFA,SAAmByY,GACjB,MAAM9pB,aACJA,EAAYoK,aACZA,EAAY+gB,eACZA,EAAc/d,UACdA,EAASzG,aACTA,EAAYoiB,MACZA,EAAK2C,iBACLA,EAAgBN,cAChBA,EAAatrB,qBACbA,EAAoB8rB,QACpBA,EAAOC,cACPA,EAAaC,eACbA,EAAclqB,WACdA,EAAUJ,oBACVA,GACEsoB,GAAW,CAAA,EAGf,IAAIuC,GAAiB,EACP1hB,QAAQ+G,MAEtB,MAAM4a,EAAkBvD,GAASpiB,EAEjC,MAAO,CACL3N,KAAM,cACNuzB,MAAO,QACPlb,OAASA,IACP,MAKM2Z,EAvHZ,SAA8B3Z,GAiB5B,MAhBwC,CACtCyZ,GACEzZ,EAAOwV,KACNA,GAAyC,iBAATA,GAAqBA,EAAK/Y,OAAS,GAAc,MAAT+Y,EACzE,2CAEFiE,GACEzZ,EAAOmb,KACNA,QACU9gB,IAAT8gB,GAAuC,iBAATA,GAAqBA,EAAO,GAAKA,EAAO,MACxE,sDAI8BrgB,KAAMkB,IAAYA,EAAOuB,UAEnC,CAAEA,SAAS,EACrC,CAqG+B6d,CAL8B,CACrD5F,KAAMxV,EAAOwV,MAAQ,MAClBxV,EAAO8M,SAKZ,IAAK6M,EAAiBpc,QACpB,MAAM,IAAI3O,MAAM+qB,EAAiBnuB,OAkBnC,OAfAwU,EAAOyO,sBAAwB,CAC7BqL,iBACAxkB,aAAc2lB,EACdliB,eACAxI,cAGEA,IACFyP,EAAOwV,KAAO,OAAO7mB,KAOhBqR,GAETqb,mBAAoBxxB,MAAOyxB,EAAMC,KAC/B,MAAMvf,EAAmC,CAAEsf,OAAMlgB,KAAM,IAYvD,OAVI4f,IACFA,GAAiB,EAEjBhf,EAAOZ,KAAK4D,KAAK,CACfwc,IAAK,SACLC,SAAU,OACVC,SAAU,GAAGC,KAAKC,cAIf5f,GAET6f,gBAAkB/O,IAChB,IAAI0I,EAAO1I,EAAO9M,OAAOwV,KAEpBA,EAAKE,SAAS,OACjBF,GAAQ,KAGV,MAAMC,EAA2BD,EAAK3uB,UAAU,EAAG2uB,EAAKsG,YAAY,MAIpE,GAFAhP,EAAOiP,YAAY1C,IAAI9D,GAAeC,EAAM7mB,IAExCmrB,EAAgB,CAClB,MAAMkC,EAAc,IAAI9wB,IAAI4uB,GAAgBtxB,KAEtCyzB,EAAwB,CAC5BnxB,QAAS,CACPtC,KAAMwzB,EACN/rB,QAAS6pB,EACTzuB,OAAQyuB,EAAelzB,QAAQ,iCAAkC,SAEnE0O,aAAc2lB,EACdvD,MAAOuD,EACPliB,eACAtK,uBACA8B,aACAJ,oBAAqBA,GAAuBmJ,QAAQC,IAAImhB,iBAGpDf,EAtJ4B,CACtCF,IAFyBzZ,EAuJwBic,GApJxCnxB,QACNA,GACoB,iBAAZA,GACiB,iBAAjBA,EAAQtC,MACY,iBAApBsC,EAAQmF,SACW,iBAAnBnF,EAAQO,OACjB,6CAEFouB,GACEzZ,EAAO1K,aACNiC,QAAwC8C,IAAP9C,GAAmC,iBAAPA,GAAmBA,EAAK,EACtF,4DAEFkiB,GACEzZ,EAAO0X,MACNngB,QAAwC8C,IAAP9C,GAAmC,iBAAPA,GAAmBA,EAAK,EACtF,qDAEFkiB,GACEzZ,EAAO7P,oBACNzF,QAAiD2P,IAAV3P,GAAwC,iBAAVA,EACtE,2DAI8BoQ,KAAMkB,IAAYA,EAAOuB,UAEnC,CAAEA,SAAS,GA2H7B,IAAKoc,EAAiBpc,QACpB,MAAM,IAAI3O,MAAM+qB,EAAiBnuB,OAGnC,MAAMisB,EAAK,IAAIjf,GAAMshB,EAAgBmC,GAErC,GAAI5B,EAAkB,CACpB,IAAI/I,GAAOyI,IAENzI,GAAOpe,OAAOC,MAAMme,IAAQA,EAAM,KACrCA,EAAM,KAGR,MAAM4K,EAAgC,CACpClJ,UAAWlG,EACXwE,OAGIqI,EArIhB,SAAkC3Z,GAWhC,MAVwC,CACtCyZ,GACEzZ,EAAOsR,IACNA,GAAsC,iBAARA,GAAoBA,EAAM,EACzD,8CAI8BxW,KAAMkB,IAAYA,EAAOuB,UAEnC,CAAEA,SAAS,EACrC,CAyHmC4e,CAAyBD,GAElD,IAAKvC,EAAiBpc,QACpB,MAAM,IAAI3O,MAAM+qB,EAAiBnuB,OAGnCshB,EAAOiP,YAAY1C,IAAItG,GAAemJ,GACxC,CAEA,MAAME,EAAgB,IAAIz1B,OAAO,MAAM6uB,UAGvC1I,EAAOiP,YAAY1C,IACjB9B,GACE6E,EACA3E,EACAvlB,OAAO2C,OAAO,CAAA,EAAI4jB,EAAS,CACzBf,MAAOuD,EACP3lB,aAAc2lB,EACdtD,QAASnC,MAKf1I,EAAOiP,YAAY1C,IACjBgD,EAAoB,CAElB7tB,QAASsrB,EACT3qB,YAAa,CAAC,SAAU,mBAAoB,KAAMsmB,GAClDhnB,uBACAC,MAAO+oB,EACP9oB,kBAKJ,MAAM2tB,EAAoB,CAACr1B,EAAU+Q,EAAgBxM,EAAe+wB,EAAkBpkB,KACpF,MAAMxN,EAAgB,CAAEa,SAEpB+wB,IACF5xB,EAAS4xB,QAAUA,GAGjBpkB,IACFxN,EAASwN,KAAOA,GAGlBlR,EAAI+Q,OAAOA,GAAQzM,KAAKZ,GAAUtD,OAI9Bm1B,EAA6B,CAACv1B,EAAUuE,EAAYhB,KAExDsiB,EAAO9M,OAAOlY,OAAO0D,MAAM,GAAGhB,4BAAqCgB,GAGnE,MAAMgS,EAAYzF,GAAkBvM,GAGpC,GAAIA,EAAMwS,eAAgB,CACxB,MAAMye,EAAoBjxB,EAAMwS,eAEhC8O,EAAO9M,OAAOlY,OAAOiB,KACnB,8BAA8B0zB,EAAkBtkB,UAAUskB,EAAkBrkB,uBAG9E,MAAMJ,EAASykB,EAAkBzkB,QAAU,IACrCG,EAAOskB,EAAkBtkB,KACzBC,EAAsBqkB,EAAkBrkB,oBACxCmkB,EAAUE,EAAkBvzB,QAElCozB,EAAkBr1B,EAAK+Q,EAAQI,EAAqBmkB,EAASpkB,EAC/D,KAAO,CAML,IAAIH,EACA5D,EACAsoB,EAEJ,OATA5P,EAAO9M,OAAOlY,OAAOiB,KACnB,8BAA8ByU,EAAUrF,UAAUqF,EAAUpF,uBAQtDoF,EAAUrF,MAChB,IAAK,kBACHH,EAAS,IACT5D,EAA6B,aAAd5J,EAA2B,gCAAkC,kBAC5EkyB,EAA0B,aAAdlyB,EAA2B,cAAgB,kBACvD,MACF,IAAK,eACHwN,EAAS,IACT5D,EAAe,eACfsoB,EAAY,eACZ,MACF,IAAK,YACH1kB,EAAS,IACT5D,EAAe,mBACfsoB,EAAY,YACZ,MACF,QACE1kB,EAAS,IACT5D,EAAe,wBACfsoB,EAAYlf,EAAUrF,KAG1B,MAAMokB,EACU,aAAd/xB,GAA0C,gBAAdkyB,EACxB,uFACc,YAAdlyB,GAAyC,oBAAdkyB,EACzB,iFACAlf,EAAUpF,oBAElBkkB,EAAkBr1B,EAAK+Q,EAAQ5D,EAAcmoB,EAASG,EACxD,CAEA,OAAO,MAGHlD,EAAiBN,KACvBM,EAAeljB,KAAK,cAAezM,MAAOqF,EAAKjI,EAAKgsB,KAClD,MAAMvoB,MAAEA,EAAKF,UAAEA,GAAc0E,EAAInE,KAEjC,GAAKL,EASL,GAFAoiB,EAAO9M,OAAOlY,OAAOiB,KAAK,0BAA0ByB,cAElC,aAAdA,EAA0B,CA2B5B,UA1B0BitB,EACvB5vB,IACC,6BACA,CACE,eAAgB,mBAChBsP,OAAQ,mBACRwlB,cAAe,UAAUjyB,MAE3B,GAEDsK,KAAKnL,MAAOc,GACiC,iBAAjCA,EAASmL,MAAM8mB,MAAMC,SAC9BpF,EAAGtnB,oBAAsBzF,EAEzBoiB,EAAO9M,OAAOlY,OAAOiB,KACnB,yDAAyD4B,EAASmL,KAAK8mB,KAAKC,WAGvElyB,IAGT2xB,EAAkBr1B,EAAK,IAAK,4BACrB,OAERgO,MAAOzJ,GAAegxB,EAA2Bv1B,EAAKuE,EAAO,aAG9D,OAGFxE,EAASC,EAAK,IAAK,IACrB,MAAO,GAAkB,YAAduD,EAAyB,CA6BlC,UA5B0BitB,EACvB5vB,IACC,YACA,CACE,eAAgB,mBAChBsP,OAAQ,mBACR2lB,MAAOpyB,IAET,GAEDsK,KAAMrK,GACDA,EAASmL,MAAMinB,OAAOtgB,QACxBgb,EAAGtnB,yBAAsBkK,EAEzByS,EAAO9M,OAAOlY,OAAOiB,KACnB,4CAA4C4B,EAASmL,KAAKinB,MAAMtgB,kBAGlExV,EAAIG,UAAU,aAAcuD,EAASG,QAAQ,eAAiB,IAEvDH,IAGT2xB,EAAkBr1B,EAAK,IAAK,4BACrB,OAERgO,MAAOzJ,GAAegxB,EAA2Bv1B,EAAKuE,EAAO,YAG9D,OAGFxE,EAASC,EAAK,IAAK,IACrB,MACEq1B,EACEr1B,EACA,IACA,oBACA,6CACA,2BAhFFq1B,EAAkBr1B,EAAK,IAAK,uBAqFhC6lB,EAAOiP,YAAY1C,IAAIG,GAEvB,MAAMhL,GACQ,IAAZ+L,EACI,IAAI7V,GACF/V,EACAuD,OAAO2C,OACL,CAAEmoB,UAAWvC,GACM,iBAAZF,EACH,CACEvV,cAAeuV,EAAQta,OACvBgF,gBAAiBsV,EAAQK,kBAE3BvgB,EACqB,iBAAlBmgB,EACH,CACEta,oBAAqBsa,EAActa,0BAErC7F,SAGRA,EAON,OALqB,IAAIwS,GAAcC,EAAQ,CAC7C0B,cACA9f,MAAO+oB,IAGF,KACL3K,EAAOiP,YAAY1C,IACjB9E,GACGrtB,GAGQA,EAAIisB,MAAM,KAAK,GAAGuC,SAAS,cAEpC,CAAC/qB,EAAUuE,IACFkhB,OAAO0D,KAAKxtB,EAAY01B,EAAa9sB,EAAIpE,QAAQtC,MAAQ,GAAIivB,EAAG3b,UAAUnR,EAAUoR,OAKrG,CApaN,IAA6BiE,GAua7B"}
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("./plugin-CqahMAGe.js");require("http-proxy-middleware"),require("url"),require("vite"),require("picocolors"),require("axios"),require("node:http"),require("node:https"),require("jsdom"),require("path"),require("fs"),require("crypto"),require("process"),require("child_process"),require("console"),require("os"),require("module"),require("extract-zip"),require("jszip"),require("memory-cache"),require("zlib"),require("express"),exports.versionPlugin=function(r){return{name:"pp-dev-version",apply:"build",enforce:"post",closeBundle(){e.writeBuildVersionManifest({outDir:r.outDir,packageVersion:r.packageVersion,versionFileTemplate:r.versionFileTemplate,packageRepositoryUrl:r.packageRepositoryUrl,packageBranchName:r.packageBranchName,enabled:r.enabled})}}};
2
- //# sourceMappingURL=version-plugin-DUKsGBsW.js.map
@@ -1,2 +0,0 @@
1
- import{execSync as e}from"child_process";import{n as t}from"./plugin-BeehFkJq.js";import*as n from"fs";import{readFileSync as i,existsSync as s,readdirSync as a,writeFileSync as r,unlink as o}from"fs";import*as c from"path";import p,{resolve as l}from"path";import{fileURLToPath as f,pathToFileURL as u}from"url";import{normalizePath as m}from"vite";import d from"ejs";const g=l("undefined"!=typeof __filename&&__filename||f(import.meta.url),"../../.."),h=l("undefined"!=typeof __filename&&__filename||f(import.meta.url),"../.."),j=s(l(g,"package.json"))?g:h,v=l(j,"dist/client/client.js"),{version:y,name:w}=JSON.parse(i(l(j,"package.json")).toString()),_=y,$=w,b="/@pp-dev-hmr",R=[".pp-watch.config.js",".pp-watch.config.ts",".pp-watch.config.json"],E=[".pp-dev.config.js",".pp-dev.config.cjs",".pp-dev.config.mjs",".pp-dev.config.ts",".pp-dev.config.cts",".pp-dev.config.mts",".pp-dev.config.json","pp-dev.config.js","pp-dev.config.cjs","pp-dev.config.mjs","pp-dev.config.ts","pp-dev.config.cts","pp-dev.config.mts","pp-dev.config.json"];const S=new class{cache;_maxSize;constructor(e=10){this._maxSize=e,this.cache=new Map}get maxSize(){return this._maxSize}set maxSize(e){this._maxSize=e}get(e){if(this.cache.has(e)){const t=this.cache.get(e);return this.cache.delete(e),this.cache.set(e,t),t}}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this._maxSize){const e=this.cache.keys().next().value;void 0!==e&&this.cache.delete(e)}this.cache.set(e,t)}clear(){this.cache.clear()}has(e){return this.cache.has(e)}}(5),I=new Map;let T;try{T="undefined"!=typeof __filename&&__filename?c.resolve(c.dirname(__filename),".."):void 0!==import.meta&&import.meta&&import.meta.url?c.resolve(f(new URL(".",import.meta.url)),".."):process.cwd()}catch{T=process.cwd()}const P=`/${$}/client`,x=`/${P}`,O=new RegExp(`^\\/?${$}\\/client\\/(.*)$`);const D={templateCompilations:0,cacheHits:0,totalRequests:0};function C(e){let t="",i=!1,s=null;return{name:"pp-dev:client",apply:"serve",config:e=>(e.optimizeDeps?.exclude?.push(`${$}/client`),e),resolveId(e){if(O.test(e))return{id:m(c.join(j,"dist/client",e.replace(O,"$1")))}},transformIndexHtml:async(e,a)=>{D.totalRequests++;const r=a.server?.config.base||"";r!==t&&(t=r,i=!0,s=null),s&&!i||(S.has(t)?(s=S.get(t),D.cacheHits++):(s=function(e,t=!0){const i=e;if(t&&S.has(i))return S.get(i);const s=c.resolve(T,"client","index.html");let a;I.has(s)?a=I.get(s):(a=n.readFileSync(s,{encoding:"utf8"}),I.set(s,a));const r=x.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=d.compile(a.replace(new RegExp(r,"g"),c.posix.join(e,P)),{openDelimiter:"{",closeDelimiter:"}",async:!0,cache:!0,filename:s,rmWhitespace:!0,compileDebug:!1});return t&&S.set(i,o),o}(t,true),D.templateCompilations++),i=!1);const o=function(e){return{css:c.posix.join(e,$,"client/client.css"),js:c.posix.join(e,$,"client/client.js")}}(t),p={html:e,tags:[{tag:"link",injectTo:"head",attrs:{rel:"stylesheet",href:o.css}}]},{backendBaseURL:l,templateLess:f,portalPageId:u,canSync:m=!0}=a.server?.config.clientInjectionPlugin||{},g={PACKAGE_NAME:$,VERSION:_,backendBaseURL:l,templateLess:f,portalPageId:u,canSync:m};return p.tags.push({tag:"div",injectTo:"body-prepend",children:await s(g)}),p.tags.push({tag:"script",injectTo:"body-prepend",attrs:{src:o.js,type:"module"}}),p},configureServer(e){const t=m(c.resolve(e.config.root,c.dirname(v)));e.config.server?.fs?.allow&&e.config.server.fs.allow.push(t),e.middlewares.use("/@api/__pp-dev-metrics",(e,t)=>{t.setHeader("Content-Type","application/json"),t.end(JSON.stringify(D,null,2))})},closeBundle(){S.clear(),I.clear()}}}const L=(e,t)=>` * ${t}`;function k(e){return`/*!\n${"***** DO NOT EDIT THIS CODE! *****\n***** ------- *****".replace(/^(.*)$/gm,L)}\n */`}async function U(){try{const[e,t]=await Promise.all([import("next"),import("next/constants.js")]);return{next:e.default,constants:t}}catch(e){throw new Error(`Next.js is required but not available. Please install Next.js as a dependency:\nnpm install next@^15\n\nThis package requires Next.js >=15 <17 as a peer dependency.\n\nError: ${e}`)}}async function z(){try{return await import("next"),!0}catch(e){return!1}}async function N(){try{return(await import("next/package.json")).version}catch{return null}}const B=new Map,H=3e4;let F=null;function V(){const e=Date.now();if(F&&e-F.timestamp<6e4)return F.data;const t=process.cwd();try{const n=JSON.parse(i(p.resolve(t,"package.json"),{encoding:"utf-8",flag:"r"}));return F={data:n,timestamp:e},n}catch{const t={};return F={data:t,timestamp:e},t}}let M=null;async function A(e){const t=process.cwd(),n=`ts:${e}`,i=B.get(n);if(i&&Date.now()-i.timestamp<H)return i.data;let a=!1;if(/\.m[jt]s$/.test(e))a=!0;else if(/\.c[jt]s$/.test(e))a=!1;else{const e=V();a=!!e&&"module"===e.type}const c=await async function(){return M||(M=await import("esbuild")),M}(),l=await c.build({absWorkingDir:t,entryPoints:[e],outfile:"out.js",write:!1,target:["node14.18","node16"],platform:"node",bundle:!0,format:a?"esm":"cjs",mainFields:["main"],sourcemap:"inline",metafile:!0}),{text:f}=l.outputFiles[0],m=`${`pp-config.timestamp-${Date.now()}-${Math.random().toString(16).slice(2)}`}.js`,d=u(p.resolve(t,m)).toString();r(m,f);let g={};try{const t=(await import(d)).default;g=t?.default||t,B.set(n,{data:g,timestamp:Date.now(),filePath:e})}finally{s(m)&&o(m,()=>{})}return g}async function G(e){const t=`js:${e}`,n=B.get(t);if(n&&Date.now()-n.timestamp<H)return n.data;const i=(await import(u(e).toString())).default;return B.set(t,{data:i,timestamp:Date.now(),filePath:e}),i}async function J(e){const t=`json:${e}`,n=B.get(t);if(n&&Date.now()-n.timestamp<H)return n.data;const s=JSON.parse(i(e,{encoding:"utf-8"}));return B.set(t,{data:s,timestamp:Date.now(),filePath:e}),s}let q=null;async function K(e,t){for(const n of t)if(e.includes(n)){if(/\.[cm]?ts$/i.test(n))return await A(n);if(/\.[cm]?js$/i.test(n))return await G(p.resolve(".",n));if(n.endsWith(".json"))return await J(p.resolve(".",n))}return null}function W(){return V()}async function Y(){const e=function(){const e=Date.now();if(q&&e-q.timestamp<1e4)return q.files;const t=/\.config\.(([cm]?ts)|([cm]?js)|(json))$/,n=process.cwd(),i=a(n,{withFileTypes:!0}).filter(e=>e.isFile()&&t.test(e.name)).map(e=>e.name);return q={files:i,timestamp:e},i}();let t={},n=!1;const i=await K(e,E);if(i&&(t=i,n=!0),e.length&&!n){const i=await K(e,R);i&&(t={backendBaseURL:i.baseURL,portalPageId:i.portalPageId},n=!0)}const s=V();return n||"object"!=typeof s["pp-dev"]||(t=s["pp-dev"]),t}const Z=Object.freeze({__proto__:null,clearConfigCache:function(){B.clear(),F=null,q=null},getConfig:Y,getConfigCacheStats:function(){return{configEntries:B.size,packageJsonCached:!!F,dirContentCached:!!q}},getPkg:W}),Q="/p",X="/pt";function ee(t){if("string"==typeof t)return t;if(t&&"object"==typeof t&&"url"in t&&"string"==typeof t.url)return t.url;const n=["CI_REPOSITORY_URL","GIT_URL","BUILD_REPOSITORY_URI","CI_PROJECT_URL","BITBUCKET_GIT_HTTP_ORIGIN","BUILDKITE_REPO"];for(const e of n){const t=process.env[e];if("string"==typeof t&&t.trim())return t}const i=process.env.GITHUB_REPOSITORY;if("string"==typeof i&&i.trim()){return`${(process.env.GITHUB_SERVER_URL||"https://github.com").replace(/\/+$/,"")}/${i.replace(/^\/+/,"")}`}const s=process.env.CI_PROJECT_PATH;if("string"==typeof s&&s.trim()){return`${(process.env.CI_SERVER_URL||"https://gitlab.com").replace(/\/+$/,"")}/${s.replace(/^\/+/,"")}`}const a=process.env.BITBUCKET_REPO_FULL_NAME;if("string"==typeof a&&a.trim())return`https://bitbucket.org/${a.replace(/^\/+/,"")}`;const r=process.env.TRAVIS_REPO_SLUG;if("string"==typeof r&&r.trim())return`https://github.com/${r.replace(/^\/+/,"")}`;try{const t=e("git config --get remote.origin.url",{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(t)return t}catch{}}async function te(){const e=W(),n=e.name,i=await Y(),s=t(Object.assign(i,{templateName:n})),{default:a}=await import("./plugin.js"),r=[a(s),C()],{outDir:o,distZip:c,versionPlugin:p,imageOptimizer:l,templateLess:f,integrateMiTopBar:u}=s;if(u&&r.push(function(e){return{name:"mi-topbar-plugin",transformIndexHtml(){const t=[];return(!0===e||"object"==typeof e&&!0===e.addRootElement)&&t.push({tag:"div",injectTo:"body-prepend",attrs:{id:"mi-react-root"}}),(!0===e||"object"==typeof e&&!0===e.addSharedComponentsScripts)&&t.push({tag:"script",injectTo:"head-prepend",attrs:{src:"/auth/info.js"}},{tag:"script",injectTo:"head-prepend",attrs:{src:"/js/main.js",defer:"defer"}},{tag:"link",injectTo:"head-prepend",attrs:{href:"/css/main.css",rel:"stylesheet"}}),t}}}(u)),l){const{ViteImageOptimizer:e}=await import("vite-plugin-image-optimizer");r.push(e("object"==typeof l?l:void 0))}if(p){const{versionPlugin:t}=await import("./version-plugin-C7j2jDQX.js");r.push(t({outDir:o,packageVersion:e.version??"0.0.0",packageRepositoryUrl:ee(e.repository),..."object"==typeof p?p:{}}))}if(c){const{default:e}=await import("vite-plugin-zip-pack");r.push({...e("object"==typeof c?c:{outFileName:`${n}.zip`}),enforce:"post"})}return{base:f?`${Q}/${n}`:`${X}/${n}`,server:{port:3e3},build:{minify:!1,assetsInlineLimit:4096,rollupOptions:{output:{banner:k}},outDir:o},css:{modules:{localsConvention:"dashes"}},ppDevConfig:s,plugins:r}}function ne(e){return e?.ppDev||{}}function ie(e,t,n){return Object.assign({},e,t,n)}function se(e,t){return async(n,i={})=>{try{const{constants:s}=await U(),{PHASE_DEVELOPMENT_SERVER:a}=s,r=await Y(),o=W().name,c="function"==typeof e?await e(n,i):e,p=ne(c),l=Object.assign({},r,p,t??{}),f=n===a,u=function(e,t,n,i){return n?i?t?`${Q}/${e}`:`/pl/${e}`:t?`${Q}/${e}`:`${X}/${e}`:`/p/${e}`}(o,l.templateLess??!1,f,l.v7Features??!1),m={basePath:u,trailingSlash:!!f||void 0};return l.templateLess||(m.assetPrefix=`${X}/${o}`),ie(m,c)}catch(t){console.error("Error in withPPDev:",t),console.warn("Falling back to original Next.js configuration");try{return"function"==typeof e?await e(n,i):e}catch(e){return console.error("Error in fallback configuration:",e),{}}}}}export{b as P,_ as V,$ as a,v as b,E as c,R as d,N as e,ne as f,te as g,Z as h,z as i,U as s,se as w};
2
- //# sourceMappingURL=index-Cd-DmbPQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Cd-DmbPQ.js","sources":["../../../src/constants.ts","../../../src/plugins/client-injection-plugin.ts","../../../src/banner/header.ts","../../../src/lib/next-import.ts","../../../src/config.ts","../../../src/index.ts","../../../src/plugins/mi-topbar-plugin.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["afterBundlePath","resolve","__filename","fileURLToPath","url","beforeBundlePath","PP_DEV_PACKAGE_DIR","existsSync","PP_DEV_CLIENT_ENTRY","version","name","JSON","parse","readFileSync","toString","VERSION","PACKAGE_NAME","PP_DEV_HMR_WS_PATH","PP_WATCH_CONFIG_NAMES","PP_DEV_CONFIG_NAMES","templateCache","cache","_maxSize","constructor","maxSize","this","Map","value","get","key","has","delete","set","size","firstKey","keys","next","undefined","clear","fileCache","DIRNAME","path","dirname","URL","process","cwd","PACKAGE_IMPORT","CLIENT_PATH","PACKAGE_REGEXP","RegExp","performanceMetrics","templateCompilations","cacheHits","totalRequests","clientInjectionPlugin","opts","base","baseChanged","currentTemplate","apply","config","optimizeDeps","exclude","push","resolveId","source","test","id","normalizePath","join","replace","transformIndexHtml","async","html","ctx","serverBase","server","enableCache","cacheKey","templatePath","templateContent","fs","encoding","escapedClientPath","compiledTemplate","ejs","compile","posix","openDelimiter","closeDelimiter","filename","rmWhitespace","compileDebug","getTemplate","assetPaths","css","js","getAssetPaths","result","tags","tag","injectTo","attrs","rel","href","backendBaseURL","templateLess","portalPageId","canSync","templateData","children","src","type","configureServer","clientDir","root","allow","middlewares","use","req","res","setHeader","end","stringify","closeBundle","replacer","substring","$1","header","_chunk","safeNextImport","constants","Promise","all","import","default","error","Error","isNextAvailable","getNextVersion","configCache","CACHE_TTL","packageJsonCache","getPackageJson","now","Date","timestamp","data","flag","empty","esbuildModule","loadTsConfig","filePath","cached","isESM","pkg","esbuild","getEsbuild","build","absWorkingDir","entryPoints","outfile","write","target","platform","bundle","format","mainFields","sourcemap","metafile","text","code","outputFiles","fileNameTmp","Math","random","slice","fileUrl","pathToFileURL","writeFileSync","conf","unlink","loadJsConfig","loadJSONConfig","dirContentCache","loadConfig","dirFiles","configNames","configName","includes","endsWith","getPkg","getConfig","dirContent","files","endsWithRegExp","readdirSync","withFileTypes","filter","isFile","map","getDirectoryContent","configFound","newConfig","length","watchConfig","baseURL","configEntries","packageJsonCached","dirContentCached","pathPagePrefix","pathTemplatePrefix","resolveRepositoryUrl","repository","directCiRepositoryUrlEnvVars","variableName","ciRepositoryUrl","env","trim","githubRepository","GITHUB_REPOSITORY","GITHUB_SERVER_URL","gitlabProjectPath","CI_PROJECT_PATH","CI_SERVER_URL","bitbucketRepositoryFullName","BITBUCKET_REPO_FULL_NAME","travisRepositorySlug","TRAVIS_REPO_SLUG","gitRemoteOriginUrl","execSync","stdio","getViteConfig","templateName","ppDevConfig","normalizedPPDevConfig","normalizeVitePPDevConfig","Object","assign","vitePPDev","plugins","outDir","distZip","versionPlugin","imageOptimizer","integrateMiTopBar","addRootElement","addSharedComponentsScripts","defer","miTopBarPlugin","ViteImageOptimizer","versionPluginFn","packageVersion","packageRepositoryUrl","zipPack","outFileName","enforce","port","minify","assetsInlineLimit","rollupOptions","output","banner","modules","localsConvention","getPPDevConfigFromNextConfig","nextConfig","ppDev","mergeConfigs","baseConfig","nextConfiguration","additionalConfig","withPPDev","nextjsConfig","phase","PHASE_DEVELOPMENT_SERVER","nextConfigPPDev","mergedConfig","isDevelopment","basePath","v7Features","createBasePath","trailingSlash","assetPrefix","console","warn","fallbackError"],"mappings":"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"}