@betteroffice/docx 0.4.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +108 -598
  3. package/dist/chunk-25WGDXBF.mjs +1 -0
  4. package/dist/chunk-2CCPNW44.mjs +1 -0
  5. package/dist/chunk-32A4I3T4.mjs +1 -0
  6. package/dist/chunk-4LO3PSLZ.mjs +2 -0
  7. package/dist/chunk-67MGRMP3.mjs +1 -0
  8. package/dist/chunk-6AUR4AA2.mjs +1 -0
  9. package/dist/chunk-6WT6HKAY.mjs +1 -0
  10. package/dist/chunk-77ZWGQZN.mjs +1 -0
  11. package/dist/chunk-7C3Y7LIH.mjs +1 -0
  12. package/dist/chunk-7WIUNGQW.mjs +1 -0
  13. package/dist/chunk-7WWFGMMF.mjs +1 -0
  14. package/dist/chunk-AK2NG7PT.mjs +1 -0
  15. package/dist/chunk-BR5BFOHF.mjs +1 -0
  16. package/dist/chunk-CDNWHQH2.mjs +1 -0
  17. package/dist/chunk-CRTTEHZN.mjs +1 -0
  18. package/dist/chunk-ETDMQ5GE.mjs +1 -0
  19. package/dist/{wasm-KSZTTO3B.mjs → chunk-GBOHQ3CJ.mjs} +1 -1
  20. package/dist/chunk-H7K4SJKK.mjs +1 -0
  21. package/dist/chunk-ICJH7QUY.mjs +1 -0
  22. package/dist/chunk-IHETKRDA.mjs +1 -0
  23. package/dist/chunk-ISBZLVIF.mjs +1 -0
  24. package/dist/chunk-JSYH6HNV.mjs +2 -0
  25. package/dist/chunk-KICHSQFN.mjs +1 -0
  26. package/dist/chunk-KXIGXLFA.mjs +5 -0
  27. package/dist/chunk-KXLTK7AT.mjs +57 -0
  28. package/dist/chunk-L3JRNJ34.mjs +1 -0
  29. package/dist/chunk-LKDHP22R.mjs +1 -0
  30. package/dist/chunk-LPOEM5WH.mjs +1 -0
  31. package/dist/chunk-M44BABH2.mjs +1 -0
  32. package/dist/chunk-MAYPJU23.mjs +1 -0
  33. package/dist/chunk-N5RE2S3U.mjs +2 -0
  34. package/dist/chunk-NLYHFVF5.mjs +1 -0
  35. package/dist/chunk-ONYCW7VV.mjs +4 -0
  36. package/dist/chunk-QGZ2AB3M.mjs +1 -0
  37. package/dist/chunk-QWHU7YIW.mjs +2 -0
  38. package/dist/{chunk-VH7P4734.mjs → chunk-QX2CDKPG.mjs} +1 -1
  39. package/dist/chunk-RGDE6YQB.mjs +1 -0
  40. package/dist/chunk-TE3AU2JK.mjs +1 -0
  41. package/dist/chunk-UDVEZ722.mjs +1 -0
  42. package/dist/chunk-UQSVFDRV.mjs +2 -0
  43. package/dist/chunk-VHOOSS4D.mjs +1 -0
  44. package/dist/chunk-WIDM4EMT.mjs +1 -0
  45. package/dist/chunk-YITJ4QAO.mjs +1 -0
  46. package/dist/collaboration/index.d.mts +111 -11
  47. package/dist/collaboration/index.mjs +1 -1
  48. package/dist/{content-DSb-6a9T.d.mts → content-DVT06V_6.d.mts} +24 -3
  49. package/dist/core.d.mts +9 -9
  50. package/dist/core.mjs +1 -1
  51. package/dist/displayListQueries-6XjS7B5e.d.mts +1473 -0
  52. package/dist/docx/index.d.mts +8 -7
  53. package/dist/docx/index.mjs +1 -2
  54. package/dist/docxWorker.mjs +1 -0
  55. package/dist/editor/index.d.mts +14 -12
  56. package/dist/editor/index.mjs +1 -1
  57. package/dist/{fontLoader-BNSs0E8K.d.mts → fontLoader-CBkmh4ps.d.mts} +1 -1
  58. package/dist/{formatting-gqLFeJ9X.d.mts → formatting-p5MneNuy.d.mts} +32 -1
  59. package/dist/generated/edit/docx_edit_bg.wasm +0 -0
  60. package/dist/generated/layout/docx_layout_bg.wasm +0 -0
  61. package/dist/generated/opc/ooxml_opc_bg.wasm +0 -0
  62. package/dist/generated/parse/docx_parse_bg.wasm +0 -0
  63. package/dist/index-C-KKULi5.d.mts +5596 -0
  64. package/dist/layout/index.d.mts +4 -4
  65. package/dist/layout/index.mjs +1 -1
  66. package/dist/layout/pagination/index.d.mts +4 -4
  67. package/dist/layout/render/index.d.mts +37 -53
  68. package/dist/layout/render/index.mjs +3 -1
  69. package/dist/{pagedExport-BmSlEhoP.d.mts → pagedExport-DDgA5O7E.d.mts} +92 -9
  70. package/dist/plugin-api/RenderedDomContext.d.mts +5 -7
  71. package/dist/plugin-api/index.d.mts +3 -3
  72. package/dist/plugin-api/resolveItemPositions.d.mts +3 -3
  73. package/dist/{rezip-Bxiq4Z_R.d.mts → rezip-CfwAYdV4.d.mts} +7 -1
  74. package/dist/styles/index.d.mts +3 -3
  75. package/dist/styles/index.mjs +1 -1
  76. package/dist/{styles-AryxLAhx.d.mts → styles-DZZz2oRy.d.mts} +2 -2
  77. package/dist/types/content.d.mts +2 -2
  78. package/dist/types/document.d.mts +6 -6
  79. package/dist/{types-Cz7S77Ut.d.mts → types-bvPg3KsF.d.mts} +16 -3
  80. package/dist/utils/comments.d.mts +2 -2
  81. package/dist/utils/findReplace.mjs +1 -2
  82. package/dist/utils/index.d.mts +5 -5
  83. package/dist/utils/index.mjs +1 -1
  84. package/dist/utils/listState.d.mts +2 -5
  85. package/dist/utils/stylePreview.d.mts +2 -2
  86. package/dist/utils/stylePreview.mjs +1 -1
  87. package/dist/wasm-edit.d.mts +233 -48
  88. package/dist/wasm-edit.mjs +1 -1
  89. package/dist/wasm-layout.d.mts +7 -1
  90. package/dist/wasm-layout.mjs +1 -1
  91. package/dist/wasm-opc.mjs +1 -1
  92. package/dist/wasm-parse.d.mts +7 -1
  93. package/dist/wasm-parse.mjs +1 -1
  94. package/dist/worker.d.mts +60 -0
  95. package/dist/worker.mjs +1 -0
  96. package/dist/yrs/docxWorker.d.mts +20 -0
  97. package/dist/yrs/docxWorker.mjs +3 -0
  98. package/dist/yrs/index.d.mts +12 -7
  99. package/dist/yrs/index.mjs +1 -1
  100. package/package.json +14 -4
  101. package/dist/chunk-3RPZ44TT.mjs +0 -1
  102. package/dist/chunk-47Q2FMFF.mjs +0 -1
  103. package/dist/chunk-5Z22FORG.mjs +0 -1
  104. package/dist/chunk-7ZV6P6NZ.mjs +0 -57
  105. package/dist/chunk-AXFMDV66.mjs +0 -1
  106. package/dist/chunk-EBYC3CX7.mjs +0 -1
  107. package/dist/chunk-FK7X7557.mjs +0 -1
  108. package/dist/chunk-GKWXOZZH.mjs +0 -1
  109. package/dist/chunk-LIOWZSE7.mjs +0 -1
  110. package/dist/chunk-ML6E23W2.mjs +0 -1
  111. package/dist/chunk-MLEMGJP7.mjs +0 -1
  112. package/dist/chunk-QBMNRD5V.mjs +0 -2
  113. package/dist/chunk-SHVHVJUB.mjs +0 -1
  114. package/dist/compareDocx-URPCPAQT.mjs +0 -1
  115. package/dist/computeLayout-ZTO6TBWX.mjs +0 -1
  116. package/dist/displayListQueries-BVBDVXoP.d.mts +0 -306
  117. package/dist/frameDelta-CLeO7K5z.d.mts +0 -807
  118. package/dist/index-DzZVJC8-.d.mts +0 -2467
  119. package/dist/parseWasm-BESKFFA3.mjs +0 -1
  120. package/dist/rustDisplayList-B7uPoItK.d.mts +0 -315
  121. package/dist/wasm-JPDPN2B2.mjs +0 -1
  122. package/dist/wasm-QI7MWC5D.mjs +0 -1
  123. package/dist/yrs/residentEngineWorker.d.mts +0 -2
  124. package/dist/yrs/residentEngineWorker.mjs +0 -1
@@ -0,0 +1,3 @@
1
+ import {a as a$1}from'../chunk-7WWFGMMF.mjs';import {H,p as p$1,q,o,a as a$2,I,D,L,b as b$1,k,m as m$2,N,O,s,r,v,e as e$2,t as t$1,u,x,c as c$3,g as g$5,M,n as n$2,j as j$1}from'../chunk-ONYCW7VV.mjs';import {n,m as m$1,q as q$2,l as l$3,k as k$2,r as r$1,s as s$1,e as e$3,h as h$2,g as g$3,i as i$3,f as f$8}from'../chunk-BR5BFOHF.mjs';import {l as l$1,g,i as i$1,b as b$5,f as f$2}from'../chunk-TE3AU2JK.mjs';import {j,k as k$1,h as h$1,g as g$1}from'../chunk-KXIGXLFA.mjs';import {c as c$2,e as e$4,f as f$3}from'../chunk-CDNWHQH2.mjs';import {a as a$8,d as d$3,e as e$7,f as f$6}from'../chunk-M44BABH2.mjs';import {p,l as l$2,h as h$3,i as i$4}from'../chunk-VHOOSS4D.mjs';import'../chunk-N5RE2S3U.mjs';import {f as f$1}from'../chunk-UDVEZ722.mjs';import {J,y,e,A,q as q$1,t,a as a$3,b as b$2,f,d,p as p$2,z,s as s$2,Q,D as D$1}from'../chunk-ICJH7QUY.mjs';import {b}from'../chunk-ETDMQ5GE.mjs';import'../chunk-IHETKRDA.mjs';import {l,m,n as n$1,o as o$1,a as a$7,c as c$4,b as b$8,e as e$8,f as f$7,k as k$3,g as g$4,i as i$2}from'../chunk-KICHSQFN.mjs';import {h,i,c as c$1,b as b$4,d as d$2,a as a$6,f as f$4,g as g$2,e as e$6,m as m$3,l as l$4}from'../chunk-6WT6HKAY.mjs';import'../chunk-EUUIJVM6.mjs';import {b as b$7,f as f$5,e as e$9,c as c$5,d as d$4}from'../chunk-LPOEM5WH.mjs';import {c,a,d as d$1,e as e$1}from'../chunk-CRTTEHZN.mjs';import {e as e$5}from'../chunk-25WGDXBF.mjs';import {a as a$5,b as b$9}from'../chunk-JSYH6HNV.mjs';import'../chunk-QWHU7YIW.mjs';import'../chunk-MAYPJU23.mjs';import'../chunk-OBQGPMPQ.mjs';import'../chunk-ISBZLVIF.mjs';import {a as a$4}from'../chunk-32A4I3T4.mjs';import'../chunk-LTVVQMHB.mjs';import'../chunk-CTBUQRYQ.mjs';import'../chunk-QGZ2AB3M.mjs';import'../chunk-LT2GCWZ3.mjs';import'../chunk-YITJ4QAO.mjs';import'../chunk-UBUTIWXN.mjs';import {b as b$3}from'../chunk-HGKSOBXK.mjs';import {b as b$6}from'../chunk-TTRUPDAB.mjs';function ri(e){let n=JSON.parse(e);if(n.envelope?.wireVersion!==1||!Array.isArray(n.referencedFonts)||!n.referencedFonts.every(t=>typeof t=="string"))throw new TypeError("Invalid toolbar metadata");return {styles:f$1(n.envelope.document.package.styles?.styles),fontFamilies:[...new Set(n.referencedFonts)].sort()}}var vc=new Set(["fontFamily","listMarkerFontFamily","markerFontFamily"]),wc=["ascii","hAnsi","eastAsia","cs"];function Rc(e){if(typeof e!="string"||!/^\+?[0-9a-f]+$/i.test(e))return false;let n=Number.parseInt(e,16);return n<=1114111&&(n<55296||n>57343)}function oi(e){let n=new Set,t=o=>{typeof o=="string"&&o.trim()&&n.add(o.trim());};for(let o of e.package.fontTable?.fonts??[])t(o.name),t(o.altName);let r=new Set,s=[e];for(;s.length>0;){let o=s.pop();if(typeof o!="object"||o===null||r.has(o))continue;if(r.add(o),Array.isArray(o)){for(let i of o)s.push(i);continue}if(o instanceof Map){for(let i of o.values())s.push(i);continue}if(Object.getPrototypeOf(o)!==Object.prototype)continue;let a=o;a.type==="symbol"&&Rc(a.char)&&t(a.font);for(let i in a){let l=a[i];if(vc.has(i)){if(typeof l=="string")t(l);else if(typeof l=="object"&&l!==null)for(let d of wc)t(l[d]);}s.push(l);}}return {styles:f$1(e.package.styles?.styles),fontFamilies:[...n].sort()}}var Ge=class{constructor(n){b$6(this,"reader",n);b$6(this,"version",null);b$6(this,"projections",new Map);b$6(this,"inputMaps",new Map);}current(){let n=this.reader.version();n!==this.version&&(this.version=n,this.projections.clear(),this.inputMaps.clear());}projection(n){this.current();let t=this.projections.get(n);return t===void 0&&(t=u(this.reader,n),this.projections.set(n,t)),t}inputMap(n){this.current();let t=this.inputMaps.get(n);return t===void 0&&(t=this.reader.hasStory(n)?c$3(n,this.reader.paragraphSpans(n)):null,this.inputMaps.set(n,t)),t}positionOf(n,t){return x(this.reader,r=>this.projection(r),n,t,r=>this.inputMap(r))}};var si=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u,Ao=new WeakMap;function ai(e,n){Ao.set(e,n);}function ii(e,n){let t=e.encodeStickyPosition(n);return Ao.get(e)?.stickyPositions.set(_o(t.story,t.encoded),{story:t.story,encoded:t.encoded.slice()}),t}function _o(e,n){return `${e}\0${Array.from(n).join(",")}`}function wr(e){if(!e||typeof e!="object"||Array.isArray(e)||Object.keys(e).some(t=>!["story","paraId","offset","sticky"].includes(t)))return false;let n=e;return typeof n.story=="string"&&n.story.length>0&&typeof n.paraId=="string"&&n.paraId.length>0&&!si.test(n.story)&&!si.test(n.paraId)&&Number.isSafeInteger(n.offset)&&n.offset>=0&&n.offset<=4294967295&&(n.sticky===void 0||n.sticky instanceof Uint8Array&&n.sticky.length>0)}function Ie(e,n){if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).some(i=>!["anchor","focus"].includes(i))||!wr(n.anchor)||!wr(n.focus)||n.anchor.story!==n.focus.story)return null;let{anchor:t,focus:r}=n;if(!e.geometryReader.hasStory(t.story)||[t,r].some(i=>e.geometryReader.paragraphIdCount(i.story,i.paraId)!==1))return null;if(t.paraId!==r.paraId){let i=e.geometryReader.paragraphSpans(t.story),l=[t,r].map(d=>i.findIndex(({paraId:m})=>m===d.paraId));if(l.some(d=>d<0))return null;for(let d of i.slice(Math.min(...l),Math.max(...l)+1))if(e.geometryReader.paragraphIdCount(t.story,d.paraId)!==1)return null}let s=[t,r].map(i=>{let l=e.geometryReader.locateParagraph(i.story,i.paraId);return i.offset<=l.end-l.start?l.start+i.offset:-1});if(s.some(i=>i<0))return null;let[o,a]=s[0]<=s[1]?[t,r]:[r,t];return {story:o.story,start:{paraId:o.paraId,offset:o.offset},end:{paraId:a.paraId,offset:a.offset}}}function ze(e,n,t=n.selection,r=false){if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).some(d=>!["anchor","focus"].includes(d))||!wr(t.anchor)||!wr(t.focus)||t.anchor.story!==t.focus.story)return {ok:false,reason:"invalid-selection"};let s=d=>{if(!d.sticky)return r?null:{...d};let m=n.stickyPositions.get(_o(d.story,d.sticky));if(!m||m.story!==d.story||!e.geometryReader.hasStory(m.story))return null;let u=e.resolveStickyPosition(m);return u&&u.story===d.story?{...u,sticky:d.sticky.slice()}:null},o=s(t.anchor),a=s(t.focus);if(!o||!a)return {ok:false,reason:"stale-anchor"};let i={anchor:o,focus:a},l=Ie(e,i);return l?{ok:true,selection:i,range:l}:{ok:false,reason:"invalid-selection"}}function li(e,n){let t=Ao.get(e);if(!t)return Ie(e,n);let r=ze(e,t,n);return r.ok?r.range:null}function Et(e,n,t){let r=s=>{let o=e.encodeStickyPosition(s);return n.stickyPositions.set(_o(s.story,o.encoded),{story:s.story,encoded:o.encoded.slice()}),{story:s.story,paraId:s.paraId,offset:s.offset,sticky:o.encoded.slice()}};return {anchor:r(t.anchor),focus:r(t.focus)}}function tn(e,n,t,r){if(!t.basis||!Number.isSafeInteger(t.basis.epoch)||t.basis.epoch<0||!Number.isSafeInteger(t.basis.version)||t.basis.version<0||t.basis.epoch!==r.basis.epoch||t.basis.version!==r.basis.version||t.basis.version>r.currentVersion)return {ok:false,reason:"stale-anchor"};let s=t.basis.version!==r.currentVersion;if(s&&t.expectVersion)return {ok:false,reason:"stale-version"};if(!t.payload||typeof t.payload!="object"||Array.isArray(t.payload))return {ok:false,reason:"invalid-payload"};let o=t.payload,a=o.selection===void 0&&t.afterSeq!==void 0,i=n.remoteMerges,l=i?.to===r.currentVersion&&i.from<=t.basis.version;if(s&&o.selection===void 0&&!a&&!l)return {ok:false,reason:"stale-anchor"};if(a&&(!Number.isSafeInteger(t.afterSeq)||t.afterSeq<=0||t.afterSeq>=t.seq||!r.predecessorSelection))return {ok:false,reason:"stale-anchor"};let d=o.selection!==void 0?o.selection:a?r.predecessorSelection:n.selection;return ze(e,n,d,s&&!a)}async function Lo(e,n,t,r){let s=await z(),o=new Ge({...e.geometryReader,selectionText:e.selectionText}),a=J(n.displayList,s);try{let i=t.map(d=>{let m=Ie(e,{anchor:{story:d.story,...d.start},focus:{story:d.story,...d.end}});if(!m)return [];let u=d.story==="body"||d.story.startsWith("body:")?"body":d.story.split(":").slice(0,2).join(":"),p=o.positionOf({...m.start,story:d.story},u),x=o.positionOf({...m.end,story:d.story},u);if(p===null||x===null||p>=x)return [];let[g,f]=u.split(":");return (u==="body"?a.rangeRects(p,x):g==="hf"?[...a.hfRangeRects("header",f,p,x),...a.hfRangeRects("footer",f,p,x)]:g==="fn"||g==="en"?a.noteRangeRects(g==="fn"?"footnote":"endnote",Number(f),p,x):[]).map(b=>({...b,pageId:n.pages[b.pageIndex].pageId.toString()}))}),l=a.sourceState();if(l.status==="error")throw new Error(`Range highlight layout is unavailable: ${String(l.error)}`);return {version:e.proposalEngine.version(),layoutRevision:r,frameEpoch:n.frameEpoch,rects:i,unbuiltPages:n.pages.filter(d=>d.page.unbuilt).map(d=>d.pageIndex)}}finally{a.dispose();}}function ci(e,n,t,r=false){return t.map(s=>{let o=s.story==="body"||s.story.startsWith("body:")?"body":s.story.split(":").slice(0,2).join(":"),a=e.positionOf({story:s.story,...s.start},o),i=e.positionOf({story:s.story,...s.end},o);if(a===null||i===null||a>i||a===i&&!r)return [];let[l,d]=o.split(":");return a===i?o==="body"?[n.anchorRect(a)].filter(m=>!!m):l==="hf"?[...n.hfAnchorRects("header",d,a),...n.hfAnchorRects("footer",d,a)]:l==="fn"||l==="en"?n.noteCaretRects(l==="fn"?"footnote":"endnote",Number(d),a):[]:o==="body"?n.rangeRects(a,i):l==="hf"?[...n.hfRangeRects("header",d,a,i),...n.hfRangeRects("footer",d,a,i)]:l==="fn"||l==="en"?n.noteRangeRects(l==="fn"?"footnote":"endnote",Number(d),a,i):[]})}function Rr(e,n,t){for(let r of e.geometryReader.paragraphSpans(n)){let s=e.geometryReader.locateParagraph(n,r.paraId);if(t>=s.start&&t<=s.end)return {story:n,paraId:r.paraId,offset:t-s.start}}return null}function ui(e,n){if(n.kind==="revision"){let i=e.geometryReader.listRevisions().filter(l=>l.revisionId===n.revisionId).map(({story:l,range:d})=>({story:l,start:d.start,end:d.end}));return i.length?{id:n.revisionId,ranges:i}:null}let t=e.commentProjection(),r=t?.sessionIds.get(n.id)??String(n.id);if(!e.listComments().some(i=>i.id===r))return null;let s=[],o=new Set,a=n.id;for(;a!==void 0&&!o.has(a);){o.add(a);try{s=e.resolveComment(t?.sessionIds.get(a)??String(a));}catch(i){if(i instanceof WebAssembly.RuntimeError)throw i;s=[];}if(s.length)break;a=t?.comments.find(i=>i.id===a)?.parentId;}return {id:r,ranges:s.flatMap(i=>{let l=Rr(e,i.story,i.start),d=Rr(e,i.story,i.end);return l&&d?[{story:i.story,start:{paraId:l.paraId,offset:l.offset},end:{paraId:d.paraId,offset:d.offset}}]:[]})}}var di=new WeakMap;async function pi(e,n,t,r,s){var u;let o=await z(),a=()=>e.commentRecoveryState&&JSON.stringify([e.proposalEngine.version(),t.frameEpoch,r,n.snapshot(),e.commentRecoveryState()]),i=di.get(t);if(i?.engine===e&&i.key===a())return i.snapshot;let l=s?.queries?.(t,e.proposalEngine.version()),d=l??J(t.displayList,o),m=s?.index??new Ge({...e.geometryReader,selectionText:e.selectionText});try{let p=n.snapshot(),x=e.listComments(),g=e.commentProjection(),f=e.geometryReader.listRevisions(),h=Object.fromEntries(x.map(({id:O})=>{let I;try{I=e.resolveComment(O);}catch(_){if(_ instanceof WebAssembly.RuntimeError)throw _;I=[];}let F=I.flatMap(_=>{let L=Rr(e,_.story,_.start),B=Rr(e,_.story,_.end);return L&&B?[{story:_.story,start:L,end:B}]:[]});return [O,ci(m,d,F).flat()]})),b={};for(let O of f)(b[u=O.revisionId]??(b[u]=[])).push(...ci(m,d,[O.range],!0).flat());let v=H(e.geometryReader,p),R=Object.fromEntries(Object.entries(v.targets).map(([O,I])=>[O,I.ok?I.ranges.flatMap(F=>d.rangeRects(F.from,F.to)):[]])),w=d.sourceState();if(w.status==="error")throw new Error(`Review highlight layout is unavailable: ${String(w.error)}`);let P={version:p.version,previewVersion:p.previewVersion,layoutRevision:r,frameEpoch:t.frameEpoch,comments:x,...g?{uiComments:g.comments,commentIds:g.ids}:{},revisions:f,proposals:p,proposalGeometry:v,commentGeometry:h,revisionGeometry:b,proposalHighlights:R},T=a();return T&&di.set(t,{engine:e,key:T,snapshot:P}),P}finally{l||d.dispose();}}var No=class{constructor(n){b$6(this,"emit",n);b$6(this,"listener",null);}connect(){}disconnect(){this.emit("disconnect");}send(n){return this.emit(n),true}onEvent(n){return this.listener=n,()=>{this.listener===n&&(this.listener=null,this.emit("unsubscribe"));}}deliver(n){this.listener?.(n);}};function fi(e){let n=new Map,t=[],r=false,s=false,o=null,a=(g,f)=>{if(s)return;let h=!r&&t.length===0,b=t[t.length-1];b?.provider===g?b.out.push(f):t.push({provider:g,out:[f]}),h&&e.onOutput?.();},i=()=>{let g=o;if(!g||g.updates.length===0)return;o={updates:[],arrivals:[],single:true};let f=e.merge(g.updates,g.single&&g.updates.length===1);if("failed"in f){for(let h of g.arrivals)h.fail(f.failed);return}g.arrivals.forEach((h,b)=>h.settle(b===g.arrivals.length-1?f.applied:null));},l=(g,f,h)=>{if(!o)throw new Error("Collaboration updates merge only within a pipe burst");return o.updates.push(...f),o.arrivals.push(e.arrive(g)),o.single&&(o.single=h),null},d=g=>({clientId:e.clientId,encodeStateVector:()=>(i(),e.read.encodeStateVector()),encodeStateAsUpdate:f=>(i(),e.read.encodeStateAsUpdate(f)),...e.read.encodeStateAsUpdateChunks&&{encodeStateAsUpdateChunks:(f,h)=>(i(),e.read.encodeStateAsUpdateChunks(f,h))},applyUpdate:f=>l(g(),[f],true),applyUpdateChunks:f=>l(g(),f,false),onUpdate:e.onUpdate}),m=(g,f)=>{let h,b=new No(w=>{h.echo||a(g,typeof w=="string"?{do:w,through:h.through}:{do:"send",data:b$7(w),through:h.through});}),v=e.createProvider(d(()=>h.provider),b,f);h={id:g,provider:v,transport:b,through:0,echo:false,leaveClock:null,stop:[]};let R=false;return h.stop.push(v.onStatus(({status:w,synced:P})=>a(g,{do:"status",status:w,synced:P,through:h.through})),v.onError(w=>{h.echo||a(g,{do:"error",error:{code:w.code,message:w.message},through:h.through});}),v.onPeers(w=>{R&&a(g,{do:"peers",peers:[...w],timeOrigin:f$5(),through:h.through});})),R=true,n.set(g,h),h},u=(g,f)=>{g.echo=true;try{f();}finally{g.echo=false;}},p=g=>{let f=n.get(g.provider);for(let h of g.ops){if(h.op==="create"){f??(f=m(g.provider,h.options)),f.through=h.seq;continue}if(!f){a(g.provider,{do:"lost"});return}let b=f;switch(b.through=h.seq,h.op){case "connect":u(b,()=>b.provider.connect());break;case "disconnect":u(b,()=>b.provider.disconnect());break;case "fail":u(b,()=>b.transport.deliver({type:"error",error:e.transportError(h.error)}));break;case "destroy":u(b,()=>b.provider.destroy());for(let v of b.stop)v();n.delete(b.id),f=void 0;break;case "cursor":b.provider.setCursor(h.cursor,h.broadcast);break;case "event":{let{event:v}=h;b.transport.deliver(v.type==="message"?{type:"message",data:new Uint8Array(v.data)}:v);break}}}},x=()=>{for(let g of n.values()){let f=e.leave(g.provider),h=f?.clock??null;h!==g.leaveClock&&(g.leaveClock=h,a(g.id,{do:"leave",data:f?b$7(f.frame):null,through:g.through}));}};return {run(g){if(!s){r=true,o={updates:[],arrivals:[],single:true};try{p(g),i();}finally{o=null,r=false;}}},drain(){r=true;try{x();}finally{r=false;}if(t.length===0)return;let g=t;t=[];let f=[];for(let h of g)for(let b of h.out)(b.do==="send"||b.do==="leave"&&b.data)&&f.push(b.data);return {batches:g,transfer:f}},dispose(){if(!s){s=true;for(let g of n.values()){for(let f of g.stop)f();g.echo=true;try{g.provider.destroy();}catch{}}n.clear(),t=[];}}}}var jo=new WeakMap,mi=e=>JSON.stringify([e.story,e.paraId,e.offset]);function yi(e,n={}){let t=false,r=new Map;jo.set(e,r);let s=[],o=[],a=false,i=e.onUpdate((m,u)=>{!t&&u!=="remote"&&s.push(m.slice().buffer);}),l=m=>{let u={story:m.story,paraId:m.paraId,offset:m.endOffset};try{r.set(m.clientId,{key:mi(u),sticky:e.encodeStickyPosition(u)});}catch{}r.size>64&&r.delete(r.keys().next().value);},d=fi({clientId:e.clientId,read:{encodeStateVector:()=>e.encodeStateVector(),encodeStateAsUpdate:m=>e.encodeStateAsUpdate(m),encodeStateAsUpdateChunks:(m,u)=>e.encodeStateAsUpdateChunks(m,u)},onUpdate:m=>e.onUpdate(m),merge(m,u){let p=e.proposalEngine.version();try{let x=u?e.applyUpdate(m[0]):(e.applyUpdateChunks(m),null);return a=!0,x&&l(x),{applied:x}}catch(x){if(x instanceof WebAssembly.RuntimeError||e.proposalEngine.version()!==p)throw x;return {failed:x}}},createProvider:(m,u,p)=>new f$6(m,u,p),arrive:e$7,leave:d$3,transportError:m=>new a$8(m.code,m.message),onOutput:n.onPipeOutput});return {drain(){let m=d.drain();if(!(!s.length&&!o.length&&!a&&!m))return a=false,{clock:p(e.encodeStateVector(),e.clientId),updates:s.splice(0),inferences:o.splice(0),...m&&{pipe:m.batches},transfer:m?.transfer??[]}},wrap(m){let u=()=>({selection:m.selection(),editState:m.editState()});return {...m,apply(p,x){let{command:g}=p;if(g.kind!=="applyRemoteUpdate"&&g.kind!=="applyRemoteUpdateChunks"&&g.kind!=="collabPipe")return m.apply(p,x);if(t)return {status:"refused",reason:"unsupported-command",...u()};let f=e.proposalEngine.version(),h=e.storiesChangedSince(Number.MAX_SAFE_INTEGER).revision;if(g.kind==="collabPipe")return d.run(g.payload),e.proposalEngine.version()===f?{status:"noop",...u()}:(e.markProjectionStories(e.storiesChangedSince(h).stories),m.afterRemoteMerge?.(x),{status:"applied",...u()});try{g.kind==="applyRemoteUpdateChunks"&&e.applyUpdateChunks(g.payload.updates.map(v=>new Uint8Array(v)));let b=g.kind==="applyRemoteUpdate"?e.applyUpdate(new Uint8Array(g.payload.update)):null;return a=!0,e.proposalEngine.version()!==f&&e.markProjectionStories(e.storiesChangedSince(h).stories),b&&(o.push({seq:g.seq,insertion:b}),l(b)),e.proposalEngine.version()===f?{status:"noop",...u()}:(m.afterRemoteMerge?.(x),{status:"applied",...u()})}catch(b){if(b instanceof WebAssembly.RuntimeError||e.proposalEngine.version()!==f)throw b;return {status:"refused",reason:"invalid-update",...u()}}}}},dispose(){t||(t=true,d.dispose(),i(),s.length=0,o.length=0,r.clear(),jo.delete(e));}}}function gi(e,n){return e.encodeStateAsUpdate(n)}async function hi(e,n,t,r,s){let o=await z(),a=J(n.displayList,o),i=new Ge({...e.geometryReader,selectionText:e.selectionText}),l=m=>m.pageIndex>=r[0]&&m.pageIndex<r[1],d=m=>{let u=n.pages.find(p=>p.pageIndex===m.pageIndex);return u?[{...m,pageId:u.pageId.toString()}]:[]};try{let m=t.slice(0,32).map(p=>{let x={clientId:p.clientId,clock:p.clock,status:"unresolved",caret:null,rects:[]},g=jo.get(e)?.get(p.clientId),f=p.inferred&&g?.key===mi(p.inferred)?e.resolveStickyPosition(g.sticky):p.inferred,h=p.inferred?f:p.cursor&&e.resolveStickyPosition({story:p.cursor.story,encoded:p.cursor.anchor}),b=p.inferred?f:p.cursor&&e.resolveStickyPosition({story:p.cursor.story,encoded:p.cursor.head});if(!h||!b||h.story!==b.story)return x;let v=b.story==="body"||b.story.startsWith("body:")?"body":b.story.split(":").slice(0,2).join(":"),R=i.positionOf(h,v),w=i.positionOf(b,v);if(R===null||w===null)return x;let[P,T]=v.split(":"),O=Math.min(R,w),I=Math.max(R,w),F=O===I?[]:v==="body"?a.rangeRectsOnPages?.(O,I,r[0],r[1]-1)??a.rangeRects(O,I):P==="hf"?[...a.hfRangeRects("header",T,O,I),...a.hfRangeRects("footer",T,O,I)]:P==="fn"||P==="en"?a.noteRangeRects(P==="fn"?"footnote":"endnote",Number(T),O,I):[],L=(v==="body"?[a.caretRect(w)]:P==="hf"?[...a.hfCaretRects("header",T,w),...a.hfCaretRects("footer",T,w)]:P==="fn"||P==="en"?a.noteCaretRects(P==="fn"?"footnote":"endnote",Number(T),w):[]).flatMap(B=>B&&l(B)?d(B):[])[0]??null;return {clientId:p.clientId,clock:p.clock,status:"ok",caret:L,rects:F.filter(l).flatMap(d).slice(0,64)}}),u=a.sourceState();if(u.status==="error")throw new Error(`Presence layout is unavailable: ${String(u.error)}`);return {version:e.proposalEngine.version(),layoutRevision:s,frameEpoch:n.frameEpoch,peers:m}}finally{a.dispose();}}function Wo(e,n=[]){let t=Ir(e),r=n.map(Ir);return b$4({frame:t,...r.length?{pageFrames:r}:{}},[...new Set([t,...r])])}function Ir(e){return e.buffer instanceof ArrayBuffer&&e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:new Uint8Array(e).buffer}function bi(e){let{frame:n,metadata:t,pageFrames:r,coversThroughSeq:s,...o}=e,a=Wo(n,r),i=[...a.transfer];o.layoutMeta&&i.push(o.layoutMeta.pageSizes.buffer);for(let l of o.stagedPresentation?.pages??[]){i.push(l.bitmap);for(let d of l.backgrounds??[])i.push(d.bitmap);}return b$4({coversThroughSeq:s,revision:t.frameEpoch,...t.full?{}:{baseRevision:t.baseFrameEpoch},payload:{...o,...a.value}},[...new Set(i)])}var Ic=4096,xi=4096;function ki(e,n){let t=new WeakMap,r=4096;function s(o,a,i){if(--r<0||i>32)return false;if(Object.is(o,a))return true;if(o===null||a===null||typeof o!="object"||typeof a!="object")return false;if(t.has(o))return t.get(o)===a;if(t.set(o,a),o instanceof Date||a instanceof Date)return o instanceof Date&&a instanceof Date&&Object.is(o.getTime(),a.getTime());if(o instanceof RegExp||a instanceof RegExp)return o instanceof RegExp&&a instanceof RegExp&&o.source===a.source&&o.flags===a.flags;if(o instanceof Number||a instanceof Number||o instanceof Boolean||a instanceof Boolean||o instanceof String||a instanceof String)return o.constructor===a.constructor&&Object.is(o.valueOf(),a.valueOf());if(o instanceof ArrayBuffer||a instanceof ArrayBuffer||ArrayBuffer.isView(o)||ArrayBuffer.isView(a)){let u=g=>g instanceof ArrayBuffer?new Uint8Array(g):ArrayBuffer.isView(g)?new Uint8Array(g.buffer,g.byteOffset,g.byteLength):void 0,p=u(o),x=u(a);if(!p||!x||o.constructor!==a.constructor||p.byteLength!==x.byteLength||p.byteLength>r)return false;r-=p.byteLength;for(let g=0;g<p.length;g+=1)if(p[g]!==x[g])return false;return true}if(o instanceof Map||a instanceof Map||o instanceof Set||a instanceof Set){if(o.constructor!==a.constructor||!(o instanceof Map||o instanceof Set)||!(a instanceof Map||a instanceof Set)||o.size!==a.size||o.size>r)return false;let u=o.entries(),p=a.entries();for(let x=0;x<o.size;x+=1)if(!s(u.next().value,p.next().value,i+1))return false;return true}if(Array.isArray(o)!==Array.isArray(a)||Array.isArray(o)&&Array.isArray(a)&&o.length!==a.length||Object.getPrototypeOf(o)!==Object.getPrototypeOf(a)||!Array.isArray(o)&&Object.getPrototypeOf(o)!==Object.prototype&&Object.getPrototypeOf(o)!==null)return false;let l=Object.keys(o);if(l.length>r||l.length!==Object.keys(a).length)return false;let d=o,m=a;return l.every(u=>d$2(a,u)&&s(d[u],m[u],i+1))}return s(e,n,0)}function Pc(e=[]){let n=[];function t(s){let o=0,a=n.length;for(;o<a;){let i=Math.floor((o+a)/2),l=n[i];if(s<l[0])a=i;else if(s>l[1])o=i+1;else return true}return false}function r(s){if(!Number.isSafeInteger(s)||s<=0)throw new TypeError("Invalid replay sequence");let o=0;for(;o<n.length&&n[o][1]<s-1;)o+=1;let a=n[o];if(a&&a[0]<=s+1){a[0]=Math.min(a[0],s),a[1]=Math.max(a[1],s);let i=n[o+1];i&&i[0]<=a[1]+1&&(a[1]=Math.max(a[1],i[1]),n.splice(o+1,1));return}if(n.length===Ic)throw new i("out-of-memory","Command replay ledger exhausted: 4096 disjoint ranges per epoch");n.splice(o,0,[s,s]);}for(let s of e)r(s);return {contains:t,add:r}}function Si(e){return {...e,...e.affectedSeqs===void 0?{}:{affectedSeqs:[...e.affectedSeqs]}}}function vi(e,n){let t=n instanceof Error?n.message:String(n),r={name:e$6,refusal:{seq:e}};return Object.assign(new Error(`Command ${e} has an unknown outcome: ${t}`),r)}function Cc(e){return e instanceof Error&&!(e instanceof i)&&!(typeof WebAssembly<"u"&&e instanceof WebAssembly.RuntimeError)}function wn(e){if(e instanceof i)return e;let n=typeof WebAssembly<"u"&&e instanceof WebAssembly.RuntimeError;return new i(n?"trap":"crash",e instanceof Error?e.message:String(e))}function wi(e){let n=e.retainedOutcomes??256,{session:t,incarnation:r,epoch:s,getVersion:o,apply:a,frame:i$1,snapshot:l,prunedDuplicateReason:d}=e,m=e.throughSeq??0,u=o();if(!Number.isSafeInteger(n)||n<0||!Number.isSafeInteger(m)||m<0||!Number.isFinite(u)||d!==void 0&&(typeof d!="string"||d.length===0))throw new TypeError("Invalid command host ledger");let p=new Map,x=Pc(e.refusedSeqs),g=new Set(e.replayAppliedSeqs);for(let D of g)if(!Number.isSafeInteger(D)||D<=0)throw new TypeError("Invalid replay sequence");let f,h=Promise.resolve(),b=0,v=0,R=0,w=0,P=0,T=new Map,O,I,F=false,_=false,L=m,B=0,U=e.queries?z():0,J=new Map;function z(){let D=e.layoutRevision?.()??0;if(!Number.isSafeInteger(D)||D<0)throw new TypeError("Invalid layout revision");return D}function ee(D,M=[]){if(!(!e.checkRefusals||b$8.includes(D)||M.includes(D)||["stale-epoch","stale-incarnation","wrong-session","stale-version","dependency-refused","unknown-outcome","disposed"].includes(D)))throw oe(new TypeError(`Undeclared refusal: ${D}`))}function oe(D){return f=D,C(),D}function A(D){if(R===xi&&!f&&oe(new i("out-of-memory","Command handler capacity exceeded")),f)return Promise.reject(f);R+=1;let c=h.then(()=>{if(f)throw f;return D()}).finally(()=>{R-=1,C();});return h=c.then(()=>{},()=>{}),c}function Q(D){let M=T.get(D);if(M){T.delete(D);for(let c of M)c();}}function C(){if(!f)return;let D=f,M=[...T.values()],c=[...J.values()];T.clear(),J.clear();for(let y of M)for(let k of y)k();for(let y of c)for(let k of y)k.reject(D);}async function W(){try{let D=await i$1({coversThroughSeq:m,version:u});if(D===void 0)return;let M=c$1(D)?D.value:D;if(!g$2({session:t,incarnation:r,epoch:s,throughSeq:m,version:u,outcomes:[],frame:M})||M.coversThroughSeq!==m)throw new Error("Frame does not cover the settled command boundary");return D}catch(D){throw oe(wn(D))}}async function $(){let D=await W();if(D===void 0)throw new Error("No frame is available at the settled command boundary");return D}function G(D){if(D.status==="refused"||D.status==="cancelled")try{x.add(D.seq);}catch(M){throw oe(wn(M))}if(m=D.seq,n>0&&(p.set(D.seq,Si(D)),p.size>n&&p.delete(p.keys().next().value)),J.size)for(let M of [...J.keys()].sort((c,y)=>c-y)){if(M>m)break;let c=J.get(M);if(c){J.delete(M);for(let y of c)y.start();}}return D}function Z(D,M,c=false){return {seq:D,status:c?"cancelled":"refused",reason:M,committed:false}}function K(D,M){let c={session:t,incarnation:r,epoch:s,throughSeq:m,version:u,outcomes:D?[Si(D)]:[]};try{M&&d$2(M,"selection")&&(!F||!(e.selectionEquals??ki)(O,M.selection))&&(O=a$7(M.selection),F=!0,c.selection=a$7(O),e.queries&&(B+=1)),M&&d$2(M,"editState")&&(!_||!(e.editStateEquals??ki)(I,M.editState))&&(I=a$7(M.editState),_=!0,c.editState=a$7(I)),e.queries&&(U=z(),c.revisions={selection:B,layout:U});}catch(y){throw oe(wn(y))}return c}async function ae(D){if(b>0||v>1)return D;try{let M=await W();if(M===void 0)return D;if(c$1(M)){if(D.frame=M.value,!g$2(D)||D.frame.coversThroughSeq!==m)throw new Error("Frame does not cover the settled command boundary");return b$4(D,M.transfer)}if(D.frame=M,!g$2(D)||M.coversThroughSeq!==m)throw new Error("Frame does not cover the settled command boundary");return D}catch(M){throw oe(wn(M))}}function fe(D){try{let M=o();if(!Number.isFinite(M)||M!==u)throw new Error("Version changed outside a command");return M}catch(M){throw oe(vi(D,M))}}function N(D){return f$4(D)&&D.session===t&&D.incarnation===r&&D.basis.epoch===s}async function j(D){if(!f$4(D))throw new TypeError("Invalid command envelope");if(D.session!==t)return K(Z(D.seq,"wrong-session"));if(D.incarnation!==r)return K(Z(D.seq,"stale-incarnation"));if(D.basis.epoch!==s){let q=Z(D.seq,"stale-epoch");return K(D.seq>m?G(q):q)}if(D.seq<=m)return ae(K(p.get(D.seq)??(d===void 0?{seq:D.seq,status:"duplicate"}:Z(D.seq,d))));if(x.contains(D.seq))return ae(K(G(Z(D.seq,"unknown-outcome"))));if(D.afterSeq!==void 0&&x.contains(D.afterSeq))return ae(K(G(Z(D.seq,"dependency-refused",true))));let M=D.replay===true&&g.has(D.seq);if(e.commands){if(!d$2(e.commands,D.kind))return ae(K(G(Z(D.seq,"unsupported"))));if(e.commands[D.kind].admission==="local-write"&&!M&&e.readOnly?.())return ae(K(G(Z(D.seq,"read-only"))))}let c=fe(D.seq);if(D.expectVersion&&!M&&D.basis.version!==c)return ae(K(G(Z(D.seq,"stale-version"))));let y;try{if(y=await a(D,{basis:D.basis,currentVersion:c,replayPreviouslyApplied:M}),!y||typeof y!="object"||y.status!=="applied"&&y.status!=="noop"&&y.status!=="cancelled"&&y.status!=="refused"||y.status==="applied"&&y.committed!==void 0&&y.committed!==!1||y.status==="cancelled"&&y.reason!==void 0&&typeof y.reason!="string")throw new Error("Invalid format apply result");let q=o();if(!Number.isFinite(q)||(y.status==="applied"&&y.committed!==!1?q<=c:q!==c))throw new Error(`${y.status} violated the command version contract`);u=q;}catch(q){throw oe(vi(D.seq,q))}y.status==="refused"&&ee(y.reason,e.commands?.[D.kind]?.refusals);let k=y.status==="refused"?{...Z(D.seq,y.reason),...y.affectedSeqs===void 0?{}:{affectedSeqs:y.affectedSeqs}}:y.status==="cancelled"?{seq:D.seq,status:"cancelled",committed:false,...y.reason===void 0?{}:{reason:y.reason}}:y.status==="applied"&&y.committed===false?{seq:D.seq,status:"applied",committed:false}:{seq:D.seq,status:y.status},E=K(G(k),y);return y.status==="noop"&&e.deferFrame?.(D,y)?E:ae(E)}let pe={lane:"input",mutates:true,reframes:true,reorderable:false};function ye(D,M){return {ok:false,refusal:{code:D,...M===void 0?{}:{detail:M}}}}function se(D){return !!D&&typeof D=="object"&&typeof D.session=="string"&&[D.incarnation,D.epoch,D.afterSeq].every(M=>Number.isSafeInteger(M)&&M>=0)}function te(D,M,c){return A(async()=>{let y;try{y=await e.queries.handlers[M](c,D);}catch(E){if(E instanceof i||typeof WebAssembly<"u"&&E instanceof WebAssembly.RuntimeError)throw oe(wn(E));return ye("invalid-payload",E instanceof Error?E.message:String(E))}if(c$4(y))return ee(y.refusal.code,e.queries.specs[M].refusals),{ok:false,refusal:y.refusal};let k={ok:true,value:c$1(y)?y.value:y,at:{incarnation:r,epoch:s,throughSeq:m,doc:u,selection:B,layout:z()}};return c$1(y)?b$4(k,y.transfer):k})}return {handler(D,M){let c=N(M),y=c&&b>0;c&&(L=Math.max(L,M.seq),b=Math.max(0,b-1),v+=1);let k=A(()=>j(M));return y&&Q(++w),C(),k.finally(()=>{c&&(v-=1),C();})},policy(D){return N(D)&&(b+=1,L=Math.max(L,D.seq)),{...pe}},query(D,M,c,y){return f?Promise.reject(f):!se(M)||typeof c!="string"||!Array.isArray(y)?Promise.resolve(ye("invalid-payload")):M.session!==t||M.incarnation!==r||M.epoch!==s||M.afterSeq>L?Promise.resolve(ye("stale")):!e.queries||!d$2(e.queries.specs,c)||!d$2(e.queries.handlers,c)?Promise.resolve(ye("unsupported")):m>=M.afterSeq?te(D,c,y):a$6(new Promise((k,E)=>{let q=J.get(M.afterSeq);q||J.set(M.afterSeq,q=[]),q.push({start:()=>{te(D,c,y).then(k,E);},reject:E});}))},queryPolicy(D,M,c){return {lane:"interactive",reorderable:(e.queries&&d$2(e.queries.specs,M)?e.queries.specs[M]:void 0)?.stale!=="answer-at-fence"}},revise(D){if(f)throw f;let M=u,c=U;u=o();let y=K(void 0,D);return u!==M||U!==c||d$2(y,"selection")||d$2(y,"editState")?y:void 0},checkpoint(D){return A(async()=>{let M;try{let c=o();if(c!==u)throw new Error("Version changed before checkpoint");let y;try{y=(await l()).slice();}catch(k){throw o()===c&&Cc(k)&&(M=k),k}if(o()!==c)throw new Error("Snapshot changed the command version");return b$4({state:y,epoch:s,version:u,throughSeq:m},[y.buffer])}catch(c){throw M||oe(wn(c))}})},checkpointPolicy(){return {lane:"input",reorderable:false}},frame(){return P===xi&&!f&&oe(new i("out-of-memory","Command frame capacity exceeded")),f?(C(),Promise.reject(f)):b===0?A($):(P+=1,new Promise((D,M)=>{let c=w+b,y=T.get(c);y||T.set(c,y=[]),y.push(()=>{P-=1,A($).then(D,M);});}))}}}var Ec=new Set(["toolbar","effectiveFormatting","hyperlink","tableContext","currentRevisionId"]);function Ri(e){return Object.fromEntries(Object.entries(e).filter(([n])=>!Ec.has(n)))}function Ii(e){let{init:n,hooks:t,registry:r}=e,s=n.version??0,o=n.throughSeq??0;if(!Number.isSafeInteger(s)||s<0)throw new TypeError("Invalid command version");let a=Promise.resolve(),i=Promise.resolve(),l,d,m,u=false,p=new Map(structuredClone(n.recoveryState?.selections??[])),x=Math.max(256,e.retainedOutcomes??256),g=wi({session:n.session,incarnation:n.incarnation,epoch:n.epoch,throughSeq:o,retainedOutcomes:e.retainedOutcomes,refusedSeqs:n.refusedSeqs,replayAppliedSeqs:n.replayAppliedSeqs,getVersion:()=>s,async apply(w,P){let T={...P,...w.afterSeq!==void 0&&p.has(w.afterSeq)?{predecessorSelection:structuredClone(p.get(w.afterSeq))}:{}},O=e.selectionAck&&["select","navigate","selectPoint","extendSelection","selectTableCells","navigateCell"].includes(w.kind),I=O?structuredClone(Ri(t.editState())):void 0,F=await t.preflight(w,T),_=F.status==="ready"?await t.apply(F.prepared,T):F;if(_.status==="applied"){if(s===Number.MAX_SAFE_INTEGER)throw new Error("Command version space is exhausted");s+=1;}let L=t.selection();(_.status==="applied"||_.status==="noop")&&(p.set(w.seq,structuredClone(L)),p.size>x&&p.delete(p.keys().next().value));let B=t.editState();return u=!!O&&_.status==="noop"&&Pr(I,Ri(B)),{..._,selection:L,editState:B}},deferFrame:()=>u,frame:w=>f({...w,full:false}),snapshot:()=>t.snapshot()});function f(w){let P=i.then(()=>t.frame(w));return i=P.then(()=>{},()=>{}),P}function h(w){let P=a.then(()=>{if(l!==void 0)throw l;return w()});return a=P.then(()=>{},T=>{l=T;}),P}function b(w,P){let T={...c$1(w)?w.value:w},O=t.selection(),I=t.editState();return P||!Pr(d,O)?(d=structuredClone(O),T.selection=structuredClone(d)):delete T.selection,P||!Pr(m,I)?(m=structuredClone(I),T.editState=structuredClone(m)):delete T.editState,c$1(w)?b$4(T,w.transfer):T}async function v(){let w=await f({coversThroughSeq:o,version:s,full:true}),P=c$1(w)?w.value:w;if(P.coversThroughSeq!==o||P.baseRevision!==void 0)throw new Error("Full frame does not cover the command boundary");let T={session:n.session,incarnation:n.incarnation,epoch:n.epoch,version:s,throughSeq:o,outcomes:[],frame:P,selection:structuredClone(t.selection()),editState:structuredClone(t.editState())};return d=structuredClone(T.selection),m=structuredClone(T.editState),c$1(w)?b$4(T,w.transfer):T}let R={handler(w,P){return h(async()=>{if(f$4(P)&&P.basis.epoch!==n.epoch)return b({session:n.session,incarnation:n.incarnation,epoch:n.epoch,version:s,throughSeq:o,outcomes:[{seq:P.seq,status:"refused",reason:"stale-epoch",committed:false}]},true);u=false;let T=P.seq<=o,O=await g.handler(w,P),I=c$1(O)?O.value:O;o=I.throughSeq;let F=b(O,T||I.outcomes.some(({status:_})=>_==="refused"||_==="cancelled"||_==="duplicate"));if(u){let _=c$1(F)?F.value:F,L=e.selectionAck.echoContext();L&&(_.echoContext=L),e.selectionAck.deferFrame(_);}return F})},policy(w){return f$4(w)&&w.basis.epoch!==n.epoch?{lane:"input",mutates:true,reframes:true,reorderable:false}:g.policy(w)},checkpoint:w=>h(async()=>{let P=await g.checkpoint(w);if(!t.recoveryState)return P;let O={...c$1(P)?P.value:P,recoveryState:structuredClone({...t.recoveryState(),selections:[...p]})};return c$1(P)?b$4(O,P.transfer):O}),checkpointPolicy:g.checkpointPolicy,frame:()=>l===void 0?g.frame():Promise.reject(l),withFrameWork(w){let P=i.then(w);return i=P.then(()=>{},()=>{}),P},initial:()=>h(v),requestFullFrame:()=>h(v)};return r.handlers.edit=R.handler,r.handlers.checkpoint=R.checkpoint,r.policies.edit=R.policy,r.policies.checkpoint=R.checkpointPolicy,R}function Pr(e,n){if(Object.is(e,n))return true;if(e===null||n===null||typeof e!="object"||typeof n!="object")return false;if(e instanceof Uint8Array||n instanceof Uint8Array)return e instanceof Uint8Array&&n instanceof Uint8Array&&e.length===n.length&&e.every((o,a)=>o===n[a]);if(Array.isArray(e)!==Array.isArray(n))return false;let t=e,r=n,s=Object.keys(t);return s.length===Object.keys(r).length&&s.every(o=>Object.prototype.hasOwnProperty.call(r,o)&&Pr(t[o],r[o]))}function Yo(e){let{request:n,suggesting:t}=e;return {...n,...t?{steps:n.steps.map(r=>"suggest"in r&&r.suggest?r:{...r,suggest:{author:t.name,date:t.date}})}:{}}}function Pi(e,n,t){let r=Yo(t);e.beginUndoCapture();let s=e.proposalEngine.applyEdits(r);return s.ok&&s.applied&&(n.storedMarks=null),s}var ct={addComment:["ranges","author","date","body","expectVersion","parentId"],updateComment:["id","patch","expectVersion"],setCommentRanges:["id","ranges","expectVersion"],removeComment:["id","expectVersion"],acceptRevision:["revisionId","expectVersion"],rejectRevision:["revisionId","expectVersion"],propose:["proposals","expectVersion","hostProposal"],setProposalStates:["changes","expectVersion","expectPreviewVersion","hostProposal"],withdrawProposals:["ids","expectVersion","hostProposal"]};function Ci(e){return (e.kind==="propose"||e.kind==="setProposalStates"||e.kind==="withdrawProposals")&&e.payload.hostProposal===true}function Ei(e,n,t){let r=t.payload;if(r.expectVersion!==e.proposalEngine.version())return "stale-version";if(t.kind==="withdrawProposals"&&!n.proposals)return "review-unavailable";switch(t.kind){case "addComment":case "setCommentRanges":{if(!Array.isArray(t.payload.ranges)||!t.payload.ranges.length)return "invalid-range";for(let s of t.payload.ranges){if(!s||!s.start||!s.end)return "invalid-range";let o=Ie(e,{anchor:{story:s.story,...s.start},focus:{story:s.story,...s.end}});if(!o||o.start.paraId!==s.start.paraId||o.start.offset!==s.start.offset||o.start.paraId===o.end.paraId&&o.start.offset===o.end.offset)return "invalid-range"}break}}return "id"in r&&!e.listComments().some(s=>s.id===r.id)||t.kind==="addComment"&&t.payload.parentId!==void 0&&!e.listComments().some(s=>s.id===t.payload.parentId)?"unknown-comment":"revisionId"in r&&n.proposals?.snapshot().proposals.some(s=>s.revisionIds.includes(r.revisionId))?"tracked-revision-conflict":"revisionId"in r&&!e.geometryReader.listRevisions().some(s=>s.revisionId===r.revisionId)?"unknown-revision":null}function Di(e,n,t){let r=e.proposalEngine.version(),s=n.proposals?.snapshot();if(t.kind==="propose"||t.kind==="setProposalStates"||t.kind==="withdrawProposals"){if(!n.proposals)return {status:"refused",reason:"review-unavailable"};let{hostProposal:m,...u}=t.payload,p=t.kind==="propose"?n.proposals.propose(u):t.kind==="setProposalStates"?n.proposals.setStates(u):n.proposals.withdraw(u);return p.ok?{status:JSON.stringify(s)===JSON.stringify(p.snapshot)?"noop":"applied"}:{status:"refused",reason:p.failure.code}}e.beginUndoCapture(),e.addUndoBoundary();let o;switch(t.kind){case "addComment":o=e.addComment(t.payload.ranges,t.payload.author,t.payload.date,t.payload.body).commentId,t.payload.parentId!==void 0&&e.updateComment(o,{parentId:t.payload.parentId});break;case "updateComment":e.updateComment(t.payload.id,t.payload.patch);break;case "setCommentRanges":e.setCommentRanges(t.payload.id,t.payload.ranges);break;case "removeComment":e.applyRawOps("body",[{op:"removeComment",id:t.payload.id}]);break;case "acceptRevision":e.acceptChange({revisionId:t.payload.revisionId});break;case "rejectRevision":e.rejectChange({revisionId:t.payload.revisionId});break}e.addUndoBoundary(),e.markProjectionStories(e.geometryReader.storyIds());let a=e.proposalEngine.version()===r?"noop":"applied",i=t.kind==="updateComment"||t.kind==="setCommentRanges"||t.kind==="removeComment",l=o!==void 0||i?e.commentProjection():null;if(!l)return {status:a};if(o===void 0)return {status:a,commentChange:{comments:l.comments}};let d=l.ids[o];return d===void 0?{status:a}:{status:a,comment:{id:d,comments:l.comments}}}function Mi(e,n,t){let r=e.paragraphs(n.story),s=r.findIndex(m=>m.paraId===n.start.paraId),o=r.findIndex(m=>m.paraId===n.end.paraId),a="kind"in t?t.kind==="bullet"?1:2:void 0,i=e.selectionContext(n).paragraphProperties.numPr,l=a!==void 0&&i?.numId===a,d={numPr:null,listIsBullet:null,listNumFmt:null,listMarker:null};return r.slice(s,o+1).flatMap(m=>{let u=m.properties,p=u.numPr,x;if("kind"in t)x=l?d:{numPr:{numId:a,ilvl:p?.ilvl??0},listIsBullet:t.kind==="bullet",listNumFmt:t.kind==="bullet"?null:"decimal",listMarker:null};else if(p?.numId){let g=p.ilvl??0;if(t.direction==="increase"&&g>=8)return [];if(t.direction==="decrease"&&g===0&&t.preserveNumbering)return [];x=t.direction==="decrease"&&g===0?d:{numPr:{numId:p.numId,ilvl:g+(t.direction==="increase"?1:-1)}},x={...x,indentLeft:null,indentFirstLine:null,other:{hangingIndent:null}};}else {let g=typeof u.indentLeft=="number"&&Number.isFinite(u.indentLeft)?u.indentLeft:0,f=t.direction==="increase"?g+720:Math.max(0,g-720);if(f===g)return [];x={indentLeft:f};}return [{range:{story:n.story,start:{paraId:m.paraId,offset:0},end:{paraId:m.paraId,offset:0}},attrs:x}]})}function ht(e){return e==="body"||e.startsWith("body:")?"body":e.split(":").slice(0,2).join(":")}function $e(e){try{return e.cellSelection()}catch(n){if(n instanceof WebAssembly.RuntimeError)throw n;return null}}function Ve(e,n){if(n===ht(n))return null;let t=u(e.geometryReader,ht(n));if(!t)return null;let r=null;for(let s of t.allTables()){let o=s.cells.find(a=>a.story===n);o&&(!r||s.story.length>r.story.length)&&(r={story:s.story,tableIndex:s.tableIndex,row:o.row,column:o.column});}return r}function Dc(e){return !!e&&typeof e=="object"&&Array.isArray(e.rows)}function Rn(e,n,t){if(typeof e.tablePayload!="function")return null;let r=e.tablePayload(n,t);if(!Dc(r)||r.rows.length===0)return null;let{anchors:s,columns:o}=j(r);return o===0?null:{payload:r,anchors:s,columns:o}}function Oi(e,n,t){let r=Rn(e,n.story,n.tableIndex);if(!r)return null;let{payload:s,columns:o}=r;if(!r.anchors.some(d=>d.row<=n.row&&n.row<d.row+d.rowspan&&d.column<=n.column&&n.column<d.column+d.colspan))return null;let i=s.rows.length-1,l=o-1;return t==="row"?{anchor:{...n,column:0},head:{...n,column:l}}:t==="column"?{anchor:{...n,row:0},head:{...n,row:i}}:{anchor:{...n,row:0,column:0},head:{...n,row:i,column:l}}}function Cr(e,n){let t=e.geometryReader.paragraphSpans(n)[0];return t?{story:n,paraId:t.paraId,offset:0}:null}function Er(e,n){let t=$e(e);if(!t||t.anchor.row===t.head.row&&t.anchor.column===t.head.column)return null;let r=Ve(e,n.story);if(!r||t.anchor.story!==r.story||t.anchor.tableIndex!==r.tableIndex||t.head.story!==r.story||t.head.tableIndex!==r.tableIndex)return null;let o=Rn(e,r.story,r.tableIndex)?.anchors.find(a=>a.row<=t.head.row&&t.head.row<a.row+a.rowspan&&a.column<=t.head.column&&t.head.column<a.column+a.colspan);return o?Cr(e,o.story):null}function Vn(e,n){let t=Ve(e,n);return t?{anchor:t,head:{...t}}:null}function Mc(e,n,t){if(n===t||ht(n)!==ht(t))return null;let r=u(e.geometryReader,ht(n));if(!r)return null;let s=null;for(let d of r.allTables()){let m=u=>d.cells.some(p=>p.story===u||u.startsWith(`${p.story}:`));!m(n)||!m(t)||(!s||d.story.length>s.story.length)&&(s={story:d.story,tableIndex:d.tableIndex});}if(!s)return null;let o=Rn(e,s.story,s.tableIndex);if(!o)return null;let a=d=>o.anchors.find(m=>m.story===d)??o.anchors.find(m=>d.startsWith(`${m.story}:`)),i=a(n),l=a(t);return !i||!l||i.story===l.story?null:{...s,anchor:{row:i.row,column:i.column,story:i.story},head:{row:l.row,column:l.column,story:l.story}}}function Bo(e,n,t){let r=Mc(e,n.story,t.story);if(!r)return null;let s=$e(e),a=!!s&&s.anchor.story===r.story&&s.anchor.tableIndex===r.tableIndex&&s.head.story===r.story&&s.head.tableIndex===r.tableIndex&&s?s.anchor:{story:r.story,tableIndex:r.tableIndex,row:r.anchor.row,column:r.anchor.column},d=Rn(e,r.story,r.tableIndex)?.anchors.find(u=>u.row<=a.row&&a.row<u.row+u.rowspan&&u.column<=a.column&&a.column<u.column+u.colspan)?.story??r.anchor.story,m=n.story===d?n:Cr(e,d)??n;return {cells:{anchor:a,head:{story:r.story,tableIndex:r.tableIndex,row:r.head.row,column:r.head.column}},textAnchor:m}}function Oc(e,n){return (e==="character"||e==="word")&&(n==="backward"||n==="forward")?{dRow:0,dCol:n==="forward"?1:-1}:(e==="line"||e==="paragraph")&&(n==="up"||n==="down")?{dRow:n==="down"?1:-1,dCol:0}:null}function Ti(e,n,t,r,s,o){if(r==="page"){let P=Bo(e,n.anchor,t);if(!P&&n.anchor.story!==t.story){let T=Ve(e,t.story),O=T&&n.anchor.story===T.story?Rn(e,T.story,T.tableIndex):null,I=s==="down"?O?.anchors[0]:O?.anchors.at(-1),F=I?Cr(e,I.story):null;T&&I&&F&&(P={textAnchor:F,cells:{anchor:{story:T.story,tableIndex:T.tableIndex,row:I.row,column:I.column},head:T}});}return P?{selection:{anchor:P.textAnchor,focus:P.textAnchor},cells:P.cells,goalX:o}:null}let a=Oc(r,s),i=a?Ve(e,n.focus.story):null;if(!a||!i)return null;let l=$e(e),m=!!(!!l&&l.anchor.story===i.story&&l.anchor.tableIndex===i.tableIndex&&l.head.story===i.story&&l.head.tableIndex===i.tableIndex)&&!!l&&(l.anchor.row!==l.head.row||l.anchor.column!==l.head.column),u=t.story!==n.focus.story,p=!u&&t.paraId===n.focus.paraId&&t.offset===n.focus.offset;if(!m&&!u&&!p)return null;let x=Rn(e,i.story,i.tableIndex);if(!x)return null;let g=m&&l?l.anchor:{story:i.story,tableIndex:i.tableIndex,row:i.row,column:i.column},f=m&&l?l.head:g,h={...f,row:Math.max(0,Math.min(x.payload.rows.length-1,f.row+a.dRow)),column:Math.max(0,Math.min(x.columns-1,f.column+a.dCol))},v=x.anchors.find(P=>P.row<=g.row&&g.row<P.row+P.rowspan&&P.column<=g.column&&g.column<P.column+P.colspan)?.story,R=v&&n.anchor.story===v?n.anchor:v?Cr(e,v):null;return R?{selection:{anchor:R,focus:R},cells:{anchor:g,head:h},...s==="up"||s==="down"?{goalX:o}:{}}:null}function Dr(e,n){if(!n)return e;let t=n.clear?{...e,bold:false,italic:false,underline:false,strike:false,superscript:false,subscript:false,fontFamily:null,fontSize:null,color:null,highlight:null}:e,r=n.delta,s=r.other??{};return {...t,bold:r.bold===void 0?t.bold:r.bold===true,italic:r.italic===void 0?t.italic:r.italic===true,underline:r.underline===void 0?t.underline:r.underline!==false&&r.underline!==null,strike:r.strike===void 0?t.strike:r.strike!==false&&r.strike!==null,superscript:s.superscript===void 0?t.superscript:s.superscript===true,subscript:s.subscript===void 0?t.subscript:s.subscript===true,fontFamily:r.fontFamily===void 0?t.fontFamily:r.fontFamily?.ascii??r.fontFamily?.hAnsi??null,fontSize:r.fontSize===void 0?t.fontSize:r.fontSize==null?null:Math.round(r.fontSize*2),color:r.color===void 0?t.color:r.color?.rgb??r.color?.themeColor??null,highlight:r.highlight===void 0?t.highlight:r.highlight}}function Tc(e,n,t,r){let s=e.paragraphUnit(n,t);if(s<0)return null;let o=0,a=null;for(let i of e.paragraphSegments(n,[s])[0]??[]){let l=o+(i.kind==="text"?i.text.length:1),d=i.attributes.hyperlink;if(d&&typeof d.href=="string"&&d.href){let m={href:d.href,...typeof d.tooltip=="string"?{tooltip:d.tooltip}:{},...typeof d.rId=="string"?{rId:d.rId}:{}};if(r>o&&r<l)return m;!a&&(r===o||r===l)&&(a=m);}o=l;}return a}function Fc(e,n,t){let r=e.revisionIdsAt(t);if(!r.length)return;let s=new Set(n.proposals?.snapshot().proposals.flatMap(o=>o.revisionIds));return r.find(o=>!s.has(o))}function Hn(e){return !!e&&typeof e=="object"&&!Array.isArray(e)&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null)}function Ac(e){return Hn(e)&&(e.tblPr===void 0||Hn(e.tblPr))&&(e.grid===void 0||Array.isArray(e.grid))&&Array.isArray(e.rows)&&e.rows.every(n=>Hn(n)&&Array.isArray(n.cells)&&n.cells.every(t=>Hn(t)&&typeof t.story=="string"&&(t.tcPr===void 0||Hn(t.tcPr))))}function _c(e,n){let t=Ve(e,n);if(!t||![t.tableIndex,t.row,t.column].every(Number.isSafeInteger))return null;let r=$e(e),s=!!r&&r.anchor.story===t.story&&r.anchor.tableIndex===t.tableIndex&&r.head.story===t.story&&r.head.tableIndex===t.tableIndex,o=s&&r?r.head:t,a=e.tablePayload(t.story,t.tableIndex);if(!Ac(a))return null;let{anchors:i,columns:l}=j(a);if(!i.find(g=>g.row<=o.row&&o.row<g.row+g.rowspan&&g.column<=o.column&&o.column<g.column+g.colspan))return null;let m=i.find(g=>g.row<=t.row&&t.row<g.row+g.rowspan&&g.column<=t.column&&t.column<g.column+g.colspan);if(!m)return null;let u=a.rows.flatMap(g=>g.cells??[]).find(g=>g.story===m.story)?.tcPr,p=u?.borders,x;if(p&&typeof p=="object")for(let g of Object.values(p)){let f=g&&typeof g=="object"?g.color:void 0;if(typeof f=="string"){x={rgb:f.replace(/^#/,"")};break}if(f&&typeof f=="object"){x=f;break}}return {story:t.story,tableIndex:t.tableIndex,rowIndex:o.row,columnIndex:o.column,rowCount:a.rows.length,columnCount:l,hasMultiCellSelection:!!(s&&r&&(r.anchor.row!==r.head.row||r.anchor.column!==r.head.column)),canSplitCell:true,rowSpan:m.rowspan,columnSpan:m.colspan,...typeof a.tblPr?.justification=="string"?{justification:a.tblPr.justification}:{},...x?{cellBorderColor:x}:{},...typeof u?.backgroundColor=="string"?{cellBackgroundColor:u.backgroundColor.replace(/^#/,"")}:{}}}function Mr(e,n,t=n.selection?ze(e,n):null,r){let s={...n.activePart!==void 0?{activePart:n.activePart}:{},documentVersion:e.proposalEngine?.version(),readOnly:n.readOnly,toolbar:null,effectiveFormatting:null,storedMarks:null,canUndo:e.canUndo?.()??false,canRedo:e.canRedo?.()??false,hyperlink:null,tableContext:null,...n.proposals?{review:{version:e.proposalEngine.version(),previewVersion:n.proposals.snapshot().previewVersion}}:{}};if(!t?.ok)return s;let{range:o,selection:a}=t,l=o.start.paraId===o.end.paraId&&o.start.offset===o.end.offset&&n.storedMarks?.story===o.story&&n.storedMarks.paraId===o.start.paraId?n.storedMarks:null,d=Dr(r??e.selectionContext(o),l),m=d.paragraphProperties.defaultTextFormatting,u=typeof m?.fontSize=="number"?m.fontSize:m?.fontSize?.size,p=d.fontSize??(typeof u=="number"&&Number.isFinite(u)?u:null);s.toolbar=d,s.storedMarks=l?structuredClone(l):null,s.effectiveFormatting={bold:d.bold,italic:d.italic,underline:d.underline,strike:d.strike,superscript:d.superscript,subscript:d.subscript,fontFamily:d.fontFamily,fontSizePt:p==null?null:p/2,color:d.color,highlight:d.highlight,styleId:d.styleId,alignment:d.alignment},s.hyperlink=Tc(e,a.focus.story,a.focus.paraId,a.focus.offset),s.tableContext=_c(e,a.focus.story);let x=Fc(e,n,a.focus);return x!==void 0&&(s.currentRevisionId=x),s}var Or=new WeakMap;function Ai(e){for(let n of Or.get(e)?.queries.values()??[])n.dispose();Or.delete(e);}function Uo(e){let t=e.geometryReader.version(),r=Or.get(e);if(r?.version!==t){for(let s of r?.queries.values()??[])s.dispose();r={version:t,indexes:new Map,positions:new Map,roots:new Map,parts:r?.parts??new Map,paragraphs:new Map,queries:new Map},Or.set(e,r);}return r}function In(e,n,t){let r=e.indexes.get(t);if(!r){if(e.indexes.size>=4){let s=e.indexes.keys().next().value;e.indexes.delete(s),e.positions.delete(s);}r=new Ge({...n.geometryReader,selectionText:n.selectionText,resolveComment:n.resolveComment}),e.indexes.set(t,r);}return r}function Vo(e,n,t){let r=e.paragraphs.get(t);if(!r){let s=n.geometryReader.paragraphSpans(t);r={spans:s,indices:new Map(s.map(({paraId:o},a)=>[o,a]))},e.paragraphs.set(t,r);}return r}function Fi(e,n,t){let r=Vo(e,n,t.story).indices.get(t.paraId);if(r===void 0)throw new Error("Selection lacks paragraph");return (n.paragraphSegments(t.story,[r])[0]??[]).map(s=>s.kind==="text"?s.text:s.kind==="embed"?"\uFFFC":"").join("")}function Lc(e,n,t,r){let s=In(e,n,t),o=s.projection(t);if(!o)return null;let a=Math.max(0,Math.min(r,o.size)),i=o.blockBoundaryAt(a);if(i)return i;let l=e.positions.get(t);if(!l){l=[];for(let p=0;p<=o.size;){let x=o.nodeAt(p);if(x?.kind==="paragraph"){let g=String(x.attrs.paraId),f=Vo(e,n,x.story),h=f.indices.get(g);if(h===void 0)throw new Error("Projected selection lacks paragraph");let b=x.nodeSize-2,v=f.spans[h].length-b;l.push({from:p,to:p,at:{story:x.story,paraId:g,offset:Math.max(0,v-1)},length:0}),l.push({from:p+1,to:p+x.nodeSize-1,at:{story:x.story,paraId:g,offset:v},length:b}),e.roots.set(x.story,t),p+=x.nodeSize;}else {let g=o.targetAt(p),f=s.inputMap(g.story),h=f?e$2(f,g.displayPosition):null;h&&l.push({from:p,to:p,at:h,length:0}),p++;}}e.positions.set(t,l);}let d=0,m=l.length;for(;d<m;){let p=d+m>>>1;l[p].from<=a?d=p+1:m=p;}let u=l[d-1];return u&&a<=u.to?{...u.at,offset:u.at.offset+Math.min(u.length,a-u.from)}:null}function Nc(e,n,t){if(n==="body")return e;let r=n.startsWith("fn:")?"footnote":"endnote";return {...e,pages:(n.startsWith("hf:")?[e.pages.find(s=>!s.unbuilt&&s.pageIndex===t&&[s.header,s.footer].some(o=>o?.rId===n.slice(3)))??e.pages.find(s=>!s.unbuilt&&[s.header,s.footer].some(o=>o?.rId===n.slice(3)))].filter(s=>s!==void 0):e.pages).map(s=>({...s,primitives:n.startsWith("hf:")?[s.header,s.footer].find(o=>o?.rId===n.slice(3))?.primitives??[]:(s.noteAreas??[]).filter(o=>(o.kind??"footnote")===r).flatMap(o=>o.primitives??[]).filter(o=>o.groupId===`${r}-${n.slice(3)}`),header:void 0,footer:void 0,noteAreas:void 0,positionSpan:void 0}))}}function Jo(e,n,t="body"){if(e.frame!==n||e.frameEpoch!==n.frameEpoch){for(let s of e.queries.values())s.dispose();e.queries.clear(),e.frame=n,e.frameEpoch=n.frameEpoch;}let r=e.queries.get(t);if(!r){if(e.queries.size>=4){let s=e.queries.keys().next().value;e.queries.get(s).dispose(),e.queries.delete(s);}r=J(Nc(n.displayList,t,e.parts.get(t)),y()??void 0),e.queries.set(t,r);}return r}function _i(e,n,t){let r=e.roots.get(t.story);if(r)return r;let s=/^(body|(?:hf|fn|en):[^:]+)$/u.test(t.story)?[t.story]:["body",...n.geometryReader.storyIds().filter(o=>/^(hf|fn|en):/u.test(o))];for(let o of s)if(In(e,n,o).projection(o)?.positionForLoc(t)!=null)return e.roots.size>=32&&e.roots.clear(),e.roots.set(t.story,o),o;return t.story}function Li(e,n,t){e.parts.get(n)!==t&&(e.parts.set(n,t),e.queries.get(n)?.dispose(),e.queries.delete(n));}function Ni(e,n,t){n.startsWith("hf:")&&Li(Uo(e),n,t);}function ji(e,n,t){let r=Uo(e),s=_i(r,e,n.focus),o=In(r,e,s).positionOf(n.focus,s);if(o===null)return null;let a=Jo(r,t.frame,s),i=Wi(a,o);return i&&{...i,pageIndex:a.displayList.pages[i.pageIndex]?.pageIndex??i.pageIndex}}function Wi(e,n){let t=e.caretRect(n);if(t&&t.height>0)return t;let r=e.rangeRects(n,n+1)[0];if(r&&r.height>0)return {...r,width:0};let s=n>0?e.rangeRects(n-1,n).at(-1):void 0;return s&&s.height>0?{...s,x:s.x+s.width,width:0}:null}function jc(e,n){let t=e.caretRect(n);if(!t)return null;let r=t.y+t.height/2,s=a=>Math.abs(a.y+a.height/2-r),o=null;for(let a of e.visualLinesOnPage(t.pageIndex))n<a.from||n>a.to||(!o||s(a)<s(o))&&(o=a);return o}function Wc(e,n,t,r,s,o,a){let i=Wi(e,n);if(!i)return null;let l=0,d=e.displayList.pages.map((I,F)=>{let _={page:I,index:F,top:l};return l+=I.height+16,_}),m=d[i.pageIndex];if(!m)return null;let u=m.top+i.y+i.height/2,p=u+(t==="down"?s:-s),x=new Map,g=I=>{let F=x.get(I);if(!F){let _=d[I].page;F=[...e.visualLinesOnPage(I).map(L=>({...L,pageIndex:I})),..._.primitives.flatMap(L=>L.kind==="image"&&L.docStart!==void 0&&L.docEnd!==void 0?[{pageIndex:I,x:L.x,y:L.y,width:L.w,height:L.h,baseline:L.y+L.h,from:L.docStart,to:L.docEnd}]:[])].sort((L,B)=>L.y-B.y||L.x-B.x),x.set(I,F);}return F},f=d.find(({page:I,index:F})=>!I.unbuilt&&g(F).length),h=[...d].reverse().find(({page:I,index:F})=>!I.unbuilt&&g(F).length);if(!f||!h)return null;let b=g(f.index)[0],v=g(h.index).at(-1);if(p<f.top+b.y&&!d.some(({page:I,index:F})=>F<b.pageIndex&&I.unbuilt))return 0;if(p>h.top+v.y+v.height&&!d.some(({page:I,index:F})=>F>v.pageIndex&&I.unbuilt))return a;let R=I=>Math.max(I.top-p,0,p-I.top-I.page.height),w,P=1/0;for(let I of [...d].sort((F,_)=>R(F)-R(_))){if(R(I)>P)break;if(!I.page.unbuilt)for(let F of g(I.index)){let _=I.top+F.y+F.height/2;if(F.pageIndex===i.pageIndex&&F.from<=n&&n<=F.to&&Math.abs(_-u)<Math.max(F.height,i.height)||(t==="down"?_<=u:_>=u))continue;let L=Math.abs(_-p);L<P&&(w=F,P=L);}}if(!w)return t==="down"?a:0;let T=d[w.pageIndex].page,O=r-(o-T.width)/2;return e.hitTestRegions(w.pageIndex,O,w.y+w.height/2)?.pos??(O>w.x+w.width/2?w.to:w.from)}function Tr(e){let{engine:n,state:t,command:r,context:s}=e,o=n.geometryReader,a=r.kind==="navigate"?tn(n,t,r,s):ze(n,t,s.predecessorSelection??t.selection),i=()=>{let R=o.hasStory("body")?"body":o.storyIds().find(P=>o.paragraphSpans(P).length),w=R?o.paragraphSpans(R)[0]:void 0;if(!R||!w)throw new Error("Document has no valid caret");return {story:R,paraId:w.paraId,offset:0}},l=a.ok?a.selection:{anchor:i(),focus:i()},d=()=>{let R=a.ok?a.range:Ie(n,l);if(!R)throw new Error("Document has no valid selection");return {status:"clamped",selection:l,range:R}},m=Uo(n),u=(R,w)=>Lc(m,n,R,w),p=!a.ok,x,g=l.anchor,f=l.focus,h;if(r.kind==="navigate"){let R=r.payload,w=R.direction==="backward"||R.direction==="up",P=Vo(m,n,f.story),{spans:T,indices:O}=P,I=O.get(f.paraId)??-1;if(I<0)throw new Error("Navigation selection lacks paragraph");let F=Ie(n,l),_=F.start.paraId===F.end.paraId&&F.start.offset===F.end.offset;if(!R.extend&&!_&&(R.unit==="character"||R.unit==="word"))f={story:F.story,...w?F.start:F.end};else if(R.unit==="document-boundary"){let L=w?T[0]:T.at(-1);f={story:f.story,paraId:L.paraId,offset:w?0:L.length};}else if((R.unit==="line"||R.unit==="page")&&e.readLayout){let L=e.readLayout(),B=R.unit==="page"?Er(n,f)??f:f,U=_i(m,n,B),J=Jo(m,L.frame,U),z=In(m,n,U).positionOf(B,U);if(z!==null&&J.isReady())if(R.direction==="up"||R.direction==="down"){let ee=R.unit==="page"?{position:Wc(J,z,R.direction,R.goalX,R.distance,L.frame.pages.reduce((oe,{page:A})=>Math.max(oe,A.width),0),In(m,n,U).projection(U).size)??z,goalX:R.goalX}:J.verticalMove(z,R.direction,R.goalX);ee&&(f=u(U,ee.position)??f,x=ee.goalX);}else {let ee=jc(J,z);ee&&(f=u(U,w?ee.from:ee.to)??f);}}else if(R.unit==="page")x=R.goalX;else if(R.unit==="line"||R.unit==="paragraph")R.direction==="up"||R.direction==="down"?(I=Math.max(0,Math.min(T.length-1,I+(w?-1:1))),f={story:f.story,paraId:T[I].paraId,offset:Math.min(f.offset,T[I].length)},x=R.goalX):f={story:f.story,paraId:f.paraId,offset:w?0:T[I].length};else {let L=Fi(m,n,f),B=f.offset;if(w&&B===0&&I>0)I--,B=T[I].length;else if(!w&&B===T[I].length&&I+1<T.length)I++,B=0;else if(R.unit==="word")if(w){for(;B>0&&/\s/u.test(L[B-1]);)B--;for(;B>0&&!/\s/u.test(L[B-1]);)B--;}else {for(;B<L.length&&!/\s/u.test(L[B]);)B++;for(;B<L.length&&/\s/u.test(L[B]);)B++;}else w&&B>0?(B--,B>0&&/[\uDC00-\uDFFF]/u.test(L[B])&&/[\uD800-\uDBFF]/u.test(L[B-1])&&B--):!w&&B<L.length&&(B+=L.codePointAt(B)>65535?2:1);f={story:f.story,paraId:T[I].paraId,offset:B};}if(R.extend){let L=Ti(n,l,f,R.unit,R.direction,"goalX"in R?R.goalX:void 0);L?(g=L.selection.anchor,f=L.selection.focus,h=L.cells,L.goalX!==void 0&&(x=L.goalX)):g.story!==f.story&&(f=l.focus,p=true);}R.extend||(g=f);}else {let R=r.payload,w=e.readLayout?.(),P=w?.frame.pages??[],T=w&&/^\d+$/u.test(R.page.pageId)?p$2(w.frame,BigInt(R.page.pageId)):void 0,O=T??P[Math.max(0,Math.min(P.length-1,Math.trunc(R.page.pageIndex)))];if(p=!T||R.story!==void 0&&!o.hasStory(R.story),!O||!w||O.page.unbuilt)return d();let I=Jo(m,w.frame);if(!I.isReady())return d();let F=Math.max(0,Math.min(R.x,O.page.width)),_=!T&&R.page.pageIndex>=P.length?O.page.height:Math.max(0,Math.min(R.y,O.page.height)),L=I.hitTestRegions(O.pageIndex,F,_),B=L?.region==="header"||L?.region==="footer"?L.rId?`hf:${L.rId}`:null:L?.region==="footnote"||L?.region==="endnote"?L.noteId===void 0?null:`${L.region==="footnote"?"fn":"en"}:${L.noteId}`:"body",U=B?In(m,n,B).projection(B):null,J=B&&U&&L?.pos!=null&&Number.isFinite(L.pos)&&L.pos>=0&&L.pos<=U.size?u(B,L.pos):null;if(J)f=J,B?.startsWith("hf:")&&Li(m,B,O.pageIndex);else {p=true;let z=I.visualLinesOnPage(O.pageIndex);if(T&&z.length===0)return d();let ee=z.reduce((Q,C)=>{let W=$=>Math.max($.y-_,0,_-$.y-$.height);return !Q||W(C)<W(Q)?C:Q},void 0),oe=o.hasStory("body")?o.paragraphSpans("body"):[],A=R.page.pageIndex>=P.length?oe.at(-1):oe[0];f=ee?u("body",F>ee.x+ee.width/2?ee.to:ee.from)??i():A?{story:"body",paraId:A.paraId,offset:R.page.pageIndex>=P.length?A.length:0}:i();}if(r.kind==="extendSelection"||R.modifiers.shift){if(g.story!==f.story){let z=Bo(n,l.anchor,f);z?(g=z.textAnchor,f=z.textAnchor,h=z.cells):(f=l.focus,p=true);}}else if(g=f,R.clickCount>=2){let z=Fi(m,n,f),[ee,oe]=R.clickCount>=3?[0,z.length]:a$4(z,f.offset);g={story:f.story,paraId:f.paraId,offset:ee},f={story:f.story,paraId:f.paraId,offset:oe};}}let b={anchor:g,focus:f},v=Ie(n,b);if(v||(f=i(),b={anchor:f,focus:f},v=Ie(n,b),p=true),!v)throw new Error("Document has no valid selection");return {status:p?"clamped":"resolved",selection:b,range:v,...x===void 0?{}:{goalX:x},...h===void 0?{}:{cells:h}}}function Yi(e,n){let t=e.geometryReader.paragraphSpans(n)[0];if(!t)return null;let r={story:n,paraId:t.paraId,offset:0};return {anchor:r,focus:r}}function Bi(e,n,t,r){let s=n.focus.story,a=Array.from(s.matchAll(/:t(\d+):r(\d+)c(\d+)(?:~\d+)?(?=:|$)/g)).at(-1);if(!a||a.index===void 0)return {selection:n,cells:null};let i={story:s.slice(0,a.index),tableIndex:Number(a[1])};if(!Number.isSafeInteger(i.tableIndex))return null;let l=e.tablePayload(i.story,i.tableIndex);if(!l||!Array.isArray(l.rows))return null;let{anchors:d}=j(l),m=d.findIndex(w=>w.story===s);if(m<0)return null;let u=d[m],p={...i,row:u.row,column:u.column},x=e.cellSelection(),g=x?.anchor.story===i.story&&x.head.story===i.story&&x.anchor.tableIndex===i.tableIndex&&x.head.tableIndex===i.tableIndex&&x.head.row===u.row&&x.head.column===u.column,f=t.extend&&g?x.anchor:p,h=m+(t.direction==="forward"?1:-1),b=d[h];if(!b)return h>=d.length&&t.createLastRow?r?"read-only":{selection:n,cells:{anchor:f,head:p},insertRow:{...p,row:l.rows.length-1}}:{selection:n,cells:{anchor:f,head:p}};let v=Yi(e,b.story),R={...i,row:b.row,column:b.column};return v?{selection:v,cells:{anchor:t.extend?f:R,head:R}}:null}function Ji(e,n,t){if(!n.cells)return n.selection;if(n.insertRow){let r=n.insertRow.row+1;e.insertRow(n.insertRow,"below",t.suggesting);let s=e.tablePayload(n.insertRow.story,n.insertRow.tableIndex),o=j(s).anchors.find(i=>i.row===r),a=o?Yi(e,o.story):null;if(!o||!a)throw new Error("Inserted row lacks a caret target");n.selection=a,n.cells.head={...n.insertRow,row:r,column:o.column},t.extend||(n.cells.anchor=n.cells.head);}return e.setCellSelection(n.cells),n.selection}var Yc={insertTableRow:true,insertTableColumn:true,deleteTableRow:true,deleteTableColumn:true,deleteTable:true,mergeTableCells:true,splitTableCell:true,setTableCellShading:true,setTableBorders:true,setTableProperties:true};function Ho(e){return Object.hasOwn(Yc,e)}function Bc(e,n){let t=Ve(e,n.focus.story);if(!t)return null;let r={story:t.story,tableIndex:t.tableIndex},s=$e(e),o=s&&[s.anchor,s.head].every(a=>a.story===t.story&&a.tableIndex===t.tableIndex)&&Math.min(s.anchor.row,s.head.row)<=t.row&&t.row<=Math.max(s.anchor.row,s.head.row)&&Math.min(s.anchor.column,s.head.column)<=t.column&&t.column<=Math.max(s.anchor.column,s.head.column)?s:{anchor:t,head:t};return {focused:t,range:o,table:r}}function Go(e,n){let t=e.geometryReader.storySegments(n.story),r=0,s=-1;for(let l=0;l<t.length;l+=1){let d=t[l];if(!(d.kind!=="embed"||d.embedKind!=="table")){if(r===n.tableIndex){s=l;break}r+=1;}}if(s<0)return null;let o=t.slice(s+1).find(l=>l.kind==="pilcrow"),a=t.slice(0,s).reverse().find(l=>l.kind==="pilcrow"),i=o??a;return i?.kind==="pilcrow"?{story:n.story,paraId:i.paraId,offset:0}:null}function Vi(e,n){let t=[];for(let r=Ve(e,n);r;r=Ve(e,r.story))t.push({story:r.story,tableIndex:r.tableIndex});return t}function Hi(e,n,t){let r=Bc(e,t);if(!r)return {reason:"invalid-cell-target"};if(ht(r.table.story)!=="body")return {reason:"invalid-selection"};if(n.payload.suggesting!==void 0&&n.kind!=="insertTableRow"&&n.kind!=="deleteTableRow")return {reason:"unsupported-suggesting"};if(n.kind==="mergeTableCells"&&Jc(e,r.focused,r.range)<2)return {reason:"invalid-selection"};if(n.kind==="splitTableCell"){let o=zi(e,r.focused);if(!o)return {reason:"invalid-cell-target"};if(n.payload.rows<o.rowspan||n.payload.columns<o.colspan||n.payload.rows===1&&n.payload.columns===1)return {reason:"invalid-table-size"}}if(n.kind==="setTableProperties"&&n.payload.expectVersion!==void 0&&n.payload.expectVersion!==e.proposalEngine.version())return {reason:"stale-version"};let s=n.kind==="deleteTable"||n.kind==="deleteTableRow"||n.kind==="deleteTableColumn";return {target:{...r,near:s?Go(e,r.table):null}}}function zo(e,n){let t=e.tablePayload(n.story,n.tableIndex);return t&&Array.isArray(t.rows)?j(t).anchors:null}function Gi(e,n){return e.find(t=>t.row<=n.row&&n.row<t.row+t.rowspan&&t.column<=n.column&&n.column<t.column+t.colspan)??null}function Jc(e,n,t){let r=zo(e,n);if(!r)return 0;let s=Math.min(t.anchor.row,t.head.row),o=Math.max(t.anchor.row,t.head.row)+1,a=Math.min(t.anchor.column,t.head.column),i=Math.max(t.anchor.column,t.head.column)+1;for(;;){let l=s,d=o,m=a,u=i;for(let p of r)p.row<o&&p.row+p.rowspan>s&&p.column<i&&p.column+p.colspan>a&&(s=Math.min(s,p.row),o=Math.max(o,p.row+p.rowspan),a=Math.min(a,p.column),i=Math.max(i,p.column+p.colspan));if(l===s&&d===o&&m===a&&u===i)break}return r.filter(l=>l.row>=s&&l.row+l.rowspan<=o&&l.column>=a&&l.column+l.colspan<=i).length}function zi(e,n){let t=zo(e,n);return t?Gi(t,n):null}function Ui(e,n){let t=zo(e,n);if(!t)return null;let r=Gi(t,n);if(r)return r.story;let s=t.filter(a=>a.column<=n.column&&n.column<a.column+a.colspan).sort((a,i)=>Math.abs(a.row-n.row)-Math.abs(i.row-n.row)),o=t.slice().sort((a,i)=>Math.abs(a.row-n.row)-Math.abs(i.row-n.row)||Math.abs(a.column-n.column)-Math.abs(i.column-n.column));return (s[0]??o[0])?.story??null}function $o(e,n){let t=Ve(e,n);t?e.setCellSelection({anchor:t,head:t}):e.clearCellSelection();}function Gn(e,n,t){if(!n||!e.geometryReader.hasStory(n))return null;if(t.story===n){let o=e.geometryReader.paragraphSpans(n).find(a=>a.paraId===t.paraId)?.length;if(o!==void 0)return {story:n,paraId:t.paraId,offset:Math.min(t.offset,o)}}let r=e.geometryReader.paragraphSpans(n)[0];return r?{story:n,paraId:r.paraId,offset:0}:null}function $i(e,n,t,r,s,o){let a=e.proposalEngine.version(),i=l=>{if(!l){o.repair();return}o.caret(l),$o(e,l.story);};switch(t.kind){case "insertTableRow":e.setCellSelection({anchor:r.focused,head:r.focused}),e.insertRow(r.focused,t.payload.side,t.payload.suggesting),i(Gn(e,s.story,s));break;case "insertTableColumn":e.setCellSelection({anchor:r.focused,head:r.focused}),e.insertColumn(r.focused,t.payload.side),i(Gn(e,s.story,s));break;case "deleteTableRow":case "deleteTableColumn":{if((t.kind==="deleteTableRow"?e.deleteRow(r.range,t.payload.suggesting):e.deleteColumn(r.range)).deletedTable){i(r.near);break}let d=$e(e)?.anchor??r.focused;i(Gn(e,Ui(e,d),s));break}case "deleteTable":e.deleteTable(r.table),i(r.near);break;case "mergeTableCells":{e.mergeCells(r.range);let l=$e(e)?.anchor??r.range.anchor;i(Gn(e,Ui(e,l),s));break}case "splitTableCell":{let l=zi(e,r.focused)?.story??r.focused.story;e.splitCell(r.focused,t.payload.rows,t.payload.columns),i(Gn(e,l,s));break}case "setTableCellShading":e.setCellShading(r.range,t.payload.color);break;case "setTableBorders":e.setCellBorders(r.range,t.payload.borders);break;case "setTableProperties":e.setTableProperties(r.table,t.payload.patch);break}e.proposalEngine.version()!==a&&(n.storedMarks=null);}function nn(e){let n=e.package;return {body:{sections:n.document.sections?.map(t=>({...t,content:[]})),finalSectionProperties:n.document.finalSectionProperties},headers:n.headers?[...n.headers].map(([t,r])=>[t,{...r,content:[]}]):void 0,footers:n.footers?[...n.footers].map(([t,r])=>[t,{...r,content:[]}]):void 0,footnotes:n.footnotes?.map(t=>({...t,content:[]})),endnotes:n.endnotes?.map(t=>({...t,content:[]})),relationships:n.relationships?[...n.relationships]:void 0}}function Ko(e,n){let t=n;return {...e,package:{...e.package,document:{...e.package.document,...t.body},headers:t.headers?new Map(t.headers):void 0,footers:t.footers?new Map(t.footers):void 0,footnotes:t.footnotes,endnotes:t.endnotes,relationships:t.relationships?new Map(t.relationships):void 0}}}function Ki(e){if(!e||typeof e!="object"||Array.isArray(e))return false;let n=e;return Object.keys(n).every(t=>["kind","section","page","variant","noteId","expectVersion"].includes(t))&&["header","footer","footnote","endnote"].includes(String(n.kind))&&typeof n.section=="string"&&Number.isSafeInteger(n.page)&&Number(n.page)>=0&&typeof n.expectVersion=="string"&&(n.variant===void 0||["default","first","even"].includes(String(n.variant)))&&(n.noteId===void 0||Number.isSafeInteger(n.noteId)&&Number(n.noteId)>0)}function Qi(e,n){return n==="final"?e$4(e.package.document)??{}:e.package.document.sections?.find(t=>t.id===n||t.properties.sectionId===n)?.properties??null}function Xi(e,n,t){let r=JSON.parse(e.retainedLayoutJson()).layout.pages,s=r[n.page];if(!s)return null;let o=s.sectionPageIndex??r.slice(0,n.page).filter(i=>i.sectionIndex===s.sectionIndex).length,a=s.sectionPageNumber??s.number;return n.variant??(t.titlePg&&o===0?"first":(t.evenAndOddHeaders||e.partDocument().package.settings?.evenAndOddHeaders)&&a%2===0?"even":"default")}function zn(e,n){let t=e.partDocument(),r=Qi(t,n.section);if(!r)return null;if(n.kind==="footnote"||n.kind==="endnote"){let l=`${n.kind==="footnote"?"fn":"en"}:${n.noteId}`;return n.noteId!==void 0&&e.geometryReader.hasStory(l)?{...n,story:l}:null}let s=Xi(e,n,r);if(!s)return null;let a=(n.kind==="header"?r.headerReferences:r.footerReferences)?.find(l=>l.type===s);if(!a)return null;let i=e.partStory(a.rId);return e.geometryReader.hasStory(i)?{...n,variant:s,story:i}:null}function Qo(e,n){let t=e.partDocument(),r=Qi(t,n.section);if(!r)return null;if(n.kind==="footnote"||n.kind==="endnote"){if(n.noteId===void 0)return null;let p=n.kind==="footnote"?"footnotes":"endnotes",x=t.package[p]??[],g=new Map(t.package.relationships),f=`http://schemas.openxmlformats.org/officeDocument/2006/relationships/${p}`;if(![...g.values()].some(h=>h.type===f)){let h=`rIdPart${crypto.randomUUID().replaceAll("-","")}`;g.set(h,{id:h,type:f,target:`${p}.xml`});}return {...t,package:{...t.package,relationships:g,[p]:[...x.filter(h=>h.id!==n.noteId),{type:n.kind,id:n.noteId,noteType:"normal",content:[]}]}}}let s=Xi(e,n,r);if(!s)return null;let o=`rIdPart${crypto.randomUUID().replaceAll("-","")}`,a=n.kind==="header"?"headers":"footers",i=n.kind==="header"?"headerReferences":"footerReferences",l=new Map(t.package[a]);l.set(o,{type:n.kind,hdrFtrType:s,content:[]});let d=[...r[i]??[],{type:s,rId:o}],m=n.section==="final"?f$3(t.package.document,p=>({...p,[i]:d})):{...t.package.document,sections:t.package.document.sections?.map(p=>p.id===n.section||p.properties.sectionId===n.section?{...p,properties:{...p.properties,[i]:d}}:p)},u=new Map(t.package.relationships);return u.set(o,{id:o,type:`http://schemas.openxmlformats.org/officeDocument/2006/relationships/${n.kind}`,target:`${n.kind}-${o}.xml`}),{...t,package:{...t.package,[a]:l,relationships:u,document:m}}}function Zi(e,n){let t=zn(e,n);if(!t)return null;let r=e.partDocument();if(n.kind==="footnote"||n.kind==="endnote"){let m=n.kind==="footnote"?"footnotes":"endnotes";return {...r,package:{...r.package,[m]:r.package[m]?.filter(u=>u.id!==n.noteId)}}}let s=n.kind==="header"?"headerReferences":"footerReferences",o=m=>({...m,[s]:m[s]?.filter(u=>e.partStory(u.rId)!==t.story)}),a={...r.package.document,sections:r.package.document.sections?.map(m=>({...m,properties:o(m.properties)})),finalSectionProperties:o(r.package.document.finalSectionProperties??{})},i=n.kind==="header"?"headers":"footers",l=new Map(r.package[i]),d=new Map(r.package.relationships);for(let m of l.keys())e.partStory(m)===t.story&&(l.delete(m),d.delete(m));return {...r,package:{...r.package,[i]:l,relationships:d,document:a}}}function qi(e,n){let t=[];for(let r of n.pages)if(!r.page.unbuilt){for(let s of [r.page.header,r.page.footer])s&&t.push({kind:s.kind,story:e.partStory(s.rId),pageIndex:r.pageIndex,pageId:r.pageId.toString(),x:0,y:s.y,width:r.page.width,height:s.height});for(let s of r.page.noteAreas??[])for(let o of s.noteIds??s.notes?.flatMap(a=>a.id===void 0?[]:[a.id])??[])t.push({kind:s.kind??"footnote",story:`${s.kind==="endnote"?"en":"fn"}:${o}`,pageIndex:r.pageIndex,pageId:r.pageId.toString(),x:0,y:s.y??0,width:r.page.width,height:s.height??0});}return t}var Uc=256,Vc=1e6,Xo=new WeakMap,el=new WeakMap,tl=new WeakMap;function Fr(e){return JSON.stringify([e.story,Array.from(e.encoded)])}function Hc(e){let n=el.get(e);return n||(n=new Ge({...e.geometryReader,selectionText:e.selectionText,storySegments:t=>e.geometryReader.storySegments(t).map(r=>r.kind==="embed"&&r.embedKind==="sdt"?{kind:"text",text:" ".repeat(Zo(r.payload).size),attributes:r.attributes}:r)}),el.set(e,n)),n}function Gc(e){let n=new Map,t=[],r=0,s=0,o=0;for(let a of e){if(a.kind==="pilcrow"){for(let i of t)i.paraId=a.paraId;t=[],r+=1,s=r,o=0;continue}if(a.kind==="embed"){let i=a.embedKind==="sdt"?Zo(a.payload):null,l={kind:a.embedKind,payload:a.payload,paraId:"",offset:r-s+o,valid:i?.valid??true};n.set(r,l),t.push(l),o+=i?i.size-1:0;}r+=a.kind==="text"?a.text.length:1;}return n}function zc(e){let n=new Map(e.allTables().map(s=>[s.start,s])),t=new Map,r=(s,o)=>{for(let a=s;a<o;){let i=e.nodeAt(a);if(!i){a+=1;continue}if(i.kind==="blockSdt"){let l=JSON.stringify([i.story,i.attrs.story]);t.has(l)||t.set(l,a),r(a+1,a+i.nodeSize-1);}for(let l of i.kind==="table"?n.get(a)?.cells??[]:[])r(l.contentStart,l.contentStart+l.nodeSize-2);a+=Math.max(1,i.nodeSize);}};return r(0,e.size),t}function $c(e,n){let t=new Map,r=o=>{let a=t.get(o);return a===void 0&&(a=e.partStory(o),t.set(o,a)),a},s=new Map;for(let o of n.pages){if(o.page.unbuilt)continue;let a=[["body",o.page.primitives]];for(let l of [o.page.header,o.page.footer])l&&a.push([r(l.rId),l.primitives]);for(let l of o.page.noteAreas??[])for(let d of l.primitives??[]){let m=/^(footnote|endnote)-(.+)$/.exec(d.groupId??"");m&&a.push([`${m[1]==="footnote"?"fn":"en"}:${m[2]}`,[d]]);}let i=new Map;for(let[l,d]of a)for(let m of d){let u=new Set([m.inlineSdtWidget?.groupId,m.sdt?.groupId,...(m.sdtPath??[]).map(x=>x.groupId)].filter(x=>x?.startsWith("sdt@")===true));if(!u.size)continue;let p=e$5(m);if(!(!Number.isFinite(p.x+p.y+p.w+p.h)||p.w<=0||p.h<=0))for(let x of u){let g=i.get(l);g||(g=new Map,i.set(l,g));let f=g.get(x);g.set(x,f?{left:Math.min(f.left,p.x),top:Math.min(f.top,p.y),right:Math.max(f.right,p.x+p.w),bottom:Math.max(f.bottom,p.y+p.h)}:{left:p.x,top:p.y,right:p.x+p.w,bottom:p.y+p.h});}}for(let[l,d]of i){let m=s.get(l);m||(m=new Map,s.set(l,m));for(let[u,p]of d){let x=m.get(u)??[];x.push({pageId:o.pageId.toString(),pageIndex:o.pageIndex,x:p.left,y:p.top,width:p.right-p.left,height:p.bottom-p.top}),m.set(u,x);}}}return s}function Kc(e,n,t,r,s){let[o,a]=t.split(":"),i=t==="body"?n.rangeRects(r,s):o==="hf"?[...n.hfRangeRects("header",a,r,s),...n.hfRangeRects("footer",a,r,s)]:o==="fn"||o==="en"?n.noteRangeRects(o==="fn"?"footnote":"endnote",Number(a),r,s):[],l=new Map;for(let d of i){let m=e.pages.find(h=>h.pageIndex===d.pageIndex);if(!m||!(d.width>0&&d.height>0))continue;let u=l.get(d.pageIndex),p=Math.min(u?.x??d.x,d.x),x=Math.min(u?.y??d.y,d.y),g=Math.max(u?u.x+u.width:d.x+d.width,d.x+d.width),f=Math.max(u?u.y+u.height:d.y+d.height,d.y+d.height);l.set(d.pageIndex,{pageId:m.pageId.toString(),pageIndex:d.pageIndex,x:p,y:x,width:g-p,height:f-x});}return [...l.values()]}function rl(e,n,t=0,r){let s=Xo.get(e);s||(s=new Map,Xo.set(e,s));let o=Hc(e),a=e.geometryReader.version(),i=tl.get(e);i?.version!==a&&(i={version:a,embeds:new Map,blocks:new Map},tl.set(e,i));let{embeds:l,blocks:d}=i,m,u=e.controlTargets().map(({at:p,control:x})=>{let g=p,f=[...s].find(([,F])=>Fr(F.position)===Fr(g)),h=f?.[0]??crypto.randomUUID();f||s.set(h,{position:g});let b=l.get(p.story);b||(b=Gc(e.geometryReader.storySegments(p.story)),l.set(p.story,b));let v=b.get(p.index),R=p.story.startsWith("body")?"body":p.story.split(":").slice(0,2).join(":"),w=null;if(v?.kind==="blockSdt"){let F=d.get(R);if(!F){let _=o.projection(R);F=_?zc(_):new Map,d.set(R,F);}w=F.get(JSON.stringify([p.story,v.payload.story]))??null;}else v?.kind==="sdt"&&v.valid&&v.paraId&&(w=o.positionOf({story:p.story,paraId:v.paraId,offset:v.offset},R));let P={story:p.story,index:p.index,rootStory:R,position:w},T=v?.valid?Qc(x,v.payload):null,I=(n&&w!==null&&T?(m??(m=$c(e,n))).get(R)?.get(`sdt@${w}`):void 0)??(n&&r&&w!==null&&T&&v?.kind==="sdt"?Kc(n,r(),R,w+1,w+Zo(v.payload).size-1):void 0);return {handle:h,control:x,location:P,widget:T,rects:I?[...I]:[]}});return {version:e.proposalEngine.version(),frameEpoch:n?.frameEpoch??null,layoutRevision:t,controls:u}}function Zo(e){let n=0,t=0,r=[{content:e.content,depth:0}];for(let s=r.pop();s;s=r.pop()){t=Math.max(t,s.depth),n+=2;for(let o of Array.isArray(s.content)?s.content:[])!o||typeof o!="object"||(o.kind==="text"?n+=typeof o.text=="string"?o.text.length:0:o.kind!=="sdt"?n+=1:o.payload&&typeof o.payload=="object"?r.push({content:o.payload.content,depth:s.depth+1}):n+=2);}return {size:n,valid:t<=Uc&&n<=Vc}}function nl(e){if(typeof e!="string")return {value:e};try{return {value:JSON.parse(e)}}catch{return null}}function Qc(e,n){let t=typeof n.propertiesJson=="string"?nl(n.propertiesJson):{value:{}};if(!t)return null;let r={...t.value&&typeof t.value=="object"?t.value:{},...n},s=r.value&&typeof r.value=="object"?r.value:{},o=r.controlState&&typeof r.controlState=="object"?r.controlState:{},a=r.dateState&&typeof r.dateState=="object"?r.dateState:{},i=e.value.kind==="text"?e.value.text:"";if(e.controlType==="checkbox")return {kind:"checkbox",checked:s.checked===void 0?r.checked===true:s.checked===true};if(e.controlType==="date")return {kind:"date",value:String(s.date??a.fullDate??o.value??i).slice(0,10)};if(e.controlType==="repeatingSectionItem")return {kind:"repeatingItem"};if(e.controlType!=="dropDownList"&&e.controlType!=="comboBox")return null;let l=nl(r.listItems);if(!l)return null;let d=(Array.isArray(l.value)?l.value:[]).flatMap(m=>!m||typeof m!="object"||typeof m.value!="string"?[]:[{value:m.value,displayText:typeof m.displayText=="string"?m.displayText:m.value}]);return {kind:"dropdown",items:d,value:typeof s.value=="string"?s.value:typeof o.value=="string"?o.value:typeof r.listLastValue=="string"?r.listLastValue:d.find(m=>m.displayText===i)?.value??i}}function qo(e,n){let t=Xo.get(e)?.get(n);return t?e.controlTargets().find(r=>Fr(r.at)===Fr(t.position))??null:null}function ol(e){if(typeof e=="string")return !/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u.test(e);if(!e||typeof e!="object"||Array.isArray(e))return false;let n=e;return n.kind==="checkbox"?Object.keys(n).every(t=>["kind","checked"].includes(t))&&typeof n.checked=="boolean":n.kind==="dropdown"?Object.keys(n).every(t=>["kind","value"].includes(t))&&typeof n.value=="string":n.kind==="date"?Object.keys(n).every(t=>["kind","date"].includes(t))&&typeof n.date=="string":false}function Xc(e){let n=e.wrapType??e.wrap;return e.displayMode==="float"||typeof n=="string"&&n!=="inline"||e.position!=null}function ns(e){let n=e.wrapType??e.wrap;return e.displayMode==="float"||["square","tight","through","behind","inFront"].includes(n)}function Zc(e,n){if(!e)return false;let{anchor:t,focus:r}=e;return t.story===n.story&&r.story===n.story&&t.paraId===n.paraId&&r.paraId===n.paraId&&Math.min(t.offset,r.offset)===n.offset&&Math.max(t.offset,r.offset)===n.offset+1}function qc(e){let n=typeof e.transform=="string"?Number(e.transform.match(/rotate\(([-\d.]+)deg\)/)?.[1]??0):0,t={...e.noChangeAspect===true?{noChangeAspect:true}:{},...n?{rotation:n}:{}};if(!Xc(e))return {floating:false,...t};let r=e.position;return {floating:true,behindText:(e.wrapType??e.wrap)==="behind"||r?.behindDoc===true,...t}}var ts=new WeakMap;function sl(e){ts.set(e,{targets:new Map,identities:new Map});}function al(e){let n=ts.get(e);return n||(n={targets:new Map,identities:new Map},ts.set(e,n)),n}function $n(e){return JSON.stringify([e.story,Array.from(e.encoded)])}function es(e,n,t,r=t){let s=e.encodeStickyPosition(r),o=al(e),a=JSON.stringify([n,t.story,$n(s),n==="text"?t.paraId:null]),i=o.identities.get(a);if(i)return i;let l=crypto.randomUUID();return o.targets.set(l,{kind:n,position:s,paraId:t.paraId,story:t.story}),o.identities.set(a,l),l}function ed(e,n){let t=ht(n),r=u(e.geometryReader,t);if(!r)return null;for(let s of r.allTables()){let o=s.cells.find(i=>i.story===n);if(!o)continue;let a=r.blockBoundaryAt(s.start);return a?{at:a,cell:{story:s.story,tableIndex:s.tableIndex,row:o.row,column:o.column}}:null}return null}function Ut(e,n){let t=al(e).targets.get(n);if(!t||!e.geometryReader.hasStory(t.story)||!e.geometryReader.hasStory(t.position.story))return null;if(t.kind!=="image"){let s=e.geometryReader.paragraphSpans(t.story).find(i=>t.kind==="cell"||i.paraId===t.paraId);if(!s)return null;let o=t.kind==="cell"?ed(e,t.story):null;if(t.kind==="cell"&&!o)return null;let a=o?.at??{story:t.story,paraId:s.paraId,offset:s.length};return $n(e.encodeStickyPosition(a))!==$n(t.position)?null:{story:t.story,paraId:s.paraId,offset:0,kind:t.kind,...o?{cell:o.cell}:{}}}let r=e.resolveStickyPosition(t.position);if(!r||!e.geometryReader.hasStory(r.story)||$n(e.encodeStickyPosition(r))!==$n(t.position))return null;if(t.kind==="image"){let s=0,o=e.geometryReader.paragraphSpans(r.story).findIndex(i=>i.paraId===r.paraId);if(o<0)return null;let a=e.paragraphSegments(r.story,[o])[0]?.find(i=>{let l=s;return s+=i.kind==="text"?i.text.length:1,l===r.offset});if(a?.kind!=="embed"||a.embedKind!=="image")return null}return {...r,kind:t.kind}}function td(e,n){let t=e.from+Math.max(0,n-e.leading);for(let r of e.controls??[])r.offset<n&&(t+=r.to-r.from-1);return t}function nd(e){let n=new Map,t=(r,s,o)=>{let a=o?.[0]??1/0,i=o?.[1]??-1/0;for(let d of s)a=Math.min(a,d.fragmentDocStart??d.docStart??1/0),i=Math.max(i,d.fragmentDocEnd??d.docEnd??d.docStart??-1/0);if(!Number.isFinite(a)||!Number.isFinite(i))return;let l=n.get(r)??[];l.push([a,i]),n.set(r,l);};for(let r of e.displayList.pages)if(!r.unbuilt){t("body",r.primitives,r.positionSpan);for(let s of [r.header,r.footer])s&&t(`hf:${s.rId}`,s.primitives);for(let s of r.noteAreas??[]){let o=s.kind??"footnote",a=new Map;for(let i of s.primitives??[]){let l=i.groupId?.match(/^(footnote|endnote)-(\d+)$/)?.[2];if(l===void 0)continue;let d=a.get(l)??[];d.push(i),a.set(l,d);}for(let[i,l]of a)t(`${o==="footnote"?"fn":"en"}:${i}`,l);}}return n}function il(e,n,t){if(!t||t.anchor.story!==t.head.story||t.anchor.tableIndex!==t.head.tableIndex||t.anchor.row===t.head.row&&t.anchor.column===t.head.column)return null;let r=ht(t.anchor.story);if(r!=="body"||!e.geometryReader.hasStory(r))return [];let s=u(e.geometryReader,r)?.allTables().find(b=>b.story===t.anchor.story&&b.tableIndex===t.anchor.tableIndex),o=b=>s?.cells.find(v=>v.row<=b.row&&b.row<v.row+v.rowspan&&v.column<=b.column&&b.column<v.column+v.colspan),a=o(t.anchor),i=o(t.head);if(!a||!i)return [];let l=[];for(let b of n.displayList.pages){if(b.unbuilt)continue;let v=1/0,R=-1/0;for(let w of b.primitives)v=Math.min(v,w.fragmentDocStart??w.docStart??1/0),R=Math.max(R,w.fragmentDocEnd??w.docEnd??w.docStart??-1/0);Number.isFinite(v)&&Number.isFinite(R)&&l.push([v,R]);}if(!l.length)return [];let d=e.storyGeometry(r,l),m=d.tables.find(b=>b.cells.some(v=>v.story===a.story)&&b.cells.some(v=>v.story===i.story));if(!m)return [];let u$1=Math.min(t.anchor.row,t.head.row),p=Math.max(t.anchor.row,t.head.row),x=Math.min(t.anchor.column,t.head.column),g=Math.max(t.anchor.column,t.head.column),f=(s?.cells??[]).filter(b=>b.row<=p&&b.row+b.rowspan-1>=u$1&&b.column<=g&&b.column+b.colspan-1>=x).map(b=>({tableKey:String(m.from),row:b.row,col:b.column,rowSpan:b.rowspan,colSpan:b.colspan})),h=b=>b===void 0?null:d.tables.find(v=>v.from<=b&&b<v.to)?.from.toString()??null;return Q(n.displayList,f,h,{kind:"body"}).filter(b=>n.pages[b.pageIndex]&&!n.pages[b.pageIndex].page.unbuilt).map(b=>({pageIndex:b.pageIndex,x:b.x,y:b.y,width:b.w,height:b.h}))}function rd(e){let n=new Map;for(let t of e.displayList.pages){let r=Math.min(t.watermarkPrimitiveCount??0,t.primitives.length),s=0,o=a=>{a.kind==="image"&&n.set(a,s++);};t.primitives.slice(0,r).forEach(o);for(let a of [t.header,t.footer])a?.primitives.forEach(o);t.primitives.slice(r).forEach(o);}return n}async function ll(e,n,t,r){let s=[],o=rd(n),a=[],i=t&&t.anchor.story===t.focus.story?ht(t.anchor.story):null,l=d=>d.filter(m=>n.pages[m.pageIndex]&&!n.pages[m.pageIndex].page.unbuilt).map(m=>({...m,pageId:n.pages[m.pageIndex].pageId.toString()}));for(let[d,m]of [...nd(n)].sort(([u],[p])=>u<p?-1:u>p?1:0)){if(!e.geometryReader.hasStory(d))continue;let u=e.storyGeometry(d,m,i===d&&t?[t.anchor,t.focus]:void 0),[p,x]=d.split(":"),g=u.paragraphs.map(U=>[U.from,U.to]),f=u.selection&&u.selection[0]!==u.selection[1]?[Math.min(...u.selection),Math.max(...u.selection)]:null;f&&g.push(f);let b=(d==="body"?[["body",""]]:p==="hf"?[["header",x],["footer",x]]:[[p==="fn"?"footnote":"endnote",String(Number(x))]]).map(([U,J])=>e.storyRangeRects(U,J,g)),v=U=>l(b.flatMap(J=>J[U]??[]));f&&(a=v(g.length-1));let R=u.tables,w=R.flatMap(U=>U.cells.map(J=>({tableKey:String(U.from),row:J.row,col:J.column,rowSpan:J.rowspan,colSpan:J.colspan}))),P=U=>U===void 0?null:R.find(J=>J.from<=U&&U<J.to)?.from.toString()??null,T=p==="fn"?"footnote":"endnote",O=p==="fn"||p==="en"?{...n.displayList,pages:n.displayList.pages.map(U=>({...U,primitives:(U.noteAreas??[]).filter(J=>(J.kind??"footnote")===T).flatMap(J=>(J.primitives??[]).filter(z=>z.groupId===`${T}-${x}`))}))}:n.displayList,I=p==="hf"?[{kind:"header",rId:x},{kind:"footer",rId:x}]:[{kind:"body"}],F=new Map;for(let U of I)for(let J of Q(O,w,P,U)){let z=`${J.tableKey}:${J.row}:${J.col}`,ee=F.get(z)??[];ee.push({pageId:n.pages[J.pageIndex].pageId.toString(),pageIndex:J.pageIndex,x:J.x,y:J.y,width:J.w,height:J.h}),F.set(z,ee);}for(let U of R)for(let J of U.cells){let z=F.get(`${U.from}:${J.row}:${J.column}`)??[];z.length&&s.push({kind:"cell",story:J.story,handle:es(e,"cell",{story:J.story,paraId:J.paraId,offset:0},U.at),rects:z});}let _=[];if(d==="body"||p==="hf")for(let U of n.displayList.pages){let J=d==="body"?[U.primitives]:[U.header,U.footer].flatMap(z=>z&&z.rId===x?[z.primitives]:[]);for(let z of J.flat())z.kind==="image"&&z.docStart!==void 0&&_.push(z.docStart);}let L=new Map;for(let U of u.paragraphs){if(!_.some(z=>z>=U.from&&z<=U.to))continue;let J=L.get(U.story);J?J.push(U):L.set(U.story,[U]);}let B=new Map;for(let[U,J]of L){let z=e.paragraphSegments(U,J.map(ee=>ee.index));J.forEach((ee,oe)=>B.set(ee,z[oe]??[]));}for(let[U,J]of u.paragraphs.entries()){let{story:z,paraId:ee}=J,oe=0;for(let Q of B.get(J)??[]){let C={story:z,paraId:ee,offset:oe};if(oe+=Q.kind==="text"?Q.text.length:1,Q.kind!=="embed"||Q.embedKind!=="image")continue;let W=td(J,C.offset),$=d==="body"||p==="hf"?D$1(n.displayList,W,p==="hf"?"header":"body",x)??(p==="hf"?D$1(n.displayList,W,"footer",x):null):null;$&&s.push({kind:"image",story:z,handle:es(e,"image",C),rects:[{pageIndex:$.pageIndex,x:$.primitive.x,y:$.primitive.y,width:$.primitive.w,height:$.primitive.h,pageId:n.pages[$.pageIndex].pageId.toString()}],...qc(Q.payload),...Zc(t,C)?{selected:true}:{},paintOrder:o.get($.primitive),...z!==d?{nested:true}:{}});}let A=v(U);A.length&&s.push({kind:"text",story:z,handle:es(e,"text",{story:z,paraId:ee,offset:0},{story:z,paraId:ee,offset:J.length}),rects:A});}}return {version:e.proposalEngine.version(),frameEpoch:n.frameEpoch,layoutRevision:r,selection:a,objects:s,unbuiltPages:n.pages.filter(d=>d.page.unbuilt).map(d=>d.pageIndex)}}function os(e,n){let t=n.headers?.map(([r,s])=>{let o=s.watermark;return o?.kind!=="picture"||!o.data||o.data instanceof Uint8Array?[r,s]:[r,{...s,watermark:{...o,data:Uint8Array.from(Object.values(o.data))}}]});return {...e,package:{...e.package,document:{...e.package.document,...n.body},headers:t?new Map(t):void 0,footers:n.footers?new Map(n.footers):void 0,relationships:n.relationships?new Map(n.relationships):void 0}}}function Ar(e,n){return n==="final"?e$4(e.package.document)??{}:e.package.document.sections?.[cl(e,n)]?.properties??null}function cl(e,n){let t=e.package.document.sections??[],r=t.findIndex(o=>o.id===n||o.properties.sectionId===n);if(r>=0)return r;let s=/^(0|[1-9]\d*)$/.test(n)?Number(n):-1;return s>=0&&s<t.length-1?s:-1}function dl(e,n,t){if(!Ar(e,n))return null;let r=e.package.document,s=cl(e,n),o=n==="final"?f$3(r,a=>({...a,...t})):{...r,sections:r.sections?.map((a,i)=>i===s?{...a,properties:{...a.properties,...t}}:a)};return {...e,package:{...e.package,document:o}}}var rs=new WeakMap;function ul(e,n){if(!e.geometryReader.hasStory(n.story))return null;let t=e.geometryReader.paragraphSpans(n.story).findIndex(o=>o.paraId===n.paraId);if(t<0)return null;let r=0,s=e.paragraphSegments(n.story,[t])[0]?.find(o=>{let a=r;return r+=o.kind==="text"?o.text.length:1,a===n.offset});return s?.kind==="embed"&&s.embedKind==="image"?s.payload:null}function _r(e,n){let t=rs.get(e)?.get(n);if(!t){let o=Ut(e,n);return o?.kind==="image"?{story:o.story,paraId:o.paraId,offset:o.offset}:null}let r=e.resolveStickyPosition(t.position);if(!r||!ul(e,r))return null;let s=e.encodeStickyPosition(r);return String(s.encoded)===String(t.position.encoded)?r:null}function Lr(e,n){if(n.kind==="tableSelection"){let d=Ie(e,n.selection);if(!d)return null;let m=Ve(e,d.story);if(!m)return null;let u=e.tablePayload(m.story,m.tableIndex);if(!u)return null;let p=u.tblPr??{};return {kind:"table",properties:{width:typeof p.width=="number"?p.width:null,widthType:typeof p.widthType=="string"?p.widthType:"auto",justification:p.justification==="center"||p.justification==="right"?p.justification:"left"}}}if(n.kind==="section"){let d=Ar(e.propertyDocument(),n.section);return d?{kind:"section",section:n.section,properties:d}:null}if(n.kind==="watermark")return {kind:"watermark",watermark:a$5(e.propertyDocument())??null};if(n.kind==="hyperlink"){let d=Ie(e,n.selection);if(!d)return null;let m=n.selection.focus,p=e.geometryReader.locateParagraph(d.story,m.paraId).start+m.offset,x=0,g=e.storySegments(d.story).map(T=>{let O=x;x+=T.kind==="text"?T.text.length:1;let I=T.attributes.hyperlink;return {start:O,end:x,hyperlink:I?.href?I:null}}),f=g.findIndex(T=>T.hyperlink&&T.start<p&&p<T.end);f<0&&(f=g.findIndex(T=>T.hyperlink&&(p===T.start||p===T.end)));let h=g[f]?.hyperlink;if(!h)return {kind:"hyperlink",range:d,hyperlink:null};let b=f,v=f;for(;b>0&&g[b-1].end===g[b].start&&g[b-1].hyperlink?.href===h.href;)b-=1;for(;v+1<g.length&&g[v].end===g[v+1].start&&g[v+1].hyperlink?.href===h.href;)v+=1;let R=T=>{for(let O of e.geometryReader.paragraphSpans(d.story)){let I=e.geometryReader.locateParagraph(d.story,O.paraId);if(I.start<=T&&T<=I.end)return {paraId:O.paraId,offset:T-I.start}}return null},w=R(g[b].start),P=R(g[v].end);return w&&P?{kind:"hyperlink",range:{story:d.story,start:w,end:P},hyperlink:h}:null}let t=n.kind==="objectSelection"?Ie(e,n.selection):null;if(n.kind==="objectSelection"&&(!t||t.start.paraId!==t.end.paraId||t.end.offset-t.start.offset!==1))return null;let r=n.kind==="objectSelection"?{story:t.story,...t.start}:n.at??(n.handle?_r(e,n.handle):null);if(!r)return null;let s=ul(e,r);if(!s)return null;let o=rs.get(e);o||(o=new Map,rs.set(e,o));let a=e.encodeStickyPosition(r),i=[...o].find(([,d])=>d.position.story===a.story&&String(d.position.encoded)===String(a.encoded)),l=i?.[0]??(n.kind==="object"&&n.handle?n.handle:crypto.randomUUID());return i||o.set(l,{position:a}),{kind:"object",handle:l,properties:s}}function pl(e,n){return b$9(e,n)}var fl={setHyperlink:["selection","hyperlink","displayText","expectVersion"],setObjectProperties:["handle","patch","expectVersion"],setSectionProperties:["section","patch","expectVersion"],setNoteProperties:["section","footnotePr","endnotePr","expectVersion"],setWatermark:["watermark","expectVersion"]};function nt(e){return !!e&&typeof e=="object"&&!Array.isArray(e)&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null)}function ml(e,n){return !nt(e)||!nt(n)?(e??null)===(n??null):[...new Set([...Object.keys(e),...Object.keys(n)])].every(t=>ml(e[t],n[t]))}var et=e=>typeof e=="number"&&Number.isFinite(e),Fe=e=>typeof e=="string"&&!/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u.test(e),tt=(e,n)=>Fe(e)&&n.includes(e);function ss(e,n=false){return nt(e)&&Object.entries(e).every(([t,r])=>t==="numStart"?et(r)&&Number.isSafeInteger(r)&&r>0:t==="position"?tt(r,n?["sectEnd","docEnd"]:["pageBottom","beneathText","sectEnd","docEnd"]):t==="numRestart"?tt(r,["continuous","eachSect","eachPage"]):t==="numFmt"?tt(r,["decimal","upperRoman","lowerRoman","upperLetter","lowerLetter","ordinal","cardinalText","ordinalText","chicago","none"]):t==="customNumberFormat"?Fe(r):t==="separators"?Array.isArray(r)&&r.every(s=>nt(s)&&Object.entries(s).every(([o,a])=>o==="kind"?tt(a,["separator","continuationSeparator","continuationNotice"]):o==="noteId"&&et(a)&&Number.isSafeInteger(a))):false)}function od(e){return nt(e)&&Object.entries(e).every(([n,t])=>["pageWidth","pageHeight","columnCount","footnoteColumns"].includes(n)?et(t)&&t>0&&(n.endsWith("Count")||n.endsWith("Columns")?Number.isSafeInteger(t):true):["marginLeft","marginRight","marginTop","marginBottom","headerDistance","footerDistance","gutter","columnSpace"].includes(n)?et(t)&&t>=0:n==="orientation"?tt(t,["portrait","landscape"]):n==="sectionStart"?tt(t,["nextPage","continuous","oddPage","evenPage","nextColumn"]):n==="verticalAlign"?tt(t,["top","center","both","bottom"]):["equalWidth","separator","bidi","titlePg","evenAndOddHeaders"].includes(n)?typeof t=="boolean":n==="footnotePr"||n==="endnotePr"?ss(t,n==="endnotePr"):n==="columns"?Array.isArray(t)&&t.every(r=>nt(r)&&Object.entries(r).every(([s,o])=>["width","space"].includes(s)&&et(o)&&o>=0)):false)}function sd(e){return nt(e)&&Object.entries(e).every(([n,t])=>["widthEmu","heightEmu"].includes(n)?et(t)&&t>0:["width","height","borderWidth","distTop","distBottom","distLeft","distRight"].includes(n)?t===null||et(t)&&t>=0:["hOffsetEmu","vOffsetEmu","distTopEmu","distBottomEmu","distLeftEmu","distRightEmu"].includes(n)?t===null||et(t):n==="wrap"||n==="wrapType"?tt(t,["inline","square","tight","through","topAndBottom","behind","inFront"]):n==="displayMode"?t===null||tt(t,["inline","float","block"]):n==="cssFloat"?t===null||tt(t,["left","right","none"]):n==="wrapText"?t===null||tt(t,["bothSides","left","right","largest"]):n==="transform"?t===null||Fe(t)&&t.length<=128:["alt","title","borderColor","relativeFromHorizontal","relativeFromVertical"].includes(n)?t===null||Fe(t):n==="borderColorValue"?t===null:n==="borderStyle"?t===null||tt(t,["solid","dashed","dotted","double"]):n==="position"?t===null||nt(t)&&Object.entries(t).every(([r,s])=>r==="relativeHeight"?s===null||et(s):r==="behindDoc"?s===null||typeof s=="boolean":["horizontal","vertical"].includes(r)&&nt(s)&&Object.entries(s).every(([o,a])=>o==="posOffset"?a===null||et(a):["relativeTo","align"].includes(o)&&(a===null||Fe(a)))):n==="decorative"?typeof t=="boolean":false)}function ad(e){return e===null?true:nt(e)?e.kind==="text"?Fe(e.text)&&Fe(e.font)&&Fe(e.color)&&typeof e.semitransparent=="boolean"&&tt(e.layout,["diagonal","horizontal"])&&Object.entries(e).every(([n,t])=>["kind","text","font","color","semitransparent","layout"].includes(n)||n==="fontSize"&&et(t)&&t>0||n==="decorative"&&typeof t=="boolean"):e.kind==="picture"?(Fe(e.dataUrl)||Fe(e.mediaPath)||Fe(e.relId)||e.data instanceof Uint8Array&&e.data.length>0)&&et(e.scale)&&e.scale>0&&typeof e.washout=="boolean"&&Object.entries(e).every(([n,t])=>["kind","scale","washout"].includes(n)||["relId","contentType","dataUrl","mediaPath"].includes(n)&&Fe(t)||n==="data"&&t instanceof Uint8Array||["widthEmu","heightEmu"].includes(n)&&et(t)&&t>0||n==="decorative"&&typeof t=="boolean"):false:false}function Kn(e){return Object.hasOwn(fl,e)}function yl(e){if(!Kn(e.kind)||!nt(e.payload))return false;let n=e.payload,t=fl[e.kind];if(!Fe(n.expectVersion)||Object.keys(n).some(r=>!t.includes(r)))return false;switch(e.kind){case "setHyperlink":return nt(n.selection)&&(n.displayText===void 0||Fe(n.displayText))&&(n.hyperlink===null||nt(n.hyperlink)&&Fe(n.hyperlink.href)&&Object.entries(n.hyperlink).every(([r,s])=>["href","tooltip","rId"].includes(r)&&Fe(s)));case "setObjectProperties":return Fe(n.handle)&&sd(n.patch);case "setSectionProperties":return Fe(n.section)&&od(n.patch);case "setNoteProperties":return Fe(n.section)&&ss(n.footnotePr)&&ss(n.endnotePr,true);case "setWatermark":return ad(n.watermark)}}function gl(e,n){switch(n.kind){case "setHyperlink":{let t=Ie(e,n.payload.selection);return n.payload.displayText&&t?.start.paraId!==t?.end.paraId?"invalid-range":t&&n.payload.displayText||t&&(t.start.paraId!==t.end.paraId||t.start.offset!==t.end.offset)?null:"invalid-range"}case "setObjectProperties":return _r(e,n.payload.handle)?null:"stale-object";case "setSectionProperties":case "setNoteProperties":return Ar(e.propertyDocument(),n.payload.section)?null:"unknown-section";default:return null}}function hl(e,n){let t=e.proposalEngine.version();switch(n.kind!=="setObjectProperties"&&(e.beginUndoCapture(),e.addUndoBoundary()),n.kind){case "setHyperlink":{let r=Ie(e,n.payload.selection);if(n.payload.displayText){let s=r.start.paraId===r.end.paraId&&r.start.offset===r.end.offset?e.insertText({story:r.story,...r.start},n.payload.displayText):e.replaceRange(r,n.payload.displayText);if(!s.range)throw new Error("Text receipt lacks range");r=s.range;}e.setHyperlink(r,n.payload.hyperlink);break}case "setObjectProperties":{let r=_r(e,n.payload.handle),s=Lr(e,{kind:"object",at:r});if(s?.kind!=="object")throw new Error("Image handle no longer resolves");let o=n.payload.patch;if(Object.entries(o).every(([i,l])=>{let d=i==="wrap"?s.properties.wrapType??s.properties.wrap:s.properties[i];return i==="position"?ml(d,l):l===null?d==null:JSON.stringify(d)===JSON.stringify(l)}))return {status:"noop"};e.beginUndoCapture(),e.addUndoBoundary();let a={...o,...o.widthEmu===void 0?{}:{width:Number(o.widthEmu)/9525},...o.heightEmu===void 0?{}:{height:Number(o.heightEmu)/9525},...o.wrap===void 0?{}:{wrapType:o.wrap}};e.setImageGeometryAt(r,{widthEmu:Number(o.widthEmu??Number(o.width??s.properties.width??0)*9525),heightEmu:Number(o.heightEmu??Number(o.height??s.properties.height??0)*9525),other:a});break}case "setSectionProperties":case "setNoteProperties":{let r=e.propertyDocument(),s=n.kind==="setSectionProperties"?n.payload.patch:{footnotePr:n.payload.footnotePr,endnotePr:n.payload.endnotePr},o=dl(r,n.payload.section,s);JSON.stringify(o)!==JSON.stringify(r)&&e.setPropertyDocument(o);break}case "setWatermark":{let r=e.propertyDocument(),s=pl(r,n.payload.watermark);JSON.stringify([...s.package.headers??[]])!==JSON.stringify([...r.package.headers??[]])&&e.setPropertyDocument(s);break}}return e.addUndoBoundary(),{status:t===e.proposalEngine.version()?"noop":"applied"}}var id=["left","center","right","decimal","bar","clear","num"],ld=["none","dot","hyphen","underscore","heavy","middleDot"];function as(e){if(e==null)return [];if(!Array.isArray(e))throw new Error("Invalid native tab stops");return e.map(n=>{if(!n||typeof n!="object"||Array.isArray(n))throw new Error("Invalid native tab stop");let t=n.position??n.pos,r=n.alignment??n.val,s=id.find(a=>a===(r==="start"?"left":r==="end"?"right":r)),o=ld.find(a=>a===n.leader);if(typeof t!="number"||!Number.isFinite(t)||s===void 0||n.leader!=null&&o===void 0)throw new Error("Invalid native tab stop");return {position:t,alignment:s,...o===void 0?{}:{leader:o}}})}function bl(e){return !!e&&typeof e=="object"&&!Array.isArray(e)&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null)&&Object.entries(e).every(([n,t])=>["marginLeft","marginRight","marginTop","marginBottom","headerDistance","footerDistance","gutter"].includes(n)&&typeof t=="number"&&Number.isFinite(t)&&t>=0)}function Qn(e,n){if(n.story!=="body")return null;let t=e.sectionProperties(),r=t.paragraphs.filter(o=>o.story==="body"),s=r.findIndex(o=>o.paraId===n.paraId);return s<0?null:t.sections.find(o=>o.section==="final"||r.findIndex(a=>a.paraId===o.section)>=s)?.properties??null}function is(e){let n=t=>Array.isArray(t)?t.map(n):t!==null&&typeof t=="object"?Object.fromEntries(Object.keys(t).sort().map(r=>[r,n(t[r])])):t;return JSON.stringify(n(e))}function Nr(e,n,t,r,s=false){let o=[],a=[];for(let i of e.geometryReader.storyIds())for(let l of e.paragraphs(i)){a.push({story:i,paraId:l.paraId,tabs:as(l.properties.tabs)});let d=l.properties.sectPr??l.properties._sectionProperties;if(i==="body"&&d){let m=!s&&r.get(l.paraId)===is(d)?n.package.document.sections?.find(u=>u.id===l.paraId)?.properties:void 0;o.push({section:l.paraId,properties:{...d,...m,...t[l.paraId]}});}}return o.push({section:"final",properties:{...e$4(n.package.document),...t.final}}),{version:e.proposalEngine.version(),sections:o,paragraphs:a}}function xl(e,n){let t=e.package.document;return !t.sections||n.length===0?e:{...e,package:{...e.package,document:{...t,sections:t.sections.map((r,s)=>s<n.length?{...r,id:n[s]}:r)}}}}function jr(e,n){let t=e.package.document;return !t.sections||n.size===0?e:{...e,package:{...e.package,document:{...t,sections:t.sections.map(r=>r.id!==void 0&&n.has(r.id)?{...r,id:n.get(r.id)}:r)}}}}function ls(e,n){let t=e.package.document,r=n.sections.at(-1).properties,s=new Map(n.sections.map(({section:a,properties:i})=>[a,i])),o=t.sections?.map((a,i,l)=>({...a,properties:(a.id===void 0?void 0:s.get(a.id))??(i===l.length-1?r:a.properties)}));return {...e,package:{...e.package,document:{...t,...o?{sections:o}:{},finalSectionProperties:r}}}}function cs(e){if(!e||typeof e!="object")return false;let n=e,t=r=>typeof r=="string"&&!!r.trim()&&!/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u.test(r);return Object.keys(n).every(r=>["faces","chains","families"].includes(r))&&Array.isArray(n.faces)&&n.faces.length<=256&&n.faces.every((r,s)=>!r||typeof r!="object"||!t(r.family)?false:"substituteOf"in r?Object.keys(r).every(o=>["family","substituteOf"].includes(o))&&Number.isSafeInteger(r.substituteOf)&&r.substituteOf>=0&&r.substituteOf<s:Object.keys(r).every(o=>["family","data","weight","style"].includes(o))&&r.data instanceof Uint8Array&&r.data.byteLength>=12&&r.data.byteLength<=64*1024*1024&&(r.weight===void 0||/^(normal|bold|[1-9]\d{0,2}|1000)$/.test(String(r.weight)))&&(r.style===void 0||["normal","italic","oblique"].includes(r.style)))&&!!n.chains&&typeof n.chains=="object"&&!Array.isArray(n.chains)&&Object.entries(n.chains).every(([r,s])=>t(r)&&Array.isArray(s)&&s.every(o=>Number.isSafeInteger(o)&&o>=0&&o<n.faces.length))&&Array.isArray(n.families)&&n.families.every(t)}var Wr=class{constructor(n,t,r=typeof FontFace=="function"?(s,o,a)=>new FontFace(s,o.slice().buffer,a):void 0){b$6(this,"engine",n);b$6(this,"fontSet",t);b$6(this,"createFace",r);b$6(this,"css",[]);b$6(this,"disposed",false);b$6(this,"revision",0);b$6(this,"snapshot");}async prepare(n){if(this.disposed)throw new Error("Worker font session is disposed");if(!cs(n))throw new Error("Invalid worker font environment");let t=[],r=[];for(let s of n.faces)if("substituteOf"in s)t.push({substituteOf:s.substituteOf,family:s.family});else {let o=this.engine.decodeFont(s.data);t.push(o),this.createFace&&this.fontSet&&r.push(this.createFace(s.family,o,{weight:String(s.weight??"normal"),style:s.style??"normal"}));}if(await Promise.all(r.map(s=>s.load())),this.disposed)throw new Error("Worker font session is disposed");return {fonts:t,css:r,chains:structuredClone(n.chains),families:[...n.families]}}commit(n,t){if(this.disposed)throw new Error("Worker font session is disposed");let r=[];try{for(let s of n.css)this.fontSet?.add(s),r.push(s);t(n.fonts,n.chains);}catch(s){for(let o of r)this.fontSet?.delete(o);throw s}for(let s of this.css)this.fontSet?.delete(s);return this.css=n.css,this.snapshot={revision:++this.revision,families:n.families},this.snapshot}dispose(){this.disposed=true;for(let n of this.css)this.fontSet?.delete(n);this.css=[];}};var cd=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u,dd=new Set(["ins","del","hyperlink"]),kl=new Set(["paraId","_kind","ooxmlParaId","sourceParaId","paraOrigin"]);function me(e){return !!e&&typeof e=="object"&&!Array.isArray(e)&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null)}function V(e){return typeof e=="string"&&!cd.test(e)}function dt(e,n=new Set){if(e===null||typeof e=="boolean"||V(e))return true;if(typeof e=="number")return Number.isFinite(e);if(!Array.isArray(e)&&!me(e)||n.has(e))return false;n.add(e);let t=Object.entries(e).every(([r,s])=>V(r)&&dt(s,n));return n.delete(e),t}function Re(e,n){return me(e)&&Object.entries(e).every(([t,r])=>Object.hasOwn(n,t)&&n[t](r))}function ud(e){if(!me(e))return false;if(e.kind==="session")return Re(e,{kind:V,sessionId:V,story:V,paraId:V})&&["sessionId","story","paraId"].every(t=>V(e[t]));if(e.kind==="source")return Re(e,{kind:V,packageSha256:V,partUri:V,paragraphOrdinal:t=>Number.isSafeInteger(t)&&Number(t)>=0&&Number(t)<=4294967295})&&V(e.packageSha256)&&V(e.partUri)&&Number.isSafeInteger(e.paragraphOrdinal);if(e.kind!=="persisted"||!Re(e,{kind:V,story:me,paraId:V})||!V(e.paraId))return false;let n=e.story;return Re(n,{kind:V,partUri:V,itemId:V})&&me(n)&&V(n.partUri)&&(["body","header","footer"].includes(String(n.kind))||["footnote","endnote","comment"].includes(String(n.kind))&&V(n.itemId))}var ke=e=>n=>n===null||e(n),Me=e=>typeof e=="boolean",we=e=>typeof e=="number"&&Number.isFinite(e),Pn=e=>we(e)&&e>0&&Number.isFinite(e*2),Oe=(...e)=>n=>typeof n=="string"&&e.includes(n);function Pl(e){return Re(e,{bold:ke(Me),italic:ke(Me),underline:ke(n=>Me(n)||Re(n,{style:V,color:V})),strike:ke(n=>Me(n)||Re(n,{double:Me})),color:ke(n=>Re(n,{rgb:V,themeColor:V})&&me(n)&&typeof n.rgb=="string"!=(typeof n.themeColor=="string")),highlight:ke(V),fontSize:ke(Pn),fontFamily:ke(n=>Re(n,{ascii:V,hAnsi:V})&&me(n)&&V(n.ascii)),other:n=>me(n)&&dt(n)&&Object.keys(n).every(t=>!dd.has(t))})}function pd(e){if(!me(e))return false;let n=["top","bottom","left","right","insideH","insideV"];return Object.entries(e).every(([t,r])=>n.includes(t)?r===null?true:me(r)?Re(r,{style:V,size:s=>we(s)&&s>=0,color:s=>me(s)&&Re(s,{rgb:V})&&typeof s.rgb=="string"&&/^#?[0-9a-fA-F]{6}$/.test(s.rgb)})&&V(r.style)&&r.style.trim().length>0:false:false)}function fd(e){return me(e)?Re(e,{width:ke(n=>we(n)&&n>=0&&Number.isInteger(n)),widthType:ke(Oe("auto","dxa","pct","nil")),justification:ke(Oe("left","center","right"))}):false}function md(e){return me(e)?["bold","italic","underline","superscript","subscript"].includes(String(e.type))?Re(e,{type:V}):Re(e,{type:V,value:e.type==="fontSize"?Pn:V})&&["fontFamily","fontSize","color"].includes(String(e.type))&&e.value!==void 0:false}function Sl(e){if(!me(e)||!dt(e)||Object.keys(e).some(t=>kl.has(t)))return false;let n={alignment:ke(Oe("left","center","right","both","distribute","mediumKashida","highKashida","lowKashida","thaiDistribute")),lineSpacingRule:ke(Oe("auto","exact","atLeast")),hangingIndent:ke(Me),tabs:ke(t=>Array.isArray(t)&&t.every(r=>Re(r,{position:we,alignment:Oe("left","center","right","decimal","bar","clear","num"),leader:Oe("none","dot","hyphen","underscore","heavy","middleDot")})&&me(r)&&we(r.position)&&V(r.alignment))),defaultTextFormatting:ke(t=>me(t)&&dt(t)),numPr:ke(t=>Re(t,{numId:we,ilvl:we})),numPrFromStyle:ke(t=>Re(t,{numId:we,ilvl:we})),listMarkerColor:ke(t=>me(t)&&dt(t)),listMarkerSuffix:ke(Oe("tab","space","nothing")),listLevelNumFmts:ke(t=>Array.isArray(t)&&t.every(V)),other:t=>me(t)&&dt(t)&&Object.keys(t).every(r=>!kl.has(r))};for(let t of ["lineSpacing","spaceBefore","spaceAfter","indentLeft","indentRight","indentFirstLine","listMarkerFontSize","listAbstractNumId","listStartOverride"])n[t]=ke(we);for(let t of ["bidi","listIsBullet","listMarkerHidden","listMarkerBold","listMarkerItalic"])n[t]=ke(Me);for(let t of ["listNumFmt","listMarker","listMarkerFontFamily"])n[t]=ke(V);return Re(e,n)}var Cl=64*1024*1024,yd=i$4+Cl,vl=e=>e instanceof ArrayBuffer&&e.byteLength>0&&e.byteLength<=Cl,gd={validCursor:d$4,optionKeys:c$5},wl={applyRemoteUpdate:{keys:["update"],exact:true,session:"collaboration",origin:"remote",payload:({update:e})=>vl(e)},applyRemoteUpdateChunks:{keys:["updates"],exact:true,session:"collaboration",origin:"remote",payload:({updates:e})=>{if(!Array.isArray(e)||e.length===0)return false;let n=0;for(let t of e){if(!vl(t))return false;n+=t.byteLength;}return n<=yd}},collabPipe:{keys:["provider","ops"],exact:true,session:"collaboration",origin:"remote",payload:e=>e$9(e,h$3,gd)},applyEdits:{keys:["request","suggesting"],exact:true},setFontEnvironment:{keys:["faces","chains","families"],exact:true},setContentControlValue:{keys:[]},addRepeatingItem:{keys:[]},removeRepeatingItem:{keys:[]},openPart:{keys:[]},ensurePart:{keys:[]},removePart:{keys:[]},setHyperlink:{keys:[]},setObjectProperties:{keys:[]},setSectionProperties:{keys:[]},setNoteProperties:{keys:[]},setWatermark:{keys:[]},setSectionMargins:{keys:["section","margins","expectVersion"]},setTabStops:{keys:["tabs","expectVersion"]},removeTabStop:{keys:["positionTwips","expectVersion"]},formatSelection:{keys:["delta"]},toggleStrike:{keys:[]},toggleList:{keys:["kind"]},changeIndent:{keys:["direction","preserveNumbering"]},insertImage:{keys:["image"]},insertTable:{keys:["rows","columns"]},pasteFragment:{keys:["fragment"]},insertPageBreak:{keys:[]},insertSectionBreak:{keys:["type"]},insertTableRow:{keys:["side"]},insertTableColumn:{keys:["side"]},deleteTableRow:{keys:[]},deleteTableColumn:{keys:[]},deleteTable:{keys:[]},mergeTableCells:{keys:[]},splitTableCell:{keys:["rows","columns"]},setTableCellShading:{keys:["color"]},setTableBorders:{keys:["borders"]},setTableProperties:{keys:["op","patch","expectVersion"]},resizeObject:{keys:["handle","widthEmu","heightEmu","widthTwips","hOffsetEmu","vOffsetEmu","expectVersion"],exact:true},moveObject:{keys:["handle","hOffsetEmu","vOffsetEmu","expectVersion"],exact:true},moveEmbed:{keys:["handle","expectVersion","drop","suggesting"],exact:true},undo:{keys:[],exact:true},redo:{keys:[],exact:true},replaceMatches:{keys:["targets","text","expectVersion","suggesting"],exact:true},addComment:{keys:ct.addComment,exact:true},updateComment:{keys:ct.updateComment,exact:true},setCommentRanges:{keys:ct.setCommentRanges,exact:true},removeComment:{keys:ct.removeComment,exact:true},acceptRevision:{keys:ct.acceptRevision,exact:true},rejectRevision:{keys:ct.rejectRevision,exact:true},propose:{keys:ct.propose,exact:true},setProposalStates:{keys:ct.setProposalStates,exact:true},withdrawProposals:{keys:ct.withdrawProposals,exact:true},select:{keys:["selection","object"]},insertText:{keys:["text"]},replaceSelection:{keys:["text"]},navigate:{keys:["unit","direction","extend","goalX","distance"],exact:true},navigateCell:{keys:["direction","extend","createLastRow"]},selectTableCells:{keys:["target"]},selectPoint:{keys:["page","x","y","layoutRevision","frameEpoch","clickCount","modifiers","story","cellId"],exact:true},extendSelection:{keys:["page","x","y","layoutRevision","frameEpoch","clickCount","modifiers","story","cellId"],exact:true},deleteBackward:{keys:["count"]},deleteForward:{keys:["count"]},paragraphBreak:{keys:[]},lineBreak:{keys:[]},toggleMark:{keys:["mark"]},formatRange:{keys:["delta"]},clearFormatting:{keys:[]},setParagraphAttrs:{keys:["attrs"]},applyParagraphStyle:{keys:["styleId"]},setReadOnly:{keys:["readOnly"],exact:true},setRenderEnvironment:{keys:["themeColors","showHiddenText","showTableGridlines","reservations"],exact:true}};function ps(e){return Object.hasOwn(wl,e)?wl[e]:void 0}function El(e,n,t){let r=a=>(n.reason=a,false),s=e.payload;if(!me(s))return r("invalid-payload");let o=ps(e.kind);if(o?.session==="collaboration"&&!t?.collaboration||e.kind==="moveEmbed"&&t?.collaboration)return r("unsupported-command");if(["setContentControlValue","addRepeatingItem","removeRepeatingItem"].includes(e.kind)){let a=e.kind==="setContentControlValue"?["handle","value","expectVersion"]:["handle","expectVersion"];return Object.keys(s).every(i=>a.includes(i))&&V(s.handle)&&V(s.expectVersion)&&(e.kind!=="setContentControlValue"||ol(s.value))||r("invalid-control-value")}if(["openPart","ensurePart","removePart"].includes(e.kind))return Ki(s)||r("invalid-part-target");if(Kn(e.kind))return yl(e)||r("invalid-properties");if(!o||Object.keys(s).some(a=>!o.keys.includes(a)&&(o.exact||!["selection","suggesting"].includes(a)))||o.payload&&!o.payload(s))return r("invalid-payload");if(s.suggesting!==void 0&&(!Re(s.suggesting,{name:V,date:V})||!me(s.suggesting)||!V(s.suggesting.name)||!V(s.suggesting.date)))return r("invalid-author");if(s.hostProposal!==void 0&&!Me(s.hostProposal))return r("invalid-payload");switch(e.kind){case "applyEdits":if(!me(s.request)||!V(s.request.expectVersion)||!Array.isArray(s.request.steps)||!dt(s.request))return r("invalid-payload");break;case "setFontEnvironment":if(!cs(s))return r("invalid-font-environment");break;case "setSectionMargins":if(!V(s.section)||!V(s.expectVersion)||!bl(s.margins))return r("invalid-margins");break;case "setTabStops":if(!V(s.expectVersion)||s.tabs===void 0||!Sl({tabs:s.tabs}))return r("invalid-tab-stops");break;case "removeTabStop":if(!V(s.expectVersion)||!we(s.positionTwips)||Number(s.positionTwips)<0)return r("invalid-tab-stops");break;case "moveEmbed":if(!V(s.handle)||!V(s.expectVersion)||!El({...e,kind:"selectPoint",payload:s.drop},n,t))return r("invalid-payload");break;case "resizeObject":case "moveObject":if(!V(s.handle)||!V(s.expectVersion)||(e.kind==="resizeObject"?s.widthTwips!==void 0?!Pn(s.widthTwips)||s.widthEmu!==void 0||s.heightEmu!==void 0||s.hOffsetEmu!==void 0||s.vOffsetEmu!==void 0:!Pn(s.widthEmu)||!Pn(s.heightEmu)||(s.hOffsetEmu!==void 0||s.vOffsetEmu!==void 0)&&(!we(s.hOffsetEmu)||!we(s.vOffsetEmu)):!we(s.hOffsetEmu)||!we(s.vOffsetEmu)))return r("invalid-payload");break;case "replaceMatches":if(!V(s.text)||!V(s.expectVersion)||!Array.isArray(s.targets)||!dt(s.targets)||!s.targets.every(a=>me(a)&&V(a.story)&&Oe("accepted","original")(a.view)&&["start","end"].every(i=>me(a[i])&&V(a[i].paraId)&&Number.isSafeInteger(a[i].offset)&&Number(a[i].offset)>=0)))return r("invalid-payload");break;case "addComment":if(!V(s.author)||!V(s.date)||!dt(s.body))return r("invalid-payload");break;case "updateComment":if(!V(s.id)||!Re(s.patch,{body:dt,author:V,date:V,done:Me,parentId:ke(V)}))return r("invalid-payload");break;case "propose":if(!Array.isArray(s.proposals)||!dt(s.proposals)||s.proposals.some(a=>!me(a)||!V(a.id)||!ud(a.paragraph)||!me(a.suggest)||!V(a.suggest.author)||!V(a.suggest.date)||!["insertText","replaceText"].includes(String(a.op))||(a.op==="insertText"?!V(a.text):!V(a.search)||!V(a.replaceWith))))return r("invalid-payload");break;case "setProposalStates":if(!Array.isArray(s.changes)||!s.changes.every(a=>Re(a,{id:V,state:Oe("proposed","accepted","rejected")})&&me(a)&&V(a.id)&&V(a.state))||!Number.isSafeInteger(s.expectPreviewVersion))return r("invalid-payload");break;case "withdrawProposals":if(!Array.isArray(s.ids)||!s.ids.every(V))return r("invalid-payload");break;case "removeComment":case "setCommentRanges":if(!V(s.id))return r("invalid-payload");break;case "acceptRevision":case "rejectRevision":if(!V(s.revisionId))return r("invalid-payload");break;case "navigateCell":if(!Oe("backward","forward")(s.direction)||!Me(s.extend)||!Me(s.createLastRow))return r("invalid-payload");break;case "selectTableCells":if(!Oe("table","row","column")(s.target))return r("invalid-payload");break;case "navigate":if(!Oe("character","word","line","page","paragraph","document-boundary")(s.unit)||!Me(s.extend)||!Oe("backward","forward","up","down")(s.direction)||["up","down"].includes(String(s.direction))&&(!Oe("line","page")(s.unit)||!we(s.goalX))||s.unit!=="page"&&s.distance!==void 0||s.unit==="page"&&(!Oe("up","down")(s.direction)||!we(s.distance)||Number(s.distance)<=0))return r("invalid-payload");break;case "selectPoint":case "extendSelection":{let a=s.modifiers;if(!Re(s.page,{pageId:V,pageIndex:we})||!me(s.page)||!V(s.page.pageId)||!we(s.page.pageIndex)||!we(s.x)||!we(s.y)||!we(s.layoutRevision)||!we(s.frameEpoch)||!we(s.clickCount)||!Re(a,{shift:Me,alt:Me,ctrl:Me,meta:Me})||!me(a)||!["shift","alt","ctrl","meta"].every(i=>Me(a[i]))||s.story!==void 0&&!V(s.story)||s.cellId!==void 0&&!V(s.cellId))return r("invalid-payload");break}case "insertText":case "replaceSelection":if(!V(s.text)||/[\n\r\u000B\u2028\u2029]/u.test(s.text))return r("invalid-text");break;case "deleteBackward":case "deleteForward":if(s.count!==void 0&&(typeof s.count!="number"||!Number.isSafeInteger(s.count)||s.count<=0||s.count>4294967295))return r("invalid-count");break;case "toggleMark":if(!md(s.mark))return r("invalid-formatting");break;case "formatSelection":case "formatRange":if(!Pl(s.delta))return r("invalid-formatting");break;case "setParagraphAttrs":if(!Sl(s.attrs))return r("invalid-paragraph-attrs");break;case "applyParagraphStyle":if(!V(s.styleId)||!s.styleId)return r("invalid-style");break;case "toggleList":if(!Oe("bullet","numbered")(s.kind))return r("invalid-payload");break;case "changeIndent":if(!Oe("increase","decrease")(s.direction)||s.preserveNumbering!==void 0&&!Me(s.preserveNumbering))return r("invalid-payload");break;case "insertTable":if(![s.rows,s.columns].every(a=>typeof a=="number"&&Number.isSafeInteger(a)&&a>0&&a<=1e3)||Number(s.rows)*Number(s.columns)>1e4)return r("invalid-table-size");break;case "pasteFragment":if(!j$1(s.fragment))return r("invalid-payload");break;case "insertTableRow":if(!Oe("above","below")(s.side))return r("invalid-payload");break;case "insertTableColumn":if(!Oe("left","right")(s.side))return r("invalid-payload");break;case "splitTableCell":if(![s.rows,s.columns].every(a=>typeof a=="number"&&Number.isSafeInteger(a)&&a>=1&&a<=1e3)||Number(s.rows)*Number(s.columns)>1e4)return r("invalid-table-size");break;case "setTableCellShading":if(s.color!==null&&(typeof s.color!="string"||!/^[0-9a-fA-F]{6}$/.test(s.color)))return r("invalid-payload");break;case "setTableBorders":if(!pd(s.borders))return r("invalid-payload");break;case "setTableProperties":if(s.op!=="patch"||!fd(s.patch)||s.expectVersion!==void 0&&!V(s.expectVersion))return r("invalid-payload");break;case "insertImage":if(!me(s.image)||!dt(s.image)||Object.hasOwn(s.image,"_kind")||["widthEmu","heightEmu"].some(a=>s.image&&me(s.image)&&s.image[a]!==void 0&&!Pn(s.image[a])))return r("invalid-image");break;case "insertSectionBreak":if(!Oe("nextPage","continuous","oddPage","evenPage")(s.type))return r("invalid-payload");break;case "setReadOnly":if(typeof s.readOnly!="boolean")return r("invalid-payload");break;case "setRenderEnvironment":if(!me(s.themeColors)||!Object.values(s.themeColors).every(a=>typeof a=="string"&&/^[0-9a-f]{6}$/i.test(a))||!Me(s.showHiddenText)||s.showTableGridlines!==void 0&&!Me(s.showTableGridlines)||s.reservations!==void 0&&!N(s.reservations))return r("invalid-payload");break}return true}function bt(e){return e.start.paraId===e.end.paraId&&e.start.offset===e.end.offset}function hd(e,n,t,r,s,o){if(!bt(n))return n;let a=e.geometryReader.paragraphSpans(n.story),i=a.findIndex(({paraId:g})=>g===n.start.paraId);if(i<0)return null;let l=n.start.offset,d=new Map,m=g=>{let f=d.get(g);if(f===void 0){f={text:"",deleted:[]};for(let h of o(n.story,[g])[0]??[]){let b=h.kind==="text"?h.text:h.kind==="pilcrow"?`
2
+ `:"\uFFFC";s&&!(h.kind==="embed"&&h.embedKind==="table")&&(h.attributes.del!=null||h.kind==="pilcrow"&&h.properties.pPrDel!=null)&&f.deleted.push([f.text.length,f.text.length+b.length]),f.text+=b;}d.set(g,f);}return f},u=()=>g$5({paragraphSpans:g=>g===n.story?a:e.geometryReader.paragraphSpans(g),paragraphSegments:o},{story:n.story,paraId:a[i].paraId,offset:l},t?"backward":"forward");for(let g=r;g>0;g-=1){let f=m(i).text;if((t?l===0||f[l-1]==="\uFFFC":l===a[i].length||f[l]==="\uFFFC")&&u())break;if(t)if(l===0){if(i===0)break;l=a[--i].length;}else {let{text:b}=m(i);l-=1,l>0&&/[\uDC00-\uDFFF]/u.test(b[l])&&/[\uD800-\uDBFF]/u.test(b[l-1])&&(l-=1);}else {if(s){for(;;){let b=m(i).deleted.find(([v,R])=>v<=l&&l<R);if(!b)break;if(l=b[1],l>a[i].length){if(i===a.length-1){l=a[i].length;break}i+=1,l=0;}}if(u())break}if(l===a[i].length){if(i===a.length-1)break;i+=1,l=0;}else l+=m(i).text.codePointAt(l)>65535?2:1;}}let p={paraId:a[i].paraId,offset:l},x={story:n.story,start:t?p:n.start,end:t?n.end:p};return Ie(e,{anchor:{story:n.story,...x.start},focus:{story:n.story,...x.end}})?x:null}function Dl(e,n,t,r,s){let o=u=>{let p=n.selection?ze(e,n):null;return {status:"refused",reason:u,selection:p?.ok?p.selection:null,editState:Mr(e,n,p)}},a=n.readOnly&&!r.replayPreviouslyApplied,i={reason:"invalid-payload"};if(!El(t,i,s))return o(i.reason);if(ps(t.kind)?.origin==="remote")return {status:"ready",prepared:{command:t,selection:n.selection,range:null}};if(t.kind==="setRenderEnvironment")return s?.setRenderEnvironment?{status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}}:o("unsupported-command");if(t.kind==="setFontEnvironment")return s?.supportsFontEnvironment?{status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}}:o("unsupported-command");if(t.kind==="setContentControlValue"||t.kind==="addRepeatingItem"||t.kind==="removeRepeatingItem"){if(a)return o("read-only");if(t.payload.expectVersion!==e.proposalEngine.version())return o("stale-version");let u=qo(e,t.payload.handle);return u?u.control.effectiveLock.content||!u.control.effectiveLock.known||u.control.dataBound?o("locked-target"):{status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}}:o("stale-control")}if(t.kind==="openPart"||t.kind==="ensurePart"||t.kind==="removePart")return a&&t.kind!=="openPart"?o("read-only"):t.payload.expectVersion!==e.proposalEngine.version()?o("stale-version"):!zn(e,t.payload)&&(t.kind!=="ensurePart"||!Qo(e,t.payload))?o("unknown-part"):{status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}};if(Kn(t.kind)){if(a)return o("read-only");if(t.basis.epoch!==r.basis.epoch)return o("stale-epoch");if(!("expectVersion"in t.payload)||t.payload.expectVersion!==e.proposalEngine.version())return o("stale-version");let u=gl(e,t);return u?o(u):{status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}}}if(t.kind==="setSectionMargins"||t.kind==="setTabStops"||t.kind==="removeTabStop"){if(a)return o("read-only");if("suggesting"in t.payload&&t.payload.suggesting!==void 0)return o("unsupported-suggesting");if(t.payload.expectVersion!==e.proposalEngine.version())return o("stale-version");if(t.kind==="setSectionMargins")return e.sectionProperties().sections.some(u=>u.section===t.payload.section)?{status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}}:o("unknown-section")}switch(t.kind){case "navigate":case "selectPoint":case "extendSelection":{if(!t.basis||!Number.isSafeInteger(t.basis.epoch)||t.basis.epoch<0||!Number.isSafeInteger(t.basis.version)||t.basis.version<0||t.basis.epoch!==r.basis.epoch||t.basis.version!==r.basis.version||t.basis.version>r.currentVersion)return o("stale-anchor");if(t.kind==="navigate"){let p=tn(e,n,t,r);if(!p.ok)return o(p.reason)}let u=Tr({engine:e,state:n,command:t,context:r,readLayout:s?.readSelectionLayout});return {status:"ready",prepared:{command:structuredClone(t),selection:u.selection,range:u.range,cells:u.cells??Vn(e,u.selection.focus.story)}}}case "selectTableCells":{let u=tn(e,n,t,r);if(!u.ok)return o(u.reason);let p=Ve(e,u.selection.focus.story),x=p?Oi(e,p,t.payload.target):null;if(!p||!x)return o("invalid-cell-target");let g=u.selection.focus,f={anchor:g,focus:g},h=Ie(e,f);return h?{status:"ready",prepared:{command:structuredClone(t),selection:f,range:h,cells:x}}:o("invalid-selection")}}if(t.kind==="applyEdits"){if(a)return o("read-only");let u=e.proposalEngine.validateEdits(Yo(t.payload));return u.ok?{status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}}:o(u.failure.code)}if(t.kind==="replaceMatches")return a?o("read-only"):t.payload.expectVersion!==e.proposalEngine.version()?o("stale-version"):{status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}};if(t.kind==="moveEmbed"){if(a)return o("read-only");if(t.basis.epoch!==r.basis.epoch)return o("stale-epoch");if(t.payload.expectVersion!==e.proposalEngine.version())return o("stale-version");if(t.payload.suggesting!==void 0)return o("unsupported-suggesting");let u=Ut(e,t.payload.handle);if(!u)return o("stale-object");if(u.kind!=="image")return o("unsupported-object");let p=e.geometryReader.paragraphSpans(u.story).findIndex(P=>P.paraId===u.paraId),x=0,g=e.paragraphSegments(u.story,[p])[0]?.find(P=>{let T=x;return x+=P.kind==="text"?P.text.length:1,T===u.offset});if(g?.kind!=="embed"||g.embedKind!=="image"||ns(g.payload))return o("unsupported-object");if(g.attributes.del!=null)return o("locked-target");let f=s?.readSelectionLayout(),h=t.payload.drop,b=f?.frame.pages[h.page.pageIndex];if(!f||!b||h.layoutRevision!==f.layoutRevision||String(b.pageId)!==h.page.pageId)return o("stale-anchor");let v=Dl(e,n,{...t,kind:"selectPoint",payload:{...t.payload.drop,clickCount:1,modifiers:{shift:false,alt:false,ctrl:false,meta:false}}},r,s);if(v.status!=="ready")return v;let R=v.prepared.selection?.focus;if(!R)return o("invalid-selection");let w=P=>P!=="body"&&!P.startsWith("body:")?P.split(":").slice(0,2).join(":"):"body";if(w(u.story)!==w(R.story))return o("unsupported-object");for(let P of [u,R]){let T=e.proposalEngine.validateEdits({expectVersion:t.payload.expectVersion,steps:[{op:"deleteText",target:{kind:"range",story:P.story,view:"accepted",start:{paraId:P.paraId,offset:0},end:{paraId:P.paraId,offset:0}}}],history:"none"});if(!T.ok&&["locked-target","tracked-revision-conflict"].includes(T.failure.code))return o(T.failure.code)}return {status:"ready",prepared:{command:structuredClone(t),selection:v.prepared.selection,range:v.prepared.range}}}if(t.kind==="resizeObject"||t.kind==="moveObject"){if(a)return o("read-only");if(t.basis.epoch!==r.basis.epoch)return o("stale-epoch");if(t.payload.expectVersion!==e.proposalEngine.version())return o("stale-version");let u=Ut(e,t.payload.handle);if(!u)return o("stale-object");if(u.kind==="cell"&&t.kind==="resizeObject"&&"widthTwips"in t.payload){if(!u.cell)return o("stale-object")}else if(u.kind!=="image"||t.kind==="resizeObject"&&"widthTwips"in t.payload)return o("unsupported-object");return {status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}}}if(t.kind==="undo"||t.kind==="redo")return a?o("read-only"):t.basis.epoch!==r.basis.epoch?o("stale-epoch"):{status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}};if(Object.hasOwn(ct,t.kind)){if(a&&!Ci(t))return o("read-only");let u=Ei(e,n,t);return u?o(u):{status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}}}if(t.kind==="setReadOnly")return !t.basis||!Number.isSafeInteger(t.basis.epoch)||t.basis.epoch<0||t.basis.epoch!==r.basis.epoch||t.basis.version!==r.basis.version||!Number.isSafeInteger(t.basis.version)||t.basis.version<0||t.basis.version>r.currentVersion?o("stale-anchor"):t.expectVersion&&t.basis.version!==r.currentVersion?o("stale-version"):{status:"ready",prepared:{command:structuredClone(t),selection:n.selection,range:null}};let l;if(t.kind==="select"&&t.payload.object!==void 0){let u=t.payload.object;if(t.payload.selection!==void 0||!Re(u,{handle:V,expectVersion:V})||!me(u)||!V(u.handle)||!V(u.expectVersion))return o("invalid-payload");if(u.expectVersion!==e.proposalEngine.version())return o("stale-version");let p=Ut(e,u.handle);if(!p||p.kind!=="image")return o("stale-object");let x={story:p.story,paraId:p.paraId,offset:p.offset};l={anchor:x,focus:{...x,offset:x.offset+1}};}if((t.kind==="select"||t.kind==="formatRange")&&t.payload.selection===void 0&&!l)return o("invalid-selection");if(Ho(t.kind)){if(a)return o("read-only");if(t.kind==="setTableProperties"&&t.payload.expectVersion!==void 0&&t.payload.expectVersion!==e.proposalEngine.version())return o("stale-version");let u=tn(e,n,t,r);if(!u.ok)return o(u.reason);let p=Hi(e,t,u.selection);return "reason"in p?o(p.reason):{status:"ready",prepared:{command:structuredClone(t),selection:u.selection,range:u.range,table:p.target}}}let d=tn(e,n,l?{...t,payload:{selection:l}}:t,r);if(!d.ok)return o(d.reason);if(t.kind==="navigateCell"){let u=Bi(e,d.selection,t.payload,a);return u==="read-only"?o("read-only"):u?{status:"ready",prepared:{command:structuredClone(t),selection:d.selection,range:d.range,cellNavigation:u}}:o("invalid-cell-target")}if(t.kind==="select")return {status:"ready",prepared:{command:structuredClone(l?{...t,payload:{selection:l}}:t),selection:d.selection,range:d.range,cells:Vn(e,d.selection.focus.story)}};if(a)return o("read-only");if(i$3(t.kind,"suggesting"in t.payload&&t.payload.suggesting!==void 0))return o("unsupported-suggesting");if(t.kind==="insertPageBreak"||t.kind==="insertSectionBreak"){if(d.range.story!=="body")return o("invalid-selection");let u=e.geometryReader.paragraphSpans("body").findIndex(x=>x.paraId===d.range.start.paraId),p=f$8(e.paragraphSegments("body",[u])[0]??[]);if(d.range.start.offset<p)return o("invalid-selection");if(t.kind==="insertSectionBreak"){let x=Qn(e,{story:"body",...d.range.start});return x?{status:"ready",prepared:{command:structuredClone(t),selection:d.selection,range:d.range,sectionBreakProperties:x}}:o("invalid-selection")}}if(t.kind==="toggleList"||t.kind==="changeIndent")return {status:"ready",prepared:{command:structuredClone(t),selection:d.selection,range:d.range,paragraphChanges:Mi(e,d.range,t.payload)}};let m=d.range;if((t.kind==="insertText"||t.kind==="replaceSelection"||t.kind==="lineBreak")&&n.storedMarks&&(typeof n.storedMarks.clear!="boolean"||!Pl(n.storedMarks.delta)))return o("invalid-stored-marks");if(t.kind==="deleteBackward"||t.kind==="deleteForward"){let u=m.story,p=new Map,x=(f,h)=>f!==u?e.paragraphSegments(f,h):h.map(b=>{let v=p.get(b);return v===void 0&&(v=e.paragraphSegments(u,[b])[0]??[],p.set(b,v)),v});if(bt(m)){let f=g$5({paragraphSpans:h=>e.geometryReader.paragraphSpans(h),paragraphSegments:x},{story:m.story,...m.start},t.kind==="deleteBackward"?"backward":"forward");if(f)return {status:"ready",prepared:{command:structuredClone(t),selection:{anchor:f,focus:f},range:{story:f.story,start:{paraId:f.paraId,offset:f.offset},end:{paraId:f.paraId,offset:f.offset}}}}}let g=hd(e,m,t.kind==="deleteBackward",t.payload.count??1,t.kind==="deleteForward"&&t.payload.suggesting!==void 0,x);if(!g)return o("unsupported-delete-target");m=g;}return {status:"ready",prepared:{command:structuredClone(t),selection:d.selection,range:m}}}function rn(e,n){return !!e&&["anchor","focus"].every(t=>e[t].story===n[t].story&&e[t].paraId===n[t].paraId&&e[t].offset===n[t].offset)}var bd=new Set(["insertText","replaceSelection","deleteBackward","deleteForward","paragraphBreak","lineBreak"]);function Rl(e,n,t){n.selection&&bd.has(t)&&ds(e,Vn(e,n.selection.focus.story));}function ds(e,n){try{n?e.setCellSelection(n):e.clearCellSelection();}catch(t){if(t instanceof WebAssembly.RuntimeError)throw t}}function Ml(e,n){if(!e.geometryReader.hasStory(n.story))return null;let t=e.geometryReader.paragraphSpans(n.story),r=t.findIndex(o=>o.paraId===n.paraId);if(r<0)return null;let s=f$8(e.paragraphSegments(n.story,[r])[0]??[]);return {...n,offset:Math.min(t[r].length,Math.max(s,n.offset))}}function us(e,n){let t=$e(e),r=e.clearCellSelection(),s=new Map,o=p=>{let x=p==="body"||p.startsWith("body:")?"body":p.split(":").slice(0,2).join(":");return s.has(x)||s.set(x,u(e.geometryReader,x)),s.get(x)},a=p=>{let x=Ml(e,p);return x&&o(p.story)?.positionForLoc(p)!=null?x:null},i=n.selection?ze(e,n):null,l=i?.ok&&rn({anchor:i.selection.anchor,focus:i.selection.anchor},i.selection),d=i?.ok&&[i.selection.anchor,i.selection.focus].every(p=>{let x=a(p);return x&&(!l||x.offset===p.offset)})?i.selection:null;if(!d){let p=n.selection?.focus,x=[];for(let g=p?.story;g;g=g.includes(":")?g.slice(0,g.lastIndexOf(":")):void 0)x.push(g);x.includes("body")||x.push("body");for(let g of x){if(!e.geometryReader.hasStory(g))continue;let f=r?.story===g?a(r):p?.story===g?a(p):null;for(let h of f?[]:e.geometryReader.paragraphSpans(g))if(f=a({story:g,paraId:h.paraId,offset:0}),f)break;if(f){d={anchor:f,focus:f};break}}}if(!d)return false;let m=!rn(n.selection,d);e.setSelection(d.anchor,d.focus),n.selection=Et(e,n,d);let u$1=o(d.focus.story)?.allTables()??[];for(let p of u$1){let x=p.cells.find(b=>b.story===d.focus.story);if(!x)continue;let g={story:p.story,tableIndex:p.tableIndex,row:x.row,column:x.column},f=t?.head,h=f?.story===g.story&&f.tableIndex===g.tableIndex&&f.row===g.row&&f.column===g.column;e.setCellSelection(h?t:{anchor:g,head:g});break}return m&&(n.storedMarks=null),n.activePart&&!e.geometryReader.hasStory(n.activePart.story)&&(n.activePart=null),true}function xd(e){if(typeof e.hangingIndent!="boolean")return e;let{hangingIndent:n,...t}=e;return {...t,other:{hangingIndent:n,...e.other}}}function kd(e,n){switch(e.type){case "bold":case "italic":case "underline":return {[e.type]:n[e.type]!==true};case "superscript":return {other:{superscript:n.superscript!==true,...n.superscript!==true?{subscript:false}:{}}};case "subscript":return {other:{subscript:n.subscript!==true,...n.subscript!==true?{superscript:false}:{}}};case "fontSize":return {fontSize:e.value};case "fontFamily":return {fontFamily:{ascii:e.value,hAnsi:e.value}};case "color":return {color:{rgb:e.value}}}}function Sd(e,n,t,r,s){let{inputTime:o,lastInputTime:a}=t.command;if(o===void 0)return Il(e,n,t,r,s);e.setUndoInputTime([o,a??o]);try{return Il(e,n,t,r,s)}finally{e.setUndoInputTime(null);}}function Il(e,n,t,r,s){let{command:o,range:a,selection:i}=t,l=(f,h)=>{n.activePart&&n.selection&&n.selection.focus.story!==n.activePart.story&&!n.selection.focus.story.startsWith(`${n.activePart.story}:`)&&(n.activePart=null);let b=n.selection?ze(e,n):null;return {status:f,selection:b?.ok?b.selection:null,editState:Mr(e,n,b,h)}};if(o.kind==="setRenderEnvironment"){let{reservations:f,...h}=o.payload,b=f?.version===e.proposalEngine.version();return s.setRenderEnvironment(f?{...h,reservations:b?O(e.geometryReader,f,e.proposalEngine.version(),s?.getLayoutReservations?.()??null):M(f,s?.getLayoutReservations?.()??null)}:h,f?b?{version:f.version,key:f.key??null}:null:void 0),l("noop")}if(o.kind==="applyEdits"){let f=Pi(e,n,o.payload),h=l(f.ok&&f.applied?"applied":"noop");return h.editState.batch={seq:o.seq,result:f},f.ok?h:{...h,status:"refused",reason:f.failure.code}}if(o.kind==="setFontEnvironment")return l("noop");if(o.kind==="setContentControlValue"||o.kind==="addRepeatingItem"||o.kind==="removeRepeatingItem"){let f=qo(e,o.payload.handle);if(!f)return {...l("noop"),status:"refused",reason:"stale-control"};let h=e.proposalEngine.version();e.beginUndoCapture(),e.addUndoBoundary();try{if(o.kind==="setContentControlValue")e.setControlValue(f.at,o.payload.value);else if(e.repeatControlAt(f.at,o.kind==="removeRepeatingItem"),n.selection&&!e.geometryReader.hasStory(n.selection.focus.story)){let b=f.at.story.startsWith("body")?"body":f.at.story.split(":").slice(0,2).join(":"),v=e.geometryReader.paragraphSpans(b)[0];if(!v)throw new Error("Control removal has no caret target");let R={story:b,paraId:v.paraId,offset:0};e.setSelection(R,R),n.selection=Et(e,n,{anchor:R,focus:R}),n.storedMarks=null;}}catch(b){if(b instanceof WebAssembly.RuntimeError||e.proposalEngine.version()!==h)throw b;return {...l("noop"),status:"refused",reason:typeof b=="string"?b:b instanceof Error?b.message:"invalid-control-value"}}finally{e.addUndoBoundary();}return l(e.proposalEngine.version()!==h?"applied":"noop")}if(o.kind==="openPart"||o.kind==="ensurePart"||o.kind==="removePart"){let f=zn(e,o.payload),h=false,b=v=>{let R=e.geometryReader.paragraphSpans(v)[0];if(!R)throw new Error("Part has no caret target");let w={story:v,paraId:R.paraId,offset:0};e.setSelection(w,w),n.selection=Et(e,n,{anchor:w,focus:w}),n.storedMarks=null;};if(o.kind!=="openPart"&&(e.beginUndoCapture(),e.addUndoBoundary()),o.kind==="ensurePart"&&!f&&(h=e.setPartDocument(Qo(e,o.payload)),f=zn(e,o.payload)),o.kind==="removePart"){let v=Zi(e,o.payload);if(!v||!f)return {...l("noop"),status:"refused",reason:"unsupported-part"};b("body"),n.activePart=null,h=e.setPartDocument(v,[f.story]);}else {if(!f)throw new Error("Part creation did not resolve");b(f.story),n.activePart=f,Ni(e,f.story,f.page);}return o.kind!=="openPart"&&e.addUndoBoundary(),l(h?"applied":"noop")}if(Kn(o.kind))return l(hl(e,o).status);if(o.kind==="setSectionMargins"){e.beginUndoCapture(),e.addUndoBoundary();let f=e.setSectionMargins(o.payload.section,o.payload.margins);return e.addUndoBoundary(),l(f?"applied":"noop")}if(o.kind==="moveEmbed"){let f=Ut(e,o.payload.handle);if(!f||!i)return {...l("noop"),status:"refused",reason:"stale-object"};let h=e.proposalEngine.version();e.beginUndoCapture(),e.addUndoBoundary();let b=e.moveEmbed(f,i.focus);if(e.addUndoBoundary(),!b.range)throw new Error("Move receipt lacks range");let v={story:b.range.story,...b.range.start},R={story:b.range.story,...b.range.end};return e.setSelection(v,R),n.selection=Et(e,n,{anchor:v,focus:R}),n.storedMarks=null,ds(e,Vn(e,v.story)),l(e.proposalEngine.version()===h?"noop":"applied")}if(o.kind==="resizeObject"||o.kind==="moveObject"){let f=Ut(e,o.payload.handle);if(!f)return {...l("noop"),status:"refused",reason:"stale-object"};let h=e.proposalEngine.version();if(o.kind==="resizeObject"&&"widthTwips"in o.payload)return f.cell?(e.addUndoBoundary(),e.setColumnWidth(f.cell,o.payload.widthTwips),e.addUndoBoundary(),l(e.proposalEngine.version()===h?"noop":"applied")):{...l("noop"),status:"refused",reason:"stale-object"};let b=e.geometryReader.paragraphSpans(f.story).findIndex(L=>L.paraId===f.paraId),v=0,R=e.paragraphSegments(f.story,[b])[0].find(L=>{let B=v;return v+=L.kind==="text"?L.text.length:1,B===f.offset});if(R?.kind!=="embed")return {...l("noop"),status:"refused",reason:"stale-object"};let w=o.kind==="resizeObject"&&"widthEmu"in o.payload?o.payload:null,P=w?w.widthEmu:Number(R.payload.width??100)*9525,T=w?w.heightEmu:Number(R.payload.height??100)*9525,O=R.payload.position,I=o.kind==="moveObject"?o.payload:w,F=I?.hOffsetEmu!==void 0?{horizontal:{relativeTo:"page",posOffset:I.hOffsetEmu},vertical:{relativeTo:"page",posOffset:I.vOffsetEmu}}:null,_=F?ns(R.payload)?{position:{...O,...F}}:{wrapType:"square",displayMode:"float",cssFloat:"none",position:{...O,behindDoc:false,...F}}:{};return e.addUndoBoundary(),e.setImageGeometryAt(f,{widthEmu:P,heightEmu:T,other:{width:P/9525,height:T/9525,..._}}),e.addUndoBoundary(),l(e.proposalEngine.version()===h?"noop":"applied")}if(o.kind==="replaceMatches"){if(!o.payload.targets.length)return l("noop");e.beginUndoCapture();let f=o.payload.suggesting,h=e.proposalEngine.applyEdits({expectVersion:o.payload.expectVersion,history:"separate",steps:o.payload.targets.map(b=>({op:"replaceText",target:{kind:"range",...b},text:o.payload.text,...f?{suggest:{author:f.name,date:f.date}}:{}}))});return h.ok?(h.applied&&(n.storedMarks=null),l(h.applied?"applied":"noop")):{...l("noop"),status:"refused",reason:h.failure.code}}if(o.kind==="undo"||o.kind==="redo"){let f=e.selection()?.head??null,h=f?Vi(e,f.story):[],b=h.map(U=>Go(e,U)).filter(U=>!!U);if(e.addUndoBoundary(),!(o.kind==="undo"?e.undo():e.redo()))return l("noop");if(n.storedMarks=null,n.activePart&&!e.geometryReader.hasStory(n.activePart.story)){let U=e.geometryReader.paragraphSpans("body")[0];if(U){let J={story:"body",paraId:U.paraId,offset:0};e.setSelection(J,J),n.selection=Et(e,n,{anchor:J,focus:J});}n.activePart=null;}let R=n.selection?ze(e,n):null,w=n.selection?.focus.story,P=!w||e.geometryReader.hasStory(w)?e.selection():null,T=R?.ok?R.selection:P&&Ie(e,{anchor:P.anchor,focus:P.head})?{anchor:P.anchor,focus:P.head}:null,O=w&&w!=="body"&&!w.startsWith("body:")?w.split(":").slice(0,2).join(":"):"body",I=e.geometryReader.hasStory(O)?O:"body",F=b.map(U=>Ml(e,U)).find(U=>!!U)??null,_=T?null:e.geometryReader.paragraphSpans(I)[0],L=_?{story:I,paraId:_.paraId,offset:0}:null,B=T??(F?{anchor:F,focus:F}:null)??(L?{anchor:L,focus:L}:null);return n.selection=B?Et(e,n,B):null,n.selection&&(e.setSelection(n.selection.anchor,n.selection.focus),h.length&&$o(e,n.selection.focus.story)),l("applied")}if(Object.hasOwn(ct,o.kind)){let f=Di(e,n,o);if(f.status==="refused")return {...l("noop"),...f};us(e,n),n.storedMarks=null;let h=l(f.status);return f.comment&&(h.editState.comment={seq:o.seq,...f.comment}),f.commentChange&&(h.editState.commentChange={seq:o.seq,...f.commentChange}),h}if(o.kind==="setReadOnly")return n.readOnly=o.payload.readOnly,l("noop");if(!a||!i)throw new Error("Prepared command lacks selection");let d=n.selection?ze(e,n):null,m=d?.ok?d.selection:null,u=(f,h=false)=>{(h||!rn(n.selection,f))&&(e.setSelection(f.anchor,f.focus),n.selection=Et(e,n,f));};if(o.kind==="navigateCell"){if(!t.cellNavigation)throw new Error("Prepared command lacks cell navigation");let f=Ji(e,t.cellNavigation,o.payload);return n.storedMarks=null,u(f,true),l(t.cellNavigation.insertRow?"applied":"noop")}if(o.kind==="select"||o.kind==="navigate"||o.kind==="selectPoint"||o.kind==="extendSelection"||o.kind==="selectTableCells")return rn(m,i)||(n.storedMarks=null),t.cells!==void 0&&ds(e,t.cells),u(i,true),l("noop");if(n.storedMarks&&(n.storedMarks.story!==i.focus.story||n.storedMarks.paraId!==i.focus.paraId||!rn(m,i)||i.anchor.paraId!==i.focus.paraId||i.anchor.offset!==i.focus.offset)&&(n.storedMarks=null),u(i),bt(a)&&["toggleMark","toggleStrike","formatRange","formatSelection","clearFormatting"].includes(o.kind)){let f=n.storedMarks,h=o.kind==="toggleMark"||o.kind==="toggleStrike"?e.selectionContext(a):void 0,b=o.kind==="toggleStrike"?{strike:Dr(h,f).strike!==true}:o.kind==="toggleMark"?kd(o.payload.mark,Dr(h,f)):o.kind==="formatRange"||o.kind==="formatSelection"?o.payload.delta:{};return n.storedMarks={story:a.story,paraId:a.start.paraId,clear:o.kind==="clearFormatting"||(f?.clear??false),delta:o.kind==="clearFormatting"?{}:{...f?.delta,...b,...f?.delta.other||b.other?{other:{...f?.delta.other,...b.other}}:{}}},l("noop",h)}if(Rl(e,n,o.kind),(o.kind==="insertText"||o.kind==="replaceSelection")&&o.payload.text===""&&bt(a)||(o.kind==="deleteBackward"||o.kind==="deleteForward")&&bt(a)||(o.kind==="formatRange"||o.kind==="formatSelection")&&Object.keys(o.payload.delta).length===0||o.kind==="setParagraphAttrs"&&Object.keys(o.payload.attrs).length===0)return l("noop");let p=e.proposalEngine.version();e.beginUndoCapture();let x=["setTabStops","removeTabStop","toggleList","changeIndent","insertImage","moveEmbed","insertTable","pasteFragment","insertPageBreak","insertSectionBreak","lineBreak"].includes(o.kind)||Ho(o.kind);x&&e.addUndoBoundary();let g=f=>u({anchor:f,focus:f},true);switch(o.kind){case "setTabStops":e.setParagraphAttrs(a,{tabs:o.payload.tabs});break;case "removeTabStop":{let f=e.paragraphs(a.story),h=f.findIndex(v=>v.paraId===a.start.paraId),b=f.findIndex(v=>v.paraId===a.end.paraId);for(let v of f.slice(h,b+1)){let R=as(v.properties.tabs);if(!R.some(P=>P.position===o.payload.positionTwips))continue;let w={paraId:v.paraId,offset:0};e.setParagraphAttrs({story:a.story,start:w,end:w},{tabs:R.filter(P=>P.position!==o.payload.positionTwips)});}break}case "insertText":case "replaceSelection":{let f=bt(a)?e.insertText({story:a.story,...a.start},o.payload.text,o.payload.suggesting):e.replaceRange(a,o.payload.text,o.payload.suggesting);if(!f.range)throw new Error("Text receipt lacks range");let h=n.storedMarks;h&&o.payload.text&&!bt(f.range)&&(h.clear&&e.clearFormatting(f.range),Object.keys(h.delta).length&&e.formatRange(f.range,h.delta)),g({story:f.range.story,...f.range.end});break}case "deleteBackward":case "deleteForward":{let f=e.deleteRange(a,o.payload.suggesting);if(!f.range)throw new Error("Delete receipt lacks range");n.storedMarks&&(n.storedMarks.story!==f.range.story||n.storedMarks.paraId!==f.range.start.paraId)&&(n.storedMarks=null);let h=o.kind==="deleteForward"&&o.payload.suggesting!==void 0&&i.anchor.story===i.focus.story&&i.anchor.paraId===i.focus.paraId&&i.anchor.offset===i.focus.offset;g({story:f.range.story,...h?f.range.end:f.range.start});break}case "lineBreak":{let f={story:a.story,...a.start};if(!bt(a)){let v=e.deleteRange(a,o.payload.suggesting);if(!v.range)throw new Error("Delete receipt lacks range");f={story:v.range.story,...v.range.start};}let h=e.insertLineBreak(f,o.payload.suggesting);if(!h.range)throw new Error("Line break receipt lacks range");let b=n.storedMarks;b&&(b.clear&&e.clearFormatting(h.range),Object.keys(b.delta).length&&e.formatRange(h.range,b.delta)),g({story:h.range.story,...h.range.end});break}case "paragraphBreak":{let f={story:a.story,...a.start};if(!bt(a)){let R=e.deleteRange(a,o.payload.suggesting);if(!R.range)throw new Error("Delete receipt lacks range");f={story:R.range.story,...R.range.start};}let h=e.nextParagraphStyle(f),b=e.splitParagraph(f,o.payload.suggesting),v={story:f.story,paraId:b.secondParaId,offset:0};h?(e.applyParagraphStyle({story:f.story,start:v,end:v},h),n.storedMarks=null):n.storedMarks&&(n.storedMarks={...n.storedMarks,story:f.story,paraId:b.secondParaId}),g(v);break}case "toggleList":case "changeIndent":for(let f of t.paragraphChanges??[])e.setParagraphAttrs(f.range,f.attrs,o.payload.suggesting);break;case "insertImage":case "insertTable":case "insertPageBreak":case "insertSectionBreak":{let f={story:a.story,...a.start};if(!bt(a)){let h=e.deleteRange(a,o.payload.suggesting);if(!h.range)throw new Error("Delete receipt lacks range");f={story:h.range.story,...h.range.start};}if(n.storedMarks=null,o.kind==="insertImage"){let h=e.insertImage(f,o.payload.image,o.payload.suggesting);if(!h.range)throw new Error("Image receipt lacks range");g({story:h.range.story,...h.range.end});}else if(o.kind==="insertTable"){let h=e.insertTable(f,o.payload.rows,o.payload.columns,o.payload.suggesting),b=h.createdStoryIds[0],v=b?e.paragraphs(b)[0]:void 0;if(!b||!v)throw new Error("Table receipt lacks cell");let R={...h.table,row:0,column:0};e.setCellSelection({anchor:R,head:R}),g({story:b,paraId:v.paraId,offset:0});}else if(o.kind==="insertPageBreak"){let h=e.insertPageBreak(f);g({...h,offset:h.offset+1});}else {let h=bt(a)?t.sectionBreakProperties:Qn(e,f);if(!h)throw new Error("Prepared command lacks section properties");g(e.splitSection(f,h,o.payload.type));}break}case "insertTableRow":case "insertTableColumn":case "deleteTableRow":case "deleteTableColumn":case "deleteTable":case "mergeTableCells":case "splitTableCell":case "setTableCellShading":case "setTableBorders":case "setTableProperties":{if(!t.table)throw new Error("Prepared command lacks table target");let f=i.focus;$i(e,n,t.command,t.table,{story:f.story,paraId:f.paraId,offset:f.offset},{caret:g,repair:()=>us(e,n)});break}case "toggleStrike":e.formatRange(a,{strike:e.selectionContext(a).strike!==true});break;case "pasteFragment":{n.storedMarks=null,g(n$2(e,a,o.payload.fragment,o.payload.suggesting));break}case "toggleMark":e.toggleMark(a,o.payload.mark);break;case "formatSelection":case "formatRange":e.formatRange(a,o.payload.delta);break;case "clearFormatting":e.clearFormatting(a);break;case "setParagraphAttrs":e.setParagraphAttrs(a,xd(o.payload.attrs),o.payload.suggesting);break;case "applyParagraphStyle":e.applyParagraphStyle(a,o.payload.styleId,o.payload.suggesting);break}return Rl(e,n,o.kind),x&&e.addUndoBoundary(),l(e.proposalEngine.version()===p?"noop":"applied")}var Ol=(e,n$1,t)=>{let r=n$1.recoveryState,s=e.selection(),o=!s&&n$1.selection===void 0&&e.geometryReader.hasStory("body")?e.geometryReader.paragraphSpans("body")[0]:void 0,a=o?{story:"body",paraId:o.paraId,offset:0}:null,i={readOnly:n$1.readOnly,selection:r?structuredClone(r.selection):n$1.selection!==void 0?n$1.selection:s?{anchor:s.anchor,focus:s.head}:a?{anchor:a,focus:a}:null,storedMarks:structuredClone(r?.storedMarks??null),activePart:structuredClone(r?.activePart),stickyPositions:new Map(structuredClone(r?.stickyPositions??[])),proposals:t?.proposals??n(e.proposalEngine)};if(r&&(i.proposals.mirror({version:e.proposalEngine.version(),proposals:r.proposals}),i.proposals.mirror(null)),i.selection){let u={anchor:{story:i.selection.anchor.story,paraId:i.selection.anchor.paraId,offset:i.selection.anchor.offset},focus:{story:i.selection.focus.story,paraId:i.selection.focus.paraId,offset:i.selection.focus.offset}};if(!Ie(e,u))throw new Error("Invalid initial command selection");e.setSelection(u.anchor,u.focus),i.selection=Et(e,i,u);}r?.cellSelection&&e.setCellSelection(r.cellSelection),ai(e,i);let l=null,d=u=>(l={version:`${e.proposalEngine.version()}:${i.proposals?.snapshot().previewVersion}`,selection:u.selection??null,editState:u.editState},u),m=()=>{if(i.activePart&&!e.geometryReader.hasStory(i.activePart.story)){let u=e.geometryReader.paragraphSpans("body")[0];if(u){let p={story:"body",paraId:u.paraId,offset:0};e.setSelection(p,p),i.selection=Et(e,i,{anchor:p,focus:p});}i.activePart=null;}if(!l||l.version!==`${e.proposalEngine.version()}:${i.proposals?.snapshot().previewVersion}`){let u=i.selection?ze(e,i):null;d({status:"noop",selection:u?.ok?u.selection:null,editState:Mr(e,i,u)});}return l};return {preflight:(u,p)=>{if(u.basis.epoch!==n$1.epoch&&ps(u.kind)?.origin!=="remote")return {status:"refused",reason:"stale-epoch",selection:m().selection,editState:m().editState};let x=Dl(e,i,u,p,t);return x.status==="refused"&&d(x),x},apply:(u,p)=>d(Sd(e,i,u,p,t)),afterRemoteMerge:u=>{i.proposals?.reconcile();let p=i.remoteMerges,x=i.storedMarks,g=i.selection?ze(e,i):null;us(e,i);let f=g?.ok&&rn(i.selection,g.selection);i.remoteMerges=f?{from:p?.to===u.currentVersion?p.from:u.currentVersion,to:u.currentVersion+1}:void 0,i.storedMarks=f&&x&&i.selection&&rn({anchor:i.selection.anchor,focus:i.selection.anchor},i.selection)?{...x,story:i.selection.focus.story,paraId:i.selection.focus.paraId}:null;},selection:()=>m().selection,editState:()=>m().editState,recoveryState:()=>({selection:m().selection,storedMarks:i.storedMarks,activePart:i.activePart,stickyPositions:[...i.stickyPositions],cellSelection:$e(e),proposals:i.proposals.exportState()})}};var Xn=16*1024,fs=new TextEncoder;function ms(e){let n=e.codePointAt(0);return n<=127?1:n<=2047?2:n<=65535?3:4}function ys(e){let{engine:n,selection:t,layout:r}=e;if(!t||t.anchor.story!=="body"||t.focus.story!=="body"||t.anchor.paraId!==t.focus.paraId)return;let s=n.residentCaretSnapshot(),o=s.caretRect;if(!o||s.frameEpoch!==r.frame.frameEpoch)return;let a=r.frame.pages[o.pageIndex];if(!a||a.pageId.toString()!==o.pageId||a.page.unbuilt)return;let i;try{let h=n.geometryReader.locateParagraph("body",t.focus.paraId);i=h.end-h.start;}catch{return}if(!Number.isSafeInteger(i)||i<=0||i>Xn)return;let l=n.proposalEngine.readParagraphs({story:"body",paraIds:[t.focus.paraId],view:"accepted"}),d=l.ok?l.paragraphs[0]:void 0;if(!d||d.paraId!==t.focus.paraId||d.atoms.length||!d.text||fs.encode(d.text).byteLength>Xn||/[\u0000-\u001f\u007f\u0590-\u109f\u200e-\u200f\u202a-\u202e\u2066-\u2069]/u.test(d.text))return;let m=new Set,u=0,p=0,x=h=>h.glyphs.some(b=>b.y>=o.y&&b.y<=o.y+o.height);for(let h of a.page.primitives){if(h.kind!=="glyphRun"||h.docStart===void 0||h.listMarker||!x(h))continue;if(u+=h.text.length,p+=h.glyphs.length,u>Xn||p>Xn/16)return;let b=new Map,v=0,R=0;for(let w of h.text)b.set(v,R),v+=ms(w),R+=w.length;b.set(v,R);for(let w=0;w<h.glyphs.length;w+=1){let P=h.glyphs[w];if(P.y<o.y||P.y>o.y+o.height)continue;let T=b.get(P.cluster);T!==void 0&&Math.abs(P.x-o.x)<.01&&m.add(h.docStart+T-t.focus.offset);let O=h.glyphs[w+1],I=O?b.get(O.cluster):h.text.length;I!==void 0&&P.advance!==void 0&&Math.abs(P.x+P.advance-o.x)<.01&&m.add(h.docStart+I-t.focus.offset);}}if(m.size!==1)return;let g=m.values().next().value,f=g+d.text.length;for(let h of [a]){if(h.page.unbuilt)continue;let b=h.page.primitives.filter(N=>N.kind==="glyphRun"&&N.docStart!==void 0&&N.docEnd!==void 0&&N.docStart>=g&&N.docEnd<=f&&!N.listMarker&&x(N));if(b.sort((N,j)=>N.docStart-j.docStart),!b.length)continue;let v=b[0].docStart,R=b.at(-1).docEnd,w=v-g,P=d.text.slice(w,R-g);if(b.map(N=>N.text).join("")!==P)continue;let T=v,O,I=-1/0,F=new Map,_=[],L=true;for(let N of b){if(N.docStart!==T||N.docEnd!==T+N.text.length||!N.glyphs.length||N.rtl||N.bidiLevel||N.rotationDeg||N.horizontalScale&&N.horizontalScale!==100||N.allCaps||N.smallCaps||N.hidden||N.opacity!==void 0&&N.opacity!==1||N.wordSpacing||N.paintClip||N.clipGroup||N.modernEffects||N.textShadow||N.textOutline||N.emphasisMark||N.textEffect||N.leaderGlyphs||N.revision){L=false;break}let j=/^(.*?)\b(\d+(?:\.\d+)?)px\s+(.+)$/.exec(N.fallbackFont??"");if(!j||!Number.isFinite(N.size)||N.size<=0){L=false;break}let pe=new Map,ye=0,se=0;for(let M of N.text)pe.set(ye,se),ye+=ms(M),se+=M.length;pe.set(ye,se);let te=T-v,D=-1/0;for(let M of N.glyphs){let c=pe.get(M.cluster);if(O??(O=M.y),c===void 0||M.advance===void 0||M.advance<0||M.bidiLevel||M.y!==O||M.x<D||!Number.isFinite(M.x+M.y+M.advance)){L=false;break}F.has(te+c)||F.set(te+c,M.x),D=M.x,I=Math.max(I,M.x+M.advance);}F.set(te+N.text.length,I),_.push({startUtf16:te,endUtf16:te+N.text.length,fontFamily:j[3],fontSizePx:N.size,color:N.color,bold:/\bbold\b|\b[6-9]00\b/.test(j[1]),italic:/\bitalic\b|\boblique\b/.test(j[1]),underline:false,strike:false,baseline:{x:N.glyphs[0].x,y:N.glyphs[0].y},transform:[1,0,0,1,0,0]}),T=N.docEnd;}if(!L||O===void 0)continue;let B=[...new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(P)].map(N=>N.index).concat(P.length);if(B.some(N=>!F.has(N)))continue;let U=B.indexOf(t.anchor.offset-w),J=B.indexOf(t.focus.offset-w);if(U<0||J<0)return;let z=Math.max(..._.map(N=>N.fontSizePx)),ee=F.get(0),oe=Math.max(0,O-z),A=Math.min(h.page.height-oe,z*1.5),Q=h.page.contentBounds?h.page.contentBounds.x+h.page.contentBounds.width:h.page.width,C=Q,W=new Set(b),$=new Set;for(let N=0;N<h.page.primitives.length;N+=1){let j=h.page.primitives[N];if(j.kind==="glyphRun"&&W.has(j)&&$.add(N),j.kind==="decoration"&&(j.deco==="underline"||j.deco==="strike")&&j.docStart!==void 0&&j.docEnd!==void 0&&j.docStart>=v&&j.docEnd<=R){$.add(N);for(let pe of _)j.docStart<v+pe.endUtf16&&j.docEnd>v+pe.startUtf16&&(j.deco==="underline"?pe.underline=true:pe.strike=true);}(j.kind==="image"||j.kind==="shape")&&j.y<oe+A&&j.y+j.h>oe&&j.x+j.w>ee&&(C=Math.min(C,j.x)),(j.kind==="text"&&j.text!==""||j.kind==="glyphRun")&&!$.has(N)&&(j.kind==="text"?Math.abs(j.baselineY-O)<z:j.glyphs.some(pe=>Math.abs(pe.y-O)<z))&&(L=false);}if(!L||C<I||C<=ee||A<=0)continue;let G={pageId:h.pageId.toString(),pageIndex:h.pageIndex},Z={x:ee,y:oe,width:C-ee,height:A},K;if(e.glyphs){let N=Rd({provider:e.glyphs,retained:h,runs:b,omitted:$,text:P,baseline:O,edge:C,obstructed:C<Q,paragraphText:d.text,lineOffset:w,start:v,end:R,paragraphStart:g,paragraphEnd:f});if(!N)return;({line:K,rect:Z}=N);}let ae={page:G,frameEpoch:r.frame.frameEpoch,layoutRevision:r.layoutRevision,serializedBytes:0,text:P,styleRuns:vd(_),selection:{anchorGrapheme:U,focusGrapheme:J},boundaries:B.map((N,j)=>({utf16:N,grapheme:j,caret:{x:F.get(N),y:oe,width:1,height:A}})),transform:[1,0,0,1,0,0],shaping:"simple-ltr",damage:[{page:G,rect:Z,backgroundId:`${r.frame.frameEpoch}:${G.pageId}:echo`,omittedPrimitiveIds:[...$].sort((N,j)=>N-j).map(N=>h.primitiveIds[N].toString())}],...K?{glyphs:K}:{}},fe=fs.encode(JSON.stringify(ae)).byteLength;for(;fe!==ae.serializedBytes;)ae.serializedBytes=fe,fe=fs.encode(JSON.stringify(ae)).byteLength;return fe<=Xn?ae:void 0}}function vd(e){let n=[];for(let t of e){let r=n.at(-1);r&&r.endUtf16===t.startUtf16&&r.fontFamily===t.fontFamily&&r.fontSizePx===t.fontSizePx&&r.color===t.color&&r.bold===t.bold&&r.italic===t.italic&&r.underline===t.underline&&r.strike===t.strike&&r.baseline.y===t.baseline.y&&r.transform.every((s,o)=>s===t.transform[o])?r.endUtf16=t.endUtf16:n.push({...t});}return n}var wd=/^(italic )?(400|700) (\d+(?:\.\d+)?)px (.+), sans-serif$/;function Rd(e){let{provider:n,retained:t,runs:r,text:s,baseline:o}=e,a=r[0],i=a.echo,l=i?.kern??false;if(!i||i.primaryFont===false||r.some(C=>!C.echo||C.echo.primaryFont===false||C.echo.x!==i.x||C.echo.right!==i.right||(C.echo.kern??false)!==l||(C.echo.kerning??0)!==(i.kerning??0)||C.echo.letterSpacing||C.echo.position||C.echo.scale!==void 0&&C.echo.scale!==100||C.echo.stretch!==void 0||C.echo.centerWidth!==i.centerWidth))return;let d=i.centerWidth;if(d!==void 0&&(e.lineOffset!==0||s.length!==e.paragraphText.length||s.endsWith(" "))||r.some(C=>C.fontId!==a.fontId||C.size!==a.size||C.color!==a.color||C.fallbackFont!==a.fallbackFont)||[...e.omitted].some(C=>t.page.primitives[C].kind!=="glyphRun"))return;let m=wd.exec(a.fallbackFont??""),u=Math.round(a.size*1.5);if(!m||g$4(u/2*96/72)!==a.size)return;let p=Math.fround(Math.fround(u/2*96)/72),x=[],g=[];for(let C of r){let W=0,$=0;for(let G of C.text){let Z=C.glyphs[$];if(!Z||Z.cluster!==W||C.glyphs[$+1]?.cluster===W)return;x.push(Z.id),g.push(Z.x),W+=ms(G),$+=1;}if($!==C.glyphs.length)return}let f=e.paragraphText.codePointAt(e.lineOffset+s.length),h=f===void 0?"":String.fromCodePoint(f),b=n.glyphSet(a.fontId,p,l);if(!b)return;let v,R=b.glyphs.set.glyphIds.length;for(let C of e.paragraphText){let W=b.glyphs.chars.get(C);if(W===void 0||v!==void 0&&b.glyphs.unsafe.has(v*R+W))return;v=W;}let w=t.page,P=i$2(b.glyphs,s,h,i.x,d);if(!P||P.glyphIds.some((C,W)=>C!==x[W])||P.xs.some((C,W)=>C!==g[W])||!Number.isFinite(i.x+i.right)||(e.obstructed?e.edge<i.right:i.right-e.edge>.01)||i.right<=i.x)return;let T={x:i.x},O=i.right,I=T.x;if([...s].forEach((C,W)=>{C!==" "&&(I=P.xs[W]+P.advances[W]);}),I>=O-.5||w.primitives.some((C,W)=>!e.omitted.has(W)&&C.docStart!==void 0&&C.docEnd!==void 0&&C.docStart<e.end&&C.docEnd>e.start))return;let F=(C,W,$)=>w.primitives.filter(G=>G.kind==="glyphRun"&&!G.listMarker&&G.docStart!==void 0&&G.docEnd!==void 0&&G.docStart>=C&&G.docEnd<=W&&G.glyphs.length>0&&($?G.glyphs[0].y<o:G.glyphs[0].y>o)).sort((G,Z)=>G.docStart-Z.docStart),_;if(e.lineOffset>0){let C=F(e.paragraphStart,e.start,true);if(!C.length)return;let W=C.at(-1),$=W.glyphs.at(-1);if(!W.echo)return;if(W.echo.stretch===void 0)_=W.echo.right-($.x+($.advance??0));else {let G=C.filter(ae=>ae.glyphs[0].y===W.glyphs[0].y),Z=b.glyphs.chars.get(" ");if(Z===void 0||G.some(ae=>ae.fontId!==a.fontId||ae.size!==a.size))return;let K=G.reduce((ae,fe)=>ae+[...fe.text].filter(N=>N===" ").length,0);_=W.echo.right-(W.echo.x+W.echo.stretch)+(K/4+1)*b.glyphs.advance(b.glyphs.set.advances[Z]);}}let L;if(e.lineOffset+s.length<e.paragraphText.length){let C=F(e.end,e.paragraphEnd,false);L=0;for(let W of C){if(W.glyphs[0].y!==C[0].glyphs[0].y||!/^[A-Za-z0-9]+$/.test(W.text))break;L+=W.glyphs.reduce(($,G)=>$+(G.advance??0),0);}}let B={xMin:Math.min(0,b.ink.xMin/b.ink.upem),yMin:Math.min(0,b.ink.yMin/b.ink.upem),yMax:Math.max(0,b.ink.yMax/b.ink.upem),overhang:Math.max(0,b.ink.overhang/b.ink.upem)},U=n.pixelRatio,J=Math.floor(((d===void 0?g[0]:T.x)+B.xMin*a.size)*U)-1,z=Math.floor((o-B.yMax*a.size)*U)-1,ee=Math.ceil((Math.max(O,P.end)+B.overhang*a.size)*U)+1,oe=Math.ceil((o-B.yMin*a.size)*U)+1,A={x:Math.max(0,J),y:Math.max(0,z),width:Math.min(Math.ceil(w.width*U),ee)-Math.max(0,J),height:Math.min(Math.ceil(w.height*U),oe)-Math.max(0,z)};if(A.width<=0||A.height<=0)return;let Q={x:A.x/U,y:A.y/U,w:A.width/U,h:A.height/U};if(!Id(n,w,e.omitted,Q))return {line:{glyphSet:b.key,fontId:a.fontId,size:a.size,color:a.color,x:T.x,y:o,next:h,right:O,...d===void 0?{}:{center:d},...i.canEmpty===void 0?{}:{canEmpty:i.canEmpty},..._===void 0?{}:{previousSlack:_},...L===void 0?{}:{nextWord:L},device:A,pixelRatio:U},rect:{x:Q.x,y:Q.y,width:Q.w,height:Q.h}}}function Id(e,n,t,r){let s=1/e.pixelRatio,o=l=>l.x-s<r.x+r.w&&l.x+l.w+s>r.x&&l.y-s<r.y+r.h&&l.y+l.h+s>r.y,a=l=>{if(l.kind==="text"&&l.text==="")return false;if(l.kind!=="glyphRun"){let m=e$5(l),u=l.kind==="shape"||l.kind==="image"||l.kind==="text"?Math.max(m.h,16):0;return o({x:m.x-u,y:m.y-u,w:m.w+2*u,h:m.h+2*u})}let d=e$5(l);return o({x:d.x-l.size,y:d.y-l.size,w:d.w+2*l.size,h:d.h+2*l.size})?l.glyphs.some(m=>{let u=e.glyphInk(l.fontId,m.id);if(u===null)return false;if(!u)return true;let p=l.size/u.upem;return o({x:m.x+u.xMin*p,y:m.y-u.yMax*p,w:(u.xMax-u.xMin)*p,h:(u.yMax-u.yMin)*p})}):false},i=Math.min(...t);for(let l=i+1;l<n.primitives.length;l+=1)if(!t.has(l)&&a(n.primitives[l]))return true;for(let l of n.noteAreas??[])for(let d of [...l.separatorPrimitives??[],...l.primitives??[]])if(a(d))return true;return (n.pageBorders??[]).some(l=>l.zOrder!=="back"&&o({x:l.x,y:l.y,w:l.w,h:l.h}))}var Yr=class{constructor(n,t){b$6(this,"engine",n);b$6(this,"generation",t);b$6(this,"sets",new Map);b$6(this,"inks",new Map);b$6(this,"shipped",new Set);}resend(){this.shipped.clear();}provider(n,t=false){return {pixelRatio:n,glyphSet:(r,s,o)=>{if(!t)return this.glyphSet(r,s,o);let a=this.sets.get(`${this.generation}:${r}:${s}:${o?1:0}`);return a&&this.shipped.has(a.payload.key)?a.source:void 0},glyphInk:(r,s)=>t?this.inks.get(`${r}:${s}`):this.glyphInk(r,s)}}unsent(n){let t=n?.glyphs?.glyphSet,r=t===void 0?void 0:this.sets.get(t);return r&&!this.shipped.has(r.payload.key)?[r.payload]:[]}sent(n){for(let t of n)this.shipped.add(t.key);}glyphSet(n,t,r){let s=`${this.generation}:${n}:${t}:${r?1:0}`;return this.sets.has(s)||this.sets.set(s,this.build(s,n,t,r)),this.sets.get(s)?.source}build(n,t,r,s){try{let o=JSON.parse(this.engine.echoGlyphSetJson(t,r,s,e$8)),a={},i={upem:0,xMin:0,yMin:0,yMax:0,overhang:0};if(o.glyphIds.forEach((d,m)=>{if(!d)return;let u=a[d]??(a[d]=this.engine.outlineGlyphJson(t,d)),p=this.glyphInk(t,d,u);if(p===void 0)throw new Error("Echo glyph outline is unavailable");i.upem=JSON.parse(u).upem,p&&(i.xMin=Math.min(i.xMin,p.xMin),i.yMin=Math.min(i.yMin,p.yMin),i.yMax=Math.max(i.yMax,p.yMax),i.overhang=Math.max(i.overhang,p.xMax-o.advances[m]));}),!i.upem)return null;let l={key:n,fontId:t,alphabet:e$8,...o,outlines:a};return {source:{key:n,glyphs:f$7(l),ink:i},payload:l}}catch{return null}}glyphInk(n,t,r){let s=`${n}:${t}`;if(!this.inks.has(s)){let o;try{let a=r??this.engine.outlineGlyphJson(n,t);o=k$3(a)??null;}catch{o=void 0;}this.inks.set(s,o);}return this.inks.get(s)}};function gs(e,n){let t=[],r=o=>{if(!Number.isSafeInteger(o)||o<0||o>=t.length)throw new Error("Invalid DOCX command font slot");return t[o]};for(let o of n){let a;if(o instanceof Uint8Array)try{a=e.registerFont(o);}catch(i){if(i instanceof WebAssembly.RuntimeError)throw i;a=null;}else {let i=r(o.substituteOf);try{a=i===null?null:e.registerSubstituteFont?.(i,o.family)??i;}catch(l){if(l instanceof WebAssembly.RuntimeError)throw l;a=i;}}if(a!==null&&(!Number.isSafeInteger(a)||a<0))throw new Error("Invalid DOCX command font ID");t.push(a);}return {ids:t,remap:(o,a)=>{let i=d=>{if(!(!d||typeof d!="object"))for(let[m,u]of Object.entries(d))if(m==="fontChains"&&u&&typeof u=="object"){let p={};for(let[x,g]of Object.entries(a??u)){if(!Array.isArray(g))throw new Error("Invalid DOCX command font chain");let f=g.map(r).filter(h=>h!==null);f.length&&(p[x]=[...new Set(f)]);}d[m]=p;}else i(u);},l=JSON.parse(o||"{}");return i(l),JSON.stringify(l)}}}function Tl(e,n){let t=new Map;return {resolve:o=>{let a=n?.get(o);if(a)return Promise.resolve(a);let i=t.get(o);return i||(i=(async()=>{let l=/^media:(0|[1-9]\d*)$/.test(o)?e.mediaDataUrl(o):o;return l?.startsWith("data:image/")?createImageBitmap(await(await fetch(l)).blob()):null})().catch(l=>{if(l instanceof WebAssembly.RuntimeError)throw l;return null}),t.set(o,i)),i},close:async()=>{for(let o of await Promise.allSettled(t.values()))o.status==="fulfilled"&&o.value?.close();t.clear();}}}async function Cn(e,n=Cd()){l$2(n),await a(),d$1(e);let t=e$1(l$2(n)),r,s=new Map,o=false,a$1=false,i=false,l=false,d=false,m=new Map,u={host:new Map,resident:new Map},p=null,x=new Map,g=[],f,h=0,b=c=>{if(c){s.clear();for(let[E,q]of c.aliases)s.set(E,q);o=c.initialized;}if(o)return;let y=a$1?r?.package.document.comments??[]:[],k=new Set(JSON.parse(t.list_comments()).map(E=>E.id));for(let E of y)t.seed_comment_metadata_json(String(E.id),JSON.stringify({author:E.author??"",date:E.date??"",done:E.done??false,parentId:E.parentId===void 0?null:String(E.parentId),...k.has(String(E.id))?{}:{body:E.blockContent??E.content}}));o=true;},v=()=>{if(!r)throw new Error("Part metadata requires an opened package");let c=JSON.parse(t.part_metadata_json()),y=JSON.parse(t.document_properties_json()),k=c.body?os(Ko(r,c),c):y.metadata?os(r,y.metadata):r,E=JSON.parse(t.section_margins_json());if(d){let q=JSON.stringify([t.resident_section_revision(),k.package.document.sections?.map(ne=>[ne.id,ne.properties]),k.package.document.finalSectionProperties,E]);p?.revision!==q&&(p={revision:q,sections:Nr(M,k,E,m,true).sections});let X=p.sections;return {...k,package:{...k.package,document:{...k.package.document,sections:X.map(ne=>({id:ne.section,properties:ne.properties,content:[]})),finalSectionProperties:X.at(-1).properties}}}}return Object.keys(E).length?ls(k,Nr(M,k,E,m)):k},R=c=>{p=null;let y=t.resident_section_revision().split(":")[1],k=c();return t.resident_section_revision().split(":")[1]!==y&&(d=true),k},w=()=>jr(v(),u.host),P=c=>{if(!i&&!l&&!d&&t.part_metadata_json()==="{}"&&t.document_properties_json()==="{}"&&t.section_margins_json()==="{}")return c;let y=w(),k=JSON.parse(c),E=y.package.document.sections?.map(ie=>({sectionId:ie.id??ie.properties.sectionId,properties:ie.properties}))??[];d||E.push({sectionId:E.at(-1)?.sectionId,properties:y.package.document.finalSectionProperties??{}});let q=E.flatMap((ie,st)=>["header","footer"].flatMap(_e=>(ie.properties[_e==="header"?"headerReferences":"footerReferences"]??[]).map(Ne=>({kind:_e,type:Ne.type,rId:Ne.rId,sectionIndex:st})))),X=[...(y.package.footnotes??[]).map(ie=>({id:ie.id,noteKind:"footnote",height:0})),...(y.package.endnotes??[]).map(ie=>({id:ie.id,noteKind:"endnote",height:0}))],ne=a$5(y);return JSON.stringify({...k,regions:{...k.regions,sections:E,watermark:ne,headersFooters:k.regions?.headersFooters?{...k.regions.headersFooters,watermark:ne}:void 0},notes:{...k.notes,contents:X},...k.workerOwned?{workerHeadersFooters:{...k.workerHeadersFooters,variants:q}}:{}})},T=c=>{if(u={host:new Map,resident:new Map},m.clear(),!D.hasStory("body"))return c;let y=M.paragraphs("body").filter(E=>E.properties.sectPr??E.properties._sectionProperties);for(let E of y)m.set(E.paraId,is(E.properties.sectPr??E.properties._sectionProperties));if((c.package.document.sections?.length??0)<2)return c;let k=xl(c,y.map(E=>E.paraId));return c.package.document.sections.forEach(({id:E},q)=>{let X=k.package.document.sections[q].id;E===void 0||X===void 0||E===X||(u.host.set(X,E),u.resident.set(E,X));}),k},O=(c,y)=>{let k=t.version(),E={paraId:c,offset:0};return M.setParagraphAttrs({story:"body",start:E,end:E},{other:{sectPr:y,sectionBreakType:y.sectionStart??null}}),t.version()!==k},I=()=>Nr(M,v(),JSON.parse(t.section_margins_json()),m,d);t.set_local_lowering(true);let F=new Set,_=false,L=false,B=false,U=false,J=new Map,z=new Map,ee=new Map,oe=new Map,A=new i$1,Q=0,C=0,W=()=>{let c=JSON.parse(t.stories_changed_since(Q));if(c.revision!==Q){Q=c.revision,C+=1;for(let y of c.stories)oe.set(y,C);}return C},$=c=>{let y=W();return c>=y?{revision:y,stories:[]}:{revision:y,stories:[...oe].filter(([,k])=>k>c).map(([k])=>k).sort()}},G=(c,y)=>(oe.get(c)??0)>y,Z=c=>{let y=W(),k=J.get(c);return !k||G(c,k.revision)?(k={revision:y,segments:JSON.parse(t.story_segments(c))},J.set(c,k)):k.revision=y,k},K=()=>{U||(t.track_undo(),U=true);},ae=()=>{B||!_||F.size>0||(t.clear_update_observer(),_=false);},fe=()=>{_&&(t.clear_update_observer(),_=false),t.free();},N=()=>{_||(t.set_update_observer((c,y)=>{if(!(y!==0&&y!==1)){L=true;try{for(let k of [...F])k(c,y===0?"local":"remote");}finally{L=false;}}}),_=true);},j=c=>{for(let y of c)A.add(y);},pe=c=>{K();let y=c(),k=JSON.parse(t.selection());return A.add(k?.head.story??"body"),y},ye=c=>[c.story,c.start.paraId,c.start.offset,c.end.paraId,c.end.offset],se=(c,y)=>{K();let k=t.version();try{return y()}finally{t.version()!==k&&A.add(c);}},te={validateEdits:c=>JSON.parse(t.validate_edits_json(JSON.stringify(c))),version:()=>t.version(),resolveParagraphAnchor:c=>JSON.parse(t.resolve_paragraph_anchor(JSON.stringify(c))),findText:c=>JSON.parse(t.find_text_json(JSON.stringify(c))),readParagraphs:c=>JSON.parse(t.read_paragraphs_json(JSON.stringify(c))),applyEdits:c=>{let y=JSON.parse(t.apply_edits_json(JSON.stringify(c)));return y.ok&&y.applied&&j(y.changedStories),y},listRevisions:()=>JSON.parse(t.list_revisions()),revisionStamps:c=>JSON.parse(t.revision_stamps_json(JSON.stringify(c))),settleRevisions:(c,y)=>{let k=$(Number.MAX_SAFE_INTEGER).revision,E=JSON.parse(t.settle_revisions_json(JSON.stringify({accept:c,reject:y})));return j($(k).stories),E.ok?void 0:E.failure},...typeof t.begin_shared_reads=="function"&&typeof t.end_shared_reads=="function"?{sharedReads:c=>{t.begin_shared_reads();try{return c()}finally{t.end_shared_reads();}}}:{}},D={headerFooterAliases:()=>{let c=JSON.parse(t.header_footer_aliases_json());return c!==null&&typeof c=="object"&&!Array.isArray(c)?new Map(Object.entries(c).filter(y=>typeof y[1]=="string")):new Map},resolveComment:c=>JSON.parse(t.resolve_comment(c)),headings:c=>JSON.parse(t.headings_json(c)),version:()=>t.version(),hasStory:c=>!Fl.test(c)&&t.has_story(c),storyIds:()=>t.story_ids(),paragraphs:c=>JSON.parse(t.paragraphs(c)),paragraphIdCount:(c,y)=>t.paragraph_id_count(c,y),paragraphSpans:c=>{let y=W(),k=z.get(c);if(k&&!G(c,k.revision))return k.revision=y,k.spans;let E=JSON.parse(t.paragraph_spans(c));return z.set(c,{revision:y,spans:E}),E},storySegments:c=>Z(c).segments,positionOutline:c=>{if(Fl.test(c))return null;let y=t.version(),k=ee.get(c);if(k?.version===y)return k.outline;let E=JSON.parse(t.geometry_position_outline_json(c)),q=E==="legacy"?null:E;return ee.set(c,{version:y,outline:q}),q},locateParagraph:(c,y)=>JSON.parse(t.locate_paragraph(c,y)),listRevisions:()=>JSON.parse(t.list_revisions()),resolveParagraphAnchor:te.resolveParagraphAnchor,findText:te.findText,proposalRevisions:c=>{let y=JSON.parse(t.proposal_revision_ranges_json(JSON.stringify(c)));if(Array.isArray(y))return y;if(y==="fallback"){let k=new Set(c);return D.listRevisions().filter(({revisionId:E})=>k.has(E))}return Pd(D,c)}},M={clientId:n,splitSection:(c,y,k)=>{K();let E=h$2(M,t,c,()=>y,k);if(d=true,p=null,!E.closed){let q=v(),X=f$3(q.package.document,ne=>({...ne,sectionStart:k}));t.set_part_metadata(JSON.stringify(nn({...q,package:{...q.package,document:X}})),"[]"),i=true,p=null;}return E.at},storyGeometry:(c,y,k)=>JSON.parse(t.resident_geometry_json(c,JSON.stringify({ranges:y,selection:k}))),storyRangeRects:(c,y,k)=>{let E=t.display_range_rects_batch(c,y,Float64Array.from(k.flat())),q=[];for(let X=0;X<E.length;){let ne=[];for(let ie=E[X++];ie>0;ie-=1,X+=5)ne.push({pageIndex:E[X],x:E[X+1],y:E[X+2],width:E[X+3],height:E[X+4]});q.push(ne);}return q},clearCellSelection:()=>{let c=t.clear_cell_selection();return c===void 0?null:JSON.parse(c)},commentProjection:c=>r?f$2(M,s,o,c):null,initializeComments:b,commentRecoveryState:()=>({aliases:[...s],initialized:o}),sectionProperties:I,setSectionMargins:(c,y)=>{K();let k=t.set_section_margins(c,JSON.stringify(y));return k&&(l=true,p=null,A.add("body")),k},propertyDocument:w,setPropertyDocument:c=>{p=null;let y=jr(c,u.resident),k=JSON.parse(t.section_margins_json()),E=false;for(let X of I().sections.slice(0,-1)){let ne=y.package.document.sections?.find(ie=>ie.id===X.section)?.properties;ne&&JSON.stringify(X.properties)!==JSON.stringify(ne)&&(E=O(X.section,ne)||E);}for(let[X,ne]of Object.entries(k)){let ie=X==="final"?e$4(y.package.document):y.package.document.sections?.find(_e=>_e.id===X)?.properties,st=Object.fromEntries(Object.entries(ne).filter(([_e,Ne])=>{let ve=ie?.[_e];return ve!==void 0&&ve!==Ne}).map(([_e])=>[_e,ie[_e]]));Object.keys(st).length&&(E=M.setSectionMargins(X,st)||E);}let q=M.setPartDocument(y);return E||q},controlTargets:()=>JSON.parse(t.content_control_targets_json()),repeatControlAt:(c,y)=>se(c.story,()=>t.repeat_content_control_at(c.story,c.index,y)),setControlValue:(c,y)=>se(c.story,()=>t.set_content_control_value_index(c.story,c.index,JSON.stringify(y))),partDocument:w,partGeometry:c=>qi(M,c),partStory:c=>`hf:${JSON.parse(t.header_footer_aliases_json())[c]??c}`,setPartDocument:(c,y=[])=>{p=null,K();let k=jr(c,u.resident),E=false;if(d){let q=M.paragraphs("body").filter(X=>X.properties.sectPr||X.properties._sectionProperties);for(let X of q){let ne=k.package.document.sections?.find(ie=>ie.id===X.paraId)?.properties;!ne||JSON.stringify(ne)===JSON.stringify(X.properties.sectPr??X.properties._sectionProperties)||(E=O(X.paraId,ne)||E);}}return E=t.set_part_metadata(JSON.stringify(nn(k)),JSON.stringify(y))||E,E&&(i=true,j(["body",...t.story_ids()])),E},proposalEngine:te,geometryReader:D,paragraphs:D.paragraphs,storySegments:c=>Z(c).segments,selectionContext:c=>JSON.parse(t.selection_context(...ye(c))),cellSelection:()=>JSON.parse(t.cell_selection()),setCellSelection:c=>t.set_cell_selection(JSON.stringify(c)),insertRow:(c,y,k)=>se(c.story,()=>{let E=JSON.parse(t.insert_row(JSON.stringify(c),y==="below",k?.name,k?.date));return j([...E.changedStoryIds,...E.createdStoryIds,...E.deletedStoryIds]),E}),insertTable:(c,y,k,E)=>se(c.story,()=>{let q=JSON.parse(t.insert_table(c.story,c.paraId,c.offset,y,k,E?.name,E?.date));return j([...q.changedStoryIds,...q.createdStoryIds,...q.deletedStoryIds]),q}),insertColumn:(c,y)=>se(c.story,()=>{let k=JSON.parse(t.insert_column(JSON.stringify(c),y==="right"));return j([...k.changedStoryIds,...k.createdStoryIds,...k.deletedStoryIds]),k}),deleteRow:(c,y)=>se(c.anchor.story,()=>{let k=JSON.parse(t.delete_row(JSON.stringify(c),y?.name,y?.date));return j([...k.changedStoryIds,...k.createdStoryIds,...k.deletedStoryIds]),k}),deleteColumn:c=>se(c.anchor.story,()=>{let y=JSON.parse(t.delete_column(JSON.stringify(c)));return j([...y.changedStoryIds,...y.createdStoryIds,...y.deletedStoryIds]),y}),deleteTable:c=>se(c.story,()=>{let y=JSON.parse(t.delete_table(JSON.stringify(c)));return j([...y.changedStoryIds,...y.createdStoryIds,...y.deletedStoryIds]),y}),mergeCells:c=>se(c.anchor.story,()=>{let y=JSON.parse(t.merge_cells(JSON.stringify(c)));return j([...y.changedStoryIds,...y.createdStoryIds,...y.deletedStoryIds]),y}),splitCell:(c,y,k)=>se(c.story,()=>{let E=JSON.parse(t.split_cell(JSON.stringify(c),y,k));return j([...E.changedStoryIds,...E.createdStoryIds,...E.deletedStoryIds]),E}),setCellShading:(c,y)=>se(c.anchor.story,()=>{let k=JSON.parse(t.set_cell_shading(JSON.stringify(c),y??void 0));return j([...k.changedStoryIds,...k.createdStoryIds,...k.deletedStoryIds]),k}),setCellBorders:(c,y)=>se(c.anchor.story,()=>{let k=JSON.parse(t.set_cell_borders(JSON.stringify(c),JSON.stringify(y)));return j([...k.changedStoryIds,...k.createdStoryIds,...k.deletedStoryIds]),k}),setTableProperties:(c,y)=>se(c.story,()=>{let k=JSON.parse(t.set_table_properties(JSON.stringify(c),JSON.stringify(y)));return j([...k.changedStoryIds,...k.createdStoryIds,...k.deletedStoryIds]),k}),insertTableFragment:(c,y,k)=>se(c.story,()=>{let E=JSON.parse(t.insert_table_fragment(c.story,c.paraId,c.offset,JSON.stringify(y),k?.name,k?.date));return j([...E.changedStoryIds,...E.createdStoryIds,...E.deletedStoryIds]),E}),validateTableFragment:c=>{t.validate_table_fragment(JSON.stringify(c));},insertImage:(c,y,k)=>se(c.story,()=>JSON.parse(t.insert_image(c.story,c.paraId,c.offset,JSON.stringify(y),k?.name,k?.date))),moveEmbed:(c,y)=>se(c.story,()=>se(y.story,()=>JSON.parse(t.move_embed(c.story,c.paraId,c.offset,y.story,y.paraId,y.offset)))),insertPageBreak:c=>se(c.story,()=>{let y=g$3(M,t,c);return t.insert_page_break(y.story,y.paraId,y.offset),y}),insertSectionBreak:(c,y)=>{let k=Qn(M,c);if(!k)throw new Error("Section break paragraph is unavailable");M.splitSection(c,k,y);},tablePayload:(c,y)=>{let k=t.table_payload(c,y);return k===void 0?null:JSON.parse(k)},setHyperlink:(c,y)=>se(c.story,()=>t.set_hyperlink(...ye(c),JSON.stringify(y))),setImageGeometryAt:(c,y)=>se(c.story,()=>t.set_image_geometry_at(c.story,c.paraId,c.offset,JSON.stringify(y))),setColumnWidth:(c,y)=>se(c.story,()=>JSON.parse(t.set_column_width(JSON.stringify(c),y))),beginUndoCapture:K,setUndoInputTime:c=>{c?t.set_undo_input_time(c[0],c[1]):t.clear_undo_input_time();},addUndoBoundary:()=>t.add_undo_boundary(),undo:()=>{let c=t.undo();return c&&j(t.history_stories()),c},redo:()=>{let c=t.redo();return c&&j(t.history_stories()),c},canUndo:()=>t.can_undo(),canRedo:()=>t.can_redo(),insertText:(c,y,k)=>se(c.story,()=>JSON.parse(k?t.insert_text(c.story,c.paraId,c.offset,y,k.name,k.date):t.edit_text_resident(c.story,c.paraId,c.offset,c.paraId,c.offset,y))),insertLineBreak:(c,y)=>se(c.story,()=>JSON.parse(t.insert_line_break(c.story,c.paraId,c.offset,y?.name,y?.date))),replaceRange:(c,y,k)=>se(c.story,()=>JSON.parse(t.replace_range(...ye(c),y,k?.name,k?.date))),deleteRange:(c,y)=>se(c.story,()=>JSON.parse(y?t.delete_range(...ye(c),y.name,y.date):t.edit_text_resident(...ye(c),void 0))),splitParagraph:(c,y)=>se(c.story,()=>JSON.parse(t.split_paragraph(c.story,c.paraId,c.offset,y?.name,y?.date))),nextParagraphStyle:c=>t.next_paragraph_style(c.story,c.paraId,c.offset)??null,toggleMark:(c,y)=>se(c.story,()=>t.toggle_mark(...ye(c),JSON.stringify(y))),formatRange:(c,y)=>se(c.story,()=>t.format_range(...ye(c),JSON.stringify(y))),clearFormatting:c=>se(c.story,()=>t.clear_formatting(...ye(c))),setParagraphAttrs:(c,y,k)=>se(c.story,()=>t.set_paragraph_attrs(...ye(c),JSON.stringify(y),k?.name,k?.date)),applyParagraphStyle:(c,y,k)=>se(c.story,()=>t.apply_paragraph_style(...ye(c),y,k?.name,k?.date)),addComment:(c,y,k,E)=>{K();let q=JSON.parse(t.add_comment(JSON.stringify(c.map(X=>({story:X.story,startPara:X.start.paraId,startOffset:X.start.offset,endPara:X.end.paraId,endOffset:X.end.offset}))),y,k,JSON.stringify(E)));return j(c.map(X=>X.story)),q},setCommentRanges:(c,y)=>{K(),t.set_comment_ranges(c,JSON.stringify(y.map(k=>({story:k.story,startPara:k.start.paraId,startOffset:k.start.offset,endPara:k.end.paraId,endOffset:k.end.offset})))),j(y.map(k=>k.story));},listComments:()=>JSON.parse(t.list_comments()),updateComment:(c,y)=>{K(),t.update_comment_metadata_json(c,JSON.stringify(y));},acceptChange:c=>(K(),JSON.parse(t.accept_change(JSON.stringify(c)))),rejectChange:c=>(K(),JSON.parse(t.reject_change(JSON.stringify(c)))),resolveComment:c=>JSON.parse(t.resolve_comment(c)),paragraphSegments:(c,y)=>JSON.parse(t.story_segment_units(c,Uint32Array.from(y))),paragraphUnit:(c,y)=>t.paragraph_unit(c,y),revisionIdsAt:c=>JSON.parse(t.revision_ids_at(c.story,c.paraId,c.offset)),searchText:(c,y={})=>{if(!c)return [];let k=y.limit??Number.POSITIVE_INFINITY;if(!Number.isSafeInteger(k)&&k!==Number.POSITIVE_INFINITY||k<0)throw new RangeError("search limit must be a non-negative safe integer");return JSON.parse(t.search_text(c,y.caseSensitive??false,Number.isFinite(k)?Math.min(k,4294967295):void 0))},encodeStickyPosition:c=>({story:c.story,encoded:t.encode_sticky_position(c.story,c.paraId,c.offset)}),resolveStickyPosition:c=>{try{return JSON.parse(t.resolve_sticky_position(c.story,c.encoded))}catch{return null}},paragraphIdentities:()=>JSON.parse(t.paragraph_identities()),readStories:c=>JSON.parse(t.read_stories_json(JSON.stringify(c))),listStories:()=>JSON.parse(t.list_stories_json()),exportStructuredWithPagesJson:(c,y)=>t.export_structured_with_pages_json(JSON.stringify(c),y),listContentControls:(c={})=>JSON.parse(t.list_content_controls_json(JSON.stringify(c))),findContentControls:(c,y={})=>JSON.parse(t.find_content_controls_json(JSON.stringify(c),JSON.stringify(y))),storiesChangedSince:$,decodeFont:c=>t.decode_font(c),openSourceDocx:(c,y)=>{t.set_media_tokens(y.mediaTokens===true);let k=y.state??y.initialUpdate,E=M.openDocx(c,y.digest,y.generation,k===void 0);return k&&(M.loadState(k),r=T(r),j(t.story_ids())),E},openDocument:(c,y)=>{s.clear(),o=false,a$1=!y.initialUpdate,J.clear(),A.clear(),x.clear(),g=y.mediaTokens&&!y.initialUpdate?[]:n$1(c),r=c,f=s$1(t,n);let k=f.mediaDataUrl;f.mediaDataUrl=E=>x.get(E)??k(E),y.initialUpdate?(M.loadState(y.initialUpdate),r=T(c)):(e$3(f,y.mediaTokens?o$1(c,x):c,y),r=T(c),t.set_part_metadata(JSON.stringify(nn(r)),"[]")),i=false,l=false,d=false,p=null,j(t.story_ids()),h=W();},saveDocument:async(c,y,k)=>{if(!f||!r)throw new Error("The document worker holds no parsed document");let{saveEditorDocument:E,mergeDocxHostMetadata:q}=await import('../chunk-LKDHP22R.mjs'),{noteYrsStoriesDirty:X,yrsToDocument:ne}=await import('../chunk-L3JRNJ34.mjs'),ie=A.capture(),st=$(h);X(f,[...ie.stories,...st.stories]);let _e=ne(f,q(k.base??r,c??v())),Ne=await E(f,_e,y,k);return _e.originalBuffer=Ne,k.base=_e,ie.clear(),h=st.revision,Ne},openDocx:(c,y,k,E=true)=>{s.clear(),o=false,a$1=E,J.clear(),A.clear();let q=t.open_docx(c,E,k,y),X=q$2(q,c).document;E&&r$1(t,X.package.document.comments);let ne=b$5(q,ie=>ie.startsWith("media:")?t.media_data_url(ie)??null:null);return r=T(q$2(ne,c).document),i=false,l=false,d=false,p=null,ne},openDocxPreview:(c,y,k)=>{s.clear(),o=false,a$1=true,J.clear(),A.clear();let E=k===void 0?t.open_docx_preview(c,y):t.open_docx_preview_with_budget(c,y,k);return E===void 0?null:b$5(E,q=>q.startsWith("media:")?t.media_data_url(q)??null:null)},mediaDataUrl:c=>x.get(c)??t.media_data_url(c)??null,svgMedia:()=>{let c=k=>k?.startsWith("data:image/svg+xml")?k:void 0,y=[];for(let[k,E]of x)c(E)&&y.push({source:k,url:E});for(let k of g)y.push({source:k,url:k});for(let k=0;;k+=1){let E=`media:${k}`,q=t.media_type(E);if(q===void 0)break;if(q!=="image/svg+xml"||x.has(E))continue;let X=c(t.media_data_url(E));X&&y.push({source:E,url:X});}return y},encodeState:()=>t.encode_state(),encodePeerMetadata:()=>{let c=t;if(!c.encode_peer_metadata)throw new k$2("missing-capability","Editing wasm cannot encode peer metadata");return c.encode_peer_metadata()},encodeStateAsUpdate:c=>c===void 0?t.encode_state():t.encode_diff(c.slice()),encodeStateAsUpdateChunks:(c,y)=>{if(!Number.isSafeInteger(y)||y<1||y>4294967295)throw new RangeError("maxChunkBytes must be a positive 32-bit integer");return t.encode_diff_chunks(c.slice(),y)},save:async(c,y,k,E,q,X)=>{let{saveResidentDocument:ne}=await import('../chunk-AK2NG7PT.mjs'),ie=i||t.part_metadata_json()!=="{}"?Ko(k??v(),nn(v())):k;return (l||d||t.section_margins_json()!=="{}")&&(ie=ls(ie??v(),I())),ne(t,n,c,y,ie,E,q,A,X)},markProjectionStories:j,revisionCount:c=>JSON.parse(t.list_revisions()).filter(y=>!c?.has(y.revisionId)).length,registerFont:c=>t.register_measure_font(c),registerSubstituteFont:(c,y)=>t.register_substitute_measure_font(c,y),clearFonts:()=>t.clear_measure_fonts(),encodeStateVector:()=>t.encode_state_vector(),hasPendingUpdate:()=>t.has_pending_update(),measureParagraphJson:c=>t.measure_paragraph_json(c),layoutDocumentJson:c=>t.layout_document_json(P(c)),layoutFontRequirementsJson:c=>t.layout_font_requirements_json(c),layoutDocumentWithRegionsRetainedJson:c=>t.layout_document_with_regions_retained_json(P(c)),layoutDocumentWithRegionsRetainedMeta:c=>c$2(t.layout_document_with_regions_retained_meta(P(c))),retainedLayoutJson:()=>t.retained_layout_json(),beginRegionLayout:c=>JSON.parse(t.begin_region_layout(P(c))),resumeRegionLayout:c=>JSON.parse(t.resume_region_layout(c)),setPartialDocument:c=>t.set_partial_document(c),layoutDocumentWithRegionsPrefixRetainedJson:(c,y)=>t.layout_document_with_regions_prefix_retained_json(P(c),y),layoutDocumentWithRegionsExactPrefixRetained:(c,y)=>JSON.parse(t.layout_document_with_regions_exact_prefix_retained(P(c),y)),layoutDocumentWithRegionsRetained:c=>t.layout_document_with_regions_retained(P(c)),layoutDocumentWithRegionsAfterEdit:c=>t.layout_document_with_regions_after_edit(P(c)),retainedHeadersFootersJson:()=>t.retained_headers_footers_json(),buildDisplayListFrame:(c,y)=>t.build_display_list_frame(c,y),setDisplayWindow:(c,y)=>t.set_display_window(c,y),setDisplayRetainBuiltPages:c=>t.set_display_retain_built_pages(c),setWindowedIncrementalBuilds:c=>t.set_windowed_incremental_builds(c),setDirectBatches:c=>t.set_direct_batches(c),directBatchesApplied:()=>t.direct_batches_applied(),buildDisplayPagesFrame:(c,y)=>t.build_display_pages_frame(Uint32Array.from(c),y),releaseDisplayPagesFrame:(c,y)=>{let k=t.release_display_pages_frame(Uint32Array.from(c),y);return k.length===0?null:k},residentCaretSnapshot:()=>JSON.parse(t.resident_caret_snapshot_json()),selection:()=>JSON.parse(t.selection()),selectionText:c=>JSON.parse(t.selection_text_json(c.story,c.start.paraId,c.start.offset,c.end.paraId,c.end.offset)),encodeSelection:()=>l$3(t.encoded_selection()),applyInput:(c,y)=>pe(()=>t.apply_input(c,y)),applyDelete:(c,y,k=1)=>pe(()=>t.apply_delete(c,y,k)),residentDeletedUnits:()=>t.resident_deleted_units(),applyRawOps:(c,y)=>{J.clear();let k=t.version();try{t.apply_raw_ops(c,JSON.stringify(y)),A.add(c);}finally{t.version()!==k&&(A.add(c),W(),C+=1,oe.set(c,C));}},applyInputProfiled:(c,y)=>{let k=pe(()=>t.apply_input_profiled(c,y)),E=JSON.parse(t.apply_input_profile_json());return {frame:k,profile:E}},applyDeleteProfiled:(c,y,k=1)=>{let E=pe(()=>t.apply_delete_profiled(c,y,k)),q=JSON.parse(t.apply_input_profile_json());return {frame:E,profile:q}},outlineGlyphJson:(c,y)=>t.outline_glyph_json(c,y),echoGlyphSetJson:(c,y,k,E)=>t.echo_glyph_set_json(c,y,k,E),loadMediaSources:c=>t.load_media_sources(c),loadNoteSeparators:c=>t.load_note_separators(c),loadState:c=>{J.clear(),p=null,t.load(c);},applyUpdate:c=>R(()=>JSON.parse(t.apply_update_with_inference(c))),applyUpdateChunks:c=>R(()=>t.apply_update_chunks([...c])),onUpdate:c=>(F.add(c),N(),()=>{F.delete(c),!B&&_&&F.size===0&&(L?queueMicrotask(ae):ae());}),setSelection:(c,y=c)=>{if(c.story!==y.story)throw new Error("yrs selection must stay inside one story");t.set_selection(c.story,c.paraId,c.offset,y.paraId,y.offset);},yrsBlocksForStory:(c,y={})=>JSON.parse(t.yrs_blocks_for_story(c,JSON.stringify(y))),destroy:()=>{B||(B=true,F.clear(),J.clear(),oe.clear(),A.clear(),x.clear(),g=[],f=void 0,r=void 0,L?queueMicrotask(fe):fe());}};return M}function Pd(e,n){let t=new Set(n),r=[],s=()=>e.listRevisions().filter(({revisionId:o})=>t.has(o));for(let o of e.storyIds().sort()){let a=0,i=new Set,l=[],d=new Map;for(let m of e.storySegments(o)){if(m.kind==="pilcrow"){if(hs(m.properties)||i.has(m.paraId))return s();i.add(m.paraId);for(let p of l.sort((x,g)=>x.start-g.start))r.push({revisionId:p.revisionId,kind:p.kind,story:o,range:{story:o,start:{paraId:m.paraId,offset:p.start},end:{paraId:m.paraId,offset:p.end}}});a=0,l=[],d.clear();continue}if(m.kind==="embed"&&hs(m.payload))return s();let u=m.kind==="text"?m.text.length:1;for(let[p,x]of [["ins","insertion"],["del","deletion"]]){let g=m.attributes[p];if(!g||typeof g!="object"||Array.isArray(g))continue;let f=g,h=f.info,b=h&&typeof h=="object"&&!Array.isArray(h)?h:f,v="id"in b?b.id:b.revisionId;if(typeof v!="string"&&!(typeof v=="number"&&Number.isFinite(v)))continue;let R=String(v);if(!t.has(R)){d.delete(x);continue}let w=d.get(x);if(w?.revisionId===R&&w.end===a)w.end+=u;else {let P={revisionId:R,kind:x,start:a,end:a+u};l.push(P),d.set(x,P);}}a+=u;}if(l.length>0)return s()}return r}var Fl=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/;function hs(e){return !e||typeof e!="object"?false:Object.entries(e).some(([n,t])=>n==="id"||n==="revisionId"||n==="pPrIns"||n==="pPrDel"||n==="pPrChange"||n==="trIns"||n==="trDel"||n==="tableIns"||n==="tableDel"||hs(t))}function Cd(){if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function"){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}return Math.floor(Math.random()*4294967295)}function Al(e,n,t,r){return e!==true?null:n?t??0:r===null?0:Math.max(0,r-2)}function bs(e,n){let[t,r]=e??[0,n];return [t,Math.min(r,Math.max(t,n))]}function xs(e){let n=e.hasStory("body")?e.positionOutline?.("body"):null,t=n?t$1(n):u(e,"body"),r=new Map,s=o=>(r.has(o)||r.set(o,e.hasStory(o)?c$3(o,e.paragraphSpans(o)):null),r.get(o));return o=>o.story==="body"||o.story.startsWith("body:")?x(e,()=>t,o,"body",s):null}function _l(e,n,t,r){if(!n)return {matches:[],carried:-1};let s=e.searchText(n,{caseSensitive:t}).filter(u=>u.story==="body"||u.story.startsWith("body:"));if(s.length===0)return {matches:[],carried:-1};let o=xs(e),a=[];for(let u of s){let p={story:u.story,paraId:u.paraId,offset:u.start},x=o(p),g=o({...p,offset:u.end});x==null||g==null||x>=g||a.push({story:u.story,paraId:u.paraId,start:u.start,displayFrom:x,displayTo:g});}if(a.sort((u,p)=>u.displayFrom-p.displayFrom),a.length===0)return {matches:a,carried:-1};let i=null;try{i=r?e.resolveStickyPosition(r):null;}catch{}if(!i)return {matches:a,carried:0};let l=a.findIndex(u=>u.story===i.story&&u.paraId===i.paraId&&u.start===i.offset);if(l>=0)return {matches:a,carried:l};let d=o(i),m=d==null?-1:a.findIndex(u=>u.displayFrom>=d);return {matches:a,carried:m>=0?m:a.length-1}}function En(e,n){try{return e.selectionText({story:n.story,start:n,end:n}).before.length}catch{return null}}function Ll(e,n,t){let r=e.reader;if(r.version()!==t)return null;let s=v(n,l=>e.projection(l));if(!s||!r.hasStory(s.story))return null;let o=e.inputMap(s.story),a=o?e$2(o,s.displayPosition):null;if(!a)return null;let i=En(r,a);return i===null?null:{...n,version:t,target:{kind:"range",story:a.story,start:{paraId:a.paraId,offset:i},end:{paraId:a.paraId,offset:i},view:"accepted"}}}async function Nl(e,n,t,r,s){if(e.proposalEngine.version()!==s||r.frameEpoch!==n.frameEpoch||r.layoutRevision!==t||!/^\d+$/u.test(r.page.pageId))return null;let o=p$2(n,BigInt(r.page.pageId));if(!o||o.page.unbuilt||r.x<0||r.y<0||r.x>o.page.width||r.y>o.page.height)return null;let a=await z(),i=J(n.displayList,a);try{let l=n.pages.indexOf(o),d=i.hitTestRegions(l,r.x,r.y);if(!d||d.pos==null)return null;let m={epoch:1,version:0},p=Tr({engine:e,state:{readOnly:!0,selection:null,storedMarks:null,stickyPositions:new Map},command:{session:"point-read",incarnation:1,seq:0,basis:m,kind:"selectPoint",payload:{...r,clickCount:1,modifiers:{shift:!1,alt:!1,ctrl:!1,meta:!1}}},context:{basis:m,currentVersion:0,replayPreviouslyApplied:!1},readLayout:()=>({frame:n,layoutRevision:t})}).selection.focus,x=En({...e.geometryReader,selectionText:e.selectionText},p);return x===null?null:{position:d.pos,region:d.region,pageIndex:l,version:s,...d.rId?{rId:d.rId}:{},...d.noteId===void 0?{}:{noteId:d.noteId},target:{kind:"range",story:p.story,start:{paraId:p.paraId,offset:x},end:{paraId:p.paraId,offset:x},view:"accepted"}}}finally{i.dispose();}}function Dn(e,n,t){let r=e.projection(n);if(!r||!Number.isFinite(t)||t<0||t>r.size)return null;let s=r.targetAt(t),o=r.blockBoundaryAt(t);if(o)return {target:s,loc:o};let a=e.inputMap(s.story),i=a?e$2(a,s.displayPosition):null;return i?{target:s,loc:i}:null}function Ed(e,n){let t="";for(let r of e.reader.storySegments(n.story))if(r.kind==="pilcrow"){if(r.paraId===n.paraId)return t;t="";}else t+=r.kind==="text"?r.text:"\uFFFC";return null}function Yl(e,n,t,r,s){if(e.reader.version()!==s)return null;if(r==="story"){let p=e.projection(n);return p&&p.size>0?{anchor:0,head:p.size}:null}let o=Dn(e,n,t);if(!o)return null;let{loc:a}=o,i=Ed(e,a);if(i===null)return null;let[l,d]=r==="word"?a$4(i,a.offset):[0,i.length];if(r==="word"&&l>=d)return null;let m=e.positionOf({...a,offset:l},n),u=e.positionOf({...a,offset:d},n);return m===null||u===null?null:{anchor:m,head:u}}function Dd(e,n){return e.story===n.story&&e.tableIndex===n.tableIndex}function Bl(e,n,t){let r=0,s=0;for(let o of e.reader.storySegments(n)){if(o.kind==="embed"&&o.embedKind==="table"){if(s===t){let{rows:a,grid:i}=o.payload;return Array.isArray(a)?{offset:r,rows:a,...Array.isArray(i)?{grid:i}:{}}:null}s+=1;}r+=o.kind==="text"?o.text.length:1;}return null}function Md(e,n,t){let r=e.projection(n),s=r?.tableAtPosition(t)??null;for(;s&&s.story!==n;)s=r.tableAtPosition(s.start-1);return s}function jl(e,n,t,r,s){if(t.loc.story===n)return k$1(e.reader,t.loc);let o=Md(e,n,r),a=o?Bl(e,n,o.tableIndex):null;return a?s==="start"?a.offset:a.offset+1:null}function ks(e,n,t,r,s){let o=e.reader;if(o.version()!==s)return null;let a=Math.min(t,r),i=Math.max(t,r),l=Dn(e,n,a),d=Dn(e,n,i);if(!l||!d)return null;if(l.loc.story===d.loc.story){let g=l.loc.story,f=En(o,l.loc),h=En(o,d.loc);return {text:h$1(o,g,k$1(o,l.loc),k$1(o,d.loc)),range:f===null||h===null?null:{story:g,start:{paraId:l.loc.paraId,offset:f},end:{paraId:d.loc.paraId,offset:h},view:"accepted"}}}let m=l.target.cell,u=d.target.cell;if(m&&u&&Dd(m,u)){let g=Bl(e,m.story,m.tableIndex);return g?{text:g$1(o,g,{top:Math.min(m.row,u.row),bottom:Math.max(m.row,u.row),left:Math.min(m.column,u.column),right:Math.max(m.column,u.column)}).join(`
3
+ `),range:null}:null}let p=jl(e,n,l,a,"start"),x=jl(e,n,d,i,"end");return p===null||x===null?null:{text:h$1(o,n,p,x),range:null}}function Jl(e,n,t,r,s){let o=e.reader;if(o.version()!==s)return null;let a=Dn(e,n,t),i=Dn(e,n,r);if(!a||!i)return null;if(a.loc.story!==i.loc.story){let m=ks(e,n,t,r,s);return m?{paraId:null,selectedText:m.text,paragraphText:"",before:"",after:""}:null}let[l,d]=k$1(o,a.loc)<=k$1(o,i.loc)?[a.loc,i.loc]:[i.loc,a.loc];try{return o.selectionText({story:l.story,start:{paraId:l.paraId,offset:l.offset},end:{paraId:d.paraId,offset:d.offset}})}catch{return null}}function Wl(e,n,t){let r=e.inputMap(n)?.paragraphs;if(!r?.length)return null;for(let a of r){let i=e.reader.locateParagraph(n,a.paraId);if(t<=i.end)return {story:n,paraId:a.paraId,offset:Math.min(Math.max(0,t-i.start),i.end-i.start)}}let s=r[r.length-1],o=e.reader.locateParagraph(n,s.paraId);return {story:n,paraId:s.paraId,offset:o.end-o.start}}function Ss(e,n,t,r){let s=e.projection(n);if(!s)return null;let o=s.positionForLoc(t),a=s.positionForLoc(r);return o===null||a===null?null:{anchor:o,head:a}}function Ul(e,n,t,r){if(e.reader.version()!==r)return null;for(let s of e.reader.storyIds()){if(!e.reader.paragraphs(s).some(a=>a.paraId===t))continue;let o=e.reader.locateParagraph(s,t);return Ss(e,n,{story:s,paraId:t,offset:0},{story:s,paraId:t,offset:Math.max(0,o.end-o.start)})}return null}function Vl(e,n,t,r){if(e.reader.version()!==r)return null;try{let s=e.reader.resolveComment(t)[0];if(!s)return null;let o=Wl(e,s.story,s.start),a=Wl(e,s.story,s.end);return o&&a?Ss(e,n,o,a):null}catch{return null}}function Hl(e,n,t,r){if(e.reader.version()!==r)return null;let s=e.reader.listRevisions().find(o=>o.revisionId===t);return s?Ss(e,n,{story:s.story,...s.range.start},{story:s.story,...s.range.end}):null}function vs(e,n,t,r){return e.reader.version()!==r?null:e.projection(n)?.bookmarkPosition(t)??null}function Gl(e,n,t,r){let s=vs(e,n,t,r);if(s===null)return null;let o=s+1,a=Dn(e,n,o);return a?{loc:a.loc,position:o}:null}var zl=["input","collab","interactive"],$l={input:0,collab:1,interactive:2,background:3},Od=8,Td=24,Fd=1e3;function Kl(e){let n={input:[],collab:[],interactive:[]},t=[],r=0,s=0,o=0,a=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY,l=false,d=false,m=null,u=()=>e.now()-a<Fd?Od:Td;function p(O=false){l||d||(d=true,(O?queueMicrotask:e.turn)(()=>{d=false,w();}));}function x(O){for(let I of zl)if(I!==O.lane)for(let F of n[I]){if(F.seq>O.seq)break;if(!(F.reorderable&&$l[O.lane]<$l[F.lane]))return true}return false}function g(){for(let O of zl){let I=n[O][0];if(I&&!x(I))return I}return null}function f(){let O=g();if(!O)return null;let I=[n[O.lane].shift()];if(O.lane==="collab")for(;n.collab[0]&&!x(n.collab[0]);)I.push(n.collab.shift());return I}function h(O){return O.idleAfterInputMs===void 0?Number.NEGATIVE_INFINITY:i+O.idleAfterInputMs}async function b(O){for(let I of O){I.mutates&&(s+=1),(I.mutates||I.reframes)&&(o+=1);try{await I.run();}catch(F){e.failed?.(F);}}}async function v(){let O=e.now(),I=t.findIndex(_=>h(_)<=O);if(I<0)return false;let[F]=t.splice(I,1);try{if(F.version!==s||F.generation!==o){if((F.onStale?.()??"cancel")==="cancel")return F.cancel?.(),!0;F.version=s,F.generation=o;}await F.run(u())==="yield"&&t.push(F);}catch(_){F.fail?F.fail(_):e.failed?.(_);}return true}function R(){if(m?.(),m=null,t.length===0)return;let O=Math.min(...t.map(h));m=e.timer(()=>{m=null,p();},Math.max(1,O-e.now()));}async function w(){if(l)return;l=true;let O=false;try{let F=f();F?(O=!0,await b(F)):t.length>0&&(O=await v());}catch(F){O=true,e.failed?.(F);}finally{l=false;}let I=O?g():null;I?p(!I.reorderable):O&&t.length>0?p():R();}function P(O,I){T({kind:`${O.kind}:install`,version:O.version,generation:O.generation,onStale:()=>"cancel",cancel:()=>O.cancel?.(),fail:F=>O.cancel?.(F),run:async()=>(await O.install(I),"done")});}function T(O){t.push(O),l||(m?.(),m=null),p();}return {submit(O){if(O.userInput&&(a=e.now()),O.holdsIdleTasks&&(i=e.now()),O.key!==void 0){let I=n[O.lane];for(let F=I.length-1;F>=0;F-=1)if(I[F].replaceableBy===O.key)try{I.splice(F,1)[0].supersede?.();}catch(_){e.failed?.(_);}}n[O.lane].push({...O,seq:r++}),m?.(),m=null,p(true);},schedule:T,dispatch(O){let I=O,F=()=>T({kind:I.kind,version:I.version,generation:I.generation,onStale:()=>"cancel",cancel:()=>I.cancel?.(),fail:L=>I.cancel?.(L),run:async()=>(await I.install(I.compute(I.input)),"done")});if(!e.executor){F();return}let _=(I.transfer?.length??0)>0;e.executor.run({kind:I.kind,input:I.input,transfer:I.transfer}).then(L=>P(I,L),L=>_?I.cancel?.(L):F());},budget:u,get version(){return s},get generation(){return o},bump(O){O.version&&(s+=1),(O.version||O.generation)&&(o+=1);},pending(){return {foreground:n.input.length+n.collab.length+n.interactive.length,background:t.length}}}}var ir=self,so,Ql=uc(),S=null,Nt=null,be=null,cc=new WeakSet,er=null,Rs=null,Be=null,Tt=new Map,tr=new Map;function Xl(e){let n=new Set;for(let{source:r,image:s}of e??[])for(let o of [r,tr.get(r)]){if(o===void 0)continue;let a=Tt.get(o);a&&a!==s&&n.add(a),Tt.set(o,s);}let t=new Set(Tt.values());for(let r of n)t.has(r)||r.close();}function Ad(){for(let e of new Set(Tt.values()))e.close();Tt.clear(),tr=new Map;}var ot=null,Kr=null,Qr=null,Se=null;function _d(e){Qr=e;}var Ld=0,Zl=new WeakMap;function ql(e,n,t){let r=`${e.docEpoch}:${e.layoutEpoch}:${e.frameEpoch}:${he}:${n}`;Zl.get(e)!==r&&(Zl.set(e,r),console.error("[docx] display-list query parse failure",{error:t instanceof Error?t.message:String(t),queryParseFailures:++Ld}));}function ec(e){if(!S)throw new Error("Document worker is not initialized");if(!Qr)throw new Error("Worker command hooks are not installed");er?.(),er=null;let n$1=S;e.rasterScale!==void 0&&ic(e.rasterScale),e.layoutInput=lo(n$1,e.layoutInput,true);let t=JSON.parse(e.layoutInput||"{}"),r=e.recoveryState?.layoutReservations;r&&(t.renderEnv={...t.renderEnv,reservations:r.values},e.layoutInput=JSON.stringify(t));let s=e.layoutWithRegions?e.layoutInput:JSON.stringify({...t,measured:[],retainOnly:true,workerOwned:{bodyStory:"body",renderEnv:t.renderEnv,measurement:t.measurement},workerHeadersFooters:JSON.parse(e.extras).headersFooters});e.layoutWithRegions||n$1.layoutDocumentJson(s);let o=!e.layoutWithRegions,a=r?.set,i$1;Kr?.dispose();let l=new Wr(n$1,ir.fonts);Kr=l;let d=new WeakMap,m=ut??(ut=n(n$1.proposalEngine)),u=m.snapshot().previewVersion,p=null,x=false,g=()=>{p=null,Ye=null,un(),v=void 0;},f=()=>{i$1=a;let A=JSON.parse(e.layoutWithRegions?e.layoutInput:s),Q=e.layoutWithRegions?A:A.workerOwned,C=m.snapshot(),W=m$1(C);(W!==void 0||Q.renderEnv?.revisionPreview!==void 0)&&(Q.renderEnv={...Q.renderEnv},W?Q.renderEnv.revisionPreview=W:delete Q.renderEnv.revisionPreview),e.layoutWithRegions?n$1.layoutDocumentWithRegionsAfterEdit(JSON.stringify(A)):n$1.layoutDocumentJson(JSON.stringify(A)),u=C.previewVersion,Se&&(Se.layoutPreviewVersion=u,Se.layoutStale=false);},h=(A,Q=Es)=>{if(A==="begin"||A==="resume"){A==="begin"&&(i$1=a);let C=A==="begin"?n$1.beginRegionLayout(e.layoutInput):n$1.resumeRegionLayout(Q);return C.layoutJson!==void 0&&(g(),x=true,o=true),C}if(A==="initial"){i$1=a;let C=n$1.layoutDocumentWithRegionsExactPrefixRetained(e.layoutInput,Math.max(e.provisionalPages??0,e.displayWindow?.[1]??0));C.provisional&&(p={pages:C.pages,documentWidth:C.documentWidth,version:n$1.proposalEngine.version()},wt=C.pages,Ye={layoutInput:e.layoutInput,workerAuthoritative:true,extras:e.extras}),je=p?null:n$1.proposalEngine.version(),sr=true,o=true;return}p&&co(),A==="complete"?(i$1=a,e.layoutWithRegions?n$1.layoutDocumentWithRegionsRetained(e.layoutInput):n$1.layoutDocumentJson(s),x=true):(f(),je=n$1.proposalEngine.version()),p&&g(),o=true;},b=()=>p?{layoutProvisional:true,finalizedPages:p.pages,...p.documentWidth===void 0?{}:{documentWidth:p.documentWidth}}:(x&&(je=n$1.proposalEngine.version(),x=false),{}),v,R,w,P,T=(A,Q)=>((P?.frame!==A||P.frameEpoch!==A.frameEpoch||P.layoutRevision!==he||P.version!==Q)&&(P?.queries.dispose(),P={frame:A,frameEpoch:A.frameEpoch,layoutRevision:he,version:Q,queries:J(A.displayList,y()??void 0)}),P.queries),O=()=>{let A=n$1.proposalEngine.version();if(o||!Y){if(!v||v.version!==A){let Q=JSON.stringify({...JSON.parse(e.extras),headersFooters:JSON.parse(n$1.retainedHeadersFootersJson()??"null")});v={version:A,frame:s$2(null,q$1(n$1.buildDisplayListFrame(Q,0)))};}return v}return {frame:Y,version:A}},I=(A,Q=1/0)=>{let C=A.sticky?n$1.resolveStickyPosition({story:A.story,encoded:A.sticky}):A;if(!C||C.story!=="body"&&!C.story.startsWith("body:"))return;let W=Qe(n$1).positionOf(C,"body");if(W===null)return;let{frame:$,version:G}=O(),Z=$;if(p&&Q===p.pages){let j=Z.pages.filter(({page:pe,pageIndex:ye})=>ye<Q&&pe.unbuilt&&pe.positionSpan&&W>=pe.positionSpan[0]&&W<=pe.positionSpan[1]).map(({pageIndex:pe})=>pe);if(j.length){Z=s$2(Z,q$1(n$1.buildDisplayPagesFrame(j,Z.frameEpoch))),o||!Y?v={version:G,frame:Z}:Y=Z;for(let pe of j)Se?.pages.add(pe);}}let K=T(Z,G),ae=K.rangeRects(W,W+1).find(j=>j.height>0&&j.pageIndex<Q&&Z.pages[j.pageIndex]&&!Z.pages[j.pageIndex].page.unbuilt);if(ae)return ae.pageIndex;let fe=n$1.geometryReader.locateParagraph(C.story,C.paraId);if(C.offset!==fe.end-fe.start)return;let N=K.caretRect(W);return N&&N.height>0&&N.pageIndex<Q&&Z.pages[N.pageIndex]&&!Z.pages[N.pageIndex].page.unbuilt?N.pageIndex:void 0};sl(n$1);let F=Qr(n$1,e,{getLayoutReservations(){return JSON.parse(e.layoutInput).renderEnv?.reservations??null},setRenderEnvironment(A,Q){Q!==void 0&&(a=Q??(a&&{version:a.version,key:null}));let C=JSON.parse(e.layoutInput);if(C.renderEnv={...C.renderEnv,...A},e.layoutInput=JSON.stringify(C),!e.layoutWithRegions){let W=JSON.parse(s);W.workerOwned.renderEnv={...W.workerOwned.renderEnv,...A},s=JSON.stringify(W);}},supportsFontEnvironment:true,proposals:m,collaboration:Nt!==null,readSelectionLayout(){let{version:A,frame:Q}=O(),C=Q,W=R,$=new Set,G=K=>{C=s$2(C,q$1(K)),o||!Y?v={version:A,frame:C}:(Y=C,Se&&(Se.selectionFrames??(Se.selectionFrames=[])).push(K),Se&&(Se.reviewFrame={frameEpoch:C.frameEpoch,previewVersion:u}));},Z=()=>{if($.size){G(n$1.buildDisplayPagesFrame([...$].sort((K,ae)=>K-ae),C.frameEpoch));for(let K of $)Se?.pages.add(K);$.clear();}};if(W){let K=Ot(C,W.pageId)??C.pages[Math.max(0,Math.min(C.pages.length-1,Math.trunc(W.pageIndex)))];K?.page.unbuilt&&$.add(K.pageIndex);}if(w){let{focus:K,direction:ae,distance:fe}=w,N=K.story==="body"||K.story.startsWith("body:")?"body":K.story.split(":").slice(0,2).join(":"),j=Qe(n$1).positionOf(K,N);if(j!==null&&N==="body"){let pe=()=>{let M=T(C,A).sourceState?.();return M?.status!=="error"?false:(ql(C,A,M.error),true)},ye,se=M=>{if(ye===void 0){let k=n$1.geometryReader.locateParagraph(K.story,K.paraId);ye=K.offset===k.end-k.start;}let c=T(C,A),y=ye&&j>0?c.rangeRectsOnPages?.(j-1,j,M,M).at(-1):void 0;return !y&&ye&&pe()&&(y=c.visualLinesOnPage(M).filter(k=>k.paraId===K.paraId&&k.from<j&&k.to===j).at(-1)),y&&y.height>0?{...y,x:y.x+y.width,width:0}:null},te=T(C,A).caretRect(j),D=pe();if(!te||te.height<=0||C.pages[te.pageIndex]?.page.unbuilt)for(let{page:M,pageIndex:c}of C.pages){if(M.unbuilt)continue;let y=se(c);if(y){te=y;break}}if(!te||te.height<=0||C.pages[te.pageIndex]?.page.unbuilt){let M=new Set;te&&C.pages[te.pageIndex]?.page.unbuilt&&M.add(te.pageIndex);for(let{page:k,pageIndex:E}of C.pages)k.unbuilt&&k.positionSpan&&j>=k.positionSpan[0]&&j<=k.positionSpan[1]&&M.add(E);let c=M.values().next().value??-1;D=pe()||D;let y=0;for(let k of M){if(D&&y>=2)break;if(D&&y>0&&k!==c+1)continue;if(y+=1,G(n$1.buildDisplayPagesFrame([k],C.frameEpoch)),te=T(C,A).caretRect(j),(!te||te.height<=0||C.pages[te.pageIndex]?.page.unbuilt)&&(te=se(k)??te),D=pe()||D,te&&te.height>0&&!C.pages[te.pageIndex]?.page.unbuilt&&te.pageIndex===k){Se?.pages.add(k);break}let E=n$1.releaseDisplayPagesFrame([k],C.frameEpoch);if(E===null)throw new Error("Caret probe page could not be released");if(G(E),te&&te.height>0&&!C.pages[te.pageIndex]?.page.unbuilt)break}}if(te&&te.height>0&&!C.pages[te.pageIndex]?.page.unbuilt)if(fe!==void 0){let M=0,c=C.pages.map(({page:ne,pageIndex:ie})=>{let st={pageIndex:ie,top:M,bottom:M+ne.height};return M+=ne.height+16,st}),k=c[te.pageIndex].top+te.y+te.height/2+(ae==="down"?fe:-fe),E=ne=>Math.max(ne.top-k,0,k-ne.bottom),q=c.reduce((ne,ie)=>E(ie)<E(ne)?ie:ne),X=q.pageIndex+(ae==="down"?1:-1);for(let ne of [q.pageIndex,X])C.pages[ne]?.page.unbuilt&&$.add(ne);}else {let M=te.pageIndex+(ae==="up"?-1:1);C.pages[M]?.page.unbuilt&&$.add(M);}}}return Z(),w&&(w.queryFrame={frame:C,version:A}),{frame:C,layoutRevision:he}}}),_={causes:new Set(["other"]),pages:new Set,updates:[],layoutPreviewVersion:u,layoutStale:e.recoveryState!==void 0},L=Nt?.wrap(F)??F,B={...L,...L.recoveryState?{recoveryState:()=>({...L.recoveryState(),comments:n$1.commentRecoveryState?.(),layoutReservations:{values:JSON.parse(e.layoutInput).renderEnv?.reservations??{},set:a}})}:{}};Se=_;let U={character:{backward:"result",forward:"result",up:"complete",down:"complete"},word:{backward:"result",forward:"result",up:"complete",down:"complete"},line:{backward:"result",forward:"result",up:"interior",down:"interior"},page:{backward:"complete",forward:"complete",up:"complete",down:"complete"},paragraph:{backward:"interior",forward:"interior",up:"complete",down:"complete"},"document-boundary":{backward:"result",forward:"complete",up:"complete",down:"complete"}},J$1=new Set(["propose","setProposalStates","withdrawProposals"]),z$1=(A,Q,C)=>{if(!p||_.layoutStale)return false;if(J$1.has(A.kind))return true;if(C!==void 0){if(!C||C.anchor.story!==C.focus.story||C.anchor.paraId!==C.focus.paraId||C.anchor.offset!==C.focus.offset||C.focus.story!=="body")return false;let $=I(C.focus,p.pages);if($===void 0)return false;let{frame:G,version:Z}=O(),K=Qe(n$1).positionOf(C.focus,"body");if(K===null)return false;let ae=T(G,Z),fe=ae.caretRect(K);if(!fe||fe.height<=0||fe.pageIndex!==$||ae.imageByPos(K)||!G.pages[$].page.primitives.some(N=>(N.kind==="glyphRun"||N.kind==="text")&&N.docStart!==void 0&&N.docEnd!==void 0&&N.docStart<=K&&K<=N.docEnd))return false;if(A.kind==="selectPoint"||A.kind==="extendSelection"){let N=A.payload,j=ae.hitTestRegions(N.page.pageIndex,N.x,N.y);if(j?.region!=="body"||j.target!=="text")return false}}let W=Q.predecessorSelection??B.selection();switch(A.kind){case "selectPoint":case "extendSelection":{let $=A.payload,G=$?.page?.pageIndex;if(G===void 0||!Number.isSafeInteger(G)||G<0||G>=p.pages||typeof $?.page?.pageId!="string")return false;let Z=Ot(O().frame,$.page.pageId);return !Z||Z.pageIndex!==G?false:A.kind!=="extendSelection"&&!$.modifiers?.shift||!!W&&I(W.anchor,p.pages)!==void 0}case "navigate":{let $=A.payload,G=$&&U[$.unit]?.[$.direction];if(!G||G==="complete"||!W)return false;let Z=I(W.focus,p.pages);return Z===void 0||I(W.anchor,p.pages)===void 0?false:G==="result"||Z<p.pages-1}default:return false}},ee=0,oe=Ii({init:e,registry:{handlers:{},policies:{}},selectionAck:{echoContext(){if(o||!Y||Y.frameEpoch!==ee||je!==n$1.proposalEngine.version()||B.editState().storedMarks||!An||An.engine!==n$1||An.cache!==kt)return;let A=ys({engine:n$1,selection:B.selection(),layout:{frame:Y,layoutRevision:he},glyphs:An.sources.provider(_t*Lt,true)});return A?.glyphs?A:void 0},deferFrame(A){cc.add(A);}},hooks:{...B,async preflight(A,Q){(_.causes??(_.causes=new Set)).add(["select","selectPoint","extendSelection","navigate","selectTableCells"].includes(A.kind)?"selection":"other"),(A.kind==="selectPoint"||A.kind==="extendSelection"||A.kind==="navigate"||A.kind==="moveEmbed")&&await z(),p&&!await oe.withFrameWork(async()=>z$1(A,Q))&&await Is(oe),R=A.kind==="moveEmbed"?A.payload?.drop?.page:A.kind==="selectPoint"||A.kind==="extendSelection"?A.payload?.page:void 0;let C=A.kind==="navigate"?A.payload:void 0;if((C?.unit==="line"||C?.unit==="page")&&(C.direction==="up"||C.direction==="down")){let G=Q.predecessorSelection?.focus,Z=G?.sticky?n$1.resolveStickyPosition({story:G.story,encoded:G.sticky}):G??n$1.selection()?.head;Z&&(w={focus:C.unit==="page"?Er(n$1,Z)??Z:Z,direction:C.direction,...C.unit==="page"?{distance:C.distance}:{}});}let W=w?y():null,$=W?.verticalMoveJson;W&&$&&(W.verticalMoveJson=(...G)=>{try{return $.apply(W,G)}catch(Z){let K=w?.queryFrame;throw K&&ql(K.frame,K.version,Z),Z}});try{let G=await B.preflight(A,Q);if(p&&(G.status!=="ready"||!z$1(A,Q,G.prepared.selection))&&(await Is(oe),G=await B.preflight(A,Q)),G.status==="ready"&&G.prepared.selection&&(A.kind==="selectPoint"||A.kind==="extendSelection"||A.kind==="navigate")&&(_.selectionContext=!0),A.kind==="setFontEnvironment"&&G.status==="ready")try{d.set(G.prepared,await l.prepare(A.payload));}catch(Z){if(Z instanceof WebAssembly.RuntimeError)throw Z;return {status:"refused",reason:"invalid-font-environment",selection:B.selection(),editState:B.editState()}}return G.status!=="ready"&&(_.causes??(_.causes=new Set)).add("other"),G}finally{W&&$&&(W.verticalMoveJson=$),R=void 0,w=void 0;}},async apply(A,Q){if(A.command.kind==="setFontEnvironment"){let W=d.get(A);if(!W)throw new Error("Worker font environment was not prepared");let $=l.commit(W,(G,Z)=>{n$1.clearFonts(),kt=null;let K=gs(n$1,G);if(K.ids.some(fe=>fe===null))throw new Error("Worker font registration failed");let ae=JSON.parse(e.layoutInput);if(ae.measurement={...ae.measurement,fontChains:Z},e.layoutInput=K.remap(JSON.stringify(ae)),e.extras=K.remap(JSON.stringify({...JSON.parse(e.extras),fontChains:Z})),!e.layoutWithRegions){let fe=JSON.parse(s);fe.workerOwned.measurement=JSON.parse(e.layoutInput).measurement,s=JSON.stringify(fe);}});d.delete(A),de({id:0,ok:true,fontEnvironmentEvent:{...$,phase:"ready",session:e.session,incarnation:e.incarnation,epoch:e.epoch}}),ln+=1,he+=1,je=null;for(let G of Rt)We.add(G);zt.clear(),De=null,to();}let C=await B.apply(A,Q);if(C.status==="applied"||C.status==="noop"&&["setRenderEnvironment","setFontEnvironment"].includes(A.command.kind))try{h();}catch(W){throw W instanceof WebAssembly.RuntimeError?W:_n=new i("message",`Projection failed after ${A.command.kind}: ${W instanceof Error?W.message:String(W)}`)}return C},async frame({coversThroughSeq:A,full:Q}){let C=_.causes;_.causes=new Set;let W=_.publishedGeometry,$=_.selectionFrames?.splice(0)??[],G=$.map(H=>q$1(H)),Z=W?.frameEpoch;for(let H of G)Z=!H.full&&H.baseFrameEpoch===Z&&H.docEpoch===W?.docEpoch&&H.layoutEpoch===W?.layoutEpoch?H.frameEpoch:void 0;let K=n$1.proposalEngine.version(),ae=()=>JSON.stringify({...JSON.parse(e.extras),headersFooters:JSON.parse(n$1.retainedHeadersFootersJson()??"null")}),fe=ae(),N=!Q&&C?.size===1&&C.has("selection")&&!o&&!_.layoutStale&&!_.viewport&&!_.updates.length&&W!==void 0&&!W.provisional&&Y!==null&&Z===Y.frameEpoch&&W.docEpoch===Y.docEpoch&&W.layoutEpoch===Y.layoutEpoch&&W.documentVersion===K&&W.layoutRevision===he&&W.layoutInput===e.layoutInput&&W.extras===fe&&W.pixelRatio===_t*Lt,j=_.viewport,pe=_.selectionContext;_.selectionContext=void 0;let ye=_.window??sn??e.displayWindow,se=_.window??(N||pe?ye??[0,0]:void 0);_.viewport=void 0;let te=[..._.pages];_.pages.clear();let D=_.repaintPictures===true;_.repaintPictures=false,j?(_.window=[j.start,j.end],sn=_.window,n$1.setDisplayWindow(..._.window),n$1.setDisplayRetainBuiltPages(false)):te.length&&!_.window&&!N&&(sn=[Math.min(...te),Math.max(...te)+1],n$1.setDisplayWindow(...sn));let M=_.updates.splice(0);for(let H of M)n$1.applyUpdate(H);(M.length||_.layoutStale)&&h(),K=n$1.proposalEngine.version();let c=u,y=o;y&&(fe=ae()),o=false;let k=N?$:[],E=N,q=new Set,X=_,ne=se||ye||j?X.builtPages??(X.builtPages=new Map(Y?.pages.filter(({page:H})=>!H.unbuilt).map(({pageId:H,pageIndex:re})=>[H.toString(),re]))):void 0,ie=H=>{H.full&&(E=false);for(let re of H.operations)re.kind==="upsert"?q.add(re.pageIndex):E=false;if(ne){H.full&&ne.clear();for(let re of H.operations)re.kind==="remove"||re.kind==="upsert"&&re.page.unbuilt?ne.delete(re.pageId.toString()):(re.kind==="upsert"||re.kind==="move"&&ne.has(re.pageId.toString()))&&ne.set(re.pageId.toString(),re.pageIndex);}};if(N)for(let H of G)ie(H);for(let H of te){let re=Y?.pages[H];re&&!re.page.unbuilt&&ne?.set(re.pageId.toString(),re.pageIndex);}let st=new Set(te);if(j&&Y)for(let H=j.start;H<Math.min(j.end,Y.pages.length);H+=1)Y.pages[H]?.page.unbuilt&&st.add(H);let _e=(N||te.length||j)&&!y?n$1.buildDisplayPagesFrame([...st],N?Y.frameEpoch:Q?0:ee):n$1.buildDisplayListFrame(fe,Q?0:ee),Ne=N?G[0]:void 0;te.length&&y&&(Ne=Nn(_e,c),ie(Ne),k.push(_e),_e=n$1.buildDisplayPagesFrame(te,Ne.frameEpoch));let ve=await Ur(_e,false,true,true,c);if(ie(ve.delta),!Y)throw new Error("Command frame is unavailable");let at=ve.caret.caretRect?.pageIndex,uo,Ws=false;if(se||j){let[H,re]=_.window??se,ge=new Set(te),He=B.selection(),Zt=He?.focus,Te=Zt?.sticky?n$1.resolveStickyPosition({story:Zt.story,encoded:Zt.sticky}):Zt,go=ve.caret.caretRect;if(Te&&(Te.story==="body"||Te.story.startsWith("body:"))&&(!go||go.height<=0||Y.pages[go.pageIndex]?.page.unbuilt)){let Ze=n$1.geometryReader.locateParagraph(Te.story,Te.paraId),fn=Ze.end-Ze.start,qt=X.caretPage===void 0?void 0:Y.pages[X.caretPage],Wn=null;if(X.caretFocus?.story===Te.story&&X.caretFocus.paraId===Te.paraId&&qt&&qt.pageId.toString()===X.caretPageId&&!qt.page.unbuilt)for(let It of qt.page.primitives){if(It.paraId!==Te.paraId||It.fragmentDocStart===void 0||It.fragmentDocEnd===void 0)continue;let mn=It.fragmentDocEnd-It.fragmentDocStart-2,Yn=fn-mn;if(mn<0||Yn<0)continue;let ue=It.fragmentDocStart+1+Math.min(Math.max(0,Te.offset-Yn),mn);if(Wn!==null&&Wn!==ue){Wn=null;break}Wn=ue;}let Bt=Wn??Qe(n$1).positionOf(Te,"body");if(Bt!==null){let It=n$1.proposalEngine.version(),mn=Je=>{let Pe=Te.offset===fn&&Bt>0?T(Y,It).rangeRectsOnPages?.(Bt-1,Bt,Je,Je).at(-1):void 0;return Pe&&Pe.height>0?{...Pe,x:Pe.x+Pe.width,width:0}:null},Yn=async Je=>{Ne??(Ne=ve.delta),k.push(ve.bytes),ve=await Ur(Je,false,true,true,c),ie(ve.delta),Ws=true;},ue=T(Y,It).caretRect(Bt);if(!ue||ue.height<=0||Y.pages[ue.pageIndex]?.page.unbuilt)for(let[Je,Pe]of ne){let en=Y.pages[Pe];if(en?.pageId.toString()!==Je||en.page.unbuilt)continue;let Gs=mn(Pe);if(Gs){ue=Gs;break}}if(!ue||ue.height<=0||Y.pages[ue.pageIndex]?.page.unbuilt){let Je=new Set;for(let{page:Pe,pageIndex:en}of Y.pages)Pe.unbuilt&&Pe.positionSpan&&Bt>=Pe.positionSpan[0]&&Bt<=Pe.positionSpan[1]&&Je.add(en);ue&&Y.pages[ue.pageIndex]?.page.unbuilt&&Je.add(ue.pageIndex);for(let Pe of Je){if(await Yn(n$1.buildDisplayPagesFrame([Pe],Y.frameEpoch)),ue=T(Y,It).caretRect(Bt),(!ue||ue.height<=0||Y.pages[ue.pageIndex]?.page.unbuilt)&&(ue=mn(Pe)??ue),ue&&ue.height>0&&!Y.pages[ue.pageIndex]?.page.unbuilt&&ue.pageIndex===Pe)break;let en=n$1.releaseDisplayPagesFrame([Pe],Y.frameEpoch);if(en===null)throw new Error("Caret probe page could not be released");if(await Yn(en),ue&&ue.height>0&&!Y.pages[ue.pageIndex]?.page.unbuilt)break}}let xo=ue&&Y.pages[ue.pageIndex];if(ue&&ue.height>0&&xo&&!xo.page.unbuilt){at=ue.pageIndex;let Je=He?.anchor,Pe=Je?.sticky?n$1.resolveStickyPosition({story:Je.story,encoded:Je.sticky}):Je;Pe?.story===Te.story&&Pe.paraId===Te.paraId&&Pe.offset===Te.offset&&(uo={pageId:xo.pageId.toString(),pageIndex:ue.pageIndex,x:ue.x,y:ue.y,height:ue.height});}}}at!==void 0&&ge.add(at);for(let Ze=H;Ze<Math.min(re,Y.pages.length);Ze+=1)ge.add(Ze);let ho=[...ge].filter(Ze=>Y.pages[Ze]?.page.unbuilt);ho.length&&(Ne??(Ne=ve.delta),k.push(ve.bytes),ve=await Ur(n$1.buildDisplayPagesFrame(ho,Y.frameEpoch),false,true,true,c),ie(ve.delta));let bo=_.window?[...ne].flatMap(([Ze,fn])=>{let qt=Y.pages[fn];return qt?.pageId.toString()===Ze&&!qt.page.unbuilt&&!ge.has(fn)?[fn]:[]}):[];if(bo.length){let Ze=n$1.releaseDisplayPagesFrame(bo,Y.frameEpoch);if(Ze===null)throw new Error("Viewport display pages could not be released");Ne??(Ne=ve.delta),k.push(ve.bytes),ve=await Ur(Ze,false,true,true,c),ie(ve.delta);}X.caretPage=at,X.caretPageId=at===void 0?void 0:Y.pages[at]?.pageId.toString(),X.caretFocus=Te?{story:Te.story,paraId:Te.paraId}:void 0,uo&&(ve.caret={frameEpoch:Y.frameEpoch,caretRect:uo}),(Ws||ho.length||bo.length)&&(P?.queries.dispose(),P=void 0);}let Xe={frame:Y,layoutRevision:he},Ys=j?.rasterScale!==void 0&&!te.length&&!M.length&&!y&&ye?.[0]===j.start&&ye?.[1]===j.end;if(j?.rasterScale!==void 0){let H=new Set;for(let re=j.start;re<Math.min(j.end,Xe.frame.pages.length);re+=1)H.add(re);at!==void 0&&H.add(at),ic(j.rasterScale,H),e.rasterScale=j.rasterScale;}let jn=new Set(te);if(j&&!Ys)for(let H=j.start;H<Math.min(j.end,Xe.frame.pages.length);H+=1)jn.add(H);(se||j)&&at!==void 0&&!Ys&&jn.add(at),kt||(kt=new a$3({provider:(H,re)=>n$1.outlineGlyphJson(H,re)}));let Wt=_t*Lt,Kt=_.echoRaster;Kt&&Kt.pixelRatio!==Wt&&We.add(Kt.pageId);let po=Nd(kt,n$1,Q),pn=B.editState().storedMarks?void 0:ys({engine:n$1,selection:B.selection(),layout:Xe,glyphs:po.provider(Wt)});pe&&pn?.glyphs&&jn.add(pn.page.pageIndex);let Qt=pn?.glyphs&&(Q||jn.has(pn.page.pageIndex)||We.has(pn.page.pageId))?pn:void 0,fo=po.unsent(Qt),mo=new Map,Bs=new Set,Js={glyphCache:kt,async resolveImage(H){let re=Tt.get(H);if(re)return re;if(Bs.has(H))return null;let ge=mo.get(H);if(!ge)try{let He=/^media:(0|[1-9]\d*)$/.test(H)?n$1.mediaDataUrl(H):H;if(!He||!He.startsWith("data:")&&!He.startsWith("blob:"))return null;ge=await createImageBitmap(await(await fetch(He)).blob()),mo.set(H,ge);}catch{return Bs.add(H),null}return ge}},Yt=new Set,Us=at??0;if(at!==void 0&&Yt.add(Us),Qt&&Yt.add(Qt.page.pageIndex),Kt&&We.has(Kt.pageId)){let H=Ot(Xe.frame,Kt.pageId);H&&Yt.add(H.pageIndex);}for(let H of te)Yt.add(H);if(_.window||se){let[H,re]=_.window??se;for(let ge=H;ge<Math.min(re,Xe.frame.pages.length);ge+=1)Yt.add(ge);}else if(Rt.size)for(let H of Rt){let re=Ot(Xe.frame,H);re&&Yt.add(re.pageIndex);}else {let H=Math.max(0,Us-1),re=sn??[H,H+3];for(let ge=re[0];ge<re[1];ge+=1)Yt.add(ge);}let yo=[...Yt].flatMap(H=>{let re=Xe.frame.pages[H];if(!re||re.page.unbuilt)return [];let ge=re.pageId.toString();return !Q&&!D&&!jn.has(H)&&!We.has(ge)?[]:[{pageId:ge,pageIndex:re.pageIndex}]}),bc=await m$3({layout:Xe,pixelRatio:Wt,echoContext:Qt,pages:yo,async rasterizePage(H){let re=Ot(Xe.frame,H.pageId);if(!re)throw new Error("Command page is unavailable");let ge=new OffscreenCanvas(1,1);return await b$2(ge,re.page,Js,Wt),ge.transferToImageBitmap()},async rasterizeBackground(H){let re=Ot(Xe.frame,H.page.pageId);if(!re)throw new Error("Command background is unavailable");let{rect:ge}=H,He=[ge.x,ge.y,ge.width,ge.height].map(Te=>Math.round(Te*Wt)),Zt=new OffscreenCanvas(He[2],He[3]);return await b$2(Zt,l$4(re,H),Js,Wt,1,{x:He[0],y:He[1],width:He[2],height:He[3]}),Zt.transferToImageBitmap()}}).finally(()=>{for(let H of mo.values())H.close();});Qt?_.echoRaster={pageId:Qt.page.pageId,pixelRatio:Wt}:yo.some(H=>H.pageId===Kt?.pageId)&&(_.echoRaster=void 0);for(let H of yo)We.delete(H.pageId);let Xt=e.provisionalPages===void 0?{}:b(),it=B.selection(),xc=$e(n$1),Vs=Xt.layoutProvisional?null:il(n$1,Xe.frame,xc),kc=Vs??(!Xt.layoutProvisional&&it&&(it.anchor.story!==it.focus.story||it.anchor.paraId!==it.focus.paraId||it.anchor.offset!==it.focus.offset)?(await Lo(n$1,Xe.frame,[{story:it.anchor.story,start:it.anchor,end:it.focus}],he)).rects[0]??[]:[]),lr=Xt.layoutProvisional?[]:E?W.parts:n$1.partGeometry(Y);!Xt.layoutProvisional&&E&&q.size&&(lr=[...lr.filter(H=>!q.has(H.pageIndex)),...n$1.partGeometry({...Y,pages:[...q].map(H=>Y.pages[H])})].sort((H,re)=>H.pageIndex-re.pageIndex));let Hs=bi({frame:ve.bytes,metadata:Ne?{...ve.delta,full:Ne.full,baseFrameEpoch:Ne.baseFrameEpoch}:ve.delta,pageFrames:k,coversThroughSeq:A,caret:ve.caret,layoutRevision:he,documentVersion:n$1.proposalEngine.version(),selectionRects:kc,selectionFocus:it&&!Xt.layoutProvisional&&!Vs&&!ve.caret.caretRect?ji(n$1,it,Xe)??void 0:void 0,...l.snapshot?{fontEnvironment:l.snapshot}:{},parts:lr,geometry:B.editState().readOnly||Xt.layoutProvisional?void 0:await ll(n$1,Y,B.selection(),he),...Xt,echoContext:Qt,...fo.length?{echoGlyphSets:fo}:{},stagedPresentation:bc.value,...i$1?{reservations:i$1}:{}});return po.sent(fo),ee=Hs.value.revision,_.publishedGeometry={frameEpoch:Y.frameEpoch,docEpoch:Y.docEpoch,layoutEpoch:Y.layoutEpoch,documentVersion:K,layoutRevision:he,layoutInput:e.layoutInput,extras:fe,pixelRatio:Wt,provisional:p!==null,parts:lr},_.reviewFrame={frameEpoch:Y.frameEpoch,previewVersion:c},xe=[],Hs},snapshot:()=>n$1.encodeState()}});return Be=e,Rs=T,er=()=>{Rs=null,P?.queries.dispose(),P=void 0,Ai(n$1);},be=oe,dc(e)&&(ot={certifiedPages:()=>p?.pages??null,certifiedVersion:()=>p?.version??null,begin:()=>h("begin"),resume:A=>h("resume",A),complete(){if(!p)return false;let A=Le;if(Le=null,A?.begun)try{if(h("resume",Es)?.layoutJson!==void 0)return !0}catch(Q){if(!jd(Q))throw Q}return h("complete"),true}},h("initial")),oe}function Nd(e,n,t){let r=An;return (!r||r.cache!==e||r.engine!==n)&&(r={cache:e,engine:n,sources:new Yr(n,++Bd)},An=r),t&&r.sources.resend(),r.sources}function dc(e){return e.layoutWithRegions&&e.provisionalPages!==void 0}function Is(e){return ot?.certifiedPages()==null?Promise.resolve(false):e.withFrameWork(async()=>ot?.complete()??false)}function jd(e){if(e instanceof WebAssembly.RuntimeError)return false;let n=e instanceof Error?e.message:String(e);return n==="no region layout to resume"||n==="the document or its fonts changed since the region layout began"}function Wd(){return Be?{...Be,epoch:Be.epoch+1,version:0,throughSeq:0,refusedSeqs:[],replayAppliedSeqs:[],selection:null}:null}function Mn(){if(!be)throw new Error("Worker commands are not initialized");return be}function Br(e,n,t){let r=c$1(t)?t.value:t;de({id:e,ok:true,[n]:r},c$1(t)?t.transfer:[]);}function Vt(e,n={},t=[]){let r=Mn(),s=Be;r.frame().then(o=>{if(be!==r){$t(e,new i("disposed","Worker command document was replaced"));return}let a=c$1(o)?o.value:o;de({...n,id:e,ok:true,...a.payload,selection:S?.selection()??null,...a.payload.pageFrames?{pageFrames:[...a.payload.pageFrames,a.payload.frame]}:{},commandFrame:{session:s.session,incarnation:s.incarnation,epoch:s.epoch,frame:a}},[...t,...c$1(o)?o.transfer:[]]);}).catch(o=>{if(be!==r){$t(e,new i("disposed","Worker command document was replaced"));return}de({id:e,ok:false,terminal:true,error:o instanceof Error?o.message:String(o),failureCode:o instanceof i?o.code:"message"});});}var Vr=null;function Qe(e){return Vr?.session!==e&&(Vr={session:e,index:new Ge({...e.geometryReader,selectionText:e.selectionText,resolveComment:e.resolveComment})}),Vr.index}var ut=null,Ps=null,De=null,Dt=null,Hr=null,Yd=8,Tn=null,xt=null,Ln=false,Xr=false,Zr=null,ao=false,Fn={full:false},or=class extends Error{},qr=class extends Error{},Gt;function On(){Gt===void 0&&(Gt=null);}var pt=false,Fs=false,As=null,ft=null,wt=null,Zn=null,Mt=null,sr=false,xe=[],he=0,ar=false,je=null,nr,Cs=0,_s=0,ln=-1,Y=null,kt=null,An=null,Bd=0,mt=new Map,jt=new Map,We=new Set,Rt=new Set,sn,_t=1,Lt=1,Gr={color:"#000",width:2},cn=null,St=null,an=null,rr=null,zt=new Set,Ae=null,_n=null,Ye=null,vt=null,Le=null,Jd=3,Ud=64,Vd=300,Es=2**32-1,Ht=null,Ds=4,io=0,tc=new Set,Hd=1e3,eo=new Set,Ms=0;function Os(){if(eo.size===0)return;let e=performance.now();e-Ms<Hd||(Ms=e,ir.postMessage({id:0,ok:true,progress:[...eo].at(-1)}));}Object.assign(globalThis,{__betterofficeEngineProgress:Os});ir.onmessage=e=>{let n=e.data;if(n.type==="editModule"){so(n.module instanceof WebAssembly.Module?n.module:null);return}dn.submit(Gd(n));};ir.onmessageerror=()=>so(null);function uc(){return new Promise(e=>{so=e;})}function Gd(e){let n=()=>nc(e);switch(e.type){case "edit":{let t=be;return {...t?.policy(e.command)??{lane:"input",reorderable:false,mutates:true,reframes:true},...zd(e.command.kind)?{userInput:true,holdsIdleTasks:true}:{},run:()=>(be&&be!==t&&be.policy(e.command),nc(e))}}case "checkpoint":return {...be?.checkpointPolicy()??{lane:"input",reorderable:false},run:n};case "commandInit":return {lane:"input",reorderable:false,reframes:true,run:n};case "requestFullFrame":return {lane:"input",reorderable:false,reframes:true,run:n};case "applyInput":case "applyDelete":return {lane:"input",userInput:true,holdsIdleTasks:true,mutates:true,run:n};case "applyUpdate":case "syncUpdate":case "commandUpdate":return {lane:"collab",userInput:true,mutates:true,run:n};case "proposal":return e.operation.kind==="snapshot"?{lane:"interactive",run:n}:{lane:"input",mutates:true,...e.operation.kind==="setStates"?{userInput:true,holdsIdleTasks:true}:{},run:n};case "open":case "openSource":case "previewSource":case "bootstrap":case "sync":case "destroy":return {lane:"input",mutates:true,run:n};case "warm":return {lane:"input",run:n};case "documentRead":return {lane:"interactive",...e.expectVersion!==void 0?{reorderable:true}:{},run:n};case "fontRequirements":case "encodeState":case "revisionCount":case "layoutJson":case "save":return {lane:"interactive",run:n};case "buildPages":return {lane:"interactive",reframes:true,key:"pages",run:n,...e.background?{replaceableBy:"pages",supersede:()=>Ls({id:e.id,ok:true,pageBuildSuperseded:true})}:{}};case "buildFrame":case "commandViewport":case "releasePages":case "completeLayout":case "attachCanvases":case "eraseCaret":return {lane:"interactive",reframes:true,run:n}}}function zd(e){return e==="moveEmbed"||e==="resizeObject"||e==="moveObject"||e==="setSectionMargins"||e==="setTabStops"||e==="removeTabStop"||e==="setHyperlink"||e==="setObjectProperties"||e==="setSectionProperties"||e==="setNoteProperties"||e==="setWatermark"||e==="setContentControlValue"||e==="addRepeatingItem"||e==="removeRepeatingItem"||e==="openPart"||e==="ensurePart"||e==="removePart"||e==="replaceMatches"||e==="undo"||e==="redo"||e==="select"||e==="insertText"||e==="replaceSelection"||e==="deleteBackward"||e==="deleteForward"||e==="paragraphBreak"||e==="lineBreak"||e==="toggleMark"||e==="formatRange"||e==="clearFormatting"||e==="setParagraphAttrs"||e==="applyParagraphStyle"||e==="formatSelection"||e==="toggleStrike"||e==="toggleList"||e==="changeIndent"||e==="insertImage"||e==="insertTable"||e==="pasteFragment"||e==="insertPageBreak"||e==="insertSectionBreak"||e==="setTableBorders"||e==="setTableProperties"}function $d(e){return e.type==="applyInput"||e.type==="applyDelete"||e.type==="applyUpdate"||e.type==="syncUpdate"||e.type==="sync"||e.type==="bootstrap"&&e.opened===true||e.type==="proposal"&&e.operation.kind!=="snapshot"}async function nc(e){eo.add(e.id),Ms=performance.now();try{if(Ae||_n)throw Ae??_n;if(io=e.id,(be||Ln)&&$d(e))throw new Error("Legacy mutations are unavailable in a worker command session");be&&e.type!=="edit"&&e.type!=="checkpoint"&&e.type!=="commandInit"&&e.type!=="requestFullFrame"&&e.type!=="commandUpdate"&&e.type!=="buildPages"&&e.type!=="commandViewport"?await be.withFrameWork(()=>rc(e)):await rc(e);}catch(n){$t(e.id,n);}finally{eo.delete(e.id);}}function Ls(e){Ae?$t(e.id,Ae):de(e);}function $t(e,n){let t=Ae??n;if(!Ae&&_n){de({id:e,ok:false,terminal:true,error:_n.message,failureCode:_n.code});return}if(h(t)||t instanceof i){let r=Nt&&h(t)?`Command ${t.refusal.seq} has an unknown outcome`:t.message;de({id:e,ok:false,error:r,commandError:{name:t.name,message:r,...h(t)?{refusal:t.refusal}:{}},...t instanceof i?{failureCode:t.code}:{}});return}if(t instanceof WebAssembly.RuntimeError){pc(e,t);return}de({id:e,ok:false,error:n instanceof Error?n.message:String(n),...t instanceof or?{code:"save-unavailable"}:{},...t instanceof qr?{code:"cut-kept"}:{}});}function pc(e,n){if(tc.has(e))return;tc.add(e),Ae=n;let t=hc();de({id:e,ok:false,error:t>0?`Document worker ran out of memory allocating ${t} bytes: ${n.message}`:`Document worker trapped: ${n.message}`,terminal:true,...t>0?{outOfMemory:true}:{}});}async function rc(e$1){if(!["edit","checkpoint","documentRead","fontRequirements","encodeState","revisionCount","layoutJson"].includes(e$1.type)&&!(e$1.type==="proposal"&&e$1.operation.kind==="snapshot")&&Se?.causes?.add("other"),S&&e$1.type==="sync"&&fc(e$1.snapshot),e$1.type!=="documentRead"&&e$1.type!=="fontRequirements"&&e$1.type!=="encodeState"&&e$1.type!=="revisionCount"&&e$1.type!=="save"&&e$1.type!=="warm"&&!(e$1.type==="proposal"&&e$1.operation.kind==="snapshot")&&ro(),e$1.type==="warm"){try{if(e$1.hostModule){let t=setTimeout(()=>so(null),1e4);await c(Ql.then(r=>(clearTimeout(t),r)));}else await a();de({id:e$1.id,ok:!0});}catch(t){e$1.hostModule&&(Ql=uc()),de({id:e$1.id,ok:false,error:t instanceof Error?t.message:String(t)});}return}if(e$1.type==="destroy"){on();return}if(e$1.type==="previewSource"){if(!S||!Ln||be)throw new Error("A source preview requires an opened source before commands");await lc(e$1.id,S,e$1.preview,()=>e$1.preview.layoutInput,performance.now());return}if(e$1.type==="commandInit"){if(!S||!Tn||pt)throw new Error("Worker commands require a whole opened document");if(be)throw new Error("Worker commands are already initialized");S.initializeComments(e$1.request.recoveryState?.comments),Qr||_d(Ol);let{hostImages:t,...r}=e$1.request;if(Xl(t),r.provisionalPages!==void 0&&(!Number.isSafeInteger(r.provisionalPages)||r.provisionalPages<1))throw new TypeError("Invalid provisional pages");Ln&&(ln=-1),rt(S,r.displayWindow,r.retainBuiltPages),zr({workerAuthoritative:true,state:new Uint8Array(0),selection:null,fonts:r.fonts,fontsRevision:0,renderInputs:[],measureInputs:[],layoutInput:r.layoutInput,layoutWithRegions:r.layoutWithRegions,layoutRevision:r.layoutRevision},void 0,false,false,void 0,void 0,r.fontRegistrationSlots?r:void 0,!r.layoutWithRegions||r.provisionalPages===void 0),ao=false,r.selection&&S.setSelection(r.selection.anchor,r.selection.focus),Mt?.(),Mt=null,xe=[],Br(e$1.id,"commandInitial",await ec(r).initial());return}if(e$1.type==="edit"){ot||await qn(),On(),De=null,vt=null;let t=await Mn().handler(void 0,e$1.command);Br(e$1.id,"commandAck",t);let r=c$1(t)?t.value:t;cc.delete(r)&&Vt(0);return}if(e$1.type==="checkpoint"){Br(e$1.id,"checkpoint",await Mn().checkpoint(void 0));return}if(e$1.type==="requestFullFrame"){Br(e$1.id,"commandAck",await Mn().requestFullFrame());return}if(e$1.type==="commandUpdate"){if(Mn(),!S)throw new Error("Document worker is not initialized");if(Nt)throw new Error("Collaboration merges use the ordered applyRemoteUpdate command");On(),De=null,vt=null,Se.updates.push(e$1.update),Vt(e$1.id);return}if(e$1.type==="commandViewport"){let{start:t,end:r,frameEpoch:s}=e$1.request;if(!Number.isSafeInteger(t)||t<0||!Number.isSafeInteger(r)||r<=t||!Number.isSafeInteger(s)||s<0)throw new TypeError("Invalid command viewport");let o=Mn();r>(ot?.certifiedPages()??r)&&await Is(o),Se.viewport=e$1.request,Vt(e$1.id),s>0&&ot?.certifiedPages()!=null&&!Le&&(Le={id:0,expectedFrameEpoch:s,paintCaret:false,blocks:Ud,begun:false,restarts:0,commandOwner:o},oc(Le));return}if(e$1.type==="openSource"){l(e$1.source);let t=e$1.source;if(S&&(!pt||be||t.cut))throw new Error("Document worker already holds a document");let r=pt?As:null;S&&on(true);let s=performance.now(),o;try{let a=t.collaboration,i=a?.clientClock!==void 0&&a.initialUpdate===void 0;o=await Cn(t.heapLimitBytes,i?void 0:a?.clientId);let l=Ts(o,t);if(l&&!i&&a?.clientClock!==void 0&&p(o.encodeStateVector(),o.clientId)<a.clientClock&&(on(!0),o=await Cn(t.heapLimitBytes),l=Ts(o,t)),!l){o.destroy(),de({id:e$1.id,ok:!0,previewRefused:!0});return}let{document:d,hostJson:m$1}=l;t.collaboration&&(Nt=yi(o,{onPipeOutput:nu}));let u=m(d),p$1={clientId:o.clientId,clientClock:p(o.encodeStateVector(),o.clientId)},x=o.svgMedia?.();tr=new Map(x?.map(({source:f,url:h})=>[f,h]));let g=x?.length?{svgMedia:x}:{};if(t.preview)await lc(e$1.id,o,typeof t.preview=="object"?t.preview:{},()=>JSON.stringify(a$1(u,24,{})),s,{sourceDocument:u,hostJson:m$1,...p$1,...g});else {let f=Ke(o.encodeStateVector());de({id:e$1.id,ok:!0,sourceDocument:u,hostJson:m$1,stateVector:f,...p$1,...g},[f]);}}catch(a){throw a instanceof WebAssembly.RuntimeError?a:(o&&S===o?on(true):o?.destroy(),r&&await tu(r)?new qr(a instanceof Error?a.message:String(a)):a)}return}if(e$1.type==="open"){if(S&&(!pt||e$1.previewBlocks!==void 0))throw new Error("Document worker already holds a document");S&&on(true),xt=null,Fn={full:false};let t=await Cn(e$1.heapLimitBytes),r;try{e$1.previewBlocks===void 0&&t.setDirectBatches(!0),r=e$1.previewBlocks===void 0?t.openDocx(new Uint8Array(e$1.bytes),e$1.digest,e$1.generation):t.openDocxPreview(new Uint8Array(e$1.bytes),e$1.previewBlocks,e$1.previewParagraphBudget);}catch(o){throw o instanceof WebAssembly.RuntimeError||t.destroy(),o}if(r===null){t.destroy(),de({id:e$1.id,ok:true,previewRefused:true});return}ut?.destroy(),ut=null,S=t,e$1.previewBlocks===void 0&&(Gt=void 0),Tn={heapLimitBytes:e$1.heapLimitBytes},pt=e$1.previewBlocks!==void 0,pt||(xt={bytes:e$1.bytes,hostJson:r});let s=Ke(S.encodeStateVector());de({id:e$1.id,ok:true,hostJson:r,stateVector:s},[s]);return}if(e$1.type==="bootstrap"){let t=e$1.opened?null:Wd(),r=t?xt:null;if(e$1.opened){if(!S||!Tn)throw new Error("Document worker has no opened document");if(e$1.heapLimitBytes!==void 0&&e$1.heapLimitBytes!==Tn.heapLimitBytes)throw new Error("Document worker opened its document under another heap limit")}else {let d=r?{images:new Map(Tt),urls:tr}:null;if(d&&Tt.clear(),on(e$1.keepSurfaces===true),d){for(let[m,u]of d.images)Tt.set(m,u);tr=d.urls;}Gt=null,S=await Cn(e$1.heapLimitBytes),r&&S.openDocx(new Uint8Array(r.bytes),void 0,void 0,false);}Mt?.(),Mt=null,ft=null,un(),rt(S,e$1.displayWindow,e$1.retainBuiltPages);let{layoutJson:s,layoutMeta:o,provisional:a}=zr(e$1.snapshot,e$1.provisionalPages,e$1.layoutExtras!==void 0,e$1.opened!==true,e$1.layoutReply,e$1.headersFootersEpoch,void 0,!t||!dc({...t,layoutWithRegions:e$1.snapshot.layoutWithRegions}));if((ft!==null||wt!==null)&&rt(S,e$1.displayWindow,e$1.retainBuiltPages),a&&(Ye={layoutInput:e$1.snapshot.layoutInput,workerAuthoritative:e$1.snapshot.workerAuthoritative,extras:e$1.extras,layoutExtras:e$1.layoutExtras}),t){r&&S.markProjectionStories(S.geometryReader.storyIds()),xt=r;let m=await ec({...t,fonts:e$1.snapshot.fonts,layoutInput:e$1.snapshot.layoutInput,layoutWithRegions:e$1.snapshot.layoutWithRegions,layoutRevision:e$1.snapshot.layoutRevision,extras:$r(e$1.extras,e$1.layoutExtras,o?nr:void 0),displayWindow:e$1.displayWindow,retainBuiltPages:e$1.retainBuiltPages}).initial(),u=c$1(m)?m.value:m;de({id:e$1.id,ok:true,commandInitial:u,...u.frame.payload,selection:u.selection?{anchor:u.selection.anchor,head:u.selection.focus}:null,...o?{layoutMeta:o}:{},...s?{layoutJson:s}:{},...a?{layoutProvisional:true}:{}},[...c$1(m)?m.transfer:[],...o?[o.pageSizes.buffer]:[]]);return}ac();let i=performance.now(),l=S.buildDisplayListFrame($r(e$1.extras,e$1.layoutExtras,o?nr:void 0),e$1.expectedFrameEpoch);await At(e$1.id,l,performance.now()-i,xe,void 0,i,false,false,e$1.layoutExtras===void 0?void 0:o??s??void 0,a);return}if(e$1.type==="fontRequirements"){if(!S)throw new Error("Document worker is not initialized");let t=yc(S,e$1.layoutInput);Hr={owner:S,layoutInput:e$1.layoutInput},De={version:S.proposalEngine.version(),layoutInput:e$1.layoutInput,requirementsJson:t},de({id:e$1.id,ok:true,requirementsJson:t});return}if(e$1.type==="encodeState"){if(!S)throw new Error("Document worker is not initialized");let t=Ke(S.encodeState()),r,s;if(e$1.peerMetadata)if(!S.encodePeerMetadata)s="missing-capability: Worker cannot encode peer metadata";else try{r=Ke(S.encodePeerMetadata());}catch(o){if(!(o instanceof Error)||o.name!=="PeerMetadataError")throw o;s=`${o.code??"metadata-error"}: ${o.message}`;}de({id:e$1.id,ok:true,state:t,...e$1.peerMetadata?{peerMetadata:r,peerMetadataReason:s}:{},version:S.proposalEngine.version(),proposals:ut?.exportState()??{previewVersion:0,entries:[]}},r?[t,r]:[t]);return}if(e$1.type==="save"){if(pt)throw new or("Document worker is still opening");if(!S||!xt&&!Xr)throw new or("Document worker has no opened document to save");let t=xe;xe=[];let r=S.proposalEngine.version();try{let s=be?S.commentProjection(e$1.commentsSource!=="host"):null;Fn.commentIds=s?.sessionIds;let o=e$1.commentsSource==="host"?e$1.comments:s?.comments??e$1.comments,i=(Xr?await S.saveDocument(e$1.host,o,Fn):await S.save(new Uint8Array(xt.bytes),xt.hostJson,e$1.host,o,Fn,e$1.stories)).slice(0),l=e$1.stateVector?[Ke(S.encodeStateAsUpdate(e$1.stateVector))]:[],d=Ke(S.encodeStateVector()),m={saved:i,updates:l,stateVector:d,version:S.proposalEngine.version()};be&&m.version!==r?(On(),De=null,vt=null,Se.layoutStale=!0,Vt(e$1.id,m,[i,...l,d])):de({id:e$1.id,ok:!0,...m},[i,...l,d]);}finally{xe=t;}return}if(e$1.type==="revisionCount"){if(!S)throw new Error("Document worker is not initialized");let t=new Set(ut?.snapshot().proposals.flatMap(r=>r.revisionIds));de({id:e$1.id,ok:true,revisionCount:S.revisionCount(t)});return}if(e$1.type==="eraseCaret"){cn=null,St!==null&&await oo(false),de({id:e$1.id,ok:true});return}if(!S)throw new Error("Document worker is not initialized");if(e$1.type==="proposal"){if(!(be?sr:Mt))throw new Error("Document worker has not laid out its document");xe=[];let t=false;try{let r=ut??(ut=n(S.proposalEngine)),s=S.proposalEngine.version(),o=new Set(r.snapshot().proposals.map(v=>v.id)),a=S.storiesChangedSince(Number.MAX_SAFE_INTEGER).revision,i,l=[];switch(e$1.operation.kind){case "propose":i=r.propose(e$1.operation.peerStateVector?{...e$1.operation.request,expectVersion:S.proposalEngine.version()}:e$1.operation.request);break;case "setStates":i=r.setStates(e$1.operation.peerStateVector?{...e$1.operation.request,expectVersion:S.proposalEngine.version()}:e$1.operation.request);break;case "withdraw":i=r.withdraw(e$1.operation.peerStateVector?{...e$1.operation.request,expectVersion:S.proposalEngine.version()}:e$1.operation.request);break;case "removeComment":try{let v=S.selection()?.head.story??"body";S.applyRawOps(v,[{op:"removeComment",id:e$1.operation.id}]),l=[v];}catch{}break}t=e$1.operation.kind!=="snapshot";let d=S.storiesChangedSince(a).stories;i?.ok&&(l=[...l$1(o,i,d)]),S.markProjectionStories(l),d.length>0&&(vt=null);let m=xe.map(Ke),u="peerStateVector"in e$1.operation&&e$1.operation.peerStateVector?Ke(S.encodeStateAsUpdate(e$1.operation.peerStateVector)):void 0,p=Ke(S.encodeStateVector()),x=r.snapshot(),g=x.version,f=H(S.geometryReader,x,g===s&&(g===Ps||b(S.geometryReader)));Ps=f.version;let h=De?.version===s&&e$1.operation.kind==="propose"&&i?.ok===!0&&m$1(x)===void 0&&qd(S,e$1.operation.request,i);De=De&&(h||e$1.operation.kind==="snapshot"&&De.version===x.version)?{...De,version:x.version}:null;let b$1=m$1(x);e$1.operation.kind==="setStates"&&i?.ok===!0&&d.length===0&&Hr?.owner===S&&(De=Qd(S,Hr.layoutInput,b$1,x.version)),de({id:e$1.id,ok:!0,proposal:{...i===void 0?{}:{result:i},mirror:{version:g,proposals:r.exportState()},changedStories:d,projectionStories:l,updates:m,...u===void 0?{}:{peerDiff:u},stateVector:p,geometry:f,...De?{fontRequirements:{layoutInput:De.layoutInput,requirementsJson:De.requirementsJson}}:{}}},[...m,p,...u===void 0?[]:[u]]);}catch(r){if(Ae)throw Ae;if(r instanceof WebAssembly.RuntimeError)throw r;de({id:e$1.id,ok:false,error:r instanceof Error?r.message:String(r),...t||xe.length>0?{terminal:true}:{}});}finally{xe=[];}return}if(e$1.type==="documentRead"){let t=S.proposalEngine;if(e$1.expectVersion!==void 0&&t.version()!==e$1.expectVersion){de({id:e$1.id,ok:true,superseded:true});return}let r,s=[];switch(e$1.read.kind){case "commentInsertionRange":r=g(S,e$1.read.paraId,e$1.read.search);break;case "commentSelectionRange":r=li(S,e$1.read.selection);break;case "collabStateVector":r=S.encodeStateVector();break;case "collabDiff":r=gi(S,e$1.read.stateVector);break;case "collabDiffChunks":{let o=S.encodeStateAsUpdateChunks(e$1.read.stateVector,e$1.read.maxChunkBytes);s=o.map(a=>a.buffer),r=o;break}case "collabPresence":r=!Y||t.version()!==e$1.read.expectVersion||je!==t.version()||e$1.read.expectFrameEpoch!==Y.frameEpoch||e$1.read.expectLayoutRevision!==he?null:await hi(S,Y,e$1.read.peers,e$1.read.pages,he);break;case "rawSelectionInfo":{let{anchor:o,focus:a}=e$1.read.selection;if(o.story!==a.story)throw new Error("Cross-story selection is unavailable");r=S.selectionText({story:o.story,start:o,end:a});break}case "clipboardSlice":{let o=S,a={storySegments:u=>o.storySegments(u),tablePayload:(u,p)=>o.tablePayload(u,p),mediaDataUrl:u=>o.mediaDataUrl(u)},{anchor:i,focus:l}=e$1.read.selection,d=S.cellSelection();if(!!d&&(d.anchor.story!==d.head.story||d.anchor.tableIndex!==d.head.tableIndex||d.anchor.row!==d.head.row||d.anchor.column!==d.head.column)&&d){let u=k(S.tablePayload(d.anchor.story,d.anchor.tableIndex));if(!!u&&j(u).anchors.some(x=>l.story===x.story||l.story.startsWith(`${x.story}:`))){r=m$2(a,{cells:d});break}}if(i.story!==l.story)throw new Error("Cross-story selection is unavailable");r=m$2(a,{story:i.story,from:k$1(S.geometryReader,i),to:k$1(S.geometryReader,l)});break}case "validateEdits":r=t.validateEdits(e$1.read.request);break;case "contentControlHandles":{let o=Y&&je===t.version()?Y:void 0,a;try{r=rl(S,o,he,o&&(()=>a??(a=J(o.displayList,y()??void 0))));}finally{a?.dispose();}break}case "partSnapshot":r={metadata:nn(S.partDocument()),geometry:Y&&je===t.version()?S.partGeometry(Y):[],frameEpoch:Y&&je===t.version()?Y.frameEpoch:null,layoutRevision:he};break;case "properties":r=Lr(S,e$1.read.target);break;case "sectionProperties":r=S.sectionProperties();break;case "exportStructuredWithPages":{ot?.complete()&&Vt(0);let o=e$1.read.currentRequest;if(e$1.read.workerFonts===true&&Be?.layoutWithRegions)try{let a=JSON.parse(o),i=JSON.parse(Be.layoutInput);a?.measurement&&typeof a.measurement=="object"&&!Array.isArray(a.measurement)&&i.measurement?.fontChains&&(a.measurement={...a.measurement,fontChains:i.measurement.fontChains},o=JSON.stringify(a));}catch{}r=S.exportStructuredWithPagesJson(e$1.read.options,lo(S,o));break}case "listContentControls":r=S.listContentControls(e$1.read.options);break;case "findContentControls":r=S.findContentControls(e$1.read.query,e$1.read.options);break;case "rangeHighlights":r=!Y||t.version()!==e$1.read.expectVersion||je!==t.version()||e$1.read.expectFrameEpoch!==void 0&&e$1.read.expectFrameEpoch!==Y.frameEpoch||e$1.read.expectLayoutRevision!==void 0&&e$1.read.expectLayoutRevision!==he?null:await Lo(S,Y,e$1.read.ranges,he);break;case "reviewSnapshot":{let o=ut??(ut=n(t)),a=Y,i=je??ot?.certifiedVersion()??null,l=o.snapshot().previewVersion,d=Se?.reviewFrame,m=!a||i!==t.version()||be&&(d?.frameEpoch!==a.frameEpoch||d?.previewVersion!==l)||e$1.read.expectPreviewVersion!==void 0&&e$1.read.expectPreviewVersion!==l?null:await pi(S,o,a,he,{queries:(u,p)=>Rs?.(u,p),index:Qe(S)});r=be&&m&&(m.previewVersion!==l||m.version!==i||o.snapshot().previewVersion!==l||t.version()!==i||Y?.frameEpoch!==a?.frameEpoch)?null:m;break}case "toolbarMetadata":r=xt?ri(xt.hostJson):Zr?Zr():{styles:[],fontFamilies:[]};break;case "paragraphIdentities":r=S.paragraphIdentities();break;case "resolveParagraphAnchors":r={results:e$1.read.anchors.map(o=>t.resolveParagraphAnchor(o))};break;case "readParagraphs":r=t.readParagraphs(e$1.read.request);break;case "listStories":r=S.listStories();break;case "readStories":r=S.readStories(e$1.read.request);break;case "findText":r=t.findText(e$1.read.request);break;case "findMatches":r=t.version()!==e$1.read.expectVersion?null:b$1(S.geometryReader,xs(S.geometryReader),e$1.read.searchText,e$1.read.options);break;case "navigationTarget":r=L(S.geometryReader,e$1.read.story,e$1.read.paraId);break;case "reviewTarget":r=ui(S,e$1.read.target);break;case "anchorTargets":{let o=S.geometryReader;r=I(o,e$1.read.targets,()=>D(o,o.version(),ut?.snapshot()??null));break}case "searchText":r=_l({...S.geometryReader,searchText:S.searchText,resolveStickyPosition:S.resolveStickyPosition},e$1.read.query,e$1.read.caseSensitive,e$1.read.carry);break;case "pointPosition":r=e$1.read.nativePoint?Y&&je===t.version()?await Nl(S,Y,he,e$1.read.nativePoint,e$1.read.expectVersion):null:Ll(Qe(S),e$1.read.hit,e$1.read.expectVersion);break;case "findParagraphs":r=a$2(S.geometryReader,e$1.read.query,e$1.read);break;case "selectionUnit":r=Yl(Qe(S),e$1.read.story,e$1.read.position,e$1.read.unit,e$1.read.expectVersion);break;case "selectionText":r=ks(Qe(S),e$1.read.story,e$1.read.anchor,e$1.read.head,e$1.read.expectVersion);break;case "bookmarkTarget":r=Gl(Qe(S),e$1.read.story,e$1.read.name,t.version());break;case "bookmarkPosition":r=vs(Qe(S),e$1.read.story,e$1.read.name,e$1.read.expectVersion);break;case "selectionInfo":r=Jl(Qe(S),e$1.read.story,e$1.read.anchor,e$1.read.head,e$1.read.expectVersion);break;case "paragraphTarget":r=Ul(Qe(S),e$1.read.story,e$1.read.paraId,e$1.read.expectVersion);break;case "commentTarget":r=Vl(Qe(S),e$1.read.story,e$1.read.commentId,e$1.read.expectVersion);break;case "revisionTarget":r=Hl(Qe(S),e$1.read.story,e$1.read.revisionId,e$1.read.expectVersion);break;case "sidebar":r=o(S.geometryReader,e$1.read.commentIds,e$1.read.expectVersion);break;case "headings":r=q(S.geometryReader,e$1.read.expectVersion);break;case "adjacentRevision":r=p$1(S.geometryReader,e$1.read.selection,e$1.read.direction,new Set(ut?.snapshot().proposals.flatMap(o=>o.revisionIds)));break;case "stickyAnchors":{let o=S;r=e$1.read.locs.map(a=>{try{return ii(o,a)}catch{return null}});break}}de({id:e$1.id,ok:true,read:{version:t.version(),value:r}},s);return}if(e$1.type==="layoutJson"){!ar||e$1.layoutRevision!==he||je!==S.proposalEngine.version()?de({id:e$1.id,ok:true,layoutJsonStatus:"stale"}):de({id:e$1.id,ok:true,layoutJsonStatus:"ok",layoutRevision:he,layoutJson:S.retainedLayoutJson()});return}if(e$1.type==="sync"){Mt?.(),Mt=null,ft=null,un(),rt(S,e$1.displayWindow,e$1.retainBuiltPages);let{layoutJson:t,layoutMeta:r,provisional:s}=zr(e$1.snapshot,e$1.provisionalPages,e$1.layoutExtras!==void 0,true,e$1.layoutReply,e$1.headersFootersEpoch);(ft!==null||wt!==null)&&rt(S,e$1.displayWindow,e$1.retainBuiltPages),s&&(Ye={layoutInput:e$1.snapshot.layoutInput,workerAuthoritative:e$1.snapshot.workerAuthoritative,extras:e$1.extras,layoutExtras:e$1.layoutExtras}),ac();let o=performance.now(),a=S.buildDisplayListFrame($r(e$1.extras,e$1.layoutExtras,r?nr:void 0),e$1.expectedFrameEpoch);await At(e$1.id,a,performance.now()-o,xe,void 0,o,false,e$1.paintCaret,e$1.layoutExtras===void 0?void 0:r??t??void 0,s);return}if(e$1.type==="buildPages"){let t=ft===null?wt:Math.min(ft,wt??ft),r=t===null?e$1.pages:e$1.pages.filter(a=>a<t);if(e$1.hostImages){let a=e$1.hostImagesFor;if(!be||!Be||!a||a.session!==Be.session||a.incarnation!==Be.incarnation||a.epoch!==Be.epoch){for(let{image:i}of e$1.hostImages)i.close();de({id:e$1.id,ok:true});return}Xl(e$1.hostImages),Se.repaintPictures=true;}if(be){for(let a of r)Se.pages.add(a);Vt(e$1.id);return}if(e$1.background&&r.length>Ds){let a={request:r===e$1.pages?e$1:{...e$1,pages:r},owner:S,frameEpoch:e$1.expectedFrameEpoch,frames:[],offset:0,started:performance.now(),engineMs:0,pagesPerSlice:Ds};Ht=a,dn.schedule({kind:"pageBuild",version:dn.version,generation:dn.generation,onStale:()=>"cancel",cancel:()=>{Ht===a&&ro();},fail:i=>{Ht===a&&(Ht=null),$t(a.request.id,i);},run:async i=>{if(Ht!==a)return "done";if(Ae)throw Ae;return io=a.request.id,await Zd(a,i)?"done":"yield"}});return}rt(S),xe=[];let s=performance.now(),o=S.buildDisplayPagesFrame(r,e$1.expectedFrameEpoch);await At(e$1.id,o,performance.now()-s,xe,void 0,s,false,e$1.paintCaret);return}if(e$1.type==="releasePages"){if(!Y||Y.frameEpoch!==e$1.expectedFrameEpoch||e$1.pages.some(({index:s,pageId:o})=>Y.pages[s]?.pageId.toString()!==o)){de({id:e$1.id,ok:true,superseded:true});return}let t=performance.now(),r=S.releaseDisplayPagesFrame(e$1.pages.map(({index:s})=>s),e$1.expectedFrameEpoch);if(r===null){de({id:e$1.id,ok:true,superseded:true});return}await At(e$1.id,r,performance.now()-t,[],void 0,t,false,e$1.paintCaret);return}if(e$1.type==="completeLayout"){if(ot||rt(S),Ye&&e$1.sliceBlocks&&!ot){co(),Le={id:e$1.id,expectedFrameEpoch:e$1.expectedFrameEpoch,paintCaret:e$1.paintCaret,blocks:e$1.sliceBlocks,begun:false,restarts:0},oc(Le);return}await qn(),await Ns(e$1.id,e$1.expectedFrameEpoch,e$1.paintCaret);return}if(e$1.type==="buildFrame"){Ye?.workerAuthoritative||await qn(),rt(S,e$1.displayWindow,e$1.retainBuiltPages),xe=[];let t=performance.now(),r=S.buildDisplayListFrame(e$1.extras,e$1.expectedFrameEpoch);await At(e$1.id,r,performance.now()-t,xe,void 0,t,false,e$1.paintCaret);return}if(e$1.type==="applyUpdate"||e$1.type==="syncUpdate"){if(On(),De=null,(e$1.update.length>0||e$1.type==="applyUpdate")&&S.applyUpdate(e$1.update),e$1.type==="applyUpdate")e$1.selection&&S.setSelection(e$1.selection.anchor,e$1.selection.head);else {let t=Ke(S.encodeStateAsUpdate(e$1.stateVector)),r=Ke(S.encodeStateVector());de({id:e$1.id,ok:true,version:S.proposalEngine.version(),stateVector:r,repair:t},[r,t]);}return}if(e$1.type==="attachCanvases"){let t=mt.size>0&&(_t!==e$1.devicePixelRatio||Lt!==e$1.zoom),r=new Set(e$1.pages.map(s=>s.pageId));for(let s of e$1.activePageIds)Rt.has(s)||r.add(s);for(let{pageId:s,canvas:o}of e$1.pages)mt.set(s,o);Rt=new Set(e$1.activePageIds),_t=e$1.devicePixelRatio,Lt=e$1.zoom,Gr=e$1.caretStyle;for(let[s,o]of mt)Rt.has(s)||(e(o),jt.delete(s),js(s));await oo(t?true:r),de({id:e$1.id,ok:true});return}await qn(),On(),De=null,vt=null,rt(S,e$1.displayWindow,e$1.retainBuiltPages),S.setSelection(e$1.selection.anchor,e$1.selection.head),xe=[];let n$1=performance.now();try{let t=e$1.type==="applyDelete"?e$1.profile?S.applyDeleteProfiled(e$1.direction,e$1.expectedFrameEpoch,e$1.count):{frame:S.applyDelete(e$1.direction,e$1.expectedFrameEpoch,e$1.count),profile:void 0}:e$1.profile?S.applyInputProfiled(e$1.text,e$1.expectedFrameEpoch):{frame:S.applyInput(e$1.text,e$1.expectedFrameEpoch),profile:void 0},r=null;if(e$1.type==="applyInput"){let s=e$1.selection.head,o=S.selection()?.head,a=s.offset+e$1.text.length;o&&(o.paraId!==s.paraId||o.offset!==a)&&(r=S.encodeSelection());}await At(e$1.id,t.frame,performance.now()-n$1,xe,t.profile,n$1,e$1.selection.head.story==="body",e$1.paintCaret,void 0,!1,e$1.type==="applyDelete"?S.residentDeletedUnits():void 0,[],r);}catch(t){if(Ae)throw Ae;if(t instanceof WebAssembly.RuntimeError)throw t;let r=t instanceof Error?t.message:String(t);de({id:e$1.id,ok:false,error:r,residentUnavailable:r.includes("resident input state is not ready"),...xe.length>0?{terminal:true}:{}});}finally{xe=[];}}function fc(e){if(e.fontsBaseRevision!==void 0&&e.fontsBaseRevision!==ln)throw new Error("Document worker font base revision mismatch")}var Jr=new WeakMap;function lo(e,n,t=false){if(!n.includes('"reservationSets"'))return t&&Jr.delete(e),n;let r=JSON.parse(n),s=r.renderEnv?.reservationSets;if(s===void 0)return t&&Jr.delete(e),n;let o=e.proposalEngine.version(),a=Jr.get(e),i=JSON.stringify(s),l=a?.reservations??{};return N(s)&&s.version===o&&(l=a?.version===o&&a.key===i?a.reservations:O(e.geometryReader,s,o,a?.reservations??null),t&&Jr.set(e,{version:o,key:i,reservations:l})),delete r.renderEnv.reservationSets,r.renderEnv.reservations=l,JSON.stringify(r)}function zr(e,n,t=true,r=true,s,o,a,i=true){if(!S)throw new Error("Document worker is not initialized");if(fc(e),sr=false,co(),Ye=null,un(),vt=null,r&&!e.workerAuthoritative&&(On(),De=null,S.loadState(e.state)),S.setPartialDocument(e.partialDocument===true),ft=e.partialDocument===true?0:null,e.workerAuthoritative||(S.loadMediaSources(e.mediaSources??""),S.loadNoteSeparators(e.noteSeparators??new Uint8Array(0))),e.fontsRevision!==ln){if(e.fontsBaseRevision===void 0){S.clearFonts(),kt=null;for(let p of Rt)We.add(p);zt.clear();}if(ln=-1,a){let p=gs(S,e.fonts),x=typeof a.fontRegistrationSlots=="object"?a.fontRegistrationSlots.fontChains:void 0;e.layoutInput=p.remap(e.layoutInput,x),a.layoutInput=e.layoutInput,a.extras=p.remap(a.extras,x),a.fontRegistrationSlots=void 0,a.fonts=[];}else for(let p of e.fonts)p instanceof Uint8Array?S.registerFont(p):S.registerSubstituteFont(p.substituteOf,p.family);ln=e.fontsRevision;}e.layoutInput=lo(S,e.layoutInput,true);for(let{story:p,env:x}of e.renderInputs)S.yrsBlocksForStory(p,x);for(let p of e.measureInputs)S.measureParagraphJson(p);if(!i)return he=e.layoutRevision,ar=e.layoutWithRegions,je=null,xe=[],{layoutJson:null,provisional:false};let l=null,d,m=false,u=null;if(e.layoutWithRegions&&n!==void 0){l=S.layoutDocumentWithRegionsPrefixRetainedJson(e.layoutInput,n);let p=JSON.parse(l);m=p.provisional===true,u=p.layout.pages.length;}else e.layoutWithRegions&&!t?S.layoutDocumentWithRegionsRetained(e.layoutInput):e.layoutWithRegions&&s==="meta"?(d=S.layoutDocumentWithRegionsRetainedMeta(e.layoutInput),m=d.provisional,u=d.pageCount):e.layoutWithRegions?(l=S.layoutDocumentWithRegionsRetainedJson(e.layoutInput),e.partialDocument===true&&(u=JSON.parse(l).layout.pages.length)):S.layoutDocumentJson(e.layoutInput);return !e.workerAuthoritative&&e.selection&&S.setSelection(e.selection.anchor,e.selection.head),he=e.layoutRevision,ar=e.layoutWithRegions,je=S.proposalEngine.version(),sr=true,xe=[],ft=Al(e.partialDocument,m,n,u),wt=m&&e.partialDocument!==true?n??null:null,{layoutJson:l,...d?{layoutMeta:Kd(d,o)}:{},provisional:m}}function mc(){let e=S?.retainedHeadersFootersJson()??"null";return e!==nr&&(nr=e,Cs+=1),e}function Kd(e,n=_s){let t=mc();return {v:1,layoutRevision:he,...e,headersFootersEpoch:Cs,...n!==Cs?{headersFooters:t}:{}}}function to(){Dt?.release(),Dt=null;}function yc(e,n){let t=e.proposalEngine.version();(Dt?.owner!==e||Dt.version!==t)&&(to(),Dt={owner:e,version:t,byInput:new Map,release:e.onUpdate(to)});let r=Dt.byInput.get(n);if(r!==void 0)return r;let s=e.layoutFontRequirementsJson(lo(e,n));return Dt.byInput.size>=Yd&&Dt.byInput.delete(Dt.byInput.keys().next().value),Dt.byInput.set(n,s),s}function Qd(e,n,t,r){try{if(e.proposalEngine.version()!==r)return null;let s=JSON.parse(n);if(!s.renderEnv||typeof s.renderEnv!="object")return null;t===void 0?delete s.renderEnv.revisionPreview:s.renderEnv.revisionPreview=t;let o=JSON.stringify(s);return {version:r,layoutInput:o,requirementsJson:yc(e,o)}}catch(s){if(Ae)throw Ae;if(s instanceof WebAssembly.RuntimeError)throw s;return null}}function rt(e,n,t){if(n&&(sn=n),ft!==null){e.setDisplayWindow(...bs(n,ft)),e.setDisplayRetainBuiltPages(n!==void 0&&t===true),e.setWindowedIncrementalBuilds(true);return}n&&(wt!==null?(Zn={window:n,retainBuiltPages:t===true},e.setDisplayWindow(...bs(n,wt)),e.setDisplayRetainBuiltPages(false)):(e.setDisplayWindow(...n),e.setDisplayRetainBuiltPages(t===true))),e.setWindowedIncrementalBuilds(n!==void 0);}function un(){wt=null,S&&Zn&&(S.setDisplayWindow(...Zn.window),S.setDisplayRetainBuiltPages(Zn.retainBuiltPages)),Zn=null;}async function qn(){if(ot?.complete()){Vt(0);return}if(!S||!Ye)return;let e=Le;Le=null;let{layoutInput:n,...t}=Ye;Ye=null;try{let r;if(e?.begun)try{r=S.resumeRegionLayout(Es).layoutJson;}catch(s){if(s instanceof WebAssembly.RuntimeError)throw s}vt={...t,layoutJson:r??S.layoutDocumentWithRegionsRetainedJson(n),headersFootersJson:S.retainedHeadersFootersJson()},un(),e&&await Ns(e.id,e.expectedFrameEpoch,e.paintCaret);}catch(r){throw e&&$t(e.id,r),r}}async function Ns(e,n,t){let r=vt;if(vt=null,!S||!r){de({id:e,ok:true});return}rt(S),xe=[];let s=performance.now(),o=S.buildDisplayListFrame($r(r.extras,r.layoutExtras,r.headersFootersJson),n);await At(e,o,performance.now()-s,xe,void 0,s,false,t,r.layoutJson);}var no=typeof MessageChannel=="function"?new MessageChannel:null,gc=[];no&&(no.port1.onmessage=()=>gc.shift()?.());function Xd(e){if(!no){setTimeout(e,0);return}gc.push(e),no.port2.postMessage(null);}var dn=Kl({now:()=>performance.now(),turn:e=>Xd(e),timer:(e,n)=>{let t=setTimeout(e,n);return ()=>clearTimeout(t)},failed:()=>{}});function ro(){let e=Ht;e&&(Ht=null,Ls({id:e.request.id,ok:true,pageBuildSuperseded:true}));}async function Zd(e,n){if(S!==e.owner||e.offset>0&&Y?.frameEpoch!==e.frameEpoch)return ro(),true;rt(e.owner);let t=performance.now(),r=e.request.pages.slice(e.offset,e.offset+e.pagesPerSlice),s=e.owner.buildDisplayPagesFrame(r,e.frameEpoch),o=performance.now()-t;return e.engineMs+=o,e.pagesPerSlice=Math.min(32,Math.max(Ds,Math.round(r.length*n/Math.max(1,o)))),e.offset+=r.length,e.offset===e.request.pages.length?(Ht=null,await At(e.request.id,s,e.engineMs,[],void 0,e.started,false,e.request.paintCaret,void 0,false,void 0,e.frames),true):(Nn(s),e.frameEpoch=Y.frameEpoch,e.frames.push(s),false)}function oc(e){dn.schedule({kind:"completion",version:dn.version,generation:dn.generation,idleAfterInputMs:Vd,onStale:()=>"continue",fail:n=>{Le===e&&(Le=null),e.commandOwner?e.commandOwner===be&&(n instanceof WebAssembly.RuntimeError?$t(0,n):de({id:0,ok:false,terminal:true,failureCode:"message",error:n instanceof Error?n.message:String(n)})):$t(e.id,n);},run:async n=>{if(Le!==e)return "done";if(Ae)throw Ae;io=e.id;let t=e.commandOwner;return t?await t.withFrameWork(()=>sc(e,n)):await sc(e,n),Le===e?"yield":"done"}});}async function sc(e,n){if(!S||Le!==e||!Ye)return;let t=e.commandOwner?ot:null;if(e.commandOwner&&(!t||be!==e.commandOwner))return;let r;if(!e.begun)r=t?t.begin():S.beginRegionLayout(Ye.layoutInput),e.begun=true;else {let a=performance.now();try{r=t?t.resume(e.blocks):S.resumeRegionLayout(e.blocks);}catch(l){if(l instanceof WebAssembly.RuntimeError)throw l;let d=l instanceof Error?l.message:String(l);if(d!=="no region layout to resume"&&d!=="the document or its fonts changed since the region layout began")throw l;if(e.begun=false,e.restarts+=1,e.restarts>Jd&&!Ye.workerAuthoritative&&!ut){try{await qn();}catch{}return}return}let i=Math.max(1,performance.now()-a);e.blocks=Math.min(8192,Math.max(8,Math.round(e.blocks*n/i)));}if(r.layoutJson===void 0)return;if(t){Le=null,Vt(0);return}let{layoutInput:s,...o}=Ye;Ye=null,un(),Le=null,vt={...o,layoutJson:r.layoutJson,headersFootersJson:S.retainedHeadersFootersJson()},await Ns(e.id,e.expectedFrameEpoch,e.paintCaret);}function co(){let e=Le;Le=null,e&&!e.commandOwner&&Ls({id:e.id,ok:true});}function $r(e,n,t){if(n===void 0)return e;let r=t??(ar?mc():void 0),s=r===void 0?void 0:JSON.parse(r);return A({...JSON.parse(n),...s?{headersFooters:s}:{}})}function ac(){S&&(Mt=S.onUpdate(e=>xe.push(e.slice())));}function qd(e,n,t){if(!t.ok||!De)return false;let r=JSON.parse(De.requirementsJson),s=JSON.parse(De.layoutInput);if(r.some(({scripts:a})=>a&&a.length>0)||Object.keys(s.renderEnv?.revisionPreview??{}).length>0)return false;let o=new Map;for(let a of n.proposals){let i=a.op==="replaceText"?a.replaceWith:a.text;if(!/^[\x20-\x7e]*$/.test(i))return false;let l=t.snapshot.proposals.find(({id:p})=>p===a.id);if(!l?.changed)continue;let{story:d,paraId:m}=l.paragraph,u=o.get(d)??new Set;u.add(m),o.set(d,u);}for(let[a,i]of o){let l=new Map,d=e.geometryReader.paragraphSpans(a);for(let u=0;u<d.length;u+=1){let{paraId:p}=d[u];if(i.has(p)){if(l.has(p))return false;l.set(p,u);}}if(l.size!==i.size)return false;let m=[...l.values()];for(let u of e.paragraphSegments(a,m)){let p=true,x=false;for(let g of u)g.kind==="text"?(p&&(p=/^[\x20-\x7e]*$/.test(g.text)),x||(x=g.text.length>0&&g.attributes.ins==null)):g.kind!=="pilcrow"&&(p=false);if(!p||!x)return false}}return true}function on(e=false){Nt?.dispose(),Nt=null,ro(),De=null,to(),Hr=null,Mt?.(),Mt=null,ut?.destroy(),sr=false,ut=null,er?.(),er=null,S?.destroy(),Ad(),Ps=null,S=null,be=null,Be=null,ot=null,Kr?.dispose(),Kr=null,Se=null,Vr=null,sn=void 0,Tn=null,xt=null,Ln=false,Xr=false,Zr=null,ao=false,Fn={full:false},Gt=void 0,pt=false,Fs=false,As=null,ft=null,un(),xe=[],he=0,ar=false,je=null,_s=0,ln=-1,co(),Ye=null,vt=null,Y=null,kt=null,jt.clear(),We.clear(),e||(mt.clear(),Rt.clear()),cn=null,St=null,an=null,rr=null,zt.clear();}function js(e){zt.delete(e),St===e&&(St=null,an=null);}function Ot(e,n){return /^\d+$/.test(n)?p$2(e,BigInt(n)):void 0}function ic(e,n){if(!Number.isFinite(e)||e<=0)throw new Error("Invalid pixel ratio");let t=_t*Lt;if(t===e)return;let r=Y?.pages.filter(({page:o,pageIndex:a})=>!o.unbuilt&&(n===void 0||n.has(a)))??[],s=r.some(({page:o})=>Math.ceil(o.width*t)!==Math.ceil(o.width*e)||Math.ceil(o.height*t)!==Math.ceil(o.height*e));if(_t=e,Lt=1,jt.clear(),zt.clear(),rr=null,St=null,an=null,s)for(let{pageId:o}of r)We.add(o.toString());}function Nn(e,n){let t$1=q$1(e),r=Se?.reviewFrame,s=r?.frameEpoch===Y?.frameEpoch&&t$1.baseFrameEpoch===Y?.frameEpoch?r?.previewVersion:Se?.layoutPreviewVersion;Y=t(Y,t$1),be&&Se&&(n??s)!==void 0&&(Se.reviewFrame={frameEpoch:Y.frameEpoch,previewVersion:n??s});for(let o of Y.damagedPageIds)We.add(o.toString());return t$1}async function Ur(e$1,n=false,t=false,r=false,s$1){let o=Nn(e$1,s$1),a=wt;if(S&&a!==null&&Y){let l=Y.displayList.pages.filter(d=>d.pageIndex>=a&&!d.unbuilt).map(d=>d.pageIndex);if(l.length>0){if(S.releaseDisplayPagesFrame(l,Y.frameEpoch)===null)throw new Error("Provisional display pages could not be released");e$1=S.buildDisplayPagesFrame([],0),o=Nn(e$1,s$1);}}let i=S?.residentCaretSnapshot();if(!i||!Y||!s(i,Y))throw new Error("Worker caret snapshot does not match the produced frame");if(n&&!i.caretRect)throw new Error("Worker input frame omitted collapsed caret geometry");for(let l of We){let d=Ot(Y,l);(!d||d.page.unbuilt===true)&&We.delete(l);}if(r)return {bytes:e$1,delta:o,caret:i};cn=t?i.caretRect??null:null;for(let l of new Set([...mt.keys(),...jt.keys()])){let d=Ot(Y,l),m=d?d.page.unbuilt===true:void 0;if(m===false)continue;let u=mt.get(l);m===void 0?mt.delete(l):u&&e(u),jt.delete(l),js(l);}return await oo(false),{bytes:e$1,delta:o,caret:i}}function eu(e){let n;return ()=>n??(n=oi(e))}function Ts(e,n){let t,r,s=false,o={...n,initialUpdate:n.collaboration?.initialUpdate};if(n.document)e.openDocument(n.document,o),r=n.document;else if(n.cut){let a=e.openDocxPreview(n.bytes,n.cut.blocks,n.cut.paragraphBudget);if(a===null)return null;t=a;let i=q$2(t,n.bytes);r=i.document,s=i.wholeBody!==true;}else t=e.openSourceDocx(n.bytes,o),Os(),r=q$2(t,n.bytes).document,Os();return n.cut||e.setDirectBatches(true),S=e,Tn={heapLimitBytes:n.heapLimitBytes},Ln=true,pt=n.cut!==void 0,Fs=s,As=n.cut?n:null,Xr=n.document!==void 0,Zr=n.document?eu(n.document):null,xt=n.bytes&&t&&!n.cut?{bytes:Ke(n.bytes),hostJson:t}:null,Fn={full:false},{document:r,hostJson:t}}async function tu(e){let n=await Cn(e.heapLimitBytes);try{if(Ts(n,e))return !0;n.destroy();}catch(t){if(t instanceof WebAssembly.RuntimeError)throw t;S===n?on(true):n.destroy();}return false}async function lc(e,n,t,r,s,o){ao=true;let a=t.pages??1,i={fonts:t.fonts??[],fontRegistrationSlots:t.fontRegistrationSlots,layoutInput:t.layoutInput??r(),extras:t.extras??"{}",displayWindow:t.displayWindow??[0,a]};rt(n,i.displayWindow,false);let l=zr({workerAuthoritative:true,state:new Uint8Array(0),selection:null,fonts:i.fonts,fontsRevision:0,renderInputs:[],measureInputs:[],layoutInput:i.layoutInput,layoutWithRegions:true,layoutRevision:1,partialDocument:Fs},a,true,false,void 0,void 0,i.fontRegistrationSlots?i:void 0);l.provisional&&(Ye={layoutInput:i.layoutInput,workerAuthoritative:true,extras:i.extras}),rt(n,i.displayWindow,false);let d=JSON.stringify({...JSON.parse(i.extras),headersFooters:JSON.parse(n.retainedHeadersFootersJson()??"null")}),m=n.buildDisplayListFrame(d,0);await At(e,m,performance.now()-s,[],void 0,s,false,false,l.layoutJson??void 0,l.provisional,void 0,[],null,o);}async function At(e$1,n,t,r=xe,s$1,o=performance.now(),a=false,i=false,l,d=false,m,u=[],p=null,x){let g=typeof l=="string"?l:void 0,f=typeof l=="object"?l:void 0,h=S?.proposalEngine.version();l!==void 0&&(je=h??null);let b=pt||ao;!pt&&Gt===void 0&&h!==void 0&&(Gt=h);let v=!pt&&h!==void 0&&h===Gt;Nn(n);let R=wt;if(S&&R!==null&&Y){let z=Y.displayList.pages.filter(ee=>ee.pageIndex>=R&&!ee.unbuilt).map(ee=>ee.pageIndex);if(z.length>0){if(S.releaseDisplayPagesFrame(z,Y.frameEpoch)===null)throw new Error("Provisional display pages could not be released");n=S.buildDisplayPagesFrame([],0),Nn(n);}}let w=S?.residentCaretSnapshot();if(!w||!Y||!s(w,Y))throw new Error("Worker caret snapshot does not match the produced frame");if(a&&!w.caretRect)throw new Error("Worker input frame omitted collapsed caret geometry");let P=S?.selection()??null;cn=i?w.caretRect??null:null;for(let z of We){let ee=Ot(Y,z);(!ee||ee.page.unbuilt===true)&&We.delete(z);}for(let z of new Set([...mt.keys(),...jt.keys()])){let ee=Ot(Y,z),oe=ee?ee.page.unbuilt===true:void 0;if(oe===false)continue;let A=mt.get(z);oe===void 0?mt.delete(z):A&&e(A),jt.delete(z),js(z);}let T=performance.now(),{replayedPages:O,caretPainted:I}=await oo(false),F=performance.now()-T,_=Wo(n,u),{frame:L}=_.value,B=_.value.pageFrames??[],U=r.map(Ke),J=S?Ke(S.encodeStateVector()):void 0;f&&(_s=f.headersFootersEpoch),de({id:e$1,ok:true,...x,frame:L,...B.length>0?{pageFrames:[...B,L]}:{},updates:U,engineMs:t,workerTotalMs:performance.now()-o,engineProfile:s$1,caret:w,selection:P,...p?{selectionCursor:p}:{},caretPainted:I,replayMs:F,replayedPages:O,layoutRevision:he,...h===void 0?{}:{documentVersion:h},...b?{documentPreview:true}:{},...v?{documentAsOpened:true}:{},...m===void 0?{}:{deletedUnits:m},...J?{stateVector:J}:{},...g!==void 0?{layoutJson:g}:{},...f?{layoutMeta:f}:{},...d?{layoutProvisional:d}:{}},[..._.transfer,...U,...J?[J]:[],...f?[f.pageSizes.buffer]:[]]);}async function oo(e){let n=e===true?Rt:e;if(n)for(let{pageId:d,page:m}of Y?.pages??[]){let u=d.toString();!m.unbuilt&&n.has(u)&&We.add(u);}if(!Y||mt.size===0)return {replayedPages:0,caretPainted:false};!kt&&S&&(kt=new a$3({provider:(d,m)=>{try{return S.outlineGlyphJson(d,m)}catch(u){throw u instanceof WebAssembly.RuntimeError&&hc()>0&&pc(io,u),u}}}));let t=cn&&Rt.has(cn.pageId)?cn:null,r$1=t?r(t,Gr,_t,Lt):null,s=t&&r$1?`${t.pageId}|${r$1.x}|${r$1.y}|${r$1.width}|${r$1.height}|${Gr.color}`:null,o=[],a=Ln&&S?Tl(S,Tt):void 0;for(let d=0;d<Y.pages.length;d+=1){let u=Y.pages[d].pageId.toString();if(!Rt.has(u))continue;let p=We.has(u),x=u===t?.pageId&&!(St===u&&an===s),g=u===St&&u!==t?.pageId;if(!p&&!x&&!g)continue;let f=mt.get(u),h=Y.displayList.pages[d];if(!f||!h||h.unbuilt)continue;let b=u,v=jt.get(b);v||(v=new OffscreenCanvas(1,1),jt.set(b,v));let R=v;if(!p&&zt.has(b)){o.push(Promise.resolve({canvas:f,buffer:R,pageId:b}));continue}o.push(b$2(R,h,{glyphCache:kt??void 0,...a?{resolveImage:a.resolve}:{}},_t,Lt).then(()=>({canvas:f,buffer:R,pageId:b})));}let i=await Promise.all(o).catch(async d=>{throw await Promise.allSettled(o),d}).finally(()=>a?.close()),l=t!==null&&St===t.pageId&&an===s;for(let{canvas:d$1,buffer:m,pageId:u}of i)t&&r$1&&u===t.pageId?(rr||(rr=new OffscreenCanvas(1,1)),f(d$1,m,rr,{...r$1,color:Gr.color}),zt.add(u),St=u,an=s,l=true):(d(d$1,m),zt.delete(u),St===u&&(St=null,an=null)),We.delete(u);return {replayedPages:i.length,caretPainted:l}}function Ke(e){return Ir(e)}function hc(){return b$3().find(e=>e.label==="docx-edit")?.failedAllocationBytes??0}var ws=null;function nu(){ws===null&&(ws=setTimeout(()=>{if(ws=null,!!Nt)try{de({id:0,ok:!0});}catch{}},0));}function de(e,n=[]){if(Ae&&e.ok)throw Ae;let t=Nt?.drain(),{transfer:r=[],...s}=t??{};ir.postMessage({...e,...t?{collabUpdates:{...s,...Be?{session:Be.session,incarnation:Be.incarnation,epoch:Be.epoch}:{}}}:{},memory:b$3()},[...n,...t?.updates??[],...r]);}export{_d as setResidentCommandHooksFactory};