@simplesmoothsafe/pptb-dependency-cleaner 1.0.0 → 1.0.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.
- package/README.md +3 -3
- package/dist/assets/index-C81UYfrl.js +16 -0
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/index-9RUEqmwc.js +0 -16
package/README.md
CHANGED
|
@@ -10,17 +10,17 @@ Built by [Simple Smooth Safe](https://simplesmoothsafe.com).
|
|
|
10
10
|
- **Filter** — publisher prefixes or solution names, default `msdyn, msdynce, mspp`. Editable, so it works for any ISV.
|
|
11
11
|
- **Target awareness** — with a secondary connection (the target environment), solutions already there are marked "present in target" and hidden by default; any managed solution missing in the target is a blocker. Without one, everything matching the filter is a blocker.
|
|
12
12
|
- **Fix** — per finding, pick a fix:
|
|
13
|
-
- *Convert table to shell*: a table added with all assets is removed and added back with `DoNotIncludeSubcomponents`. Every subcomponent that would leave is listed
|
|
13
|
+
- *Convert table to shell*: a table added with all assets is removed and added back with `DoNotIncludeSubcomponents`. Every subcomponent that would leave is listed and can be ticked back in or out. Ticked by default: columns with your publisher prefix, the forms/views you edit, and every form, view and chart not owned by a managed solution matching the filter (these are named by display name, so ownership decides, not the prefix). A table cannot be converted to a shell by one finding and removed by another: the preview refuses the conflict until you pick one.
|
|
14
14
|
- *Remove from solution* for a column, form or view included directly.
|
|
15
15
|
- *Edit form*: remove the cells/controls bound to the msdyn columns (never the primary name or a required column, which are reported instead), drop empty sections.
|
|
16
16
|
- *Edit view*: strip the msdyn attributes, conditions, orders and link-entities from fetchxml and the matching cells from layoutxml.
|
|
17
17
|
- Relationships, sitemap, apps, ribbon, charts, processes, web resources and plugin steps are report only, with a link to the solution in the maker portal.
|
|
18
18
|
- **Preview → backup → confirm** — the preview lists every operation with a before/after XML diff. Confirm stays disabled until the backup (`dependency-cleaner-backup-<solution>-<timestamp>.json`: original form/view XML and the full solution membership) is saved. Then: membership changes → form/view updates → one `PublishXml` for the touched tables → the diagnosis runs again and shows fixed / still present.
|
|
19
|
-
- **Restore** — load a backup, preview, apply: original XML written back, removed components re-added, tables put back to all assets, then published.
|
|
19
|
+
- **Restore** — load a backup, preview, apply: original XML written back, removed components re-added, tables put back to all assets, then published. A backup only restores into the environment it was taken in (its url is recorded in the file).
|
|
20
20
|
- **Offline** — open an exported solution zip and read `solution.xml` `<MissingDependencies>` (the list the import checks), grouped and filtered the same way. No connection needed.
|
|
21
21
|
- **Export** — findings as JSON or CSV (cells a spreadsheet would read as a formula are prefixed with `'`).
|
|
22
22
|
|
|
23
|
-
Safety: managed solutions are never offered and writes are refused if the solution turns out to be managed when re-checked right before writing; a Production-looking connection needs an explicit tick.
|
|
23
|
+
Safety: managed solutions are never offered and writes are refused if the solution turns out to be managed when re-checked right before writing; a Production-looking connection needs an explicit tick. Changing the connection clears the diagnosis, the preview and the backup tick; Confirm and Restore re-read the current connection and refuse when it is not the one the plan was made on. After a new diagnosis, a picked fix the finding no longer offers is dropped.
|
|
24
24
|
|
|
25
25
|
## Install
|
|
26
26
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var vr=Object.defineProperty;var _r=(K,Ie,M)=>Ie in K?vr(K,Ie,{enumerable:!0,configurable:!0,writable:!0,value:M}):K[Ie]=M;var yt=(K,Ie,M)=>_r(K,typeof Ie!="symbol"?Ie+"":Ie,M);(function(){"use strict";const K=t=>{const l=document.querySelector(t);if(!l)throw new Error(`missing ${t}`);return l};function Ie(t,...l){for(const e of l)e!=null&&e!==!1&&t.append(e)}function M(t,l={},...e){const u=document.createElement(t);for(const[i,r]of Object.entries(l))r===void 0||r===!1||(i==="class"?u.className=String(r):r===!0?u.setAttribute(i,""):u.setAttribute(i,r));for(const i of e)i!=null&&i!==!1&&u.append(typeof i=="string"?document.createTextNode(i):i);return u}const pe=(t,l="")=>M("span",{class:`badge${l?` badge-${l}`:""}`},t),Be=(t,l)=>M("div",{class:"empty-state"},M("strong",{},t),l);function wn(t){const l=K("#dlg");K("#dlg-title").textContent=t.title;const e=K("#dlg-target");e.replaceChildren(),t.target&&e.append(t.target),K("#dlg-body").replaceChildren(t.body);const u=K("#dlg-ok");return u.textContent=t.okLabel??"",u.className=`btn ${t.danger?"btn-danger":"btn-primary"}`,u.style.flex="none",u.hidden=!t.okLabel,new Promise(i=>{let r=!1;const a=o=>{r||(r=!0,u.onclick=null,K("#dlg-cancel").onclick=null,l.onclose=null,l.open?(l.addEventListener("close",()=>i(o),{once:!0}),l.close()):i(o))};u.onclick=()=>a(!0),K("#dlg-cancel").onclick=()=>a(!1),l.onclose=()=>a(!1),l.showModal()})}function vn(t){document.querySelectorAll(".tab").forEach(l=>l.addEventListener("click",()=>{const e=l.dataset.tab;document.querySelectorAll(".tab").forEach(u=>u.classList.toggle("is-active",u===l)),document.querySelectorAll(".panel[id^='tab-']").forEach(u=>u.hidden=u.id!==`tab-${e}`)}))}const ie={Entity:1,Attribute:2,Relationship:3,OptionSet:9,EntityRelationship:10,View:26,Workflow:29,Chart:59,Form:60,WebResource:61,SiteMap:62,AppModule:80,PluginStep:92},_n={1:"Table",2:"Column",3:"Relationship",9:"Choice",10:"Relationship",14:"Key",20:"Security role",24:"Form",26:"View",29:"Process",31:"Report",36:"Email template",48:"Ribbon command",50:"Ribbon",55:"Ribbon diff",59:"Chart",60:"Form",61:"Web resource",62:"Site map",63:"Connection role",65:"Hierarchy rule",66:"Custom control",70:"Field security profile",80:"Model-driven app",90:"Plugin type",91:"Plugin assembly",92:"Plugin step",300:"Canvas app",371:"Connector",372:"Connection reference",380:"Environment variable"},_e=t=>_n[t]??`Type ${t}`,kn=["msdyn","msdynce","mspp"],it=t=>t==null||t===""?null:String(t),ge=t=>String(t??"").toLowerCase(),Rt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function ot(t,l="id"){if(!Rt.test(t))throw new Error(`${l} is not a guid: ${t}`);return t.toLowerCase()}function xn(t){const l=t.match(/\/api\/data\/v\d+(?:\.\d+)*\/(.*)$/i);return l?l[1]:t}const Ot=500;async function bt(t,l,e="primary"){const u=[],i=new Set;let r=l;for(let a=0;r&&a<Ot;a++){const o=await t.queryData(r,e);u.push(...o.value??[]);const c=o["@odata.nextLink"];if(r=typeof c=="string"&&c?xn(c):null,r&&i.has(r))throw new Error(`paging loop at ${r}`);r&&i.add(r)}if(r)throw new Error(`more than ${Ot} pages for ${l.split("?")[0]}`);return u}const $t=40;async function at(t,l,e,u,i="primary"){const r=[...new Set(l.map(c=>c.toLowerCase()))].filter(c=>Rt.test(c)),a=[];for(let c=0;c<r.length;c+=$t)a.push(r.slice(c,c+$t));return(await Promise.all(a.map(c=>bt(t,u(c.map(k=>`${e} eq ${k}`).join(" or ")),i)))).flat()}async function Sn(t,l,e,u=()=>!1){let i=0;const r=async()=>{for(;i<t.length&&!u();){const a=t[i++];await e(a)}};await Promise.all(Array.from({length:Math.min(l,t.length)},r))}async function wt(t,l="primary"){const[e,u]=await Promise.all([t.getSolutions(["solutionid","uniquename","friendlyname","version","ismanaged","_publisherid_value"],l),bt(t,"publishers?$select=publisherid,uniquename,customizationprefix",l).catch(()=>[])]),i=new Map(u.map(r=>[ge(r.publisherid),String(r.customizationprefix??"").toLowerCase()]));return e.value.map(r=>{const a=r._publisherid_value?ge(r._publisherid_value):null;return{id:ge(r.solutionid),uniqueName:String(r.uniquename??""),friendlyName:it(r.friendlyname)??String(r.uniquename??""),version:String(r.version??""),isManaged:!!r.ismanaged,publisherId:a,prefix:a?i.get(a)??"":""}}).sort((r,a)=>r.friendlyName.localeCompare(a.friendlyName))}async function Tt(t,l){const u=(await t.queryData(`solutions?$select=solutionid,uniquename,ismanaged&$filter=solutionid eq ${ot(l,"solution id")}`)).value[0];return u?{isManaged:!!u.ismanaged,uniqueName:String(u.uniquename??"")}:null}async function Bt(t,l){return(await bt(t,`solutioncomponents?$select=solutioncomponentid,objectid,componenttype,rootcomponentbehavior,_rootsolutioncomponentid_value&$filter=_solutionid_value eq ${ot(l,"solution id")}`)).map(u=>({rowId:ge(u.solutioncomponentid),objectId:ge(u.objectid),type:Number(u.componenttype??0),behavior:u.rootcomponentbehavior==null?null:Number(u.rootcomponentbehavior),rootRowId:u._rootsolutioncomponentid_value?ge(u._rootsolutioncomponentid_value):null}))}function Cn(t){const l=t;if(!l)return[];const e=l.EntityCollection;if(Array.isArray(e))return e;if(e&&typeof e=="object"){const u=e.Entities??e.value;if(Array.isArray(u))return u}return Array.isArray(l.value)?l.value:[]}const Ue=(t,l)=>t[l]??t[`_${l}_value`];async function En(t,l,e){const u=ot(l,"component id");if(!Number.isInteger(e))throw new Error(`bad component type ${e}`);const i=await t.queryData(`RetrieveRequiredComponents(ObjectId=${u},ComponentType=${e})`);return Cn(i).map(r=>({requiredId:ge(Ue(r,"requiredcomponentobjectid")),requiredType:Number(Ue(r,"requiredcomponenttype")??0),requiredParentId:Ue(r,"requiredcomponentparentid")?ge(Ue(r,"requiredcomponentparentid")):null,requiredBaseSolutionId:Ue(r,"requiredcomponentbasesolutionid")?ge(Ue(r,"requiredcomponentbasesolutionid")):null}))}async function An(t,l){const e=await at(t,l,"objectid",i=>`solutioncomponents?$select=objectid,componenttype,_solutionid_value&$filter=${i}`),u=new Map;for(const i of e){const r=ge(i.objectid),a=u.get(r)??[],o=ge(i._solutionid_value);o&&!a.includes(o)&&a.push(o),u.set(r,a)}return u}class jt{constructor(){yt(this,"entities",null);yt(this,"attributes",new Map);yt(this,"names",new Map)}async entitiesById(l){if(this.entities)return this.entities;const e=await l.getAllEntitiesMetadata(["LogicalName","MetadataId","PrimaryNameAttribute"]);return this.entities=new Map(e.value.map(u=>[ge(u.MetadataId),{id:ge(u.MetadataId),logicalName:String(u.LogicalName??""),primaryName:it(u.PrimaryNameAttribute)}])),this.entities}async entityByName(l,e){const u=await this.entitiesById(l);for(const i of u.values())if(i.logicalName===e)return i}async attributesOf(l,e){const u=this.attributes.get(e);if(u)return u;const r=(await l.getEntityRelatedMetadata(e,"Attributes",["LogicalName","MetadataId","RequiredLevel"])).value.map(a=>{var o;return{id:ge(a.MetadataId),logicalName:String(a.LogicalName??""),requiredLevel:String(((o=a.RequiredLevel)==null?void 0:o.Value)??a.RequiredLevel??"None")}});return this.attributes.set(e,r),r}async protectedColumns(l,e){const u=await this.entityByName(l,e),i=await this.attributesOf(l,e).catch(()=>[]),r=new Set;u!=null&&u.primaryName&&r.add(u.primaryName);for(const a of i)(a.requiredLevel==="ApplicationRequired"||a.requiredLevel==="SystemRequired")&&r.add(a.logicalName);return[...r]}}const Lt={[ie.View]:["savedqueries","savedqueryid","name","returnedtypecode"],[ie.Form]:["systemforms","formid","name","objecttypecode"],[ie.Chart]:["savedqueryvisualizations","savedqueryvisualizationid","name","primaryentitytypecode"],[ie.WebResource]:["webresourceset","webresourceid","name"],[ie.Workflow]:["workflows","workflowid","name","primaryentity"],[ie.SiteMap]:["sitemaps","sitemapid","sitemapname"],[ie.AppModule]:["appmodules","appmoduleid","name"],[ie.PluginStep]:["sdkmessageprocessingsteps","sdkmessageprocessingstepid","name"],20:["roles","roleid","name"],300:["canvasapps","canvasappid","name"],372:["connectionreferences","connectionreferenceid","connectionreferencelogicalname"],380:["environmentvariabledefinitions","environmentvariabledefinitionid","schemaname"]};async function In(t,l,e){var x;const u=(y,_)=>`${y}:${_}`,i=new Map,r=e.filter(y=>{const _=l.names.get(u(y.type,y.id));return _&&i.set(u(y.type,y.id),_),!_});if(!r.length)return i;const a=y=>{i.set(u(y.type,y.id),y),l.names.set(u(y.type,y.id),y)},o=await l.entitiesById(t).catch(()=>new Map);for(const y of r.filter(_=>_.type===ie.Entity)){const _=o.get(y.id);_&&a({type:y.type,id:y.id,name:_.logicalName,table:_.logicalName})}const c=new Map;for(const y of r.filter(_=>_.type===ie.Attribute)){const _=y.parentId??"";c.set(_,[...c.get(_)??[],y])}for(const[y,_]of c){const d=(x=o.get(y))==null?void 0:x.logicalName;if(!d)continue;const b=await l.attributesOf(t,d).catch(()=>[]);for(const f of _){const h=b.find(p=>p.id===f.id);h&&a({type:f.type,id:f.id,name:h.logicalName,table:d})}}const k=new Map;for(const y of r)Lt[y.type]&&k.set(y.type,[...k.get(y.type)??[],y.id]);await Promise.all([...k].map(async([y,_])=>{const[d,b,f,h]=Lt[y],p=await at(t,_,b,g=>`${d}?$select=${[b,f,h].filter(Boolean).join(",")}&$filter=${g}`).catch(()=>[]);for(const g of p)a({type:y,id:ge(g[b]),name:it(g[f])??ge(g[b]),table:h?it(g[h])??void 0:void 0})}));for(const y of r.filter(_=>_.type===ie.EntityRelationship||_.type===ie.Relationship))try{const _=await t.queryData(`RelationshipDefinitions(${ot(y.id)})?$select=SchemaName`);_!=null&&_.SchemaName&&a({type:y.type,id:y.id,name:String(_.SchemaName)})}catch{}for(const y of r)i.has(u(y.type,y.id))||i.set(u(y.type,y.id),{type:y.type,id:y.id,name:y.id});return i}async function Dt(t,l){return(await at(t,l,"formid",u=>`systemforms?$select=formid,name,objecttypecode,formxml&$filter=${u}`)).map(u=>({id:ge(u.formid),name:String(u.name??""),table:String(u.objecttypecode??""),formxml:String(u.formxml??"")}))}async function Pt(t,l){return(await at(t,l,"savedqueryid",u=>`savedqueries?$select=savedqueryid,name,returnedtypecode,fetchxml,layoutxml&$filter=${u}`)).map(u=>({id:ge(u.savedqueryid),name:String(u.name??""),table:String(u.returnedtypecode??""),fetchxml:String(u.fetchxml??""),layoutxml:String(u.layoutxml??"")}))}async function Nn(t){var l;try{const e=await t.execute({operationName:"RetrieveCurrentOrganization",operationType:"function",parameters:{AccessType:"Microsoft.Dynamics.CRM.EndpointAccessType'Default'"}}),u=(l=e==null?void 0:e.Detail)==null?void 0:l.EnvironmentId;return typeof u=="string"&&u?u:null}catch{return null}}const ue=t=>(t??"").trim().toLowerCase();function vt(t,l){const e=new DOMParser().parseFromString(t,"application/xml");if(e.getElementsByTagName("parsererror").length)throw new Error(`${l}: invalid XML`);return e}function _t(t,l){const e=/^?\s*<\?xml[^?]*\?>\s*/.exec(l),u=new XMLSerializer().serializeToString(t).replace(/^<\?xml[^?]*\?>\s*/,"");return(e?e[0]:"")+u}const me=(t,l)=>Array.from(t.getElementsByTagName(l)),Me=(t,l)=>Array.from(t.children).filter(e=>!l||e.localName===l);function Ce(t){var e,u;const l=t.previousSibling;l&&l.nodeType===3&&!(l.nodeValue??"").trim()&&((e=l.parentNode)==null||e.removeChild(l)),(u=t.parentNode)==null||u.removeChild(t)}function Ke(t){if(t.children.length===0&&!(t.textContent??"").trim())for(;t.firstChild;)t.removeChild(t.firstChild)}const st=(t,l)=>{for(let e=t.parentElement;e;e=e.parentElement)if(e.localName===l)return e;return null},kt=t=>{var e;return t&&(((e=t.getElementsByTagName("label")[0])==null?void 0:e.getAttribute("description"))||t.getAttribute("name")||t.getAttribute("id"))||""},zn=t=>new Set(t.map(l=>{var e;return(e=/^([a-z0-9]+_)/.exec(l))==null?void 0:e[1]}).filter(l=>!!l));function Rn(t,l,e,u=[]){var C;const i=new Set(l.map(ue)),r=new Set(e.map(ue)),a=new Set(u.map(ue)),o=[],c=[],k=[],x=m=>!o.includes(m)&&o.push(m),y=(m,v)=>!c.some(N=>N.name===m)&&c.push({name:m,reason:v}),_=vt(t,"formxml"),d=new Set,b=new Set,f=new Set,h=new Set;for(const m of me(_,"control")){if(!m.parentNode||!_.documentElement.contains(m))continue;const v=ue(m.getAttribute("datafieldname"));let N=null;if(v&&i.has(v)){if(r.has(v)){y(v,"protected: primary name or ApplicationRequired column");continue}N=v}else if(a.size){const T=m.getElementsByTagName("parameters")[0];if(T){const W=ue((C=T.getElementsByTagName("TargetEntityType")[0])==null?void 0:C.textContent),Y=me(T,"QuickFormId").map(E=>ue(E.getAttribute("entityname"))).find(E=>a.has(E));W&&a.has(W)?N=`subgrid ${m.getAttribute("id")??"?"} (${W})`:Y&&(N=`quickview ${m.getAttribute("id")??"?"} (${Y})`)}}if(!N)continue;const A=st(m,"cell"),L=A&&st(A,"row");for(const T of[m.getAttribute("id"),m.getAttribute("uniqueid")])T&&d.add(ue(T));v&&N===v&&b.add(v),x(N),A?(Ce(A),L&&f.add(L)):Ce(m)}for(const m of f){const v=st(m,"section");if(v&&h.add(v),Me(m,"cell").length===0){const N=m.parentElement;Ce(m),N&&Ke(N)}}const p=new Set;for(const m of h){const v=st(m,"tab");if(v&&p.add(v),!me(m,"row").some(A=>Me(A,"cell").some(L=>L.getElementsByTagName("control").length>0))){k.push(`Section "${kt(m)}"${v?` in tab "${kt(v)}"`:""} became empty and was removed.`);const A=m.parentElement;Ce(m),A&&Ke(A)}}for(const m of p)me(m,"control").length===0&&k.push(`Tab "${kt(m)}" is now empty (kept; remove or hide it by hand).`);for(const m of me(_,"controlDescription")){const v=ue(m.getAttribute("forControl"));if(v&&d.has(v)){const A=m.parentElement;Ce(m),A&&Ke(A);continue}const N=me(m,"*").filter(A=>A.children.length===0).map(A=>ue(A.textContent)).find(A=>b.has(A));N&&k.push(`Custom control (controlDescription for ${m.getAttribute("forControl")}) references removed column ${N}; review it by hand.`)}for(const m of me(_,"event")){const v=ue(m.getAttribute("attribute"));if(v&&b.has(v)){const N=me(m,"Handler").map(A=>`${A.getAttribute("libraryName")}:${A.getAttribute("functionName")}`);k.push(`Event "${m.getAttribute("name")}" on removed column ${v} still has handlers${N.length?` (${N.join(", ")})`:""}; review the form events.`)}}const g=zn([...b,...a]);if(o.length&&g.size){const m=new Set,v=[...me(_,"Library").map(N=>N.getAttribute("name")??""),...me(_,"Handler").map(N=>N.getAttribute("libraryName")??"")];for(const N of v){const A=ue(N);!A||m.has(A)||(m.add(A),[...g].some(L=>A.startsWith(L)||A.includes("/"+L))&&k.push(`Form library "${N}" belongs to the same publisher as removed components; it may still depend on them.`))}}return{xml:o.length?_t(_,t):t,removed:o,kept:c,warnings:k}}function On(t,l,e,u){const i=new Set(e.map(ue)),r=new Set(u.map(ue)),a=[],o=[],c=new Set,k=new Set;let x=!1,y=t;if(t.trim()){const d=vt(t,"fetchxml"),b=me(d,"entity")[0],f=b?Me(b,"order").length:0;for(const m of me(d,"link-entity")){if(!d.documentElement.contains(m))continue;const v=ue(m.getAttribute("name")),N=ue(m.getAttribute("alias"));if(r.has(v)){N&&c.add(N);for(const A of me(m,"link-entity"))A.getAttribute("alias")&&c.add(ue(A.getAttribute("alias")));a.push(`link-entity ${v}${N?` (${N})`:""}`),Ce(m),x=!0}else N&&k.add(N)}for(const m of me(d,"link-entity"))for(const v of["from","to"]){const N=ue(m.getAttribute(v));N&&i.has(N)&&o.push(`link-entity ${m.getAttribute("name")} joins ${v}="${N}", a removed column; the view will break until this join is fixed.`)}for(const m of me(d,"attribute")){const v=ue(m.getAttribute("name"));i.has(v)&&(a.push(`attribute ${v}`),Ce(m),x=!0)}let h=0;for(const m of me(d,"order")){const v=ue(m.getAttribute("attribute")),N=ue(m.getAttribute("entityname"));(i.has(v)||N&&c.has(N))&&(a.push(`order ${N?N+".":""}${v}`),Ce(m),h++,x=!0)}const p=new Set;let g=0;for(const m of me(d,"condition")){const v=ue(m.getAttribute("attribute")),N=ue(m.getAttribute("entityname"));if(i.has(v)||N&&c.has(N)){a.push(`condition ${N?N+".":""}${v} ${m.getAttribute("operator")??""}`.trim());const A=m.parentElement;Ce(m),(A==null?void 0:A.localName)==="filter"&&p.add(A),g++,x=!0}}const C=[...p];for(;C.length;){const m=C.shift();if(!m.parentNode||Me(m).some(N=>N.localName==="condition"||N.localName==="filter"))continue;const v=m.parentElement;Ce(m),v&&(Ke(v),v.localName==="filter"&&C.push(v))}g&&o.push(`${g} filter condition(s) removed: the view now returns a different (usually larger) set of rows. Review the filter.`),h&&f>0&&b&&Me(b,"order").length===0&&o.push("The view's only sort order was removed; it will fall back to the default order."),b&&x&&Me(b,"attribute").length===0&&!b.getElementsByTagName("all-attributes").length&&o.push("The root entity has no attributes left in the view."),x&&(y=_t(d,t))}let _=l;if(l.trim()){const d=vt(l,"layoutxml");let b=!1;for(const f of me(d,"cell")){const h=ue(f.getAttribute("name"));if(!h)continue;const p=h.indexOf("."),g=p>=0?h.slice(0,p):"",C=p>=0?h.slice(p+1):h;if(g?c.has(g)||k.has(g)&&i.has(C):i.has(C)){a.push(`cell ${h}`);const v=f.parentElement;Ce(f),v&&Ke(v),b=!0}}for(const f of me(d,"grid")){const h=ue(f.getAttribute("jump"));h&&i.has(h)&&o.push(`Layout jump column "${h}" was removed; set another primary column for the grid.`)}b&&(_=_t(d,l))}return{fetchxml:y,layoutxml:_,removed:a,warnings:o}}const $n=t=>({type:t.type,id:t.objectId,name:t.name??t.objectId,table:t.table}),lt=(t,l)=>[...new Set(t.required.filter(e=>e.type===l).map(e=>e.name))];async function Tn(t,l,e,u){var p;const i=[],r=u.filter(g=>g.fix==="edit-form"),a=u.filter(g=>g.fix==="edit-view"),[o,c]=await Promise.all([r.length?Dt(t,r.map(g=>g.finding.dependent.id)):Promise.resolve([]),a.length?Pt(t,a.map(g=>g.finding.dependent.id)):Promise.resolve([])]),k=[];for(const g of r){const C=o.find(v=>v.id===g.finding.dependent.id);if(!C){i.push({name:g.finding.dependent.name,reason:"form not found"});continue}const m=await l.protectedColumns(t,C.table);try{const v=Rn(C.formxml,lt(g.finding,ie.Attribute),m,lt(g.finding,ie.Entity));v.removed.length?k.push({form:C,after:v.xml,removed:v.removed,kept:v.kept,warnings:v.warnings}):i.push({name:C.name,reason:`nothing to strip${v.kept.length?`: kept ${v.kept.map(N=>`${N.name} (${N.reason})`).join(", ")}`:""}`})}catch(v){i.push({name:C.name,reason:v.message})}}const x=[];for(const g of a){const C=c.find(m=>m.id===g.finding.dependent.id);if(!C){i.push({name:g.finding.dependent.name,reason:"view not found"});continue}try{const m=On(C.fetchxml,C.layoutxml,lt(g.finding,ie.Attribute),lt(g.finding,ie.Entity));m.removed.length?x.push({view:C,after:{fetchxml:m.fetchxml,layoutxml:m.layoutxml},removed:m.removed,warnings:m.warnings}):i.push({name:C.name,reason:"nothing to strip"})}catch(m){i.push({name:C.name,reason:m.message})}}const y=new Set([...k.map(g=>g.form.id),...x.map(g=>g.view.id)]),_=e.solution.prefix?`${e.solution.prefix}_`:null,d=[];for(const g of u.filter(C=>C.fix==="shell")){const C=(p=g.finding.fixes.find(A=>A.kind==="shell"))==null?void 0:p.root;if(!C||d.some(A=>A.root.id===C.id))continue;const m=e.components.find(A=>A.type===ie.Entity&&A.objectId===C.id),v=new Set(e.findings.filter(A=>A.dependent.selfOwned).map(A=>A.dependent.id)),N=e.components.filter(A=>m&&A.rootRowId===m.rowId&&A.rowId!==m.rowId).map(A=>{const L=(A.name??"").toLowerCase();if(v.has(A.objectId))return{component:A,keep:!1,why:"belongs to a managed solution in scope"};if(y.has(A.objectId))return{component:A,keep:!0,why:"edited in this plan"};if(_&&L.startsWith(_))return{component:A,keep:!0,why:`your prefix ${_}`};if(A.type===ie.Form||A.type===ie.View||A.type===ie.Chart){if(A.filteredOwner)return{component:A,keep:!1,why:`owned by ${A.filteredOwner}`};if(A.filteredOwner===null)return{component:A,keep:!0,why:"yours: not owned by a filtered managed solution"}}return{component:A,keep:!1,why:"not yours"}}).sort((A,L)=>Number(L.keep)-Number(A.keep)||A.component.type-L.component.type||(A.component.name??"").localeCompare(L.component.name??""));d.push({root:{...C,behavior:0},leaving:N})}const b=u.filter(g=>g.fix==="remove"&&g.finding.dependent.type===ie.Entity).map(g=>d.find(C=>C.root.id===g.finding.dependent.id)).filter(g=>!!g);if(b.length)throw new Error(`Conflicting fixes on table ${b.map(g=>g.root.name).join(", ")}: one finding converts it to a shell, another removes it from the solution. Pick one of the two and preview again.`);const f=new Set(d.map(g=>{var C;return(C=e.components.find(m=>m.type===ie.Entity&&m.objectId===g.root.id))==null?void 0:C.rowId})),h=[];for(const g of u.filter(C=>C.fix==="remove")){const C=e.components.find(m=>m.objectId===g.finding.dependent.id&&m.type===g.finding.dependent.type);if(C!=null&&C.rootRowId&&f.has(C.rootRowId)){i.push({name:g.finding.dependent.name,reason:"leaves with the shell conversion of its table"});continue}h.some(m=>m.id===g.finding.dependent.id)||h.push(g.finding.dependent)}for(const g of u.filter(C=>C.fix==="report"))i.push({name:g.finding.dependent.name,reason:"report only"});return{diagnosis:e,shells:d,removes:h,forms:k,views:x,skipped:i}}function Ft(t){const l=[];for(const i of t.shells){l.push({kind:"remove",component:i.root,reason:`convert ${i.root.name} to a shell`}),l.push({kind:"add",component:i.root,doNotIncludeSubcomponents:!0,reason:"re-add as shell (no subcomponents)"});for(const r of i.leaving.filter(a=>a.keep))l.push({kind:"add",component:$n(r.component),doNotIncludeSubcomponents:!1,reason:`keep: ${r.why}`})}for(const i of t.removes)l.push({kind:"remove",component:i,reason:`remove ${_e(i.type).toLowerCase()}`});for(const i of t.forms)l.push({kind:"update-form",edit:i});for(const i of t.views)l.push({kind:"update-view",edit:i});const e=[...new Set([...t.forms.map(i=>i.form.table),...t.views.map(i=>i.view.table)].filter(Boolean))].sort();e.length&&l.push({kind:"publish",tables:e});const u=new Set;return l.filter(i=>{if(i.kind!=="remove"&&i.kind!=="add")return!0;const r=`${i.kind}:${i.component.type}:${i.component.id}:${i.kind==="add"?i.doNotIncludeSubcomponents:""}`;return u.has(r)?!1:(u.add(r),!0)})}function Bn(t){const l=e=>e.replace(/[<>&"']/g,u=>`&#${u.charCodeAt(0)};`);return`<importexportxml><entities>${t.map(e=>`<entity>${l(e)}</entity>`).join("")}</entities></importexportxml>`}const jn=(t,l)=>({operationName:"RemoveSolutionComponent",operationType:"action",parameters:{ComponentId:t.id,ComponentType:t.type,SolutionUniqueName:l}}),Ln=(t,l,e)=>({operationName:"AddSolutionComponent",operationType:"action",parameters:{ComponentId:t.id,ComponentType:t.type,SolutionUniqueName:l,DoNotIncludeSubcomponents:e,AddRequiredComponents:!1}});async function qt(t,l,e,u){const i=[];let r=!1,a=!1;for(let o=0;o<l.length;o++){const c=l[o];if(u==null||u(o,l.length),r&&!(c.kind==="publish"&&a)){i.push({op:c,ok:!1,skipped:!0,error:"not run: an earlier step failed"});continue}try{c.kind==="remove"?await t.execute(jn(c.component,e)):c.kind==="add"?await t.execute(Ln(c.component,e,c.doNotIncludeSubcomponents)):c.kind==="update-form"?(await t.update("systemform",c.edit.form.id,{formxml:c.edit.after}),a=!0):c.kind==="update-view"?(await t.update("savedquery",c.edit.view.id,{fetchxml:c.edit.after.fetchxml,layoutxml:c.edit.after.layoutxml}),a=!0):c.kind==="publish"&&await t.execute({operationName:"PublishXml",operationType:"action",parameters:{ParameterXml:Bn(c.tables)}}),i.push({op:c,ok:!0})}catch(k){r=!0,i.push({op:c,ok:!1,error:k.message??String(k)})}}return u==null||u(l.length,l.length),i}function xt(t){switch(t.kind){case"remove":return`RemoveSolutionComponent ${_e(t.component.type)} ${t.component.name}`;case"add":return`AddSolutionComponent ${_e(t.component.type)} ${t.component.name}${t.doNotIncludeSubcomponents?" (DoNotIncludeSubcomponents)":""}`;case"update-form":return`Update form ${t.edit.form.name} (${t.edit.form.table}): formxml`;case"update-view":return`Update view ${t.edit.view.name} (${t.edit.view.table}): fetchxml + layoutxml`;case"publish":return`PublishXml ${t.tables.join(", ")}`}}const Ut=t=>t.replace(/>\s*</g,`>
|
|
2
|
+
<`).split(`
|
|
3
|
+
`);function Dn(t,l,e=2){const u=Ut(t),i=Ut(l);let r=0;for(;r<u.length&&r<i.length&&u[r]===i[r];)r++;let a=0;for(;a<u.length-r&&a<i.length-r&&u[u.length-1-a]===i[i.length-1-a];)a++;const o=u.slice(r,u.length-a),c=i.slice(r,i.length-a),k=[];if(o.length*c.length>4e6)k.push(...o.map(d=>({t:"-",s:d})),...c.map(d=>({t:"+",s:d})));else{const d=o.length,b=c.length,f=Array.from({length:d+1},()=>new Uint32Array(b+1));for(let g=d-1;g>=0;g--)for(let C=b-1;C>=0;C--)f[g][C]=o[g]===c[C]?f[g+1][C+1]+1:Math.max(f[g+1][C],f[g][C+1]);let h=0,p=0;for(;h<d||p<b;)h<d&&p<b&&o[h]===c[p]?(k.push({t:" ",s:o[h++]}),p++):p<b&&(h>=d||f[h][p+1]>=f[h+1][p])?k.push({t:"+",s:c[p++]}):k.push({t:"-",s:o[h++]})}const x=[...u.slice(0,r).map(d=>({t:" ",s:d})),...k,...u.slice(u.length-a).map(d=>({t:" ",s:d}))],y=x.map(()=>!1);x.forEach((d,b)=>{if(d.t!==" ")for(let f=-e;f<=e;f++)x[b+f]&&(y[b+f]=!0)});const _=[];return x.forEach((d,b)=>{y[b]?_.push(d):(_.length===0||_[_.length-1].t!=="…")&&_.push({t:"…",s:""})}),_}const Mt="sss-dependency-cleaner-backup";function Pn(t,l,e){const u=new Map(t.components.map(i=>[i.rowId,i]));return{kind:Mt,version:1,takenAt:new Date().toISOString(),environment:{name:t.environment.name,url:t.environment.url},solution:{id:t.solution.id,uniqueName:t.solution.uniqueName,friendlyName:t.solution.friendlyName},membership:t.components.map(i=>{var r;return{objectId:i.objectId,type:i.type,behavior:i.behavior,rootObjectId:i.rootRowId?((r=u.get(i.rootRowId))==null?void 0:r.objectId)??null:null,name:i.name??i.objectId}}),forms:l.forms.map(i=>i.form),views:l.views.map(i=>i.view),operations:e.map(xt)}}function Fn(t,l=new Date){const e=l.toISOString().replace(/[:.]/g,"-").slice(0,19);return`dependency-cleaner-backup-${t.replace(/[^a-z0-9._-]+/gi,"_")}-${e}.json`}function qn(t){var e;let l;try{l=JSON.parse(t)}catch(u){throw new Error(`not JSON: ${u.message}`)}if((l==null?void 0:l.kind)!==Mt)throw new Error("not a Dependency Cleaner backup");if(l.version!==1)throw new Error(`unsupported backup version ${String(l.version)}`);if(!((e=l.solution)!=null&&e.uniqueName)||!Array.isArray(l.membership)||!Array.isArray(l.forms)||!Array.isArray(l.views))throw new Error("backup is incomplete");return l}async function Un(t,l,e,u){var f;const i=e.find(h=>h.uniqueName.toLowerCase()===l.solution.uniqueName.toLowerCase());if(!i)throw new Error(`solution ${l.solution.uniqueName} is not in this environment`);if(i.isManaged)throw new Error(`solution ${i.uniqueName} is managed: writes are refused`);const r=[],a=h=>(h??"").replace(/\/+$/,"").toLowerCase();if(!a((f=l.environment)==null?void 0:f.url))throw new Error("backup does not record its environment url");if(a(l.environment.url)!==a(u))throw new Error(`backup was taken in ${l.environment.name} (${l.environment.url}), not this environment (${u}): restore refused`);const o=await Bt(t,i.id),c=(h,p)=>`${h}:${p}`,k=new Map(o.map(h=>[c(h.type,h.objectId),h])),x=[],y=new Set;for(const h of l.membership.filter(p=>!p.rootObjectId||p.rootObjectId===p.objectId)){const p=k.get(c(h.type,h.objectId)),g={type:h.type,id:h.objectId,name:h.name};p?h.type===ie.Entity&&h.behavior===0&&p.behavior!==0&&(x.push({kind:"remove",component:g,reason:"shell → back to all assets"}),x.push({kind:"add",component:g,doNotIncludeSubcomponents:!1,reason:"re-add with all subcomponents"}),y.add(h.objectId)):(x.push({kind:"add",component:g,doNotIncludeSubcomponents:h.behavior!==0,reason:"re-add removed component"}),h.type===ie.Entity&&h.behavior===0&&y.add(h.objectId))}for(const h of l.membership.filter(p=>p.rootObjectId&&p.rootObjectId!==p.objectId))k.has(c(h.type,h.objectId))||y.has(h.rootObjectId)||x.push({kind:"add",component:{type:h.type,id:h.objectId,name:h.name},doNotIncludeSubcomponents:!1,reason:"re-add removed subcomponent"});const[_,d]=await Promise.all([l.forms.length?Dt(t,l.forms.map(h=>h.id)):Promise.resolve([]),l.views.length?Pt(t,l.views.map(h=>h.id)):Promise.resolve([])]),b=new Set;for(const h of l.forms){const p=_.find(g=>g.id===h.id);if(!p){r.push(`Form ${h.name} no longer exists; not restored.`);continue}p.formxml!==h.formxml&&(x.push({kind:"update-form",edit:{form:p,after:h.formxml,removed:[],kept:[],warnings:[]}}),b.add(p.table||h.table))}for(const h of l.views){const p=d.find(g=>g.id===h.id);if(!p){r.push(`View ${h.name} no longer exists; not restored.`);continue}p.fetchxml===h.fetchxml&&p.layoutxml===h.layoutxml||(x.push({kind:"update-view",edit:{view:p,after:{fetchxml:h.fetchxml,layoutxml:h.layoutxml},removed:[],warnings:[]}}),b.add(p.table||h.table))}return b.size&&x.push({kind:"publish",tables:[...b].filter(Boolean).sort()}),{solution:i,ops:x,notes:r}}function Mn(t){return[...new Set(t.split(/[\s,;]+/).map(l=>l.trim().toLowerCase()).filter(Boolean))]}function We(t,l,e){const u=e.toLowerCase();return t.some(i=>l?l.prefix.toLowerCase()===i||l.uniqueName.toLowerCase().startsWith(i):u.startsWith(`${i}_`))}const De=t=>[...new Set(t.map(l=>l.name))].slice(0,4).join(", ")+(t.length>4?"…":"");function Wn(t,l,e,u){var y,_;const i=(d,b)=>({cause:d,fixes:[{kind:"report",label:"Report only: open in maker portal",link:u,note:b}]}),r=t.root&&t.root.behavior===0?t.root:null,a=()=>r?{kind:"shell",label:`Convert table ${r.name} to a shell (remove + add without subcomponents)`,root:r}:null,o={kind:"remove",label:`Remove this ${_e(t.type).toLowerCase()} from the solution`},c=We(e,null,t.name),k=(d,...b)=>({cause:d,fixes:b.filter(f=>!!f)}),x=((_=(y=l.find(d=>d.id===t.id))==null?void 0:y.solution)==null?void 0:_.uniqueName)??"a managed solution";if(t.selfOwned&&t.type===ie.Entity)return k(`Table ${t.name} belongs to ${x}. Shipping it, even as a shell, needs that solution in the target.`,o,{kind:"report",label:"Report only: open in maker portal",link:u});if(t.selfOwned)return k(r?`${_e(t.type)} ${t.name} belongs to ${x} and came in with table ${r.name}, which is in the solution with all assets.`:`${_e(t.type)} ${t.name} belongs to ${x} and is included directly.`,a(),r?null:o);switch(t.type){case ie.Entity:return t.behavior===0?k(`Table added with all assets: its columns, forms and views come along, including ones that need ${De(l)}.`,a()??{kind:"shell",label:`Convert table ${t.name} to a shell`,root:{...t,behavior:0}},o):k(`The table itself requires ${De(l)}.`,o,{kind:"report",label:"Report only: open in maker portal",link:u});case ie.Attribute:return c?k(r?`Column ${t.name} comes with table ${r.name}, which is in the solution with all assets.`:`Column ${t.name} is included directly.`,a(),r?null:o):i(`Your column needs ${De(l)} (for example a lookup to that table). This is a real dependency: the target needs the app, or the column has to be changed by hand.`);case ie.Relationship:case ie.EntityRelationship:return i(`Relationship to ${De(l)}. This is a real dependency: the target needs the app, or the relationship has to be deleted by hand.`);case ie.Form:return k(`Form uses ${De(l)} (a field, subgrid, quick view or library).`,{kind:"edit-form",label:"Edit form: remove those fields (backup first)"},a(),r?null:o);case ie.View:return k(`View uses ${De(l)} (a column, condition or link-entity).`,{kind:"edit-view",label:"Edit view: strip those columns and link-entities (backup first)"},a(),r?null:o);default:return i(`${_e(t.type)} references ${De(l)}. Not edited automatically in v1.`,"Sitemap, app, ribbon, chart, process, web resource and plugin step references are fixed by hand.")}}const Zn=4,Hn=new Set(["default","active","basic"]);class Wt extends Error{constructor(){super("Diagnosis cancelled")}}const Oe=(t,l)=>`${t}:${l}`;async function Gn(t){var p,g,C;const l=t.cancelled??(()=>!1),e=await Bt(t.api,t.solution.id),u=new Set(e.map(m=>m.objectId)),i=new Map(e.map(m=>[m.rowId,m])),r=[],a=new Map;let o=0;if((p=t.onProgress)==null||p.call(t,0,e.length),await Sn(e,Zn,async m=>{var A;const v=Oe(m.type,m.objectId);let N=t.reqCache.get(v);if(!N)try{N=await En(t.api,m.objectId,m.type),t.reqCache.set(v,N)}catch(L){r.push({component:v,error:L.message??String(L)}),N=[]}a.set(m,N.filter(L=>L.requiredId&&L.requiredId!==m.objectId)),(A=t.onProgress)==null||A.call(t,++o,e.length)},l),l())throw new Wt;const c=[...new Set([...a.values()].flat().map(m=>m.requiredId).concat(e.map(m=>m.objectId)))],k=c.length?await An(t.api,c):new Map,x=new Map(t.allSolutions.map(m=>[m.id,m])),y=m=>({uniqueName:m.uniqueName,friendlyName:m.friendlyName,prefix:m.prefix,isManaged:m.isManaged}),_=m=>(k.get(m)??[]).map(v=>x.get(v)).filter(v=>!!v&&v.isManaged&&v.id!==t.solution.id&&!Hn.has(v.uniqueName.toLowerCase())),d=e.map(m=>{const v=m.rootRowId?i.get(m.rootRowId):void 0;return{type:m.type,id:m.objectId,parentId:(v==null?void 0:v.type)===ie.Entity?v.objectId:null}});for(const m of a.values())for(const v of m)d.push({type:v.requiredType,id:v.requiredId,parentId:v.requiredParentId});const b=await In(t.api,t.meta,d),f=(m,v)=>b.get(Oe(m,v))??{type:m,id:v,name:v};for(const m of e){const v=f(m.type,m.objectId);m.name=v.name,m.table=v.table,m.filteredOwner=((g=_(m.objectId).find(N=>We(t.filter,N,v.name)))==null?void 0:g.uniqueName)??null}const h=[];for(const[m,v]of a){const N=[],A=new Set,L={requiredId:m.objectId,requiredType:m.type,requiredParentId:null,requiredBaseSolutionId:null},T=[L,...v];let W=!1;for(const j of T){const te=Oe(j.requiredType,j.requiredId);if(A.has(te))continue;A.add(te);const q=f(j.requiredType,j.requiredId),ne=_(j.requiredId);if(!ne.length&&u.has(j.requiredId)||j===L&&!ne.length)continue;const U=j.requiredBaseSolutionId?x.get(j.requiredBaseSolutionId):void 0,J=(U!=null&&U.isManaged?U:void 0)??ne.find(V=>We(t.filter,V,q.name))??ne[0]??null,O=We(t.filter,J,q.name),R=!!J&&!!((C=t.targetSolutions)!=null&&C.has(J.uniqueName.toLowerCase())),Q=!!t.targetSolutions&&!!J&&!R;!O&&!Q||(j===L&&(W=!0),N.push({...q,solution:J?y(J):null,solutions:ne.map(V=>V.uniqueName),blocker:!R}))}if(!N.length)continue;const Y=f(m.type,m.objectId),E=m.type===ie.Entity?m:m.rootRowId?i.get(m.rootRowId):void 0,B=E&&E.type===ie.Entity?{...f(E.type,E.objectId),behavior:E.behavior??0}:null,s=Wn({...Y,behavior:m.behavior,root:B,selfOwned:W},N,t.filter,t.link(Y));h.push({key:Oe(m.type,m.objectId),dependent:{...Y,rootBehavior:(B==null?void 0:B.behavior)??null,rootTable:B==null?void 0:B.name,selfOwned:W},required:N.map(({blocker:j,...te})=>te),cause:s.cause,fixes:s.fixes,status:N.some(j=>j.blocker)?"blocker":"safe"})}return h.sort((m,v)=>(m.status===v.status?0:m.status==="blocker"?-1:1)||m.dependent.type-v.dependent.type||m.dependent.name.localeCompare(v.dependent.name)),{solution:t.solution,environment:t.environment,target:t.target,filter:t.filter,components:e,findings:h,errors:r,takenAt:new Date().toISOString()}}function Zt(t){let l=t==null?"":String(t);return/^[=+\-@\t\r]/.test(l)&&(l=`'${l}`),/[",\r\n]/.test(l)?`"${l.replace(/"/g,'""')}"`:l}function Kn(t){var e;const l=[["status","dependent type","dependent","table","cause","required type","required","required solution","fixes"].map(Zt).join(",")];for(const u of t.findings)for(const i of u.required)l.push([u.status,_e(u.dependent.type),u.dependent.name,u.dependent.table??u.dependent.rootTable??"",u.cause,_e(i.type),i.name,((e=i.solution)==null?void 0:e.uniqueName)??"",u.fixes.map(r=>r.kind).join(" | ")].map(Zt).join(","));return l.join(`
|
|
4
|
+
`)+`
|
|
5
|
+
`}function Vn(t){return JSON.stringify({kind:"sss-dependency-cleaner-findings",version:1,takenAt:t.takenAt,environment:t.environment,target:t.target,solution:{uniqueName:t.solution.uniqueName,friendlyName:t.solution.friendlyName,version:t.solution.version},filter:t.filter,findings:t.findings,errors:t.errors},null,2)}const Ht=t=>t.replace(/[^a-z0-9._-]+/gi,"_").replace(/^_+|_+$/g,"")||"solution";var ct=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Xn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function ut(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Gt={exports:{}};/*!
|
|
6
|
+
|
|
7
|
+
JSZip v3.10.2 - A JavaScript class for generating and reading zip files
|
|
8
|
+
<http://stuartk.com/jszip>
|
|
9
|
+
|
|
10
|
+
(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
|
|
11
|
+
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
|
|
12
|
+
|
|
13
|
+
JSZip uses the library pako released under the MIT license :
|
|
14
|
+
https://github.com/nodeca/pako/blob/main/LICENSE
|
|
15
|
+
*/(function(t,l){(function(e){t.exports=e()})(function(){return function e(u,i,r){function a(k,x){if(!i[k]){if(!u[k]){var y=typeof ut=="function"&&ut;if(!x&&y)return y(k,!0);if(o)return o(k,!0);var _=new Error("Cannot find module '"+k+"'");throw _.code="MODULE_NOT_FOUND",_}var d=i[k]={exports:{}};u[k][0].call(d.exports,function(b){var f=u[k][1][b];return a(f||b)},d,d.exports,e,u,i,r)}return i[k].exports}for(var o=typeof ut=="function"&&ut,c=0;c<r.length;c++)a(r[c]);return a}({1:[function(e,u,i){var r=e("./utils"),a=e("./support"),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";i.encode=function(c){for(var k,x,y,_,d,b,f,h=[],p=0,g=c.length,C=g,m=r.getTypeOf(c)!=="string";p<c.length;)C=g-p,y=m?(k=c[p++],x=p<g?c[p++]:0,p<g?c[p++]:0):(k=c.charCodeAt(p++),x=p<g?c.charCodeAt(p++):0,p<g?c.charCodeAt(p++):0),_=k>>2,d=(3&k)<<4|x>>4,b=1<C?(15&x)<<2|y>>6:64,f=2<C?63&y:64,h.push(o.charAt(_)+o.charAt(d)+o.charAt(b)+o.charAt(f));return h.join("")},i.decode=function(c){var k,x,y,_,d,b,f=0,h=0,p="data:";if(c.substr(0,p.length)===p)throw new Error("Invalid base64 input, it looks like a data url.");var g,C=3*(c=c.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(c.charAt(c.length-1)===o.charAt(64)&&C--,c.charAt(c.length-2)===o.charAt(64)&&C--,C%1!=0)throw new Error("Invalid base64 input, bad content length.");for(g=a.uint8array?new Uint8Array(0|C):new Array(0|C);f<c.length;)k=o.indexOf(c.charAt(f++))<<2|(_=o.indexOf(c.charAt(f++)))>>4,x=(15&_)<<4|(d=o.indexOf(c.charAt(f++)))>>2,y=(3&d)<<6|(b=o.indexOf(c.charAt(f++))),g[h++]=k,d!==64&&(g[h++]=x),b!==64&&(g[h++]=y);return g}},{"./support":30,"./utils":32}],2:[function(e,u,i){var r=e("./external"),a=e("./stream/DataWorker"),o=e("./stream/Crc32Probe"),c=e("./stream/DataLengthProbe");function k(x,y,_,d,b){this.compressedSize=x,this.uncompressedSize=y,this.crc32=_,this.compression=d,this.compressedContent=b}k.prototype={getContentWorker:function(){var x=new a(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new c("data_length")),y=this;return x.on("end",function(){if(this.streamInfo.data_length!==y.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),x},getCompressedWorker:function(){return new a(r.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},k.createWorkerFrom=function(x,y,_){return x.pipe(new o).pipe(new c("uncompressedSize")).pipe(y.compressWorker(_)).pipe(new c("compressedSize")).withStreamInfo("compression",y)},u.exports=k},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,u,i){var r=e("./stream/GenericWorker");i.STORE={magic:"\0\0",compressWorker:function(){return new r("STORE compression")},uncompressWorker:function(){return new r("STORE decompression")}},i.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,u,i){var r=e("./utils"),a=function(){for(var o,c=[],k=0;k<256;k++){o=k;for(var x=0;x<8;x++)o=1&o?3988292384^o>>>1:o>>>1;c[k]=o}return c}();u.exports=function(o,c){return o!==void 0&&o.length?r.getTypeOf(o)!=="string"?function(k,x,y,_){var d=a,b=_+y;k^=-1;for(var f=_;f<b;f++)k=k>>>8^d[255&(k^x[f])];return-1^k}(0|c,o,o.length,0):function(k,x,y,_){var d=a,b=_+y;k^=-1;for(var f=_;f<b;f++)k=k>>>8^d[255&(k^x.charCodeAt(f))];return-1^k}(0|c,o,o.length,0):0}},{"./utils":32}],5:[function(e,u,i){i.base64=!1,i.binary=!1,i.dir=!1,i.createFolders=!0,i.date=null,i.compression=null,i.compressionOptions=null,i.comment=null,i.unixPermissions=null,i.dosPermissions=null},{}],6:[function(e,u,i){var r=null;r=typeof Promise<"u"?Promise:e("lie"),u.exports={Promise:r}},{lie:37}],7:[function(e,u,i){var r=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",a=e("pako"),o=e("./utils"),c=e("./stream/GenericWorker"),k=r?"uint8array":"array";function x(y,_){c.call(this,"FlateWorker/"+y),this._pako=null,this._pakoAction=y,this._pakoOptions=_,this.meta={}}i.magic="\b\0",o.inherits(x,c),x.prototype.processChunk=function(y){this.meta=y.meta,this._pako===null&&this._createPako(),this._pako.push(o.transformTo(k,y.data),!1)},x.prototype.flush=function(){c.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},x.prototype.cleanUp=function(){c.prototype.cleanUp.call(this),this._pako=null},x.prototype._createPako=function(){this._pako=new a[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var y=this;this._pako.onData=function(_){y.push({data:_,meta:y.meta})}},i.compressWorker=function(y){return new x("Deflate",y)},i.uncompressWorker=function(){return new x("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,u,i){function r(d,b){var f,h="";for(f=0;f<b;f++)h+=String.fromCharCode(255&d),d>>>=8;return h}function a(d,b,f,h,p,g){var C,m,v=d.file,N=d.compression,A=g!==k.utf8encode,L=o.transformTo("string",g(v.name)),T=o.transformTo("string",k.utf8encode(v.name)),W=v.comment,Y=o.transformTo("string",g(W)),E=o.transformTo("string",k.utf8encode(W)),B=T.length!==v.name.length,s=E.length!==W.length,j="",te="",q="",ne=v.dir,U=v.date,J={crc32:0,compressedSize:0,uncompressedSize:0};b&&!f||(J.crc32=d.crc32,J.compressedSize=d.compressedSize,J.uncompressedSize=d.uncompressedSize);var O=0;b&&(O|=8),A||!B&&!s||(O|=2048);var R=0,Q=0;ne&&(R|=16),p==="UNIX"?(Q=798,R|=function(G,de){var be=G;return G||(be=de?16893:33204),(65535&be)<<16}(v.unixPermissions,ne)):(Q=20,R|=function(G){return 63&(G||0)}(v.dosPermissions)),C=U.getUTCHours(),C<<=6,C|=U.getUTCMinutes(),C<<=5,C|=U.getUTCSeconds()/2,m=U.getUTCFullYear()-1980,m<<=4,m|=U.getUTCMonth()+1,m<<=5,m|=U.getUTCDate(),B&&(te=r(1,1)+r(x(L),4)+T,j+="up"+r(te.length,2)+te),s&&(q=r(1,1)+r(x(Y),4)+E,j+="uc"+r(q.length,2)+q);var V="";return V+=`
|
|
16
|
+
\0`,V+=r(O,2),V+=N.magic,V+=r(C,2),V+=r(m,2),V+=r(J.crc32,4),V+=r(J.compressedSize,4),V+=r(J.uncompressedSize,4),V+=r(L.length,2),V+=r(j.length,2),{fileRecord:y.LOCAL_FILE_HEADER+V+L+j,dirRecord:y.CENTRAL_FILE_HEADER+r(Q,2)+V+r(Y.length,2)+"\0\0\0\0"+r(R,4)+r(h,4)+L+j+Y}}var o=e("../utils"),c=e("../stream/GenericWorker"),k=e("../utf8"),x=e("../crc32"),y=e("../signature");function _(d,b,f,h){c.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=b,this.zipPlatform=f,this.encodeFileName=h,this.streamFiles=d,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}o.inherits(_,c),_.prototype.push=function(d){var b=d.meta.percent||0,f=this.entriesCount,h=this._sources.length;this.accumulate?this.contentBuffer.push(d):(this.bytesWritten+=d.data.length,c.prototype.push.call(this,{data:d.data,meta:{currentFile:this.currentFile,percent:f?(b+100*(f-h-1))/f:100}}))},_.prototype.openedSource=function(d){this.currentSourceOffset=this.bytesWritten,this.currentFile=d.file.name;var b=this.streamFiles&&!d.file.dir;if(b){var f=a(d,b,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:f.fileRecord,meta:{percent:0}})}else this.accumulate=!0},_.prototype.closedSource=function(d){this.accumulate=!1;var b=this.streamFiles&&!d.file.dir,f=a(d,b,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(f.dirRecord),b)this.push({data:function(h){return y.DATA_DESCRIPTOR+r(h.crc32,4)+r(h.compressedSize,4)+r(h.uncompressedSize,4)}(d),meta:{percent:100}});else for(this.push({data:f.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},_.prototype.flush=function(){for(var d=this.bytesWritten,b=0;b<this.dirRecords.length;b++)this.push({data:this.dirRecords[b],meta:{percent:100}});var f=this.bytesWritten-d,h=function(p,g,C,m,v){var N=o.transformTo("string",v(m));return y.CENTRAL_DIRECTORY_END+"\0\0\0\0"+r(p,2)+r(p,2)+r(g,4)+r(C,4)+r(N.length,2)+N}(this.dirRecords.length,f,d,this.zipComment,this.encodeFileName);this.push({data:h,meta:{percent:100}})},_.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},_.prototype.registerPrevious=function(d){this._sources.push(d);var b=this;return d.on("data",function(f){b.processChunk(f)}),d.on("end",function(){b.closedSource(b.previous.streamInfo),b._sources.length?b.prepareNextSource():b.end()}),d.on("error",function(f){b.error(f)}),this},_.prototype.resume=function(){return!!c.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},_.prototype.error=function(d){var b=this._sources;if(!c.prototype.error.call(this,d))return!1;for(var f=0;f<b.length;f++)try{b[f].error(d)}catch{}return!0},_.prototype.lock=function(){c.prototype.lock.call(this);for(var d=this._sources,b=0;b<d.length;b++)d[b].lock()},u.exports=_},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(e,u,i){var r=e("../compressions"),a=e("./ZipFileWorker");i.generateWorker=function(o,c,k){var x=new a(c.streamFiles,k,c.platform,c.encodeFileName),y=0;try{o.forEach(function(_,d){y++;var b=function(g,C){var m=g||C,v=r[m];if(!v)throw new Error(m+" is not a valid compression method !");return v}(d.options.compression,c.compression),f=d.options.compressionOptions||c.compressionOptions||{},h=d.dir,p=d.date;d._compressWorker(b,f).withStreamInfo("file",{name:_,dir:h,date:p,comment:d.comment||"",unixPermissions:d.unixPermissions,dosPermissions:d.dosPermissions}).pipe(x)}),x.entriesCount=y}catch(_){x.error(_)}return x}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(e,u,i){function r(){if(!(this instanceof r))return new r;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var a=new r;for(var o in this)typeof this[o]!="function"&&(a[o]=this[o]);return a}}(r.prototype=e("./object")).loadAsync=e("./load"),r.support=e("./support"),r.defaults=e("./defaults"),r.version="3.10.2",r.loadAsync=function(a,o){return new r().loadAsync(a,o)},r.external=e("./external"),u.exports=r},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(e,u,i){var r=e("./utils"),a=e("./external"),o=e("./utf8"),c=e("./zipEntries"),k=e("./stream/Crc32Probe"),x=e("./nodejsUtils");function y(_){return new a.Promise(function(d,b){var f=_.decompressed.getContentWorker().pipe(new k);f.on("error",function(h){b(h)}).on("end",function(){f.streamInfo.crc32!==_.decompressed.crc32?b(new Error("Corrupted zip : CRC32 mismatch")):d()}).resume()})}u.exports=function(_,d){var b=this;return d=r.extend(d||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:o.utf8decode}),x.isNode&&x.isStream(_)?a.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):r.prepareContent("the loaded zip file",_,!0,d.optimizedBinaryString,d.base64).then(function(f){var h=new c(d);return h.load(f),h}).then(function(f){var h=[a.Promise.resolve(f)],p=f.files;if(d.checkCRC32)for(var g=0;g<p.length;g++)h.push(y(p[g]));return a.Promise.all(h)}).then(function(f){for(var h=f.shift(),p=h.files,g=0;g<p.length;g++){var C=p[g],m=C.fileNameStr,v=r.resolve(C.fileNameStr);b.file(v,C.decompressed,{binary:!0,optimizedBinaryString:!0,date:C.date,dir:C.dir,comment:C.fileCommentStr.length?C.fileCommentStr:null,unixPermissions:C.unixPermissions,dosPermissions:C.dosPermissions,createFolders:d.createFolders}),C.dir||(b.file(v).unsafeOriginalName=m)}return h.zipComment.length&&(b.comment=h.zipComment),b})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(e,u,i){var r=e("../utils"),a=e("../stream/GenericWorker");function o(c,k){a.call(this,"Nodejs stream input adapter for "+c),this._upstreamEnded=!1,this._bindStream(k)}r.inherits(o,a),o.prototype._bindStream=function(c){var k=this;(this._stream=c).pause(),c.on("data",function(x){k.push({data:x,meta:{percent:0}})}).on("error",function(x){k.isPaused?this.generatedError=x:k.error(x)}).on("end",function(){k.isPaused?k._upstreamEnded=!0:k.end()})},o.prototype.pause=function(){return!!a.prototype.pause.call(this)&&(this._stream.pause(),!0)},o.prototype.resume=function(){return!!a.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},u.exports=o},{"../stream/GenericWorker":28,"../utils":32}],13:[function(e,u,i){var r=e("readable-stream").Readable;function a(o,c,k){r.call(this,c),this._helper=o;var x=this;o.on("data",function(y,_){x.push(y)||x._helper.pause(),k&&k(_)}).on("error",function(y){x.emit("error",y)}).on("end",function(){x.push(null)})}e("../utils").inherits(a,r),a.prototype._read=function(){this._helper.resume()},u.exports=a},{"../utils":32,"readable-stream":16}],14:[function(e,u,i){u.exports={isNode:typeof Buffer<"u",newBufferFrom:function(r,a){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(r,a);if(typeof r=="number")throw new Error('The "data" argument must not be a number');return new Buffer(r,a)},allocBuffer:function(r){if(Buffer.alloc)return Buffer.alloc(r);var a=new Buffer(r);return a.fill(0),a},isBuffer:function(r){return Buffer.isBuffer(r)},isStream:function(r){return r&&typeof r.on=="function"&&typeof r.pause=="function"&&typeof r.resume=="function"}}},{}],15:[function(e,u,i){function r(v,N,A){var L,T=o.getTypeOf(N),W=o.extend(A||{},x);W.date=W.date||new Date,W.compression!==null&&(W.compression=W.compression.toUpperCase()),typeof W.unixPermissions=="string"&&(W.unixPermissions=parseInt(W.unixPermissions,8)),W.unixPermissions&&16384&W.unixPermissions&&(W.dir=!0),W.dosPermissions&&16&W.dosPermissions&&(W.dir=!0),W.dir&&(v=p(v)),W.createFolders&&(L=h(v))&&g.call(this,L,!0);var Y=T==="string"&&W.binary===!1&&W.base64===!1;A&&A.binary!==void 0||(W.binary=!Y),(N instanceof y&&N.uncompressedSize===0||W.dir||!N||N.length===0)&&(W.base64=!1,W.binary=!0,N="",W.compression="STORE",T="string");var E=null;E=N instanceof y||N instanceof c?N:b.isNode&&b.isStream(N)?new f(v,N):o.prepareContent(v,N,W.binary,W.optimizedBinaryString,W.base64);var B=new _(v,E,W);this.files[v]=B}var a=e("./utf8"),o=e("./utils"),c=e("./stream/GenericWorker"),k=e("./stream/StreamHelper"),x=e("./defaults"),y=e("./compressedObject"),_=e("./zipObject"),d=e("./generate"),b=e("./nodejsUtils"),f=e("./nodejs/NodejsStreamInputAdapter"),h=function(v){v.slice(-1)==="/"&&(v=v.substring(0,v.length-1));var N=v.lastIndexOf("/");return 0<N?v.substring(0,N):""},p=function(v){return v.slice(-1)!=="/"&&(v+="/"),v},g=function(v,N){return N=N!==void 0?N:x.createFolders,v=p(v),this.files[v]||r.call(this,v,null,{dir:!0,createFolders:N}),this.files[v]};function C(v){return Object.prototype.toString.call(v)==="[object RegExp]"}var m={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(v){var N,A,L;for(N in this.files)L=this.files[N],(A=N.slice(this.root.length,N.length))&&N.slice(0,this.root.length)===this.root&&v(A,L)},filter:function(v){var N=[];return this.forEach(function(A,L){v(A,L)&&N.push(L)}),N},file:function(v,N,A){if(arguments.length!==1)return v=this.root+v,r.call(this,v,N,A),this;if(C(v)){var L=v;return this.filter(function(W,Y){return!Y.dir&&L.test(W)})}var T=this.files[this.root+v];return T&&!T.dir?T:null},folder:function(v){if(!v)return this;if(C(v))return this.filter(function(T,W){return W.dir&&v.test(T)});var N=this.root+v,A=g.call(this,N),L=this.clone();return L.root=A.name,L},remove:function(v){v=this.root+v;var N=this.files[v];if(N||(v.slice(-1)!=="/"&&(v+="/"),N=this.files[v]),N&&!N.dir)delete this.files[v];else for(var A=this.filter(function(T,W){return W.name.slice(0,v.length)===v}),L=0;L<A.length;L++)delete this.files[A[L].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(v){var N,A={};try{if((A=o.extend(v||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:a.utf8encode})).type=A.type.toLowerCase(),A.compression=A.compression.toUpperCase(),A.type==="binarystring"&&(A.type="string"),!A.type)throw new Error("No output type specified.");o.checkSupport(A.type),A.platform!=="darwin"&&A.platform!=="freebsd"&&A.platform!=="linux"&&A.platform!=="sunos"||(A.platform="UNIX"),A.platform==="win32"&&(A.platform="DOS");var L=A.comment||this.comment||"";N=d.generateWorker(this,A,L)}catch(T){(N=new c("error")).error(T)}return new k(N,A.type||"string",A.mimeType)},generateAsync:function(v,N){return this.generateInternalStream(v).accumulate(N)},generateNodeStream:function(v,N){return(v=v||{}).type||(v.type="nodebuffer"),this.generateInternalStream(v).toNodejsStream(N)}};u.exports=m},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(e,u,i){u.exports=e("stream")},{stream:void 0}],17:[function(e,u,i){var r=e("./DataReader");function a(o){r.call(this,o);for(var c=0;c<this.data.length;c++)o[c]=255&o[c]}e("../utils").inherits(a,r),a.prototype.byteAt=function(o){return this.data[this.zero+o]},a.prototype.lastIndexOfSignature=function(o){for(var c=o.charCodeAt(0),k=o.charCodeAt(1),x=o.charCodeAt(2),y=o.charCodeAt(3),_=this.length-4;0<=_;--_)if(this.data[_]===c&&this.data[_+1]===k&&this.data[_+2]===x&&this.data[_+3]===y)return _-this.zero;return-1},a.prototype.readAndCheckSignature=function(o){var c=o.charCodeAt(0),k=o.charCodeAt(1),x=o.charCodeAt(2),y=o.charCodeAt(3),_=this.readData(4);return c===_[0]&&k===_[1]&&x===_[2]&&y===_[3]},a.prototype.readData=function(o){if(this.checkOffset(o),o===0)return[];var c=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,c},u.exports=a},{"../utils":32,"./DataReader":18}],18:[function(e,u,i){var r=e("../utils");function a(o){this.data=o,this.length=o.length,this.index=0,this.zero=0}a.prototype={checkOffset:function(o){this.checkIndex(this.index+o)},checkIndex:function(o){if(this.length<this.zero+o||o<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+o+"). Corrupted zip ?")},setIndex:function(o){this.checkIndex(o),this.index=o},skip:function(o){this.setIndex(this.index+o)},byteAt:function(){},readInt:function(o){var c,k=0;for(this.checkOffset(o),c=this.index+o-1;c>=this.index;c--)k=(k<<8)+this.byteAt(c);return this.index+=o,k},readString:function(o){return r.transformTo("string",this.readData(o))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var o=this.readInt(4);return new Date(Date.UTC(1980+(o>>25&127),(o>>21&15)-1,o>>16&31,o>>11&31,o>>5&63,(31&o)<<1))}},u.exports=a},{"../utils":32}],19:[function(e,u,i){var r=e("./Uint8ArrayReader");function a(o){r.call(this,o)}e("../utils").inherits(a,r),a.prototype.readData=function(o){this.checkOffset(o);var c=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,c},u.exports=a},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,u,i){var r=e("./DataReader");function a(o){r.call(this,o)}e("../utils").inherits(a,r),a.prototype.byteAt=function(o){return this.data.charCodeAt(this.zero+o)},a.prototype.lastIndexOfSignature=function(o){return this.data.lastIndexOf(o)-this.zero},a.prototype.readAndCheckSignature=function(o){return o===this.readData(4)},a.prototype.readData=function(o){this.checkOffset(o);var c=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,c},u.exports=a},{"../utils":32,"./DataReader":18}],21:[function(e,u,i){var r=e("./ArrayReader");function a(o){r.call(this,o)}e("../utils").inherits(a,r),a.prototype.readData=function(o){if(this.checkOffset(o),o===0)return new Uint8Array(0);var c=this.data.subarray(this.zero+this.index,this.zero+this.index+o);return this.index+=o,c},u.exports=a},{"../utils":32,"./ArrayReader":17}],22:[function(e,u,i){var r=e("../utils"),a=e("../support"),o=e("./ArrayReader"),c=e("./StringReader"),k=e("./NodeBufferReader"),x=e("./Uint8ArrayReader");u.exports=function(y){var _=r.getTypeOf(y);return r.checkSupport(_),_!=="string"||a.uint8array?_==="nodebuffer"?new k(y):a.uint8array?new x(r.transformTo("uint8array",y)):new o(r.transformTo("array",y)):new c(y)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,u,i){i.LOCAL_FILE_HEADER="PK",i.CENTRAL_FILE_HEADER="PK",i.CENTRAL_DIRECTORY_END="PK",i.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",i.ZIP64_CENTRAL_DIRECTORY_END="PK",i.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(e,u,i){var r=e("./GenericWorker"),a=e("../utils");function o(c){r.call(this,"ConvertWorker to "+c),this.destType=c}a.inherits(o,r),o.prototype.processChunk=function(c){this.push({data:a.transformTo(this.destType,c.data),meta:c.meta})},u.exports=o},{"../utils":32,"./GenericWorker":28}],25:[function(e,u,i){var r=e("./GenericWorker"),a=e("../crc32");function o(){r.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(o,r),o.prototype.processChunk=function(c){this.streamInfo.crc32=a(c.data,this.streamInfo.crc32||0),this.push(c)},u.exports=o},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,u,i){var r=e("../utils"),a=e("./GenericWorker");function o(c){a.call(this,"DataLengthProbe for "+c),this.propName=c,this.withStreamInfo(c,0)}r.inherits(o,a),o.prototype.processChunk=function(c){if(c){var k=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=k+c.data.length}a.prototype.processChunk.call(this,c)},u.exports=o},{"../utils":32,"./GenericWorker":28}],27:[function(e,u,i){var r=e("../utils"),a=e("./GenericWorker");function o(c){a.call(this,"DataWorker");var k=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,c.then(function(x){k.dataIsReady=!0,k.data=x,k.max=x&&x.length||0,k.type=r.getTypeOf(x),k.isPaused||k._tickAndRepeat()},function(x){k.error(x)})}r.inherits(o,a),o.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this.data=null},o.prototype.resume=function(){return!!a.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0)},o.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},o.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var c=null,k=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":c=this.data.substring(this.index,k);break;case"uint8array":c=this.data.subarray(this.index,k);break;case"array":case"nodebuffer":c=this.data.slice(this.index,k)}return this.index=k,this.push({data:c,meta:{percent:this.max?this.index/this.max*100:0}})},u.exports=o},{"../utils":32,"./GenericWorker":28}],28:[function(e,u,i){function r(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,o){return this._listeners[a].push(o),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,o){if(this._listeners[a])for(var c=0;c<this._listeners[a].length;c++)this._listeners[a][c].call(this,o)},pipe:function(a){return a.registerPrevious(this)},registerPrevious:function(a){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=a.streamInfo,this.mergeStreamInfo(),this.previous=a;var o=this;return a.on("data",function(c){o.processChunk(c)}),a.on("end",function(){o.end()}),a.on("error",function(c){o.error(c)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var a=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),a=!0),this.previous&&this.previous.resume(),!a},flush:function(){},processChunk:function(a){this.push(a)},withStreamInfo:function(a,o){return this.extraStreamInfo[a]=o,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var a in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,a)&&(this.streamInfo[a]=this.extraStreamInfo[a])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var a="Worker "+this.name;return this.previous?this.previous+" -> "+a:a}},u.exports=r},{}],29:[function(e,u,i){var r=e("../utils"),a=e("./ConvertWorker"),o=e("./GenericWorker"),c=e("../base64"),k=e("../support"),x=e("../external"),y=null;if(k.nodestream)try{y=e("../nodejs/NodejsStreamOutputAdapter")}catch{}function _(b,f){return new x.Promise(function(h,p){var g=[],C=b._internalType,m=b._outputType,v=b._mimeType;b.on("data",function(N,A){g.push(N),f&&f(A)}).on("error",function(N){g=[],p(N)}).on("end",function(){try{var N=function(A,L,T){switch(A){case"blob":return r.newBlob(r.transformTo("arraybuffer",L),T);case"base64":return c.encode(L);default:return r.transformTo(A,L)}}(m,function(A,L){var T,W=0,Y=null,E=0;for(T=0;T<L.length;T++)E+=L[T].length;switch(A){case"string":return L.join("");case"array":return Array.prototype.concat.apply([],L);case"uint8array":for(Y=new Uint8Array(E),T=0;T<L.length;T++)Y.set(L[T],W),W+=L[T].length;return Y;case"nodebuffer":return Buffer.concat(L);default:throw new Error("concat : unsupported type '"+A+"'")}}(C,g),v);h(N)}catch(A){p(A)}g=[]}).resume()})}function d(b,f,h){var p=f;switch(f){case"blob":case"arraybuffer":p="uint8array";break;case"base64":p="string"}try{this._internalType=p,this._outputType=f,this._mimeType=h,r.checkSupport(p),this._worker=b.pipe(new a(p)),b.lock()}catch(g){this._worker=new o("error"),this._worker.error(g)}}d.prototype={accumulate:function(b){return _(this,b)},on:function(b,f){var h=this;return b==="data"?this._worker.on(b,function(p){f.call(h,p.data,p.meta)}):this._worker.on(b,function(){r.delay(f,arguments,h)}),this},resume:function(){return r.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(b){if(r.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new y(this,{objectMode:this._outputType!=="nodebuffer"},b)}},u.exports=d},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(e,u,i){if(i.base64=!0,i.array=!0,i.string=!0,i.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",i.nodebuffer=typeof Buffer<"u",i.uint8array=typeof Uint8Array<"u",typeof ArrayBuffer>"u")i.blob=!1;else{var r=new ArrayBuffer(0);try{i.blob=new Blob([r],{type:"application/zip"}).size===0}catch{try{var a=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);a.append(r),i.blob=a.getBlob("application/zip").size===0}catch{i.blob=!1}}}try{i.nodestream=!!e("readable-stream").Readable}catch{i.nodestream=!1}},{"readable-stream":16}],31:[function(e,u,i){for(var r=e("./utils"),a=e("./support"),o=e("./nodejsUtils"),c=e("./stream/GenericWorker"),k=new Array(256),x=0;x<256;x++)k[x]=252<=x?6:248<=x?5:240<=x?4:224<=x?3:192<=x?2:1;k[254]=k[254]=1;function y(){c.call(this,"utf-8 decode"),this.leftOver=null}function _(){c.call(this,"utf-8 encode")}i.utf8encode=function(d){return a.nodebuffer?o.newBufferFrom(d,"utf-8"):function(b){var f,h,p,g,C,m=b.length,v=0;for(g=0;g<m;g++)(64512&(h=b.charCodeAt(g)))==55296&&g+1<m&&(64512&(p=b.charCodeAt(g+1)))==56320&&(h=65536+(h-55296<<10)+(p-56320),g++),v+=h<128?1:h<2048?2:h<65536?3:4;for(f=a.uint8array?new Uint8Array(v):new Array(v),g=C=0;C<v;g++)(64512&(h=b.charCodeAt(g)))==55296&&g+1<m&&(64512&(p=b.charCodeAt(g+1)))==56320&&(h=65536+(h-55296<<10)+(p-56320),g++),h<128?f[C++]=h:(h<2048?f[C++]=192|h>>>6:(h<65536?f[C++]=224|h>>>12:(f[C++]=240|h>>>18,f[C++]=128|h>>>12&63),f[C++]=128|h>>>6&63),f[C++]=128|63&h);return f}(d)},i.utf8decode=function(d){return a.nodebuffer?r.transformTo("nodebuffer",d).toString("utf-8"):function(b){var f,h,p,g,C=b.length,m=new Array(2*C);for(f=h=0;f<C;)if((p=b[f++])<128)m[h++]=p;else if(4<(g=k[p]))m[h++]=65533,f+=g-1;else{for(p&=g===2?31:g===3?15:7;1<g&&f<C;)p=p<<6|63&b[f++],g--;1<g?m[h++]=65533:p<65536?m[h++]=p:(p-=65536,m[h++]=55296|p>>10&1023,m[h++]=56320|1023&p)}return m.length!==h&&(m.subarray?m=m.subarray(0,h):m.length=h),r.applyFromCharCode(m)}(d=r.transformTo(a.uint8array?"uint8array":"array",d))},r.inherits(y,c),y.prototype.processChunk=function(d){var b=r.transformTo(a.uint8array?"uint8array":"array",d.data);if(this.leftOver&&this.leftOver.length){if(a.uint8array){var f=b;(b=new Uint8Array(f.length+this.leftOver.length)).set(this.leftOver,0),b.set(f,this.leftOver.length)}else b=this.leftOver.concat(b);this.leftOver=null}var h=function(g,C){var m;for((C=C||g.length)>g.length&&(C=g.length),m=C-1;0<=m&&(192&g[m])==128;)m--;return m<0||m===0?C:m+k[g[m]]>C?m:C}(b),p=b;h!==b.length&&(a.uint8array?(p=b.subarray(0,h),this.leftOver=b.subarray(h,b.length)):(p=b.slice(0,h),this.leftOver=b.slice(h,b.length))),this.push({data:i.utf8decode(p),meta:d.meta})},y.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:i.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},i.Utf8DecodeWorker=y,r.inherits(_,c),_.prototype.processChunk=function(d){this.push({data:i.utf8encode(d.data),meta:d.meta})},i.Utf8EncodeWorker=_},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,u,i){var r=e("./support"),a=e("./base64"),o=e("./nodejsUtils"),c=e("./external");function k(f){return f}function x(f,h){for(var p=0;p<f.length;++p)h[p]=255&f.charCodeAt(p);return h}e("setimmediate"),i.newBlob=function(f,h){i.checkSupport("blob");try{return new Blob([f],{type:h})}catch{try{var p=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return p.append(f),p.getBlob(h)}catch{throw new Error("Bug : can't construct the Blob.")}}};var y={stringifyByChunk:function(f,h,p){var g=[],C=0,m=f.length;if(m<=p)return String.fromCharCode.apply(null,f);for(;C<m;)h==="array"||h==="nodebuffer"?g.push(String.fromCharCode.apply(null,f.slice(C,Math.min(C+p,m)))):g.push(String.fromCharCode.apply(null,f.subarray(C,Math.min(C+p,m)))),C+=p;return g.join("")},stringifyByChar:function(f){for(var h="",p=0;p<f.length;p++)h+=String.fromCharCode(f[p]);return h},applyCanBeUsed:{uint8array:function(){try{return r.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}}(),nodebuffer:function(){try{return r.nodebuffer&&String.fromCharCode.apply(null,o.allocBuffer(1)).length===1}catch{return!1}}()}};function _(f){var h=65536,p=i.getTypeOf(f),g=!0;if(p==="uint8array"?g=y.applyCanBeUsed.uint8array:p==="nodebuffer"&&(g=y.applyCanBeUsed.nodebuffer),g)for(;1<h;)try{return y.stringifyByChunk(f,p,h)}catch{h=Math.floor(h/2)}return y.stringifyByChar(f)}function d(f,h){for(var p=0;p<f.length;p++)h[p]=f[p];return h}i.applyFromCharCode=_;var b={};b.string={string:k,array:function(f){return x(f,new Array(f.length))},arraybuffer:function(f){return b.string.uint8array(f).buffer},uint8array:function(f){return x(f,new Uint8Array(f.length))},nodebuffer:function(f){return x(f,o.allocBuffer(f.length))}},b.array={string:_,array:k,arraybuffer:function(f){return new Uint8Array(f).buffer},uint8array:function(f){return new Uint8Array(f)},nodebuffer:function(f){return o.newBufferFrom(f)}},b.arraybuffer={string:function(f){return _(new Uint8Array(f))},array:function(f){return d(new Uint8Array(f),new Array(f.byteLength))},arraybuffer:k,uint8array:function(f){return new Uint8Array(f)},nodebuffer:function(f){return o.newBufferFrom(new Uint8Array(f))}},b.uint8array={string:_,array:function(f){return d(f,new Array(f.length))},arraybuffer:function(f){return f.buffer},uint8array:k,nodebuffer:function(f){return o.newBufferFrom(f)}},b.nodebuffer={string:_,array:function(f){return d(f,new Array(f.length))},arraybuffer:function(f){return b.nodebuffer.uint8array(f).buffer},uint8array:function(f){return d(f,new Uint8Array(f.length))},nodebuffer:k},i.transformTo=function(f,h){if(h=h||"",!f)return h;i.checkSupport(f);var p=i.getTypeOf(h);return b[p][f](h)},i.resolve=function(f){for(var h=f.split("/"),p=[],g=0;g<h.length;g++){var C=h[g];C==="."||C===""&&g!==0&&g!==h.length-1||(C===".."?p.pop():p.push(C))}return p.join("/")},i.getTypeOf=function(f){if(typeof f=="string")return"string";var h=Object.prototype.toString.call(f);return h==="[object Array]"?"array":r.nodebuffer&&o.isBuffer(f)?"nodebuffer":r.uint8array&&h==="[object Uint8Array]"?"uint8array":r.arraybuffer&&h==="[object ArrayBuffer]"?"arraybuffer":void 0},i.checkSupport=function(f){if(!r[f.toLowerCase()])throw new Error(f+" is not supported by this platform")},i.MAX_VALUE_16BITS=65535,i.MAX_VALUE_32BITS=-1,i.pretty=function(f){var h,p,g="";for(p=0;p<(f||"").length;p++)g+="\\x"+((h=f.charCodeAt(p))<16?"0":"")+h.toString(16).toUpperCase();return g},i.delay=function(f,h,p){setImmediate(function(){f.apply(p||null,h||[])})},i.inherits=function(f,h){function p(){}p.prototype=h.prototype,f.prototype=new p},i.extend=function(){var f,h,p={};for(f=0;f<arguments.length;f++)for(h in arguments[f])Object.prototype.hasOwnProperty.call(arguments[f],h)&&p[h]===void 0&&(p[h]=arguments[f][h]);return p},i.prepareContent=function(f,h,p,g,C){return c.Promise.resolve(h).then(function(m){return r.blob&&(m instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(m))!==-1)?Blob.prototype.arrayBuffer!==void 0?m.arrayBuffer():typeof FileReader<"u"?new c.Promise(function(v,N){var A=new FileReader;A.onload=function(L){v(L.target.result)},A.onerror=function(L){N(L.target.error)},A.readAsArrayBuffer(m)}):c.Promise.reject(new Error(f+" is a Blob, but we have no way of reading it.")):m}).then(function(m){var v=i.getTypeOf(m);return v?(v==="arraybuffer"?m=i.transformTo("uint8array",m):v==="string"&&(C?m=a.decode(m):p&&g!==!0&&(m=function(N){return x(N,r.uint8array?new Uint8Array(N.length):new Array(N.length))}(m))),m):c.Promise.reject(new Error("Can't read the data of '"+f+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(e,u,i){var r=e("./reader/readerFor"),a=e("./utils"),o=e("./signature"),c=e("./zipEntry"),k=e("./support");function x(y){this.files=[],this.loadOptions=y}x.prototype={checkSignature:function(y){if(!this.reader.readAndCheckSignature(y)){this.reader.index-=4;var _=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+a.pretty(_)+", expected "+a.pretty(y)+")")}},isSignature:function(y,_){var d=this.reader.index;this.reader.setIndex(y);var b=this.reader.readString(4)===_;return this.reader.setIndex(d),b},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var y=this.reader.readData(this.zipCommentLength),_=k.uint8array?"uint8array":"array",d=a.transformTo(_,y);this.zipComment=this.loadOptions.decodeFileName(d)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var y,_,d,b=this.zip64EndOfCentralSize-44;0<b;)y=this.reader.readInt(2),_=this.reader.readInt(4),d=this.reader.readData(_),this.zip64ExtensibleData[y]={id:y,length:_,value:d}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var y,_;for(y=0;y<this.files.length;y++)_=this.files[y],this.reader.setIndex(_.localHeaderOffset),this.checkSignature(o.LOCAL_FILE_HEADER),_.readLocalPart(this.reader),_.handleUTF8(),_.processAttributes()},readCentralDir:function(){var y;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(o.CENTRAL_FILE_HEADER);)(y=new c({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(y);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var y=this.reader.lastIndexOfSignature(o.CENTRAL_DIRECTORY_END);if(y<0)throw this.isSignature(0,o.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(y);var _=y;if(this.checkSignature(o.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===a.MAX_VALUE_16BITS||this.diskWithCentralDirStart===a.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===a.MAX_VALUE_16BITS||this.centralDirRecords===a.MAX_VALUE_16BITS||this.centralDirSize===a.MAX_VALUE_32BITS||this.centralDirOffset===a.MAX_VALUE_32BITS){if(this.zip64=!0,(y=this.reader.lastIndexOfSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(y),this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,o.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(o.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var b=_-d;if(0<b)this.isSignature(_,o.CENTRAL_FILE_HEADER)||(this.reader.zero=b);else if(b<0)throw new Error("Corrupted zip: missing "+Math.abs(b)+" bytes.")},prepareReader:function(y){this.reader=r(y)},load:function(y){this.prepareReader(y),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},u.exports=x},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,u,i){var r=e("./reader/readerFor"),a=e("./utils"),o=e("./compressedObject"),c=e("./crc32"),k=e("./utf8"),x=e("./compressions"),y=e("./support");function _(d,b){this.options=d,this.loadOptions=b}_.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(d){var b,f;if(d.skip(22),this.fileNameLength=d.readInt(2),f=d.readInt(2),this.fileName=d.readData(this.fileNameLength),d.skip(f),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((b=function(h){for(var p in x)if(Object.prototype.hasOwnProperty.call(x,p)&&x[p].magic===h)return x[p];return null}(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+a.pretty(this.compressionMethod)+" unknown (inner file : "+a.transformTo("string",this.fileName)+")");this.decompressed=new o(this.compressedSize,this.uncompressedSize,this.crc32,b,d.readData(this.compressedSize))},readCentralPart:function(d){this.versionMadeBy=d.readInt(2),d.skip(2),this.bitFlag=d.readInt(2),this.compressionMethod=d.readString(2),this.date=d.readDate(),this.crc32=d.readInt(4),this.compressedSize=d.readInt(4),this.uncompressedSize=d.readInt(4);var b=d.readInt(2);if(this.extraFieldsLength=d.readInt(2),this.fileCommentLength=d.readInt(2),this.diskNumberStart=d.readInt(2),this.internalFileAttributes=d.readInt(2),this.externalFileAttributes=d.readInt(4),this.localHeaderOffset=d.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");d.skip(b),this.readExtraFields(d),this.parseZIP64ExtraField(d),this.fileComment=d.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var d=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),d==0&&(this.dosPermissions=63&this.externalFileAttributes),d==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var d=r(this.extraFields[1].value);this.uncompressedSize===a.MAX_VALUE_32BITS&&(this.uncompressedSize=d.readInt(8)),this.compressedSize===a.MAX_VALUE_32BITS&&(this.compressedSize=d.readInt(8)),this.localHeaderOffset===a.MAX_VALUE_32BITS&&(this.localHeaderOffset=d.readInt(8)),this.diskNumberStart===a.MAX_VALUE_32BITS&&(this.diskNumberStart=d.readInt(4))}},readExtraFields:function(d){var b,f,h,p=d.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});d.index+4<p;)b=d.readInt(2),f=d.readInt(2),h=d.readData(f),this.extraFields[b]={id:b,length:f,value:h};d.setIndex(p)},handleUTF8:function(){var d=y.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=k.utf8decode(this.fileName),this.fileCommentStr=k.utf8decode(this.fileComment);else{var b=this.findExtraFieldUnicodePath();if(b!==null)this.fileNameStr=b;else{var f=a.transformTo(d,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(f)}var h=this.findExtraFieldUnicodeComment();if(h!==null)this.fileCommentStr=h;else{var p=a.transformTo(d,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(p)}}},findExtraFieldUnicodePath:function(){var d=this.extraFields[28789];if(d){var b=r(d.value);return b.readInt(1)!==1||c(this.fileName)!==b.readInt(4)?null:k.utf8decode(b.readData(d.length-5))}return null},findExtraFieldUnicodeComment:function(){var d=this.extraFields[25461];if(d){var b=r(d.value);return b.readInt(1)!==1||c(this.fileComment)!==b.readInt(4)?null:k.utf8decode(b.readData(d.length-5))}return null}},u.exports=_},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(e,u,i){function r(b,f,h){this.name=b,this.dir=h.dir,this.date=h.date,this.comment=h.comment,this.unixPermissions=h.unixPermissions,this.dosPermissions=h.dosPermissions,this._data=f,this._dataBinary=h.binary,this.options={compression:h.compression,compressionOptions:h.compressionOptions}}var a=e("./stream/StreamHelper"),o=e("./stream/DataWorker"),c=e("./utf8"),k=e("./compressedObject"),x=e("./stream/GenericWorker");r.prototype={internalStream:function(b){var f=null,h="string";try{if(!b)throw new Error("No output type specified.");var p=(h=b.toLowerCase())==="string"||h==="text";h!=="binarystring"&&h!=="text"||(h="string"),f=this._decompressWorker();var g=!this._dataBinary;g&&!p&&(f=f.pipe(new c.Utf8EncodeWorker)),!g&&p&&(f=f.pipe(new c.Utf8DecodeWorker))}catch(C){(f=new x("error")).error(C)}return new a(f,h,"")},async:function(b,f){return this.internalStream(b).accumulate(f)},nodeStream:function(b,f){return this.internalStream(b||"nodebuffer").toNodejsStream(f)},_compressWorker:function(b,f){if(this._data instanceof k&&this._data.compression.magic===b.magic)return this._data.getCompressedWorker();var h=this._decompressWorker();return this._dataBinary||(h=h.pipe(new c.Utf8EncodeWorker)),k.createWorkerFrom(h,b,f)},_decompressWorker:function(){return this._data instanceof k?this._data.getContentWorker():this._data instanceof x?this._data:new o(this._data)}};for(var y=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],_=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},d=0;d<y.length;d++)r.prototype[y[d]]=_;u.exports=r},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(e,u,i){(function(r){var a,o,c=r.MutationObserver||r.WebKitMutationObserver;if(c){var k=0,x=new c(b),y=r.document.createTextNode("");x.observe(y,{characterData:!0}),a=function(){y.data=k=++k%2}}else if(r.setImmediate||r.MessageChannel===void 0)a="document"in r&&"onreadystatechange"in r.document.createElement("script")?function(){var f=r.document.createElement("script");f.onreadystatechange=function(){b(),f.onreadystatechange=null,f.parentNode.removeChild(f),f=null},r.document.documentElement.appendChild(f)}:function(){setTimeout(b,0)};else{var _=new r.MessageChannel;_.port1.onmessage=b,a=function(){_.port2.postMessage(0)}}var d=[];function b(){var f,h;o=!0;for(var p=d.length;p;){for(h=d,d=[],f=-1;++f<p;)h[f]();p=d.length}o=!1}u.exports=function(f){d.push(f)!==1||o||a()}}).call(this,typeof ct<"u"?ct:typeof self<"u"?self:typeof window<"u"?window:{})},{}],37:[function(e,u,i){var r=e("immediate");function a(){}var o={},c=["REJECTED"],k=["FULFILLED"],x=["PENDING"];function y(p){if(typeof p!="function")throw new TypeError("resolver must be a function");this.state=x,this.queue=[],this.outcome=void 0,p!==a&&f(this,p)}function _(p,g,C){this.promise=p,typeof g=="function"&&(this.onFulfilled=g,this.callFulfilled=this.otherCallFulfilled),typeof C=="function"&&(this.onRejected=C,this.callRejected=this.otherCallRejected)}function d(p,g,C){r(function(){var m;try{m=g(C)}catch(v){return o.reject(p,v)}m===p?o.reject(p,new TypeError("Cannot resolve promise with itself")):o.resolve(p,m)})}function b(p){var g=p&&p.then;if(p&&(typeof p=="object"||typeof p=="function")&&typeof g=="function")return function(){g.apply(p,arguments)}}function f(p,g){var C=!1;function m(A){C||(C=!0,o.reject(p,A))}function v(A){C||(C=!0,o.resolve(p,A))}var N=h(function(){g(v,m)});N.status==="error"&&m(N.value)}function h(p,g){var C={};try{C.value=p(g),C.status="success"}catch(m){C.status="error",C.value=m}return C}(u.exports=y).prototype.finally=function(p){if(typeof p!="function")return this;var g=this.constructor;return this.then(function(C){return g.resolve(p()).then(function(){return C})},function(C){return g.resolve(p()).then(function(){throw C})})},y.prototype.catch=function(p){return this.then(null,p)},y.prototype.then=function(p,g){if(typeof p!="function"&&this.state===k||typeof g!="function"&&this.state===c)return this;var C=new this.constructor(a);return this.state!==x?d(C,this.state===k?p:g,this.outcome):this.queue.push(new _(C,p,g)),C},_.prototype.callFulfilled=function(p){o.resolve(this.promise,p)},_.prototype.otherCallFulfilled=function(p){d(this.promise,this.onFulfilled,p)},_.prototype.callRejected=function(p){o.reject(this.promise,p)},_.prototype.otherCallRejected=function(p){d(this.promise,this.onRejected,p)},o.resolve=function(p,g){var C=h(b,g);if(C.status==="error")return o.reject(p,C.value);var m=C.value;if(m)f(p,m);else{p.state=k,p.outcome=g;for(var v=-1,N=p.queue.length;++v<N;)p.queue[v].callFulfilled(g)}return p},o.reject=function(p,g){p.state=c,p.outcome=g;for(var C=-1,m=p.queue.length;++C<m;)p.queue[C].callRejected(g);return p},y.resolve=function(p){return p instanceof this?p:o.resolve(new this(a),p)},y.reject=function(p){var g=new this(a);return o.reject(g,p)},y.all=function(p){var g=this;if(Object.prototype.toString.call(p)!=="[object Array]")return this.reject(new TypeError("must be an array"));var C=p.length,m=!1;if(!C)return this.resolve([]);for(var v=new Array(C),N=0,A=-1,L=new this(a);++A<C;)T(p[A],A);return L;function T(W,Y){g.resolve(W).then(function(E){v[Y]=E,++N!==C||m||(m=!0,o.resolve(L,v))},function(E){m||(m=!0,o.reject(L,E))})}},y.race=function(p){var g=this;if(Object.prototype.toString.call(p)!=="[object Array]")return this.reject(new TypeError("must be an array"));var C=p.length,m=!1;if(!C)return this.resolve([]);for(var v=-1,N=new this(a);++v<C;)A=p[v],g.resolve(A).then(function(L){m||(m=!0,o.resolve(N,L))},function(L){m||(m=!0,o.reject(N,L))});var A;return N}},{immediate:36}],38:[function(e,u,i){var r={};(0,e("./lib/utils/common").assign)(r,e("./lib/deflate"),e("./lib/inflate"),e("./lib/zlib/constants")),u.exports=r},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(e,u,i){var r=e("./zlib/deflate"),a=e("./utils/common"),o=e("./utils/strings"),c=e("./zlib/messages"),k=e("./zlib/zstream"),x=Object.prototype.toString,y=0,_=-1,d=0,b=8;function f(p){if(!(this instanceof f))return new f(p);this.options=a.assign({level:_,method:b,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:""},p||{});var g=this.options;g.raw&&0<g.windowBits?g.windowBits=-g.windowBits:g.gzip&&0<g.windowBits&&g.windowBits<16&&(g.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new k,this.strm.avail_out=0;var C=r.deflateInit2(this.strm,g.level,g.method,g.windowBits,g.memLevel,g.strategy);if(C!==y)throw new Error(c[C]);if(g.header&&r.deflateSetHeader(this.strm,g.header),g.dictionary){var m;if(m=typeof g.dictionary=="string"?o.string2buf(g.dictionary):x.call(g.dictionary)==="[object ArrayBuffer]"?new Uint8Array(g.dictionary):g.dictionary,(C=r.deflateSetDictionary(this.strm,m))!==y)throw new Error(c[C]);this._dict_set=!0}}function h(p,g){var C=new f(g);if(C.push(p,!0),C.err)throw C.msg||c[C.err];return C.result}f.prototype.push=function(p,g){var C,m,v=this.strm,N=this.options.chunkSize;if(this.ended)return!1;m=g===~~g?g:g===!0?4:0,typeof p=="string"?v.input=o.string2buf(p):x.call(p)==="[object ArrayBuffer]"?v.input=new Uint8Array(p):v.input=p,v.next_in=0,v.avail_in=v.input.length;do{if(v.avail_out===0&&(v.output=new a.Buf8(N),v.next_out=0,v.avail_out=N),(C=r.deflate(v,m))!==1&&C!==y)return this.onEnd(C),!(this.ended=!0);v.avail_out!==0&&(v.avail_in!==0||m!==4&&m!==2)||(this.options.to==="string"?this.onData(o.buf2binstring(a.shrinkBuf(v.output,v.next_out))):this.onData(a.shrinkBuf(v.output,v.next_out)))}while((0<v.avail_in||v.avail_out===0)&&C!==1);return m===4?(C=r.deflateEnd(this.strm),this.onEnd(C),this.ended=!0,C===y):m!==2||(this.onEnd(y),!(v.avail_out=0))},f.prototype.onData=function(p){this.chunks.push(p)},f.prototype.onEnd=function(p){p===y&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=p,this.msg=this.strm.msg},i.Deflate=f,i.deflate=h,i.deflateRaw=function(p,g){return(g=g||{}).raw=!0,h(p,g)},i.gzip=function(p,g){return(g=g||{}).gzip=!0,h(p,g)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(e,u,i){var r=e("./zlib/inflate"),a=e("./utils/common"),o=e("./utils/strings"),c=e("./zlib/constants"),k=e("./zlib/messages"),x=e("./zlib/zstream"),y=e("./zlib/gzheader"),_=Object.prototype.toString;function d(f){if(!(this instanceof d))return new d(f);this.options=a.assign({chunkSize:16384,windowBits:0,to:""},f||{});var h=this.options;h.raw&&0<=h.windowBits&&h.windowBits<16&&(h.windowBits=-h.windowBits,h.windowBits===0&&(h.windowBits=-15)),!(0<=h.windowBits&&h.windowBits<16)||f&&f.windowBits||(h.windowBits+=32),15<h.windowBits&&h.windowBits<48&&!(15&h.windowBits)&&(h.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new x,this.strm.avail_out=0;var p=r.inflateInit2(this.strm,h.windowBits);if(p!==c.Z_OK)throw new Error(k[p]);this.header=new y,r.inflateGetHeader(this.strm,this.header)}function b(f,h){var p=new d(h);if(p.push(f,!0),p.err)throw p.msg||k[p.err];return p.result}d.prototype.push=function(f,h){var p,g,C,m,v,N,A=this.strm,L=this.options.chunkSize,T=this.options.dictionary,W=!1;if(this.ended)return!1;g=h===~~h?h:h===!0?c.Z_FINISH:c.Z_NO_FLUSH,typeof f=="string"?A.input=o.binstring2buf(f):_.call(f)==="[object ArrayBuffer]"?A.input=new Uint8Array(f):A.input=f,A.next_in=0,A.avail_in=A.input.length;do{if(A.avail_out===0&&(A.output=new a.Buf8(L),A.next_out=0,A.avail_out=L),(p=r.inflate(A,c.Z_NO_FLUSH))===c.Z_NEED_DICT&&T&&(N=typeof T=="string"?o.string2buf(T):_.call(T)==="[object ArrayBuffer]"?new Uint8Array(T):T,p=r.inflateSetDictionary(this.strm,N)),p===c.Z_BUF_ERROR&&W===!0&&(p=c.Z_OK,W=!1),p!==c.Z_STREAM_END&&p!==c.Z_OK)return this.onEnd(p),!(this.ended=!0);A.next_out&&(A.avail_out!==0&&p!==c.Z_STREAM_END&&(A.avail_in!==0||g!==c.Z_FINISH&&g!==c.Z_SYNC_FLUSH)||(this.options.to==="string"?(C=o.utf8border(A.output,A.next_out),m=A.next_out-C,v=o.buf2string(A.output,C),A.next_out=m,A.avail_out=L-m,m&&a.arraySet(A.output,A.output,C,m,0),this.onData(v)):this.onData(a.shrinkBuf(A.output,A.next_out)))),A.avail_in===0&&A.avail_out===0&&(W=!0)}while((0<A.avail_in||A.avail_out===0)&&p!==c.Z_STREAM_END);return p===c.Z_STREAM_END&&(g=c.Z_FINISH),g===c.Z_FINISH?(p=r.inflateEnd(this.strm),this.onEnd(p),this.ended=!0,p===c.Z_OK):g!==c.Z_SYNC_FLUSH||(this.onEnd(c.Z_OK),!(A.avail_out=0))},d.prototype.onData=function(f){this.chunks.push(f)},d.prototype.onEnd=function(f){f===c.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=f,this.msg=this.strm.msg},i.Inflate=d,i.inflate=b,i.inflateRaw=function(f,h){return(h=h||{}).raw=!0,b(f,h)},i.ungzip=b},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(e,u,i){var r=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";i.assign=function(c){for(var k=Array.prototype.slice.call(arguments,1);k.length;){var x=k.shift();if(x){if(typeof x!="object")throw new TypeError(x+"must be non-object");for(var y in x)x.hasOwnProperty(y)&&(c[y]=x[y])}}return c},i.shrinkBuf=function(c,k){return c.length===k?c:c.subarray?c.subarray(0,k):(c.length=k,c)};var a={arraySet:function(c,k,x,y,_){if(k.subarray&&c.subarray)c.set(k.subarray(x,x+y),_);else for(var d=0;d<y;d++)c[_+d]=k[x+d]},flattenChunks:function(c){var k,x,y,_,d,b;for(k=y=0,x=c.length;k<x;k++)y+=c[k].length;for(b=new Uint8Array(y),k=_=0,x=c.length;k<x;k++)d=c[k],b.set(d,_),_+=d.length;return b}},o={arraySet:function(c,k,x,y,_){for(var d=0;d<y;d++)c[_+d]=k[x+d]},flattenChunks:function(c){return[].concat.apply([],c)}};i.setTyped=function(c){c?(i.Buf8=Uint8Array,i.Buf16=Uint16Array,i.Buf32=Int32Array,i.assign(i,a)):(i.Buf8=Array,i.Buf16=Array,i.Buf32=Array,i.assign(i,o))},i.setTyped(r)},{}],42:[function(e,u,i){var r=e("./common"),a=!0,o=!0;try{String.fromCharCode.apply(null,[0])}catch{a=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{o=!1}for(var c=new r.Buf8(256),k=0;k<256;k++)c[k]=252<=k?6:248<=k?5:240<=k?4:224<=k?3:192<=k?2:1;function x(y,_){if(_<65537&&(y.subarray&&o||!y.subarray&&a))return String.fromCharCode.apply(null,r.shrinkBuf(y,_));for(var d="",b=0;b<_;b++)d+=String.fromCharCode(y[b]);return d}c[254]=c[254]=1,i.string2buf=function(y){var _,d,b,f,h,p=y.length,g=0;for(f=0;f<p;f++)(64512&(d=y.charCodeAt(f)))==55296&&f+1<p&&(64512&(b=y.charCodeAt(f+1)))==56320&&(d=65536+(d-55296<<10)+(b-56320),f++),g+=d<128?1:d<2048?2:d<65536?3:4;for(_=new r.Buf8(g),f=h=0;h<g;f++)(64512&(d=y.charCodeAt(f)))==55296&&f+1<p&&(64512&(b=y.charCodeAt(f+1)))==56320&&(d=65536+(d-55296<<10)+(b-56320),f++),d<128?_[h++]=d:(d<2048?_[h++]=192|d>>>6:(d<65536?_[h++]=224|d>>>12:(_[h++]=240|d>>>18,_[h++]=128|d>>>12&63),_[h++]=128|d>>>6&63),_[h++]=128|63&d);return _},i.buf2binstring=function(y){return x(y,y.length)},i.binstring2buf=function(y){for(var _=new r.Buf8(y.length),d=0,b=_.length;d<b;d++)_[d]=y.charCodeAt(d);return _},i.buf2string=function(y,_){var d,b,f,h,p=_||y.length,g=new Array(2*p);for(d=b=0;d<p;)if((f=y[d++])<128)g[b++]=f;else if(4<(h=c[f]))g[b++]=65533,d+=h-1;else{for(f&=h===2?31:h===3?15:7;1<h&&d<p;)f=f<<6|63&y[d++],h--;1<h?g[b++]=65533:f<65536?g[b++]=f:(f-=65536,g[b++]=55296|f>>10&1023,g[b++]=56320|1023&f)}return x(g,b)},i.utf8border=function(y,_){var d;for((_=_||y.length)>y.length&&(_=y.length),d=_-1;0<=d&&(192&y[d])==128;)d--;return d<0||d===0?_:d+c[y[d]]>_?d:_}},{"./common":41}],43:[function(e,u,i){u.exports=function(r,a,o,c){for(var k=65535&r|0,x=r>>>16&65535|0,y=0;o!==0;){for(o-=y=2e3<o?2e3:o;x=x+(k=k+a[c++]|0)|0,--y;);k%=65521,x%=65521}return k|x<<16|0}},{}],44:[function(e,u,i){u.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,u,i){var r=function(){for(var a,o=[],c=0;c<256;c++){a=c;for(var k=0;k<8;k++)a=1&a?3988292384^a>>>1:a>>>1;o[c]=a}return o}();u.exports=function(a,o,c,k){var x=r,y=k+c;a^=-1;for(var _=k;_<y;_++)a=a>>>8^x[255&(a^o[_])];return-1^a}},{}],46:[function(e,u,i){var r,a=e("../utils/common"),o=e("./trees"),c=e("./adler32"),k=e("./crc32"),x=e("./messages"),y=0,_=4,d=0,b=-2,f=-1,h=4,p=2,g=8,C=9,m=286,v=30,N=19,A=2*m+1,L=15,T=3,W=258,Y=W+T+1,E=42,B=113,s=1,j=2,te=3,q=4;function ne(n,D){return n.msg=x[D],D}function U(n){return(n<<1)-(4<n?9:0)}function J(n){for(var D=n.length;0<=--D;)n[D]=0}function O(n){var D=n.state,$=D.pending;$>n.avail_out&&($=n.avail_out),$!==0&&(a.arraySet(n.output,D.pending_buf,D.pending_out,$,n.next_out),n.next_out+=$,D.pending_out+=$,n.total_out+=$,n.avail_out-=$,D.pending-=$,D.pending===0&&(D.pending_out=0))}function R(n,D){o._tr_flush_block(n,0<=n.block_start?n.block_start:-1,n.strstart-n.block_start,D),n.block_start=n.strstart,O(n.strm)}function Q(n,D){n.pending_buf[n.pending++]=D}function V(n,D){n.pending_buf[n.pending++]=D>>>8&255,n.pending_buf[n.pending++]=255&D}function G(n,D){var $,S,w=n.max_chain_length,I=n.strstart,P=n.prev_length,F=n.nice_match,z=n.strstart>n.w_size-Y?n.strstart-(n.w_size-Y):0,Z=n.window,X=n.w_mask,H=n.prev,ee=n.strstart+W,ce=Z[I+P-1],ae=Z[I+P];n.prev_length>=n.good_match&&(w>>=2),F>n.lookahead&&(F=n.lookahead);do if(Z[($=D)+P]===ae&&Z[$+P-1]===ce&&Z[$]===Z[I]&&Z[++$]===Z[I+1]){I+=2,$++;do;while(Z[++I]===Z[++$]&&Z[++I]===Z[++$]&&Z[++I]===Z[++$]&&Z[++I]===Z[++$]&&Z[++I]===Z[++$]&&Z[++I]===Z[++$]&&Z[++I]===Z[++$]&&Z[++I]===Z[++$]&&I<ee);if(S=W-(ee-I),I=ee-W,P<S){if(n.match_start=D,F<=(P=S))break;ce=Z[I+P-1],ae=Z[I+P]}}while((D=H[D&X])>z&&--w!=0);return P<=n.lookahead?P:n.lookahead}function de(n){var D,$,S,w,I,P,F,z,Z,X,H=n.w_size;do{if(w=n.window_size-n.lookahead-n.strstart,n.strstart>=H+(H-Y)){for(a.arraySet(n.window,n.window,H,H,0),n.match_start-=H,n.strstart-=H,n.block_start-=H,D=$=n.hash_size;S=n.head[--D],n.head[D]=H<=S?S-H:0,--$;);for(D=$=H;S=n.prev[--D],n.prev[D]=H<=S?S-H:0,--$;);w+=H}if(n.strm.avail_in===0)break;if(P=n.strm,F=n.window,z=n.strstart+n.lookahead,Z=w,X=void 0,X=P.avail_in,Z<X&&(X=Z),$=X===0?0:(P.avail_in-=X,a.arraySet(F,P.input,P.next_in,X,z),P.state.wrap===1?P.adler=c(P.adler,F,X,z):P.state.wrap===2&&(P.adler=k(P.adler,F,X,z)),P.next_in+=X,P.total_in+=X,X),n.lookahead+=$,n.lookahead+n.insert>=T)for(I=n.strstart-n.insert,n.ins_h=n.window[I],n.ins_h=(n.ins_h<<n.hash_shift^n.window[I+1])&n.hash_mask;n.insert&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[I+T-1])&n.hash_mask,n.prev[I&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=I,I++,n.insert--,!(n.lookahead+n.insert<T)););}while(n.lookahead<Y&&n.strm.avail_in!==0)}function be(n,D){for(var $,S;;){if(n.lookahead<Y){if(de(n),n.lookahead<Y&&D===y)return s;if(n.lookahead===0)break}if($=0,n.lookahead>=T&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+T-1])&n.hash_mask,$=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),$!==0&&n.strstart-$<=n.w_size-Y&&(n.match_length=G(n,$)),n.match_length>=T)if(S=o._tr_tally(n,n.strstart-n.match_start,n.match_length-T),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=T){for(n.match_length--;n.strstart++,n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+T-1])&n.hash_mask,$=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart,--n.match_length!=0;);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+1])&n.hash_mask;else S=o._tr_tally(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(S&&(R(n,!1),n.strm.avail_out===0))return s}return n.insert=n.strstart<T-1?n.strstart:T-1,D===_?(R(n,!0),n.strm.avail_out===0?te:q):n.last_lit&&(R(n,!1),n.strm.avail_out===0)?s:j}function oe(n,D){for(var $,S,w;;){if(n.lookahead<Y){if(de(n),n.lookahead<Y&&D===y)return s;if(n.lookahead===0)break}if($=0,n.lookahead>=T&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+T-1])&n.hash_mask,$=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=T-1,$!==0&&n.prev_length<n.max_lazy_match&&n.strstart-$<=n.w_size-Y&&(n.match_length=G(n,$),n.match_length<=5&&(n.strategy===1||n.match_length===T&&4096<n.strstart-n.match_start)&&(n.match_length=T-1)),n.prev_length>=T&&n.match_length<=n.prev_length){for(w=n.strstart+n.lookahead-T,S=o._tr_tally(n,n.strstart-1-n.prev_match,n.prev_length-T),n.lookahead-=n.prev_length-1,n.prev_length-=2;++n.strstart<=w&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+T-1])&n.hash_mask,$=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),--n.prev_length!=0;);if(n.match_available=0,n.match_length=T-1,n.strstart++,S&&(R(n,!1),n.strm.avail_out===0))return s}else if(n.match_available){if((S=o._tr_tally(n,0,n.window[n.strstart-1]))&&R(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return s}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(S=o._tr_tally(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<T-1?n.strstart:T-1,D===_?(R(n,!0),n.strm.avail_out===0?te:q):n.last_lit&&(R(n,!1),n.strm.avail_out===0)?s:j}function se(n,D,$,S,w){this.good_length=n,this.max_lazy=D,this.nice_length=$,this.max_chain=S,this.func=w}function ye(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=g,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new a.Buf16(2*A),this.dyn_dtree=new a.Buf16(2*(2*v+1)),this.bl_tree=new a.Buf16(2*(2*N+1)),J(this.dyn_ltree),J(this.dyn_dtree),J(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new a.Buf16(L+1),this.heap=new a.Buf16(2*m+1),J(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new a.Buf16(2*m+1),J(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function fe(n){var D;return n&&n.state?(n.total_in=n.total_out=0,n.data_type=p,(D=n.state).pending=0,D.pending_out=0,D.wrap<0&&(D.wrap=-D.wrap),D.status=D.wrap?E:B,n.adler=D.wrap===2?0:1,D.last_flush=y,o._tr_init(D),d):ne(n,b)}function ze(n){var D=fe(n);return D===d&&function($){$.window_size=2*$.w_size,J($.head),$.max_lazy_match=r[$.level].max_lazy,$.good_match=r[$.level].good_length,$.nice_match=r[$.level].nice_length,$.max_chain_length=r[$.level].max_chain,$.strstart=0,$.block_start=0,$.lookahead=0,$.insert=0,$.match_length=$.prev_length=T-1,$.match_available=0,$.ins_h=0}(n.state),D}function Ae(n,D,$,S,w,I){if(!n)return b;var P=1;if(D===f&&(D=6),S<0?(P=0,S=-S):15<S&&(P=2,S-=16),w<1||C<w||$!==g||S<8||15<S||D<0||9<D||I<0||h<I)return ne(n,b);S===8&&(S=9);var F=new ye;return(n.state=F).strm=n,F.wrap=P,F.gzhead=null,F.w_bits=S,F.w_size=1<<F.w_bits,F.w_mask=F.w_size-1,F.hash_bits=w+7,F.hash_size=1<<F.hash_bits,F.hash_mask=F.hash_size-1,F.hash_shift=~~((F.hash_bits+T-1)/T),F.window=new a.Buf8(2*F.w_size),F.head=new a.Buf16(F.hash_size),F.prev=new a.Buf16(F.w_size),F.lit_bufsize=1<<w+6,F.pending_buf_size=4*F.lit_bufsize,F.pending_buf=new a.Buf8(F.pending_buf_size),F.d_buf=1*F.lit_bufsize,F.l_buf=3*F.lit_bufsize,F.level=D,F.strategy=I,F.method=$,ze(n)}r=[new se(0,0,0,0,function(n,D){var $=65535;for($>n.pending_buf_size-5&&($=n.pending_buf_size-5);;){if(n.lookahead<=1){if(de(n),n.lookahead===0&&D===y)return s;if(n.lookahead===0)break}n.strstart+=n.lookahead,n.lookahead=0;var S=n.block_start+$;if((n.strstart===0||n.strstart>=S)&&(n.lookahead=n.strstart-S,n.strstart=S,R(n,!1),n.strm.avail_out===0)||n.strstart-n.block_start>=n.w_size-Y&&(R(n,!1),n.strm.avail_out===0))return s}return n.insert=0,D===_?(R(n,!0),n.strm.avail_out===0?te:q):(n.strstart>n.block_start&&(R(n,!1),n.strm.avail_out),s)}),new se(4,4,8,4,be),new se(4,5,16,8,be),new se(4,6,32,32,be),new se(4,4,16,16,oe),new se(8,16,32,32,oe),new se(8,16,128,128,oe),new se(8,32,128,256,oe),new se(32,128,258,1024,oe),new se(32,258,258,4096,oe)],i.deflateInit=function(n,D){return Ae(n,D,g,15,8,0)},i.deflateInit2=Ae,i.deflateReset=ze,i.deflateResetKeep=fe,i.deflateSetHeader=function(n,D){return n&&n.state?n.state.wrap!==2?b:(n.state.gzhead=D,d):b},i.deflate=function(n,D){var $,S,w,I;if(!n||!n.state||5<D||D<0)return n?ne(n,b):b;if(S=n.state,!n.output||!n.input&&n.avail_in!==0||S.status===666&&D!==_)return ne(n,n.avail_out===0?-5:b);if(S.strm=n,$=S.last_flush,S.last_flush=D,S.status===E)if(S.wrap===2)n.adler=0,Q(S,31),Q(S,139),Q(S,8),S.gzhead?(Q(S,(S.gzhead.text?1:0)+(S.gzhead.hcrc?2:0)+(S.gzhead.extra?4:0)+(S.gzhead.name?8:0)+(S.gzhead.comment?16:0)),Q(S,255&S.gzhead.time),Q(S,S.gzhead.time>>8&255),Q(S,S.gzhead.time>>16&255),Q(S,S.gzhead.time>>24&255),Q(S,S.level===9?2:2<=S.strategy||S.level<2?4:0),Q(S,255&S.gzhead.os),S.gzhead.extra&&S.gzhead.extra.length&&(Q(S,255&S.gzhead.extra.length),Q(S,S.gzhead.extra.length>>8&255)),S.gzhead.hcrc&&(n.adler=k(n.adler,S.pending_buf,S.pending,0)),S.gzindex=0,S.status=69):(Q(S,0),Q(S,0),Q(S,0),Q(S,0),Q(S,0),Q(S,S.level===9?2:2<=S.strategy||S.level<2?4:0),Q(S,3),S.status=B);else{var P=g+(S.w_bits-8<<4)<<8;P|=(2<=S.strategy||S.level<2?0:S.level<6?1:S.level===6?2:3)<<6,S.strstart!==0&&(P|=32),P+=31-P%31,S.status=B,V(S,P),S.strstart!==0&&(V(S,n.adler>>>16),V(S,65535&n.adler)),n.adler=1}if(S.status===69)if(S.gzhead.extra){for(w=S.pending;S.gzindex<(65535&S.gzhead.extra.length)&&(S.pending!==S.pending_buf_size||(S.gzhead.hcrc&&S.pending>w&&(n.adler=k(n.adler,S.pending_buf,S.pending-w,w)),O(n),w=S.pending,S.pending!==S.pending_buf_size));)Q(S,255&S.gzhead.extra[S.gzindex]),S.gzindex++;S.gzhead.hcrc&&S.pending>w&&(n.adler=k(n.adler,S.pending_buf,S.pending-w,w)),S.gzindex===S.gzhead.extra.length&&(S.gzindex=0,S.status=73)}else S.status=73;if(S.status===73)if(S.gzhead.name){w=S.pending;do{if(S.pending===S.pending_buf_size&&(S.gzhead.hcrc&&S.pending>w&&(n.adler=k(n.adler,S.pending_buf,S.pending-w,w)),O(n),w=S.pending,S.pending===S.pending_buf_size)){I=1;break}I=S.gzindex<S.gzhead.name.length?255&S.gzhead.name.charCodeAt(S.gzindex++):0,Q(S,I)}while(I!==0);S.gzhead.hcrc&&S.pending>w&&(n.adler=k(n.adler,S.pending_buf,S.pending-w,w)),I===0&&(S.gzindex=0,S.status=91)}else S.status=91;if(S.status===91)if(S.gzhead.comment){w=S.pending;do{if(S.pending===S.pending_buf_size&&(S.gzhead.hcrc&&S.pending>w&&(n.adler=k(n.adler,S.pending_buf,S.pending-w,w)),O(n),w=S.pending,S.pending===S.pending_buf_size)){I=1;break}I=S.gzindex<S.gzhead.comment.length?255&S.gzhead.comment.charCodeAt(S.gzindex++):0,Q(S,I)}while(I!==0);S.gzhead.hcrc&&S.pending>w&&(n.adler=k(n.adler,S.pending_buf,S.pending-w,w)),I===0&&(S.status=103)}else S.status=103;if(S.status===103&&(S.gzhead.hcrc?(S.pending+2>S.pending_buf_size&&O(n),S.pending+2<=S.pending_buf_size&&(Q(S,255&n.adler),Q(S,n.adler>>8&255),n.adler=0,S.status=B)):S.status=B),S.pending!==0){if(O(n),n.avail_out===0)return S.last_flush=-1,d}else if(n.avail_in===0&&U(D)<=U($)&&D!==_)return ne(n,-5);if(S.status===666&&n.avail_in!==0)return ne(n,-5);if(n.avail_in!==0||S.lookahead!==0||D!==y&&S.status!==666){var F=S.strategy===2?function(z,Z){for(var X;;){if(z.lookahead===0&&(de(z),z.lookahead===0)){if(Z===y)return s;break}if(z.match_length=0,X=o._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++,X&&(R(z,!1),z.strm.avail_out===0))return s}return z.insert=0,Z===_?(R(z,!0),z.strm.avail_out===0?te:q):z.last_lit&&(R(z,!1),z.strm.avail_out===0)?s:j}(S,D):S.strategy===3?function(z,Z){for(var X,H,ee,ce,ae=z.window;;){if(z.lookahead<=W){if(de(z),z.lookahead<=W&&Z===y)return s;if(z.lookahead===0)break}if(z.match_length=0,z.lookahead>=T&&0<z.strstart&&(H=ae[ee=z.strstart-1])===ae[++ee]&&H===ae[++ee]&&H===ae[++ee]){ce=z.strstart+W;do;while(H===ae[++ee]&&H===ae[++ee]&&H===ae[++ee]&&H===ae[++ee]&&H===ae[++ee]&&H===ae[++ee]&&H===ae[++ee]&&H===ae[++ee]&&ee<ce);z.match_length=W-(ce-ee),z.match_length>z.lookahead&&(z.match_length=z.lookahead)}if(z.match_length>=T?(X=o._tr_tally(z,1,z.match_length-T),z.lookahead-=z.match_length,z.strstart+=z.match_length,z.match_length=0):(X=o._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++),X&&(R(z,!1),z.strm.avail_out===0))return s}return z.insert=0,Z===_?(R(z,!0),z.strm.avail_out===0?te:q):z.last_lit&&(R(z,!1),z.strm.avail_out===0)?s:j}(S,D):r[S.level].func(S,D);if(F!==te&&F!==q||(S.status=666),F===s||F===te)return n.avail_out===0&&(S.last_flush=-1),d;if(F===j&&(D===1?o._tr_align(S):D!==5&&(o._tr_stored_block(S,0,0,!1),D===3&&(J(S.head),S.lookahead===0&&(S.strstart=0,S.block_start=0,S.insert=0))),O(n),n.avail_out===0))return S.last_flush=-1,d}return D!==_?d:S.wrap<=0?1:(S.wrap===2?(Q(S,255&n.adler),Q(S,n.adler>>8&255),Q(S,n.adler>>16&255),Q(S,n.adler>>24&255),Q(S,255&n.total_in),Q(S,n.total_in>>8&255),Q(S,n.total_in>>16&255),Q(S,n.total_in>>24&255)):(V(S,n.adler>>>16),V(S,65535&n.adler)),O(n),0<S.wrap&&(S.wrap=-S.wrap),S.pending!==0?d:1)},i.deflateEnd=function(n){var D;return n&&n.state?(D=n.state.status)!==E&&D!==69&&D!==73&&D!==91&&D!==103&&D!==B&&D!==666?ne(n,b):(n.state=null,D===B?ne(n,-3):d):b},i.deflateSetDictionary=function(n,D){var $,S,w,I,P,F,z,Z,X=D.length;if(!n||!n.state||(I=($=n.state).wrap)===2||I===1&&$.status!==E||$.lookahead)return b;for(I===1&&(n.adler=c(n.adler,D,X,0)),$.wrap=0,X>=$.w_size&&(I===0&&(J($.head),$.strstart=0,$.block_start=0,$.insert=0),Z=new a.Buf8($.w_size),a.arraySet(Z,D,X-$.w_size,$.w_size,0),D=Z,X=$.w_size),P=n.avail_in,F=n.next_in,z=n.input,n.avail_in=X,n.next_in=0,n.input=D,de($);$.lookahead>=T;){for(S=$.strstart,w=$.lookahead-(T-1);$.ins_h=($.ins_h<<$.hash_shift^$.window[S+T-1])&$.hash_mask,$.prev[S&$.w_mask]=$.head[$.ins_h],$.head[$.ins_h]=S,S++,--w;);$.strstart=S,$.lookahead=T-1,de($)}return $.strstart+=$.lookahead,$.block_start=$.strstart,$.insert=$.lookahead,$.lookahead=0,$.match_length=$.prev_length=T-1,$.match_available=0,n.next_in=F,n.input=z,n.avail_in=P,$.wrap=I,d},i.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(e,u,i){u.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(e,u,i){u.exports=function(r,a){var o,c,k,x,y,_,d,b,f,h,p,g,C,m,v,N,A,L,T,W,Y,E,B,s,j;o=r.state,c=r.next_in,s=r.input,k=c+(r.avail_in-5),x=r.next_out,j=r.output,y=x-(a-r.avail_out),_=x+(r.avail_out-257),d=o.dmax,b=o.wsize,f=o.whave,h=o.wnext,p=o.window,g=o.hold,C=o.bits,m=o.lencode,v=o.distcode,N=(1<<o.lenbits)-1,A=(1<<o.distbits)-1;e:do{C<15&&(g+=s[c++]<<C,C+=8,g+=s[c++]<<C,C+=8),L=m[g&N];t:for(;;){if(g>>>=T=L>>>24,C-=T,(T=L>>>16&255)===0)j[x++]=65535&L;else{if(!(16&T)){if(!(64&T)){L=m[(65535&L)+(g&(1<<T)-1)];continue t}if(32&T){o.mode=12;break e}r.msg="invalid literal/length code",o.mode=30;break e}W=65535&L,(T&=15)&&(C<T&&(g+=s[c++]<<C,C+=8),W+=g&(1<<T)-1,g>>>=T,C-=T),C<15&&(g+=s[c++]<<C,C+=8,g+=s[c++]<<C,C+=8),L=v[g&A];n:for(;;){if(g>>>=T=L>>>24,C-=T,!(16&(T=L>>>16&255))){if(!(64&T)){L=v[(65535&L)+(g&(1<<T)-1)];continue n}r.msg="invalid distance code",o.mode=30;break e}if(Y=65535&L,C<(T&=15)&&(g+=s[c++]<<C,(C+=8)<T&&(g+=s[c++]<<C,C+=8)),d<(Y+=g&(1<<T)-1)){r.msg="invalid distance too far back",o.mode=30;break e}if(g>>>=T,C-=T,(T=x-y)<Y){if(f<(T=Y-T)&&o.sane){r.msg="invalid distance too far back",o.mode=30;break e}if(B=p,(E=0)===h){if(E+=b-T,T<W){for(W-=T;j[x++]=p[E++],--T;);E=x-Y,B=j}}else if(h<T){if(E+=b+h-T,(T-=h)<W){for(W-=T;j[x++]=p[E++],--T;);if(E=0,h<W){for(W-=T=h;j[x++]=p[E++],--T;);E=x-Y,B=j}}}else if(E+=h-T,T<W){for(W-=T;j[x++]=p[E++],--T;);E=x-Y,B=j}for(;2<W;)j[x++]=B[E++],j[x++]=B[E++],j[x++]=B[E++],W-=3;W&&(j[x++]=B[E++],1<W&&(j[x++]=B[E++]))}else{for(E=x-Y;j[x++]=j[E++],j[x++]=j[E++],j[x++]=j[E++],2<(W-=3););W&&(j[x++]=j[E++],1<W&&(j[x++]=j[E++]))}break}}break}}while(c<k&&x<_);c-=W=C>>3,g&=(1<<(C-=W<<3))-1,r.next_in=c,r.next_out=x,r.avail_in=c<k?k-c+5:5-(c-k),r.avail_out=x<_?_-x+257:257-(x-_),o.hold=g,o.bits=C}},{}],49:[function(e,u,i){var r=e("../utils/common"),a=e("./adler32"),o=e("./crc32"),c=e("./inffast"),k=e("./inftrees"),x=1,y=2,_=0,d=-2,b=1,f=852,h=592;function p(E){return(E>>>24&255)+(E>>>8&65280)+((65280&E)<<8)+((255&E)<<24)}function g(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function C(E){var B;return E&&E.state?(B=E.state,E.total_in=E.total_out=B.total=0,E.msg="",B.wrap&&(E.adler=1&B.wrap),B.mode=b,B.last=0,B.havedict=0,B.dmax=32768,B.head=null,B.hold=0,B.bits=0,B.lencode=B.lendyn=new r.Buf32(f),B.distcode=B.distdyn=new r.Buf32(h),B.sane=1,B.back=-1,_):d}function m(E){var B;return E&&E.state?((B=E.state).wsize=0,B.whave=0,B.wnext=0,C(E)):d}function v(E,B){var s,j;return E&&E.state?(j=E.state,B<0?(s=0,B=-B):(s=1+(B>>4),B<48&&(B&=15)),B&&(B<8||15<B)?d:(j.window!==null&&j.wbits!==B&&(j.window=null),j.wrap=s,j.wbits=B,m(E))):d}function N(E,B){var s,j;return E?(j=new g,(E.state=j).window=null,(s=v(E,B))!==_&&(E.state=null),s):d}var A,L,T=!0;function W(E){if(T){var B;for(A=new r.Buf32(512),L=new r.Buf32(32),B=0;B<144;)E.lens[B++]=8;for(;B<256;)E.lens[B++]=9;for(;B<280;)E.lens[B++]=7;for(;B<288;)E.lens[B++]=8;for(k(x,E.lens,0,288,A,0,E.work,{bits:9}),B=0;B<32;)E.lens[B++]=5;k(y,E.lens,0,32,L,0,E.work,{bits:5}),T=!1}E.lencode=A,E.lenbits=9,E.distcode=L,E.distbits=5}function Y(E,B,s,j){var te,q=E.state;return q.window===null&&(q.wsize=1<<q.wbits,q.wnext=0,q.whave=0,q.window=new r.Buf8(q.wsize)),j>=q.wsize?(r.arraySet(q.window,B,s-q.wsize,q.wsize,0),q.wnext=0,q.whave=q.wsize):(j<(te=q.wsize-q.wnext)&&(te=j),r.arraySet(q.window,B,s-j,te,q.wnext),(j-=te)?(r.arraySet(q.window,B,s-j,j,0),q.wnext=j,q.whave=q.wsize):(q.wnext+=te,q.wnext===q.wsize&&(q.wnext=0),q.whave<q.wsize&&(q.whave+=te))),0}i.inflateReset=m,i.inflateReset2=v,i.inflateResetKeep=C,i.inflateInit=function(E){return N(E,15)},i.inflateInit2=N,i.inflate=function(E,B){var s,j,te,q,ne,U,J,O,R,Q,V,G,de,be,oe,se,ye,fe,ze,Ae,n,D,$,S,w=0,I=new r.Buf8(4),P=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!E||!E.state||!E.output||!E.input&&E.avail_in!==0)return d;(s=E.state).mode===12&&(s.mode=13),ne=E.next_out,te=E.output,J=E.avail_out,q=E.next_in,j=E.input,U=E.avail_in,O=s.hold,R=s.bits,Q=U,V=J,D=_;e:for(;;)switch(s.mode){case b:if(s.wrap===0){s.mode=13;break}for(;R<16;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}if(2&s.wrap&&O===35615){I[s.check=0]=255&O,I[1]=O>>>8&255,s.check=o(s.check,I,2,0),R=O=0,s.mode=2;break}if(s.flags=0,s.head&&(s.head.done=!1),!(1&s.wrap)||(((255&O)<<8)+(O>>8))%31){E.msg="incorrect header check",s.mode=30;break}if((15&O)!=8){E.msg="unknown compression method",s.mode=30;break}if(R-=4,n=8+(15&(O>>>=4)),s.wbits===0)s.wbits=n;else if(n>s.wbits){E.msg="invalid window size",s.mode=30;break}s.dmax=1<<n,E.adler=s.check=1,s.mode=512&O?10:12,R=O=0;break;case 2:for(;R<16;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}if(s.flags=O,(255&s.flags)!=8){E.msg="unknown compression method",s.mode=30;break}if(57344&s.flags){E.msg="unknown header flags set",s.mode=30;break}s.head&&(s.head.text=O>>8&1),512&s.flags&&(I[0]=255&O,I[1]=O>>>8&255,s.check=o(s.check,I,2,0)),R=O=0,s.mode=3;case 3:for(;R<32;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}s.head&&(s.head.time=O),512&s.flags&&(I[0]=255&O,I[1]=O>>>8&255,I[2]=O>>>16&255,I[3]=O>>>24&255,s.check=o(s.check,I,4,0)),R=O=0,s.mode=4;case 4:for(;R<16;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}s.head&&(s.head.xflags=255&O,s.head.os=O>>8),512&s.flags&&(I[0]=255&O,I[1]=O>>>8&255,s.check=o(s.check,I,2,0)),R=O=0,s.mode=5;case 5:if(1024&s.flags){for(;R<16;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}s.length=O,s.head&&(s.head.extra_len=O),512&s.flags&&(I[0]=255&O,I[1]=O>>>8&255,s.check=o(s.check,I,2,0)),R=O=0}else s.head&&(s.head.extra=null);s.mode=6;case 6:if(1024&s.flags&&(U<(G=s.length)&&(G=U),G&&(s.head&&(n=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Array(s.head.extra_len)),r.arraySet(s.head.extra,j,q,G,n)),512&s.flags&&(s.check=o(s.check,j,G,q)),U-=G,q+=G,s.length-=G),s.length))break e;s.length=0,s.mode=7;case 7:if(2048&s.flags){if(U===0)break e;for(G=0;n=j[q+G++],s.head&&n&&s.length<65536&&(s.head.name+=String.fromCharCode(n)),n&&G<U;);if(512&s.flags&&(s.check=o(s.check,j,G,q)),U-=G,q+=G,n)break e}else s.head&&(s.head.name=null);s.length=0,s.mode=8;case 8:if(4096&s.flags){if(U===0)break e;for(G=0;n=j[q+G++],s.head&&n&&s.length<65536&&(s.head.comment+=String.fromCharCode(n)),n&&G<U;);if(512&s.flags&&(s.check=o(s.check,j,G,q)),U-=G,q+=G,n)break e}else s.head&&(s.head.comment=null);s.mode=9;case 9:if(512&s.flags){for(;R<16;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}if(O!==(65535&s.check)){E.msg="header crc mismatch",s.mode=30;break}R=O=0}s.head&&(s.head.hcrc=s.flags>>9&1,s.head.done=!0),E.adler=s.check=0,s.mode=12;break;case 10:for(;R<32;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}E.adler=s.check=p(O),R=O=0,s.mode=11;case 11:if(s.havedict===0)return E.next_out=ne,E.avail_out=J,E.next_in=q,E.avail_in=U,s.hold=O,s.bits=R,2;E.adler=s.check=1,s.mode=12;case 12:if(B===5||B===6)break e;case 13:if(s.last){O>>>=7&R,R-=7&R,s.mode=27;break}for(;R<3;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}switch(s.last=1&O,R-=1,3&(O>>>=1)){case 0:s.mode=14;break;case 1:if(W(s),s.mode=20,B!==6)break;O>>>=2,R-=2;break e;case 2:s.mode=17;break;case 3:E.msg="invalid block type",s.mode=30}O>>>=2,R-=2;break;case 14:for(O>>>=7&R,R-=7&R;R<32;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}if((65535&O)!=(O>>>16^65535)){E.msg="invalid stored block lengths",s.mode=30;break}if(s.length=65535&O,R=O=0,s.mode=15,B===6)break e;case 15:s.mode=16;case 16:if(G=s.length){if(U<G&&(G=U),J<G&&(G=J),G===0)break e;r.arraySet(te,j,q,G,ne),U-=G,q+=G,J-=G,ne+=G,s.length-=G;break}s.mode=12;break;case 17:for(;R<14;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}if(s.nlen=257+(31&O),O>>>=5,R-=5,s.ndist=1+(31&O),O>>>=5,R-=5,s.ncode=4+(15&O),O>>>=4,R-=4,286<s.nlen||30<s.ndist){E.msg="too many length or distance symbols",s.mode=30;break}s.have=0,s.mode=18;case 18:for(;s.have<s.ncode;){for(;R<3;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}s.lens[P[s.have++]]=7&O,O>>>=3,R-=3}for(;s.have<19;)s.lens[P[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,$={bits:s.lenbits},D=k(0,s.lens,0,19,s.lencode,0,s.work,$),s.lenbits=$.bits,D){E.msg="invalid code lengths set",s.mode=30;break}s.have=0,s.mode=19;case 19:for(;s.have<s.nlen+s.ndist;){for(;se=(w=s.lencode[O&(1<<s.lenbits)-1])>>>16&255,ye=65535&w,!((oe=w>>>24)<=R);){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}if(ye<16)O>>>=oe,R-=oe,s.lens[s.have++]=ye;else{if(ye===16){for(S=oe+2;R<S;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}if(O>>>=oe,R-=oe,s.have===0){E.msg="invalid bit length repeat",s.mode=30;break}n=s.lens[s.have-1],G=3+(3&O),O>>>=2,R-=2}else if(ye===17){for(S=oe+3;R<S;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}R-=oe,n=0,G=3+(7&(O>>>=oe)),O>>>=3,R-=3}else{for(S=oe+7;R<S;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}R-=oe,n=0,G=11+(127&(O>>>=oe)),O>>>=7,R-=7}if(s.have+G>s.nlen+s.ndist){E.msg="invalid bit length repeat",s.mode=30;break}for(;G--;)s.lens[s.have++]=n}}if(s.mode===30)break;if(s.lens[256]===0){E.msg="invalid code -- missing end-of-block",s.mode=30;break}if(s.lenbits=9,$={bits:s.lenbits},D=k(x,s.lens,0,s.nlen,s.lencode,0,s.work,$),s.lenbits=$.bits,D){E.msg="invalid literal/lengths set",s.mode=30;break}if(s.distbits=6,s.distcode=s.distdyn,$={bits:s.distbits},D=k(y,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,$),s.distbits=$.bits,D){E.msg="invalid distances set",s.mode=30;break}if(s.mode=20,B===6)break e;case 20:s.mode=21;case 21:if(6<=U&&258<=J){E.next_out=ne,E.avail_out=J,E.next_in=q,E.avail_in=U,s.hold=O,s.bits=R,c(E,V),ne=E.next_out,te=E.output,J=E.avail_out,q=E.next_in,j=E.input,U=E.avail_in,O=s.hold,R=s.bits,s.mode===12&&(s.back=-1);break}for(s.back=0;se=(w=s.lencode[O&(1<<s.lenbits)-1])>>>16&255,ye=65535&w,!((oe=w>>>24)<=R);){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}if(se&&!(240&se)){for(fe=oe,ze=se,Ae=ye;se=(w=s.lencode[Ae+((O&(1<<fe+ze)-1)>>fe)])>>>16&255,ye=65535&w,!(fe+(oe=w>>>24)<=R);){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}O>>>=fe,R-=fe,s.back+=fe}if(O>>>=oe,R-=oe,s.back+=oe,s.length=ye,se===0){s.mode=26;break}if(32&se){s.back=-1,s.mode=12;break}if(64&se){E.msg="invalid literal/length code",s.mode=30;break}s.extra=15&se,s.mode=22;case 22:if(s.extra){for(S=s.extra;R<S;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}s.length+=O&(1<<s.extra)-1,O>>>=s.extra,R-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=23;case 23:for(;se=(w=s.distcode[O&(1<<s.distbits)-1])>>>16&255,ye=65535&w,!((oe=w>>>24)<=R);){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}if(!(240&se)){for(fe=oe,ze=se,Ae=ye;se=(w=s.distcode[Ae+((O&(1<<fe+ze)-1)>>fe)])>>>16&255,ye=65535&w,!(fe+(oe=w>>>24)<=R);){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}O>>>=fe,R-=fe,s.back+=fe}if(O>>>=oe,R-=oe,s.back+=oe,64&se){E.msg="invalid distance code",s.mode=30;break}s.offset=ye,s.extra=15&se,s.mode=24;case 24:if(s.extra){for(S=s.extra;R<S;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}s.offset+=O&(1<<s.extra)-1,O>>>=s.extra,R-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){E.msg="invalid distance too far back",s.mode=30;break}s.mode=25;case 25:if(J===0)break e;if(G=V-J,s.offset>G){if((G=s.offset-G)>s.whave&&s.sane){E.msg="invalid distance too far back",s.mode=30;break}de=G>s.wnext?(G-=s.wnext,s.wsize-G):s.wnext-G,G>s.length&&(G=s.length),be=s.window}else be=te,de=ne-s.offset,G=s.length;for(J<G&&(G=J),J-=G,s.length-=G;te[ne++]=be[de++],--G;);s.length===0&&(s.mode=21);break;case 26:if(J===0)break e;te[ne++]=s.length,J--,s.mode=21;break;case 27:if(s.wrap){for(;R<32;){if(U===0)break e;U--,O|=j[q++]<<R,R+=8}if(V-=J,E.total_out+=V,s.total+=V,V&&(E.adler=s.check=s.flags?o(s.check,te,V,ne-V):a(s.check,te,V,ne-V)),V=J,(s.flags?O:p(O))!==s.check){E.msg="incorrect data check",s.mode=30;break}R=O=0}s.mode=28;case 28:if(s.wrap&&s.flags){for(;R<32;){if(U===0)break e;U--,O+=j[q++]<<R,R+=8}if(O!==(4294967295&s.total)){E.msg="incorrect length check",s.mode=30;break}R=O=0}s.mode=29;case 29:D=1;break e;case 30:D=-3;break e;case 31:return-4;case 32:default:return d}return E.next_out=ne,E.avail_out=J,E.next_in=q,E.avail_in=U,s.hold=O,s.bits=R,(s.wsize||V!==E.avail_out&&s.mode<30&&(s.mode<27||B!==4))&&Y(E,E.output,E.next_out,V-E.avail_out)?(s.mode=31,-4):(Q-=E.avail_in,V-=E.avail_out,E.total_in+=Q,E.total_out+=V,s.total+=V,s.wrap&&V&&(E.adler=s.check=s.flags?o(s.check,te,V,E.next_out-V):a(s.check,te,V,E.next_out-V)),E.data_type=s.bits+(s.last?64:0)+(s.mode===12?128:0)+(s.mode===20||s.mode===15?256:0),(Q==0&&V===0||B===4)&&D===_&&(D=-5),D)},i.inflateEnd=function(E){if(!E||!E.state)return d;var B=E.state;return B.window&&(B.window=null),E.state=null,_},i.inflateGetHeader=function(E,B){var s;return E&&E.state&&2&(s=E.state).wrap?((s.head=B).done=!1,_):d},i.inflateSetDictionary=function(E,B){var s,j=B.length;return E&&E.state?(s=E.state).wrap!==0&&s.mode!==11?d:s.mode===11&&a(1,B,j,0)!==s.check?-3:Y(E,B,j,j)?(s.mode=31,-4):(s.havedict=1,_):d},i.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(e,u,i){var r=e("../utils/common"),a=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],o=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],c=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],k=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];u.exports=function(x,y,_,d,b,f,h,p){var g,C,m,v,N,A,L,T,W,Y=p.bits,E=0,B=0,s=0,j=0,te=0,q=0,ne=0,U=0,J=0,O=0,R=null,Q=0,V=new r.Buf16(16),G=new r.Buf16(16),de=null,be=0;for(E=0;E<=15;E++)V[E]=0;for(B=0;B<d;B++)V[y[_+B]]++;for(te=Y,j=15;1<=j&&V[j]===0;j--);if(j<te&&(te=j),j===0)return b[f++]=20971520,b[f++]=20971520,p.bits=1,0;for(s=1;s<j&&V[s]===0;s++);for(te<s&&(te=s),E=U=1;E<=15;E++)if(U<<=1,(U-=V[E])<0)return-1;if(0<U&&(x===0||j!==1))return-1;for(G[1]=0,E=1;E<15;E++)G[E+1]=G[E]+V[E];for(B=0;B<d;B++)y[_+B]!==0&&(h[G[y[_+B]]++]=B);if(A=x===0?(R=de=h,19):x===1?(R=a,Q-=257,de=o,be-=257,256):(R=c,de=k,-1),E=s,N=f,ne=B=O=0,m=-1,v=(J=1<<(q=te))-1,x===1&&852<J||x===2&&592<J)return 1;for(;;){for(L=E-ne,W=h[B]<A?(T=0,h[B]):h[B]>A?(T=de[be+h[B]],R[Q+h[B]]):(T=96,0),g=1<<E-ne,s=C=1<<q;b[N+(O>>ne)+(C-=g)]=L<<24|T<<16|W|0,C!==0;);for(g=1<<E-1;O&g;)g>>=1;if(g!==0?(O&=g-1,O+=g):O=0,B++,--V[E]==0){if(E===j)break;E=y[_+h[B]]}if(te<E&&(O&v)!==m){for(ne===0&&(ne=te),N+=s,U=1<<(q=E-ne);q+ne<j&&!((U-=V[q+ne])<=0);)q++,U<<=1;if(J+=1<<q,x===1&&852<J||x===2&&592<J)return 1;b[m=O&v]=te<<24|q<<16|N-f|0}}return O!==0&&(b[N+O]=E-ne<<24|64<<16|0),p.bits=te,0}},{"../utils/common":41}],51:[function(e,u,i){u.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(e,u,i){var r=e("../utils/common"),a=0,o=1;function c(w){for(var I=w.length;0<=--I;)w[I]=0}var k=0,x=29,y=256,_=y+1+x,d=30,b=19,f=2*_+1,h=15,p=16,g=7,C=256,m=16,v=17,N=18,A=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],L=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],T=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],W=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Y=new Array(2*(_+2));c(Y);var E=new Array(2*d);c(E);var B=new Array(512);c(B);var s=new Array(256);c(s);var j=new Array(x);c(j);var te,q,ne,U=new Array(d);function J(w,I,P,F,z){this.static_tree=w,this.extra_bits=I,this.extra_base=P,this.elems=F,this.max_length=z,this.has_stree=w&&w.length}function O(w,I){this.dyn_tree=w,this.max_code=0,this.stat_desc=I}function R(w){return w<256?B[w]:B[256+(w>>>7)]}function Q(w,I){w.pending_buf[w.pending++]=255&I,w.pending_buf[w.pending++]=I>>>8&255}function V(w,I,P){w.bi_valid>p-P?(w.bi_buf|=I<<w.bi_valid&65535,Q(w,w.bi_buf),w.bi_buf=I>>p-w.bi_valid,w.bi_valid+=P-p):(w.bi_buf|=I<<w.bi_valid&65535,w.bi_valid+=P)}function G(w,I,P){V(w,P[2*I],P[2*I+1])}function de(w,I){for(var P=0;P|=1&w,w>>>=1,P<<=1,0<--I;);return P>>>1}function be(w,I,P){var F,z,Z=new Array(h+1),X=0;for(F=1;F<=h;F++)Z[F]=X=X+P[F-1]<<1;for(z=0;z<=I;z++){var H=w[2*z+1];H!==0&&(w[2*z]=de(Z[H]++,H))}}function oe(w){var I;for(I=0;I<_;I++)w.dyn_ltree[2*I]=0;for(I=0;I<d;I++)w.dyn_dtree[2*I]=0;for(I=0;I<b;I++)w.bl_tree[2*I]=0;w.dyn_ltree[2*C]=1,w.opt_len=w.static_len=0,w.last_lit=w.matches=0}function se(w){8<w.bi_valid?Q(w,w.bi_buf):0<w.bi_valid&&(w.pending_buf[w.pending++]=w.bi_buf),w.bi_buf=0,w.bi_valid=0}function ye(w,I,P,F){var z=2*I,Z=2*P;return w[z]<w[Z]||w[z]===w[Z]&&F[I]<=F[P]}function fe(w,I,P){for(var F=w.heap[P],z=P<<1;z<=w.heap_len&&(z<w.heap_len&&ye(I,w.heap[z+1],w.heap[z],w.depth)&&z++,!ye(I,F,w.heap[z],w.depth));)w.heap[P]=w.heap[z],P=z,z<<=1;w.heap[P]=F}function ze(w,I,P){var F,z,Z,X,H=0;if(w.last_lit!==0)for(;F=w.pending_buf[w.d_buf+2*H]<<8|w.pending_buf[w.d_buf+2*H+1],z=w.pending_buf[w.l_buf+H],H++,F===0?G(w,z,I):(G(w,(Z=s[z])+y+1,I),(X=A[Z])!==0&&V(w,z-=j[Z],X),G(w,Z=R(--F),P),(X=L[Z])!==0&&V(w,F-=U[Z],X)),H<w.last_lit;);G(w,C,I)}function Ae(w,I){var P,F,z,Z=I.dyn_tree,X=I.stat_desc.static_tree,H=I.stat_desc.has_stree,ee=I.stat_desc.elems,ce=-1;for(w.heap_len=0,w.heap_max=f,P=0;P<ee;P++)Z[2*P]!==0?(w.heap[++w.heap_len]=ce=P,w.depth[P]=0):Z[2*P+1]=0;for(;w.heap_len<2;)Z[2*(z=w.heap[++w.heap_len]=ce<2?++ce:0)]=1,w.depth[z]=0,w.opt_len--,H&&(w.static_len-=X[2*z+1]);for(I.max_code=ce,P=w.heap_len>>1;1<=P;P--)fe(w,Z,P);for(z=ee;P=w.heap[1],w.heap[1]=w.heap[w.heap_len--],fe(w,Z,1),F=w.heap[1],w.heap[--w.heap_max]=P,w.heap[--w.heap_max]=F,Z[2*z]=Z[2*P]+Z[2*F],w.depth[z]=(w.depth[P]>=w.depth[F]?w.depth[P]:w.depth[F])+1,Z[2*P+1]=Z[2*F+1]=z,w.heap[1]=z++,fe(w,Z,1),2<=w.heap_len;);w.heap[--w.heap_max]=w.heap[1],function(ae,Se){var tt,Re,nt,he,mt,zt,Te=Se.dyn_tree,yn=Se.max_code,yr=Se.stat_desc.static_tree,br=Se.stat_desc.has_stree,wr=Se.stat_desc.extra_bits,bn=Se.stat_desc.extra_base,rt=Se.stat_desc.max_length,gt=0;for(he=0;he<=h;he++)ae.bl_count[he]=0;for(Te[2*ae.heap[ae.heap_max]+1]=0,tt=ae.heap_max+1;tt<f;tt++)rt<(he=Te[2*Te[2*(Re=ae.heap[tt])+1]+1]+1)&&(he=rt,gt++),Te[2*Re+1]=he,yn<Re||(ae.bl_count[he]++,mt=0,bn<=Re&&(mt=wr[Re-bn]),zt=Te[2*Re],ae.opt_len+=zt*(he+mt),br&&(ae.static_len+=zt*(yr[2*Re+1]+mt)));if(gt!==0){do{for(he=rt-1;ae.bl_count[he]===0;)he--;ae.bl_count[he]--,ae.bl_count[he+1]+=2,ae.bl_count[rt]--,gt-=2}while(0<gt);for(he=rt;he!==0;he--)for(Re=ae.bl_count[he];Re!==0;)yn<(nt=ae.heap[--tt])||(Te[2*nt+1]!==he&&(ae.opt_len+=(he-Te[2*nt+1])*Te[2*nt],Te[2*nt+1]=he),Re--)}}(w,I),be(Z,ce,w.bl_count)}function n(w,I,P){var F,z,Z=-1,X=I[1],H=0,ee=7,ce=4;for(X===0&&(ee=138,ce=3),I[2*(P+1)+1]=65535,F=0;F<=P;F++)z=X,X=I[2*(F+1)+1],++H<ee&&z===X||(H<ce?w.bl_tree[2*z]+=H:z!==0?(z!==Z&&w.bl_tree[2*z]++,w.bl_tree[2*m]++):H<=10?w.bl_tree[2*v]++:w.bl_tree[2*N]++,Z=z,ce=(H=0)===X?(ee=138,3):z===X?(ee=6,3):(ee=7,4))}function D(w,I,P){var F,z,Z=-1,X=I[1],H=0,ee=7,ce=4;for(X===0&&(ee=138,ce=3),F=0;F<=P;F++)if(z=X,X=I[2*(F+1)+1],!(++H<ee&&z===X)){if(H<ce)for(;G(w,z,w.bl_tree),--H!=0;);else z!==0?(z!==Z&&(G(w,z,w.bl_tree),H--),G(w,m,w.bl_tree),V(w,H-3,2)):H<=10?(G(w,v,w.bl_tree),V(w,H-3,3)):(G(w,N,w.bl_tree),V(w,H-11,7));Z=z,ce=(H=0)===X?(ee=138,3):z===X?(ee=6,3):(ee=7,4)}}c(U);var $=!1;function S(w,I,P,F){V(w,(k<<1)+(F?1:0),3),function(z,Z,X,H){se(z),Q(z,X),Q(z,~X),r.arraySet(z.pending_buf,z.window,Z,X,z.pending),z.pending+=X}(w,I,P)}i._tr_init=function(w){$||(function(){var I,P,F,z,Z,X=new Array(h+1);for(z=F=0;z<x-1;z++)for(j[z]=F,I=0;I<1<<A[z];I++)s[F++]=z;for(s[F-1]=z,z=Z=0;z<16;z++)for(U[z]=Z,I=0;I<1<<L[z];I++)B[Z++]=z;for(Z>>=7;z<d;z++)for(U[z]=Z<<7,I=0;I<1<<L[z]-7;I++)B[256+Z++]=z;for(P=0;P<=h;P++)X[P]=0;for(I=0;I<=143;)Y[2*I+1]=8,I++,X[8]++;for(;I<=255;)Y[2*I+1]=9,I++,X[9]++;for(;I<=279;)Y[2*I+1]=7,I++,X[7]++;for(;I<=287;)Y[2*I+1]=8,I++,X[8]++;for(be(Y,_+1,X),I=0;I<d;I++)E[2*I+1]=5,E[2*I]=de(I,5);te=new J(Y,A,y+1,_,h),q=new J(E,L,0,d,h),ne=new J(new Array(0),T,0,b,g)}(),$=!0),w.l_desc=new O(w.dyn_ltree,te),w.d_desc=new O(w.dyn_dtree,q),w.bl_desc=new O(w.bl_tree,ne),w.bi_buf=0,w.bi_valid=0,oe(w)},i._tr_stored_block=S,i._tr_flush_block=function(w,I,P,F){var z,Z,X=0;0<w.level?(w.strm.data_type===2&&(w.strm.data_type=function(H){var ee,ce=4093624447;for(ee=0;ee<=31;ee++,ce>>>=1)if(1&ce&&H.dyn_ltree[2*ee]!==0)return a;if(H.dyn_ltree[18]!==0||H.dyn_ltree[20]!==0||H.dyn_ltree[26]!==0)return o;for(ee=32;ee<y;ee++)if(H.dyn_ltree[2*ee]!==0)return o;return a}(w)),Ae(w,w.l_desc),Ae(w,w.d_desc),X=function(H){var ee;for(n(H,H.dyn_ltree,H.l_desc.max_code),n(H,H.dyn_dtree,H.d_desc.max_code),Ae(H,H.bl_desc),ee=b-1;3<=ee&&H.bl_tree[2*W[ee]+1]===0;ee--);return H.opt_len+=3*(ee+1)+5+5+4,ee}(w),z=w.opt_len+3+7>>>3,(Z=w.static_len+3+7>>>3)<=z&&(z=Z)):z=Z=P+5,P+4<=z&&I!==-1?S(w,I,P,F):w.strategy===4||Z===z?(V(w,2+(F?1:0),3),ze(w,Y,E)):(V(w,4+(F?1:0),3),function(H,ee,ce,ae){var Se;for(V(H,ee-257,5),V(H,ce-1,5),V(H,ae-4,4),Se=0;Se<ae;Se++)V(H,H.bl_tree[2*W[Se]+1],3);D(H,H.dyn_ltree,ee-1),D(H,H.dyn_dtree,ce-1)}(w,w.l_desc.max_code+1,w.d_desc.max_code+1,X+1),ze(w,w.dyn_ltree,w.dyn_dtree)),oe(w),F&&se(w)},i._tr_tally=function(w,I,P){return w.pending_buf[w.d_buf+2*w.last_lit]=I>>>8&255,w.pending_buf[w.d_buf+2*w.last_lit+1]=255&I,w.pending_buf[w.l_buf+w.last_lit]=255&P,w.last_lit++,I===0?w.dyn_ltree[2*P]++:(w.matches++,I--,w.dyn_ltree[2*(s[P]+y+1)]++,w.dyn_dtree[2*R(I)]++),w.last_lit===w.lit_bufsize-1},i._tr_align=function(w){V(w,2,3),G(w,C,Y),function(I){I.bi_valid===16?(Q(I,I.bi_buf),I.bi_buf=0,I.bi_valid=0):8<=I.bi_valid&&(I.pending_buf[I.pending++]=255&I.bi_buf,I.bi_buf>>=8,I.bi_valid-=8)}(w)}},{"../utils/common":41}],53:[function(e,u,i){u.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,u,i){(function(r){(function(a,o){if(!a.setImmediate){var c,k,x,y,_=1,d={},b=!1,f=a.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(a);h=h&&h.setTimeout?h:a,c={}.toString.call(a.process)==="[object process]"?function(m){process.nextTick(function(){g(m)})}:function(){if(a.postMessage&&!a.importScripts){var m=!0,v=a.onmessage;return a.onmessage=function(){m=!1},a.postMessage("","*"),a.onmessage=v,m}}()?(y="setImmediate$"+Math.random()+"$",a.addEventListener?a.addEventListener("message",C,!1):a.attachEvent("onmessage",C),function(m){a.postMessage(y+m,"*")}):a.MessageChannel?((x=new MessageChannel).port1.onmessage=function(m){g(m.data)},function(m){x.port2.postMessage(m)}):f&&"onreadystatechange"in f.createElement("script")?(k=f.documentElement,function(m){var v=f.createElement("script");v.onreadystatechange=function(){g(m),v.onreadystatechange=null,k.removeChild(v),v=null},k.appendChild(v)}):function(m){setTimeout(g,0,m)},h.setImmediate=function(m){typeof m!="function"&&(m=new Function(""+m));for(var v=new Array(arguments.length-1),N=0;N<v.length;N++)v[N]=arguments[N+1];var A={callback:m,args:v};return d[_]=A,c(_),_++},h.clearImmediate=p}function p(m){delete d[m]}function g(m){if(b)setTimeout(g,0,m);else{var v=d[m];if(v){b=!0;try{(function(N){var A=N.callback,L=N.args;switch(L.length){case 0:A();break;case 1:A(L[0]);break;case 2:A(L[0],L[1]);break;case 3:A(L[0],L[1],L[2]);break;default:A.apply(o,L)}})(v)}finally{p(m),b=!1}}}}function C(m){m.source===a&&typeof m.data=="string"&&m.data.indexOf(y)===0&&g(+m.data.slice(y.length))}})(typeof self>"u"?r===void 0?this:r:self)}).call(this,typeof ct<"u"?ct:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(Gt);var Yn=Gt.exports;const Jn=Xn(Yn),Ze=(t,l)=>{const e=t==null?void 0:t.getAttribute(l);return e==null||e===""?null:e};function Kt(t){const l=Number(Ze(t,"type")??0),e=Ze(t,"solution");return{type:l,typeName:_e(l),schemaName:Ze(t,"schemaName"),displayName:Ze(t,"displayName"),id:Ze(t,"id"),solution:e&&e.replace(/\s*\([\d.]+\)\s*$/,"").trim()||null,parentSchemaName:Ze(t,"parentSchemaName")}}const $e=t=>t.schemaName??t.displayName??t.id??"(unnamed)";function Qn(t){const l=new DOMParser().parseFromString(t,"application/xml");if(l.getElementsByTagName("parsererror").length)throw new Error("solution.xml: invalid XML");const e=l.querySelector("ImportExportXml > SolutionManifest");if(!e)throw new Error("solution.xml: SolutionManifest not found");const u=r=>{var a,o;return((o=(a=e.querySelector(r))==null?void 0:a.textContent)==null?void 0:o.trim())??""},i=Array.from(e.querySelectorAll(":scope > MissingDependencies > MissingDependency")).map(r=>({required:Kt(r.querySelector(":scope > Required")),dependent:Kt(r.querySelector(":scope > Dependent"))}));return{uniqueName:u(":scope > UniqueName"),version:u(":scope > Version"),managed:u(":scope > Managed")!=="0"&&u(":scope > Managed")!=="",missing:i}}function er(t,l,e){const u=new Map;for(const i of t){const r=i.required,a=We(l,null,$e(r))||!!r.solution&&We(l,{uniqueName:r.solution,prefix:""},$e(r)),o=!!r.solution&&!!(e!=null&&e.has(r.solution.toLowerCase()));if(!a&&!(e&&r.solution&&!o))continue;const c=i.dependent,k=`${c.type}:${(c.id??$e(c)).toLowerCase()}:${c.parentSchemaName??""}`,x=u.get(k)??{key:k,dependent:c,required:[],status:"safe"};x.required.some(y=>y.type===r.type&&$e(y)===$e(r))||x.required.push({...r,safe:o}),o||(x.status="blocker"),u.set(k,x)}return[...u.values()].sort((i,r)=>(i.status===r.status?0:i.status==="blocker"?-1:1)||i.dependent.type-r.dependent.type||$e(i.dependent).localeCompare($e(r.dependent)))}async function tr(t,l,e,u){let i;try{i=await Jn.loadAsync(l)}catch{throw new Error(`${t}: not a zip file`)}const r=i.file(/^solution\.xml$/i)[0];if(!r)throw new Error(`${t}: solution.xml not found (is this a solution export?)`);const a=Qn(await r.async("string"));return{fileName:t,uniqueName:a.uniqueName,version:a.version,managed:a.managed,total:a.missing.length,groups:er(a.missing,e,u)}}const Vt=()=>window,je=()=>Vt().toolboxAPI,Xt=()=>Vt().dataverseAPI,Yt=()=>{var t;return!!((t=je())!=null&&t.connections)&&!!Xt()};async function Jt(){var i,r;const t=je();if(!(t!=null&&t.connections))return[];const l=[],e=await t.connections.getActiveConnection().catch(()=>null);e&&l.push({target:"primary",conn:e});const u=await((r=(i=t.connections).getSecondaryConnection)==null?void 0:r.call(i).catch(()=>null));return u&&l.push({target:"secondary",conn:u}),l}function nr(t){var l,e;try{(e=(l=je())==null?void 0:l.events)==null||e.on((u,i)=>{typeof(i==null?void 0:i.event)=="string"&&i.event.startsWith("connection:")&&t()})}catch{}}async function rr(t){var u,i,r,a;const l=je();let e=(u=window.matchMedia)!=null&&u.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light";if((i=l==null?void 0:l.utils)!=null&&i.getCurrentTheme)try{e=await l.utils.getCurrentTheme()}catch{}t(e);try{(r=l==null?void 0:l.events)==null||r.on((o,c)=>{var k;if((c==null?void 0:c.event)==="settings:updated"){const x=(k=c.data)==null?void 0:k.theme;(x==="light"||x==="dark")&&t(x)}})}catch{}l||(a=window.matchMedia)==null||a.call(window,"(prefers-color-scheme: dark)").addEventListener("change",o=>t(o.matches?"dark":"light"))}async function we(t,l,e="info"){var i;const u=je();if((i=u==null?void 0:u.utils)!=null&&i.showNotification)try{await u.utils.showNotification({title:t,body:l,type:e,duration:4e3});return}catch{}console[e==="error"?"error":"log"](`${t}: ${l}`)}async function Qt(t,l,e="application/json"){var a;const u=je();if((a=u==null?void 0:u.fileSystem)!=null&&a.saveFile)return!!await u.fileSystem.saveFile(t,l);const i=URL.createObjectURL(new Blob([l],{type:e})),r=document.createElement("a");return r.href=i,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(i),1e3),!0}function ir(t){if(t instanceof Uint8Array)return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);const l=t;if(l&&l.type==="Buffer"&&Array.isArray(l.data))return Uint8Array.from(l.data);if(Array.isArray(t))return Uint8Array.from(t);throw new Error("Unsupported binary payload from host")}function en(t,l){return new Promise(e=>{const u=document.createElement("input");u.type="file",u.accept=t,u.multiple=l,u.addEventListener("change",()=>e(Array.from(u.files??[]))),u.addEventListener("cancel",()=>e([])),u.click()})}async function or(t){var u;const l=je();if((u=l==null?void 0:l.fileSystem)!=null&&u.selectPath){const i=await l.fileSystem.selectPath({type:"file",title:t.title,filters:[{name:t.extensions.map(a=>a.toUpperCase()).join(" / "),extensions:t.extensions},{name:"All files",extensions:["*"]}]});if(!i)return[];const r=await l.fileSystem.readBinary(i);return[{name:i.split(/[\\/]/).pop()??i,data:ir(r)}]}const e=await en(t.extensions.map(i=>`.${i}`).join(","),!!t.multiple);return Promise.all(e.map(async i=>({name:i.name,data:new Uint8Array(await i.arrayBuffer())})))}async function ar(t){var u;const l=je();if((u=l==null?void 0:l.fileSystem)!=null&&u.selectPath){const i=await l.fileSystem.selectPath({type:"file",title:t.title,filters:[{name:t.extensions.join("/"),extensions:t.extensions}]});return i?{name:i.split(/[\\/]/).pop()??i,text:await l.fileSystem.readText(i)}:null}const[e]=await en(t.extensions.map(i=>`.${i}`).join(","),!1);return e?{name:e.name,text:await e.text()}:null}let Ve=[],Pe=[],Le=null,St=new jt;const tn=new Map;let Xe,re=null;const Ne=new Map;let ke=null,xe=[],Ye=!1,Je=null,Fe=null,Ct=0,Et=!1,At=!1,le=null;const He=()=>Xt(),ve=()=>Ve.find(t=>t.target==="primary"),nn=()=>Ve.find(t=>t.target==="secondary"),Qe=t=>!!t&&(t.conn.environment==="Production"||/\bprod/i.test(t.conn.name)),dt=()=>{var e;const t=((e=ve())==null?void 0:e.conn.url)??"";let l=tn.get(t);return l||tn.set(t,l=new Map),l},ft=(t,l)=>!!t&&!!l&&t.replace(/\/+$/,"").toLowerCase()===l.replace(/\/+$/,"").toLowerCase(),rn=t=>t.map(l=>`${l.target}:${l.conn.id}:${l.conn.url}`).join("|"),on=async()=>(await Jt().catch(()=>[])).find(t=>t.target==="primary"),et=()=>{ke=null,xe=[],Ye=!1,Je=null,Fe=null},It=()=>{const t=Mn(K("#filter").value);return t.length?t:kn};function Ee(t){const l=K("#status");l.hidden=!t,l.textContent=t??""}function an(t,l){const e=M("span",{class:"dot"});return t.conn.environmentColor&&(e.style.background=t.conn.environmentColor),M("span",{class:"connchip",title:t.conn.url},e,M("span",{class:"env"},t.conn.name),M("span",{class:"kind"},`${l} · ${t.conn.environment}`))}function sn(){const t=ve(),l=re==null?void 0:re.solution;return!t||!l?"https://make.powerapps.com/":Xe?`https://make.powerapps.com/environments/${Xe}/solutions/${l.id}`:`${t.conn.url.replace(/\/+$/,"")}/tools/solution/edit.aspx?id=${l.id}`}async function ln(){const t=rn(Ve);Ve=await Jt(),St=new jt,Xe=void 0,rn(Ve)!==t&&(Ct++,re=null,Ne.clear(),et(),le=null,K("#fix-results").replaceChildren(),K("#restore-results").replaceChildren(),K("#restore-file").textContent="",Ge(),qe());const l=K("#conn");l.replaceChildren();const e=ve(),u=nn();e&&l.append(an(e,"dev")),u&&l.append(an(u,"target")),e||l.append(M("span",{class:"caption"},Yt()?"No connection. Pick a primary (dev) connection in ToolBox.":"Standalone: Offline tab only."));const i=He();if(Pe=[],Le=null,i&&e){Ee("Loading solutions…");try{Pe=await wt(i,"primary")}catch(c){await we("Load failed",c.message,"error")}if(u)try{Le=new Set((await wt(i,"secondary")).map(c=>c.uniqueName.toLowerCase()))}catch(c){await we("Target load failed",`${u.conn.name}: ${c.message}`,"warning")}Ee(null)}const r=K("#solution"),a=r.value,o=Pe.filter(c=>!c.isManaged&&!["default","active","basic"].includes(c.uniqueName.toLowerCase()));r.replaceChildren(...o.length?o.map(c=>M("option",{value:c.id},`${c.friendlyName} (${c.uniqueName}) ${c.version}`)):[M("option",{value:""},e?"No unmanaged solutions":"No connection")]),[...r.options].some(c=>c.value===a)&&(r.value=a),K("#btn-run").disabled=!o.length}async function cn(){const t=He(),l=ve(),e=Pe.find(r=>r.id===K("#solution").value);if(!t||!l||!e||At)return;At=!0,Et=!1;const u=Ct;K("#btn-cancel").hidden=!1,K("#btn-run").disabled=!0,K("#progress").hidden=!1;const i=K("#progress-bar");try{Xe===void 0&&(Xe=await Nn(t));const r=nn(),a=await Gn({api:t,meta:St,reqCache:dt(),solution:e,allSolutions:Pe,targetSolutions:Le,filter:It(),environment:{name:l.conn.name,url:l.conn.url,environment:l.conn.environment},target:r&&Le?{name:r.conn.name,url:r.conn.url}:null,link:()=>sn(),onProgress:(o,c)=>{i.max=Math.max(c,1),i.value=o,K("#progress-text").textContent=`RetrieveRequiredComponents ${o} / ${c}`},cancelled:()=>Et});if(u!==Ct)return;re=a;for(const o of re.findings)for(const c of o.fixes)c.kind==="report"&&(c.link=sn());for(const[o,c]of[...Ne])re.findings.some(k=>k.key===o&&k.fixes.some(x=>x.kind===c))||Ne.delete(o)}catch(r){r instanceof Wt?await we("Cancelled","Diagnosis cancelled. Finished calls stay cached.","info"):await we("Diagnosis failed",r.message,"error")}finally{At=!1,K("#btn-cancel").hidden=!0,K("#btn-run").disabled=!1,K("#progress").hidden=!0}ht()}function sr(t){var e;const l=!!t.solution&&!!(Le!=null&&Le.has(t.solution.uniqueName.toLowerCase()));return M("span",{class:`req${l?" is-safe":""}`,title:t.solutions.join(", ")},M("span",{class:"sol"},((e=t.solution)==null?void 0:e.uniqueName)??"unknown solution"),`${_e(t.type)} ${t.name}`,l?" · in target":"")}function lr(t){const l=M("select",{class:"fix","aria-label":`Fix for ${t.dependent.name}`});l.append(M("option",{value:""},"No action"),...t.fixes.map(u=>M("option",{value:u.kind},u.label))),l.value=Ne.get(t.key)??"",l.addEventListener("change",()=>{l.value?Ne.set(t.key,l.value):Ne.delete(t.key),un()});const e=t.fixes.find(u=>u.kind==="report");return M("li",{class:`finding${t.status==="safe"?" is-safe":""}`,"data-key":t.key},M("div",{class:"head"},pe(_e(t.dependent.type),"neutral"),M("span",{class:"name mono"},t.dependent.name),t.dependent.table||t.dependent.rootTable?M("span",{class:"caption"},t.dependent.table??t.dependent.rootTable??""):null,t.dependent.rootBehavior===0?pe("table: all assets","warn"):null,pe(t.status==="blocker"?"blocker":"present in target",t.status==="blocker"?"bad":"ok"),l),M("div",{class:"cause"},t.cause),M("div",{class:"chips"},...t.required.map(sr)),e!=null&&e.link?M("div",{class:"caption"},e.note??""," ",M("a",{href:e.link,target:"_blank",rel:"noopener"},"Open solution in maker portal")):null)}function un(){K("#sel-count").textContent=`${Ne.size} selected`,K("#btn-to-fix").disabled=Ne.size===0}function ht(){const t=K("#findings"),l=K("#diag-summary");t.replaceChildren(),l.replaceChildren(),K("#diag-actions").hidden=!re;for(const o of["#btn-export-json","#btn-export-csv"])K(o).toggleAttribute("disabled",!re);if(!re){t.append(Be("No diagnosis yet",ve()?"Pick an unmanaged solution and run Diagnose.":"Connect a dev environment in ToolBox, or use the Offline tab."));return}const e=re,u=e.findings.filter(o=>o.status==="blocker"),i=e.findings.length-u.length,r=K("#show-safe").checked;l.append(M("div",{class:"summary"},M("strong",{},`${e.solution.friendlyName}`),`${e.components.length} components ·`,pe(`${u.length} blocker${u.length===1?"":"s"}`,u.length?"bad":"ok"),e.target?pe(`${i} present in target`,"ok"):M("span",{class:"caption"},"No target connection: every dependency matching the filter counts."),e.errors.length?pe(`${e.errors.length} lookups failed`,"warn"):null)),e.errors.length&&l.append(M("div",{class:"warnings"},`RetrieveRequiredComponents failed for ${e.errors.length} component(s): ${e.errors.slice(0,3).map(o=>`${o.component} (${o.error})`).join("; ")}`));const a=e.findings.filter(o=>r||o.status==="blocker");a.length?t.append(M("ul",{class:"findings"},...a.map(lr))):t.append(Be("No blocking dependencies",e.findings.length?"Everything found is present in the target. Tick “Show present in target” to see it.":"Nothing in this solution depends on the filtered solutions.")),un()}function Nt(t,l,e){const u=M("pre",{class:"diff","aria-label":e});for(const i of Dn(t,l))u.append(M("span",{class:i.t==="-"?"del":i.t==="+"?"add":i.t==="…"?"gap":"ctx"},i.t==="…"?"…":`${i.t} ${i.s}`));return u}function dn(t){const l=M("li",{class:"op","data-kind":t.kind},M("span",{class:"mono"},xt(t)));if((t.kind==="remove"||t.kind==="add")&&l.append(" ",M("span",{class:"why"},t.reason)),t.kind==="update-form"){const e=t.edit;Ie(l,e.removed.length?M("div",{class:"caption"},`Removes: ${e.removed.join(", ")}`):null,e.kept.length?M("div",{class:"caption"},`Kept: ${e.kept.map(u=>`${u.name} (${u.reason})`).join(", ")}`):null,e.warnings.length?M("div",{class:"warnings"},e.warnings.join(" ")):null,Nt(e.form.formxml,e.after,`formxml diff ${e.form.name}`))}if(t.kind==="update-view"){const e=t.edit;Ie(l,e.removed.length?M("div",{class:"caption"},`Removes: ${e.removed.join(", ")}`):null,e.warnings.length?M("div",{class:"warnings"},e.warnings.join(" ")):null,Nt(e.view.fetchxml,e.after.fetchxml,`fetchxml diff ${e.view.name}`),Nt(e.view.layoutxml,e.after.layoutxml,`layoutxml diff ${e.view.name}`))}return l}function fn(){return!!(re!=null&&re.solution.isManaged)}function pt(){const t=!Qe(ve())||K("#prod-ack").checked;K("#btn-confirm").disabled=!(Ye&&xe.length&&Fe&&t&&!fn()),K("#btn-backup").textContent=Ye?"1. Backup saved ✓":"1. Download backup"}function Ge(){const t=K("#fix-banners"),l=K("#fix-body");if(t.replaceChildren(),l.replaceChildren(),K("#fix-actions").hidden=!ke,pt(),Je){t.append(M("div",{class:"danger-banner",id:"preview-error"},Je)),l.append(Be("Preview refused","Change the selected fixes in Diagnose, then Preview fixes again."));return}if(!ke||!re){l.append(Be("Nothing selected","Pick a fix on one or more findings in Diagnose, then Preview fixes."));return}fn()&&t.append(M("div",{class:"danger-banner"},`${re.solution.uniqueName} is managed. Writes are refused: fix dependencies in the dev environment, in the unmanaged solution.`)),Qe(ve())&&t.append(M("div",{class:"danger-banner"},`This connection (${ve().conn.name}) looks like Production. Dependencies are fixed in dev.`)),K("#prod-ack-wrap").hidden=!Qe(ve());for(const e of ke.shells){const u=e.leaving.map(i=>{const r=M("input",{type:"checkbox","aria-label":`Keep ${i.component.name}`});return r.checked=i.keep,r.addEventListener("change",()=>{i.keep=r.checked,xe=Ft(ke),hn()}),M("label",{title:i.why},r,pe(_e(i.component.type),"neutral"),M("span",{class:"mono"},i.component.name??i.component.objectId),M("span",{class:"caption"},i.why))});l.append(M("div",{class:"card"},M("div",{class:"card-head"},M("h3",{},`Shell conversion: ${e.root.name}`),pe(`${e.leaving.filter(i=>!i.keep).length} leave`,"warn")),M("div",{class:"card-body"},M("p",{class:"caption"},"The table is removed and added back without subcomponents. Every subcomponent below leaves the solution unless ticked to re-add. Other developers may rely on them."),e.leaving.length?M("div",{class:"leaving"},...u):M("p",{class:"caption"},"No subcomponent rows."))))}ke.skipped.length&&l.append(M("div",{class:"warnings"},"Not changed: ",ke.skipped.map(e=>`${e.name} (${e.reason})`).join("; "))),l.append(M("div",{id:"ops-wrap"})),hn()}function hn(){const t=document.getElementById("ops-wrap");t&&(t.replaceChildren(M("h3",{},`${xe.length} operation${xe.length===1?"":"s"} on ${(re==null?void 0:re.solution.uniqueName)??""}`),xe.length?M("ol",{class:"ops",id:"ops"},...xe.map(dn)):Be("No operations","The selected fixes change nothing.")),pt())}async function cr(){const t=He(),l=ve();if(!t||!l||!re)return;const e=[...Ne].map(([u,i])=>({finding:re.findings.find(r=>r.key===u),fix:i})).filter(u=>u.finding&&u.finding.fixes.some(i=>i.kind===u.fix));Ee("Preparing preview…"),et(),K("#prod-ack").checked=!1,K("#fix-results").replaceChildren();try{if(!ft(l.conn.url,re.environment.url))throw new Error(`The diagnosis was run on ${re.environment.url}, the connection is now ${l.conn.url}. Run Diagnose again.`);ke=await Tn(t,St,re,e),xe=Ft(ke),Fe={id:l.conn.id,url:l.conn.url}}catch(u){et(),Je=u.message,await we("Preview failed",Je,"error")}finally{Ee(null)}document.querySelector('.tab[data-tab="fix"]').click(),Ge()}async function ur(){if(!re||!ke)return;const t=Pn(re,ke,xe);await Qt(Fn(re.solution.uniqueName),JSON.stringify(t,null,2))&&(Ye=!0,await we("Backup saved","Keep it: the Restore tab reapplies it.","success")),pt()}function pn(t){return M("table",{},M("thead",{},M("tr",{},M("th",{},"Operation"),M("th",{},"Result"))),M("tbody",{},...t.map(l=>M("tr",{},M("td",{class:"mono"},xt(l.op)),M("td",{},l.ok?pe("ok","ok"):l.skipped?pe(l.error??"skipped","neutral"):pe(l.error??"failed","bad"))))))}async function dr(){const t=He();if(!t||!re||!ke||!Ye||!xe.length||!Fe)return;const l=re.solution,e=await on();if(!e||e.conn.id!==Fe.id||!ft(e.conn.url,Fe.url)){const y=Fe.url;et(),Ge(),await we("Refused",`The plan was made on ${y}, the connection is now ${(e==null?void 0:e.conn.url)??"none"}. Nothing was written: run Diagnose and Preview again.`,"error");return}const u=await Tt(t,l.id).catch(()=>null);if(!u||u.isManaged||l.isManaged){re={...re,solution:{...re.solution,isManaged:!0}},Ge(),await we("Refused",`${l.uniqueName} is managed (or could not be read). Nothing was written.`,"error");return}K("#btn-confirm").disabled=!0;const i=re.findings.filter(y=>y.status==="blocker").map(y=>y.key),r=new Set;for(const y of xe)y.kind==="update-form"&&r.add(Oe(ie.Form,y.edit.form.id)),y.kind==="update-view"&&r.add(Oe(ie.View,y.edit.view.id)),(y.kind==="remove"||y.kind==="add")&&r.add(Oe(y.component.type,y.component.id));const a=await qt(t,xe,u.uniqueName,(y,_)=>Ee(y<_?`Applying ${y+1} / ${_}…`:null));Ee(null);const o=a.filter(y=>!y.ok&&!y.skipped).length;await we(o?"Some operations failed":"Applied",o?"Restore from the backup if needed.":`${a.length} operations done. Re-running diagnosis…`,o?"error":"success");for(const y of r)dt().delete(y);et(),Ne.clear(),Ge();const c=K("#fix-results");c.replaceChildren(M("h3",{},"Results"),pn(a)),await cn();const k=new Set(((re==null?void 0:re.findings)??[]).filter(y=>y.status==="blocker").map(y=>y.key)),x=i.filter(y=>!k.has(y)).length;c.append(M("div",{class:"summary",id:"rediag"},M("strong",{},"Re-diagnosis:"),pe(`${x} fixed`,"ok"),pe(`${i.length-x} still present`,i.length-x?"bad":"ok"),pe(`${k.size} blockers now`,k.size?"bad":"ok")))}async function fr(){const t=await ar({title:"Open Dependency Cleaner backup",extensions:["json"]});if(!t)return;K("#restore-results").replaceChildren();try{le={backup:qn(t.text),plan:null,url:null},K("#restore-file").textContent=t.name}catch(u){le=null,await we("Backup rejected",`${t.name}: ${u.message}`,"error"),qe();return}const l=He(),e=ve();if(l&&e){Ee("Comparing backup to the environment…"),le.url=e.conn.url;try{le.plan=await Un(l,le.backup,Pe.length?Pe:await wt(l,"primary"),e.conn.url)}catch(u){await we("Restore refused",u.message,"error"),qe(u.message),Ee(null);return}Ee(null)}qe()}function qe(t){var u;const l=K("#restore-body");if(l.replaceChildren(),K("#restore-actions").hidden=!(le!=null&&le.plan),K("#btn-restore-apply").disabled=!((u=le==null?void 0:le.plan)!=null&&u.ops.length),!le){l.append(Be("No backup loaded","Load a dependency-cleaner-backup-*.json file saved before a fix."));return}const e=le.backup;if(l.append(M("p",{class:"caption"},`Backup of ${e.solution.uniqueName} from ${e.environment.name}, ${e.takenAt}. ${e.membership.length} members, ${e.forms.length} forms, ${e.views.length} views.`)),t&&l.append(M("div",{class:"danger-banner",id:"restore-error"},t)),!!le.plan){for(const i of le.plan.notes)l.append(M("div",{class:"warnings"},i));Qe(ve())&&l.append(M("div",{class:"danger-banner"},`This connection (${ve().conn.name}) looks like Production.`)),l.append(le.plan.ops.length?M("ol",{class:"ops",id:"restore-ops"},...le.plan.ops.map(dn)):Be("Nothing to restore","The environment already matches the backup."))}}async function hr(){var o,c,k;const t=He();if(!t||!(le!=null&&le.plan))return;const l=le.plan,e=await on();if(!e||!ft(e.conn.url,le.url)||!ft(e.conn.url,(o=le.backup.environment)==null?void 0:o.url)){le.plan=null,qe(),await we("Refused",`The backup is from ${((c=le.backup.environment)==null?void 0:c.url)??"an unknown environment"}, the connection is now ${(e==null?void 0:e.conn.url)??"none"}. Nothing was written: load the backup again on the right connection.`,"error");return}const u=await Tt(t,l.solution.id).catch(()=>null);if(!u||u.isManaged){await we("Refused",`${l.solution.uniqueName} is managed (or could not be read). Nothing was written.`,"error");return}if(!await wn({title:"Apply restore",body:M("p",{},`${l.ops.length} operations on ${l.solution.uniqueName} in ${((k=ve())==null?void 0:k.conn.name)??""}.`),okLabel:`Apply ${l.ops.length}`,danger:Qe(ve())}))return;const r=await qt(t,l.ops,u.uniqueName,(x,y)=>Ee(x<y?`Restoring ${x+1} / ${y}…`:null));Ee(null);for(const x of l.ops)x.kind==="update-form"&&dt().delete(Oe(ie.Form,x.edit.form.id)),x.kind==="update-view"&&dt().delete(Oe(ie.View,x.edit.view.id));const a=r.filter(x=>!x.ok&&!x.skipped).length;await we(a?"Restore incomplete":"Restored",`${r.length-a} ok, ${a} failed`,a?"error":"success"),le.plan=null,qe(),K("#restore-results").replaceChildren(M("h3",{},"Restore results"),pn(r))}async function mn(t,l){const e=K("#offline-body");try{pr(await tr(t,l,It(),Le))}catch(u){e.replaceChildren(M("div",{class:"danger-banner"},u.message))}}function pr(t){const l=t.groups.filter(i=>i.status==="blocker").length,e=i=>`${i.typeName} ${$e(i)}${i.parentSchemaName?` (${i.parentSchemaName})`:""}`,u=t.groups.map(i=>M("li",{class:`finding${i.status==="safe"?" is-safe":""}`},M("div",{class:"head"},pe(i.dependent.typeName,"neutral"),M("span",{class:"name mono"},$e(i.dependent)),i.dependent.parentSchemaName?M("span",{class:"caption"},i.dependent.parentSchemaName):null,pe(i.status==="blocker"?"blocker":"present in target",i.status==="blocker"?"bad":"ok")),M("div",{class:"chips"},...i.required.map(r=>M("span",{class:`req${r.safe?" is-safe":""}`},M("span",{class:"sol"},r.solution??"unknown solution"),e(r))))));K("#offline-body").replaceChildren(M("div",{class:"summary",id:"offline-summary"},M("strong",{},`${t.uniqueName} ${t.version}`),t.managed?pe("managed","neutral"):pe("unmanaged","neutral"),`${t.total} missing dependencies in solution.xml ·`,pe(`${t.groups.length} dependents in scope`,"neutral"),pe(`${l} blocking`,l?"bad":"ok")),t.groups.length?M("ul",{class:"findings"},...u):Be("No missing dependencies in scope",`Filter: ${It().join(", ")}`))}function mr(){const t=K("#drop");t.addEventListener("dragover",l=>{l.preventDefault(),t.classList.add("is-over")}),t.addEventListener("dragleave",()=>t.classList.remove("is-over")),t.addEventListener("drop",async l=>{var u,i;l.preventDefault(),t.classList.remove("is-over");const e=(i=(u=l.dataTransfer)==null?void 0:u.files)==null?void 0:i[0];e&&await mn(e.name,new Uint8Array(await e.arrayBuffer()))}),K("#btn-open-zip").addEventListener("click",async()=>{const[l]=await or({title:"Open solution zip",extensions:["zip"]});l&&await mn(l.name,l.data)})}async function gn(t,l,e){await Qt(t,l,e)&&await we("Exported",t,"success")}function gr(){vn(),K("#btn-run").addEventListener("click",()=>void cn()),K("#btn-cancel").addEventListener("click",()=>{Et=!0}),K("#show-safe").addEventListener("change",ht),K("#btn-to-fix").addEventListener("click",()=>void cr()),K("#btn-backup").addEventListener("click",()=>void ur()),K("#prod-ack").addEventListener("change",pt),K("#btn-confirm").addEventListener("click",()=>void dr()),K("#btn-load-backup").addEventListener("click",()=>void fr()),K("#btn-restore-apply").addEventListener("click",()=>void hr()),K("#btn-export-json").addEventListener("click",()=>{re&&gn(`dependency-findings.${Ht(re.solution.uniqueName)}.json`,Vn(re),"application/json")}),K("#btn-export-csv").addEventListener("click",()=>{re&&gn(`dependency-findings.${Ht(re.solution.uniqueName)}.csv`,Kn(re),"text/csv")}),mr(),nr(()=>void ln().then(ht)),K("#host-mode").textContent=Yt()?"Running inside Power Platform ToolBox":"Standalone mode (Offline tab only)"}rr(t=>document.documentElement.setAttribute("data-theme",t)),gr(),ht(),Ge(),qe(),ln()})();
|
package/dist/index.html
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplesmoothsafe/pptb-dependency-cleaner",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"displayName": "SSS Dependency Cleaner",
|
|
5
5
|
"description": "Why does my solution depend on msdyn_*? Find every dependency of an unmanaged solution on a managed solution the target environment lacks, see the component that causes it, and fix it in place: convert tables to shells, remove components, strip msdyn columns from forms and views. Preview, backup and restore.",
|
|
6
6
|
"main": "index.html",
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
var hr=Object.defineProperty;var pr=(K,It,M)=>It in K?hr(K,It,{enumerable:!0,configurable:!0,writable:!0,value:M}):K[It]=M;var de=(K,It,M)=>pr(K,typeof It!="symbol"?It+"":It,M);(function(){"use strict";const K=e=>{const c=document.querySelector(e);if(!c)throw new Error(`missing ${e}`);return c};function It(e,...c){for(const t of c)t!=null&&t!==!1&&e.append(t)}function M(e,c={},...t){const u=document.createElement(e);for(const[i,r]of Object.entries(c))r===void 0||r===!1||(i==="class"?u.className=String(r):r===!0?u.setAttribute(i,""):u.setAttribute(i,r));for(const i of t)i!=null&&i!==!1&&u.append(typeof i=="string"?document.createTextNode(i):i);return u}const pt=(e,c="")=>M("span",{class:`badge${c?` badge-${c}`:""}`},e),Lt=(e,c)=>M("div",{class:"empty-state"},M("strong",{},e),c);function dn(e){const c=K("#dlg");K("#dlg-title").textContent=e.title;const t=K("#dlg-target");t.replaceChildren(),e.target&&t.append(e.target),K("#dlg-body").replaceChildren(e.body);const u=K("#dlg-ok");return u.textContent=e.okLabel??"",u.className=`btn ${e.danger?"btn-danger":"btn-primary"}`,u.style.flex="none",u.hidden=!e.okLabel,new Promise(i=>{let r=!1;const s=o=>{r||(r=!0,u.onclick=null,K("#dlg-cancel").onclick=null,c.onclose=null,c.open?(c.addEventListener("close",()=>i(o),{once:!0}),c.close()):i(o))};u.onclick=()=>s(!0),K("#dlg-cancel").onclick=()=>s(!1),c.onclose=()=>s(!1),c.showModal()})}function fn(e){document.querySelectorAll(".tab").forEach(c=>c.addEventListener("click",()=>{const t=c.dataset.tab;document.querySelectorAll(".tab").forEach(u=>u.classList.toggle("is-active",u===c)),document.querySelectorAll(".panel[id^='tab-']").forEach(u=>u.hidden=u.id!==`tab-${t}`)}))}const it={Entity:1,Attribute:2,Relationship:3,OptionSet:9,EntityRelationship:10,View:26,Workflow:29,Chart:59,Form:60,WebResource:61,SiteMap:62,AppModule:80,PluginStep:92},hn={1:"Table",2:"Column",3:"Relationship",9:"Choice",10:"Relationship",14:"Key",20:"Security role",24:"Form",26:"View",29:"Process",31:"Report",36:"Email template",48:"Ribbon command",50:"Ribbon",55:"Ribbon diff",59:"Chart",60:"Form",61:"Web resource",62:"Site map",63:"Connection role",65:"Hierarchy rule",66:"Custom control",70:"Field security profile",80:"Model-driven app",90:"Plugin type",91:"Plugin assembly",92:"Plugin step",300:"Canvas app",371:"Connector",372:"Connection reference",380:"Environment variable"},vt=e=>hn[e]??`Type ${e}`,pn=["msdyn","msdynce","mspp"],Qt=e=>e==null||e===""?null:String(e),gt=e=>String(e??"").toLowerCase(),Ee=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function te(e,c="id"){if(!Ee.test(e))throw new Error(`${c} is not a guid: ${e}`);return e.toLowerCase()}function mn(e){const c=e.match(/\/api\/data\/v\d+(?:\.\d+)*\/(.*)$/i);return c?c[1]:e}const Ae=500;async function fe(e,c,t="primary"){const u=[],i=new Set;let r=c;for(let s=0;r&&s<Ae;s++){const o=await e.queryData(r,t);u.push(...o.value??[]);const p=o["@odata.nextLink"];if(r=typeof p=="string"&&p?mn(p):null,r&&i.has(r))throw new Error(`paging loop at ${r}`);r&&i.add(r)}if(r)throw new Error(`more than ${Ae} pages for ${c.split("?")[0]}`);return u}const Ie=40;async function ee(e,c,t,u,i="primary"){const r=[...new Set(c.map(p=>p.toLowerCase()))].filter(p=>Ee.test(p)),s=[];for(let p=0;p<r.length;p+=Ie)s.push(r.slice(p,p+Ie));return(await Promise.all(s.map(p=>fe(e,u(p.map(w=>`${t} eq ${w}`).join(" or ")),i)))).flat()}async function gn(e,c,t,u=()=>!1){let i=0;const r=async()=>{for(;i<e.length&&!u();){const s=e[i++];await t(s)}};await Promise.all(Array.from({length:Math.min(c,e.length)},r))}async function he(e,c="primary"){const[t,u]=await Promise.all([e.getSolutions(["solutionid","uniquename","friendlyname","version","ismanaged","_publisherid_value"],c),fe(e,"publishers?$select=publisherid,uniquename,customizationprefix",c).catch(()=>[])]),i=new Map(u.map(r=>[gt(r.publisherid),String(r.customizationprefix??"").toLowerCase()]));return t.value.map(r=>{const s=r._publisherid_value?gt(r._publisherid_value):null;return{id:gt(r.solutionid),uniqueName:String(r.uniquename??""),friendlyName:Qt(r.friendlyname)??String(r.uniquename??""),version:String(r.version??""),isManaged:!!r.ismanaged,publisherId:s,prefix:s?i.get(s)??"":""}}).sort((r,s)=>r.friendlyName.localeCompare(s.friendlyName))}async function Ne(e,c){const u=(await e.queryData(`solutions?$select=solutionid,uniquename,ismanaged&$filter=solutionid eq ${te(c,"solution id")}`)).value[0];return u?{isManaged:!!u.ismanaged,uniqueName:String(u.uniquename??"")}:null}async function ze(e,c){return(await fe(e,`solutioncomponents?$select=solutioncomponentid,objectid,componenttype,rootcomponentbehavior,_rootsolutioncomponentid_value&$filter=_solutionid_value eq ${te(c,"solution id")}`)).map(u=>({rowId:gt(u.solutioncomponentid),objectId:gt(u.objectid),type:Number(u.componenttype??0),behavior:u.rootcomponentbehavior==null?null:Number(u.rootcomponentbehavior),rootRowId:u._rootsolutioncomponentid_value?gt(u._rootsolutioncomponentid_value):null}))}function yn(e){const c=e;if(!c)return[];const t=c.EntityCollection;if(Array.isArray(t))return t;if(t&&typeof t=="object"){const u=t.Entities??t.value;if(Array.isArray(u))return u}return Array.isArray(c.value)?c.value:[]}const Pt=(e,c)=>e[c]??e[`_${c}_value`];async function bn(e,c,t){const u=te(c,"component id");if(!Number.isInteger(t))throw new Error(`bad component type ${t}`);const i=await e.queryData(`RetrieveRequiredComponents(ObjectId=${u},ComponentType=${t})`);return yn(i).map(r=>({requiredId:gt(Pt(r,"requiredcomponentobjectid")),requiredType:Number(Pt(r,"requiredcomponenttype")??0),requiredParentId:Pt(r,"requiredcomponentparentid")?gt(Pt(r,"requiredcomponentparentid")):null,requiredBaseSolutionId:Pt(r,"requiredcomponentbasesolutionid")?gt(Pt(r,"requiredcomponentbasesolutionid")):null}))}async function wn(e,c){const t=await ee(e,c,"objectid",i=>`solutioncomponents?$select=objectid,componenttype,_solutionid_value&$filter=${i}`),u=new Map;for(const i of t){const r=gt(i.objectid),s=u.get(r)??[],o=gt(i._solutionid_value);o&&!s.includes(o)&&s.push(o),u.set(r,s)}return u}class Re{constructor(){de(this,"entities",null);de(this,"attributes",new Map);de(this,"names",new Map)}async entitiesById(c){if(this.entities)return this.entities;const t=await c.getAllEntitiesMetadata(["LogicalName","MetadataId","PrimaryNameAttribute"]);return this.entities=new Map(t.value.map(u=>[gt(u.MetadataId),{id:gt(u.MetadataId),logicalName:String(u.LogicalName??""),primaryName:Qt(u.PrimaryNameAttribute)}])),this.entities}async entityByName(c,t){const u=await this.entitiesById(c);for(const i of u.values())if(i.logicalName===t)return i}async attributesOf(c,t){const u=this.attributes.get(t);if(u)return u;const r=(await c.getEntityRelatedMetadata(t,"Attributes",["LogicalName","MetadataId","RequiredLevel"])).value.map(s=>{var o;return{id:gt(s.MetadataId),logicalName:String(s.LogicalName??""),requiredLevel:String(((o=s.RequiredLevel)==null?void 0:o.Value)??s.RequiredLevel??"None")}});return this.attributes.set(t,r),r}async protectedColumns(c,t){const u=await this.entityByName(c,t),i=await this.attributesOf(c,t).catch(()=>[]),r=new Set;u!=null&&u.primaryName&&r.add(u.primaryName);for(const s of i)(s.requiredLevel==="ApplicationRequired"||s.requiredLevel==="SystemRequired")&&r.add(s.logicalName);return[...r]}}const Oe={[it.View]:["savedqueries","savedqueryid","name","returnedtypecode"],[it.Form]:["systemforms","formid","name","objecttypecode"],[it.Chart]:["savedqueryvisualizations","savedqueryvisualizationid","name","primaryentitytypecode"],[it.WebResource]:["webresourceset","webresourceid","name"],[it.Workflow]:["workflows","workflowid","name","primaryentity"],[it.SiteMap]:["sitemaps","sitemapid","sitemapname"],[it.AppModule]:["appmodules","appmoduleid","name"],[it.PluginStep]:["sdkmessageprocessingsteps","sdkmessageprocessingstepid","name"],20:["roles","roleid","name"],300:["canvasapps","canvasappid","name"],372:["connectionreferences","connectionreferenceid","connectionreferencelogicalname"],380:["environmentvariabledefinitions","environmentvariabledefinitionid","schemaname"]};async function vn(e,c,t){var x;const u=(y,v)=>`${y}:${v}`,i=new Map,r=t.filter(y=>{const v=c.names.get(u(y.type,y.id));return v&&i.set(u(y.type,y.id),v),!v});if(!r.length)return i;const s=y=>{i.set(u(y.type,y.id),y),c.names.set(u(y.type,y.id),y)},o=await c.entitiesById(e).catch(()=>new Map);for(const y of r.filter(v=>v.type===it.Entity)){const v=o.get(y.id);v&&s({type:y.type,id:y.id,name:v.logicalName,table:v.logicalName})}const p=new Map;for(const y of r.filter(v=>v.type===it.Attribute)){const v=y.parentId??"";p.set(v,[...p.get(v)??[],y])}for(const[y,v]of p){const d=(x=o.get(y))==null?void 0:x.logicalName;if(!d)continue;const m=await c.attributesOf(e,d).catch(()=>[]);for(const l of v){const g=m.find(h=>h.id===l.id);g&&s({type:l.type,id:l.id,name:g.logicalName,table:d})}}const w=new Map;for(const y of r)Oe[y.type]&&w.set(y.type,[...w.get(y.type)??[],y.id]);await Promise.all([...w].map(async([y,v])=>{const[d,m,l,g]=Oe[y],h=await ee(e,v,m,f=>`${d}?$select=${[m,l,g].filter(Boolean).join(",")}&$filter=${f}`).catch(()=>[]);for(const f of h)s({type:y,id:gt(f[m]),name:Qt(f[l])??gt(f[m]),table:g?Qt(f[g])??void 0:void 0})}));for(const y of r.filter(v=>v.type===it.EntityRelationship||v.type===it.Relationship))try{const v=await e.queryData(`RelationshipDefinitions(${te(y.id)})?$select=SchemaName`);v!=null&&v.SchemaName&&s({type:y.type,id:y.id,name:String(v.SchemaName)})}catch{}for(const y of r)i.has(u(y.type,y.id))||i.set(u(y.type,y.id),{type:y.type,id:y.id,name:y.id});return i}async function $e(e,c){return(await ee(e,c,"formid",u=>`systemforms?$select=formid,name,objecttypecode,formxml&$filter=${u}`)).map(u=>({id:gt(u.formid),name:String(u.name??""),table:String(u.objecttypecode??""),formxml:String(u.formxml??"")}))}async function Be(e,c){return(await ee(e,c,"savedqueryid",u=>`savedqueries?$select=savedqueryid,name,returnedtypecode,fetchxml,layoutxml&$filter=${u}`)).map(u=>({id:gt(u.savedqueryid),name:String(u.name??""),table:String(u.returnedtypecode??""),fetchxml:String(u.fetchxml??""),layoutxml:String(u.layoutxml??"")}))}async function _n(e){var c;try{const t=await e.execute({operationName:"RetrieveCurrentOrganization",operationType:"function",parameters:{AccessType:"Microsoft.Dynamics.CRM.EndpointAccessType'Default'"}}),u=(c=t==null?void 0:t.Detail)==null?void 0:c.EnvironmentId;return typeof u=="string"&&u?u:null}catch{return null}}const ct=e=>(e??"").trim().toLowerCase();function pe(e,c){const t=new DOMParser().parseFromString(e,"application/xml");if(t.getElementsByTagName("parsererror").length)throw new Error(`${c}: invalid XML`);return t}function me(e,c){const t=/^?\s*<\?xml[^?]*\?>\s*/.exec(c),u=new XMLSerializer().serializeToString(e).replace(/^<\?xml[^?]*\?>\s*/,"");return(t?t[0]:"")+u}const mt=(e,c)=>Array.from(e.getElementsByTagName(c)),qt=(e,c)=>Array.from(e.children).filter(t=>!c||t.localName===c);function Ct(e){var t,u;const c=e.previousSibling;c&&c.nodeType===3&&!(c.nodeValue??"").trim()&&((t=c.parentNode)==null||t.removeChild(c)),(u=e.parentNode)==null||u.removeChild(e)}function Zt(e){if(e.children.length===0&&!(e.textContent??"").trim())for(;e.firstChild;)e.removeChild(e.firstChild)}const ne=(e,c)=>{for(let t=e.parentElement;t;t=t.parentElement)if(t.localName===c)return t;return null},ge=e=>{var t;return e&&(((t=e.getElementsByTagName("label")[0])==null?void 0:t.getAttribute("description"))||e.getAttribute("name")||e.getAttribute("id"))||""},kn=e=>new Set(e.map(c=>{var t;return(t=/^([a-z0-9]+_)/.exec(c))==null?void 0:t[1]}).filter(c=>!!c));function xn(e,c,t,u=[]){var k;const i=new Set(c.map(ct)),r=new Set(t.map(ct)),s=new Set(u.map(ct)),o=[],p=[],w=[],x=_=>!o.includes(_)&&o.push(_),y=(_,C)=>!p.some(A=>A.name===_)&&p.push({name:_,reason:C}),v=pe(e,"formxml"),d=new Set,m=new Set,l=new Set,g=new Set;for(const _ of mt(v,"control")){if(!_.parentNode||!v.documentElement.contains(_))continue;const C=ct(_.getAttribute("datafieldname"));let A=null;if(C&&i.has(C)){if(r.has(C)){y(C,"protected: primary name or ApplicationRequired column");continue}A=C}else if(s.size){const $=_.getElementsByTagName("parameters")[0];if($){const U=ct((k=$.getElementsByTagName("TargetEntityType")[0])==null?void 0:k.textContent),Y=mt($,"QuickFormId").map(E=>ct(E.getAttribute("entityname"))).find(E=>s.has(E));U&&s.has(U)?A=`subgrid ${_.getAttribute("id")??"?"} (${U})`:Y&&(A=`quickview ${_.getAttribute("id")??"?"} (${Y})`)}}if(!A)continue;const N=ne(_,"cell"),F=N&&ne(N,"row");for(const $ of[_.getAttribute("id"),_.getAttribute("uniqueid")])$&&d.add(ct($));C&&A===C&&m.add(C),x(A),N?(Ct(N),F&&l.add(F)):Ct(_)}for(const _ of l){const C=ne(_,"section");if(C&&g.add(C),qt(_,"cell").length===0){const A=_.parentElement;Ct(_),A&&Zt(A)}}const h=new Set;for(const _ of g){const C=ne(_,"tab");if(C&&h.add(C),!mt(_,"row").some(N=>qt(N,"cell").some(F=>F.getElementsByTagName("control").length>0))){w.push(`Section "${ge(_)}"${C?` in tab "${ge(C)}"`:""} became empty and was removed.`);const N=_.parentElement;Ct(_),N&&Zt(N)}}for(const _ of h)mt(_,"control").length===0&&w.push(`Tab "${ge(_)}" is now empty (kept; remove or hide it by hand).`);for(const _ of mt(v,"controlDescription")){const C=ct(_.getAttribute("forControl"));if(C&&d.has(C)){const N=_.parentElement;Ct(_),N&&Zt(N);continue}const A=mt(_,"*").filter(N=>N.children.length===0).map(N=>ct(N.textContent)).find(N=>m.has(N));A&&w.push(`Custom control (controlDescription for ${_.getAttribute("forControl")}) references removed column ${A}; review it by hand.`)}for(const _ of mt(v,"event")){const C=ct(_.getAttribute("attribute"));if(C&&m.has(C)){const A=mt(_,"Handler").map(N=>`${N.getAttribute("libraryName")}:${N.getAttribute("functionName")}`);w.push(`Event "${_.getAttribute("name")}" on removed column ${C} still has handlers${A.length?` (${A.join(", ")})`:""}; review the form events.`)}}const f=kn([...m,...s]);if(o.length&&f.size){const _=new Set,C=[...mt(v,"Library").map(A=>A.getAttribute("name")??""),...mt(v,"Handler").map(A=>A.getAttribute("libraryName")??"")];for(const A of C){const N=ct(A);!N||_.has(N)||(_.add(N),[...f].some(F=>N.startsWith(F)||N.includes("/"+F))&&w.push(`Form library "${A}" belongs to the same publisher as removed components; it may still depend on them.`))}}return{xml:o.length?me(v,e):e,removed:o,kept:p,warnings:w}}function Sn(e,c,t,u){const i=new Set(t.map(ct)),r=new Set(u.map(ct)),s=[],o=[],p=new Set,w=new Set;let x=!1,y=e;if(e.trim()){const d=pe(e,"fetchxml"),m=mt(d,"entity")[0],l=m?qt(m,"order").length:0;for(const _ of mt(d,"link-entity")){if(!d.documentElement.contains(_))continue;const C=ct(_.getAttribute("name")),A=ct(_.getAttribute("alias"));if(r.has(C)){A&&p.add(A);for(const N of mt(_,"link-entity"))N.getAttribute("alias")&&p.add(ct(N.getAttribute("alias")));s.push(`link-entity ${C}${A?` (${A})`:""}`),Ct(_),x=!0}else A&&w.add(A)}for(const _ of mt(d,"link-entity"))for(const C of["from","to"]){const A=ct(_.getAttribute(C));A&&i.has(A)&&o.push(`link-entity ${_.getAttribute("name")} joins ${C}="${A}", a removed column; the view will break until this join is fixed.`)}for(const _ of mt(d,"attribute")){const C=ct(_.getAttribute("name"));i.has(C)&&(s.push(`attribute ${C}`),Ct(_),x=!0)}let g=0;for(const _ of mt(d,"order")){const C=ct(_.getAttribute("attribute")),A=ct(_.getAttribute("entityname"));(i.has(C)||A&&p.has(A))&&(s.push(`order ${A?A+".":""}${C}`),Ct(_),g++,x=!0)}const h=new Set;let f=0;for(const _ of mt(d,"condition")){const C=ct(_.getAttribute("attribute")),A=ct(_.getAttribute("entityname"));if(i.has(C)||A&&p.has(A)){s.push(`condition ${A?A+".":""}${C} ${_.getAttribute("operator")??""}`.trim());const N=_.parentElement;Ct(_),(N==null?void 0:N.localName)==="filter"&&h.add(N),f++,x=!0}}const k=[...h];for(;k.length;){const _=k.shift();if(!_.parentNode||qt(_).some(A=>A.localName==="condition"||A.localName==="filter"))continue;const C=_.parentElement;Ct(_),C&&(Zt(C),C.localName==="filter"&&k.push(C))}f&&o.push(`${f} filter condition(s) removed: the view now returns a different (usually larger) set of rows. Review the filter.`),g&&l>0&&m&&qt(m,"order").length===0&&o.push("The view's only sort order was removed; it will fall back to the default order."),m&&x&&qt(m,"attribute").length===0&&!m.getElementsByTagName("all-attributes").length&&o.push("The root entity has no attributes left in the view."),x&&(y=me(d,e))}let v=c;if(c.trim()){const d=pe(c,"layoutxml");let m=!1;for(const l of mt(d,"cell")){const g=ct(l.getAttribute("name"));if(!g)continue;const h=g.indexOf("."),f=h>=0?g.slice(0,h):"",k=h>=0?g.slice(h+1):g;if(f?p.has(f)||w.has(f)&&i.has(k):i.has(k)){s.push(`cell ${g}`);const C=l.parentElement;Ct(l),C&&Zt(C),m=!0}}for(const l of mt(d,"grid")){const g=ct(l.getAttribute("jump"));g&&i.has(g)&&o.push(`Layout jump column "${g}" was removed; set another primary column for the grid.`)}m&&(v=me(d,c))}return{fetchxml:y,layoutxml:v,removed:s,warnings:o}}const Cn=e=>({type:e.type,id:e.objectId,name:e.name??e.objectId,table:e.table}),re=(e,c)=>[...new Set(e.required.filter(t=>t.type===c).map(t=>t.name))];async function En(e,c,t,u){var g;const i=[],r=u.filter(h=>h.fix==="edit-form"),s=u.filter(h=>h.fix==="edit-view"),[o,p]=await Promise.all([r.length?$e(e,r.map(h=>h.finding.dependent.id)):Promise.resolve([]),s.length?Be(e,s.map(h=>h.finding.dependent.id)):Promise.resolve([])]),w=[];for(const h of r){const f=o.find(_=>_.id===h.finding.dependent.id);if(!f){i.push({name:h.finding.dependent.name,reason:"form not found"});continue}const k=await c.protectedColumns(e,f.table);try{const _=xn(f.formxml,re(h.finding,it.Attribute),k,re(h.finding,it.Entity));_.removed.length?w.push({form:f,after:_.xml,removed:_.removed,kept:_.kept,warnings:_.warnings}):i.push({name:f.name,reason:`nothing to strip${_.kept.length?`: kept ${_.kept.map(C=>`${C.name} (${C.reason})`).join(", ")}`:""}`})}catch(_){i.push({name:f.name,reason:_.message})}}const x=[];for(const h of s){const f=p.find(k=>k.id===h.finding.dependent.id);if(!f){i.push({name:h.finding.dependent.name,reason:"view not found"});continue}try{const k=Sn(f.fetchxml,f.layoutxml,re(h.finding,it.Attribute),re(h.finding,it.Entity));k.removed.length?x.push({view:f,after:{fetchxml:k.fetchxml,layoutxml:k.layoutxml},removed:k.removed,warnings:k.warnings}):i.push({name:f.name,reason:"nothing to strip"})}catch(k){i.push({name:f.name,reason:k.message})}}const y=new Set([...w.map(h=>h.form.id),...x.map(h=>h.view.id)]),v=t.solution.prefix?`${t.solution.prefix}_`:null,d=[];for(const h of u.filter(f=>f.fix==="shell")){const f=(g=h.finding.fixes.find(A=>A.kind==="shell"))==null?void 0:g.root;if(!f||d.some(A=>A.root.id===f.id))continue;const k=t.components.find(A=>A.type===it.Entity&&A.objectId===f.id),_=new Set(t.findings.filter(A=>A.dependent.selfOwned).map(A=>A.dependent.id)),C=t.components.filter(A=>k&&A.rootRowId===k.rowId&&A.rowId!==k.rowId).map(A=>{const N=(A.name??"").toLowerCase();return _.has(A.objectId)?{component:A,keep:!1,why:"belongs to a managed solution in scope"}:y.has(A.objectId)?{component:A,keep:!0,why:"edited in this plan"}:v&&N.startsWith(v)?{component:A,keep:!0,why:`your prefix ${v}`}:{component:A,keep:!1,why:"not yours"}}).sort((A,N)=>Number(N.keep)-Number(A.keep)||A.component.type-N.component.type||(A.component.name??"").localeCompare(N.component.name??""));d.push({root:{...f,behavior:0},leaving:C})}const m=new Set(d.map(h=>{var f;return(f=t.components.find(k=>k.type===it.Entity&&k.objectId===h.root.id))==null?void 0:f.rowId})),l=[];for(const h of u.filter(f=>f.fix==="remove")){const f=t.components.find(k=>k.objectId===h.finding.dependent.id&&k.type===h.finding.dependent.type);if(f!=null&&f.rootRowId&&m.has(f.rootRowId)){i.push({name:h.finding.dependent.name,reason:"leaves with the shell conversion of its table"});continue}l.some(k=>k.id===h.finding.dependent.id)||l.push(h.finding.dependent)}for(const h of u.filter(f=>f.fix==="report"))i.push({name:h.finding.dependent.name,reason:"report only"});return{diagnosis:t,shells:d,removes:l,forms:w,views:x,skipped:i}}function Te(e){const c=[];for(const u of e.shells){c.push({kind:"remove",component:u.root,reason:`convert ${u.root.name} to a shell`}),c.push({kind:"add",component:u.root,doNotIncludeSubcomponents:!0,reason:"re-add as shell (no subcomponents)"});for(const i of u.leaving.filter(r=>r.keep))c.push({kind:"add",component:Cn(i.component),doNotIncludeSubcomponents:!1,reason:`keep: ${i.why}`})}for(const u of e.removes)c.push({kind:"remove",component:u,reason:`remove ${vt(u.type).toLowerCase()}`});for(const u of e.forms)c.push({kind:"update-form",edit:u});for(const u of e.views)c.push({kind:"update-view",edit:u});const t=[...new Set([...e.forms.map(u=>u.form.table),...e.views.map(u=>u.view.table)].filter(Boolean))].sort();return t.length&&c.push({kind:"publish",tables:t}),c}function An(e){const c=t=>t.replace(/[<>&"']/g,u=>`&#${u.charCodeAt(0)};`);return`<importexportxml><entities>${e.map(t=>`<entity>${c(t)}</entity>`).join("")}</entities></importexportxml>`}const In=(e,c)=>({operationName:"RemoveSolutionComponent",operationType:"action",parameters:{ComponentId:e.id,ComponentType:e.type,SolutionUniqueName:c}}),Nn=(e,c,t)=>({operationName:"AddSolutionComponent",operationType:"action",parameters:{ComponentId:e.id,ComponentType:e.type,SolutionUniqueName:c,DoNotIncludeSubcomponents:t,AddRequiredComponents:!1}});async function je(e,c,t,u){const i=[];let r=!1,s=!1;for(let o=0;o<c.length;o++){const p=c[o];if(u==null||u(o,c.length),r&&!(p.kind==="publish"&&s)){i.push({op:p,ok:!1,skipped:!0,error:"not run: an earlier step failed"});continue}try{p.kind==="remove"?await e.execute(In(p.component,t)):p.kind==="add"?await e.execute(Nn(p.component,t,p.doNotIncludeSubcomponents)):p.kind==="update-form"?(await e.update("systemform",p.edit.form.id,{formxml:p.edit.after}),s=!0):p.kind==="update-view"?(await e.update("savedquery",p.edit.view.id,{fetchxml:p.edit.after.fetchxml,layoutxml:p.edit.after.layoutxml}),s=!0):p.kind==="publish"&&await e.execute({operationName:"PublishXml",operationType:"action",parameters:{ParameterXml:An(p.tables)}}),i.push({op:p,ok:!0})}catch(w){r=!0,i.push({op:p,ok:!1,error:w.message??String(w)})}}return u==null||u(c.length,c.length),i}function ye(e){switch(e.kind){case"remove":return`RemoveSolutionComponent ${vt(e.component.type)} ${e.component.name}`;case"add":return`AddSolutionComponent ${vt(e.component.type)} ${e.component.name}${e.doNotIncludeSubcomponents?" (DoNotIncludeSubcomponents)":""}`;case"update-form":return`Update form ${e.edit.form.name} (${e.edit.form.table}): formxml`;case"update-view":return`Update view ${e.edit.view.name} (${e.edit.view.table}): fetchxml + layoutxml`;case"publish":return`PublishXml ${e.tables.join(", ")}`}}const Le=e=>e.replace(/>\s*</g,`>
|
|
2
|
-
<`).split(`
|
|
3
|
-
`);function zn(e,c,t=2){const u=Le(e),i=Le(c);let r=0;for(;r<u.length&&r<i.length&&u[r]===i[r];)r++;let s=0;for(;s<u.length-r&&s<i.length-r&&u[u.length-1-s]===i[i.length-1-s];)s++;const o=u.slice(r,u.length-s),p=i.slice(r,i.length-s),w=[];if(o.length*p.length>4e6)w.push(...o.map(d=>({t:"-",s:d})),...p.map(d=>({t:"+",s:d})));else{const d=o.length,m=p.length,l=Array.from({length:d+1},()=>new Uint32Array(m+1));for(let f=d-1;f>=0;f--)for(let k=m-1;k>=0;k--)l[f][k]=o[f]===p[k]?l[f+1][k+1]+1:Math.max(l[f+1][k],l[f][k+1]);let g=0,h=0;for(;g<d||h<m;)g<d&&h<m&&o[g]===p[h]?(w.push({t:" ",s:o[g++]}),h++):h<m&&(g>=d||l[g][h+1]>=l[g+1][h])?w.push({t:"+",s:p[h++]}):w.push({t:"-",s:o[g++]})}const x=[...u.slice(0,r).map(d=>({t:" ",s:d})),...w,...u.slice(u.length-s).map(d=>({t:" ",s:d}))],y=x.map(()=>!1);x.forEach((d,m)=>{if(d.t!==" ")for(let l=-t;l<=t;l++)x[m+l]&&(y[m+l]=!0)});const v=[];return x.forEach((d,m)=>{y[m]?v.push(d):(v.length===0||v[v.length-1].t!=="…")&&v.push({t:"…",s:""})}),v}const De="sss-dependency-cleaner-backup";function Rn(e,c,t){const u=new Map(e.components.map(i=>[i.rowId,i]));return{kind:De,version:1,takenAt:new Date().toISOString(),environment:{name:e.environment.name,url:e.environment.url},solution:{id:e.solution.id,uniqueName:e.solution.uniqueName,friendlyName:e.solution.friendlyName},membership:e.components.map(i=>{var r;return{objectId:i.objectId,type:i.type,behavior:i.behavior,rootObjectId:i.rootRowId?((r=u.get(i.rootRowId))==null?void 0:r.objectId)??null:null,name:i.name??i.objectId}}),forms:c.forms.map(i=>i.form),views:c.views.map(i=>i.view),operations:t.map(ye)}}function On(e,c=new Date){const t=c.toISOString().replace(/[:.]/g,"-").slice(0,19);return`dependency-cleaner-backup-${e.replace(/[^a-z0-9._-]+/gi,"_")}-${t}.json`}function $n(e){var t;let c;try{c=JSON.parse(e)}catch(u){throw new Error(`not JSON: ${u.message}`)}if((c==null?void 0:c.kind)!==De)throw new Error("not a Dependency Cleaner backup");if(c.version!==1)throw new Error(`unsupported backup version ${String(c.version)}`);if(!((t=c.solution)!=null&&t.uniqueName)||!Array.isArray(c.membership)||!Array.isArray(c.forms)||!Array.isArray(c.views))throw new Error("backup is incomplete");return c}async function Bn(e,c,t,u){const i=t.find(m=>m.uniqueName.toLowerCase()===c.solution.uniqueName.toLowerCase());if(!i)throw new Error(`solution ${c.solution.uniqueName} is not in this environment`);if(i.isManaged)throw new Error(`solution ${i.uniqueName} is managed: writes are refused`);const r=[];c.environment.url&&u&&c.environment.url.replace(/\/+$/,"").toLowerCase()!==u.replace(/\/+$/,"").toLowerCase()&&r.push(`Backup was taken in ${c.environment.name} (${c.environment.url}), not this environment.`);const s=await ze(e,i.id),o=(m,l)=>`${m}:${l}`,p=new Map(s.map(m=>[o(m.type,m.objectId),m])),w=[],x=new Set;for(const m of c.membership.filter(l=>!l.rootObjectId||l.rootObjectId===l.objectId)){const l=p.get(o(m.type,m.objectId)),g={type:m.type,id:m.objectId,name:m.name};l?m.type===it.Entity&&m.behavior===0&&l.behavior!==0&&(w.push({kind:"remove",component:g,reason:"shell → back to all assets"}),w.push({kind:"add",component:g,doNotIncludeSubcomponents:!1,reason:"re-add with all subcomponents"}),x.add(m.objectId)):(w.push({kind:"add",component:g,doNotIncludeSubcomponents:m.behavior!==0,reason:"re-add removed component"}),m.type===it.Entity&&m.behavior===0&&x.add(m.objectId))}for(const m of c.membership.filter(l=>l.rootObjectId&&l.rootObjectId!==l.objectId))p.has(o(m.type,m.objectId))||x.has(m.rootObjectId)||w.push({kind:"add",component:{type:m.type,id:m.objectId,name:m.name},doNotIncludeSubcomponents:!1,reason:"re-add removed subcomponent"});const[y,v]=await Promise.all([c.forms.length?$e(e,c.forms.map(m=>m.id)):Promise.resolve([]),c.views.length?Be(e,c.views.map(m=>m.id)):Promise.resolve([])]),d=new Set;for(const m of c.forms){const l=y.find(g=>g.id===m.id);if(!l){r.push(`Form ${m.name} no longer exists; not restored.`);continue}l.formxml!==m.formxml&&(w.push({kind:"update-form",edit:{form:l,after:m.formxml,removed:[],kept:[],warnings:[]}}),d.add(l.table||m.table))}for(const m of c.views){const l=v.find(g=>g.id===m.id);if(!l){r.push(`View ${m.name} no longer exists; not restored.`);continue}l.fetchxml===m.fetchxml&&l.layoutxml===m.layoutxml||(w.push({kind:"update-view",edit:{view:l,after:{fetchxml:m.fetchxml,layoutxml:m.layoutxml},removed:[],warnings:[]}}),d.add(l.table||m.table))}return d.size&&w.push({kind:"publish",tables:[...d].filter(Boolean).sort()}),{solution:i,ops:w,notes:r}}function Tn(e){return[...new Set(e.split(/[\s,;]+/).map(c=>c.trim().toLowerCase()).filter(Boolean))]}function Ht(e,c,t){const u=t.toLowerCase();return e.some(i=>c?c.prefix.toLowerCase()===i||c.uniqueName.toLowerCase().startsWith(i):u.startsWith(`${i}_`))}const Dt=e=>[...new Set(e.map(c=>c.name))].slice(0,4).join(", ")+(e.length>4?"…":"");function jn(e,c,t,u){var y,v;const i=(d,m)=>({cause:d,fixes:[{kind:"report",label:"Report only: open in maker portal",link:u,note:m}]}),r=e.root&&e.root.behavior===0?e.root:null,s=()=>r?{kind:"shell",label:`Convert table ${r.name} to a shell (remove + add without subcomponents)`,root:r}:null,o={kind:"remove",label:`Remove this ${vt(e.type).toLowerCase()} from the solution`},p=Ht(t,null,e.name),w=(d,...m)=>({cause:d,fixes:m.filter(l=>!!l)}),x=((v=(y=c.find(d=>d.id===e.id))==null?void 0:y.solution)==null?void 0:v.uniqueName)??"a managed solution";if(e.selfOwned&&e.type===it.Entity)return w(`Table ${e.name} belongs to ${x}. Shipping it, even as a shell, needs that solution in the target.`,o,{kind:"report",label:"Report only: open in maker portal",link:u});if(e.selfOwned)return w(r?`${vt(e.type)} ${e.name} belongs to ${x} and came in with table ${r.name}, which is in the solution with all assets.`:`${vt(e.type)} ${e.name} belongs to ${x} and is included directly.`,s(),r?null:o);switch(e.type){case it.Entity:return e.behavior===0?w(`Table added with all assets: its columns, forms and views come along, including ones that need ${Dt(c)}.`,s()??{kind:"shell",label:`Convert table ${e.name} to a shell`,root:{...e,behavior:0}},o):w(`The table itself requires ${Dt(c)}.`,o,{kind:"report",label:"Report only: open in maker portal",link:u});case it.Attribute:return p?w(r?`Column ${e.name} comes with table ${r.name}, which is in the solution with all assets.`:`Column ${e.name} is included directly.`,s(),r?null:o):i(`Your column needs ${Dt(c)} (for example a lookup to that table). This is a real dependency: the target needs the app, or the column has to be changed by hand.`);case it.Relationship:case it.EntityRelationship:return i(`Relationship to ${Dt(c)}. This is a real dependency: the target needs the app, or the relationship has to be deleted by hand.`);case it.Form:return w(`Form uses ${Dt(c)} (a field, subgrid, quick view or library).`,{kind:"edit-form",label:"Edit form: remove those fields (backup first)"},s(),r?null:o);case it.View:return w(`View uses ${Dt(c)} (a column, condition or link-entity).`,{kind:"edit-view",label:"Edit view: strip those columns and link-entities (backup first)"},s(),r?null:o);default:return i(`${vt(e.type)} references ${Dt(c)}. Not edited automatically in v1.`,"Sitemap, app, ribbon, chart, process, web resource and plugin step references are fixed by hand.")}}const Ln=4,Dn=new Set(["default","active","basic"]);class Fe extends Error{constructor(){super("Diagnosis cancelled")}}const Rt=(e,c)=>`${e}:${c}`;async function Fn(e){var g,h;const c=e.cancelled??(()=>!1),t=await ze(e.api,e.solution.id),u=new Set(t.map(f=>f.objectId)),i=new Map(t.map(f=>[f.rowId,f])),r=[],s=new Map;let o=0;if((g=e.onProgress)==null||g.call(e,0,t.length),await gn(t,Ln,async f=>{var C;const k=Rt(f.type,f.objectId);let _=e.reqCache.get(k);if(!_)try{_=await bn(e.api,f.objectId,f.type),e.reqCache.set(k,_)}catch(A){r.push({component:k,error:A.message??String(A)}),_=[]}s.set(f,_.filter(A=>A.requiredId&&A.requiredId!==f.objectId)),(C=e.onProgress)==null||C.call(e,++o,t.length)},c),c())throw new Fe;const p=[...new Set([...s.values()].flat().map(f=>f.requiredId).concat(t.map(f=>f.objectId)))],w=p.length?await wn(e.api,p):new Map,x=new Map(e.allSolutions.map(f=>[f.id,f])),y=f=>({uniqueName:f.uniqueName,friendlyName:f.friendlyName,prefix:f.prefix,isManaged:f.isManaged}),v=t.map(f=>{const k=f.rootRowId?i.get(f.rootRowId):void 0;return{type:f.type,id:f.objectId,parentId:(k==null?void 0:k.type)===it.Entity?k.objectId:null}});for(const f of s.values())for(const k of f)v.push({type:k.requiredType,id:k.requiredId,parentId:k.requiredParentId});const d=await vn(e.api,e.meta,v),m=(f,k)=>d.get(Rt(f,k))??{type:f,id:k,name:k};for(const f of t){const k=m(f.type,f.objectId);f.name=k.name,f.table=k.table}const l=[];for(const[f,k]of s){const _=[],C=new Set,A={requiredId:f.objectId,requiredType:f.type,requiredParentId:null,requiredBaseSolutionId:null},N=[A,...k];let F=!1;for(const T of N){const a=Rt(T.requiredType,T.requiredId);if(C.has(a))continue;C.add(a);const L=m(T.requiredType,T.requiredId),tt=(w.get(T.requiredId)??[]).map(z=>x.get(z)).filter(z=>!!z&&z.isManaged&&z.id!==e.solution.id&&!Dn.has(z.uniqueName.toLowerCase()));if(!tt.length&&u.has(T.requiredId)||T===A&&!tt.length)continue;const q=T.requiredBaseSolutionId?x.get(T.requiredBaseSolutionId):void 0,nt=(q!=null&&q.isManaged?q:void 0)??tt.find(z=>Ht(e.filter,z,L.name))??tt[0]??null,W=Ht(e.filter,nt,L.name),et=!!nt&&!!((h=e.targetSolutions)!=null&&h.has(nt.uniqueName.toLowerCase())),O=!!e.targetSolutions&&!!nt&&!et;!W&&!O||(T===A&&(F=!0),_.push({...L,solution:nt?y(nt):null,solutions:tt.map(z=>z.uniqueName),blocker:!et}))}if(!_.length)continue;const $=m(f.type,f.objectId),U=f.type===it.Entity?f:f.rootRowId?i.get(f.rootRowId):void 0,Y=U&&U.type===it.Entity?{...m(U.type,U.objectId),behavior:U.behavior??0}:null,E=jn({...$,behavior:f.behavior,root:Y,selfOwned:F},_,e.filter,e.link($));l.push({key:Rt(f.type,f.objectId),dependent:{...$,rootBehavior:(Y==null?void 0:Y.behavior)??null,rootTable:Y==null?void 0:Y.name,selfOwned:F},required:_.map(({blocker:T,...a})=>a),cause:E.cause,fixes:E.fixes,status:_.some(T=>T.blocker)?"blocker":"safe"})}return l.sort((f,k)=>(f.status===k.status?0:f.status==="blocker"?-1:1)||f.dependent.type-k.dependent.type||f.dependent.name.localeCompare(k.dependent.name)),{solution:e.solution,environment:e.environment,target:e.target,filter:e.filter,components:t,findings:l,errors:r,takenAt:new Date().toISOString()}}function Pe(e){let c=e==null?"":String(e);return/^[=+\-@\t\r]/.test(c)&&(c=`'${c}`),/[",\r\n]/.test(c)?`"${c.replace(/"/g,'""')}"`:c}function Pn(e){var t;const c=[["status","dependent type","dependent","table","cause","required type","required","required solution","fixes"].map(Pe).join(",")];for(const u of e.findings)for(const i of u.required)c.push([u.status,vt(u.dependent.type),u.dependent.name,u.dependent.table??u.dependent.rootTable??"",u.cause,vt(i.type),i.name,((t=i.solution)==null?void 0:t.uniqueName)??"",u.fixes.map(r=>r.kind).join(" | ")].map(Pe).join(","));return c.join(`
|
|
4
|
-
`)+`
|
|
5
|
-
`}function qn(e){return JSON.stringify({kind:"sss-dependency-cleaner-findings",version:1,takenAt:e.takenAt,environment:e.environment,target:e.target,solution:{uniqueName:e.solution.uniqueName,friendlyName:e.solution.friendlyName,version:e.solution.version},filter:e.filter,findings:e.findings,errors:e.errors},null,2)}const qe=e=>e.replace(/[^a-z0-9._-]+/gi,"_").replace(/^_+|_+$/g,"")||"solution";var ie=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Un(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function oe(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Ue={exports:{}};/*!
|
|
6
|
-
|
|
7
|
-
JSZip v3.10.2 - A JavaScript class for generating and reading zip files
|
|
8
|
-
<http://stuartk.com/jszip>
|
|
9
|
-
|
|
10
|
-
(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
|
|
11
|
-
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
|
|
12
|
-
|
|
13
|
-
JSZip uses the library pako released under the MIT license :
|
|
14
|
-
https://github.com/nodeca/pako/blob/main/LICENSE
|
|
15
|
-
*/(function(e,c){(function(t){e.exports=t()})(function(){return function t(u,i,r){function s(w,x){if(!i[w]){if(!u[w]){var y=typeof oe=="function"&&oe;if(!x&&y)return y(w,!0);if(o)return o(w,!0);var v=new Error("Cannot find module '"+w+"'");throw v.code="MODULE_NOT_FOUND",v}var d=i[w]={exports:{}};u[w][0].call(d.exports,function(m){var l=u[w][1][m];return s(l||m)},d,d.exports,t,u,i,r)}return i[w].exports}for(var o=typeof oe=="function"&&oe,p=0;p<r.length;p++)s(r[p]);return s}({1:[function(t,u,i){var r=t("./utils"),s=t("./support"),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";i.encode=function(p){for(var w,x,y,v,d,m,l,g=[],h=0,f=p.length,k=f,_=r.getTypeOf(p)!=="string";h<p.length;)k=f-h,y=_?(w=p[h++],x=h<f?p[h++]:0,h<f?p[h++]:0):(w=p.charCodeAt(h++),x=h<f?p.charCodeAt(h++):0,h<f?p.charCodeAt(h++):0),v=w>>2,d=(3&w)<<4|x>>4,m=1<k?(15&x)<<2|y>>6:64,l=2<k?63&y:64,g.push(o.charAt(v)+o.charAt(d)+o.charAt(m)+o.charAt(l));return g.join("")},i.decode=function(p){var w,x,y,v,d,m,l=0,g=0,h="data:";if(p.substr(0,h.length)===h)throw new Error("Invalid base64 input, it looks like a data url.");var f,k=3*(p=p.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(p.charAt(p.length-1)===o.charAt(64)&&k--,p.charAt(p.length-2)===o.charAt(64)&&k--,k%1!=0)throw new Error("Invalid base64 input, bad content length.");for(f=s.uint8array?new Uint8Array(0|k):new Array(0|k);l<p.length;)w=o.indexOf(p.charAt(l++))<<2|(v=o.indexOf(p.charAt(l++)))>>4,x=(15&v)<<4|(d=o.indexOf(p.charAt(l++)))>>2,y=(3&d)<<6|(m=o.indexOf(p.charAt(l++))),f[g++]=w,d!==64&&(f[g++]=x),m!==64&&(f[g++]=y);return f}},{"./support":30,"./utils":32}],2:[function(t,u,i){var r=t("./external"),s=t("./stream/DataWorker"),o=t("./stream/Crc32Probe"),p=t("./stream/DataLengthProbe");function w(x,y,v,d,m){this.compressedSize=x,this.uncompressedSize=y,this.crc32=v,this.compression=d,this.compressedContent=m}w.prototype={getContentWorker:function(){var x=new s(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new p("data_length")),y=this;return x.on("end",function(){if(this.streamInfo.data_length!==y.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),x},getCompressedWorker:function(){return new s(r.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},w.createWorkerFrom=function(x,y,v){return x.pipe(new o).pipe(new p("uncompressedSize")).pipe(y.compressWorker(v)).pipe(new p("compressedSize")).withStreamInfo("compression",y)},u.exports=w},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,u,i){var r=t("./stream/GenericWorker");i.STORE={magic:"\0\0",compressWorker:function(){return new r("STORE compression")},uncompressWorker:function(){return new r("STORE decompression")}},i.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,u,i){var r=t("./utils"),s=function(){for(var o,p=[],w=0;w<256;w++){o=w;for(var x=0;x<8;x++)o=1&o?3988292384^o>>>1:o>>>1;p[w]=o}return p}();u.exports=function(o,p){return o!==void 0&&o.length?r.getTypeOf(o)!=="string"?function(w,x,y,v){var d=s,m=v+y;w^=-1;for(var l=v;l<m;l++)w=w>>>8^d[255&(w^x[l])];return-1^w}(0|p,o,o.length,0):function(w,x,y,v){var d=s,m=v+y;w^=-1;for(var l=v;l<m;l++)w=w>>>8^d[255&(w^x.charCodeAt(l))];return-1^w}(0|p,o,o.length,0):0}},{"./utils":32}],5:[function(t,u,i){i.base64=!1,i.binary=!1,i.dir=!1,i.createFolders=!0,i.date=null,i.compression=null,i.compressionOptions=null,i.comment=null,i.unixPermissions=null,i.dosPermissions=null},{}],6:[function(t,u,i){var r=null;r=typeof Promise<"u"?Promise:t("lie"),u.exports={Promise:r}},{lie:37}],7:[function(t,u,i){var r=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",s=t("pako"),o=t("./utils"),p=t("./stream/GenericWorker"),w=r?"uint8array":"array";function x(y,v){p.call(this,"FlateWorker/"+y),this._pako=null,this._pakoAction=y,this._pakoOptions=v,this.meta={}}i.magic="\b\0",o.inherits(x,p),x.prototype.processChunk=function(y){this.meta=y.meta,this._pako===null&&this._createPako(),this._pako.push(o.transformTo(w,y.data),!1)},x.prototype.flush=function(){p.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},x.prototype.cleanUp=function(){p.prototype.cleanUp.call(this),this._pako=null},x.prototype._createPako=function(){this._pako=new s[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var y=this;this._pako.onData=function(v){y.push({data:v,meta:y.meta})}},i.compressWorker=function(y){return new x("Deflate",y)},i.uncompressWorker=function(){return new x("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,u,i){function r(d,m){var l,g="";for(l=0;l<m;l++)g+=String.fromCharCode(255&d),d>>>=8;return g}function s(d,m,l,g,h,f){var k,_,C=d.file,A=d.compression,N=f!==w.utf8encode,F=o.transformTo("string",f(C.name)),$=o.transformTo("string",w.utf8encode(C.name)),U=C.comment,Y=o.transformTo("string",f(U)),E=o.transformTo("string",w.utf8encode(U)),T=$.length!==C.name.length,a=E.length!==U.length,L="",tt="",q="",nt=C.dir,W=C.date,et={crc32:0,compressedSize:0,uncompressedSize:0};m&&!l||(et.crc32=d.crc32,et.compressedSize=d.compressedSize,et.uncompressedSize=d.uncompressedSize);var O=0;m&&(O|=8),N||!T&&!a||(O|=2048);var z=0,Q=0;nt&&(z|=16),h==="UNIX"?(Q=798,z|=function(G,dt){var bt=G;return G||(bt=dt?16893:33204),(65535&bt)<<16}(C.unixPermissions,nt)):(Q=20,z|=function(G){return 63&(G||0)}(C.dosPermissions)),k=W.getUTCHours(),k<<=6,k|=W.getUTCMinutes(),k<<=5,k|=W.getUTCSeconds()/2,_=W.getUTCFullYear()-1980,_<<=4,_|=W.getUTCMonth()+1,_<<=5,_|=W.getUTCDate(),T&&(tt=r(1,1)+r(x(F),4)+$,L+="up"+r(tt.length,2)+tt),a&&(q=r(1,1)+r(x(Y),4)+E,L+="uc"+r(q.length,2)+q);var V="";return V+=`
|
|
16
|
-
\0`,V+=r(O,2),V+=A.magic,V+=r(k,2),V+=r(_,2),V+=r(et.crc32,4),V+=r(et.compressedSize,4),V+=r(et.uncompressedSize,4),V+=r(F.length,2),V+=r(L.length,2),{fileRecord:y.LOCAL_FILE_HEADER+V+F+L,dirRecord:y.CENTRAL_FILE_HEADER+r(Q,2)+V+r(Y.length,2)+"\0\0\0\0"+r(z,4)+r(g,4)+F+L+Y}}var o=t("../utils"),p=t("../stream/GenericWorker"),w=t("../utf8"),x=t("../crc32"),y=t("../signature");function v(d,m,l,g){p.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=m,this.zipPlatform=l,this.encodeFileName=g,this.streamFiles=d,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}o.inherits(v,p),v.prototype.push=function(d){var m=d.meta.percent||0,l=this.entriesCount,g=this._sources.length;this.accumulate?this.contentBuffer.push(d):(this.bytesWritten+=d.data.length,p.prototype.push.call(this,{data:d.data,meta:{currentFile:this.currentFile,percent:l?(m+100*(l-g-1))/l:100}}))},v.prototype.openedSource=function(d){this.currentSourceOffset=this.bytesWritten,this.currentFile=d.file.name;var m=this.streamFiles&&!d.file.dir;if(m){var l=s(d,m,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:l.fileRecord,meta:{percent:0}})}else this.accumulate=!0},v.prototype.closedSource=function(d){this.accumulate=!1;var m=this.streamFiles&&!d.file.dir,l=s(d,m,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(l.dirRecord),m)this.push({data:function(g){return y.DATA_DESCRIPTOR+r(g.crc32,4)+r(g.compressedSize,4)+r(g.uncompressedSize,4)}(d),meta:{percent:100}});else for(this.push({data:l.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},v.prototype.flush=function(){for(var d=this.bytesWritten,m=0;m<this.dirRecords.length;m++)this.push({data:this.dirRecords[m],meta:{percent:100}});var l=this.bytesWritten-d,g=function(h,f,k,_,C){var A=o.transformTo("string",C(_));return y.CENTRAL_DIRECTORY_END+"\0\0\0\0"+r(h,2)+r(h,2)+r(f,4)+r(k,4)+r(A.length,2)+A}(this.dirRecords.length,l,d,this.zipComment,this.encodeFileName);this.push({data:g,meta:{percent:100}})},v.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},v.prototype.registerPrevious=function(d){this._sources.push(d);var m=this;return d.on("data",function(l){m.processChunk(l)}),d.on("end",function(){m.closedSource(m.previous.streamInfo),m._sources.length?m.prepareNextSource():m.end()}),d.on("error",function(l){m.error(l)}),this},v.prototype.resume=function(){return!!p.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},v.prototype.error=function(d){var m=this._sources;if(!p.prototype.error.call(this,d))return!1;for(var l=0;l<m.length;l++)try{m[l].error(d)}catch{}return!0},v.prototype.lock=function(){p.prototype.lock.call(this);for(var d=this._sources,m=0;m<d.length;m++)d[m].lock()},u.exports=v},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(t,u,i){var r=t("../compressions"),s=t("./ZipFileWorker");i.generateWorker=function(o,p,w){var x=new s(p.streamFiles,w,p.platform,p.encodeFileName),y=0;try{o.forEach(function(v,d){y++;var m=function(f,k){var _=f||k,C=r[_];if(!C)throw new Error(_+" is not a valid compression method !");return C}(d.options.compression,p.compression),l=d.options.compressionOptions||p.compressionOptions||{},g=d.dir,h=d.date;d._compressWorker(m,l).withStreamInfo("file",{name:v,dir:g,date:h,comment:d.comment||"",unixPermissions:d.unixPermissions,dosPermissions:d.dosPermissions}).pipe(x)}),x.entriesCount=y}catch(v){x.error(v)}return x}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(t,u,i){function r(){if(!(this instanceof r))return new r;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var s=new r;for(var o in this)typeof this[o]!="function"&&(s[o]=this[o]);return s}}(r.prototype=t("./object")).loadAsync=t("./load"),r.support=t("./support"),r.defaults=t("./defaults"),r.version="3.10.2",r.loadAsync=function(s,o){return new r().loadAsync(s,o)},r.external=t("./external"),u.exports=r},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(t,u,i){var r=t("./utils"),s=t("./external"),o=t("./utf8"),p=t("./zipEntries"),w=t("./stream/Crc32Probe"),x=t("./nodejsUtils");function y(v){return new s.Promise(function(d,m){var l=v.decompressed.getContentWorker().pipe(new w);l.on("error",function(g){m(g)}).on("end",function(){l.streamInfo.crc32!==v.decompressed.crc32?m(new Error("Corrupted zip : CRC32 mismatch")):d()}).resume()})}u.exports=function(v,d){var m=this;return d=r.extend(d||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:o.utf8decode}),x.isNode&&x.isStream(v)?s.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):r.prepareContent("the loaded zip file",v,!0,d.optimizedBinaryString,d.base64).then(function(l){var g=new p(d);return g.load(l),g}).then(function(l){var g=[s.Promise.resolve(l)],h=l.files;if(d.checkCRC32)for(var f=0;f<h.length;f++)g.push(y(h[f]));return s.Promise.all(g)}).then(function(l){for(var g=l.shift(),h=g.files,f=0;f<h.length;f++){var k=h[f],_=k.fileNameStr,C=r.resolve(k.fileNameStr);m.file(C,k.decompressed,{binary:!0,optimizedBinaryString:!0,date:k.date,dir:k.dir,comment:k.fileCommentStr.length?k.fileCommentStr:null,unixPermissions:k.unixPermissions,dosPermissions:k.dosPermissions,createFolders:d.createFolders}),k.dir||(m.file(C).unsafeOriginalName=_)}return g.zipComment.length&&(m.comment=g.zipComment),m})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(t,u,i){var r=t("../utils"),s=t("../stream/GenericWorker");function o(p,w){s.call(this,"Nodejs stream input adapter for "+p),this._upstreamEnded=!1,this._bindStream(w)}r.inherits(o,s),o.prototype._bindStream=function(p){var w=this;(this._stream=p).pause(),p.on("data",function(x){w.push({data:x,meta:{percent:0}})}).on("error",function(x){w.isPaused?this.generatedError=x:w.error(x)}).on("end",function(){w.isPaused?w._upstreamEnded=!0:w.end()})},o.prototype.pause=function(){return!!s.prototype.pause.call(this)&&(this._stream.pause(),!0)},o.prototype.resume=function(){return!!s.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},u.exports=o},{"../stream/GenericWorker":28,"../utils":32}],13:[function(t,u,i){var r=t("readable-stream").Readable;function s(o,p,w){r.call(this,p),this._helper=o;var x=this;o.on("data",function(y,v){x.push(y)||x._helper.pause(),w&&w(v)}).on("error",function(y){x.emit("error",y)}).on("end",function(){x.push(null)})}t("../utils").inherits(s,r),s.prototype._read=function(){this._helper.resume()},u.exports=s},{"../utils":32,"readable-stream":16}],14:[function(t,u,i){u.exports={isNode:typeof Buffer<"u",newBufferFrom:function(r,s){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(r,s);if(typeof r=="number")throw new Error('The "data" argument must not be a number');return new Buffer(r,s)},allocBuffer:function(r){if(Buffer.alloc)return Buffer.alloc(r);var s=new Buffer(r);return s.fill(0),s},isBuffer:function(r){return Buffer.isBuffer(r)},isStream:function(r){return r&&typeof r.on=="function"&&typeof r.pause=="function"&&typeof r.resume=="function"}}},{}],15:[function(t,u,i){function r(C,A,N){var F,$=o.getTypeOf(A),U=o.extend(N||{},x);U.date=U.date||new Date,U.compression!==null&&(U.compression=U.compression.toUpperCase()),typeof U.unixPermissions=="string"&&(U.unixPermissions=parseInt(U.unixPermissions,8)),U.unixPermissions&&16384&U.unixPermissions&&(U.dir=!0),U.dosPermissions&&16&U.dosPermissions&&(U.dir=!0),U.dir&&(C=h(C)),U.createFolders&&(F=g(C))&&f.call(this,F,!0);var Y=$==="string"&&U.binary===!1&&U.base64===!1;N&&N.binary!==void 0||(U.binary=!Y),(A instanceof y&&A.uncompressedSize===0||U.dir||!A||A.length===0)&&(U.base64=!1,U.binary=!0,A="",U.compression="STORE",$="string");var E=null;E=A instanceof y||A instanceof p?A:m.isNode&&m.isStream(A)?new l(C,A):o.prepareContent(C,A,U.binary,U.optimizedBinaryString,U.base64);var T=new v(C,E,U);this.files[C]=T}var s=t("./utf8"),o=t("./utils"),p=t("./stream/GenericWorker"),w=t("./stream/StreamHelper"),x=t("./defaults"),y=t("./compressedObject"),v=t("./zipObject"),d=t("./generate"),m=t("./nodejsUtils"),l=t("./nodejs/NodejsStreamInputAdapter"),g=function(C){C.slice(-1)==="/"&&(C=C.substring(0,C.length-1));var A=C.lastIndexOf("/");return 0<A?C.substring(0,A):""},h=function(C){return C.slice(-1)!=="/"&&(C+="/"),C},f=function(C,A){return A=A!==void 0?A:x.createFolders,C=h(C),this.files[C]||r.call(this,C,null,{dir:!0,createFolders:A}),this.files[C]};function k(C){return Object.prototype.toString.call(C)==="[object RegExp]"}var _={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(C){var A,N,F;for(A in this.files)F=this.files[A],(N=A.slice(this.root.length,A.length))&&A.slice(0,this.root.length)===this.root&&C(N,F)},filter:function(C){var A=[];return this.forEach(function(N,F){C(N,F)&&A.push(F)}),A},file:function(C,A,N){if(arguments.length!==1)return C=this.root+C,r.call(this,C,A,N),this;if(k(C)){var F=C;return this.filter(function(U,Y){return!Y.dir&&F.test(U)})}var $=this.files[this.root+C];return $&&!$.dir?$:null},folder:function(C){if(!C)return this;if(k(C))return this.filter(function($,U){return U.dir&&C.test($)});var A=this.root+C,N=f.call(this,A),F=this.clone();return F.root=N.name,F},remove:function(C){C=this.root+C;var A=this.files[C];if(A||(C.slice(-1)!=="/"&&(C+="/"),A=this.files[C]),A&&!A.dir)delete this.files[C];else for(var N=this.filter(function($,U){return U.name.slice(0,C.length)===C}),F=0;F<N.length;F++)delete this.files[N[F].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(C){var A,N={};try{if((N=o.extend(C||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:s.utf8encode})).type=N.type.toLowerCase(),N.compression=N.compression.toUpperCase(),N.type==="binarystring"&&(N.type="string"),!N.type)throw new Error("No output type specified.");o.checkSupport(N.type),N.platform!=="darwin"&&N.platform!=="freebsd"&&N.platform!=="linux"&&N.platform!=="sunos"||(N.platform="UNIX"),N.platform==="win32"&&(N.platform="DOS");var F=N.comment||this.comment||"";A=d.generateWorker(this,N,F)}catch($){(A=new p("error")).error($)}return new w(A,N.type||"string",N.mimeType)},generateAsync:function(C,A){return this.generateInternalStream(C).accumulate(A)},generateNodeStream:function(C,A){return(C=C||{}).type||(C.type="nodebuffer"),this.generateInternalStream(C).toNodejsStream(A)}};u.exports=_},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(t,u,i){u.exports=t("stream")},{stream:void 0}],17:[function(t,u,i){var r=t("./DataReader");function s(o){r.call(this,o);for(var p=0;p<this.data.length;p++)o[p]=255&o[p]}t("../utils").inherits(s,r),s.prototype.byteAt=function(o){return this.data[this.zero+o]},s.prototype.lastIndexOfSignature=function(o){for(var p=o.charCodeAt(0),w=o.charCodeAt(1),x=o.charCodeAt(2),y=o.charCodeAt(3),v=this.length-4;0<=v;--v)if(this.data[v]===p&&this.data[v+1]===w&&this.data[v+2]===x&&this.data[v+3]===y)return v-this.zero;return-1},s.prototype.readAndCheckSignature=function(o){var p=o.charCodeAt(0),w=o.charCodeAt(1),x=o.charCodeAt(2),y=o.charCodeAt(3),v=this.readData(4);return p===v[0]&&w===v[1]&&x===v[2]&&y===v[3]},s.prototype.readData=function(o){if(this.checkOffset(o),o===0)return[];var p=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,p},u.exports=s},{"../utils":32,"./DataReader":18}],18:[function(t,u,i){var r=t("../utils");function s(o){this.data=o,this.length=o.length,this.index=0,this.zero=0}s.prototype={checkOffset:function(o){this.checkIndex(this.index+o)},checkIndex:function(o){if(this.length<this.zero+o||o<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+o+"). Corrupted zip ?")},setIndex:function(o){this.checkIndex(o),this.index=o},skip:function(o){this.setIndex(this.index+o)},byteAt:function(){},readInt:function(o){var p,w=0;for(this.checkOffset(o),p=this.index+o-1;p>=this.index;p--)w=(w<<8)+this.byteAt(p);return this.index+=o,w},readString:function(o){return r.transformTo("string",this.readData(o))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var o=this.readInt(4);return new Date(Date.UTC(1980+(o>>25&127),(o>>21&15)-1,o>>16&31,o>>11&31,o>>5&63,(31&o)<<1))}},u.exports=s},{"../utils":32}],19:[function(t,u,i){var r=t("./Uint8ArrayReader");function s(o){r.call(this,o)}t("../utils").inherits(s,r),s.prototype.readData=function(o){this.checkOffset(o);var p=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,p},u.exports=s},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,u,i){var r=t("./DataReader");function s(o){r.call(this,o)}t("../utils").inherits(s,r),s.prototype.byteAt=function(o){return this.data.charCodeAt(this.zero+o)},s.prototype.lastIndexOfSignature=function(o){return this.data.lastIndexOf(o)-this.zero},s.prototype.readAndCheckSignature=function(o){return o===this.readData(4)},s.prototype.readData=function(o){this.checkOffset(o);var p=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,p},u.exports=s},{"../utils":32,"./DataReader":18}],21:[function(t,u,i){var r=t("./ArrayReader");function s(o){r.call(this,o)}t("../utils").inherits(s,r),s.prototype.readData=function(o){if(this.checkOffset(o),o===0)return new Uint8Array(0);var p=this.data.subarray(this.zero+this.index,this.zero+this.index+o);return this.index+=o,p},u.exports=s},{"../utils":32,"./ArrayReader":17}],22:[function(t,u,i){var r=t("../utils"),s=t("../support"),o=t("./ArrayReader"),p=t("./StringReader"),w=t("./NodeBufferReader"),x=t("./Uint8ArrayReader");u.exports=function(y){var v=r.getTypeOf(y);return r.checkSupport(v),v!=="string"||s.uint8array?v==="nodebuffer"?new w(y):s.uint8array?new x(r.transformTo("uint8array",y)):new o(r.transformTo("array",y)):new p(y)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,u,i){i.LOCAL_FILE_HEADER="PK",i.CENTRAL_FILE_HEADER="PK",i.CENTRAL_DIRECTORY_END="PK",i.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",i.ZIP64_CENTRAL_DIRECTORY_END="PK",i.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(t,u,i){var r=t("./GenericWorker"),s=t("../utils");function o(p){r.call(this,"ConvertWorker to "+p),this.destType=p}s.inherits(o,r),o.prototype.processChunk=function(p){this.push({data:s.transformTo(this.destType,p.data),meta:p.meta})},u.exports=o},{"../utils":32,"./GenericWorker":28}],25:[function(t,u,i){var r=t("./GenericWorker"),s=t("../crc32");function o(){r.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(o,r),o.prototype.processChunk=function(p){this.streamInfo.crc32=s(p.data,this.streamInfo.crc32||0),this.push(p)},u.exports=o},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,u,i){var r=t("../utils"),s=t("./GenericWorker");function o(p){s.call(this,"DataLengthProbe for "+p),this.propName=p,this.withStreamInfo(p,0)}r.inherits(o,s),o.prototype.processChunk=function(p){if(p){var w=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=w+p.data.length}s.prototype.processChunk.call(this,p)},u.exports=o},{"../utils":32,"./GenericWorker":28}],27:[function(t,u,i){var r=t("../utils"),s=t("./GenericWorker");function o(p){s.call(this,"DataWorker");var w=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,p.then(function(x){w.dataIsReady=!0,w.data=x,w.max=x&&x.length||0,w.type=r.getTypeOf(x),w.isPaused||w._tickAndRepeat()},function(x){w.error(x)})}r.inherits(o,s),o.prototype.cleanUp=function(){s.prototype.cleanUp.call(this),this.data=null},o.prototype.resume=function(){return!!s.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0)},o.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},o.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var p=null,w=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":p=this.data.substring(this.index,w);break;case"uint8array":p=this.data.subarray(this.index,w);break;case"array":case"nodebuffer":p=this.data.slice(this.index,w)}return this.index=w,this.push({data:p,meta:{percent:this.max?this.index/this.max*100:0}})},u.exports=o},{"../utils":32,"./GenericWorker":28}],28:[function(t,u,i){function r(s){this.name=s||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(s){this.emit("data",s)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(s){this.emit("error",s)}return!0},error:function(s){return!this.isFinished&&(this.isPaused?this.generatedError=s:(this.isFinished=!0,this.emit("error",s),this.previous&&this.previous.error(s),this.cleanUp()),!0)},on:function(s,o){return this._listeners[s].push(o),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(s,o){if(this._listeners[s])for(var p=0;p<this._listeners[s].length;p++)this._listeners[s][p].call(this,o)},pipe:function(s){return s.registerPrevious(this)},registerPrevious:function(s){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=s.streamInfo,this.mergeStreamInfo(),this.previous=s;var o=this;return s.on("data",function(p){o.processChunk(p)}),s.on("end",function(){o.end()}),s.on("error",function(p){o.error(p)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var s=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),s=!0),this.previous&&this.previous.resume(),!s},flush:function(){},processChunk:function(s){this.push(s)},withStreamInfo:function(s,o){return this.extraStreamInfo[s]=o,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var s in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,s)&&(this.streamInfo[s]=this.extraStreamInfo[s])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var s="Worker "+this.name;return this.previous?this.previous+" -> "+s:s}},u.exports=r},{}],29:[function(t,u,i){var r=t("../utils"),s=t("./ConvertWorker"),o=t("./GenericWorker"),p=t("../base64"),w=t("../support"),x=t("../external"),y=null;if(w.nodestream)try{y=t("../nodejs/NodejsStreamOutputAdapter")}catch{}function v(m,l){return new x.Promise(function(g,h){var f=[],k=m._internalType,_=m._outputType,C=m._mimeType;m.on("data",function(A,N){f.push(A),l&&l(N)}).on("error",function(A){f=[],h(A)}).on("end",function(){try{var A=function(N,F,$){switch(N){case"blob":return r.newBlob(r.transformTo("arraybuffer",F),$);case"base64":return p.encode(F);default:return r.transformTo(N,F)}}(_,function(N,F){var $,U=0,Y=null,E=0;for($=0;$<F.length;$++)E+=F[$].length;switch(N){case"string":return F.join("");case"array":return Array.prototype.concat.apply([],F);case"uint8array":for(Y=new Uint8Array(E),$=0;$<F.length;$++)Y.set(F[$],U),U+=F[$].length;return Y;case"nodebuffer":return Buffer.concat(F);default:throw new Error("concat : unsupported type '"+N+"'")}}(k,f),C);g(A)}catch(N){h(N)}f=[]}).resume()})}function d(m,l,g){var h=l;switch(l){case"blob":case"arraybuffer":h="uint8array";break;case"base64":h="string"}try{this._internalType=h,this._outputType=l,this._mimeType=g,r.checkSupport(h),this._worker=m.pipe(new s(h)),m.lock()}catch(f){this._worker=new o("error"),this._worker.error(f)}}d.prototype={accumulate:function(m){return v(this,m)},on:function(m,l){var g=this;return m==="data"?this._worker.on(m,function(h){l.call(g,h.data,h.meta)}):this._worker.on(m,function(){r.delay(l,arguments,g)}),this},resume:function(){return r.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(m){if(r.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new y(this,{objectMode:this._outputType!=="nodebuffer"},m)}},u.exports=d},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(t,u,i){if(i.base64=!0,i.array=!0,i.string=!0,i.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",i.nodebuffer=typeof Buffer<"u",i.uint8array=typeof Uint8Array<"u",typeof ArrayBuffer>"u")i.blob=!1;else{var r=new ArrayBuffer(0);try{i.blob=new Blob([r],{type:"application/zip"}).size===0}catch{try{var s=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);s.append(r),i.blob=s.getBlob("application/zip").size===0}catch{i.blob=!1}}}try{i.nodestream=!!t("readable-stream").Readable}catch{i.nodestream=!1}},{"readable-stream":16}],31:[function(t,u,i){for(var r=t("./utils"),s=t("./support"),o=t("./nodejsUtils"),p=t("./stream/GenericWorker"),w=new Array(256),x=0;x<256;x++)w[x]=252<=x?6:248<=x?5:240<=x?4:224<=x?3:192<=x?2:1;w[254]=w[254]=1;function y(){p.call(this,"utf-8 decode"),this.leftOver=null}function v(){p.call(this,"utf-8 encode")}i.utf8encode=function(d){return s.nodebuffer?o.newBufferFrom(d,"utf-8"):function(m){var l,g,h,f,k,_=m.length,C=0;for(f=0;f<_;f++)(64512&(g=m.charCodeAt(f)))==55296&&f+1<_&&(64512&(h=m.charCodeAt(f+1)))==56320&&(g=65536+(g-55296<<10)+(h-56320),f++),C+=g<128?1:g<2048?2:g<65536?3:4;for(l=s.uint8array?new Uint8Array(C):new Array(C),f=k=0;k<C;f++)(64512&(g=m.charCodeAt(f)))==55296&&f+1<_&&(64512&(h=m.charCodeAt(f+1)))==56320&&(g=65536+(g-55296<<10)+(h-56320),f++),g<128?l[k++]=g:(g<2048?l[k++]=192|g>>>6:(g<65536?l[k++]=224|g>>>12:(l[k++]=240|g>>>18,l[k++]=128|g>>>12&63),l[k++]=128|g>>>6&63),l[k++]=128|63&g);return l}(d)},i.utf8decode=function(d){return s.nodebuffer?r.transformTo("nodebuffer",d).toString("utf-8"):function(m){var l,g,h,f,k=m.length,_=new Array(2*k);for(l=g=0;l<k;)if((h=m[l++])<128)_[g++]=h;else if(4<(f=w[h]))_[g++]=65533,l+=f-1;else{for(h&=f===2?31:f===3?15:7;1<f&&l<k;)h=h<<6|63&m[l++],f--;1<f?_[g++]=65533:h<65536?_[g++]=h:(h-=65536,_[g++]=55296|h>>10&1023,_[g++]=56320|1023&h)}return _.length!==g&&(_.subarray?_=_.subarray(0,g):_.length=g),r.applyFromCharCode(_)}(d=r.transformTo(s.uint8array?"uint8array":"array",d))},r.inherits(y,p),y.prototype.processChunk=function(d){var m=r.transformTo(s.uint8array?"uint8array":"array",d.data);if(this.leftOver&&this.leftOver.length){if(s.uint8array){var l=m;(m=new Uint8Array(l.length+this.leftOver.length)).set(this.leftOver,0),m.set(l,this.leftOver.length)}else m=this.leftOver.concat(m);this.leftOver=null}var g=function(f,k){var _;for((k=k||f.length)>f.length&&(k=f.length),_=k-1;0<=_&&(192&f[_])==128;)_--;return _<0||_===0?k:_+w[f[_]]>k?_:k}(m),h=m;g!==m.length&&(s.uint8array?(h=m.subarray(0,g),this.leftOver=m.subarray(g,m.length)):(h=m.slice(0,g),this.leftOver=m.slice(g,m.length))),this.push({data:i.utf8decode(h),meta:d.meta})},y.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:i.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},i.Utf8DecodeWorker=y,r.inherits(v,p),v.prototype.processChunk=function(d){this.push({data:i.utf8encode(d.data),meta:d.meta})},i.Utf8EncodeWorker=v},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,u,i){var r=t("./support"),s=t("./base64"),o=t("./nodejsUtils"),p=t("./external");function w(l){return l}function x(l,g){for(var h=0;h<l.length;++h)g[h]=255&l.charCodeAt(h);return g}t("setimmediate"),i.newBlob=function(l,g){i.checkSupport("blob");try{return new Blob([l],{type:g})}catch{try{var h=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return h.append(l),h.getBlob(g)}catch{throw new Error("Bug : can't construct the Blob.")}}};var y={stringifyByChunk:function(l,g,h){var f=[],k=0,_=l.length;if(_<=h)return String.fromCharCode.apply(null,l);for(;k<_;)g==="array"||g==="nodebuffer"?f.push(String.fromCharCode.apply(null,l.slice(k,Math.min(k+h,_)))):f.push(String.fromCharCode.apply(null,l.subarray(k,Math.min(k+h,_)))),k+=h;return f.join("")},stringifyByChar:function(l){for(var g="",h=0;h<l.length;h++)g+=String.fromCharCode(l[h]);return g},applyCanBeUsed:{uint8array:function(){try{return r.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}}(),nodebuffer:function(){try{return r.nodebuffer&&String.fromCharCode.apply(null,o.allocBuffer(1)).length===1}catch{return!1}}()}};function v(l){var g=65536,h=i.getTypeOf(l),f=!0;if(h==="uint8array"?f=y.applyCanBeUsed.uint8array:h==="nodebuffer"&&(f=y.applyCanBeUsed.nodebuffer),f)for(;1<g;)try{return y.stringifyByChunk(l,h,g)}catch{g=Math.floor(g/2)}return y.stringifyByChar(l)}function d(l,g){for(var h=0;h<l.length;h++)g[h]=l[h];return g}i.applyFromCharCode=v;var m={};m.string={string:w,array:function(l){return x(l,new Array(l.length))},arraybuffer:function(l){return m.string.uint8array(l).buffer},uint8array:function(l){return x(l,new Uint8Array(l.length))},nodebuffer:function(l){return x(l,o.allocBuffer(l.length))}},m.array={string:v,array:w,arraybuffer:function(l){return new Uint8Array(l).buffer},uint8array:function(l){return new Uint8Array(l)},nodebuffer:function(l){return o.newBufferFrom(l)}},m.arraybuffer={string:function(l){return v(new Uint8Array(l))},array:function(l){return d(new Uint8Array(l),new Array(l.byteLength))},arraybuffer:w,uint8array:function(l){return new Uint8Array(l)},nodebuffer:function(l){return o.newBufferFrom(new Uint8Array(l))}},m.uint8array={string:v,array:function(l){return d(l,new Array(l.length))},arraybuffer:function(l){return l.buffer},uint8array:w,nodebuffer:function(l){return o.newBufferFrom(l)}},m.nodebuffer={string:v,array:function(l){return d(l,new Array(l.length))},arraybuffer:function(l){return m.nodebuffer.uint8array(l).buffer},uint8array:function(l){return d(l,new Uint8Array(l.length))},nodebuffer:w},i.transformTo=function(l,g){if(g=g||"",!l)return g;i.checkSupport(l);var h=i.getTypeOf(g);return m[h][l](g)},i.resolve=function(l){for(var g=l.split("/"),h=[],f=0;f<g.length;f++){var k=g[f];k==="."||k===""&&f!==0&&f!==g.length-1||(k===".."?h.pop():h.push(k))}return h.join("/")},i.getTypeOf=function(l){if(typeof l=="string")return"string";var g=Object.prototype.toString.call(l);return g==="[object Array]"?"array":r.nodebuffer&&o.isBuffer(l)?"nodebuffer":r.uint8array&&g==="[object Uint8Array]"?"uint8array":r.arraybuffer&&g==="[object ArrayBuffer]"?"arraybuffer":void 0},i.checkSupport=function(l){if(!r[l.toLowerCase()])throw new Error(l+" is not supported by this platform")},i.MAX_VALUE_16BITS=65535,i.MAX_VALUE_32BITS=-1,i.pretty=function(l){var g,h,f="";for(h=0;h<(l||"").length;h++)f+="\\x"+((g=l.charCodeAt(h))<16?"0":"")+g.toString(16).toUpperCase();return f},i.delay=function(l,g,h){setImmediate(function(){l.apply(h||null,g||[])})},i.inherits=function(l,g){function h(){}h.prototype=g.prototype,l.prototype=new h},i.extend=function(){var l,g,h={};for(l=0;l<arguments.length;l++)for(g in arguments[l])Object.prototype.hasOwnProperty.call(arguments[l],g)&&h[g]===void 0&&(h[g]=arguments[l][g]);return h},i.prepareContent=function(l,g,h,f,k){return p.Promise.resolve(g).then(function(_){return r.blob&&(_ instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(_))!==-1)?Blob.prototype.arrayBuffer!==void 0?_.arrayBuffer():typeof FileReader<"u"?new p.Promise(function(C,A){var N=new FileReader;N.onload=function(F){C(F.target.result)},N.onerror=function(F){A(F.target.error)},N.readAsArrayBuffer(_)}):p.Promise.reject(new Error(l+" is a Blob, but we have no way of reading it.")):_}).then(function(_){var C=i.getTypeOf(_);return C?(C==="arraybuffer"?_=i.transformTo("uint8array",_):C==="string"&&(k?_=s.decode(_):h&&f!==!0&&(_=function(A){return x(A,r.uint8array?new Uint8Array(A.length):new Array(A.length))}(_))),_):p.Promise.reject(new Error("Can't read the data of '"+l+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(t,u,i){var r=t("./reader/readerFor"),s=t("./utils"),o=t("./signature"),p=t("./zipEntry"),w=t("./support");function x(y){this.files=[],this.loadOptions=y}x.prototype={checkSignature:function(y){if(!this.reader.readAndCheckSignature(y)){this.reader.index-=4;var v=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+s.pretty(v)+", expected "+s.pretty(y)+")")}},isSignature:function(y,v){var d=this.reader.index;this.reader.setIndex(y);var m=this.reader.readString(4)===v;return this.reader.setIndex(d),m},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var y=this.reader.readData(this.zipCommentLength),v=w.uint8array?"uint8array":"array",d=s.transformTo(v,y);this.zipComment=this.loadOptions.decodeFileName(d)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var y,v,d,m=this.zip64EndOfCentralSize-44;0<m;)y=this.reader.readInt(2),v=this.reader.readInt(4),d=this.reader.readData(v),this.zip64ExtensibleData[y]={id:y,length:v,value:d}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var y,v;for(y=0;y<this.files.length;y++)v=this.files[y],this.reader.setIndex(v.localHeaderOffset),this.checkSignature(o.LOCAL_FILE_HEADER),v.readLocalPart(this.reader),v.handleUTF8(),v.processAttributes()},readCentralDir:function(){var y;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(o.CENTRAL_FILE_HEADER);)(y=new p({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(y);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var y=this.reader.lastIndexOfSignature(o.CENTRAL_DIRECTORY_END);if(y<0)throw this.isSignature(0,o.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(y);var v=y;if(this.checkSignature(o.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===s.MAX_VALUE_16BITS||this.diskWithCentralDirStart===s.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===s.MAX_VALUE_16BITS||this.centralDirRecords===s.MAX_VALUE_16BITS||this.centralDirSize===s.MAX_VALUE_32BITS||this.centralDirOffset===s.MAX_VALUE_32BITS){if(this.zip64=!0,(y=this.reader.lastIndexOfSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(y),this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,o.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(o.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var m=v-d;if(0<m)this.isSignature(v,o.CENTRAL_FILE_HEADER)||(this.reader.zero=m);else if(m<0)throw new Error("Corrupted zip: missing "+Math.abs(m)+" bytes.")},prepareReader:function(y){this.reader=r(y)},load:function(y){this.prepareReader(y),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},u.exports=x},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(t,u,i){var r=t("./reader/readerFor"),s=t("./utils"),o=t("./compressedObject"),p=t("./crc32"),w=t("./utf8"),x=t("./compressions"),y=t("./support");function v(d,m){this.options=d,this.loadOptions=m}v.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(d){var m,l;if(d.skip(22),this.fileNameLength=d.readInt(2),l=d.readInt(2),this.fileName=d.readData(this.fileNameLength),d.skip(l),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((m=function(g){for(var h in x)if(Object.prototype.hasOwnProperty.call(x,h)&&x[h].magic===g)return x[h];return null}(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+s.pretty(this.compressionMethod)+" unknown (inner file : "+s.transformTo("string",this.fileName)+")");this.decompressed=new o(this.compressedSize,this.uncompressedSize,this.crc32,m,d.readData(this.compressedSize))},readCentralPart:function(d){this.versionMadeBy=d.readInt(2),d.skip(2),this.bitFlag=d.readInt(2),this.compressionMethod=d.readString(2),this.date=d.readDate(),this.crc32=d.readInt(4),this.compressedSize=d.readInt(4),this.uncompressedSize=d.readInt(4);var m=d.readInt(2);if(this.extraFieldsLength=d.readInt(2),this.fileCommentLength=d.readInt(2),this.diskNumberStart=d.readInt(2),this.internalFileAttributes=d.readInt(2),this.externalFileAttributes=d.readInt(4),this.localHeaderOffset=d.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");d.skip(m),this.readExtraFields(d),this.parseZIP64ExtraField(d),this.fileComment=d.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var d=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),d==0&&(this.dosPermissions=63&this.externalFileAttributes),d==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var d=r(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=d.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=d.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=d.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=d.readInt(4))}},readExtraFields:function(d){var m,l,g,h=d.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});d.index+4<h;)m=d.readInt(2),l=d.readInt(2),g=d.readData(l),this.extraFields[m]={id:m,length:l,value:g};d.setIndex(h)},handleUTF8:function(){var d=y.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=w.utf8decode(this.fileName),this.fileCommentStr=w.utf8decode(this.fileComment);else{var m=this.findExtraFieldUnicodePath();if(m!==null)this.fileNameStr=m;else{var l=s.transformTo(d,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(l)}var g=this.findExtraFieldUnicodeComment();if(g!==null)this.fileCommentStr=g;else{var h=s.transformTo(d,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(h)}}},findExtraFieldUnicodePath:function(){var d=this.extraFields[28789];if(d){var m=r(d.value);return m.readInt(1)!==1||p(this.fileName)!==m.readInt(4)?null:w.utf8decode(m.readData(d.length-5))}return null},findExtraFieldUnicodeComment:function(){var d=this.extraFields[25461];if(d){var m=r(d.value);return m.readInt(1)!==1||p(this.fileComment)!==m.readInt(4)?null:w.utf8decode(m.readData(d.length-5))}return null}},u.exports=v},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(t,u,i){function r(m,l,g){this.name=m,this.dir=g.dir,this.date=g.date,this.comment=g.comment,this.unixPermissions=g.unixPermissions,this.dosPermissions=g.dosPermissions,this._data=l,this._dataBinary=g.binary,this.options={compression:g.compression,compressionOptions:g.compressionOptions}}var s=t("./stream/StreamHelper"),o=t("./stream/DataWorker"),p=t("./utf8"),w=t("./compressedObject"),x=t("./stream/GenericWorker");r.prototype={internalStream:function(m){var l=null,g="string";try{if(!m)throw new Error("No output type specified.");var h=(g=m.toLowerCase())==="string"||g==="text";g!=="binarystring"&&g!=="text"||(g="string"),l=this._decompressWorker();var f=!this._dataBinary;f&&!h&&(l=l.pipe(new p.Utf8EncodeWorker)),!f&&h&&(l=l.pipe(new p.Utf8DecodeWorker))}catch(k){(l=new x("error")).error(k)}return new s(l,g,"")},async:function(m,l){return this.internalStream(m).accumulate(l)},nodeStream:function(m,l){return this.internalStream(m||"nodebuffer").toNodejsStream(l)},_compressWorker:function(m,l){if(this._data instanceof w&&this._data.compression.magic===m.magic)return this._data.getCompressedWorker();var g=this._decompressWorker();return this._dataBinary||(g=g.pipe(new p.Utf8EncodeWorker)),w.createWorkerFrom(g,m,l)},_decompressWorker:function(){return this._data instanceof w?this._data.getContentWorker():this._data instanceof x?this._data:new o(this._data)}};for(var y=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],v=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},d=0;d<y.length;d++)r.prototype[y[d]]=v;u.exports=r},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(t,u,i){(function(r){var s,o,p=r.MutationObserver||r.WebKitMutationObserver;if(p){var w=0,x=new p(m),y=r.document.createTextNode("");x.observe(y,{characterData:!0}),s=function(){y.data=w=++w%2}}else if(r.setImmediate||r.MessageChannel===void 0)s="document"in r&&"onreadystatechange"in r.document.createElement("script")?function(){var l=r.document.createElement("script");l.onreadystatechange=function(){m(),l.onreadystatechange=null,l.parentNode.removeChild(l),l=null},r.document.documentElement.appendChild(l)}:function(){setTimeout(m,0)};else{var v=new r.MessageChannel;v.port1.onmessage=m,s=function(){v.port2.postMessage(0)}}var d=[];function m(){var l,g;o=!0;for(var h=d.length;h;){for(g=d,d=[],l=-1;++l<h;)g[l]();h=d.length}o=!1}u.exports=function(l){d.push(l)!==1||o||s()}}).call(this,typeof ie<"u"?ie:typeof self<"u"?self:typeof window<"u"?window:{})},{}],37:[function(t,u,i){var r=t("immediate");function s(){}var o={},p=["REJECTED"],w=["FULFILLED"],x=["PENDING"];function y(h){if(typeof h!="function")throw new TypeError("resolver must be a function");this.state=x,this.queue=[],this.outcome=void 0,h!==s&&l(this,h)}function v(h,f,k){this.promise=h,typeof f=="function"&&(this.onFulfilled=f,this.callFulfilled=this.otherCallFulfilled),typeof k=="function"&&(this.onRejected=k,this.callRejected=this.otherCallRejected)}function d(h,f,k){r(function(){var _;try{_=f(k)}catch(C){return o.reject(h,C)}_===h?o.reject(h,new TypeError("Cannot resolve promise with itself")):o.resolve(h,_)})}function m(h){var f=h&&h.then;if(h&&(typeof h=="object"||typeof h=="function")&&typeof f=="function")return function(){f.apply(h,arguments)}}function l(h,f){var k=!1;function _(N){k||(k=!0,o.reject(h,N))}function C(N){k||(k=!0,o.resolve(h,N))}var A=g(function(){f(C,_)});A.status==="error"&&_(A.value)}function g(h,f){var k={};try{k.value=h(f),k.status="success"}catch(_){k.status="error",k.value=_}return k}(u.exports=y).prototype.finally=function(h){if(typeof h!="function")return this;var f=this.constructor;return this.then(function(k){return f.resolve(h()).then(function(){return k})},function(k){return f.resolve(h()).then(function(){throw k})})},y.prototype.catch=function(h){return this.then(null,h)},y.prototype.then=function(h,f){if(typeof h!="function"&&this.state===w||typeof f!="function"&&this.state===p)return this;var k=new this.constructor(s);return this.state!==x?d(k,this.state===w?h:f,this.outcome):this.queue.push(new v(k,h,f)),k},v.prototype.callFulfilled=function(h){o.resolve(this.promise,h)},v.prototype.otherCallFulfilled=function(h){d(this.promise,this.onFulfilled,h)},v.prototype.callRejected=function(h){o.reject(this.promise,h)},v.prototype.otherCallRejected=function(h){d(this.promise,this.onRejected,h)},o.resolve=function(h,f){var k=g(m,f);if(k.status==="error")return o.reject(h,k.value);var _=k.value;if(_)l(h,_);else{h.state=w,h.outcome=f;for(var C=-1,A=h.queue.length;++C<A;)h.queue[C].callFulfilled(f)}return h},o.reject=function(h,f){h.state=p,h.outcome=f;for(var k=-1,_=h.queue.length;++k<_;)h.queue[k].callRejected(f);return h},y.resolve=function(h){return h instanceof this?h:o.resolve(new this(s),h)},y.reject=function(h){var f=new this(s);return o.reject(f,h)},y.all=function(h){var f=this;if(Object.prototype.toString.call(h)!=="[object Array]")return this.reject(new TypeError("must be an array"));var k=h.length,_=!1;if(!k)return this.resolve([]);for(var C=new Array(k),A=0,N=-1,F=new this(s);++N<k;)$(h[N],N);return F;function $(U,Y){f.resolve(U).then(function(E){C[Y]=E,++A!==k||_||(_=!0,o.resolve(F,C))},function(E){_||(_=!0,o.reject(F,E))})}},y.race=function(h){var f=this;if(Object.prototype.toString.call(h)!=="[object Array]")return this.reject(new TypeError("must be an array"));var k=h.length,_=!1;if(!k)return this.resolve([]);for(var C=-1,A=new this(s);++C<k;)N=h[C],f.resolve(N).then(function(F){_||(_=!0,o.resolve(A,F))},function(F){_||(_=!0,o.reject(A,F))});var N;return A}},{immediate:36}],38:[function(t,u,i){var r={};(0,t("./lib/utils/common").assign)(r,t("./lib/deflate"),t("./lib/inflate"),t("./lib/zlib/constants")),u.exports=r},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(t,u,i){var r=t("./zlib/deflate"),s=t("./utils/common"),o=t("./utils/strings"),p=t("./zlib/messages"),w=t("./zlib/zstream"),x=Object.prototype.toString,y=0,v=-1,d=0,m=8;function l(h){if(!(this instanceof l))return new l(h);this.options=s.assign({level:v,method:m,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:""},h||{});var f=this.options;f.raw&&0<f.windowBits?f.windowBits=-f.windowBits:f.gzip&&0<f.windowBits&&f.windowBits<16&&(f.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new w,this.strm.avail_out=0;var k=r.deflateInit2(this.strm,f.level,f.method,f.windowBits,f.memLevel,f.strategy);if(k!==y)throw new Error(p[k]);if(f.header&&r.deflateSetHeader(this.strm,f.header),f.dictionary){var _;if(_=typeof f.dictionary=="string"?o.string2buf(f.dictionary):x.call(f.dictionary)==="[object ArrayBuffer]"?new Uint8Array(f.dictionary):f.dictionary,(k=r.deflateSetDictionary(this.strm,_))!==y)throw new Error(p[k]);this._dict_set=!0}}function g(h,f){var k=new l(f);if(k.push(h,!0),k.err)throw k.msg||p[k.err];return k.result}l.prototype.push=function(h,f){var k,_,C=this.strm,A=this.options.chunkSize;if(this.ended)return!1;_=f===~~f?f:f===!0?4:0,typeof h=="string"?C.input=o.string2buf(h):x.call(h)==="[object ArrayBuffer]"?C.input=new Uint8Array(h):C.input=h,C.next_in=0,C.avail_in=C.input.length;do{if(C.avail_out===0&&(C.output=new s.Buf8(A),C.next_out=0,C.avail_out=A),(k=r.deflate(C,_))!==1&&k!==y)return this.onEnd(k),!(this.ended=!0);C.avail_out!==0&&(C.avail_in!==0||_!==4&&_!==2)||(this.options.to==="string"?this.onData(o.buf2binstring(s.shrinkBuf(C.output,C.next_out))):this.onData(s.shrinkBuf(C.output,C.next_out)))}while((0<C.avail_in||C.avail_out===0)&&k!==1);return _===4?(k=r.deflateEnd(this.strm),this.onEnd(k),this.ended=!0,k===y):_!==2||(this.onEnd(y),!(C.avail_out=0))},l.prototype.onData=function(h){this.chunks.push(h)},l.prototype.onEnd=function(h){h===y&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=h,this.msg=this.strm.msg},i.Deflate=l,i.deflate=g,i.deflateRaw=function(h,f){return(f=f||{}).raw=!0,g(h,f)},i.gzip=function(h,f){return(f=f||{}).gzip=!0,g(h,f)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(t,u,i){var r=t("./zlib/inflate"),s=t("./utils/common"),o=t("./utils/strings"),p=t("./zlib/constants"),w=t("./zlib/messages"),x=t("./zlib/zstream"),y=t("./zlib/gzheader"),v=Object.prototype.toString;function d(l){if(!(this instanceof d))return new d(l);this.options=s.assign({chunkSize:16384,windowBits:0,to:""},l||{});var g=this.options;g.raw&&0<=g.windowBits&&g.windowBits<16&&(g.windowBits=-g.windowBits,g.windowBits===0&&(g.windowBits=-15)),!(0<=g.windowBits&&g.windowBits<16)||l&&l.windowBits||(g.windowBits+=32),15<g.windowBits&&g.windowBits<48&&!(15&g.windowBits)&&(g.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new x,this.strm.avail_out=0;var h=r.inflateInit2(this.strm,g.windowBits);if(h!==p.Z_OK)throw new Error(w[h]);this.header=new y,r.inflateGetHeader(this.strm,this.header)}function m(l,g){var h=new d(g);if(h.push(l,!0),h.err)throw h.msg||w[h.err];return h.result}d.prototype.push=function(l,g){var h,f,k,_,C,A,N=this.strm,F=this.options.chunkSize,$=this.options.dictionary,U=!1;if(this.ended)return!1;f=g===~~g?g:g===!0?p.Z_FINISH:p.Z_NO_FLUSH,typeof l=="string"?N.input=o.binstring2buf(l):v.call(l)==="[object ArrayBuffer]"?N.input=new Uint8Array(l):N.input=l,N.next_in=0,N.avail_in=N.input.length;do{if(N.avail_out===0&&(N.output=new s.Buf8(F),N.next_out=0,N.avail_out=F),(h=r.inflate(N,p.Z_NO_FLUSH))===p.Z_NEED_DICT&&$&&(A=typeof $=="string"?o.string2buf($):v.call($)==="[object ArrayBuffer]"?new Uint8Array($):$,h=r.inflateSetDictionary(this.strm,A)),h===p.Z_BUF_ERROR&&U===!0&&(h=p.Z_OK,U=!1),h!==p.Z_STREAM_END&&h!==p.Z_OK)return this.onEnd(h),!(this.ended=!0);N.next_out&&(N.avail_out!==0&&h!==p.Z_STREAM_END&&(N.avail_in!==0||f!==p.Z_FINISH&&f!==p.Z_SYNC_FLUSH)||(this.options.to==="string"?(k=o.utf8border(N.output,N.next_out),_=N.next_out-k,C=o.buf2string(N.output,k),N.next_out=_,N.avail_out=F-_,_&&s.arraySet(N.output,N.output,k,_,0),this.onData(C)):this.onData(s.shrinkBuf(N.output,N.next_out)))),N.avail_in===0&&N.avail_out===0&&(U=!0)}while((0<N.avail_in||N.avail_out===0)&&h!==p.Z_STREAM_END);return h===p.Z_STREAM_END&&(f=p.Z_FINISH),f===p.Z_FINISH?(h=r.inflateEnd(this.strm),this.onEnd(h),this.ended=!0,h===p.Z_OK):f!==p.Z_SYNC_FLUSH||(this.onEnd(p.Z_OK),!(N.avail_out=0))},d.prototype.onData=function(l){this.chunks.push(l)},d.prototype.onEnd=function(l){l===p.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=l,this.msg=this.strm.msg},i.Inflate=d,i.inflate=m,i.inflateRaw=function(l,g){return(g=g||{}).raw=!0,m(l,g)},i.ungzip=m},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(t,u,i){var r=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";i.assign=function(p){for(var w=Array.prototype.slice.call(arguments,1);w.length;){var x=w.shift();if(x){if(typeof x!="object")throw new TypeError(x+"must be non-object");for(var y in x)x.hasOwnProperty(y)&&(p[y]=x[y])}}return p},i.shrinkBuf=function(p,w){return p.length===w?p:p.subarray?p.subarray(0,w):(p.length=w,p)};var s={arraySet:function(p,w,x,y,v){if(w.subarray&&p.subarray)p.set(w.subarray(x,x+y),v);else for(var d=0;d<y;d++)p[v+d]=w[x+d]},flattenChunks:function(p){var w,x,y,v,d,m;for(w=y=0,x=p.length;w<x;w++)y+=p[w].length;for(m=new Uint8Array(y),w=v=0,x=p.length;w<x;w++)d=p[w],m.set(d,v),v+=d.length;return m}},o={arraySet:function(p,w,x,y,v){for(var d=0;d<y;d++)p[v+d]=w[x+d]},flattenChunks:function(p){return[].concat.apply([],p)}};i.setTyped=function(p){p?(i.Buf8=Uint8Array,i.Buf16=Uint16Array,i.Buf32=Int32Array,i.assign(i,s)):(i.Buf8=Array,i.Buf16=Array,i.Buf32=Array,i.assign(i,o))},i.setTyped(r)},{}],42:[function(t,u,i){var r=t("./common"),s=!0,o=!0;try{String.fromCharCode.apply(null,[0])}catch{s=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{o=!1}for(var p=new r.Buf8(256),w=0;w<256;w++)p[w]=252<=w?6:248<=w?5:240<=w?4:224<=w?3:192<=w?2:1;function x(y,v){if(v<65537&&(y.subarray&&o||!y.subarray&&s))return String.fromCharCode.apply(null,r.shrinkBuf(y,v));for(var d="",m=0;m<v;m++)d+=String.fromCharCode(y[m]);return d}p[254]=p[254]=1,i.string2buf=function(y){var v,d,m,l,g,h=y.length,f=0;for(l=0;l<h;l++)(64512&(d=y.charCodeAt(l)))==55296&&l+1<h&&(64512&(m=y.charCodeAt(l+1)))==56320&&(d=65536+(d-55296<<10)+(m-56320),l++),f+=d<128?1:d<2048?2:d<65536?3:4;for(v=new r.Buf8(f),l=g=0;g<f;l++)(64512&(d=y.charCodeAt(l)))==55296&&l+1<h&&(64512&(m=y.charCodeAt(l+1)))==56320&&(d=65536+(d-55296<<10)+(m-56320),l++),d<128?v[g++]=d:(d<2048?v[g++]=192|d>>>6:(d<65536?v[g++]=224|d>>>12:(v[g++]=240|d>>>18,v[g++]=128|d>>>12&63),v[g++]=128|d>>>6&63),v[g++]=128|63&d);return v},i.buf2binstring=function(y){return x(y,y.length)},i.binstring2buf=function(y){for(var v=new r.Buf8(y.length),d=0,m=v.length;d<m;d++)v[d]=y.charCodeAt(d);return v},i.buf2string=function(y,v){var d,m,l,g,h=v||y.length,f=new Array(2*h);for(d=m=0;d<h;)if((l=y[d++])<128)f[m++]=l;else if(4<(g=p[l]))f[m++]=65533,d+=g-1;else{for(l&=g===2?31:g===3?15:7;1<g&&d<h;)l=l<<6|63&y[d++],g--;1<g?f[m++]=65533:l<65536?f[m++]=l:(l-=65536,f[m++]=55296|l>>10&1023,f[m++]=56320|1023&l)}return x(f,m)},i.utf8border=function(y,v){var d;for((v=v||y.length)>y.length&&(v=y.length),d=v-1;0<=d&&(192&y[d])==128;)d--;return d<0||d===0?v:d+p[y[d]]>v?d:v}},{"./common":41}],43:[function(t,u,i){u.exports=function(r,s,o,p){for(var w=65535&r|0,x=r>>>16&65535|0,y=0;o!==0;){for(o-=y=2e3<o?2e3:o;x=x+(w=w+s[p++]|0)|0,--y;);w%=65521,x%=65521}return w|x<<16|0}},{}],44:[function(t,u,i){u.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(t,u,i){var r=function(){for(var s,o=[],p=0;p<256;p++){s=p;for(var w=0;w<8;w++)s=1&s?3988292384^s>>>1:s>>>1;o[p]=s}return o}();u.exports=function(s,o,p,w){var x=r,y=w+p;s^=-1;for(var v=w;v<y;v++)s=s>>>8^x[255&(s^o[v])];return-1^s}},{}],46:[function(t,u,i){var r,s=t("../utils/common"),o=t("./trees"),p=t("./adler32"),w=t("./crc32"),x=t("./messages"),y=0,v=4,d=0,m=-2,l=-1,g=4,h=2,f=8,k=9,_=286,C=30,A=19,N=2*_+1,F=15,$=3,U=258,Y=U+$+1,E=42,T=113,a=1,L=2,tt=3,q=4;function nt(n,j){return n.msg=x[j],j}function W(n){return(n<<1)-(4<n?9:0)}function et(n){for(var j=n.length;0<=--j;)n[j]=0}function O(n){var j=n.state,B=j.pending;B>n.avail_out&&(B=n.avail_out),B!==0&&(s.arraySet(n.output,j.pending_buf,j.pending_out,B,n.next_out),n.next_out+=B,j.pending_out+=B,n.total_out+=B,n.avail_out-=B,j.pending-=B,j.pending===0&&(j.pending_out=0))}function z(n,j){o._tr_flush_block(n,0<=n.block_start?n.block_start:-1,n.strstart-n.block_start,j),n.block_start=n.strstart,O(n.strm)}function Q(n,j){n.pending_buf[n.pending++]=j}function V(n,j){n.pending_buf[n.pending++]=j>>>8&255,n.pending_buf[n.pending++]=255&j}function G(n,j){var B,S,b=n.max_chain_length,I=n.strstart,D=n.prev_length,P=n.nice_match,R=n.strstart>n.w_size-Y?n.strstart-(n.w_size-Y):0,Z=n.window,X=n.w_mask,H=n.prev,J=n.strstart+U,lt=Z[I+D-1],st=Z[I+D];n.prev_length>=n.good_match&&(b>>=2),P>n.lookahead&&(P=n.lookahead);do if(Z[(B=j)+D]===st&&Z[B+D-1]===lt&&Z[B]===Z[I]&&Z[++B]===Z[I+1]){I+=2,B++;do;while(Z[++I]===Z[++B]&&Z[++I]===Z[++B]&&Z[++I]===Z[++B]&&Z[++I]===Z[++B]&&Z[++I]===Z[++B]&&Z[++I]===Z[++B]&&Z[++I]===Z[++B]&&Z[++I]===Z[++B]&&I<J);if(S=U-(J-I),I=J-U,D<S){if(n.match_start=j,P<=(D=S))break;lt=Z[I+D-1],st=Z[I+D]}}while((j=H[j&X])>R&&--b!=0);return D<=n.lookahead?D:n.lookahead}function dt(n){var j,B,S,b,I,D,P,R,Z,X,H=n.w_size;do{if(b=n.window_size-n.lookahead-n.strstart,n.strstart>=H+(H-Y)){for(s.arraySet(n.window,n.window,H,H,0),n.match_start-=H,n.strstart-=H,n.block_start-=H,j=B=n.hash_size;S=n.head[--j],n.head[j]=H<=S?S-H:0,--B;);for(j=B=H;S=n.prev[--j],n.prev[j]=H<=S?S-H:0,--B;);b+=H}if(n.strm.avail_in===0)break;if(D=n.strm,P=n.window,R=n.strstart+n.lookahead,Z=b,X=void 0,X=D.avail_in,Z<X&&(X=Z),B=X===0?0:(D.avail_in-=X,s.arraySet(P,D.input,D.next_in,X,R),D.state.wrap===1?D.adler=p(D.adler,P,X,R):D.state.wrap===2&&(D.adler=w(D.adler,P,X,R)),D.next_in+=X,D.total_in+=X,X),n.lookahead+=B,n.lookahead+n.insert>=$)for(I=n.strstart-n.insert,n.ins_h=n.window[I],n.ins_h=(n.ins_h<<n.hash_shift^n.window[I+1])&n.hash_mask;n.insert&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[I+$-1])&n.hash_mask,n.prev[I&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=I,I++,n.insert--,!(n.lookahead+n.insert<$)););}while(n.lookahead<Y&&n.strm.avail_in!==0)}function bt(n,j){for(var B,S;;){if(n.lookahead<Y){if(dt(n),n.lookahead<Y&&j===y)return a;if(n.lookahead===0)break}if(B=0,n.lookahead>=$&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+$-1])&n.hash_mask,B=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),B!==0&&n.strstart-B<=n.w_size-Y&&(n.match_length=G(n,B)),n.match_length>=$)if(S=o._tr_tally(n,n.strstart-n.match_start,n.match_length-$),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=$){for(n.match_length--;n.strstart++,n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+$-1])&n.hash_mask,B=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart,--n.match_length!=0;);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+1])&n.hash_mask;else S=o._tr_tally(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(S&&(z(n,!1),n.strm.avail_out===0))return a}return n.insert=n.strstart<$-1?n.strstart:$-1,j===v?(z(n,!0),n.strm.avail_out===0?tt:q):n.last_lit&&(z(n,!1),n.strm.avail_out===0)?a:L}function ot(n,j){for(var B,S,b;;){if(n.lookahead<Y){if(dt(n),n.lookahead<Y&&j===y)return a;if(n.lookahead===0)break}if(B=0,n.lookahead>=$&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+$-1])&n.hash_mask,B=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=$-1,B!==0&&n.prev_length<n.max_lazy_match&&n.strstart-B<=n.w_size-Y&&(n.match_length=G(n,B),n.match_length<=5&&(n.strategy===1||n.match_length===$&&4096<n.strstart-n.match_start)&&(n.match_length=$-1)),n.prev_length>=$&&n.match_length<=n.prev_length){for(b=n.strstart+n.lookahead-$,S=o._tr_tally(n,n.strstart-1-n.prev_match,n.prev_length-$),n.lookahead-=n.prev_length-1,n.prev_length-=2;++n.strstart<=b&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+$-1])&n.hash_mask,B=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),--n.prev_length!=0;);if(n.match_available=0,n.match_length=$-1,n.strstart++,S&&(z(n,!1),n.strm.avail_out===0))return a}else if(n.match_available){if((S=o._tr_tally(n,0,n.window[n.strstart-1]))&&z(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return a}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(S=o._tr_tally(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<$-1?n.strstart:$-1,j===v?(z(n,!0),n.strm.avail_out===0?tt:q):n.last_lit&&(z(n,!1),n.strm.avail_out===0)?a:L}function at(n,j,B,S,b){this.good_length=n,this.max_lazy=j,this.nice_length=B,this.max_chain=S,this.func=b}function yt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=f,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new s.Buf16(2*N),this.dyn_dtree=new s.Buf16(2*(2*C+1)),this.bl_tree=new s.Buf16(2*(2*A+1)),et(this.dyn_ltree),et(this.dyn_dtree),et(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new s.Buf16(F+1),this.heap=new s.Buf16(2*_+1),et(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new s.Buf16(2*_+1),et(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function ft(n){var j;return n&&n.state?(n.total_in=n.total_out=0,n.data_type=h,(j=n.state).pending=0,j.pending_out=0,j.wrap<0&&(j.wrap=-j.wrap),j.status=j.wrap?E:T,n.adler=j.wrap===2?0:1,j.last_flush=y,o._tr_init(j),d):nt(n,m)}function Nt(n){var j=ft(n);return j===d&&function(B){B.window_size=2*B.w_size,et(B.head),B.max_lazy_match=r[B.level].max_lazy,B.good_match=r[B.level].good_length,B.nice_match=r[B.level].nice_length,B.max_chain_length=r[B.level].max_chain,B.strstart=0,B.block_start=0,B.lookahead=0,B.insert=0,B.match_length=B.prev_length=$-1,B.match_available=0,B.ins_h=0}(n.state),j}function At(n,j,B,S,b,I){if(!n)return m;var D=1;if(j===l&&(j=6),S<0?(D=0,S=-S):15<S&&(D=2,S-=16),b<1||k<b||B!==f||S<8||15<S||j<0||9<j||I<0||g<I)return nt(n,m);S===8&&(S=9);var P=new yt;return(n.state=P).strm=n,P.wrap=D,P.gzhead=null,P.w_bits=S,P.w_size=1<<P.w_bits,P.w_mask=P.w_size-1,P.hash_bits=b+7,P.hash_size=1<<P.hash_bits,P.hash_mask=P.hash_size-1,P.hash_shift=~~((P.hash_bits+$-1)/$),P.window=new s.Buf8(2*P.w_size),P.head=new s.Buf16(P.hash_size),P.prev=new s.Buf16(P.w_size),P.lit_bufsize=1<<b+6,P.pending_buf_size=4*P.lit_bufsize,P.pending_buf=new s.Buf8(P.pending_buf_size),P.d_buf=1*P.lit_bufsize,P.l_buf=3*P.lit_bufsize,P.level=j,P.strategy=I,P.method=B,Nt(n)}r=[new at(0,0,0,0,function(n,j){var B=65535;for(B>n.pending_buf_size-5&&(B=n.pending_buf_size-5);;){if(n.lookahead<=1){if(dt(n),n.lookahead===0&&j===y)return a;if(n.lookahead===0)break}n.strstart+=n.lookahead,n.lookahead=0;var S=n.block_start+B;if((n.strstart===0||n.strstart>=S)&&(n.lookahead=n.strstart-S,n.strstart=S,z(n,!1),n.strm.avail_out===0)||n.strstart-n.block_start>=n.w_size-Y&&(z(n,!1),n.strm.avail_out===0))return a}return n.insert=0,j===v?(z(n,!0),n.strm.avail_out===0?tt:q):(n.strstart>n.block_start&&(z(n,!1),n.strm.avail_out),a)}),new at(4,4,8,4,bt),new at(4,5,16,8,bt),new at(4,6,32,32,bt),new at(4,4,16,16,ot),new at(8,16,32,32,ot),new at(8,16,128,128,ot),new at(8,32,128,256,ot),new at(32,128,258,1024,ot),new at(32,258,258,4096,ot)],i.deflateInit=function(n,j){return At(n,j,f,15,8,0)},i.deflateInit2=At,i.deflateReset=Nt,i.deflateResetKeep=ft,i.deflateSetHeader=function(n,j){return n&&n.state?n.state.wrap!==2?m:(n.state.gzhead=j,d):m},i.deflate=function(n,j){var B,S,b,I;if(!n||!n.state||5<j||j<0)return n?nt(n,m):m;if(S=n.state,!n.output||!n.input&&n.avail_in!==0||S.status===666&&j!==v)return nt(n,n.avail_out===0?-5:m);if(S.strm=n,B=S.last_flush,S.last_flush=j,S.status===E)if(S.wrap===2)n.adler=0,Q(S,31),Q(S,139),Q(S,8),S.gzhead?(Q(S,(S.gzhead.text?1:0)+(S.gzhead.hcrc?2:0)+(S.gzhead.extra?4:0)+(S.gzhead.name?8:0)+(S.gzhead.comment?16:0)),Q(S,255&S.gzhead.time),Q(S,S.gzhead.time>>8&255),Q(S,S.gzhead.time>>16&255),Q(S,S.gzhead.time>>24&255),Q(S,S.level===9?2:2<=S.strategy||S.level<2?4:0),Q(S,255&S.gzhead.os),S.gzhead.extra&&S.gzhead.extra.length&&(Q(S,255&S.gzhead.extra.length),Q(S,S.gzhead.extra.length>>8&255)),S.gzhead.hcrc&&(n.adler=w(n.adler,S.pending_buf,S.pending,0)),S.gzindex=0,S.status=69):(Q(S,0),Q(S,0),Q(S,0),Q(S,0),Q(S,0),Q(S,S.level===9?2:2<=S.strategy||S.level<2?4:0),Q(S,3),S.status=T);else{var D=f+(S.w_bits-8<<4)<<8;D|=(2<=S.strategy||S.level<2?0:S.level<6?1:S.level===6?2:3)<<6,S.strstart!==0&&(D|=32),D+=31-D%31,S.status=T,V(S,D),S.strstart!==0&&(V(S,n.adler>>>16),V(S,65535&n.adler)),n.adler=1}if(S.status===69)if(S.gzhead.extra){for(b=S.pending;S.gzindex<(65535&S.gzhead.extra.length)&&(S.pending!==S.pending_buf_size||(S.gzhead.hcrc&&S.pending>b&&(n.adler=w(n.adler,S.pending_buf,S.pending-b,b)),O(n),b=S.pending,S.pending!==S.pending_buf_size));)Q(S,255&S.gzhead.extra[S.gzindex]),S.gzindex++;S.gzhead.hcrc&&S.pending>b&&(n.adler=w(n.adler,S.pending_buf,S.pending-b,b)),S.gzindex===S.gzhead.extra.length&&(S.gzindex=0,S.status=73)}else S.status=73;if(S.status===73)if(S.gzhead.name){b=S.pending;do{if(S.pending===S.pending_buf_size&&(S.gzhead.hcrc&&S.pending>b&&(n.adler=w(n.adler,S.pending_buf,S.pending-b,b)),O(n),b=S.pending,S.pending===S.pending_buf_size)){I=1;break}I=S.gzindex<S.gzhead.name.length?255&S.gzhead.name.charCodeAt(S.gzindex++):0,Q(S,I)}while(I!==0);S.gzhead.hcrc&&S.pending>b&&(n.adler=w(n.adler,S.pending_buf,S.pending-b,b)),I===0&&(S.gzindex=0,S.status=91)}else S.status=91;if(S.status===91)if(S.gzhead.comment){b=S.pending;do{if(S.pending===S.pending_buf_size&&(S.gzhead.hcrc&&S.pending>b&&(n.adler=w(n.adler,S.pending_buf,S.pending-b,b)),O(n),b=S.pending,S.pending===S.pending_buf_size)){I=1;break}I=S.gzindex<S.gzhead.comment.length?255&S.gzhead.comment.charCodeAt(S.gzindex++):0,Q(S,I)}while(I!==0);S.gzhead.hcrc&&S.pending>b&&(n.adler=w(n.adler,S.pending_buf,S.pending-b,b)),I===0&&(S.status=103)}else S.status=103;if(S.status===103&&(S.gzhead.hcrc?(S.pending+2>S.pending_buf_size&&O(n),S.pending+2<=S.pending_buf_size&&(Q(S,255&n.adler),Q(S,n.adler>>8&255),n.adler=0,S.status=T)):S.status=T),S.pending!==0){if(O(n),n.avail_out===0)return S.last_flush=-1,d}else if(n.avail_in===0&&W(j)<=W(B)&&j!==v)return nt(n,-5);if(S.status===666&&n.avail_in!==0)return nt(n,-5);if(n.avail_in!==0||S.lookahead!==0||j!==y&&S.status!==666){var P=S.strategy===2?function(R,Z){for(var X;;){if(R.lookahead===0&&(dt(R),R.lookahead===0)){if(Z===y)return a;break}if(R.match_length=0,X=o._tr_tally(R,0,R.window[R.strstart]),R.lookahead--,R.strstart++,X&&(z(R,!1),R.strm.avail_out===0))return a}return R.insert=0,Z===v?(z(R,!0),R.strm.avail_out===0?tt:q):R.last_lit&&(z(R,!1),R.strm.avail_out===0)?a:L}(S,j):S.strategy===3?function(R,Z){for(var X,H,J,lt,st=R.window;;){if(R.lookahead<=U){if(dt(R),R.lookahead<=U&&Z===y)return a;if(R.lookahead===0)break}if(R.match_length=0,R.lookahead>=$&&0<R.strstart&&(H=st[J=R.strstart-1])===st[++J]&&H===st[++J]&&H===st[++J]){lt=R.strstart+U;do;while(H===st[++J]&&H===st[++J]&&H===st[++J]&&H===st[++J]&&H===st[++J]&&H===st[++J]&&H===st[++J]&&H===st[++J]&&J<lt);R.match_length=U-(lt-J),R.match_length>R.lookahead&&(R.match_length=R.lookahead)}if(R.match_length>=$?(X=o._tr_tally(R,1,R.match_length-$),R.lookahead-=R.match_length,R.strstart+=R.match_length,R.match_length=0):(X=o._tr_tally(R,0,R.window[R.strstart]),R.lookahead--,R.strstart++),X&&(z(R,!1),R.strm.avail_out===0))return a}return R.insert=0,Z===v?(z(R,!0),R.strm.avail_out===0?tt:q):R.last_lit&&(z(R,!1),R.strm.avail_out===0)?a:L}(S,j):r[S.level].func(S,j);if(P!==tt&&P!==q||(S.status=666),P===a||P===tt)return n.avail_out===0&&(S.last_flush=-1),d;if(P===L&&(j===1?o._tr_align(S):j!==5&&(o._tr_stored_block(S,0,0,!1),j===3&&(et(S.head),S.lookahead===0&&(S.strstart=0,S.block_start=0,S.insert=0))),O(n),n.avail_out===0))return S.last_flush=-1,d}return j!==v?d:S.wrap<=0?1:(S.wrap===2?(Q(S,255&n.adler),Q(S,n.adler>>8&255),Q(S,n.adler>>16&255),Q(S,n.adler>>24&255),Q(S,255&n.total_in),Q(S,n.total_in>>8&255),Q(S,n.total_in>>16&255),Q(S,n.total_in>>24&255)):(V(S,n.adler>>>16),V(S,65535&n.adler)),O(n),0<S.wrap&&(S.wrap=-S.wrap),S.pending!==0?d:1)},i.deflateEnd=function(n){var j;return n&&n.state?(j=n.state.status)!==E&&j!==69&&j!==73&&j!==91&&j!==103&&j!==T&&j!==666?nt(n,m):(n.state=null,j===T?nt(n,-3):d):m},i.deflateSetDictionary=function(n,j){var B,S,b,I,D,P,R,Z,X=j.length;if(!n||!n.state||(I=(B=n.state).wrap)===2||I===1&&B.status!==E||B.lookahead)return m;for(I===1&&(n.adler=p(n.adler,j,X,0)),B.wrap=0,X>=B.w_size&&(I===0&&(et(B.head),B.strstart=0,B.block_start=0,B.insert=0),Z=new s.Buf8(B.w_size),s.arraySet(Z,j,X-B.w_size,B.w_size,0),j=Z,X=B.w_size),D=n.avail_in,P=n.next_in,R=n.input,n.avail_in=X,n.next_in=0,n.input=j,dt(B);B.lookahead>=$;){for(S=B.strstart,b=B.lookahead-($-1);B.ins_h=(B.ins_h<<B.hash_shift^B.window[S+$-1])&B.hash_mask,B.prev[S&B.w_mask]=B.head[B.ins_h],B.head[B.ins_h]=S,S++,--b;);B.strstart=S,B.lookahead=$-1,dt(B)}return B.strstart+=B.lookahead,B.block_start=B.strstart,B.insert=B.lookahead,B.lookahead=0,B.match_length=B.prev_length=$-1,B.match_available=0,n.next_in=P,n.input=R,n.avail_in=D,B.wrap=I,d},i.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(t,u,i){u.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(t,u,i){u.exports=function(r,s){var o,p,w,x,y,v,d,m,l,g,h,f,k,_,C,A,N,F,$,U,Y,E,T,a,L;o=r.state,p=r.next_in,a=r.input,w=p+(r.avail_in-5),x=r.next_out,L=r.output,y=x-(s-r.avail_out),v=x+(r.avail_out-257),d=o.dmax,m=o.wsize,l=o.whave,g=o.wnext,h=o.window,f=o.hold,k=o.bits,_=o.lencode,C=o.distcode,A=(1<<o.lenbits)-1,N=(1<<o.distbits)-1;t:do{k<15&&(f+=a[p++]<<k,k+=8,f+=a[p++]<<k,k+=8),F=_[f&A];e:for(;;){if(f>>>=$=F>>>24,k-=$,($=F>>>16&255)===0)L[x++]=65535&F;else{if(!(16&$)){if(!(64&$)){F=_[(65535&F)+(f&(1<<$)-1)];continue e}if(32&$){o.mode=12;break t}r.msg="invalid literal/length code",o.mode=30;break t}U=65535&F,($&=15)&&(k<$&&(f+=a[p++]<<k,k+=8),U+=f&(1<<$)-1,f>>>=$,k-=$),k<15&&(f+=a[p++]<<k,k+=8,f+=a[p++]<<k,k+=8),F=C[f&N];n:for(;;){if(f>>>=$=F>>>24,k-=$,!(16&($=F>>>16&255))){if(!(64&$)){F=C[(65535&F)+(f&(1<<$)-1)];continue n}r.msg="invalid distance code",o.mode=30;break t}if(Y=65535&F,k<($&=15)&&(f+=a[p++]<<k,(k+=8)<$&&(f+=a[p++]<<k,k+=8)),d<(Y+=f&(1<<$)-1)){r.msg="invalid distance too far back",o.mode=30;break t}if(f>>>=$,k-=$,($=x-y)<Y){if(l<($=Y-$)&&o.sane){r.msg="invalid distance too far back",o.mode=30;break t}if(T=h,(E=0)===g){if(E+=m-$,$<U){for(U-=$;L[x++]=h[E++],--$;);E=x-Y,T=L}}else if(g<$){if(E+=m+g-$,($-=g)<U){for(U-=$;L[x++]=h[E++],--$;);if(E=0,g<U){for(U-=$=g;L[x++]=h[E++],--$;);E=x-Y,T=L}}}else if(E+=g-$,$<U){for(U-=$;L[x++]=h[E++],--$;);E=x-Y,T=L}for(;2<U;)L[x++]=T[E++],L[x++]=T[E++],L[x++]=T[E++],U-=3;U&&(L[x++]=T[E++],1<U&&(L[x++]=T[E++]))}else{for(E=x-Y;L[x++]=L[E++],L[x++]=L[E++],L[x++]=L[E++],2<(U-=3););U&&(L[x++]=L[E++],1<U&&(L[x++]=L[E++]))}break}}break}}while(p<w&&x<v);p-=U=k>>3,f&=(1<<(k-=U<<3))-1,r.next_in=p,r.next_out=x,r.avail_in=p<w?w-p+5:5-(p-w),r.avail_out=x<v?v-x+257:257-(x-v),o.hold=f,o.bits=k}},{}],49:[function(t,u,i){var r=t("../utils/common"),s=t("./adler32"),o=t("./crc32"),p=t("./inffast"),w=t("./inftrees"),x=1,y=2,v=0,d=-2,m=1,l=852,g=592;function h(E){return(E>>>24&255)+(E>>>8&65280)+((65280&E)<<8)+((255&E)<<24)}function f(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function k(E){var T;return E&&E.state?(T=E.state,E.total_in=E.total_out=T.total=0,E.msg="",T.wrap&&(E.adler=1&T.wrap),T.mode=m,T.last=0,T.havedict=0,T.dmax=32768,T.head=null,T.hold=0,T.bits=0,T.lencode=T.lendyn=new r.Buf32(l),T.distcode=T.distdyn=new r.Buf32(g),T.sane=1,T.back=-1,v):d}function _(E){var T;return E&&E.state?((T=E.state).wsize=0,T.whave=0,T.wnext=0,k(E)):d}function C(E,T){var a,L;return E&&E.state?(L=E.state,T<0?(a=0,T=-T):(a=1+(T>>4),T<48&&(T&=15)),T&&(T<8||15<T)?d:(L.window!==null&&L.wbits!==T&&(L.window=null),L.wrap=a,L.wbits=T,_(E))):d}function A(E,T){var a,L;return E?(L=new f,(E.state=L).window=null,(a=C(E,T))!==v&&(E.state=null),a):d}var N,F,$=!0;function U(E){if($){var T;for(N=new r.Buf32(512),F=new r.Buf32(32),T=0;T<144;)E.lens[T++]=8;for(;T<256;)E.lens[T++]=9;for(;T<280;)E.lens[T++]=7;for(;T<288;)E.lens[T++]=8;for(w(x,E.lens,0,288,N,0,E.work,{bits:9}),T=0;T<32;)E.lens[T++]=5;w(y,E.lens,0,32,F,0,E.work,{bits:5}),$=!1}E.lencode=N,E.lenbits=9,E.distcode=F,E.distbits=5}function Y(E,T,a,L){var tt,q=E.state;return q.window===null&&(q.wsize=1<<q.wbits,q.wnext=0,q.whave=0,q.window=new r.Buf8(q.wsize)),L>=q.wsize?(r.arraySet(q.window,T,a-q.wsize,q.wsize,0),q.wnext=0,q.whave=q.wsize):(L<(tt=q.wsize-q.wnext)&&(tt=L),r.arraySet(q.window,T,a-L,tt,q.wnext),(L-=tt)?(r.arraySet(q.window,T,a-L,L,0),q.wnext=L,q.whave=q.wsize):(q.wnext+=tt,q.wnext===q.wsize&&(q.wnext=0),q.whave<q.wsize&&(q.whave+=tt))),0}i.inflateReset=_,i.inflateReset2=C,i.inflateResetKeep=k,i.inflateInit=function(E){return A(E,15)},i.inflateInit2=A,i.inflate=function(E,T){var a,L,tt,q,nt,W,et,O,z,Q,V,G,dt,bt,ot,at,yt,ft,Nt,At,n,j,B,S,b=0,I=new r.Buf8(4),D=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!E||!E.state||!E.output||!E.input&&E.avail_in!==0)return d;(a=E.state).mode===12&&(a.mode=13),nt=E.next_out,tt=E.output,et=E.avail_out,q=E.next_in,L=E.input,W=E.avail_in,O=a.hold,z=a.bits,Q=W,V=et,j=v;t:for(;;)switch(a.mode){case m:if(a.wrap===0){a.mode=13;break}for(;z<16;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}if(2&a.wrap&&O===35615){I[a.check=0]=255&O,I[1]=O>>>8&255,a.check=o(a.check,I,2,0),z=O=0,a.mode=2;break}if(a.flags=0,a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&O)<<8)+(O>>8))%31){E.msg="incorrect header check",a.mode=30;break}if((15&O)!=8){E.msg="unknown compression method",a.mode=30;break}if(z-=4,n=8+(15&(O>>>=4)),a.wbits===0)a.wbits=n;else if(n>a.wbits){E.msg="invalid window size",a.mode=30;break}a.dmax=1<<n,E.adler=a.check=1,a.mode=512&O?10:12,z=O=0;break;case 2:for(;z<16;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}if(a.flags=O,(255&a.flags)!=8){E.msg="unknown compression method",a.mode=30;break}if(57344&a.flags){E.msg="unknown header flags set",a.mode=30;break}a.head&&(a.head.text=O>>8&1),512&a.flags&&(I[0]=255&O,I[1]=O>>>8&255,a.check=o(a.check,I,2,0)),z=O=0,a.mode=3;case 3:for(;z<32;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}a.head&&(a.head.time=O),512&a.flags&&(I[0]=255&O,I[1]=O>>>8&255,I[2]=O>>>16&255,I[3]=O>>>24&255,a.check=o(a.check,I,4,0)),z=O=0,a.mode=4;case 4:for(;z<16;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}a.head&&(a.head.xflags=255&O,a.head.os=O>>8),512&a.flags&&(I[0]=255&O,I[1]=O>>>8&255,a.check=o(a.check,I,2,0)),z=O=0,a.mode=5;case 5:if(1024&a.flags){for(;z<16;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}a.length=O,a.head&&(a.head.extra_len=O),512&a.flags&&(I[0]=255&O,I[1]=O>>>8&255,a.check=o(a.check,I,2,0)),z=O=0}else a.head&&(a.head.extra=null);a.mode=6;case 6:if(1024&a.flags&&(W<(G=a.length)&&(G=W),G&&(a.head&&(n=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Array(a.head.extra_len)),r.arraySet(a.head.extra,L,q,G,n)),512&a.flags&&(a.check=o(a.check,L,G,q)),W-=G,q+=G,a.length-=G),a.length))break t;a.length=0,a.mode=7;case 7:if(2048&a.flags){if(W===0)break t;for(G=0;n=L[q+G++],a.head&&n&&a.length<65536&&(a.head.name+=String.fromCharCode(n)),n&&G<W;);if(512&a.flags&&(a.check=o(a.check,L,G,q)),W-=G,q+=G,n)break t}else a.head&&(a.head.name=null);a.length=0,a.mode=8;case 8:if(4096&a.flags){if(W===0)break t;for(G=0;n=L[q+G++],a.head&&n&&a.length<65536&&(a.head.comment+=String.fromCharCode(n)),n&&G<W;);if(512&a.flags&&(a.check=o(a.check,L,G,q)),W-=G,q+=G,n)break t}else a.head&&(a.head.comment=null);a.mode=9;case 9:if(512&a.flags){for(;z<16;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}if(O!==(65535&a.check)){E.msg="header crc mismatch",a.mode=30;break}z=O=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),E.adler=a.check=0,a.mode=12;break;case 10:for(;z<32;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}E.adler=a.check=h(O),z=O=0,a.mode=11;case 11:if(a.havedict===0)return E.next_out=nt,E.avail_out=et,E.next_in=q,E.avail_in=W,a.hold=O,a.bits=z,2;E.adler=a.check=1,a.mode=12;case 12:if(T===5||T===6)break t;case 13:if(a.last){O>>>=7&z,z-=7&z,a.mode=27;break}for(;z<3;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}switch(a.last=1&O,z-=1,3&(O>>>=1)){case 0:a.mode=14;break;case 1:if(U(a),a.mode=20,T!==6)break;O>>>=2,z-=2;break t;case 2:a.mode=17;break;case 3:E.msg="invalid block type",a.mode=30}O>>>=2,z-=2;break;case 14:for(O>>>=7&z,z-=7&z;z<32;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}if((65535&O)!=(O>>>16^65535)){E.msg="invalid stored block lengths",a.mode=30;break}if(a.length=65535&O,z=O=0,a.mode=15,T===6)break t;case 15:a.mode=16;case 16:if(G=a.length){if(W<G&&(G=W),et<G&&(G=et),G===0)break t;r.arraySet(tt,L,q,G,nt),W-=G,q+=G,et-=G,nt+=G,a.length-=G;break}a.mode=12;break;case 17:for(;z<14;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}if(a.nlen=257+(31&O),O>>>=5,z-=5,a.ndist=1+(31&O),O>>>=5,z-=5,a.ncode=4+(15&O),O>>>=4,z-=4,286<a.nlen||30<a.ndist){E.msg="too many length or distance symbols",a.mode=30;break}a.have=0,a.mode=18;case 18:for(;a.have<a.ncode;){for(;z<3;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}a.lens[D[a.have++]]=7&O,O>>>=3,z-=3}for(;a.have<19;)a.lens[D[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,B={bits:a.lenbits},j=w(0,a.lens,0,19,a.lencode,0,a.work,B),a.lenbits=B.bits,j){E.msg="invalid code lengths set",a.mode=30;break}a.have=0,a.mode=19;case 19:for(;a.have<a.nlen+a.ndist;){for(;at=(b=a.lencode[O&(1<<a.lenbits)-1])>>>16&255,yt=65535&b,!((ot=b>>>24)<=z);){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}if(yt<16)O>>>=ot,z-=ot,a.lens[a.have++]=yt;else{if(yt===16){for(S=ot+2;z<S;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}if(O>>>=ot,z-=ot,a.have===0){E.msg="invalid bit length repeat",a.mode=30;break}n=a.lens[a.have-1],G=3+(3&O),O>>>=2,z-=2}else if(yt===17){for(S=ot+3;z<S;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}z-=ot,n=0,G=3+(7&(O>>>=ot)),O>>>=3,z-=3}else{for(S=ot+7;z<S;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}z-=ot,n=0,G=11+(127&(O>>>=ot)),O>>>=7,z-=7}if(a.have+G>a.nlen+a.ndist){E.msg="invalid bit length repeat",a.mode=30;break}for(;G--;)a.lens[a.have++]=n}}if(a.mode===30)break;if(a.lens[256]===0){E.msg="invalid code -- missing end-of-block",a.mode=30;break}if(a.lenbits=9,B={bits:a.lenbits},j=w(x,a.lens,0,a.nlen,a.lencode,0,a.work,B),a.lenbits=B.bits,j){E.msg="invalid literal/lengths set",a.mode=30;break}if(a.distbits=6,a.distcode=a.distdyn,B={bits:a.distbits},j=w(y,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,B),a.distbits=B.bits,j){E.msg="invalid distances set",a.mode=30;break}if(a.mode=20,T===6)break t;case 20:a.mode=21;case 21:if(6<=W&&258<=et){E.next_out=nt,E.avail_out=et,E.next_in=q,E.avail_in=W,a.hold=O,a.bits=z,p(E,V),nt=E.next_out,tt=E.output,et=E.avail_out,q=E.next_in,L=E.input,W=E.avail_in,O=a.hold,z=a.bits,a.mode===12&&(a.back=-1);break}for(a.back=0;at=(b=a.lencode[O&(1<<a.lenbits)-1])>>>16&255,yt=65535&b,!((ot=b>>>24)<=z);){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}if(at&&!(240&at)){for(ft=ot,Nt=at,At=yt;at=(b=a.lencode[At+((O&(1<<ft+Nt)-1)>>ft)])>>>16&255,yt=65535&b,!(ft+(ot=b>>>24)<=z);){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}O>>>=ft,z-=ft,a.back+=ft}if(O>>>=ot,z-=ot,a.back+=ot,a.length=yt,at===0){a.mode=26;break}if(32&at){a.back=-1,a.mode=12;break}if(64&at){E.msg="invalid literal/length code",a.mode=30;break}a.extra=15&at,a.mode=22;case 22:if(a.extra){for(S=a.extra;z<S;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}a.length+=O&(1<<a.extra)-1,O>>>=a.extra,z-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=23;case 23:for(;at=(b=a.distcode[O&(1<<a.distbits)-1])>>>16&255,yt=65535&b,!((ot=b>>>24)<=z);){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}if(!(240&at)){for(ft=ot,Nt=at,At=yt;at=(b=a.distcode[At+((O&(1<<ft+Nt)-1)>>ft)])>>>16&255,yt=65535&b,!(ft+(ot=b>>>24)<=z);){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}O>>>=ft,z-=ft,a.back+=ft}if(O>>>=ot,z-=ot,a.back+=ot,64&at){E.msg="invalid distance code",a.mode=30;break}a.offset=yt,a.extra=15&at,a.mode=24;case 24:if(a.extra){for(S=a.extra;z<S;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}a.offset+=O&(1<<a.extra)-1,O>>>=a.extra,z-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){E.msg="invalid distance too far back",a.mode=30;break}a.mode=25;case 25:if(et===0)break t;if(G=V-et,a.offset>G){if((G=a.offset-G)>a.whave&&a.sane){E.msg="invalid distance too far back",a.mode=30;break}dt=G>a.wnext?(G-=a.wnext,a.wsize-G):a.wnext-G,G>a.length&&(G=a.length),bt=a.window}else bt=tt,dt=nt-a.offset,G=a.length;for(et<G&&(G=et),et-=G,a.length-=G;tt[nt++]=bt[dt++],--G;);a.length===0&&(a.mode=21);break;case 26:if(et===0)break t;tt[nt++]=a.length,et--,a.mode=21;break;case 27:if(a.wrap){for(;z<32;){if(W===0)break t;W--,O|=L[q++]<<z,z+=8}if(V-=et,E.total_out+=V,a.total+=V,V&&(E.adler=a.check=a.flags?o(a.check,tt,V,nt-V):s(a.check,tt,V,nt-V)),V=et,(a.flags?O:h(O))!==a.check){E.msg="incorrect data check",a.mode=30;break}z=O=0}a.mode=28;case 28:if(a.wrap&&a.flags){for(;z<32;){if(W===0)break t;W--,O+=L[q++]<<z,z+=8}if(O!==(4294967295&a.total)){E.msg="incorrect length check",a.mode=30;break}z=O=0}a.mode=29;case 29:j=1;break t;case 30:j=-3;break t;case 31:return-4;case 32:default:return d}return E.next_out=nt,E.avail_out=et,E.next_in=q,E.avail_in=W,a.hold=O,a.bits=z,(a.wsize||V!==E.avail_out&&a.mode<30&&(a.mode<27||T!==4))&&Y(E,E.output,E.next_out,V-E.avail_out)?(a.mode=31,-4):(Q-=E.avail_in,V-=E.avail_out,E.total_in+=Q,E.total_out+=V,a.total+=V,a.wrap&&V&&(E.adler=a.check=a.flags?o(a.check,tt,V,E.next_out-V):s(a.check,tt,V,E.next_out-V)),E.data_type=a.bits+(a.last?64:0)+(a.mode===12?128:0)+(a.mode===20||a.mode===15?256:0),(Q==0&&V===0||T===4)&&j===v&&(j=-5),j)},i.inflateEnd=function(E){if(!E||!E.state)return d;var T=E.state;return T.window&&(T.window=null),E.state=null,v},i.inflateGetHeader=function(E,T){var a;return E&&E.state&&2&(a=E.state).wrap?((a.head=T).done=!1,v):d},i.inflateSetDictionary=function(E,T){var a,L=T.length;return E&&E.state?(a=E.state).wrap!==0&&a.mode!==11?d:a.mode===11&&s(1,T,L,0)!==a.check?-3:Y(E,T,L,L)?(a.mode=31,-4):(a.havedict=1,v):d},i.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(t,u,i){var r=t("../utils/common"),s=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],o=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],p=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],w=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];u.exports=function(x,y,v,d,m,l,g,h){var f,k,_,C,A,N,F,$,U,Y=h.bits,E=0,T=0,a=0,L=0,tt=0,q=0,nt=0,W=0,et=0,O=0,z=null,Q=0,V=new r.Buf16(16),G=new r.Buf16(16),dt=null,bt=0;for(E=0;E<=15;E++)V[E]=0;for(T=0;T<d;T++)V[y[v+T]]++;for(tt=Y,L=15;1<=L&&V[L]===0;L--);if(L<tt&&(tt=L),L===0)return m[l++]=20971520,m[l++]=20971520,h.bits=1,0;for(a=1;a<L&&V[a]===0;a++);for(tt<a&&(tt=a),E=W=1;E<=15;E++)if(W<<=1,(W-=V[E])<0)return-1;if(0<W&&(x===0||L!==1))return-1;for(G[1]=0,E=1;E<15;E++)G[E+1]=G[E]+V[E];for(T=0;T<d;T++)y[v+T]!==0&&(g[G[y[v+T]]++]=T);if(N=x===0?(z=dt=g,19):x===1?(z=s,Q-=257,dt=o,bt-=257,256):(z=p,dt=w,-1),E=a,A=l,nt=T=O=0,_=-1,C=(et=1<<(q=tt))-1,x===1&&852<et||x===2&&592<et)return 1;for(;;){for(F=E-nt,U=g[T]<N?($=0,g[T]):g[T]>N?($=dt[bt+g[T]],z[Q+g[T]]):($=96,0),f=1<<E-nt,a=k=1<<q;m[A+(O>>nt)+(k-=f)]=F<<24|$<<16|U|0,k!==0;);for(f=1<<E-1;O&f;)f>>=1;if(f!==0?(O&=f-1,O+=f):O=0,T++,--V[E]==0){if(E===L)break;E=y[v+g[T]]}if(tt<E&&(O&C)!==_){for(nt===0&&(nt=tt),A+=a,W=1<<(q=E-nt);q+nt<L&&!((W-=V[q+nt])<=0);)q++,W<<=1;if(et+=1<<q,x===1&&852<et||x===2&&592<et)return 1;m[_=O&C]=tt<<24|q<<16|A-l|0}}return O!==0&&(m[A+O]=E-nt<<24|64<<16|0),h.bits=tt,0}},{"../utils/common":41}],51:[function(t,u,i){u.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(t,u,i){var r=t("../utils/common"),s=0,o=1;function p(b){for(var I=b.length;0<=--I;)b[I]=0}var w=0,x=29,y=256,v=y+1+x,d=30,m=19,l=2*v+1,g=15,h=16,f=7,k=256,_=16,C=17,A=18,N=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],F=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],$=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],U=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Y=new Array(2*(v+2));p(Y);var E=new Array(2*d);p(E);var T=new Array(512);p(T);var a=new Array(256);p(a);var L=new Array(x);p(L);var tt,q,nt,W=new Array(d);function et(b,I,D,P,R){this.static_tree=b,this.extra_bits=I,this.extra_base=D,this.elems=P,this.max_length=R,this.has_stree=b&&b.length}function O(b,I){this.dyn_tree=b,this.max_code=0,this.stat_desc=I}function z(b){return b<256?T[b]:T[256+(b>>>7)]}function Q(b,I){b.pending_buf[b.pending++]=255&I,b.pending_buf[b.pending++]=I>>>8&255}function V(b,I,D){b.bi_valid>h-D?(b.bi_buf|=I<<b.bi_valid&65535,Q(b,b.bi_buf),b.bi_buf=I>>h-b.bi_valid,b.bi_valid+=D-h):(b.bi_buf|=I<<b.bi_valid&65535,b.bi_valid+=D)}function G(b,I,D){V(b,D[2*I],D[2*I+1])}function dt(b,I){for(var D=0;D|=1&b,b>>>=1,D<<=1,0<--I;);return D>>>1}function bt(b,I,D){var P,R,Z=new Array(g+1),X=0;for(P=1;P<=g;P++)Z[P]=X=X+D[P-1]<<1;for(R=0;R<=I;R++){var H=b[2*R+1];H!==0&&(b[2*R]=dt(Z[H]++,H))}}function ot(b){var I;for(I=0;I<v;I++)b.dyn_ltree[2*I]=0;for(I=0;I<d;I++)b.dyn_dtree[2*I]=0;for(I=0;I<m;I++)b.bl_tree[2*I]=0;b.dyn_ltree[2*k]=1,b.opt_len=b.static_len=0,b.last_lit=b.matches=0}function at(b){8<b.bi_valid?Q(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf),b.bi_buf=0,b.bi_valid=0}function yt(b,I,D,P){var R=2*I,Z=2*D;return b[R]<b[Z]||b[R]===b[Z]&&P[I]<=P[D]}function ft(b,I,D){for(var P=b.heap[D],R=D<<1;R<=b.heap_len&&(R<b.heap_len&&yt(I,b.heap[R+1],b.heap[R],b.depth)&&R++,!yt(I,P,b.heap[R],b.depth));)b.heap[D]=b.heap[R],D=R,R<<=1;b.heap[D]=P}function Nt(b,I,D){var P,R,Z,X,H=0;if(b.last_lit!==0)for(;P=b.pending_buf[b.d_buf+2*H]<<8|b.pending_buf[b.d_buf+2*H+1],R=b.pending_buf[b.l_buf+H],H++,P===0?G(b,R,I):(G(b,(Z=a[R])+y+1,I),(X=N[Z])!==0&&V(b,R-=L[Z],X),G(b,Z=z(--P),D),(X=F[Z])!==0&&V(b,P-=W[Z],X)),H<b.last_lit;);G(b,k,I)}function At(b,I){var D,P,R,Z=I.dyn_tree,X=I.stat_desc.static_tree,H=I.stat_desc.has_stree,J=I.stat_desc.elems,lt=-1;for(b.heap_len=0,b.heap_max=l,D=0;D<J;D++)Z[2*D]!==0?(b.heap[++b.heap_len]=lt=D,b.depth[D]=0):Z[2*D+1]=0;for(;b.heap_len<2;)Z[2*(R=b.heap[++b.heap_len]=lt<2?++lt:0)]=1,b.depth[R]=0,b.opt_len--,H&&(b.static_len-=X[2*R+1]);for(I.max_code=lt,D=b.heap_len>>1;1<=D;D--)ft(b,Z,D);for(R=J;D=b.heap[1],b.heap[1]=b.heap[b.heap_len--],ft(b,Z,1),P=b.heap[1],b.heap[--b.heap_max]=D,b.heap[--b.heap_max]=P,Z[2*R]=Z[2*D]+Z[2*P],b.depth[R]=(b.depth[D]>=b.depth[P]?b.depth[D]:b.depth[P])+1,Z[2*D+1]=Z[2*P+1]=R,b.heap[1]=R++,ft(b,Z,1),2<=b.heap_len;);b.heap[--b.heap_max]=b.heap[1],function(st,St){var Xt,zt,Yt,ht,ce,Ce,Bt=St.dyn_tree,cn=St.max_code,ur=St.stat_desc.static_tree,dr=St.stat_desc.has_stree,fr=St.stat_desc.extra_bits,un=St.stat_desc.extra_base,Jt=St.stat_desc.max_length,ue=0;for(ht=0;ht<=g;ht++)st.bl_count[ht]=0;for(Bt[2*st.heap[st.heap_max]+1]=0,Xt=st.heap_max+1;Xt<l;Xt++)Jt<(ht=Bt[2*Bt[2*(zt=st.heap[Xt])+1]+1]+1)&&(ht=Jt,ue++),Bt[2*zt+1]=ht,cn<zt||(st.bl_count[ht]++,ce=0,un<=zt&&(ce=fr[zt-un]),Ce=Bt[2*zt],st.opt_len+=Ce*(ht+ce),dr&&(st.static_len+=Ce*(ur[2*zt+1]+ce)));if(ue!==0){do{for(ht=Jt-1;st.bl_count[ht]===0;)ht--;st.bl_count[ht]--,st.bl_count[ht+1]+=2,st.bl_count[Jt]--,ue-=2}while(0<ue);for(ht=Jt;ht!==0;ht--)for(zt=st.bl_count[ht];zt!==0;)cn<(Yt=st.heap[--Xt])||(Bt[2*Yt+1]!==ht&&(st.opt_len+=(ht-Bt[2*Yt+1])*Bt[2*Yt],Bt[2*Yt+1]=ht),zt--)}}(b,I),bt(Z,lt,b.bl_count)}function n(b,I,D){var P,R,Z=-1,X=I[1],H=0,J=7,lt=4;for(X===0&&(J=138,lt=3),I[2*(D+1)+1]=65535,P=0;P<=D;P++)R=X,X=I[2*(P+1)+1],++H<J&&R===X||(H<lt?b.bl_tree[2*R]+=H:R!==0?(R!==Z&&b.bl_tree[2*R]++,b.bl_tree[2*_]++):H<=10?b.bl_tree[2*C]++:b.bl_tree[2*A]++,Z=R,lt=(H=0)===X?(J=138,3):R===X?(J=6,3):(J=7,4))}function j(b,I,D){var P,R,Z=-1,X=I[1],H=0,J=7,lt=4;for(X===0&&(J=138,lt=3),P=0;P<=D;P++)if(R=X,X=I[2*(P+1)+1],!(++H<J&&R===X)){if(H<lt)for(;G(b,R,b.bl_tree),--H!=0;);else R!==0?(R!==Z&&(G(b,R,b.bl_tree),H--),G(b,_,b.bl_tree),V(b,H-3,2)):H<=10?(G(b,C,b.bl_tree),V(b,H-3,3)):(G(b,A,b.bl_tree),V(b,H-11,7));Z=R,lt=(H=0)===X?(J=138,3):R===X?(J=6,3):(J=7,4)}}p(W);var B=!1;function S(b,I,D,P){V(b,(w<<1)+(P?1:0),3),function(R,Z,X,H){at(R),Q(R,X),Q(R,~X),r.arraySet(R.pending_buf,R.window,Z,X,R.pending),R.pending+=X}(b,I,D)}i._tr_init=function(b){B||(function(){var I,D,P,R,Z,X=new Array(g+1);for(R=P=0;R<x-1;R++)for(L[R]=P,I=0;I<1<<N[R];I++)a[P++]=R;for(a[P-1]=R,R=Z=0;R<16;R++)for(W[R]=Z,I=0;I<1<<F[R];I++)T[Z++]=R;for(Z>>=7;R<d;R++)for(W[R]=Z<<7,I=0;I<1<<F[R]-7;I++)T[256+Z++]=R;for(D=0;D<=g;D++)X[D]=0;for(I=0;I<=143;)Y[2*I+1]=8,I++,X[8]++;for(;I<=255;)Y[2*I+1]=9,I++,X[9]++;for(;I<=279;)Y[2*I+1]=7,I++,X[7]++;for(;I<=287;)Y[2*I+1]=8,I++,X[8]++;for(bt(Y,v+1,X),I=0;I<d;I++)E[2*I+1]=5,E[2*I]=dt(I,5);tt=new et(Y,N,y+1,v,g),q=new et(E,F,0,d,g),nt=new et(new Array(0),$,0,m,f)}(),B=!0),b.l_desc=new O(b.dyn_ltree,tt),b.d_desc=new O(b.dyn_dtree,q),b.bl_desc=new O(b.bl_tree,nt),b.bi_buf=0,b.bi_valid=0,ot(b)},i._tr_stored_block=S,i._tr_flush_block=function(b,I,D,P){var R,Z,X=0;0<b.level?(b.strm.data_type===2&&(b.strm.data_type=function(H){var J,lt=4093624447;for(J=0;J<=31;J++,lt>>>=1)if(1<&&H.dyn_ltree[2*J]!==0)return s;if(H.dyn_ltree[18]!==0||H.dyn_ltree[20]!==0||H.dyn_ltree[26]!==0)return o;for(J=32;J<y;J++)if(H.dyn_ltree[2*J]!==0)return o;return s}(b)),At(b,b.l_desc),At(b,b.d_desc),X=function(H){var J;for(n(H,H.dyn_ltree,H.l_desc.max_code),n(H,H.dyn_dtree,H.d_desc.max_code),At(H,H.bl_desc),J=m-1;3<=J&&H.bl_tree[2*U[J]+1]===0;J--);return H.opt_len+=3*(J+1)+5+5+4,J}(b),R=b.opt_len+3+7>>>3,(Z=b.static_len+3+7>>>3)<=R&&(R=Z)):R=Z=D+5,D+4<=R&&I!==-1?S(b,I,D,P):b.strategy===4||Z===R?(V(b,2+(P?1:0),3),Nt(b,Y,E)):(V(b,4+(P?1:0),3),function(H,J,lt,st){var St;for(V(H,J-257,5),V(H,lt-1,5),V(H,st-4,4),St=0;St<st;St++)V(H,H.bl_tree[2*U[St]+1],3);j(H,H.dyn_ltree,J-1),j(H,H.dyn_dtree,lt-1)}(b,b.l_desc.max_code+1,b.d_desc.max_code+1,X+1),Nt(b,b.dyn_ltree,b.dyn_dtree)),ot(b),P&&at(b)},i._tr_tally=function(b,I,D){return b.pending_buf[b.d_buf+2*b.last_lit]=I>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&I,b.pending_buf[b.l_buf+b.last_lit]=255&D,b.last_lit++,I===0?b.dyn_ltree[2*D]++:(b.matches++,I--,b.dyn_ltree[2*(a[D]+y+1)]++,b.dyn_dtree[2*z(I)]++),b.last_lit===b.lit_bufsize-1},i._tr_align=function(b){V(b,2,3),G(b,k,Y),function(I){I.bi_valid===16?(Q(I,I.bi_buf),I.bi_buf=0,I.bi_valid=0):8<=I.bi_valid&&(I.pending_buf[I.pending++]=255&I.bi_buf,I.bi_buf>>=8,I.bi_valid-=8)}(b)}},{"../utils/common":41}],53:[function(t,u,i){u.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,u,i){(function(r){(function(s,o){if(!s.setImmediate){var p,w,x,y,v=1,d={},m=!1,l=s.document,g=Object.getPrototypeOf&&Object.getPrototypeOf(s);g=g&&g.setTimeout?g:s,p={}.toString.call(s.process)==="[object process]"?function(_){process.nextTick(function(){f(_)})}:function(){if(s.postMessage&&!s.importScripts){var _=!0,C=s.onmessage;return s.onmessage=function(){_=!1},s.postMessage("","*"),s.onmessage=C,_}}()?(y="setImmediate$"+Math.random()+"$",s.addEventListener?s.addEventListener("message",k,!1):s.attachEvent("onmessage",k),function(_){s.postMessage(y+_,"*")}):s.MessageChannel?((x=new MessageChannel).port1.onmessage=function(_){f(_.data)},function(_){x.port2.postMessage(_)}):l&&"onreadystatechange"in l.createElement("script")?(w=l.documentElement,function(_){var C=l.createElement("script");C.onreadystatechange=function(){f(_),C.onreadystatechange=null,w.removeChild(C),C=null},w.appendChild(C)}):function(_){setTimeout(f,0,_)},g.setImmediate=function(_){typeof _!="function"&&(_=new Function(""+_));for(var C=new Array(arguments.length-1),A=0;A<C.length;A++)C[A]=arguments[A+1];var N={callback:_,args:C};return d[v]=N,p(v),v++},g.clearImmediate=h}function h(_){delete d[_]}function f(_){if(m)setTimeout(f,0,_);else{var C=d[_];if(C){m=!0;try{(function(A){var N=A.callback,F=A.args;switch(F.length){case 0:N();break;case 1:N(F[0]);break;case 2:N(F[0],F[1]);break;case 3:N(F[0],F[1],F[2]);break;default:N.apply(o,F)}})(C)}finally{h(_),m=!1}}}}function k(_){_.source===s&&typeof _.data=="string"&&_.data.indexOf(y)===0&&f(+_.data.slice(y.length))}})(typeof self>"u"?r===void 0?this:r:self)}).call(this,typeof ie<"u"?ie:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(Ue);var Mn=Ue.exports;const Wn=Un(Mn),Ut=(e,c)=>{const t=e==null?void 0:e.getAttribute(c);return t==null||t===""?null:t};function Me(e){const c=Number(Ut(e,"type")??0),t=Ut(e,"solution");return{type:c,typeName:vt(c),schemaName:Ut(e,"schemaName"),displayName:Ut(e,"displayName"),id:Ut(e,"id"),solution:t&&t.replace(/\s*\([\d.]+\)\s*$/,"").trim()||null,parentSchemaName:Ut(e,"parentSchemaName")}}const Ot=e=>e.schemaName??e.displayName??e.id??"(unnamed)";function Zn(e){const c=new DOMParser().parseFromString(e,"application/xml");if(c.getElementsByTagName("parsererror").length)throw new Error("solution.xml: invalid XML");const t=c.querySelector("ImportExportXml > SolutionManifest");if(!t)throw new Error("solution.xml: SolutionManifest not found");const u=r=>{var s,o;return((o=(s=t.querySelector(r))==null?void 0:s.textContent)==null?void 0:o.trim())??""},i=Array.from(t.querySelectorAll(":scope > MissingDependencies > MissingDependency")).map(r=>({required:Me(r.querySelector(":scope > Required")),dependent:Me(r.querySelector(":scope > Dependent"))}));return{uniqueName:u(":scope > UniqueName"),version:u(":scope > Version"),managed:u(":scope > Managed")!=="0"&&u(":scope > Managed")!=="",missing:i}}function Hn(e,c,t){const u=new Map;for(const i of e){const r=i.required,s=Ht(c,null,Ot(r))||!!r.solution&&Ht(c,{uniqueName:r.solution,prefix:""},Ot(r)),o=!!r.solution&&!!(t!=null&&t.has(r.solution.toLowerCase()));if(!s&&!(t&&r.solution&&!o))continue;const p=i.dependent,w=`${p.type}:${(p.id??Ot(p)).toLowerCase()}:${p.parentSchemaName??""}`,x=u.get(w)??{key:w,dependent:p,required:[],status:"safe"};x.required.some(y=>y.type===r.type&&Ot(y)===Ot(r))||x.required.push({...r,safe:o}),o||(x.status="blocker"),u.set(w,x)}return[...u.values()].sort((i,r)=>(i.status===r.status?0:i.status==="blocker"?-1:1)||i.dependent.type-r.dependent.type||Ot(i.dependent).localeCompare(Ot(r.dependent)))}async function Gn(e,c,t,u){let i;try{i=await Wn.loadAsync(c)}catch{throw new Error(`${e}: not a zip file`)}const r=i.file(/^solution\.xml$/i)[0];if(!r)throw new Error(`${e}: solution.xml not found (is this a solution export?)`);const s=Zn(await r.async("string"));return{fileName:e,uniqueName:s.uniqueName,version:s.version,managed:s.managed,total:s.missing.length,groups:Hn(s.missing,t,u)}}const We=()=>window,Tt=()=>We().toolboxAPI,Ze=()=>We().dataverseAPI,He=()=>{var e;return!!((e=Tt())!=null&&e.connections)&&!!Ze()};async function Kn(){var i,r;const e=Tt();if(!(e!=null&&e.connections))return[];const c=[],t=await e.connections.getActiveConnection().catch(()=>null);t&&c.push({target:"primary",conn:t});const u=await((r=(i=e.connections).getSecondaryConnection)==null?void 0:r.call(i).catch(()=>null));return u&&c.push({target:"secondary",conn:u}),c}function Vn(e){var c,t;try{(t=(c=Tt())==null?void 0:c.events)==null||t.on((u,i)=>{typeof(i==null?void 0:i.event)=="string"&&i.event.startsWith("connection:")&&e()})}catch{}}async function Xn(e){var u,i,r,s;const c=Tt();let t=(u=window.matchMedia)!=null&&u.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light";if((i=c==null?void 0:c.utils)!=null&&i.getCurrentTheme)try{t=await c.utils.getCurrentTheme()}catch{}e(t);try{(r=c==null?void 0:c.events)==null||r.on((o,p)=>{var w;if((p==null?void 0:p.event)==="settings:updated"){const x=(w=p.data)==null?void 0:w.theme;(x==="light"||x==="dark")&&e(x)}})}catch{}c||(s=window.matchMedia)==null||s.call(window,"(prefers-color-scheme: dark)").addEventListener("change",o=>e(o.matches?"dark":"light"))}async function _t(e,c,t="info"){var i;const u=Tt();if((i=u==null?void 0:u.utils)!=null&&i.showNotification)try{await u.utils.showNotification({title:e,body:c,type:t,duration:4e3});return}catch{}console[t==="error"?"error":"log"](`${e}: ${c}`)}async function Ge(e,c,t="application/json"){var s;const u=Tt();if((s=u==null?void 0:u.fileSystem)!=null&&s.saveFile)return!!await u.fileSystem.saveFile(e,c);const i=URL.createObjectURL(new Blob([c],{type:t})),r=document.createElement("a");return r.href=i,r.download=e,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(i),1e3),!0}function Yn(e){if(e instanceof Uint8Array)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);const c=e;if(c&&c.type==="Buffer"&&Array.isArray(c.data))return Uint8Array.from(c.data);if(Array.isArray(e))return Uint8Array.from(e);throw new Error("Unsupported binary payload from host")}function Ke(e,c){return new Promise(t=>{const u=document.createElement("input");u.type="file",u.accept=e,u.multiple=c,u.addEventListener("change",()=>t(Array.from(u.files??[]))),u.addEventListener("cancel",()=>t([])),u.click()})}async function Jn(e){var u;const c=Tt();if((u=c==null?void 0:c.fileSystem)!=null&&u.selectPath){const i=await c.fileSystem.selectPath({type:"file",title:e.title,filters:[{name:e.extensions.map(s=>s.toUpperCase()).join(" / "),extensions:e.extensions},{name:"All files",extensions:["*"]}]});if(!i)return[];const r=await c.fileSystem.readBinary(i);return[{name:i.split(/[\\/]/).pop()??i,data:Yn(r)}]}const t=await Ke(e.extensions.map(i=>`.${i}`).join(","),!!e.multiple);return Promise.all(t.map(async i=>({name:i.name,data:new Uint8Array(await i.arrayBuffer())})))}async function Qn(e){var u;const c=Tt();if((u=c==null?void 0:c.fileSystem)!=null&&u.selectPath){const i=await c.fileSystem.selectPath({type:"file",title:e.title,filters:[{name:e.extensions.join("/"),extensions:e.extensions}]});return i?{name:i.split(/[\\/]/).pop()??i,text:await c.fileSystem.readText(i)}:null}const[t]=await Ke(e.extensions.map(i=>`.${i}`).join(","),!1);return t?{name:t.name,text:await t.text()}:null}let be=[],Ft=[],jt=null,we=new Re;const Ve=new Map;let Gt,rt=null;const $t=new Map;let kt=null,xt=[],Mt=!1,ve=!1,_e=!1,ut=null;const Wt=()=>Ze(),wt=()=>be.find(e=>e.target==="primary"),Xe=()=>be.find(e=>e.target==="secondary"),Kt=e=>!!e&&(e.conn.environment==="Production"||/\bprod/i.test(e.conn.name)),se=()=>{var t;const e=((t=wt())==null?void 0:t.conn.url)??"";let c=Ve.get(e);return c||Ve.set(e,c=new Map),c},ke=()=>{const e=Tn(K("#filter").value);return e.length?e:pn};function Et(e){const c=K("#status");c.hidden=!e,c.textContent=e??""}function Ye(e,c){const t=M("span",{class:"dot"});return e.conn.environmentColor&&(t.style.background=e.conn.environmentColor),M("span",{class:"connchip",title:e.conn.url},t,M("span",{class:"env"},e.conn.name),M("span",{class:"kind"},`${c} · ${e.conn.environment}`))}function Je(){const e=wt(),c=rt==null?void 0:rt.solution;return!e||!c?"https://make.powerapps.com/":Gt?`https://make.powerapps.com/environments/${Gt}/solutions/${c.id}`:`${e.conn.url.replace(/\/+$/,"")}/tools/solution/edit.aspx?id=${c.id}`}async function Qe(){be=await Kn(),we=new Re,Gt=void 0;const e=K("#conn");e.replaceChildren();const c=wt(),t=Xe();c&&e.append(Ye(c,"dev")),t&&e.append(Ye(t,"target")),c||e.append(M("span",{class:"caption"},He()?"No connection. Pick a primary (dev) connection in ToolBox.":"Standalone: Offline tab only."));const u=Wt();if(Ft=[],jt=null,u&&c){Et("Loading solutions…");try{Ft=await he(u,"primary")}catch(o){await _t("Load failed",o.message,"error")}if(t)try{jt=new Set((await he(u,"secondary")).map(o=>o.uniqueName.toLowerCase()))}catch(o){await _t("Target load failed",`${t.conn.name}: ${o.message}`,"warning")}Et(null)}const i=K("#solution"),r=i.value,s=Ft.filter(o=>!o.isManaged&&!["default","active","basic"].includes(o.uniqueName.toLowerCase()));i.replaceChildren(...s.length?s.map(o=>M("option",{value:o.id},`${o.friendlyName} (${o.uniqueName}) ${o.version}`)):[M("option",{value:""},c?"No unmanaged solutions":"No connection")]),[...i.options].some(o=>o.value===r)&&(i.value=r),K("#btn-run").disabled=!s.length}async function tn(){const e=Wt(),c=wt(),t=Ft.find(i=>i.id===K("#solution").value);if(!e||!c||!t||_e)return;_e=!0,ve=!1,K("#btn-cancel").hidden=!1,K("#btn-run").disabled=!0,K("#progress").hidden=!1;const u=K("#progress-bar");try{Gt===void 0&&(Gt=await _n(e));const i=Xe();rt=await Fn({api:e,meta:we,reqCache:se(),solution:t,allSolutions:Ft,targetSolutions:jt,filter:ke(),environment:{name:c.conn.name,url:c.conn.url,environment:c.conn.environment},target:i&&jt?{name:i.conn.name,url:i.conn.url}:null,link:()=>Je(),onProgress:(r,s)=>{u.max=Math.max(s,1),u.value=r,K("#progress-text").textContent=`RetrieveRequiredComponents ${r} / ${s}`},cancelled:()=>ve});for(const r of rt.findings)for(const s of r.fixes)s.kind==="report"&&(s.link=Je());for(const r of[...$t.keys()])rt.findings.some(s=>s.key===r)||$t.delete(r)}catch(i){i instanceof Fe?await _t("Cancelled","Diagnosis cancelled. Finished calls stay cached.","info"):await _t("Diagnosis failed",i.message,"error")}finally{_e=!1,K("#btn-cancel").hidden=!0,K("#btn-run").disabled=!1,K("#progress").hidden=!0}ae()}function tr(e){var t;const c=!!e.solution&&!!(jt!=null&&jt.has(e.solution.uniqueName.toLowerCase()));return M("span",{class:`req${c?" is-safe":""}`,title:e.solutions.join(", ")},M("span",{class:"sol"},((t=e.solution)==null?void 0:t.uniqueName)??"unknown solution"),`${vt(e.type)} ${e.name}`,c?" · in target":"")}function er(e){const c=M("select",{class:"fix","aria-label":`Fix for ${e.dependent.name}`});c.append(M("option",{value:""},"No action"),...e.fixes.map(u=>M("option",{value:u.kind},u.label))),c.value=$t.get(e.key)??"",c.addEventListener("change",()=>{c.value?$t.set(e.key,c.value):$t.delete(e.key),en()});const t=e.fixes.find(u=>u.kind==="report");return M("li",{class:`finding${e.status==="safe"?" is-safe":""}`,"data-key":e.key},M("div",{class:"head"},pt(vt(e.dependent.type),"neutral"),M("span",{class:"name mono"},e.dependent.name),e.dependent.table||e.dependent.rootTable?M("span",{class:"caption"},e.dependent.table??e.dependent.rootTable??""):null,e.dependent.rootBehavior===0?pt("table: all assets","warn"):null,pt(e.status==="blocker"?"blocker":"present in target",e.status==="blocker"?"bad":"ok"),c),M("div",{class:"cause"},e.cause),M("div",{class:"chips"},...e.required.map(tr)),t!=null&&t.link?M("div",{class:"caption"},t.note??""," ",M("a",{href:t.link,target:"_blank",rel:"noopener"},"Open solution in maker portal")):null)}function en(){K("#sel-count").textContent=`${$t.size} selected`,K("#btn-to-fix").disabled=$t.size===0}function ae(){const e=K("#findings"),c=K("#diag-summary");e.replaceChildren(),c.replaceChildren(),K("#diag-actions").hidden=!rt;for(const o of["#btn-export-json","#btn-export-csv"])K(o).toggleAttribute("disabled",!rt);if(!rt){e.append(Lt("No diagnosis yet",wt()?"Pick an unmanaged solution and run Diagnose.":"Connect a dev environment in ToolBox, or use the Offline tab."));return}const t=rt,u=t.findings.filter(o=>o.status==="blocker"),i=t.findings.length-u.length,r=K("#show-safe").checked;c.append(M("div",{class:"summary"},M("strong",{},`${t.solution.friendlyName}`),`${t.components.length} components ·`,pt(`${u.length} blocker${u.length===1?"":"s"}`,u.length?"bad":"ok"),t.target?pt(`${i} present in target`,"ok"):M("span",{class:"caption"},"No target connection: every dependency matching the filter counts."),t.errors.length?pt(`${t.errors.length} lookups failed`,"warn"):null)),t.errors.length&&c.append(M("div",{class:"warnings"},`RetrieveRequiredComponents failed for ${t.errors.length} component(s): ${t.errors.slice(0,3).map(o=>`${o.component} (${o.error})`).join("; ")}`));const s=t.findings.filter(o=>r||o.status==="blocker");s.length?e.append(M("ul",{class:"findings"},...s.map(er))):e.append(Lt("No blocking dependencies",t.findings.length?"Everything found is present in the target. Tick “Show present in target” to see it.":"Nothing in this solution depends on the filtered solutions.")),en()}function xe(e,c,t){const u=M("pre",{class:"diff","aria-label":t});for(const i of zn(e,c))u.append(M("span",{class:i.t==="-"?"del":i.t==="+"?"add":i.t==="…"?"gap":"ctx"},i.t==="…"?"…":`${i.t} ${i.s}`));return u}function nn(e){const c=M("li",{class:"op","data-kind":e.kind},M("span",{class:"mono"},ye(e)));if((e.kind==="remove"||e.kind==="add")&&c.append(" ",M("span",{class:"why"},e.reason)),e.kind==="update-form"){const t=e.edit;It(c,t.removed.length?M("div",{class:"caption"},`Removes: ${t.removed.join(", ")}`):null,t.kept.length?M("div",{class:"caption"},`Kept: ${t.kept.map(u=>`${u.name} (${u.reason})`).join(", ")}`):null,t.warnings.length?M("div",{class:"warnings"},t.warnings.join(" ")):null,xe(t.form.formxml,t.after,`formxml diff ${t.form.name}`))}if(e.kind==="update-view"){const t=e.edit;It(c,t.removed.length?M("div",{class:"caption"},`Removes: ${t.removed.join(", ")}`):null,t.warnings.length?M("div",{class:"warnings"},t.warnings.join(" ")):null,xe(t.view.fetchxml,t.after.fetchxml,`fetchxml diff ${t.view.name}`),xe(t.view.layoutxml,t.after.layoutxml,`layoutxml diff ${t.view.name}`))}return c}function rn(){return!!(rt!=null&&rt.solution.isManaged)}function Se(){const e=!Kt(wt())||K("#prod-ack").checked;K("#btn-confirm").disabled=!(Mt&&xt.length&&e&&!rn()),K("#btn-backup").textContent=Mt?"1. Backup saved ✓":"1. Download backup"}function le(){const e=K("#fix-banners"),c=K("#fix-body");if(e.replaceChildren(),c.replaceChildren(),K("#fix-actions").hidden=!kt,!kt||!rt){c.append(Lt("Nothing selected","Pick a fix on one or more findings in Diagnose, then Preview fixes."));return}rn()&&e.append(M("div",{class:"danger-banner"},`${rt.solution.uniqueName} is managed. Writes are refused: fix dependencies in the dev environment, in the unmanaged solution.`)),Kt(wt())&&e.append(M("div",{class:"danger-banner"},`This connection (${wt().conn.name}) looks like Production. Dependencies are fixed in dev.`)),K("#prod-ack-wrap").hidden=!Kt(wt());for(const t of kt.shells){const u=t.leaving.map(i=>{const r=M("input",{type:"checkbox","aria-label":`Keep ${i.component.name}`});return r.checked=i.keep,r.addEventListener("change",()=>{i.keep=r.checked,xt=Te(kt),on()}),M("label",{title:i.why},r,pt(vt(i.component.type),"neutral"),M("span",{class:"mono"},i.component.name??i.component.objectId),M("span",{class:"caption"},i.why))});c.append(M("div",{class:"card"},M("div",{class:"card-head"},M("h3",{},`Shell conversion: ${t.root.name}`),pt(`${t.leaving.filter(i=>!i.keep).length} leave`,"warn")),M("div",{class:"card-body"},M("p",{class:"caption"},"The table is removed and added back without subcomponents. Every subcomponent below leaves the solution unless ticked to re-add. Other developers may rely on them."),t.leaving.length?M("div",{class:"leaving"},...u):M("p",{class:"caption"},"No subcomponent rows."))))}kt.skipped.length&&c.append(M("div",{class:"warnings"},"Not changed: ",kt.skipped.map(t=>`${t.name} (${t.reason})`).join("; "))),c.append(M("div",{id:"ops-wrap"})),on()}function on(){const e=document.getElementById("ops-wrap");e&&(e.replaceChildren(M("h3",{},`${xt.length} operation${xt.length===1?"":"s"} on ${(rt==null?void 0:rt.solution.uniqueName)??""}`),xt.length?M("ol",{class:"ops",id:"ops"},...xt.map(nn)):Lt("No operations","The selected fixes change nothing.")),Se())}async function nr(){const e=Wt();if(!e||!rt)return;const c=[...$t].map(([t,u])=>({finding:rt.findings.find(i=>i.key===t),fix:u})).filter(t=>t.finding);Et("Preparing preview…");try{kt=await En(e,we,rt,c),xt=Te(kt),Mt=!1,K("#prod-ack").checked=!1,K("#fix-results").replaceChildren()}catch(t){await _t("Preview failed",t.message,"error")}finally{Et(null)}document.querySelector('.tab[data-tab="fix"]').click(),le()}async function rr(){if(!rt||!kt)return;const e=Rn(rt,kt,xt);await Ge(On(rt.solution.uniqueName),JSON.stringify(e,null,2))&&(Mt=!0,await _t("Backup saved","Keep it: the Restore tab reapplies it.","success")),Se()}function sn(e){return M("table",{},M("thead",{},M("tr",{},M("th",{},"Operation"),M("th",{},"Result"))),M("tbody",{},...e.map(c=>M("tr",{},M("td",{class:"mono"},ye(c.op)),M("td",{},c.ok?pt("ok","ok"):c.skipped?pt(c.error??"skipped","neutral"):pt(c.error??"failed","bad"))))))}async function ir(){const e=Wt();if(!e||!rt||!kt||!Mt||!xt.length)return;const c=rt.solution,t=await Ne(e,c.id).catch(()=>null);if(!t||t.isManaged||c.isManaged){rt={...rt,solution:{...rt.solution,isManaged:!0}},le(),await _t("Refused",`${c.uniqueName} is managed (or could not be read). Nothing was written.`,"error");return}K("#btn-confirm").disabled=!0;const u=rt.findings.filter(x=>x.status==="blocker").map(x=>x.key),i=new Set;for(const x of xt)x.kind==="update-form"&&i.add(Rt(it.Form,x.edit.form.id)),x.kind==="update-view"&&i.add(Rt(it.View,x.edit.view.id)),(x.kind==="remove"||x.kind==="add")&&i.add(Rt(x.component.type,x.component.id));const r=await je(e,xt,t.uniqueName,(x,y)=>Et(x<y?`Applying ${x+1} / ${y}…`:null));Et(null);const s=r.filter(x=>!x.ok&&!x.skipped).length;await _t(s?"Some operations failed":"Applied",s?"Restore from the backup if needed.":`${r.length} operations done. Re-running diagnosis…`,s?"error":"success");for(const x of i)se().delete(x);kt=null,xt=[],$t.clear(),Mt=!1,le();const o=K("#fix-results");o.replaceChildren(M("h3",{},"Results"),sn(r)),await tn();const p=new Set(((rt==null?void 0:rt.findings)??[]).filter(x=>x.status==="blocker").map(x=>x.key)),w=u.filter(x=>!p.has(x)).length;o.append(M("div",{class:"summary",id:"rediag"},M("strong",{},"Re-diagnosis:"),pt(`${w} fixed`,"ok"),pt(`${u.length-w} still present`,u.length-w?"bad":"ok"),pt(`${p.size} blockers now`,p.size?"bad":"ok")))}async function or(){const e=await Qn({title:"Open Dependency Cleaner backup",extensions:["json"]});if(!e)return;K("#restore-results").replaceChildren();try{ut={backup:$n(e.text),plan:null},K("#restore-file").textContent=e.name}catch(u){ut=null,await _t("Backup rejected",`${e.name}: ${u.message}`,"error"),Vt();return}const c=Wt(),t=wt();if(c&&t){Et("Comparing backup to the environment…");try{ut.plan=await Bn(c,ut.backup,Ft.length?Ft:await he(c,"primary"),t.conn.url)}catch(u){await _t("Restore refused",u.message,"error"),Vt(u.message),Et(null);return}Et(null)}Vt()}function Vt(e){var u;const c=K("#restore-body");if(c.replaceChildren(),K("#restore-actions").hidden=!(ut!=null&&ut.plan),K("#btn-restore-apply").disabled=!((u=ut==null?void 0:ut.plan)!=null&&u.ops.length),!ut){c.append(Lt("No backup loaded","Load a dependency-cleaner-backup-*.json file saved before a fix."));return}const t=ut.backup;if(c.append(M("p",{class:"caption"},`Backup of ${t.solution.uniqueName} from ${t.environment.name}, ${t.takenAt}. ${t.membership.length} members, ${t.forms.length} forms, ${t.views.length} views.`)),e&&c.append(M("div",{class:"danger-banner",id:"restore-error"},e)),!!ut.plan){for(const i of ut.plan.notes)c.append(M("div",{class:"warnings"},i));Kt(wt())&&c.append(M("div",{class:"danger-banner"},`This connection (${wt().conn.name}) looks like Production.`)),c.append(ut.plan.ops.length?M("ol",{class:"ops",id:"restore-ops"},...ut.plan.ops.map(nn)):Lt("Nothing to restore","The environment already matches the backup."))}}async function sr(){var s;const e=Wt();if(!e||!(ut!=null&&ut.plan))return;const c=ut.plan,t=await Ne(e,c.solution.id).catch(()=>null);if(!t||t.isManaged){await _t("Refused",`${c.solution.uniqueName} is managed (or could not be read). Nothing was written.`,"error");return}if(!await dn({title:"Apply restore",body:M("p",{},`${c.ops.length} operations on ${c.solution.uniqueName} in ${((s=wt())==null?void 0:s.conn.name)??""}.`),okLabel:`Apply ${c.ops.length}`,danger:Kt(wt())}))return;const i=await je(e,c.ops,t.uniqueName,(o,p)=>Et(o<p?`Restoring ${o+1} / ${p}…`:null));Et(null);for(const o of c.ops)o.kind==="update-form"&&se().delete(Rt(it.Form,o.edit.form.id)),o.kind==="update-view"&&se().delete(Rt(it.View,o.edit.view.id));const r=i.filter(o=>!o.ok&&!o.skipped).length;await _t(r?"Restore incomplete":"Restored",`${i.length-r} ok, ${r} failed`,r?"error":"success"),ut.plan=null,Vt(),K("#restore-results").replaceChildren(M("h3",{},"Restore results"),sn(i))}async function an(e,c){const t=K("#offline-body");try{ar(await Gn(e,c,ke(),jt))}catch(u){t.replaceChildren(M("div",{class:"danger-banner"},u.message))}}function ar(e){const c=e.groups.filter(i=>i.status==="blocker").length,t=i=>`${i.typeName} ${Ot(i)}${i.parentSchemaName?` (${i.parentSchemaName})`:""}`,u=e.groups.map(i=>M("li",{class:`finding${i.status==="safe"?" is-safe":""}`},M("div",{class:"head"},pt(i.dependent.typeName,"neutral"),M("span",{class:"name mono"},Ot(i.dependent)),i.dependent.parentSchemaName?M("span",{class:"caption"},i.dependent.parentSchemaName):null,pt(i.status==="blocker"?"blocker":"present in target",i.status==="blocker"?"bad":"ok")),M("div",{class:"chips"},...i.required.map(r=>M("span",{class:`req${r.safe?" is-safe":""}`},M("span",{class:"sol"},r.solution??"unknown solution"),t(r))))));K("#offline-body").replaceChildren(M("div",{class:"summary",id:"offline-summary"},M("strong",{},`${e.uniqueName} ${e.version}`),e.managed?pt("managed","neutral"):pt("unmanaged","neutral"),`${e.total} missing dependencies in solution.xml ·`,pt(`${e.groups.length} dependents in scope`,"neutral"),pt(`${c} blocking`,c?"bad":"ok")),e.groups.length?M("ul",{class:"findings"},...u):Lt("No missing dependencies in scope",`Filter: ${ke().join(", ")}`))}function lr(){const e=K("#drop");e.addEventListener("dragover",c=>{c.preventDefault(),e.classList.add("is-over")}),e.addEventListener("dragleave",()=>e.classList.remove("is-over")),e.addEventListener("drop",async c=>{var u,i;c.preventDefault(),e.classList.remove("is-over");const t=(i=(u=c.dataTransfer)==null?void 0:u.files)==null?void 0:i[0];t&&await an(t.name,new Uint8Array(await t.arrayBuffer()))}),K("#btn-open-zip").addEventListener("click",async()=>{const[c]=await Jn({title:"Open solution zip",extensions:["zip"]});c&&await an(c.name,c.data)})}async function ln(e,c,t){await Ge(e,c,t)&&await _t("Exported",e,"success")}function cr(){fn(),K("#btn-run").addEventListener("click",()=>void tn()),K("#btn-cancel").addEventListener("click",()=>{ve=!0}),K("#show-safe").addEventListener("change",ae),K("#btn-to-fix").addEventListener("click",()=>void nr()),K("#btn-backup").addEventListener("click",()=>void rr()),K("#prod-ack").addEventListener("change",Se),K("#btn-confirm").addEventListener("click",()=>void ir()),K("#btn-load-backup").addEventListener("click",()=>void or()),K("#btn-restore-apply").addEventListener("click",()=>void sr()),K("#btn-export-json").addEventListener("click",()=>{rt&&ln(`dependency-findings.${qe(rt.solution.uniqueName)}.json`,qn(rt),"application/json")}),K("#btn-export-csv").addEventListener("click",()=>{rt&&ln(`dependency-findings.${qe(rt.solution.uniqueName)}.csv`,Pn(rt),"text/csv")}),lr(),Vn(()=>void Qe().then(ae)),K("#host-mode").textContent=He()?"Running inside Power Platform ToolBox":"Standalone mode (Offline tab only)"}Xn(e=>document.documentElement.setAttribute("data-theme",e)),cr(),ae(),le(),Vt(),Qe()})();
|