161 lines
1.0 MiB
161 lines
1.0 MiB
/*
|
||
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||
if you want to view the source, please visit the github repository of this plugin
|
||
*/
|
||
|
||
var L1=Object.create;var Ra=Object.defineProperty;var O1=Object.getOwnPropertyDescriptor;var M1=Object.getOwnPropertyNames;var N1=Object.getPrototypeOf,R1=Object.prototype.hasOwnProperty;var Dm=n=>{throw TypeError(n)};var V1=(n,e,t)=>e in n?Ra(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var J=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),v0=(n,e)=>{for(var t in e)Ra(n,t,{get:e[t],enumerable:!0})},Pm=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of M1(e))!R1.call(n,r)&&r!==t&&Ra(n,r,{get:()=>e[r],enumerable:!(i=O1(e,r))||i.enumerable});return n};var Ki=(n,e,t)=>(t=n!=null?L1(N1(n)):{},Pm(e||!n||!n.__esModule?Ra(t,"default",{value:n,enumerable:!0}):t,n)),H1=n=>Pm(Ra({},"__esModule",{value:!0}),n);var w0=(n,e,t)=>V1(n,typeof e!="symbol"?e+"":e,t),km=(n,e,t)=>e.has(n)||Dm("Cannot "+t);var Xe=(n,e,t)=>(km(n,e,"read from private field"),t?t.call(n):e.get(n)),mn=(n,e,t)=>e.has(n)?Dm("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(n):e.set(n,t),Ot=(n,e,t,i)=>(km(n,e,"write to private field"),i?i.call(n,t):e.set(n,t),t);var F0=(n,e,t,i)=>({set _(r){Ot(n,e,r,t)},get _(){return Xe(n,e,i)}});var bn=J(St=>{"use strict";var Z1=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function Y1(n,e){return Object.prototype.hasOwnProperty.call(n,e)}St.assign=function(n){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var t=e.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(var i in t)Y1(t,i)&&(n[i]=t[i])}}return n};St.shrinkBuf=function(n,e){return n.length===e?n:n.subarray?n.subarray(0,e):(n.length=e,n)};var J1={arraySet:function(n,e,t,i,r){if(e.subarray&&n.subarray){n.set(e.subarray(t,t+i),r);return}for(var o=0;o<i;o++)n[r+o]=e[t+o]},flattenChunks:function(n){var e,t,i,r,o,s;for(i=0,e=0,t=n.length;e<t;e++)i+=n[e].length;for(s=new Uint8Array(i),r=0,e=0,t=n.length;e<t;e++)o=n[e],s.set(o,r),r+=o.length;return s}},_1={arraySet:function(n,e,t,i,r){for(var o=0;o<i;o++)n[r+o]=e[t+o]},flattenChunks:function(n){return[].concat.apply([],n)}};St.setTyped=function(n){n?(St.Buf8=Uint8Array,St.Buf16=Uint16Array,St.Buf32=Int32Array,St.assign(St,J1)):(St.Buf8=Array,St.Buf16=Array,St.Buf32=Array,St.assign(St,_1))};St.setTyped(Z1)});var tx=J(gs=>{"use strict";var Q1=bn(),$1=4,Lm=0,Om=1,eF=2;function ps(n){for(var e=n.length;--e>=0;)n[e]=0}var tF=0,zm=1,iF=2,nF=3,rF=258,Y0=29,Ja=256,Ga=Ja+1+Y0,fs=30,J0=19,Um=2*Ga+1,$r=15,W0=16,oF=7,_0=256,qm=16,Wm=17,jm=18,X0=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],md=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],sF=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Km=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],aF=512,yn=new Array((Ga+2)*2);ps(yn);var Ka=new Array(fs*2);ps(Ka);var Xa=new Array(aF);ps(Xa);var Za=new Array(rF-nF+1);ps(Za);var Q0=new Array(Y0);ps(Q0);var xd=new Array(fs);ps(xd);function j0(n,e,t,i,r){this.static_tree=n,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=r,this.has_stree=n&&n.length}var Gm,Xm,Zm;function K0(n,e){this.dyn_tree=n,this.max_code=0,this.stat_desc=e}function Ym(n){return n<256?Xa[n]:Xa[256+(n>>>7)]}function Ya(n,e){n.pending_buf[n.pending++]=e&255,n.pending_buf[n.pending++]=e>>>8&255}function Rt(n,e,t){n.bi_valid>W0-t?(n.bi_buf|=e<<n.bi_valid&65535,Ya(n,n.bi_buf),n.bi_buf=e>>W0-n.bi_valid,n.bi_valid+=t-W0):(n.bi_buf|=e<<n.bi_valid&65535,n.bi_valid+=t)}function Zi(n,e,t){Rt(n,t[e*2],t[e*2+1])}function Jm(n,e){var t=0;do t|=n&1,n>>>=1,t<<=1;while(--e>0);return t>>>1}function lF(n){n.bi_valid===16?(Ya(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=n.bi_buf&255,n.bi_buf>>=8,n.bi_valid-=8)}function cF(n,e){var t=e.dyn_tree,i=e.max_code,r=e.stat_desc.static_tree,o=e.stat_desc.has_stree,s=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,c=e.stat_desc.max_length,l,d,h,u,p,f,m=0;for(u=0;u<=$r;u++)n.bl_count[u]=0;for(t[n.heap[n.heap_max]*2+1]=0,l=n.heap_max+1;l<Um;l++)d=n.heap[l],u=t[t[d*2+1]*2+1]+1,u>c&&(u=c,m++),t[d*2+1]=u,!(d>i)&&(n.bl_count[u]++,p=0,d>=a&&(p=s[d-a]),f=t[d*2],n.opt_len+=f*(u+p),o&&(n.static_len+=f*(r[d*2+1]+p)));if(m!==0){do{for(u=c-1;n.bl_count[u]===0;)u--;n.bl_count[u]--,n.bl_count[u+1]+=2,n.bl_count[c]--,m-=2}while(m>0);for(u=c;u!==0;u--)for(d=n.bl_count[u];d!==0;)h=n.heap[--l],!(h>i)&&(t[h*2+1]!==u&&(n.opt_len+=(u-t[h*2+1])*t[h*2],t[h*2+1]=u),d--)}}function _m(n,e,t){var i=new Array($r+1),r=0,o,s;for(o=1;o<=$r;o++)i[o]=r=r+t[o-1]<<1;for(s=0;s<=e;s++){var a=n[s*2+1];a!==0&&(n[s*2]=Jm(i[a]++,a))}}function dF(){var n,e,t,i,r,o=new Array($r+1);for(t=0,i=0;i<Y0-1;i++)for(Q0[i]=t,n=0;n<1<<X0[i];n++)Za[t++]=i;for(Za[t-1]=i,r=0,i=0;i<16;i++)for(xd[i]=r,n=0;n<1<<md[i];n++)Xa[r++]=i;for(r>>=7;i<fs;i++)for(xd[i]=r<<7,n=0;n<1<<md[i]-7;n++)Xa[256+r++]=i;for(e=0;e<=$r;e++)o[e]=0;for(n=0;n<=143;)yn[n*2+1]=8,n++,o[8]++;for(;n<=255;)yn[n*2+1]=9,n++,o[9]++;for(;n<=279;)yn[n*2+1]=7,n++,o[7]++;for(;n<=287;)yn[n*2+1]=8,n++,o[8]++;for(_m(yn,Ga+1,o),n=0;n<fs;n++)Ka[n*2+1]=5,Ka[n*2]=Jm(n,5);Gm=new j0(yn,X0,Ja+1,Ga,$r),Xm=new j0(Ka,md,0,fs,$r),Zm=new j0(new Array(0),sF,0,J0,oF)}function Qm(n){var e;for(e=0;e<Ga;e++)n.dyn_ltree[e*2]=0;for(e=0;e<fs;e++)n.dyn_dtree[e*2]=0;for(e=0;e<J0;e++)n.bl_tree[e*2]=0;n.dyn_ltree[_0*2]=1,n.opt_len=n.static_len=0,n.last_lit=n.matches=0}function $m(n){n.bi_valid>8?Ya(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0}function hF(n,e,t,i){$m(n),i&&(Ya(n,t),Ya(n,~t)),Q1.arraySet(n.pending_buf,n.window,e,t,n.pending),n.pending+=t}function Mm(n,e,t,i){var r=e*2,o=t*2;return n[r]<n[o]||n[r]===n[o]&&i[e]<=i[t]}function G0(n,e,t){for(var i=n.heap[t],r=t<<1;r<=n.heap_len&&(r<n.heap_len&&Mm(e,n.heap[r+1],n.heap[r],n.depth)&&r++,!Mm(e,i,n.heap[r],n.depth));)n.heap[t]=n.heap[r],t=r,r<<=1;n.heap[t]=i}function Nm(n,e,t){var i,r,o=0,s,a;if(n.last_lit!==0)do i=n.pending_buf[n.d_buf+o*2]<<8|n.pending_buf[n.d_buf+o*2+1],r=n.pending_buf[n.l_buf+o],o++,i===0?Zi(n,r,e):(s=Za[r],Zi(n,s+Ja+1,e),a=X0[s],a!==0&&(r-=Q0[s],Rt(n,r,a)),i--,s=Ym(i),Zi(n,s,t),a=md[s],a!==0&&(i-=xd[s],Rt(n,i,a)));while(o<n.last_lit);Zi(n,_0,e)}function Z0(n,e){var t=e.dyn_tree,i=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.elems,s,a,c=-1,l;for(n.heap_len=0,n.heap_max=Um,s=0;s<o;s++)t[s*2]!==0?(n.heap[++n.heap_len]=c=s,n.depth[s]=0):t[s*2+1]=0;for(;n.heap_len<2;)l=n.heap[++n.heap_len]=c<2?++c:0,t[l*2]=1,n.depth[l]=0,n.opt_len--,r&&(n.static_len-=i[l*2+1]);for(e.max_code=c,s=n.heap_len>>1;s>=1;s--)G0(n,t,s);l=o;do s=n.heap[1],n.heap[1]=n.heap[n.heap_len--],G0(n,t,1),a=n.heap[1],n.heap[--n.heap_max]=s,n.heap[--n.heap_max]=a,t[l*2]=t[s*2]+t[a*2],n.depth[l]=(n.depth[s]>=n.depth[a]?n.depth[s]:n.depth[a])+1,t[s*2+1]=t[a*2+1]=l,n.heap[1]=l++,G0(n,t,1);while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],cF(n,e),_m(t,c,n.bl_count)}function Rm(n,e,t){var i,r=-1,o,s=e[0*2+1],a=0,c=7,l=4;for(s===0&&(c=138,l=3),e[(t+1)*2+1]=65535,i=0;i<=t;i++)o=s,s=e[(i+1)*2+1],!(++a<c&&o===s)&&(a<l?n.bl_tree[o*2]+=a:o!==0?(o!==r&&n.bl_tree[o*2]++,n.bl_tree[qm*2]++):a<=10?n.bl_tree[Wm*2]++:n.bl_tree[jm*2]++,a=0,r=o,s===0?(c=138,l=3):o===s?(c=6,l=3):(c=7,l=4))}function Vm(n,e,t){var i,r=-1,o,s=e[0*2+1],a=0,c=7,l=4;for(s===0&&(c=138,l=3),i=0;i<=t;i++)if(o=s,s=e[(i+1)*2+1],!(++a<c&&o===s)){if(a<l)do Zi(n,o,n.bl_tree);while(--a!==0);else o!==0?(o!==r&&(Zi(n,o,n.bl_tree),a--),Zi(n,qm,n.bl_tree),Rt(n,a-3,2)):a<=10?(Zi(n,Wm,n.bl_tree),Rt(n,a-3,3)):(Zi(n,jm,n.bl_tree),Rt(n,a-11,7));a=0,r=o,s===0?(c=138,l=3):o===s?(c=6,l=3):(c=7,l=4)}}function uF(n){var e;for(Rm(n,n.dyn_ltree,n.l_desc.max_code),Rm(n,n.dyn_dtree,n.d_desc.max_code),Z0(n,n.bl_desc),e=J0-1;e>=3&&n.bl_tree[Km[e]*2+1]===0;e--);return n.opt_len+=3*(e+1)+5+5+4,e}function fF(n,e,t,i){var r;for(Rt(n,e-257,5),Rt(n,t-1,5),Rt(n,i-4,4),r=0;r<i;r++)Rt(n,n.bl_tree[Km[r]*2+1],3);Vm(n,n.dyn_ltree,e-1),Vm(n,n.dyn_dtree,t-1)}function pF(n){var e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&n.dyn_ltree[t*2]!==0)return Lm;if(n.dyn_ltree[9*2]!==0||n.dyn_ltree[10*2]!==0||n.dyn_ltree[13*2]!==0)return Om;for(t=32;t<Ja;t++)if(n.dyn_ltree[t*2]!==0)return Om;return Lm}var Hm=!1;function gF(n){Hm||(dF(),Hm=!0),n.l_desc=new K0(n.dyn_ltree,Gm),n.d_desc=new K0(n.dyn_dtree,Xm),n.bl_desc=new K0(n.bl_tree,Zm),n.bi_buf=0,n.bi_valid=0,Qm(n)}function ex(n,e,t,i){Rt(n,(tF<<1)+(i?1:0),3),hF(n,e,t,!0)}function mF(n){Rt(n,zm<<1,3),Zi(n,_0,yn),lF(n)}function xF(n,e,t,i){var r,o,s=0;n.level>0?(n.strm.data_type===eF&&(n.strm.data_type=pF(n)),Z0(n,n.l_desc),Z0(n,n.d_desc),s=uF(n),r=n.opt_len+3+7>>>3,o=n.static_len+3+7>>>3,o<=r&&(r=o)):r=o=t+5,t+4<=r&&e!==-1?ex(n,e,t,i):n.strategy===$1||o===r?(Rt(n,(zm<<1)+(i?1:0),3),Nm(n,yn,Ka)):(Rt(n,(iF<<1)+(i?1:0),3),fF(n,n.l_desc.max_code+1,n.d_desc.max_code+1,s+1),Nm(n,n.dyn_ltree,n.dyn_dtree)),Qm(n),i&&$m(n)}function bF(n,e,t){return n.pending_buf[n.d_buf+n.last_lit*2]=e>>>8&255,n.pending_buf[n.d_buf+n.last_lit*2+1]=e&255,n.pending_buf[n.l_buf+n.last_lit]=t&255,n.last_lit++,e===0?n.dyn_ltree[t*2]++:(n.matches++,e--,n.dyn_ltree[(Za[t]+Ja+1)*2]++,n.dyn_dtree[Ym(e)*2]++),n.last_lit===n.lit_bufsize-1}gs._tr_init=gF;gs._tr_stored_block=ex;gs._tr_flush_block=xF;gs._tr_tally=bF;gs._tr_align=mF});var $0=J((QC,ix)=>{"use strict";function yF(n,e,t,i){for(var r=n&65535|0,o=n>>>16&65535|0,s=0;t!==0;){s=t>2e3?2e3:t,t-=s;do r=r+e[i++]|0,o=o+r|0;while(--s);r%=65521,o%=65521}return r|o<<16|0}ix.exports=yF});var ef=J(($C,nx)=>{"use strict";function vF(){for(var n,e=[],t=0;t<256;t++){n=t;for(var i=0;i<8;i++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n}return e}var wF=vF();function FF(n,e,t,i){var r=wF,o=i+t;n^=-1;for(var s=i;s<o;s++)n=n>>>8^r[(n^e[s])&255];return n^-1}nx.exports=FF});var bd=J((e2,rx)=>{"use strict";rx.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var fx=J(_i=>{"use strict";var Et=bn(),ni=tx(),lx=$0(),lr=ef(),DF=bd(),no=0,PF=1,kF=3,fr=4,ox=5,Ji=0,sx=1,ri=-2,CF=-3,tf=-5,SF=-1,EF=1,yd=2,TF=3,AF=4,IF=0,BF=2,Dd=8,LF=9,OF=15,MF=8,NF=29,RF=256,rf=RF+1+NF,VF=30,HF=19,zF=2*rf+1,UF=15,xe=3,hr=258,Ai=hr+xe+1,qF=32,Pd=42,of=69,vd=73,wd=91,Fd=103,eo=113,Qa=666,nt=1,$a=2,to=3,bs=4,WF=3;function ur(n,e){return n.msg=DF[e],e}function ax(n){return(n<<1)-(n>4?9:0)}function dr(n){for(var e=n.length;--e>=0;)n[e]=0}function cr(n){var e=n.state,t=e.pending;t>n.avail_out&&(t=n.avail_out),t!==0&&(Et.arraySet(n.output,e.pending_buf,e.pending_out,t,n.next_out),n.next_out+=t,e.pending_out+=t,n.total_out+=t,n.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))}function gt(n,e){ni._tr_flush_block(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,e),n.block_start=n.strstart,cr(n.strm)}function Pe(n,e){n.pending_buf[n.pending++]=e}function _a(n,e){n.pending_buf[n.pending++]=e>>>8&255,n.pending_buf[n.pending++]=e&255}function jF(n,e,t,i){var r=n.avail_in;return r>i&&(r=i),r===0?0:(n.avail_in-=r,Et.arraySet(e,n.input,n.next_in,r,t),n.state.wrap===1?n.adler=lx(n.adler,e,r,t):n.state.wrap===2&&(n.adler=lr(n.adler,e,r,t)),n.next_in+=r,n.total_in+=r,r)}function cx(n,e){var t=n.max_chain_length,i=n.strstart,r,o,s=n.prev_length,a=n.nice_match,c=n.strstart>n.w_size-Ai?n.strstart-(n.w_size-Ai):0,l=n.window,d=n.w_mask,h=n.prev,u=n.strstart+hr,p=l[i+s-1],f=l[i+s];n.prev_length>=n.good_match&&(t>>=2),a>n.lookahead&&(a=n.lookahead);do if(r=e,!(l[r+s]!==f||l[r+s-1]!==p||l[r]!==l[i]||l[++r]!==l[i+1])){i+=2,r++;do;while(l[++i]===l[++r]&&l[++i]===l[++r]&&l[++i]===l[++r]&&l[++i]===l[++r]&&l[++i]===l[++r]&&l[++i]===l[++r]&&l[++i]===l[++r]&&l[++i]===l[++r]&&i<u);if(o=hr-(u-i),i=u-hr,o>s){if(n.match_start=e,s=o,o>=a)break;p=l[i+s-1],f=l[i+s]}}while((e=h[e&d])>c&&--t!==0);return s<=n.lookahead?s:n.lookahead}function io(n){var e=n.w_size,t,i,r,o,s;do{if(o=n.window_size-n.lookahead-n.strstart,n.strstart>=e+(e-Ai)){Et.arraySet(n.window,n.window,e,e,0),n.match_start-=e,n.strstart-=e,n.block_start-=e,i=n.hash_size,t=i;do r=n.head[--t],n.head[t]=r>=e?r-e:0;while(--i);i=e,t=i;do r=n.prev[--t],n.prev[t]=r>=e?r-e:0;while(--i);o+=e}if(n.strm.avail_in===0)break;if(i=jF(n.strm,n.window,n.strstart+n.lookahead,o),n.lookahead+=i,n.lookahead+n.insert>=xe)for(s=n.strstart-n.insert,n.ins_h=n.window[s],n.ins_h=(n.ins_h<<n.hash_shift^n.window[s+1])&n.hash_mask;n.insert&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[s+xe-1])&n.hash_mask,n.prev[s&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=s,s++,n.insert--,!(n.lookahead+n.insert<xe)););}while(n.lookahead<Ai&&n.strm.avail_in!==0)}function KF(n,e){var t=65535;for(t>n.pending_buf_size-5&&(t=n.pending_buf_size-5);;){if(n.lookahead<=1){if(io(n),n.lookahead===0&&e===no)return nt;if(n.lookahead===0)break}n.strstart+=n.lookahead,n.lookahead=0;var i=n.block_start+t;if((n.strstart===0||n.strstart>=i)&&(n.lookahead=n.strstart-i,n.strstart=i,gt(n,!1),n.strm.avail_out===0)||n.strstart-n.block_start>=n.w_size-Ai&&(gt(n,!1),n.strm.avail_out===0))return nt}return n.insert=0,e===fr?(gt(n,!0),n.strm.avail_out===0?to:bs):(n.strstart>n.block_start&&(gt(n,!1),n.strm.avail_out===0),nt)}function nf(n,e){for(var t,i;;){if(n.lookahead<Ai){if(io(n),n.lookahead<Ai&&e===no)return nt;if(n.lookahead===0)break}if(t=0,n.lookahead>=xe&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+xe-1])&n.hash_mask,t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),t!==0&&n.strstart-t<=n.w_size-Ai&&(n.match_length=cx(n,t)),n.match_length>=xe)if(i=ni._tr_tally(n,n.strstart-n.match_start,n.match_length-xe),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=xe){n.match_length--;do n.strstart++,n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+xe-1])&n.hash_mask,t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart;while(--n.match_length!==0);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+1])&n.hash_mask;else i=ni._tr_tally(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&(gt(n,!1),n.strm.avail_out===0))return nt}return n.insert=n.strstart<xe-1?n.strstart:xe-1,e===fr?(gt(n,!0),n.strm.avail_out===0?to:bs):n.last_lit&&(gt(n,!1),n.strm.avail_out===0)?nt:$a}function ms(n,e){for(var t,i,r;;){if(n.lookahead<Ai){if(io(n),n.lookahead<Ai&&e===no)return nt;if(n.lookahead===0)break}if(t=0,n.lookahead>=xe&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+xe-1])&n.hash_mask,t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=xe-1,t!==0&&n.prev_length<n.max_lazy_match&&n.strstart-t<=n.w_size-Ai&&(n.match_length=cx(n,t),n.match_length<=5&&(n.strategy===EF||n.match_length===xe&&n.strstart-n.match_start>4096)&&(n.match_length=xe-1)),n.prev_length>=xe&&n.match_length<=n.prev_length){r=n.strstart+n.lookahead-xe,i=ni._tr_tally(n,n.strstart-1-n.prev_match,n.prev_length-xe),n.lookahead-=n.prev_length-1,n.prev_length-=2;do++n.strstart<=r&&(n.ins_h=(n.ins_h<<n.hash_shift^n.window[n.strstart+xe-1])&n.hash_mask,t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart);while(--n.prev_length!==0);if(n.match_available=0,n.match_length=xe-1,n.strstart++,i&&(gt(n,!1),n.strm.avail_out===0))return nt}else if(n.match_available){if(i=ni._tr_tally(n,0,n.window[n.strstart-1]),i&>(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return nt}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=ni._tr_tally(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<xe-1?n.strstart:xe-1,e===fr?(gt(n,!0),n.strm.avail_out===0?to:bs):n.last_lit&&(gt(n,!1),n.strm.avail_out===0)?nt:$a}function GF(n,e){for(var t,i,r,o,s=n.window;;){if(n.lookahead<=hr){if(io(n),n.lookahead<=hr&&e===no)return nt;if(n.lookahead===0)break}if(n.match_length=0,n.lookahead>=xe&&n.strstart>0&&(r=n.strstart-1,i=s[r],i===s[++r]&&i===s[++r]&&i===s[++r])){o=n.strstart+hr;do;while(i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&r<o);n.match_length=hr-(o-r),n.match_length>n.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=xe?(t=ni._tr_tally(n,1,n.match_length-xe),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(t=ni._tr_tally(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),t&&(gt(n,!1),n.strm.avail_out===0))return nt}return n.insert=0,e===fr?(gt(n,!0),n.strm.avail_out===0?to:bs):n.last_lit&&(gt(n,!1),n.strm.avail_out===0)?nt:$a}function XF(n,e){for(var t;;){if(n.lookahead===0&&(io(n),n.lookahead===0)){if(e===no)return nt;break}if(n.match_length=0,t=ni._tr_tally(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,t&&(gt(n,!1),n.strm.avail_out===0))return nt}return n.insert=0,e===fr?(gt(n,!0),n.strm.avail_out===0?to:bs):n.last_lit&&(gt(n,!1),n.strm.avail_out===0)?nt:$a}function Yi(n,e,t,i,r){this.good_length=n,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=r}var xs;xs=[new Yi(0,0,0,0,KF),new Yi(4,4,8,4,nf),new Yi(4,5,16,8,nf),new Yi(4,6,32,32,nf),new Yi(4,4,16,16,ms),new Yi(8,16,32,32,ms),new Yi(8,16,128,128,ms),new Yi(8,32,128,256,ms),new Yi(32,128,258,1024,ms),new Yi(32,258,258,4096,ms)];function ZF(n){n.window_size=2*n.w_size,dr(n.head),n.max_lazy_match=xs[n.level].max_lazy,n.good_match=xs[n.level].good_length,n.nice_match=xs[n.level].nice_length,n.max_chain_length=xs[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=xe-1,n.match_available=0,n.ins_h=0}function YF(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Dd,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Et.Buf16(zF*2),this.dyn_dtree=new Et.Buf16((2*VF+1)*2),this.bl_tree=new Et.Buf16((2*HF+1)*2),dr(this.dyn_ltree),dr(this.dyn_dtree),dr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Et.Buf16(UF+1),this.heap=new Et.Buf16(2*rf+1),dr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Et.Buf16(2*rf+1),dr(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function dx(n){var e;return!n||!n.state?ur(n,ri):(n.total_in=n.total_out=0,n.data_type=BF,e=n.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?Pd:eo,n.adler=e.wrap===2?0:1,e.last_flush=no,ni._tr_init(e),Ji)}function hx(n){var e=dx(n);return e===Ji&&ZF(n.state),e}function JF(n,e){return!n||!n.state||n.state.wrap!==2?ri:(n.state.gzhead=e,Ji)}function ux(n,e,t,i,r,o){if(!n)return ri;var s=1;if(e===SF&&(e=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),r<1||r>LF||t!==Dd||i<8||i>15||e<0||e>9||o<0||o>AF)return ur(n,ri);i===8&&(i=9);var a=new YF;return n.state=a,a.strm=n,a.wrap=s,a.gzhead=null,a.w_bits=i,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=r+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+xe-1)/xe),a.window=new Et.Buf8(a.w_size*2),a.head=new Et.Buf16(a.hash_size),a.prev=new Et.Buf16(a.w_size),a.lit_bufsize=1<<r+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Et.Buf8(a.pending_buf_size),a.d_buf=1*a.lit_bufsize,a.l_buf=3*a.lit_bufsize,a.level=e,a.strategy=o,a.method=t,hx(n)}function _F(n,e){return ux(n,e,Dd,OF,MF,IF)}function QF(n,e){var t,i,r,o;if(!n||!n.state||e>ox||e<0)return n?ur(n,ri):ri;if(i=n.state,!n.output||!n.input&&n.avail_in!==0||i.status===Qa&&e!==fr)return ur(n,n.avail_out===0?tf:ri);if(i.strm=n,t=i.last_flush,i.last_flush=e,i.status===Pd)if(i.wrap===2)n.adler=0,Pe(i,31),Pe(i,139),Pe(i,8),i.gzhead?(Pe(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),Pe(i,i.gzhead.time&255),Pe(i,i.gzhead.time>>8&255),Pe(i,i.gzhead.time>>16&255),Pe(i,i.gzhead.time>>24&255),Pe(i,i.level===9?2:i.strategy>=yd||i.level<2?4:0),Pe(i,i.gzhead.os&255),i.gzhead.extra&&i.gzhead.extra.length&&(Pe(i,i.gzhead.extra.length&255),Pe(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(n.adler=lr(n.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=of):(Pe(i,0),Pe(i,0),Pe(i,0),Pe(i,0),Pe(i,0),Pe(i,i.level===9?2:i.strategy>=yd||i.level<2?4:0),Pe(i,WF),i.status=eo);else{var s=Dd+(i.w_bits-8<<4)<<8,a=-1;i.strategy>=yd||i.level<2?a=0:i.level<6?a=1:i.level===6?a=2:a=3,s|=a<<6,i.strstart!==0&&(s|=qF),s+=31-s%31,i.status=eo,_a(i,s),i.strstart!==0&&(_a(i,n.adler>>>16),_a(i,n.adler&65535)),n.adler=1}if(i.status===of)if(i.gzhead.extra){for(r=i.pending;i.gzindex<(i.gzhead.extra.length&65535)&&!(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>r&&(n.adler=lr(n.adler,i.pending_buf,i.pending-r,r)),cr(n),r=i.pending,i.pending===i.pending_buf_size));)Pe(i,i.gzhead.extra[i.gzindex]&255),i.gzindex++;i.gzhead.hcrc&&i.pending>r&&(n.adler=lr(n.adler,i.pending_buf,i.pending-r,r)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=vd)}else i.status=vd;if(i.status===vd)if(i.gzhead.name){r=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>r&&(n.adler=lr(n.adler,i.pending_buf,i.pending-r,r)),cr(n),r=i.pending,i.pending===i.pending_buf_size)){o=1;break}i.gzindex<i.gzhead.name.length?o=i.gzhead.name.charCodeAt(i.gzindex++)&255:o=0,Pe(i,o)}while(o!==0);i.gzhead.hcrc&&i.pending>r&&(n.adler=lr(n.adler,i.pending_buf,i.pending-r,r)),o===0&&(i.gzindex=0,i.status=wd)}else i.status=wd;if(i.status===wd)if(i.gzhead.comment){r=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>r&&(n.adler=lr(n.adler,i.pending_buf,i.pending-r,r)),cr(n),r=i.pending,i.pending===i.pending_buf_size)){o=1;break}i.gzindex<i.gzhead.comment.length?o=i.gzhead.comment.charCodeAt(i.gzindex++)&255:o=0,Pe(i,o)}while(o!==0);i.gzhead.hcrc&&i.pending>r&&(n.adler=lr(n.adler,i.pending_buf,i.pending-r,r)),o===0&&(i.status=Fd)}else i.status=Fd;if(i.status===Fd&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&cr(n),i.pending+2<=i.pending_buf_size&&(Pe(i,n.adler&255),Pe(i,n.adler>>8&255),n.adler=0,i.status=eo)):i.status=eo),i.pending!==0){if(cr(n),n.avail_out===0)return i.last_flush=-1,Ji}else if(n.avail_in===0&&ax(e)<=ax(t)&&e!==fr)return ur(n,tf);if(i.status===Qa&&n.avail_in!==0)return ur(n,tf);if(n.avail_in!==0||i.lookahead!==0||e!==no&&i.status!==Qa){var c=i.strategy===yd?XF(i,e):i.strategy===TF?GF(i,e):xs[i.level].func(i,e);if((c===to||c===bs)&&(i.status=Qa),c===nt||c===to)return n.avail_out===0&&(i.last_flush=-1),Ji;if(c===$a&&(e===PF?ni._tr_align(i):e!==ox&&(ni._tr_stored_block(i,0,0,!1),e===kF&&(dr(i.head),i.lookahead===0&&(i.strstart=0,i.block_start=0,i.insert=0))),cr(n),n.avail_out===0))return i.last_flush=-1,Ji}return e!==fr?Ji:i.wrap<=0?sx:(i.wrap===2?(Pe(i,n.adler&255),Pe(i,n.adler>>8&255),Pe(i,n.adler>>16&255),Pe(i,n.adler>>24&255),Pe(i,n.total_in&255),Pe(i,n.total_in>>8&255),Pe(i,n.total_in>>16&255),Pe(i,n.total_in>>24&255)):(_a(i,n.adler>>>16),_a(i,n.adler&65535)),cr(n),i.wrap>0&&(i.wrap=-i.wrap),i.pending!==0?Ji:sx)}function $F(n){var e;return!n||!n.state?ri:(e=n.state.status,e!==Pd&&e!==of&&e!==vd&&e!==wd&&e!==Fd&&e!==eo&&e!==Qa?ur(n,ri):(n.state=null,e===eo?ur(n,CF):Ji))}function eD(n,e){var t=e.length,i,r,o,s,a,c,l,d;if(!n||!n.state||(i=n.state,s=i.wrap,s===2||s===1&&i.status!==Pd||i.lookahead))return ri;for(s===1&&(n.adler=lx(n.adler,e,t,0)),i.wrap=0,t>=i.w_size&&(s===0&&(dr(i.head),i.strstart=0,i.block_start=0,i.insert=0),d=new Et.Buf8(i.w_size),Et.arraySet(d,e,t-i.w_size,i.w_size,0),e=d,t=i.w_size),a=n.avail_in,c=n.next_in,l=n.input,n.avail_in=t,n.next_in=0,n.input=e,io(i);i.lookahead>=xe;){r=i.strstart,o=i.lookahead-(xe-1);do i.ins_h=(i.ins_h<<i.hash_shift^i.window[r+xe-1])&i.hash_mask,i.prev[r&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=r,r++;while(--o);i.strstart=r,i.lookahead=xe-1,io(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=xe-1,i.match_available=0,n.next_in=c,n.input=l,n.avail_in=a,i.wrap=s,Ji}_i.deflateInit=_F;_i.deflateInit2=ux;_i.deflateReset=hx;_i.deflateResetKeep=dx;_i.deflateSetHeader=JF;_i.deflate=QF;_i.deflateEnd=$F;_i.deflateSetDictionary=eD;_i.deflateInfo="pako deflate (from Nodeca project)"});var sf=J(ys=>{"use strict";var kd=bn(),px=!0,gx=!0;try{String.fromCharCode.apply(null,[0])}catch(n){px=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(n){gx=!1}var el=new kd.Buf8(256);for(vn=0;vn<256;vn++)el[vn]=vn>=252?6:vn>=248?5:vn>=240?4:vn>=224?3:vn>=192?2:1;var vn;el[254]=el[254]=1;ys.string2buf=function(n){var e,t,i,r,o,s=n.length,a=0;for(r=0;r<s;r++)t=n.charCodeAt(r),(t&64512)===55296&&r+1<s&&(i=n.charCodeAt(r+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),r++)),a+=t<128?1:t<2048?2:t<65536?3:4;for(e=new kd.Buf8(a),o=0,r=0;o<a;r++)t=n.charCodeAt(r),(t&64512)===55296&&r+1<s&&(i=n.charCodeAt(r+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),r++)),t<128?e[o++]=t:t<2048?(e[o++]=192|t>>>6,e[o++]=128|t&63):t<65536?(e[o++]=224|t>>>12,e[o++]=128|t>>>6&63,e[o++]=128|t&63):(e[o++]=240|t>>>18,e[o++]=128|t>>>12&63,e[o++]=128|t>>>6&63,e[o++]=128|t&63);return e};function mx(n,e){if(e<65534&&(n.subarray&&gx||!n.subarray&&px))return String.fromCharCode.apply(null,kd.shrinkBuf(n,e));for(var t="",i=0;i<e;i++)t+=String.fromCharCode(n[i]);return t}ys.buf2binstring=function(n){return mx(n,n.length)};ys.binstring2buf=function(n){for(var e=new kd.Buf8(n.length),t=0,i=e.length;t<i;t++)e[t]=n.charCodeAt(t);return e};ys.buf2string=function(n,e){var t,i,r,o,s=e||n.length,a=new Array(s*2);for(i=0,t=0;t<s;){if(r=n[t++],r<128){a[i++]=r;continue}if(o=el[r],o>4){a[i++]=65533,t+=o-1;continue}for(r&=o===2?31:o===3?15:7;o>1&&t<s;)r=r<<6|n[t++]&63,o--;if(o>1){a[i++]=65533;continue}r<65536?a[i++]=r:(r-=65536,a[i++]=55296|r>>10&1023,a[i++]=56320|r&1023)}return mx(a,i)};ys.utf8border=function(n,e){var t;for(e=e||n.length,e>n.length&&(e=n.length),t=e-1;t>=0&&(n[t]&192)===128;)t--;return t<0||t===0?e:t+el[n[t]]>e?t:e}});var af=J((n2,xx)=>{"use strict";function tD(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}xx.exports=tD});var wx=J(nl=>{"use strict";var tl=fx(),il=bn(),cf=sf(),df=bd(),iD=af(),vx=Object.prototype.toString,nD=0,lf=4,vs=0,bx=1,yx=2,rD=-1,oD=0,sD=8;function ro(n){if(!(this instanceof ro))return new ro(n);this.options=il.assign({level:rD,method:sD,chunkSize:16384,windowBits:15,memLevel:8,strategy:oD,to:""},n||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new iD,this.strm.avail_out=0;var t=tl.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==vs)throw new Error(df[t]);if(e.header&&tl.deflateSetHeader(this.strm,e.header),e.dictionary){var i;if(typeof e.dictionary=="string"?i=cf.string2buf(e.dictionary):vx.call(e.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(e.dictionary):i=e.dictionary,t=tl.deflateSetDictionary(this.strm,i),t!==vs)throw new Error(df[t]);this._dict_set=!0}}ro.prototype.push=function(n,e){var t=this.strm,i=this.options.chunkSize,r,o;if(this.ended)return!1;o=e===~~e?e:e===!0?lf:nD,typeof n=="string"?t.input=cf.string2buf(n):vx.call(n)==="[object ArrayBuffer]"?t.input=new Uint8Array(n):t.input=n,t.next_in=0,t.avail_in=t.input.length;do{if(t.avail_out===0&&(t.output=new il.Buf8(i),t.next_out=0,t.avail_out=i),r=tl.deflate(t,o),r!==bx&&r!==vs)return this.onEnd(r),this.ended=!0,!1;(t.avail_out===0||t.avail_in===0&&(o===lf||o===yx))&&(this.options.to==="string"?this.onData(cf.buf2binstring(il.shrinkBuf(t.output,t.next_out))):this.onData(il.shrinkBuf(t.output,t.next_out)))}while((t.avail_in>0||t.avail_out===0)&&r!==bx);return o===lf?(r=tl.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===vs):(o===yx&&(this.onEnd(vs),t.avail_out=0),!0)};ro.prototype.onData=function(n){this.chunks.push(n)};ro.prototype.onEnd=function(n){n===vs&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=il.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function hf(n,e){var t=new ro(e);if(t.push(n,!0),t.err)throw t.msg||df[t.err];return t.result}function aD(n,e){return e=e||{},e.raw=!0,hf(n,e)}function lD(n,e){return e=e||{},e.gzip=!0,hf(n,e)}nl.Deflate=ro;nl.deflate=hf;nl.deflateRaw=aD;nl.gzip=lD});var Dx=J((o2,Fx)=>{"use strict";var Cd=30,cD=12;Fx.exports=function(e,t){var i,r,o,s,a,c,l,d,h,u,p,f,m,x,g,b,v,y,F,D,C,k,E,B,S;i=e.state,r=e.next_in,B=e.input,o=r+(e.avail_in-5),s=e.next_out,S=e.output,a=s-(t-e.avail_out),c=s+(e.avail_out-257),l=i.dmax,d=i.wsize,h=i.whave,u=i.wnext,p=i.window,f=i.hold,m=i.bits,x=i.lencode,g=i.distcode,b=(1<<i.lenbits)-1,v=(1<<i.distbits)-1;e:do{m<15&&(f+=B[r++]<<m,m+=8,f+=B[r++]<<m,m+=8),y=x[f&b];t:for(;;){if(F=y>>>24,f>>>=F,m-=F,F=y>>>16&255,F===0)S[s++]=y&65535;else if(F&16){D=y&65535,F&=15,F&&(m<F&&(f+=B[r++]<<m,m+=8),D+=f&(1<<F)-1,f>>>=F,m-=F),m<15&&(f+=B[r++]<<m,m+=8,f+=B[r++]<<m,m+=8),y=g[f&v];i:for(;;){if(F=y>>>24,f>>>=F,m-=F,F=y>>>16&255,F&16){if(C=y&65535,F&=15,m<F&&(f+=B[r++]<<m,m+=8,m<F&&(f+=B[r++]<<m,m+=8)),C+=f&(1<<F)-1,C>l){e.msg="invalid distance too far back",i.mode=Cd;break e}if(f>>>=F,m-=F,F=s-a,C>F){if(F=C-F,F>h&&i.sane){e.msg="invalid distance too far back",i.mode=Cd;break e}if(k=0,E=p,u===0){if(k+=d-F,F<D){D-=F;do S[s++]=p[k++];while(--F);k=s-C,E=S}}else if(u<F){if(k+=d+u-F,F-=u,F<D){D-=F;do S[s++]=p[k++];while(--F);if(k=0,u<D){F=u,D-=F;do S[s++]=p[k++];while(--F);k=s-C,E=S}}}else if(k+=u-F,F<D){D-=F;do S[s++]=p[k++];while(--F);k=s-C,E=S}for(;D>2;)S[s++]=E[k++],S[s++]=E[k++],S[s++]=E[k++],D-=3;D&&(S[s++]=E[k++],D>1&&(S[s++]=E[k++]))}else{k=s-C;do S[s++]=S[k++],S[s++]=S[k++],S[s++]=S[k++],D-=3;while(D>2);D&&(S[s++]=S[k++],D>1&&(S[s++]=S[k++]))}}else if((F&64)===0){y=g[(y&65535)+(f&(1<<F)-1)];continue i}else{e.msg="invalid distance code",i.mode=Cd;break e}break}}else if((F&64)===0){y=x[(y&65535)+(f&(1<<F)-1)];continue t}else if(F&32){i.mode=cD;break e}else{e.msg="invalid literal/length code",i.mode=Cd;break e}break}}while(r<o&&s<c);D=m>>3,r-=D,m-=D<<3,f&=(1<<m)-1,e.next_in=r,e.next_out=s,e.avail_in=r<o?5+(o-r):5-(r-o),e.avail_out=s<c?257+(c-s):257-(s-c),i.hold=f,i.bits=m}});var Ax=J((s2,Tx)=>{"use strict";var Px=bn(),ws=15,kx=852,Cx=592,Sx=0,uf=1,Ex=2,dD=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],hD=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],uD=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],fD=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];Tx.exports=function(e,t,i,r,o,s,a,c){var l=c.bits,d=0,h=0,u=0,p=0,f=0,m=0,x=0,g=0,b=0,v=0,y,F,D,C,k,E=null,B=0,S,A=new Px.Buf16(ws+1),L=new Px.Buf16(ws+1),I=null,N=0,q,U,Z;for(d=0;d<=ws;d++)A[d]=0;for(h=0;h<r;h++)A[t[i+h]]++;for(f=l,p=ws;p>=1&&A[p]===0;p--);if(f>p&&(f=p),p===0)return o[s++]=1<<24|64<<16|0,o[s++]=1<<24|64<<16|0,c.bits=1,0;for(u=1;u<p&&A[u]===0;u++);for(f<u&&(f=u),g=1,d=1;d<=ws;d++)if(g<<=1,g-=A[d],g<0)return-1;if(g>0&&(e===Sx||p!==1))return-1;for(L[1]=0,d=1;d<ws;d++)L[d+1]=L[d]+A[d];for(h=0;h<r;h++)t[i+h]!==0&&(a[L[t[i+h]]++]=h);if(e===Sx?(E=I=a,S=19):e===uf?(E=dD,B-=257,I=hD,N-=257,S=256):(E=uD,I=fD,S=-1),v=0,h=0,d=u,k=s,m=f,x=0,D=-1,b=1<<f,C=b-1,e===uf&&b>kx||e===Ex&&b>Cx)return 1;for(;;){q=d-x,a[h]<S?(U=0,Z=a[h]):a[h]>S?(U=I[N+a[h]],Z=E[B+a[h]]):(U=96,Z=0),y=1<<d-x,F=1<<m,u=F;do F-=y,o[k+(v>>x)+F]=q<<24|U<<16|Z|0;while(F!==0);for(y=1<<d-1;v&y;)y>>=1;if(y!==0?(v&=y-1,v+=y):v=0,h++,--A[d]===0){if(d===p)break;d=t[i+a[h]]}if(d>f&&(v&C)!==D){for(x===0&&(x=f),k+=u,m=d-x,g=1<<m;m+x<p&&(g-=A[m+x],!(g<=0));)m++,g<<=1;if(b+=1<<m,e===uf&&b>kx||e===Ex&&b>Cx)return 1;D=v&C,o[D]=f<<24|m<<16|k-s|0}}return v!==0&&(o[k+v]=d-x<<24|64<<16|0),c.bits=f,0}});var hb=J(Ii=>{"use strict";var Wt=bn(),bf=$0(),Qi=ef(),pD=Dx(),rl=Ax(),gD=0,ib=1,nb=2,Ix=4,mD=5,Sd=6,oo=0,xD=1,bD=2,oi=-2,rb=-3,yf=-4,yD=-5,Bx=8,ob=1,Lx=2,Ox=3,Mx=4,Nx=5,Rx=6,Vx=7,Hx=8,zx=9,Ux=10,Ad=11,wn=12,ff=13,qx=14,pf=15,Wx=16,jx=17,Kx=18,Gx=19,Ed=20,Td=21,Xx=22,Zx=23,Yx=24,Jx=25,_x=26,gf=27,Qx=28,$x=29,Re=30,vf=31,vD=32,wD=852,FD=592,DD=15,PD=DD;function eb(n){return(n>>>24&255)+(n>>>8&65280)+((n&65280)<<8)+((n&255)<<24)}function kD(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Wt.Buf16(320),this.work=new Wt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function sb(n){var e;return!n||!n.state?oi:(e=n.state,n.total_in=n.total_out=e.total=0,n.msg="",e.wrap&&(n.adler=e.wrap&1),e.mode=ob,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Wt.Buf32(wD),e.distcode=e.distdyn=new Wt.Buf32(FD),e.sane=1,e.back=-1,oo)}function ab(n){var e;return!n||!n.state?oi:(e=n.state,e.wsize=0,e.whave=0,e.wnext=0,sb(n))}function lb(n,e){var t,i;return!n||!n.state||(i=n.state,e<0?(t=0,e=-e):(t=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?oi:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,ab(n))}function cb(n,e){var t,i;return n?(i=new kD,n.state=i,i.window=null,t=lb(n,e),t!==oo&&(n.state=null),t):oi}function CD(n){return cb(n,PD)}var tb=!0,mf,xf;function SD(n){if(tb){var e;for(mf=new Wt.Buf32(512),xf=new Wt.Buf32(32),e=0;e<144;)n.lens[e++]=8;for(;e<256;)n.lens[e++]=9;for(;e<280;)n.lens[e++]=7;for(;e<288;)n.lens[e++]=8;for(rl(ib,n.lens,0,288,mf,0,n.work,{bits:9}),e=0;e<32;)n.lens[e++]=5;rl(nb,n.lens,0,32,xf,0,n.work,{bits:5}),tb=!1}n.lencode=mf,n.lenbits=9,n.distcode=xf,n.distbits=5}function db(n,e,t,i){var r,o=n.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Wt.Buf8(o.wsize)),i>=o.wsize?(Wt.arraySet(o.window,e,t-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>i&&(r=i),Wt.arraySet(o.window,e,t-i,r,o.wnext),i-=r,i?(Wt.arraySet(o.window,e,t-i,i,0),o.wnext=i,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=r))),0}function ED(n,e){var t,i,r,o,s,a,c,l,d,h,u,p,f,m,x=0,g,b,v,y,F,D,C,k,E=new Wt.Buf8(4),B,S,A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!n||!n.state||!n.output||!n.input&&n.avail_in!==0)return oi;t=n.state,t.mode===wn&&(t.mode=ff),s=n.next_out,r=n.output,c=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,l=t.hold,d=t.bits,h=a,u=c,k=oo;e:for(;;)switch(t.mode){case ob:if(t.wrap===0){t.mode=ff;break}for(;d<16;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}if(t.wrap&2&&l===35615){t.check=0,E[0]=l&255,E[1]=l>>>8&255,t.check=Qi(t.check,E,2,0),l=0,d=0,t.mode=Lx;break}if(t.flags=0,t.head&&(t.head.done=!1),!(t.wrap&1)||(((l&255)<<8)+(l>>8))%31){n.msg="incorrect header check",t.mode=Re;break}if((l&15)!==Bx){n.msg="unknown compression method",t.mode=Re;break}if(l>>>=4,d-=4,C=(l&15)+8,t.wbits===0)t.wbits=C;else if(C>t.wbits){n.msg="invalid window size",t.mode=Re;break}t.dmax=1<<C,n.adler=t.check=1,t.mode=l&512?Ux:wn,l=0,d=0;break;case Lx:for(;d<16;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}if(t.flags=l,(t.flags&255)!==Bx){n.msg="unknown compression method",t.mode=Re;break}if(t.flags&57344){n.msg="unknown header flags set",t.mode=Re;break}t.head&&(t.head.text=l>>8&1),t.flags&512&&(E[0]=l&255,E[1]=l>>>8&255,t.check=Qi(t.check,E,2,0)),l=0,d=0,t.mode=Ox;case Ox:for(;d<32;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}t.head&&(t.head.time=l),t.flags&512&&(E[0]=l&255,E[1]=l>>>8&255,E[2]=l>>>16&255,E[3]=l>>>24&255,t.check=Qi(t.check,E,4,0)),l=0,d=0,t.mode=Mx;case Mx:for(;d<16;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}t.head&&(t.head.xflags=l&255,t.head.os=l>>8),t.flags&512&&(E[0]=l&255,E[1]=l>>>8&255,t.check=Qi(t.check,E,2,0)),l=0,d=0,t.mode=Nx;case Nx:if(t.flags&1024){for(;d<16;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}t.length=l,t.head&&(t.head.extra_len=l),t.flags&512&&(E[0]=l&255,E[1]=l>>>8&255,t.check=Qi(t.check,E,2,0)),l=0,d=0}else t.head&&(t.head.extra=null);t.mode=Rx;case Rx:if(t.flags&1024&&(p=t.length,p>a&&(p=a),p&&(t.head&&(C=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Array(t.head.extra_len)),Wt.arraySet(t.head.extra,i,o,p,C)),t.flags&512&&(t.check=Qi(t.check,i,p,o)),a-=p,o+=p,t.length-=p),t.length))break e;t.length=0,t.mode=Vx;case Vx:if(t.flags&2048){if(a===0)break e;p=0;do C=i[o+p++],t.head&&C&&t.length<65536&&(t.head.name+=String.fromCharCode(C));while(C&&p<a);if(t.flags&512&&(t.check=Qi(t.check,i,p,o)),a-=p,o+=p,C)break e}else t.head&&(t.head.name=null);t.length=0,t.mode=Hx;case Hx:if(t.flags&4096){if(a===0)break e;p=0;do C=i[o+p++],t.head&&C&&t.length<65536&&(t.head.comment+=String.fromCharCode(C));while(C&&p<a);if(t.flags&512&&(t.check=Qi(t.check,i,p,o)),a-=p,o+=p,C)break e}else t.head&&(t.head.comment=null);t.mode=zx;case zx:if(t.flags&512){for(;d<16;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}if(l!==(t.check&65535)){n.msg="header crc mismatch",t.mode=Re;break}l=0,d=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),n.adler=t.check=0,t.mode=wn;break;case Ux:for(;d<32;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}n.adler=t.check=eb(l),l=0,d=0,t.mode=Ad;case Ad:if(t.havedict===0)return n.next_out=s,n.avail_out=c,n.next_in=o,n.avail_in=a,t.hold=l,t.bits=d,bD;n.adler=t.check=1,t.mode=wn;case wn:if(e===mD||e===Sd)break e;case ff:if(t.last){l>>>=d&7,d-=d&7,t.mode=gf;break}for(;d<3;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}switch(t.last=l&1,l>>>=1,d-=1,l&3){case 0:t.mode=qx;break;case 1:if(SD(t),t.mode=Ed,e===Sd){l>>>=2,d-=2;break e}break;case 2:t.mode=jx;break;case 3:n.msg="invalid block type",t.mode=Re}l>>>=2,d-=2;break;case qx:for(l>>>=d&7,d-=d&7;d<32;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}if((l&65535)!==(l>>>16^65535)){n.msg="invalid stored block lengths",t.mode=Re;break}if(t.length=l&65535,l=0,d=0,t.mode=pf,e===Sd)break e;case pf:t.mode=Wx;case Wx:if(p=t.length,p){if(p>a&&(p=a),p>c&&(p=c),p===0)break e;Wt.arraySet(r,i,o,p,s),a-=p,o+=p,c-=p,s+=p,t.length-=p;break}t.mode=wn;break;case jx:for(;d<14;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}if(t.nlen=(l&31)+257,l>>>=5,d-=5,t.ndist=(l&31)+1,l>>>=5,d-=5,t.ncode=(l&15)+4,l>>>=4,d-=4,t.nlen>286||t.ndist>30){n.msg="too many length or distance symbols",t.mode=Re;break}t.have=0,t.mode=Kx;case Kx:for(;t.have<t.ncode;){for(;d<3;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}t.lens[A[t.have++]]=l&7,l>>>=3,d-=3}for(;t.have<19;)t.lens[A[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,B={bits:t.lenbits},k=rl(gD,t.lens,0,19,t.lencode,0,t.work,B),t.lenbits=B.bits,k){n.msg="invalid code lengths set",t.mode=Re;break}t.have=0,t.mode=Gx;case Gx:for(;t.have<t.nlen+t.ndist;){for(;x=t.lencode[l&(1<<t.lenbits)-1],g=x>>>24,b=x>>>16&255,v=x&65535,!(g<=d);){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}if(v<16)l>>>=g,d-=g,t.lens[t.have++]=v;else{if(v===16){for(S=g+2;d<S;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}if(l>>>=g,d-=g,t.have===0){n.msg="invalid bit length repeat",t.mode=Re;break}C=t.lens[t.have-1],p=3+(l&3),l>>>=2,d-=2}else if(v===17){for(S=g+3;d<S;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}l>>>=g,d-=g,C=0,p=3+(l&7),l>>>=3,d-=3}else{for(S=g+7;d<S;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}l>>>=g,d-=g,C=0,p=11+(l&127),l>>>=7,d-=7}if(t.have+p>t.nlen+t.ndist){n.msg="invalid bit length repeat",t.mode=Re;break}for(;p--;)t.lens[t.have++]=C}}if(t.mode===Re)break;if(t.lens[256]===0){n.msg="invalid code -- missing end-of-block",t.mode=Re;break}if(t.lenbits=9,B={bits:t.lenbits},k=rl(ib,t.lens,0,t.nlen,t.lencode,0,t.work,B),t.lenbits=B.bits,k){n.msg="invalid literal/lengths set",t.mode=Re;break}if(t.distbits=6,t.distcode=t.distdyn,B={bits:t.distbits},k=rl(nb,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,B),t.distbits=B.bits,k){n.msg="invalid distances set",t.mode=Re;break}if(t.mode=Ed,e===Sd)break e;case Ed:t.mode=Td;case Td:if(a>=6&&c>=258){n.next_out=s,n.avail_out=c,n.next_in=o,n.avail_in=a,t.hold=l,t.bits=d,pD(n,u),s=n.next_out,r=n.output,c=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,l=t.hold,d=t.bits,t.mode===wn&&(t.back=-1);break}for(t.back=0;x=t.lencode[l&(1<<t.lenbits)-1],g=x>>>24,b=x>>>16&255,v=x&65535,!(g<=d);){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}if(b&&(b&240)===0){for(y=g,F=b,D=v;x=t.lencode[D+((l&(1<<y+F)-1)>>y)],g=x>>>24,b=x>>>16&255,v=x&65535,!(y+g<=d);){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}l>>>=y,d-=y,t.back+=y}if(l>>>=g,d-=g,t.back+=g,t.length=v,b===0){t.mode=_x;break}if(b&32){t.back=-1,t.mode=wn;break}if(b&64){n.msg="invalid literal/length code",t.mode=Re;break}t.extra=b&15,t.mode=Xx;case Xx:if(t.extra){for(S=t.extra;d<S;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}t.length+=l&(1<<t.extra)-1,l>>>=t.extra,d-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=Zx;case Zx:for(;x=t.distcode[l&(1<<t.distbits)-1],g=x>>>24,b=x>>>16&255,v=x&65535,!(g<=d);){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}if((b&240)===0){for(y=g,F=b,D=v;x=t.distcode[D+((l&(1<<y+F)-1)>>y)],g=x>>>24,b=x>>>16&255,v=x&65535,!(y+g<=d);){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}l>>>=y,d-=y,t.back+=y}if(l>>>=g,d-=g,t.back+=g,b&64){n.msg="invalid distance code",t.mode=Re;break}t.offset=v,t.extra=b&15,t.mode=Yx;case Yx:if(t.extra){for(S=t.extra;d<S;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}t.offset+=l&(1<<t.extra)-1,l>>>=t.extra,d-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){n.msg="invalid distance too far back",t.mode=Re;break}t.mode=Jx;case Jx:if(c===0)break e;if(p=u-c,t.offset>p){if(p=t.offset-p,p>t.whave&&t.sane){n.msg="invalid distance too far back",t.mode=Re;break}p>t.wnext?(p-=t.wnext,f=t.wsize-p):f=t.wnext-p,p>t.length&&(p=t.length),m=t.window}else m=r,f=s-t.offset,p=t.length;p>c&&(p=c),c-=p,t.length-=p;do r[s++]=m[f++];while(--p);t.length===0&&(t.mode=Td);break;case _x:if(c===0)break e;r[s++]=t.length,c--,t.mode=Td;break;case gf:if(t.wrap){for(;d<32;){if(a===0)break e;a--,l|=i[o++]<<d,d+=8}if(u-=c,n.total_out+=u,t.total+=u,u&&(n.adler=t.check=t.flags?Qi(t.check,r,u,s-u):bf(t.check,r,u,s-u)),u=c,(t.flags?l:eb(l))!==t.check){n.msg="incorrect data check",t.mode=Re;break}l=0,d=0}t.mode=Qx;case Qx:if(t.wrap&&t.flags){for(;d<32;){if(a===0)break e;a--,l+=i[o++]<<d,d+=8}if(l!==(t.total&4294967295)){n.msg="incorrect length check",t.mode=Re;break}l=0,d=0}t.mode=$x;case $x:k=xD;break e;case Re:k=rb;break e;case vf:return yf;case vD:default:return oi}return n.next_out=s,n.avail_out=c,n.next_in=o,n.avail_in=a,t.hold=l,t.bits=d,(t.wsize||u!==n.avail_out&&t.mode<Re&&(t.mode<gf||e!==Ix))&&db(n,n.output,n.next_out,u-n.avail_out)?(t.mode=vf,yf):(h-=n.avail_in,u-=n.avail_out,n.total_in+=h,n.total_out+=u,t.total+=u,t.wrap&&u&&(n.adler=t.check=t.flags?Qi(t.check,r,u,n.next_out-u):bf(t.check,r,u,n.next_out-u)),n.data_type=t.bits+(t.last?64:0)+(t.mode===wn?128:0)+(t.mode===Ed||t.mode===pf?256:0),(h===0&&u===0||e===Ix)&&k===oo&&(k=yD),k)}function TD(n){if(!n||!n.state)return oi;var e=n.state;return e.window&&(e.window=null),n.state=null,oo}function AD(n,e){var t;return!n||!n.state||(t=n.state,(t.wrap&2)===0)?oi:(t.head=e,e.done=!1,oo)}function ID(n,e){var t=e.length,i,r,o;return!n||!n.state||(i=n.state,i.wrap!==0&&i.mode!==Ad)?oi:i.mode===Ad&&(r=1,r=bf(r,e,t,0),r!==i.check)?rb:(o=db(n,e,t,t),o?(i.mode=vf,yf):(i.havedict=1,oo))}Ii.inflateReset=ab;Ii.inflateReset2=lb;Ii.inflateResetKeep=sb;Ii.inflateInit=CD;Ii.inflateInit2=cb;Ii.inflate=ED;Ii.inflateEnd=TD;Ii.inflateGetHeader=AD;Ii.inflateSetDictionary=ID;Ii.inflateInfo="pako inflate (from Nodeca project)"});var wf=J((l2,ub)=>{"use strict";ub.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var pb=J((c2,fb)=>{"use strict";function BD(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}fb.exports=BD});var mb=J(sl=>{"use strict";var Fs=hb(),ol=bn(),Id=sf(),Ze=wf(),Ff=bd(),LD=af(),OD=pb(),gb=Object.prototype.toString;function so(n){if(!(this instanceof so))return new so(n);this.options=ol.assign({chunkSize:16384,windowBits:0,to:""},n||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(n&&n.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15)===0&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new LD,this.strm.avail_out=0;var t=Fs.inflateInit2(this.strm,e.windowBits);if(t!==Ze.Z_OK)throw new Error(Ff[t]);if(this.header=new OD,Fs.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Id.string2buf(e.dictionary):gb.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=Fs.inflateSetDictionary(this.strm,e.dictionary),t!==Ze.Z_OK)))throw new Error(Ff[t])}so.prototype.push=function(n,e){var t=this.strm,i=this.options.chunkSize,r=this.options.dictionary,o,s,a,c,l,d=!1;if(this.ended)return!1;s=e===~~e?e:e===!0?Ze.Z_FINISH:Ze.Z_NO_FLUSH,typeof n=="string"?t.input=Id.binstring2buf(n):gb.call(n)==="[object ArrayBuffer]"?t.input=new Uint8Array(n):t.input=n,t.next_in=0,t.avail_in=t.input.length;do{if(t.avail_out===0&&(t.output=new ol.Buf8(i),t.next_out=0,t.avail_out=i),o=Fs.inflate(t,Ze.Z_NO_FLUSH),o===Ze.Z_NEED_DICT&&r&&(o=Fs.inflateSetDictionary(this.strm,r)),o===Ze.Z_BUF_ERROR&&d===!0&&(o=Ze.Z_OK,d=!1),o!==Ze.Z_STREAM_END&&o!==Ze.Z_OK)return this.onEnd(o),this.ended=!0,!1;t.next_out&&(t.avail_out===0||o===Ze.Z_STREAM_END||t.avail_in===0&&(s===Ze.Z_FINISH||s===Ze.Z_SYNC_FLUSH))&&(this.options.to==="string"?(a=Id.utf8border(t.output,t.next_out),c=t.next_out-a,l=Id.buf2string(t.output,a),t.next_out=c,t.avail_out=i-c,c&&ol.arraySet(t.output,t.output,a,c,0),this.onData(l)):this.onData(ol.shrinkBuf(t.output,t.next_out))),t.avail_in===0&&t.avail_out===0&&(d=!0)}while((t.avail_in>0||t.avail_out===0)&&o!==Ze.Z_STREAM_END);return o===Ze.Z_STREAM_END&&(s=Ze.Z_FINISH),s===Ze.Z_FINISH?(o=Fs.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===Ze.Z_OK):(s===Ze.Z_SYNC_FLUSH&&(this.onEnd(Ze.Z_OK),t.avail_out=0),!0)};so.prototype.onData=function(n){this.chunks.push(n)};so.prototype.onEnd=function(n){n===Ze.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=ol.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function Df(n,e){var t=new so(e);if(t.push(n,!0),t.err)throw t.msg||Ff[t.err];return t.result}function MD(n,e){return e=e||{},e.raw=!0,Df(n,e)}sl.Inflate=so;sl.inflate=Df;sl.inflateRaw=MD;sl.ungzip=Df});var al=J((h2,bb)=>{"use strict";var ND=bn().assign,RD=wx(),VD=mb(),HD=wf(),xb={};ND(xb,RD,VD,HD);bb.exports=xb});var me=J((Jd,gy)=>{(function(n,e){typeof Jd=="object"?gy.exports=Jd=e():typeof define=="function"&&define.amd?define([],e):n.CryptoJS=e()})(Jd,function(){var n=n||function(e,t){var i;if(typeof window!="undefined"&&window.crypto&&(i=window.crypto),typeof self!="undefined"&&self.crypto&&(i=self.crypto),typeof globalThis!="undefined"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window!="undefined"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof global!="undefined"&&global.crypto&&(i=global.crypto),!i&&typeof require=="function")try{i=require("crypto")}catch(g){}var r=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch(g){}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch(g){}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||function(){function g(){}return function(b){var v;return g.prototype=b,v=new g,g.prototype=null,v}}(),s={},a=s.lib={},c=a.Base=function(){return{extend:function(g){var b=o(this);return g&&b.mixIn(g),(!b.hasOwnProperty("init")||this.init===b.init)&&(b.init=function(){b.$super.init.apply(this,arguments)}),b.init.prototype=b,b.$super=this,b},create:function(){var g=this.extend();return g.init.apply(g,arguments),g},init:function(){},mixIn:function(g){for(var b in g)g.hasOwnProperty(b)&&(this[b]=g[b]);g.hasOwnProperty("toString")&&(this.toString=g.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),l=a.WordArray=c.extend({init:function(g,b){g=this.words=g||[],b!=t?this.sigBytes=b:this.sigBytes=g.length*4},toString:function(g){return(g||h).stringify(this)},concat:function(g){var b=this.words,v=g.words,y=this.sigBytes,F=g.sigBytes;if(this.clamp(),y%4)for(var D=0;D<F;D++){var C=v[D>>>2]>>>24-D%4*8&255;b[y+D>>>2]|=C<<24-(y+D)%4*8}else for(var k=0;k<F;k+=4)b[y+k>>>2]=v[k>>>2];return this.sigBytes+=F,this},clamp:function(){var g=this.words,b=this.sigBytes;g[b>>>2]&=4294967295<<32-b%4*8,g.length=e.ceil(b/4)},clone:function(){var g=c.clone.call(this);return g.words=this.words.slice(0),g},random:function(g){for(var b=[],v=0;v<g;v+=4)b.push(r());return new l.init(b,g)}}),d=s.enc={},h=d.Hex={stringify:function(g){for(var b=g.words,v=g.sigBytes,y=[],F=0;F<v;F++){var D=b[F>>>2]>>>24-F%4*8&255;y.push((D>>>4).toString(16)),y.push((D&15).toString(16))}return y.join("")},parse:function(g){for(var b=g.length,v=[],y=0;y<b;y+=2)v[y>>>3]|=parseInt(g.substr(y,2),16)<<24-y%8*4;return new l.init(v,b/2)}},u=d.Latin1={stringify:function(g){for(var b=g.words,v=g.sigBytes,y=[],F=0;F<v;F++){var D=b[F>>>2]>>>24-F%4*8&255;y.push(String.fromCharCode(D))}return y.join("")},parse:function(g){for(var b=g.length,v=[],y=0;y<b;y++)v[y>>>2]|=(g.charCodeAt(y)&255)<<24-y%4*8;return new l.init(v,b)}},p=d.Utf8={stringify:function(g){try{return decodeURIComponent(escape(u.stringify(g)))}catch(b){throw new Error("Malformed UTF-8 data")}},parse:function(g){return u.parse(unescape(encodeURIComponent(g)))}},f=a.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(g){typeof g=="string"&&(g=p.parse(g)),this._data.concat(g),this._nDataBytes+=g.sigBytes},_process:function(g){var b,v=this._data,y=v.words,F=v.sigBytes,D=this.blockSize,C=D*4,k=F/C;g?k=e.ceil(k):k=e.max((k|0)-this._minBufferSize,0);var E=k*D,B=e.min(E*4,F);if(E){for(var S=0;S<E;S+=D)this._doProcessBlock(y,S);b=y.splice(0,E),v.sigBytes-=B}return new l.init(b,B)},clone:function(){var g=c.clone.call(this);return g._data=this._data.clone(),g},_minBufferSize:0}),m=a.Hasher=f.extend({cfg:c.extend(),init:function(g){this.cfg=this.cfg.extend(g),this.reset()},reset:function(){f.reset.call(this),this._doReset()},update:function(g){return this._append(g),this._process(),this},finalize:function(g){g&&this._append(g);var b=this._doFinalize();return b},blockSize:512/32,_createHelper:function(g){return function(b,v){return new g.init(v).finalize(b)}},_createHmacHelper:function(g){return function(b,v){return new x.HMAC.init(g,v).finalize(b)}}}),x=s.algo={};return s}(Math);return n})});var lc=J((_d,my)=>{(function(n,e){typeof _d=="object"?my.exports=_d=e(me()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(_d,function(n){return function(e){var t=n,i=t.lib,r=i.Base,o=i.WordArray,s=t.x64={},a=s.Word=r.extend({init:function(l,d){this.high=l,this.low=d}}),c=s.WordArray=r.extend({init:function(l,d){l=this.words=l||[],d!=e?this.sigBytes=d:this.sigBytes=l.length*8},toX32:function(){for(var l=this.words,d=l.length,h=[],u=0;u<d;u++){var p=l[u];h.push(p.high),h.push(p.low)}return o.create(h,this.sigBytes)},clone:function(){for(var l=r.clone.call(this),d=l.words=this.words.slice(0),h=d.length,u=0;u<h;u++)d[u]=d[u].clone();return l}})}(),n})});var by=J((Qd,xy)=>{(function(n,e){typeof Qd=="object"?xy.exports=Qd=e(me()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Qd,function(n){return function(){if(typeof ArrayBuffer=="function"){var e=n,t=e.lib,i=t.WordArray,r=i.init,o=i.init=function(s){if(s instanceof ArrayBuffer&&(s=new Uint8Array(s)),(s instanceof Int8Array||typeof Uint8ClampedArray!="undefined"&&s instanceof Uint8ClampedArray||s instanceof Int16Array||s instanceof Uint16Array||s instanceof Int32Array||s instanceof Uint32Array||s instanceof Float32Array||s instanceof Float64Array)&&(s=new Uint8Array(s.buffer,s.byteOffset,s.byteLength)),s instanceof Uint8Array){for(var a=s.byteLength,c=[],l=0;l<a;l++)c[l>>>2]|=s[l]<<24-l%4*8;r.call(this,c,a)}else r.apply(this,arguments)};o.prototype=i}}(),n.lib.WordArray})});var vy=J(($d,yy)=>{(function(n,e){typeof $d=="object"?yy.exports=$d=e(me()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})($d,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,r=e.enc,o=r.Utf16=r.Utf16BE={stringify:function(a){for(var c=a.words,l=a.sigBytes,d=[],h=0;h<l;h+=2){var u=c[h>>>2]>>>16-h%4*8&65535;d.push(String.fromCharCode(u))}return d.join("")},parse:function(a){for(var c=a.length,l=[],d=0;d<c;d++)l[d>>>1]|=a.charCodeAt(d)<<16-d%2*16;return i.create(l,c*2)}};r.Utf16LE={stringify:function(a){for(var c=a.words,l=a.sigBytes,d=[],h=0;h<l;h+=2){var u=s(c[h>>>2]>>>16-h%4*8&65535);d.push(String.fromCharCode(u))}return d.join("")},parse:function(a){for(var c=a.length,l=[],d=0;d<c;d++)l[d>>>1]|=s(a.charCodeAt(d)<<16-d%2*16);return i.create(l,c*2)}};function s(a){return a<<8&4278255360|a>>>8&16711935}}(),n.enc.Utf16})});var Cr=J((eh,wy)=>{(function(n,e){typeof eh=="object"?wy.exports=eh=e(me()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(eh,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,r=e.enc,o=r.Base64={stringify:function(a){var c=a.words,l=a.sigBytes,d=this._map;a.clamp();for(var h=[],u=0;u<l;u+=3)for(var p=c[u>>>2]>>>24-u%4*8&255,f=c[u+1>>>2]>>>24-(u+1)%4*8&255,m=c[u+2>>>2]>>>24-(u+2)%4*8&255,x=p<<16|f<<8|m,g=0;g<4&&u+g*.75<l;g++)h.push(d.charAt(x>>>6*(3-g)&63));var b=d.charAt(64);if(b)for(;h.length%4;)h.push(b);return h.join("")},parse:function(a){var c=a.length,l=this._map,d=this._reverseMap;if(!d){d=this._reverseMap=[];for(var h=0;h<l.length;h++)d[l.charCodeAt(h)]=h}var u=l.charAt(64);if(u){var p=a.indexOf(u);p!==-1&&(c=p)}return s(a,c,d)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="};function s(a,c,l){for(var d=[],h=0,u=0;u<c;u++)if(u%4){var p=l[a.charCodeAt(u-1)]<<u%4*2,f=l[a.charCodeAt(u)]>>>6-u%4*2,m=p|f;d[h>>>2]|=m<<24-h%4*8,h++}return i.create(d,h)}}(),n.enc.Base64})});var Dy=J((th,Fy)=>{(function(n,e){typeof th=="object"?Fy.exports=th=e(me()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(th,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,r=e.enc,o=r.Base64url={stringify:function(a,c){c===void 0&&(c=!0);var l=a.words,d=a.sigBytes,h=c?this._safe_map:this._map;a.clamp();for(var u=[],p=0;p<d;p+=3)for(var f=l[p>>>2]>>>24-p%4*8&255,m=l[p+1>>>2]>>>24-(p+1)%4*8&255,x=l[p+2>>>2]>>>24-(p+2)%4*8&255,g=f<<16|m<<8|x,b=0;b<4&&p+b*.75<d;b++)u.push(h.charAt(g>>>6*(3-b)&63));var v=h.charAt(64);if(v)for(;u.length%4;)u.push(v);return u.join("")},parse:function(a,c){c===void 0&&(c=!0);var l=a.length,d=c?this._safe_map:this._map,h=this._reverseMap;if(!h){h=this._reverseMap=[];for(var u=0;u<d.length;u++)h[d.charCodeAt(u)]=u}var p=d.charAt(64);if(p){var f=a.indexOf(p);f!==-1&&(l=f)}return s(a,l,h)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"};function s(a,c,l){for(var d=[],h=0,u=0;u<c;u++)if(u%4){var p=l[a.charCodeAt(u-1)]<<u%4*2,f=l[a.charCodeAt(u)]>>>6-u%4*2,m=p|f;d[h>>>2]|=m<<24-h%4*8,h++}return i.create(d,h)}}(),n.enc.Base64url})});var Sr=J((ih,Py)=>{(function(n,e){typeof ih=="object"?Py.exports=ih=e(me()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(ih,function(n){return function(e){var t=n,i=t.lib,r=i.WordArray,o=i.Hasher,s=t.algo,a=[];(function(){for(var p=0;p<64;p++)a[p]=e.abs(e.sin(p+1))*4294967296|0})();var c=s.MD5=o.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(p,f){for(var m=0;m<16;m++){var x=f+m,g=p[x];p[x]=(g<<8|g>>>24)&16711935|(g<<24|g>>>8)&4278255360}var b=this._hash.words,v=p[f+0],y=p[f+1],F=p[f+2],D=p[f+3],C=p[f+4],k=p[f+5],E=p[f+6],B=p[f+7],S=p[f+8],A=p[f+9],L=p[f+10],I=p[f+11],N=p[f+12],q=p[f+13],U=p[f+14],Z=p[f+15],O=b[0],z=b[1],R=b[2],M=b[3];O=l(O,z,R,M,v,7,a[0]),M=l(M,O,z,R,y,12,a[1]),R=l(R,M,O,z,F,17,a[2]),z=l(z,R,M,O,D,22,a[3]),O=l(O,z,R,M,C,7,a[4]),M=l(M,O,z,R,k,12,a[5]),R=l(R,M,O,z,E,17,a[6]),z=l(z,R,M,O,B,22,a[7]),O=l(O,z,R,M,S,7,a[8]),M=l(M,O,z,R,A,12,a[9]),R=l(R,M,O,z,L,17,a[10]),z=l(z,R,M,O,I,22,a[11]),O=l(O,z,R,M,N,7,a[12]),M=l(M,O,z,R,q,12,a[13]),R=l(R,M,O,z,U,17,a[14]),z=l(z,R,M,O,Z,22,a[15]),O=d(O,z,R,M,y,5,a[16]),M=d(M,O,z,R,E,9,a[17]),R=d(R,M,O,z,I,14,a[18]),z=d(z,R,M,O,v,20,a[19]),O=d(O,z,R,M,k,5,a[20]),M=d(M,O,z,R,L,9,a[21]),R=d(R,M,O,z,Z,14,a[22]),z=d(z,R,M,O,C,20,a[23]),O=d(O,z,R,M,A,5,a[24]),M=d(M,O,z,R,U,9,a[25]),R=d(R,M,O,z,D,14,a[26]),z=d(z,R,M,O,S,20,a[27]),O=d(O,z,R,M,q,5,a[28]),M=d(M,O,z,R,F,9,a[29]),R=d(R,M,O,z,B,14,a[30]),z=d(z,R,M,O,N,20,a[31]),O=h(O,z,R,M,k,4,a[32]),M=h(M,O,z,R,S,11,a[33]),R=h(R,M,O,z,I,16,a[34]),z=h(z,R,M,O,U,23,a[35]),O=h(O,z,R,M,y,4,a[36]),M=h(M,O,z,R,C,11,a[37]),R=h(R,M,O,z,B,16,a[38]),z=h(z,R,M,O,L,23,a[39]),O=h(O,z,R,M,q,4,a[40]),M=h(M,O,z,R,v,11,a[41]),R=h(R,M,O,z,D,16,a[42]),z=h(z,R,M,O,E,23,a[43]),O=h(O,z,R,M,A,4,a[44]),M=h(M,O,z,R,N,11,a[45]),R=h(R,M,O,z,Z,16,a[46]),z=h(z,R,M,O,F,23,a[47]),O=u(O,z,R,M,v,6,a[48]),M=u(M,O,z,R,B,10,a[49]),R=u(R,M,O,z,U,15,a[50]),z=u(z,R,M,O,k,21,a[51]),O=u(O,z,R,M,N,6,a[52]),M=u(M,O,z,R,D,10,a[53]),R=u(R,M,O,z,L,15,a[54]),z=u(z,R,M,O,y,21,a[55]),O=u(O,z,R,M,S,6,a[56]),M=u(M,O,z,R,Z,10,a[57]),R=u(R,M,O,z,E,15,a[58]),z=u(z,R,M,O,q,21,a[59]),O=u(O,z,R,M,C,6,a[60]),M=u(M,O,z,R,I,10,a[61]),R=u(R,M,O,z,F,15,a[62]),z=u(z,R,M,O,A,21,a[63]),b[0]=b[0]+O|0,b[1]=b[1]+z|0,b[2]=b[2]+R|0,b[3]=b[3]+M|0},_doFinalize:function(){var p=this._data,f=p.words,m=this._nDataBytes*8,x=p.sigBytes*8;f[x>>>5]|=128<<24-x%32;var g=e.floor(m/4294967296),b=m;f[(x+64>>>9<<4)+15]=(g<<8|g>>>24)&16711935|(g<<24|g>>>8)&4278255360,f[(x+64>>>9<<4)+14]=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360,p.sigBytes=(f.length+1)*4,this._process();for(var v=this._hash,y=v.words,F=0;F<4;F++){var D=y[F];y[F]=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360}return v},clone:function(){var p=o.clone.call(this);return p._hash=this._hash.clone(),p}});function l(p,f,m,x,g,b,v){var y=p+(f&m|~f&x)+g+v;return(y<<b|y>>>32-b)+f}function d(p,f,m,x,g,b,v){var y=p+(f&x|m&~x)+g+v;return(y<<b|y>>>32-b)+f}function h(p,f,m,x,g,b,v){var y=p+(f^m^x)+g+v;return(y<<b|y>>>32-b)+f}function u(p,f,m,x,g,b,v){var y=p+(m^(f|~x))+g+v;return(y<<b|y>>>32-b)+f}t.MD5=o._createHelper(c),t.HmacMD5=o._createHmacHelper(c)}(Math),n.MD5})});var ip=J((nh,ky)=>{(function(n,e){typeof nh=="object"?ky.exports=nh=e(me()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(nh,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,r=t.Hasher,o=e.algo,s=[],a=o.SHA1=r.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(c,l){for(var d=this._hash.words,h=d[0],u=d[1],p=d[2],f=d[3],m=d[4],x=0;x<80;x++){if(x<16)s[x]=c[l+x]|0;else{var g=s[x-3]^s[x-8]^s[x-14]^s[x-16];s[x]=g<<1|g>>>31}var b=(h<<5|h>>>27)+m+s[x];x<20?b+=(u&p|~u&f)+1518500249:x<40?b+=(u^p^f)+1859775393:x<60?b+=(u&p|u&f|p&f)-1894007588:b+=(u^p^f)-899497514,m=f,f=p,p=u<<30|u>>>2,u=h,h=b}d[0]=d[0]+h|0,d[1]=d[1]+u|0,d[2]=d[2]+p|0,d[3]=d[3]+f|0,d[4]=d[4]+m|0},_doFinalize:function(){var c=this._data,l=c.words,d=this._nDataBytes*8,h=c.sigBytes*8;return l[h>>>5]|=128<<24-h%32,l[(h+64>>>9<<4)+14]=Math.floor(d/4294967296),l[(h+64>>>9<<4)+15]=d,c.sigBytes=l.length*4,this._process(),this._hash},clone:function(){var c=r.clone.call(this);return c._hash=this._hash.clone(),c}});e.SHA1=r._createHelper(a),e.HmacSHA1=r._createHmacHelper(a)}(),n.SHA1})});var oh=J((rh,Cy)=>{(function(n,e){typeof rh=="object"?Cy.exports=rh=e(me()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(rh,function(n){return function(e){var t=n,i=t.lib,r=i.WordArray,o=i.Hasher,s=t.algo,a=[],c=[];(function(){function h(m){for(var x=e.sqrt(m),g=2;g<=x;g++)if(!(m%g))return!1;return!0}function u(m){return(m-(m|0))*4294967296|0}for(var p=2,f=0;f<64;)h(p)&&(f<8&&(a[f]=u(e.pow(p,1/2))),c[f]=u(e.pow(p,1/3)),f++),p++})();var l=[],d=s.SHA256=o.extend({_doReset:function(){this._hash=new r.init(a.slice(0))},_doProcessBlock:function(h,u){for(var p=this._hash.words,f=p[0],m=p[1],x=p[2],g=p[3],b=p[4],v=p[5],y=p[6],F=p[7],D=0;D<64;D++){if(D<16)l[D]=h[u+D]|0;else{var C=l[D-15],k=(C<<25|C>>>7)^(C<<14|C>>>18)^C>>>3,E=l[D-2],B=(E<<15|E>>>17)^(E<<13|E>>>19)^E>>>10;l[D]=k+l[D-7]+B+l[D-16]}var S=b&v^~b&y,A=f&m^f&x^m&x,L=(f<<30|f>>>2)^(f<<19|f>>>13)^(f<<10|f>>>22),I=(b<<26|b>>>6)^(b<<21|b>>>11)^(b<<7|b>>>25),N=F+I+S+c[D]+l[D],q=L+A;F=y,y=v,v=b,b=g+N|0,g=x,x=m,m=f,f=N+q|0}p[0]=p[0]+f|0,p[1]=p[1]+m|0,p[2]=p[2]+x|0,p[3]=p[3]+g|0,p[4]=p[4]+b|0,p[5]=p[5]+v|0,p[6]=p[6]+y|0,p[7]=p[7]+F|0},_doFinalize:function(){var h=this._data,u=h.words,p=this._nDataBytes*8,f=h.sigBytes*8;return u[f>>>5]|=128<<24-f%32,u[(f+64>>>9<<4)+14]=e.floor(p/4294967296),u[(f+64>>>9<<4)+15]=p,h.sigBytes=u.length*4,this._process(),this._hash},clone:function(){var h=o.clone.call(this);return h._hash=this._hash.clone(),h}});t.SHA256=o._createHelper(d),t.HmacSHA256=o._createHmacHelper(d)}(Math),n.SHA256})});var Ey=J((sh,Sy)=>{(function(n,e,t){typeof sh=="object"?Sy.exports=sh=e(me(),oh()):typeof define=="function"&&define.amd?define(["./core","./sha256"],e):e(n.CryptoJS)})(sh,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,r=e.algo,o=r.SHA256,s=r.SHA224=o.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var a=o._doFinalize.call(this);return a.sigBytes-=4,a}});e.SHA224=o._createHelper(s),e.HmacSHA224=o._createHmacHelper(s)}(),n.SHA224})});var np=J((ah,Ty)=>{(function(n,e,t){typeof ah=="object"?Ty.exports=ah=e(me(),lc()):typeof define=="function"&&define.amd?define(["./core","./x64-core"],e):e(n.CryptoJS)})(ah,function(n){return function(){var e=n,t=e.lib,i=t.Hasher,r=e.x64,o=r.Word,s=r.WordArray,a=e.algo;function c(){return o.create.apply(o,arguments)}var l=[c(1116352408,3609767458),c(1899447441,602891725),c(3049323471,3964484399),c(3921009573,2173295548),c(961987163,4081628472),c(1508970993,3053834265),c(2453635748,2937671579),c(2870763221,3664609560),c(3624381080,2734883394),c(310598401,1164996542),c(607225278,1323610764),c(1426881987,3590304994),c(1925078388,4068182383),c(2162078206,991336113),c(2614888103,633803317),c(3248222580,3479774868),c(3835390401,2666613458),c(4022224774,944711139),c(264347078,2341262773),c(604807628,2007800933),c(770255983,1495990901),c(1249150122,1856431235),c(1555081692,3175218132),c(1996064986,2198950837),c(2554220882,3999719339),c(2821834349,766784016),c(2952996808,2566594879),c(3210313671,3203337956),c(3336571891,1034457026),c(3584528711,2466948901),c(113926993,3758326383),c(338241895,168717936),c(666307205,1188179964),c(773529912,1546045734),c(1294757372,1522805485),c(1396182291,2643833823),c(1695183700,2343527390),c(1986661051,1014477480),c(2177026350,1206759142),c(2456956037,344077627),c(2730485921,1290863460),c(2820302411,3158454273),c(3259730800,3505952657),c(3345764771,106217008),c(3516065817,3606008344),c(3600352804,1432725776),c(4094571909,1467031594),c(275423344,851169720),c(430227734,3100823752),c(506948616,1363258195),c(659060556,3750685593),c(883997877,3785050280),c(958139571,3318307427),c(1322822218,3812723403),c(1537002063,2003034995),c(1747873779,3602036899),c(1955562222,1575990012),c(2024104815,1125592928),c(2227730452,2716904306),c(2361852424,442776044),c(2428436474,593698344),c(2756734187,3733110249),c(3204031479,2999351573),c(3329325298,3815920427),c(3391569614,3928383900),c(3515267271,566280711),c(3940187606,3454069534),c(4118630271,4000239992),c(116418474,1914138554),c(174292421,2731055270),c(289380356,3203993006),c(460393269,320620315),c(685471733,587496836),c(852142971,1086792851),c(1017036298,365543100),c(1126000580,2618297676),c(1288033470,3409855158),c(1501505948,4234509866),c(1607167915,987167468),c(1816402316,1246189591)],d=[];(function(){for(var u=0;u<80;u++)d[u]=c()})();var h=a.SHA512=i.extend({_doReset:function(){this._hash=new s.init([new o.init(1779033703,4089235720),new o.init(3144134277,2227873595),new o.init(1013904242,4271175723),new o.init(2773480762,1595750129),new o.init(1359893119,2917565137),new o.init(2600822924,725511199),new o.init(528734635,4215389547),new o.init(1541459225,327033209)])},_doProcessBlock:function(u,p){for(var f=this._hash.words,m=f[0],x=f[1],g=f[2],b=f[3],v=f[4],y=f[5],F=f[6],D=f[7],C=m.high,k=m.low,E=x.high,B=x.low,S=g.high,A=g.low,L=b.high,I=b.low,N=v.high,q=v.low,U=y.high,Z=y.low,O=F.high,z=F.low,R=D.high,M=D.low,ne=C,oe=k,Se=E,de=B,dt=S,Ut=A,ji=L,Lt=I,ve=N,Ct=q,er=U,Ba=Z,cd=O,La=z,y0=R,Oa=M,Ei=0;Ei<80;Ei++){var ii,tr,dd=d[Ei];if(Ei<16)tr=dd.high=u[p+Ei*2]|0,ii=dd.low=u[p+Ei*2+1]|0;else{var hm=d[Ei-15],ss=hm.high,Ma=hm.low,v1=(ss>>>1|Ma<<31)^(ss>>>8|Ma<<24)^ss>>>7,um=(Ma>>>1|ss<<31)^(Ma>>>8|ss<<24)^(Ma>>>7|ss<<25),fm=d[Ei-2],as=fm.high,Na=fm.low,w1=(as>>>19|Na<<13)^(as<<3|Na>>>29)^as>>>6,pm=(Na>>>19|as<<13)^(Na<<3|as>>>29)^(Na>>>6|as<<26),gm=d[Ei-7],F1=gm.high,D1=gm.low,mm=d[Ei-16],P1=mm.high,xm=mm.low;ii=um+D1,tr=v1+F1+(ii>>>0<um>>>0?1:0),ii=ii+pm,tr=tr+w1+(ii>>>0<pm>>>0?1:0),ii=ii+xm,tr=tr+P1+(ii>>>0<xm>>>0?1:0),dd.high=tr,dd.low=ii}var k1=ve&er^~ve&cd,bm=Ct&Ba^~Ct&La,C1=ne&Se^ne&dt^Se&dt,S1=oe&de^oe&Ut^de&Ut,E1=(ne>>>28|oe<<4)^(ne<<30|oe>>>2)^(ne<<25|oe>>>7),ym=(oe>>>28|ne<<4)^(oe<<30|ne>>>2)^(oe<<25|ne>>>7),T1=(ve>>>14|Ct<<18)^(ve>>>18|Ct<<14)^(ve<<23|Ct>>>9),A1=(Ct>>>14|ve<<18)^(Ct>>>18|ve<<14)^(Ct<<23|ve>>>9),vm=l[Ei],I1=vm.high,wm=vm.low,qt=Oa+A1,ir=y0+T1+(qt>>>0<Oa>>>0?1:0),qt=qt+bm,ir=ir+k1+(qt>>>0<bm>>>0?1:0),qt=qt+wm,ir=ir+I1+(qt>>>0<wm>>>0?1:0),qt=qt+ii,ir=ir+tr+(qt>>>0<ii>>>0?1:0),Fm=ym+S1,B1=E1+C1+(Fm>>>0<ym>>>0?1:0);y0=cd,Oa=La,cd=er,La=Ba,er=ve,Ba=Ct,Ct=Lt+qt|0,ve=ji+ir+(Ct>>>0<Lt>>>0?1:0)|0,ji=dt,Lt=Ut,dt=Se,Ut=de,Se=ne,de=oe,oe=qt+Fm|0,ne=ir+B1+(oe>>>0<qt>>>0?1:0)|0}k=m.low=k+oe,m.high=C+ne+(k>>>0<oe>>>0?1:0),B=x.low=B+de,x.high=E+Se+(B>>>0<de>>>0?1:0),A=g.low=A+Ut,g.high=S+dt+(A>>>0<Ut>>>0?1:0),I=b.low=I+Lt,b.high=L+ji+(I>>>0<Lt>>>0?1:0),q=v.low=q+Ct,v.high=N+ve+(q>>>0<Ct>>>0?1:0),Z=y.low=Z+Ba,y.high=U+er+(Z>>>0<Ba>>>0?1:0),z=F.low=z+La,F.high=O+cd+(z>>>0<La>>>0?1:0),M=D.low=M+Oa,D.high=R+y0+(M>>>0<Oa>>>0?1:0)},_doFinalize:function(){var u=this._data,p=u.words,f=this._nDataBytes*8,m=u.sigBytes*8;p[m>>>5]|=128<<24-m%32,p[(m+128>>>10<<5)+30]=Math.floor(f/4294967296),p[(m+128>>>10<<5)+31]=f,u.sigBytes=p.length*4,this._process();var x=this._hash.toX32();return x},clone:function(){var u=i.clone.call(this);return u._hash=this._hash.clone(),u},blockSize:1024/32});e.SHA512=i._createHelper(h),e.HmacSHA512=i._createHmacHelper(h)}(),n.SHA512})});var Iy=J((lh,Ay)=>{(function(n,e,t){typeof lh=="object"?Ay.exports=lh=e(me(),lc(),np()):typeof define=="function"&&define.amd?define(["./core","./x64-core","./sha512"],e):e(n.CryptoJS)})(lh,function(n){return function(){var e=n,t=e.x64,i=t.Word,r=t.WordArray,o=e.algo,s=o.SHA512,a=o.SHA384=s.extend({_doReset:function(){this._hash=new r.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var c=s._doFinalize.call(this);return c.sigBytes-=16,c}});e.SHA384=s._createHelper(a),e.HmacSHA384=s._createHmacHelper(a)}(),n.SHA384})});var Ly=J((ch,By)=>{(function(n,e,t){typeof ch=="object"?By.exports=ch=e(me(),lc()):typeof define=="function"&&define.amd?define(["./core","./x64-core"],e):e(n.CryptoJS)})(ch,function(n){return function(e){var t=n,i=t.lib,r=i.WordArray,o=i.Hasher,s=t.x64,a=s.Word,c=t.algo,l=[],d=[],h=[];(function(){for(var f=1,m=0,x=0;x<24;x++){l[f+5*m]=(x+1)*(x+2)/2%64;var g=m%5,b=(2*f+3*m)%5;f=g,m=b}for(var f=0;f<5;f++)for(var m=0;m<5;m++)d[f+5*m]=m+(2*f+3*m)%5*5;for(var v=1,y=0;y<24;y++){for(var F=0,D=0,C=0;C<7;C++){if(v&1){var k=(1<<C)-1;k<32?D^=1<<k:F^=1<<k-32}v&128?v=v<<1^113:v<<=1}h[y]=a.create(F,D)}})();var u=[];(function(){for(var f=0;f<25;f++)u[f]=a.create()})();var p=c.SHA3=o.extend({cfg:o.cfg.extend({outputLength:512}),_doReset:function(){for(var f=this._state=[],m=0;m<25;m++)f[m]=new a.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(f,m){for(var x=this._state,g=this.blockSize/2,b=0;b<g;b++){var v=f[m+2*b],y=f[m+2*b+1];v=(v<<8|v>>>24)&16711935|(v<<24|v>>>8)&4278255360,y=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360;var F=x[b];F.high^=y,F.low^=v}for(var D=0;D<24;D++){for(var C=0;C<5;C++){for(var k=0,E=0,B=0;B<5;B++){var F=x[C+5*B];k^=F.high,E^=F.low}var S=u[C];S.high=k,S.low=E}for(var C=0;C<5;C++)for(var A=u[(C+4)%5],L=u[(C+1)%5],I=L.high,N=L.low,k=A.high^(I<<1|N>>>31),E=A.low^(N<<1|I>>>31),B=0;B<5;B++){var F=x[C+5*B];F.high^=k,F.low^=E}for(var q=1;q<25;q++){var k,E,F=x[q],U=F.high,Z=F.low,O=l[q];O<32?(k=U<<O|Z>>>32-O,E=Z<<O|U>>>32-O):(k=Z<<O-32|U>>>64-O,E=U<<O-32|Z>>>64-O);var z=u[d[q]];z.high=k,z.low=E}var R=u[0],M=x[0];R.high=M.high,R.low=M.low;for(var C=0;C<5;C++)for(var B=0;B<5;B++){var q=C+5*B,F=x[q],ne=u[q],oe=u[(C+1)%5+5*B],Se=u[(C+2)%5+5*B];F.high=ne.high^~oe.high&Se.high,F.low=ne.low^~oe.low&Se.low}var F=x[0],de=h[D];F.high^=de.high,F.low^=de.low}},_doFinalize:function(){var f=this._data,m=f.words,x=this._nDataBytes*8,g=f.sigBytes*8,b=this.blockSize*32;m[g>>>5]|=1<<24-g%32,m[(e.ceil((g+1)/b)*b>>>5)-1]|=128,f.sigBytes=m.length*4,this._process();for(var v=this._state,y=this.cfg.outputLength/8,F=y/8,D=[],C=0;C<F;C++){var k=v[C],E=k.high,B=k.low;E=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,B=(B<<8|B>>>24)&16711935|(B<<24|B>>>8)&4278255360,D.push(B),D.push(E)}return new r.init(D,y)},clone:function(){for(var f=o.clone.call(this),m=f._state=this._state.slice(0),x=0;x<25;x++)m[x]=m[x].clone();return f}});t.SHA3=o._createHelper(p),t.HmacSHA3=o._createHmacHelper(p)}(Math),n.SHA3})});var My=J((dh,Oy)=>{(function(n,e){typeof dh=="object"?Oy.exports=dh=e(me()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(dh,function(n){return function(e){var t=n,i=t.lib,r=i.WordArray,o=i.Hasher,s=t.algo,a=r.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),c=r.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),l=r.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),d=r.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),h=r.create([0,1518500249,1859775393,2400959708,2840853838]),u=r.create([1352829926,1548603684,1836072691,2053994217,0]),p=s.RIPEMD160=o.extend({_doReset:function(){this._hash=r.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(y,F){for(var D=0;D<16;D++){var C=F+D,k=y[C];y[C]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360}var E=this._hash.words,B=h.words,S=u.words,A=a.words,L=c.words,I=l.words,N=d.words,q,U,Z,O,z,R,M,ne,oe,Se;R=q=E[0],M=U=E[1],ne=Z=E[2],oe=O=E[3],Se=z=E[4];for(var de,D=0;D<80;D+=1)de=q+y[F+A[D]]|0,D<16?de+=f(U,Z,O)+B[0]:D<32?de+=m(U,Z,O)+B[1]:D<48?de+=x(U,Z,O)+B[2]:D<64?de+=g(U,Z,O)+B[3]:de+=b(U,Z,O)+B[4],de=de|0,de=v(de,I[D]),de=de+z|0,q=z,z=O,O=v(Z,10),Z=U,U=de,de=R+y[F+L[D]]|0,D<16?de+=b(M,ne,oe)+S[0]:D<32?de+=g(M,ne,oe)+S[1]:D<48?de+=x(M,ne,oe)+S[2]:D<64?de+=m(M,ne,oe)+S[3]:de+=f(M,ne,oe)+S[4],de=de|0,de=v(de,N[D]),de=de+Se|0,R=Se,Se=oe,oe=v(ne,10),ne=M,M=de;de=E[1]+Z+oe|0,E[1]=E[2]+O+Se|0,E[2]=E[3]+z+R|0,E[3]=E[4]+q+M|0,E[4]=E[0]+U+ne|0,E[0]=de},_doFinalize:function(){var y=this._data,F=y.words,D=this._nDataBytes*8,C=y.sigBytes*8;F[C>>>5]|=128<<24-C%32,F[(C+64>>>9<<4)+14]=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360,y.sigBytes=(F.length+1)*4,this._process();for(var k=this._hash,E=k.words,B=0;B<5;B++){var S=E[B];E[B]=(S<<8|S>>>24)&16711935|(S<<24|S>>>8)&4278255360}return k},clone:function(){var y=o.clone.call(this);return y._hash=this._hash.clone(),y}});function f(y,F,D){return y^F^D}function m(y,F,D){return y&F|~y&D}function x(y,F,D){return(y|~F)^D}function g(y,F,D){return y&D|F&~D}function b(y,F,D){return y^(F|~D)}function v(y,F){return y<<F|y>>>32-F}t.RIPEMD160=o._createHelper(p),t.HmacRIPEMD160=o._createHmacHelper(p)}(Math),n.RIPEMD160})});var uh=J((hh,Ny)=>{(function(n,e){typeof hh=="object"?Ny.exports=hh=e(me()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(hh,function(n){(function(){var e=n,t=e.lib,i=t.Base,r=e.enc,o=r.Utf8,s=e.algo,a=s.HMAC=i.extend({init:function(c,l){c=this._hasher=new c.init,typeof l=="string"&&(l=o.parse(l));var d=c.blockSize,h=d*4;l.sigBytes>h&&(l=c.finalize(l)),l.clamp();for(var u=this._oKey=l.clone(),p=this._iKey=l.clone(),f=u.words,m=p.words,x=0;x<d;x++)f[x]^=1549556828,m[x]^=909522486;u.sigBytes=p.sigBytes=h,this.reset()},reset:function(){var c=this._hasher;c.reset(),c.update(this._iKey)},update:function(c){return this._hasher.update(c),this},finalize:function(c){var l=this._hasher,d=l.finalize(c);l.reset();var h=l.finalize(this._oKey.clone().concat(d));return h}})})()})});var Vy=J((fh,Ry)=>{(function(n,e,t){typeof fh=="object"?Ry.exports=fh=e(me(),oh(),uh()):typeof define=="function"&&define.amd?define(["./core","./sha256","./hmac"],e):e(n.CryptoJS)})(fh,function(n){return function(){var e=n,t=e.lib,i=t.Base,r=t.WordArray,o=e.algo,s=o.SHA256,a=o.HMAC,c=o.PBKDF2=i.extend({cfg:i.extend({keySize:128/32,hasher:s,iterations:25e4}),init:function(l){this.cfg=this.cfg.extend(l)},compute:function(l,d){for(var h=this.cfg,u=a.create(h.hasher,l),p=r.create(),f=r.create([1]),m=p.words,x=f.words,g=h.keySize,b=h.iterations;m.length<g;){var v=u.update(d).finalize(f);u.reset();for(var y=v.words,F=y.length,D=v,C=1;C<b;C++){D=u.finalize(D),u.reset();for(var k=D.words,E=0;E<F;E++)y[E]^=k[E]}p.concat(v),x[0]++}return p.sigBytes=g*4,p}});e.PBKDF2=function(l,d,h){return c.create(h).compute(l,d)}}(),n.PBKDF2})});var Mn=J((ph,Hy)=>{(function(n,e,t){typeof ph=="object"?Hy.exports=ph=e(me(),ip(),uh()):typeof define=="function"&&define.amd?define(["./core","./sha1","./hmac"],e):e(n.CryptoJS)})(ph,function(n){return function(){var e=n,t=e.lib,i=t.Base,r=t.WordArray,o=e.algo,s=o.MD5,a=o.EvpKDF=i.extend({cfg:i.extend({keySize:128/32,hasher:s,iterations:1}),init:function(c){this.cfg=this.cfg.extend(c)},compute:function(c,l){for(var d,h=this.cfg,u=h.hasher.create(),p=r.create(),f=p.words,m=h.keySize,x=h.iterations;f.length<m;){d&&u.update(d),d=u.update(c).finalize(l),u.reset();for(var g=1;g<x;g++)d=u.finalize(d),u.reset();p.concat(d)}return p.sigBytes=m*4,p}});e.EvpKDF=function(c,l,d){return a.create(d).compute(c,l)}}(),n.EvpKDF})});var rt=J((gh,zy)=>{(function(n,e,t){typeof gh=="object"?zy.exports=gh=e(me(),Mn()):typeof define=="function"&&define.amd?define(["./core","./evpkdf"],e):e(n.CryptoJS)})(gh,function(n){n.lib.Cipher||function(e){var t=n,i=t.lib,r=i.Base,o=i.WordArray,s=i.BufferedBlockAlgorithm,a=t.enc,c=a.Utf8,l=a.Base64,d=t.algo,h=d.EvpKDF,u=i.Cipher=s.extend({cfg:r.extend(),createEncryptor:function(S,A){return this.create(this._ENC_XFORM_MODE,S,A)},createDecryptor:function(S,A){return this.create(this._DEC_XFORM_MODE,S,A)},init:function(S,A,L){this.cfg=this.cfg.extend(L),this._xformMode=S,this._key=A,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(S){return this._append(S),this._process()},finalize:function(S){S&&this._append(S);var A=this._doFinalize();return A},keySize:128/32,ivSize:128/32,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function S(A){return typeof A=="string"?B:C}return function(A){return{encrypt:function(L,I,N){return S(I).encrypt(A,L,I,N)},decrypt:function(L,I,N){return S(I).decrypt(A,L,I,N)}}}}()}),p=i.StreamCipher=u.extend({_doFinalize:function(){var S=this._process(!0);return S},blockSize:1}),f=t.mode={},m=i.BlockCipherMode=r.extend({createEncryptor:function(S,A){return this.Encryptor.create(S,A)},createDecryptor:function(S,A){return this.Decryptor.create(S,A)},init:function(S,A){this._cipher=S,this._iv=A}}),x=f.CBC=function(){var S=m.extend();S.Encryptor=S.extend({processBlock:function(L,I){var N=this._cipher,q=N.blockSize;A.call(this,L,I,q),N.encryptBlock(L,I),this._prevBlock=L.slice(I,I+q)}}),S.Decryptor=S.extend({processBlock:function(L,I){var N=this._cipher,q=N.blockSize,U=L.slice(I,I+q);N.decryptBlock(L,I),A.call(this,L,I,q),this._prevBlock=U}});function A(L,I,N){var q,U=this._iv;U?(q=U,this._iv=e):q=this._prevBlock;for(var Z=0;Z<N;Z++)L[I+Z]^=q[Z]}return S}(),g=t.pad={},b=g.Pkcs7={pad:function(S,A){for(var L=A*4,I=L-S.sigBytes%L,N=I<<24|I<<16|I<<8|I,q=[],U=0;U<I;U+=4)q.push(N);var Z=o.create(q,I);S.concat(Z)},unpad:function(S){var A=S.words[S.sigBytes-1>>>2]&255;S.sigBytes-=A}},v=i.BlockCipher=u.extend({cfg:u.cfg.extend({mode:x,padding:b}),reset:function(){var S;u.reset.call(this);var A=this.cfg,L=A.iv,I=A.mode;this._xformMode==this._ENC_XFORM_MODE?S=I.createEncryptor:(S=I.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==S?this._mode.init(this,L&&L.words):(this._mode=S.call(I,this,L&&L.words),this._mode.__creator=S)},_doProcessBlock:function(S,A){this._mode.processBlock(S,A)},_doFinalize:function(){var S,A=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(A.pad(this._data,this.blockSize),S=this._process(!0)):(S=this._process(!0),A.unpad(S)),S},blockSize:128/32}),y=i.CipherParams=r.extend({init:function(S){this.mixIn(S)},toString:function(S){return(S||this.formatter).stringify(this)}}),F=t.format={},D=F.OpenSSL={stringify:function(S){var A,L=S.ciphertext,I=S.salt;return I?A=o.create([1398893684,1701076831]).concat(I).concat(L):A=L,A.toString(l)},parse:function(S){var A,L=l.parse(S),I=L.words;return I[0]==1398893684&&I[1]==1701076831&&(A=o.create(I.slice(2,4)),I.splice(0,4),L.sigBytes-=16),y.create({ciphertext:L,salt:A})}},C=i.SerializableCipher=r.extend({cfg:r.extend({format:D}),encrypt:function(S,A,L,I){I=this.cfg.extend(I);var N=S.createEncryptor(L,I),q=N.finalize(A),U=N.cfg;return y.create({ciphertext:q,key:L,iv:U.iv,algorithm:S,mode:U.mode,padding:U.padding,blockSize:S.blockSize,formatter:I.format})},decrypt:function(S,A,L,I){I=this.cfg.extend(I),A=this._parse(A,I.format);var N=S.createDecryptor(L,I).finalize(A.ciphertext);return N},_parse:function(S,A){return typeof S=="string"?A.parse(S,this):S}}),k=t.kdf={},E=k.OpenSSL={execute:function(S,A,L,I,N){if(I||(I=o.random(64/8)),N)var q=h.create({keySize:A+L,hasher:N}).compute(S,I);else var q=h.create({keySize:A+L}).compute(S,I);var U=o.create(q.words.slice(A),L*4);return q.sigBytes=A*4,y.create({key:q,iv:U,salt:I})}},B=i.PasswordBasedCipher=C.extend({cfg:C.cfg.extend({kdf:E}),encrypt:function(S,A,L,I){I=this.cfg.extend(I);var N=I.kdf.execute(L,S.keySize,S.ivSize,I.salt,I.hasher);I.iv=N.iv;var q=C.encrypt.call(this,S,A,N.key,I);return q.mixIn(N),q},decrypt:function(S,A,L,I){I=this.cfg.extend(I),A=this._parse(A,I.format);var N=I.kdf.execute(L,S.keySize,S.ivSize,A.salt,I.hasher);I.iv=N.iv;var q=C.decrypt.call(this,S,A,N.key,I);return q}})}()})});var qy=J((mh,Uy)=>{(function(n,e,t){typeof mh=="object"?Uy.exports=mh=e(me(),rt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(mh,function(n){return n.mode.CFB=function(){var e=n.lib.BlockCipherMode.extend();e.Encryptor=e.extend({processBlock:function(i,r){var o=this._cipher,s=o.blockSize;t.call(this,i,r,s,o),this._prevBlock=i.slice(r,r+s)}}),e.Decryptor=e.extend({processBlock:function(i,r){var o=this._cipher,s=o.blockSize,a=i.slice(r,r+s);t.call(this,i,r,s,o),this._prevBlock=a}});function t(i,r,o,s){var a,c=this._iv;c?(a=c.slice(0),this._iv=void 0):a=this._prevBlock,s.encryptBlock(a,0);for(var l=0;l<o;l++)i[r+l]^=a[l]}return e}(),n.mode.CFB})});var jy=J((xh,Wy)=>{(function(n,e,t){typeof xh=="object"?Wy.exports=xh=e(me(),rt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(xh,function(n){return n.mode.CTR=function(){var e=n.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(i,r){var o=this._cipher,s=o.blockSize,a=this._iv,c=this._counter;a&&(c=this._counter=a.slice(0),this._iv=void 0);var l=c.slice(0);o.encryptBlock(l,0),c[s-1]=c[s-1]+1|0;for(var d=0;d<s;d++)i[r+d]^=l[d]}});return e.Decryptor=t,e}(),n.mode.CTR})});var Gy=J((bh,Ky)=>{(function(n,e,t){typeof bh=="object"?Ky.exports=bh=e(me(),rt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(bh,function(n){return n.mode.CTRGladman=function(){var e=n.lib.BlockCipherMode.extend();function t(o){if((o>>24&255)===255){var s=o>>16&255,a=o>>8&255,c=o&255;s===255?(s=0,a===255?(a=0,c===255?c=0:++c):++a):++s,o=0,o+=s<<16,o+=a<<8,o+=c}else o+=1<<24;return o}function i(o){return(o[0]=t(o[0]))===0&&(o[1]=t(o[1])),o}var r=e.Encryptor=e.extend({processBlock:function(o,s){var a=this._cipher,c=a.blockSize,l=this._iv,d=this._counter;l&&(d=this._counter=l.slice(0),this._iv=void 0),i(d);var h=d.slice(0);a.encryptBlock(h,0);for(var u=0;u<c;u++)o[s+u]^=h[u]}});return e.Decryptor=r,e}(),n.mode.CTRGladman})});var Zy=J((yh,Xy)=>{(function(n,e,t){typeof yh=="object"?Xy.exports=yh=e(me(),rt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(yh,function(n){return n.mode.OFB=function(){var e=n.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(i,r){var o=this._cipher,s=o.blockSize,a=this._iv,c=this._keystream;a&&(c=this._keystream=a.slice(0),this._iv=void 0),o.encryptBlock(c,0);for(var l=0;l<s;l++)i[r+l]^=c[l]}});return e.Decryptor=t,e}(),n.mode.OFB})});var Jy=J((vh,Yy)=>{(function(n,e,t){typeof vh=="object"?Yy.exports=vh=e(me(),rt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(vh,function(n){return n.mode.ECB=function(){var e=n.lib.BlockCipherMode.extend();return e.Encryptor=e.extend({processBlock:function(t,i){this._cipher.encryptBlock(t,i)}}),e.Decryptor=e.extend({processBlock:function(t,i){this._cipher.decryptBlock(t,i)}}),e}(),n.mode.ECB})});var Qy=J((wh,_y)=>{(function(n,e,t){typeof wh=="object"?_y.exports=wh=e(me(),rt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(wh,function(n){return n.pad.AnsiX923={pad:function(e,t){var i=e.sigBytes,r=t*4,o=r-i%r,s=i+o-1;e.clamp(),e.words[s>>>2]|=o<<24-s%4*8,e.sigBytes+=o},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},n.pad.Ansix923})});var ev=J((Fh,$y)=>{(function(n,e,t){typeof Fh=="object"?$y.exports=Fh=e(me(),rt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Fh,function(n){return n.pad.Iso10126={pad:function(e,t){var i=t*4,r=i-e.sigBytes%i;e.concat(n.lib.WordArray.random(r-1)).concat(n.lib.WordArray.create([r<<24],1))},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},n.pad.Iso10126})});var iv=J((Dh,tv)=>{(function(n,e,t){typeof Dh=="object"?tv.exports=Dh=e(me(),rt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Dh,function(n){return n.pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971})});var rv=J((Ph,nv)=>{(function(n,e,t){typeof Ph=="object"?nv.exports=Ph=e(me(),rt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Ph,function(n){return n.pad.ZeroPadding={pad:function(e,t){var i=t*4;e.clamp(),e.sigBytes+=i-(e.sigBytes%i||i)},unpad:function(e){for(var t=e.words,i=e.sigBytes-1,i=e.sigBytes-1;i>=0;i--)if(t[i>>>2]>>>24-i%4*8&255){e.sigBytes=i+1;break}}},n.pad.ZeroPadding})});var sv=J((kh,ov)=>{(function(n,e,t){typeof kh=="object"?ov.exports=kh=e(me(),rt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(kh,function(n){return n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding})});var lv=J((Ch,av)=>{(function(n,e,t){typeof Ch=="object"?av.exports=Ch=e(me(),rt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Ch,function(n){return function(e){var t=n,i=t.lib,r=i.CipherParams,o=t.enc,s=o.Hex,a=t.format,c=a.Hex={stringify:function(l){return l.ciphertext.toString(s)},parse:function(l){var d=s.parse(l);return r.create({ciphertext:d})}}}(),n.format.Hex})});var dv=J((Sh,cv)=>{(function(n,e,t){typeof Sh=="object"?cv.exports=Sh=e(me(),Cr(),Sr(),Mn(),rt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(Sh,function(n){return function(){var e=n,t=e.lib,i=t.BlockCipher,r=e.algo,o=[],s=[],a=[],c=[],l=[],d=[],h=[],u=[],p=[],f=[];(function(){for(var g=[],b=0;b<256;b++)b<128?g[b]=b<<1:g[b]=b<<1^283;for(var v=0,y=0,b=0;b<256;b++){var F=y^y<<1^y<<2^y<<3^y<<4;F=F>>>8^F&255^99,o[v]=F,s[F]=v;var D=g[v],C=g[D],k=g[C],E=g[F]*257^F*16843008;a[v]=E<<24|E>>>8,c[v]=E<<16|E>>>16,l[v]=E<<8|E>>>24,d[v]=E;var E=k*16843009^C*65537^D*257^v*16843008;h[F]=E<<24|E>>>8,u[F]=E<<16|E>>>16,p[F]=E<<8|E>>>24,f[F]=E,v?(v=D^g[g[g[k^D]]],y^=g[g[y]]):v=y=1}})();var m=[0,1,2,4,8,16,32,64,128,27,54],x=r.AES=i.extend({_doReset:function(){var g;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var b=this._keyPriorReset=this._key,v=b.words,y=b.sigBytes/4,F=this._nRounds=y+6,D=(F+1)*4,C=this._keySchedule=[],k=0;k<D;k++)k<y?C[k]=v[k]:(g=C[k-1],k%y?y>6&&k%y==4&&(g=o[g>>>24]<<24|o[g>>>16&255]<<16|o[g>>>8&255]<<8|o[g&255]):(g=g<<8|g>>>24,g=o[g>>>24]<<24|o[g>>>16&255]<<16|o[g>>>8&255]<<8|o[g&255],g^=m[k/y|0]<<24),C[k]=C[k-y]^g);for(var E=this._invKeySchedule=[],B=0;B<D;B++){var k=D-B;if(B%4)var g=C[k];else var g=C[k-4];B<4||k<=4?E[B]=g:E[B]=h[o[g>>>24]]^u[o[g>>>16&255]]^p[o[g>>>8&255]]^f[o[g&255]]}}},encryptBlock:function(g,b){this._doCryptBlock(g,b,this._keySchedule,a,c,l,d,o)},decryptBlock:function(g,b){var v=g[b+1];g[b+1]=g[b+3],g[b+3]=v,this._doCryptBlock(g,b,this._invKeySchedule,h,u,p,f,s);var v=g[b+1];g[b+1]=g[b+3],g[b+3]=v},_doCryptBlock:function(g,b,v,y,F,D,C,k){for(var E=this._nRounds,B=g[b]^v[0],S=g[b+1]^v[1],A=g[b+2]^v[2],L=g[b+3]^v[3],I=4,N=1;N<E;N++){var q=y[B>>>24]^F[S>>>16&255]^D[A>>>8&255]^C[L&255]^v[I++],U=y[S>>>24]^F[A>>>16&255]^D[L>>>8&255]^C[B&255]^v[I++],Z=y[A>>>24]^F[L>>>16&255]^D[B>>>8&255]^C[S&255]^v[I++],O=y[L>>>24]^F[B>>>16&255]^D[S>>>8&255]^C[A&255]^v[I++];B=q,S=U,A=Z,L=O}var q=(k[B>>>24]<<24|k[S>>>16&255]<<16|k[A>>>8&255]<<8|k[L&255])^v[I++],U=(k[S>>>24]<<24|k[A>>>16&255]<<16|k[L>>>8&255]<<8|k[B&255])^v[I++],Z=(k[A>>>24]<<24|k[L>>>16&255]<<16|k[B>>>8&255]<<8|k[S&255])^v[I++],O=(k[L>>>24]<<24|k[B>>>16&255]<<16|k[S>>>8&255]<<8|k[A&255])^v[I++];g[b]=q,g[b+1]=U,g[b+2]=Z,g[b+3]=O},keySize:256/32});e.AES=i._createHelper(x)}(),n.AES})});var uv=J((Eh,hv)=>{(function(n,e,t){typeof Eh=="object"?hv.exports=Eh=e(me(),Cr(),Sr(),Mn(),rt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(Eh,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,r=t.BlockCipher,o=e.algo,s=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],a=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],l=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],d=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],h=o.DES=r.extend({_doReset:function(){for(var m=this._key,x=m.words,g=[],b=0;b<56;b++){var v=s[b]-1;g[b]=x[v>>>5]>>>31-v%32&1}for(var y=this._subKeys=[],F=0;F<16;F++){for(var D=y[F]=[],C=c[F],b=0;b<24;b++)D[b/6|0]|=g[(a[b]-1+C)%28]<<31-b%6,D[4+(b/6|0)]|=g[28+(a[b+24]-1+C)%28]<<31-b%6;D[0]=D[0]<<1|D[0]>>>31;for(var b=1;b<7;b++)D[b]=D[b]>>>(b-1)*4+3;D[7]=D[7]<<5|D[7]>>>27}for(var k=this._invSubKeys=[],b=0;b<16;b++)k[b]=y[15-b]},encryptBlock:function(m,x){this._doCryptBlock(m,x,this._subKeys)},decryptBlock:function(m,x){this._doCryptBlock(m,x,this._invSubKeys)},_doCryptBlock:function(m,x,g){this._lBlock=m[x],this._rBlock=m[x+1],u.call(this,4,252645135),u.call(this,16,65535),p.call(this,2,858993459),p.call(this,8,16711935),u.call(this,1,1431655765);for(var b=0;b<16;b++){for(var v=g[b],y=this._lBlock,F=this._rBlock,D=0,C=0;C<8;C++)D|=l[C][((F^v[C])&d[C])>>>0];this._lBlock=F,this._rBlock=y^D}var k=this._lBlock;this._lBlock=this._rBlock,this._rBlock=k,u.call(this,1,1431655765),p.call(this,8,16711935),p.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),m[x]=this._lBlock,m[x+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function u(m,x){var g=(this._lBlock>>>m^this._rBlock)&x;this._rBlock^=g,this._lBlock^=g<<m}function p(m,x){var g=(this._rBlock>>>m^this._lBlock)&x;this._lBlock^=g,this._rBlock^=g<<m}e.DES=r._createHelper(h);var f=o.TripleDES=r.extend({_doReset:function(){var m=this._key,x=m.words;if(x.length!==2&&x.length!==4&&x.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var g=x.slice(0,2),b=x.length<4?x.slice(0,2):x.slice(2,4),v=x.length<6?x.slice(0,2):x.slice(4,6);this._des1=h.createEncryptor(i.create(g)),this._des2=h.createEncryptor(i.create(b)),this._des3=h.createEncryptor(i.create(v))},encryptBlock:function(m,x){this._des1.encryptBlock(m,x),this._des2.decryptBlock(m,x),this._des3.encryptBlock(m,x)},decryptBlock:function(m,x){this._des3.decryptBlock(m,x),this._des2.encryptBlock(m,x),this._des1.decryptBlock(m,x)},keySize:192/32,ivSize:64/32,blockSize:64/32});e.TripleDES=r._createHelper(f)}(),n.TripleDES})});var pv=J((Th,fv)=>{(function(n,e,t){typeof Th=="object"?fv.exports=Th=e(me(),Cr(),Sr(),Mn(),rt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(Th,function(n){return function(){var e=n,t=e.lib,i=t.StreamCipher,r=e.algo,o=r.RC4=i.extend({_doReset:function(){for(var c=this._key,l=c.words,d=c.sigBytes,h=this._S=[],u=0;u<256;u++)h[u]=u;for(var u=0,p=0;u<256;u++){var f=u%d,m=l[f>>>2]>>>24-f%4*8&255;p=(p+h[u]+m)%256;var x=h[u];h[u]=h[p],h[p]=x}this._i=this._j=0},_doProcessBlock:function(c,l){c[l]^=s.call(this)},keySize:256/32,ivSize:0});function s(){for(var c=this._S,l=this._i,d=this._j,h=0,u=0;u<4;u++){l=(l+1)%256,d=(d+c[l])%256;var p=c[l];c[l]=c[d],c[d]=p,h|=c[(c[l]+c[d])%256]<<24-u*8}return this._i=l,this._j=d,h}e.RC4=i._createHelper(o);var a=r.RC4Drop=o.extend({cfg:o.cfg.extend({drop:192}),_doReset:function(){o._doReset.call(this);for(var c=this.cfg.drop;c>0;c--)s.call(this)}});e.RC4Drop=i._createHelper(a)}(),n.RC4})});var mv=J((Ah,gv)=>{(function(n,e,t){typeof Ah=="object"?gv.exports=Ah=e(me(),Cr(),Sr(),Mn(),rt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(Ah,function(n){return function(){var e=n,t=e.lib,i=t.StreamCipher,r=e.algo,o=[],s=[],a=[],c=r.Rabbit=i.extend({_doReset:function(){for(var d=this._key.words,h=this.cfg.iv,u=0;u<4;u++)d[u]=(d[u]<<8|d[u]>>>24)&16711935|(d[u]<<24|d[u]>>>8)&4278255360;var p=this._X=[d[0],d[3]<<16|d[2]>>>16,d[1],d[0]<<16|d[3]>>>16,d[2],d[1]<<16|d[0]>>>16,d[3],d[2]<<16|d[1]>>>16],f=this._C=[d[2]<<16|d[2]>>>16,d[0]&4294901760|d[1]&65535,d[3]<<16|d[3]>>>16,d[1]&4294901760|d[2]&65535,d[0]<<16|d[0]>>>16,d[2]&4294901760|d[3]&65535,d[1]<<16|d[1]>>>16,d[3]&4294901760|d[0]&65535];this._b=0;for(var u=0;u<4;u++)l.call(this);for(var u=0;u<8;u++)f[u]^=p[u+4&7];if(h){var m=h.words,x=m[0],g=m[1],b=(x<<8|x>>>24)&16711935|(x<<24|x>>>8)&4278255360,v=(g<<8|g>>>24)&16711935|(g<<24|g>>>8)&4278255360,y=b>>>16|v&4294901760,F=v<<16|b&65535;f[0]^=b,f[1]^=y,f[2]^=v,f[3]^=F,f[4]^=b,f[5]^=y,f[6]^=v,f[7]^=F;for(var u=0;u<4;u++)l.call(this)}},_doProcessBlock:function(d,h){var u=this._X;l.call(this),o[0]=u[0]^u[5]>>>16^u[3]<<16,o[1]=u[2]^u[7]>>>16^u[5]<<16,o[2]=u[4]^u[1]>>>16^u[7]<<16,o[3]=u[6]^u[3]>>>16^u[1]<<16;for(var p=0;p<4;p++)o[p]=(o[p]<<8|o[p]>>>24)&16711935|(o[p]<<24|o[p]>>>8)&4278255360,d[h+p]^=o[p]},blockSize:128/32,ivSize:64/32});function l(){for(var d=this._X,h=this._C,u=0;u<8;u++)s[u]=h[u];h[0]=h[0]+1295307597+this._b|0,h[1]=h[1]+3545052371+(h[0]>>>0<s[0]>>>0?1:0)|0,h[2]=h[2]+886263092+(h[1]>>>0<s[1]>>>0?1:0)|0,h[3]=h[3]+1295307597+(h[2]>>>0<s[2]>>>0?1:0)|0,h[4]=h[4]+3545052371+(h[3]>>>0<s[3]>>>0?1:0)|0,h[5]=h[5]+886263092+(h[4]>>>0<s[4]>>>0?1:0)|0,h[6]=h[6]+1295307597+(h[5]>>>0<s[5]>>>0?1:0)|0,h[7]=h[7]+3545052371+(h[6]>>>0<s[6]>>>0?1:0)|0,this._b=h[7]>>>0<s[7]>>>0?1:0;for(var u=0;u<8;u++){var p=d[u]+h[u],f=p&65535,m=p>>>16,x=((f*f>>>17)+f*m>>>15)+m*m,g=((p&4294901760)*p|0)+((p&65535)*p|0);a[u]=x^g}d[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,d[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,d[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,d[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,d[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,d[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,d[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,d[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.Rabbit=i._createHelper(c)}(),n.Rabbit})});var bv=J((Ih,xv)=>{(function(n,e,t){typeof Ih=="object"?xv.exports=Ih=e(me(),Cr(),Sr(),Mn(),rt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(Ih,function(n){return function(){var e=n,t=e.lib,i=t.StreamCipher,r=e.algo,o=[],s=[],a=[],c=r.RabbitLegacy=i.extend({_doReset:function(){var d=this._key.words,h=this.cfg.iv,u=this._X=[d[0],d[3]<<16|d[2]>>>16,d[1],d[0]<<16|d[3]>>>16,d[2],d[1]<<16|d[0]>>>16,d[3],d[2]<<16|d[1]>>>16],p=this._C=[d[2]<<16|d[2]>>>16,d[0]&4294901760|d[1]&65535,d[3]<<16|d[3]>>>16,d[1]&4294901760|d[2]&65535,d[0]<<16|d[0]>>>16,d[2]&4294901760|d[3]&65535,d[1]<<16|d[1]>>>16,d[3]&4294901760|d[0]&65535];this._b=0;for(var f=0;f<4;f++)l.call(this);for(var f=0;f<8;f++)p[f]^=u[f+4&7];if(h){var m=h.words,x=m[0],g=m[1],b=(x<<8|x>>>24)&16711935|(x<<24|x>>>8)&4278255360,v=(g<<8|g>>>24)&16711935|(g<<24|g>>>8)&4278255360,y=b>>>16|v&4294901760,F=v<<16|b&65535;p[0]^=b,p[1]^=y,p[2]^=v,p[3]^=F,p[4]^=b,p[5]^=y,p[6]^=v,p[7]^=F;for(var f=0;f<4;f++)l.call(this)}},_doProcessBlock:function(d,h){var u=this._X;l.call(this),o[0]=u[0]^u[5]>>>16^u[3]<<16,o[1]=u[2]^u[7]>>>16^u[5]<<16,o[2]=u[4]^u[1]>>>16^u[7]<<16,o[3]=u[6]^u[3]>>>16^u[1]<<16;for(var p=0;p<4;p++)o[p]=(o[p]<<8|o[p]>>>24)&16711935|(o[p]<<24|o[p]>>>8)&4278255360,d[h+p]^=o[p]},blockSize:128/32,ivSize:64/32});function l(){for(var d=this._X,h=this._C,u=0;u<8;u++)s[u]=h[u];h[0]=h[0]+1295307597+this._b|0,h[1]=h[1]+3545052371+(h[0]>>>0<s[0]>>>0?1:0)|0,h[2]=h[2]+886263092+(h[1]>>>0<s[1]>>>0?1:0)|0,h[3]=h[3]+1295307597+(h[2]>>>0<s[2]>>>0?1:0)|0,h[4]=h[4]+3545052371+(h[3]>>>0<s[3]>>>0?1:0)|0,h[5]=h[5]+886263092+(h[4]>>>0<s[4]>>>0?1:0)|0,h[6]=h[6]+1295307597+(h[5]>>>0<s[5]>>>0?1:0)|0,h[7]=h[7]+3545052371+(h[6]>>>0<s[6]>>>0?1:0)|0,this._b=h[7]>>>0<s[7]>>>0?1:0;for(var u=0;u<8;u++){var p=d[u]+h[u],f=p&65535,m=p>>>16,x=((f*f>>>17)+f*m>>>15)+m*m,g=((p&4294901760)*p|0)+((p&65535)*p|0);a[u]=x^g}d[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,d[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,d[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,d[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,d[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,d[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,d[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,d[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.RabbitLegacy=i._createHelper(c)}(),n.RabbitLegacy})});var vv=J((Bh,yv)=>{(function(n,e,t){typeof Bh=="object"?yv.exports=Bh=e(me(),Cr(),Sr(),Mn(),rt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(Bh,function(n){return function(){var e=n,t=e.lib,i=t.BlockCipher,r=e.algo;let o=16,s=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],a=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var c={pbox:[],sbox:[]};function l(f,m){let x=m>>24&255,g=m>>16&255,b=m>>8&255,v=m&255,y=f.sbox[0][x]+f.sbox[1][g];return y=y^f.sbox[2][b],y=y+f.sbox[3][v],y}function d(f,m,x){let g=m,b=x,v;for(let y=0;y<o;++y)g=g^f.pbox[y],b=l(f,g)^b,v=g,g=b,b=v;return v=g,g=b,b=v,b=b^f.pbox[o],g=g^f.pbox[o+1],{left:g,right:b}}function h(f,m,x){let g=m,b=x,v;for(let y=o+1;y>1;--y)g=g^f.pbox[y],b=l(f,g)^b,v=g,g=b,b=v;return v=g,g=b,b=v,b=b^f.pbox[1],g=g^f.pbox[0],{left:g,right:b}}function u(f,m,x){for(let F=0;F<4;F++){f.sbox[F]=[];for(let D=0;D<256;D++)f.sbox[F][D]=a[F][D]}let g=0;for(let F=0;F<o+2;F++)f.pbox[F]=s[F]^m[g],g++,g>=x&&(g=0);let b=0,v=0,y=0;for(let F=0;F<o+2;F+=2)y=d(f,b,v),b=y.left,v=y.right,f.pbox[F]=b,f.pbox[F+1]=v;for(let F=0;F<4;F++)for(let D=0;D<256;D+=2)y=d(f,b,v),b=y.left,v=y.right,f.sbox[F][D]=b,f.sbox[F][D+1]=v;return!0}var p=r.Blowfish=i.extend({_doReset:function(){if(this._keyPriorReset!==this._key){var f=this._keyPriorReset=this._key,m=f.words,x=f.sigBytes/4;u(c,m,x)}},encryptBlock:function(f,m){var x=d(c,f[m],f[m+1]);f[m]=x.left,f[m+1]=x.right},decryptBlock:function(f,m){var x=h(c,f[m],f[m+1]);f[m]=x.left,f[m+1]=x.right},blockSize:64/32,keySize:128/32,ivSize:64/32});e.Blowfish=i._createHelper(p)}(),n.Blowfish})});var Fv=J((Lh,wv)=>{(function(n,e,t){typeof Lh=="object"?wv.exports=Lh=e(me(),lc(),by(),vy(),Cr(),Dy(),Sr(),ip(),oh(),Ey(),np(),Iy(),Ly(),My(),uh(),Vy(),Mn(),rt(),qy(),jy(),Gy(),Zy(),Jy(),Qy(),ev(),iv(),rv(),sv(),lv(),dv(),uv(),pv(),mv(),bv(),vv()):typeof define=="function"&&define.amd?define(["./core","./x64-core","./lib-typedarrays","./enc-utf16","./enc-base64","./enc-base64url","./md5","./sha1","./sha256","./sha224","./sha512","./sha384","./sha3","./ripemd160","./hmac","./pbkdf2","./evpkdf","./cipher-core","./mode-cfb","./mode-ctr","./mode-ctr-gladman","./mode-ofb","./mode-ecb","./pad-ansix923","./pad-iso10126","./pad-iso97971","./pad-zeropadding","./pad-nopadding","./format-hex","./aes","./tripledes","./rc4","./rabbit","./rabbit-legacy","./blowfish"],e):n.CryptoJS=e(n.CryptoJS)})(Lh,function(n){return n})});var xp=J((kI,Av)=>{"use strict";Av.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var Bv=J((CI,Iv)=>{Iv.exports=function(e){return!e||typeof e=="string"?!1:e instanceof Array||Array.isArray(e)||e.length>=0&&(e.splice instanceof Function||Object.getOwnPropertyDescriptor(e,e.length-1)&&e.constructor.name!=="String")}});var Mv=J((SI,Ov)=>{"use strict";var QP=Bv(),$P=Array.prototype.concat,ek=Array.prototype.slice,Lv=Ov.exports=function(e){for(var t=[],i=0,r=e.length;i<r;i++){var o=e[i];QP(o)?t=$P.call(t,ek.call(o)):t.push(o)}return t};Lv.wrap=function(n){return function(){return n(Lv(arguments))}}});var Hv=J((EI,Vv)=>{var xc=xp(),bc=Mv(),Nv=Object.hasOwnProperty,Rv=Object.create(null);for(jh in xc)Nv.call(xc,jh)&&(Rv[xc[jh]]=jh);var jh,Gt=Vv.exports={to:{},get:{}};Gt.get=function(n){var e=n.substring(0,3).toLowerCase(),t,i;switch(e){case"hsl":t=Gt.get.hsl(n),i="hsl";break;case"hwb":t=Gt.get.hwb(n),i="hwb";break;default:t=Gt.get.rgb(n),i="rgb";break}return t?{model:i,value:t}:null};Gt.get.rgb=function(n){if(!n)return null;var e=/^#([a-f0-9]{3,4})$/i,t=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,i=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,r=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,o=/^(\w+)$/,s=[0,0,0,1],a,c,l;if(a=n.match(t)){for(l=a[2],a=a[1],c=0;c<3;c++){var d=c*2;s[c]=parseInt(a.slice(d,d+2),16)}l&&(s[3]=parseInt(l,16)/255)}else if(a=n.match(e)){for(a=a[1],l=a[3],c=0;c<3;c++)s[c]=parseInt(a[c]+a[c],16);l&&(s[3]=parseInt(l+l,16)/255)}else if(a=n.match(i)){for(c=0;c<3;c++)s[c]=parseInt(a[c+1],0);a[4]&&(a[5]?s[3]=parseFloat(a[4])*.01:s[3]=parseFloat(a[4]))}else if(a=n.match(r)){for(c=0;c<3;c++)s[c]=Math.round(parseFloat(a[c+1])*2.55);a[4]&&(a[5]?s[3]=parseFloat(a[4])*.01:s[3]=parseFloat(a[4]))}else return(a=n.match(o))?a[1]==="transparent"?[0,0,0,0]:Nv.call(xc,a[1])?(s=xc[a[1]],s[3]=1,s):null:null;for(c=0;c<3;c++)s[c]=Ar(s[c],0,255);return s[3]=Ar(s[3],0,1),s};Gt.get.hsl=function(n){if(!n)return null;var e=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,t=n.match(e);if(t){var i=parseFloat(t[4]),r=(parseFloat(t[1])%360+360)%360,o=Ar(parseFloat(t[2]),0,100),s=Ar(parseFloat(t[3]),0,100),a=Ar(isNaN(i)?1:i,0,1);return[r,o,s,a]}return null};Gt.get.hwb=function(n){if(!n)return null;var e=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,t=n.match(e);if(t){var i=parseFloat(t[4]),r=(parseFloat(t[1])%360+360)%360,o=Ar(parseFloat(t[2]),0,100),s=Ar(parseFloat(t[3]),0,100),a=Ar(isNaN(i)?1:i,0,1);return[r,o,s,a]}return null};Gt.to.hex=function(){var n=bc(arguments);return"#"+Kh(n[0])+Kh(n[1])+Kh(n[2])+(n[3]<1?Kh(Math.round(n[3]*255)):"")};Gt.to.rgb=function(){var n=bc(arguments);return n.length<4||n[3]===1?"rgb("+Math.round(n[0])+", "+Math.round(n[1])+", "+Math.round(n[2])+")":"rgba("+Math.round(n[0])+", "+Math.round(n[1])+", "+Math.round(n[2])+", "+n[3]+")"};Gt.to.rgb.percent=function(){var n=bc(arguments),e=Math.round(n[0]/255*100),t=Math.round(n[1]/255*100),i=Math.round(n[2]/255*100);return n.length<4||n[3]===1?"rgb("+e+"%, "+t+"%, "+i+"%)":"rgba("+e+"%, "+t+"%, "+i+"%, "+n[3]+")"};Gt.to.hsl=function(){var n=bc(arguments);return n.length<4||n[3]===1?"hsl("+n[0]+", "+n[1]+"%, "+n[2]+"%)":"hsla("+n[0]+", "+n[1]+"%, "+n[2]+"%, "+n[3]+")"};Gt.to.hwb=function(){var n=bc(arguments),e="";return n.length>=4&&n[3]!==1&&(e=", "+n[3]),"hwb("+n[0]+", "+n[1]+"%, "+n[2]+"%"+e+")"};Gt.to.keyword=function(n){return Rv[n.slice(0,3)]};function Ar(n,e,t){return Math.min(Math.max(e,n),t)}function Kh(n){var e=Math.round(n).toString(16).toUpperCase();return e.length<2?"0"+e:e}});var bp=J((TI,Uv)=>{var yc=xp(),zv={};for(let n of Object.keys(yc))zv[yc[n]]=n;var Q={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};Uv.exports=Q;for(let n of Object.keys(Q)){if(!("channels"in Q[n]))throw new Error("missing channels property: "+n);if(!("labels"in Q[n]))throw new Error("missing channel labels property: "+n);if(Q[n].labels.length!==Q[n].channels)throw new Error("channel and label counts mismatch: "+n);let{channels:e,labels:t}=Q[n];delete Q[n].channels,delete Q[n].labels,Object.defineProperty(Q[n],"channels",{value:e}),Object.defineProperty(Q[n],"labels",{value:t})}Q.rgb.hsl=function(n){let e=n[0]/255,t=n[1]/255,i=n[2]/255,r=Math.min(e,t,i),o=Math.max(e,t,i),s=o-r,a,c;o===r?a=0:e===o?a=(t-i)/s:t===o?a=2+(i-e)/s:i===o&&(a=4+(e-t)/s),a=Math.min(a*60,360),a<0&&(a+=360);let l=(r+o)/2;return o===r?c=0:l<=.5?c=s/(o+r):c=s/(2-o-r),[a,c*100,l*100]};Q.rgb.hsv=function(n){let e,t,i,r,o,s=n[0]/255,a=n[1]/255,c=n[2]/255,l=Math.max(s,a,c),d=l-Math.min(s,a,c),h=function(u){return(l-u)/6/d+1/2};return d===0?(r=0,o=0):(o=d/l,e=h(s),t=h(a),i=h(c),s===l?r=i-t:a===l?r=1/3+e-i:c===l&&(r=2/3+t-e),r<0?r+=1:r>1&&(r-=1)),[r*360,o*100,l*100]};Q.rgb.hwb=function(n){let e=n[0],t=n[1],i=n[2],r=Q.rgb.hsl(n)[0],o=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[r,o*100,i*100]};Q.rgb.cmyk=function(n){let e=n[0]/255,t=n[1]/255,i=n[2]/255,r=Math.min(1-e,1-t,1-i),o=(1-e-r)/(1-r)||0,s=(1-t-r)/(1-r)||0,a=(1-i-r)/(1-r)||0;return[o*100,s*100,a*100,r*100]};function tk(n,e){return(n[0]-e[0])**2+(n[1]-e[1])**2+(n[2]-e[2])**2}Q.rgb.keyword=function(n){let e=zv[n];if(e)return e;let t=1/0,i;for(let r of Object.keys(yc)){let o=yc[r],s=tk(n,o);s<t&&(t=s,i=r)}return i};Q.keyword.rgb=function(n){return yc[n]};Q.rgb.xyz=function(n){let e=n[0]/255,t=n[1]/255,i=n[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let r=e*.4124+t*.3576+i*.1805,o=e*.2126+t*.7152+i*.0722,s=e*.0193+t*.1192+i*.9505;return[r*100,o*100,s*100]};Q.rgb.lab=function(n){let e=Q.rgb.xyz(n),t=e[0],i=e[1],r=e[2];t/=95.047,i/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;let o=116*i-16,s=500*(t-i),a=200*(i-r);return[o,s,a]};Q.hsl.rgb=function(n){let e=n[0]/360,t=n[1]/100,i=n[2]/100,r,o,s;if(t===0)return s=i*255,[s,s,s];i<.5?r=i*(1+t):r=i+t-i*t;let a=2*i-r,c=[0,0,0];for(let l=0;l<3;l++)o=e+1/3*-(l-1),o<0&&o++,o>1&&o--,6*o<1?s=a+(r-a)*6*o:2*o<1?s=r:3*o<2?s=a+(r-a)*(2/3-o)*6:s=a,c[l]=s*255;return c};Q.hsl.hsv=function(n){let e=n[0],t=n[1]/100,i=n[2]/100,r=t,o=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,r*=o<=1?o:2-o;let s=(i+t)/2,a=i===0?2*r/(o+r):2*t/(i+t);return[e,a*100,s*100]};Q.hsv.rgb=function(n){let e=n[0]/60,t=n[1]/100,i=n[2]/100,r=Math.floor(e)%6,o=e-Math.floor(e),s=255*i*(1-t),a=255*i*(1-t*o),c=255*i*(1-t*(1-o));switch(i*=255,r){case 0:return[i,c,s];case 1:return[a,i,s];case 2:return[s,i,c];case 3:return[s,a,i];case 4:return[c,s,i];case 5:return[i,s,a]}};Q.hsv.hsl=function(n){let e=n[0],t=n[1]/100,i=n[2]/100,r=Math.max(i,.01),o,s;s=(2-t)*i;let a=(2-t)*r;return o=t*r,o/=a<=1?a:2-a,o=o||0,s/=2,[e,o*100,s*100]};Q.hwb.rgb=function(n){let e=n[0]/360,t=n[1]/100,i=n[2]/100,r=t+i,o;r>1&&(t/=r,i/=r);let s=Math.floor(6*e),a=1-i;o=6*e-s,(s&1)!==0&&(o=1-o);let c=t+o*(a-t),l,d,h;switch(s){default:case 6:case 0:l=a,d=c,h=t;break;case 1:l=c,d=a,h=t;break;case 2:l=t,d=a,h=c;break;case 3:l=t,d=c,h=a;break;case 4:l=c,d=t,h=a;break;case 5:l=a,d=t,h=c;break}return[l*255,d*255,h*255]};Q.cmyk.rgb=function(n){let e=n[0]/100,t=n[1]/100,i=n[2]/100,r=n[3]/100,o=1-Math.min(1,e*(1-r)+r),s=1-Math.min(1,t*(1-r)+r),a=1-Math.min(1,i*(1-r)+r);return[o*255,s*255,a*255]};Q.xyz.rgb=function(n){let e=n[0]/100,t=n[1]/100,i=n[2]/100,r,o,s;return r=e*3.2406+t*-1.5372+i*-.4986,o=e*-.9689+t*1.8758+i*.0415,s=e*.0557+t*-.204+i*1.057,r=r>.0031308?1.055*r**(1/2.4)-.055:r*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,r=Math.min(Math.max(0,r),1),o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),[r*255,o*255,s*255]};Q.xyz.lab=function(n){let e=n[0],t=n[1],i=n[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let r=116*t-16,o=500*(e-t),s=200*(t-i);return[r,o,s]};Q.lab.xyz=function(n){let e=n[0],t=n[1],i=n[2],r,o,s;o=(e+16)/116,r=t/500+o,s=o-i/200;let a=o**3,c=r**3,l=s**3;return o=a>.008856?a:(o-16/116)/7.787,r=c>.008856?c:(r-16/116)/7.787,s=l>.008856?l:(s-16/116)/7.787,r*=95.047,o*=100,s*=108.883,[r,o,s]};Q.lab.lch=function(n){let e=n[0],t=n[1],i=n[2],r;r=Math.atan2(i,t)*360/2/Math.PI,r<0&&(r+=360);let s=Math.sqrt(t*t+i*i);return[e,s,r]};Q.lch.lab=function(n){let e=n[0],t=n[1],r=n[2]/360*2*Math.PI,o=t*Math.cos(r),s=t*Math.sin(r);return[e,o,s]};Q.rgb.ansi16=function(n,e=null){let[t,i,r]=n,o=e===null?Q.rgb.hsv(n)[2]:e;if(o=Math.round(o/50),o===0)return 30;let s=30+(Math.round(r/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return o===2&&(s+=60),s};Q.hsv.ansi16=function(n){return Q.rgb.ansi16(Q.hsv.rgb(n),n[2])};Q.rgb.ansi256=function(n){let e=n[0],t=n[1],i=n[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};Q.ansi16.rgb=function(n){let e=n%10;if(e===0||e===7)return n>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(n>50)+1)*.5,i=(e&1)*t*255,r=(e>>1&1)*t*255,o=(e>>2&1)*t*255;return[i,r,o]};Q.ansi256.rgb=function(n){if(n>=232){let o=(n-232)*10+8;return[o,o,o]}n-=16;let e,t=Math.floor(n/36)/5*255,i=Math.floor((e=n%36)/6)/5*255,r=e%6/5*255;return[t,i,r]};Q.rgb.hex=function(n){let t=(((Math.round(n[0])&255)<<16)+((Math.round(n[1])&255)<<8)+(Math.round(n[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};Q.hex.rgb=function(n){let e=n.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),r=i>>16&255,o=i>>8&255,s=i&255;return[r,o,s]};Q.rgb.hcg=function(n){let e=n[0]/255,t=n[1]/255,i=n[2]/255,r=Math.max(Math.max(e,t),i),o=Math.min(Math.min(e,t),i),s=r-o,a,c;return s<1?a=o/(1-s):a=0,s<=0?c=0:r===e?c=(t-i)/s%6:r===t?c=2+(i-e)/s:c=4+(e-t)/s,c/=6,c%=1,[c*360,s*100,a*100]};Q.hsl.hcg=function(n){let e=n[1]/100,t=n[2]/100,i=t<.5?2*e*t:2*e*(1-t),r=0;return i<1&&(r=(t-.5*i)/(1-i)),[n[0],i*100,r*100]};Q.hsv.hcg=function(n){let e=n[1]/100,t=n[2]/100,i=e*t,r=0;return i<1&&(r=(t-i)/(1-i)),[n[0],i*100,r*100]};Q.hcg.rgb=function(n){let e=n[0]/360,t=n[1]/100,i=n[2]/100;if(t===0)return[i*255,i*255,i*255];let r=[0,0,0],o=e%1*6,s=o%1,a=1-s,c=0;switch(Math.floor(o)){case 0:r[0]=1,r[1]=s,r[2]=0;break;case 1:r[0]=a,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=s;break;case 3:r[0]=0,r[1]=a,r[2]=1;break;case 4:r[0]=s,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=a}return c=(1-t)*i,[(t*r[0]+c)*255,(t*r[1]+c)*255,(t*r[2]+c)*255]};Q.hcg.hsv=function(n){let e=n[1]/100,t=n[2]/100,i=e+t*(1-e),r=0;return i>0&&(r=e/i),[n[0],r*100,i*100]};Q.hcg.hsl=function(n){let e=n[1]/100,i=n[2]/100*(1-e)+.5*e,r=0;return i>0&&i<.5?r=e/(2*i):i>=.5&&i<1&&(r=e/(2*(1-i))),[n[0],r*100,i*100]};Q.hcg.hwb=function(n){let e=n[1]/100,t=n[2]/100,i=e+t*(1-e);return[n[0],(i-e)*100,(1-i)*100]};Q.hwb.hcg=function(n){let e=n[1]/100,i=1-n[2]/100,r=i-e,o=0;return r<1&&(o=(i-r)/(1-r)),[n[0],r*100,o*100]};Q.apple.rgb=function(n){return[n[0]/65535*255,n[1]/65535*255,n[2]/65535*255]};Q.rgb.apple=function(n){return[n[0]/255*65535,n[1]/255*65535,n[2]/255*65535]};Q.gray.rgb=function(n){return[n[0]/100*255,n[0]/100*255,n[0]/100*255]};Q.gray.hsl=function(n){return[0,0,n[0]]};Q.gray.hsv=Q.gray.hsl;Q.gray.hwb=function(n){return[0,100,n[0]]};Q.gray.cmyk=function(n){return[0,0,0,n[0]]};Q.gray.lab=function(n){return[n[0],0,0]};Q.gray.hex=function(n){let e=Math.round(n[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};Q.rgb.gray=function(n){return[(n[0]+n[1]+n[2])/3/255*100]}});var Wv=J((AI,qv)=>{var Gh=bp();function ik(){let n={},e=Object.keys(Gh);for(let t=e.length,i=0;i<t;i++)n[e[i]]={distance:-1,parent:null};return n}function nk(n){let e=ik(),t=[n];for(e[n].distance=0;t.length;){let i=t.pop(),r=Object.keys(Gh[i]);for(let o=r.length,s=0;s<o;s++){let a=r[s],c=e[a];c.distance===-1&&(c.distance=e[i].distance+1,c.parent=i,t.unshift(a))}}return e}function rk(n,e){return function(t){return e(n(t))}}function ok(n,e){let t=[e[n].parent,n],i=Gh[e[n].parent][n],r=e[n].parent;for(;e[r].parent;)t.unshift(e[r].parent),i=rk(Gh[e[r].parent][r],i),r=e[r].parent;return i.conversion=t,i}qv.exports=function(n){let e=nk(n),t={},i=Object.keys(e);for(let r=i.length,o=0;o<r;o++){let s=i[o];e[s].parent!==null&&(t[s]=ok(s,e))}return t}});var Kv=J((II,jv)=>{var yp=bp(),sk=Wv(),$s={},ak=Object.keys(yp);function lk(n){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),n(t))};return"conversion"in n&&(e.conversion=n.conversion),e}function ck(n){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let r=n(t);if(typeof r=="object")for(let o=r.length,s=0;s<o;s++)r[s]=Math.round(r[s]);return r};return"conversion"in n&&(e.conversion=n.conversion),e}ak.forEach(n=>{$s[n]={},Object.defineProperty($s[n],"channels",{value:yp[n].channels}),Object.defineProperty($s[n],"labels",{value:yp[n].labels});let e=sk(n);Object.keys(e).forEach(i=>{let r=e[i];$s[n][i]=ck(r),$s[n][i].raw=lk(r)})});jv.exports=$s});var Zv=J((BI,Xv)=>{var ea=Hv(),Xt=Kv(),Gv=["keyword","gray","hex"],vp={};for(let n of Object.keys(Xt))vp[[...Xt[n].labels].sort().join("")]=n;var Xh={};function ut(n,e){if(!(this instanceof ut))return new ut(n,e);if(e&&e in Gv&&(e=null),e&&!(e in Xt))throw new Error("Unknown model: "+e);let t,i;if(n==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(n instanceof ut)this.model=n.model,this.color=[...n.color],this.valpha=n.valpha;else if(typeof n=="string"){let r=ea.get(n);if(r===null)throw new Error("Unable to parse color from string: "+n);this.model=r.model,i=Xt[this.model].channels,this.color=r.value.slice(0,i),this.valpha=typeof r.value[i]=="number"?r.value[i]:1}else if(n.length>0){this.model=e||"rgb",i=Xt[this.model].channels;let r=Array.prototype.slice.call(n,0,i);this.color=wp(r,i),this.valpha=typeof n[i]=="number"?n[i]:1}else if(typeof n=="number")this.model="rgb",this.color=[n>>16&255,n>>8&255,n&255],this.valpha=1;else{this.valpha=1;let r=Object.keys(n);"alpha"in n&&(r.splice(r.indexOf("alpha"),1),this.valpha=typeof n.alpha=="number"?n.alpha:0);let o=r.sort().join("");if(!(o in vp))throw new Error("Unable to parse color from object: "+JSON.stringify(n));this.model=vp[o];let{labels:s}=Xt[this.model],a=[];for(t=0;t<s.length;t++)a.push(n[s[t]]);this.color=wp(a)}if(Xh[this.model])for(i=Xt[this.model].channels,t=0;t<i;t++){let r=Xh[this.model][t];r&&(this.color[t]=r(this.color[t]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}ut.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(n){let e=this.model in ea.to?this:this.rgb();e=e.round(typeof n=="number"?n:1);let t=e.valpha===1?e.color:[...e.color,this.valpha];return ea.to[e.model](t)},percentString(n){let e=this.rgb().round(typeof n=="number"?n:1),t=e.valpha===1?e.color:[...e.color,this.valpha];return ea.to.rgb.percent(t)},array(){return this.valpha===1?[...this.color]:[...this.color,this.valpha]},object(){let n={},{channels:e}=Xt[this.model],{labels:t}=Xt[this.model];for(let i=0;i<e;i++)n[t[i]]=this.color[i];return this.valpha!==1&&(n.alpha=this.valpha),n},unitArray(){let n=this.rgb().color;return n[0]/=255,n[1]/=255,n[2]/=255,this.valpha!==1&&n.push(this.valpha),n},unitObject(){let n=this.rgb().object();return n.r/=255,n.g/=255,n.b/=255,this.valpha!==1&&(n.alpha=this.valpha),n},round(n){return n=Math.max(n||0,0),new ut([...this.color.map(hk(n)),this.valpha],this.model)},alpha(n){return n!==void 0?new ut([...this.color,Math.max(0,Math.min(1,n))],this.model):this.valpha},red:We("rgb",0,st(255)),green:We("rgb",1,st(255)),blue:We("rgb",2,st(255)),hue:We(["hsl","hsv","hsl","hwb","hcg"],0,n=>(n%360+360)%360),saturationl:We("hsl",1,st(100)),lightness:We("hsl",2,st(100)),saturationv:We("hsv",1,st(100)),value:We("hsv",2,st(100)),chroma:We("hcg",1,st(100)),gray:We("hcg",2,st(100)),white:We("hwb",1,st(100)),wblack:We("hwb",2,st(100)),cyan:We("cmyk",0,st(100)),magenta:We("cmyk",1,st(100)),yellow:We("cmyk",2,st(100)),black:We("cmyk",3,st(100)),x:We("xyz",0,st(95.047)),y:We("xyz",1,st(100)),z:We("xyz",2,st(108.833)),l:We("lab",0,st(100)),a:We("lab",1),b:We("lab",2),keyword(n){return n!==void 0?new ut(n):Xt[this.model].keyword(this.color)},hex(n){return n!==void 0?new ut(n):ea.to.hex(this.rgb().round().color)},hexa(n){if(n!==void 0)return new ut(n);let e=this.rgb().round().color,t=Math.round(this.valpha*255).toString(16).toUpperCase();return t.length===1&&(t="0"+t),ea.to.hex(e)+t},rgbNumber(){let n=this.rgb().color;return(n[0]&255)<<16|(n[1]&255)<<8|n[2]&255},luminosity(){let n=this.rgb().color,e=[];for(let[t,i]of n.entries()){let r=i/255;e[t]=r<=.04045?r/12.92:((r+.055)/1.055)**2.4}return .2126*e[0]+.7152*e[1]+.0722*e[2]},contrast(n){let e=this.luminosity(),t=n.luminosity();return e>t?(e+.05)/(t+.05):(t+.05)/(e+.05)},level(n){let e=this.contrast(n);return e>=7?"AAA":e>=4.5?"AA":""},isDark(){let n=this.rgb().color;return(n[0]*2126+n[1]*7152+n[2]*722)/1e4<128},isLight(){return!this.isDark()},negate(){let n=this.rgb();for(let e=0;e<3;e++)n.color[e]=255-n.color[e];return n},lighten(n){let e=this.hsl();return e.color[2]+=e.color[2]*n,e},darken(n){let e=this.hsl();return e.color[2]-=e.color[2]*n,e},saturate(n){let e=this.hsl();return e.color[1]+=e.color[1]*n,e},desaturate(n){let e=this.hsl();return e.color[1]-=e.color[1]*n,e},whiten(n){let e=this.hwb();return e.color[1]+=e.color[1]*n,e},blacken(n){let e=this.hwb();return e.color[2]+=e.color[2]*n,e},grayscale(){let n=this.rgb().color,e=n[0]*.3+n[1]*.59+n[2]*.11;return ut.rgb(e,e,e)},fade(n){return this.alpha(this.valpha-this.valpha*n)},opaquer(n){return this.alpha(this.valpha+this.valpha*n)},rotate(n){let e=this.hsl(),t=e.color[0];return t=(t+n)%360,t=t<0?360+t:t,e.color[0]=t,e},mix(n,e){if(!n||!n.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof n);let t=n.rgb(),i=this.rgb(),r=e===void 0?.5:e,o=2*r-1,s=t.alpha()-i.alpha(),a=((o*s===-1?o:(o+s)/(1+o*s))+1)/2,c=1-a;return ut.rgb(a*t.red()+c*i.red(),a*t.green()+c*i.green(),a*t.blue()+c*i.blue(),t.alpha()*r+i.alpha()*(1-r))}};for(let n of Object.keys(Xt)){if(Gv.includes(n))continue;let{channels:e}=Xt[n];ut.prototype[n]=function(...t){return this.model===n?new ut(this):t.length>0?new ut(t,n):new ut([...uk(Xt[this.model][n].raw(this.color)),this.valpha],n)},ut[n]=function(...t){let i=t[0];return typeof i=="number"&&(i=wp(t,e)),new ut(i,n)}}function dk(n,e){return Number(n.toFixed(e))}function hk(n){return function(e){return dk(e,n)}}function We(n,e,t){n=Array.isArray(n)?n:[n];for(let i of n)(Xh[i]||(Xh[i]=[]))[e]=t;return n=n[0],function(i){let r;return i!==void 0?(t&&(i=t(i)),r=this[n](),r.color[e]=i,r):(r=this[n]().color[e],t&&(r=t(r)),r)}}function st(n){return function(e){return Math.max(0,Math.min(n,e))}}function uk(n){return Array.isArray(n)?n:[n]}function wp(n,e){for(let t=0;t<e;t++)typeof n[t]!="number"&&(n[t]=0);return n}Xv.exports=ut});var ew=J(_h=>{"use strict";Object.defineProperty(_h,"__esModule",{value:!0});_h.bodyRegExps={xml:/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html4:/∉|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html5:/·|℗|⋇|⪧|⩺|⋗|⦕|⩼|⪆|⥸|⋗|⋛|⪌|≷|≳|⪦|⩹|⋖|⋋|⋉|⥶|⩻|⦖|◃|⊴|◂|∉|⋹̸|⋵̸|∉|⋷|⋶|∌|∌|⋾|⋽|∥|⊠|⨱|⨰|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g};_h.namedReferences={xml:{entities:{"<":"<",">":">",""":'"',"'":"'","&":"&"},characters:{"<":"<",">":">",'"':""","'":"'","&":"&"}},html4:{entities:{"'":"'"," ":"\xA0"," ":"\xA0","¡":"\xA1","¡":"\xA1","¢":"\xA2","¢":"\xA2","£":"\xA3","£":"\xA3","¤":"\xA4","¤":"\xA4","¥":"\xA5","¥":"\xA5","¦":"\xA6","¦":"\xA6","§":"\xA7","§":"\xA7","¨":"\xA8","¨":"\xA8","©":"\xA9","©":"\xA9","ª":"\xAA","ª":"\xAA","«":"\xAB","«":"\xAB","¬":"\xAC","¬":"\xAC","­":"\xAD","­":"\xAD","®":"\xAE","®":"\xAE","¯":"\xAF","¯":"\xAF","°":"\xB0","°":"\xB0","±":"\xB1","±":"\xB1","²":"\xB2","²":"\xB2","³":"\xB3","³":"\xB3","´":"\xB4","´":"\xB4","µ":"\xB5","µ":"\xB5","¶":"\xB6","¶":"\xB6","·":"\xB7","·":"\xB7","¸":"\xB8","¸":"\xB8","¹":"\xB9","¹":"\xB9","º":"\xBA","º":"\xBA","»":"\xBB","»":"\xBB","¼":"\xBC","¼":"\xBC","½":"\xBD","½":"\xBD","¾":"\xBE","¾":"\xBE","¿":"\xBF","¿":"\xBF","À":"\xC0","À":"\xC0","Á":"\xC1","Á":"\xC1","Â":"\xC2","Â":"\xC2","Ã":"\xC3","Ã":"\xC3","Ä":"\xC4","Ä":"\xC4","Å":"\xC5","Å":"\xC5","Æ":"\xC6","Æ":"\xC6","Ç":"\xC7","Ç":"\xC7","È":"\xC8","È":"\xC8","É":"\xC9","É":"\xC9","Ê":"\xCA","Ê":"\xCA","Ë":"\xCB","Ë":"\xCB","Ì":"\xCC","Ì":"\xCC","Í":"\xCD","Í":"\xCD","Î":"\xCE","Î":"\xCE","Ï":"\xCF","Ï":"\xCF","Ð":"\xD0","Ð":"\xD0","Ñ":"\xD1","Ñ":"\xD1","Ò":"\xD2","Ò":"\xD2","Ó":"\xD3","Ó":"\xD3","Ô":"\xD4","Ô":"\xD4","Õ":"\xD5","Õ":"\xD5","Ö":"\xD6","Ö":"\xD6","×":"\xD7","×":"\xD7","Ø":"\xD8","Ø":"\xD8","Ù":"\xD9","Ù":"\xD9","Ú":"\xDA","Ú":"\xDA","Û":"\xDB","Û":"\xDB","Ü":"\xDC","Ü":"\xDC","Ý":"\xDD","Ý":"\xDD","Þ":"\xDE","Þ":"\xDE","ß":"\xDF","ß":"\xDF","à":"\xE0","à":"\xE0","á":"\xE1","á":"\xE1","â":"\xE2","â":"\xE2","ã":"\xE3","ã":"\xE3","ä":"\xE4","ä":"\xE4","å":"\xE5","å":"\xE5","æ":"\xE6","æ":"\xE6","ç":"\xE7","ç":"\xE7","è":"\xE8","è":"\xE8","é":"\xE9","é":"\xE9","ê":"\xEA","ê":"\xEA","ë":"\xEB","ë":"\xEB","ì":"\xEC","ì":"\xEC","í":"\xED","í":"\xED","î":"\xEE","î":"\xEE","ï":"\xEF","ï":"\xEF","ð":"\xF0","ð":"\xF0","ñ":"\xF1","ñ":"\xF1","ò":"\xF2","ò":"\xF2","ó":"\xF3","ó":"\xF3","ô":"\xF4","ô":"\xF4","õ":"\xF5","õ":"\xF5","ö":"\xF6","ö":"\xF6","÷":"\xF7","÷":"\xF7","ø":"\xF8","ø":"\xF8","ù":"\xF9","ù":"\xF9","ú":"\xFA","ú":"\xFA","û":"\xFB","û":"\xFB","ü":"\xFC","ü":"\xFC","ý":"\xFD","ý":"\xFD","þ":"\xFE","þ":"\xFE","ÿ":"\xFF","ÿ":"\xFF",""":'"',""":'"',"&":"&","&":"&","<":"<","<":"<",">":">",">":">","Œ":"\u0152","œ":"\u0153","Š":"\u0160","š":"\u0161","Ÿ":"\u0178","ˆ":"\u02C6","˜":"\u02DC"," ":"\u2002"," ":"\u2003"," ":"\u2009","‌":"\u200C","‍":"\u200D","‎":"\u200E","‏":"\u200F","–":"\u2013","—":"\u2014","‘":"\u2018","’":"\u2019","‚":"\u201A","“":"\u201C","”":"\u201D","„":"\u201E","†":"\u2020","‡":"\u2021","‰":"\u2030","‹":"\u2039","›":"\u203A","€":"\u20AC","ƒ":"\u0192","Α":"\u0391","Β":"\u0392","Γ":"\u0393","Δ":"\u0394","Ε":"\u0395","Ζ":"\u0396","Η":"\u0397","Θ":"\u0398","Ι":"\u0399","Κ":"\u039A","Λ":"\u039B","Μ":"\u039C","Ν":"\u039D","Ξ":"\u039E","Ο":"\u039F","Π":"\u03A0","Ρ":"\u03A1","Σ":"\u03A3","Τ":"\u03A4","Υ":"\u03A5","Φ":"\u03A6","Χ":"\u03A7","Ψ":"\u03A8","Ω":"\u03A9","α":"\u03B1","β":"\u03B2","γ":"\u03B3","δ":"\u03B4","ε":"\u03B5","ζ":"\u03B6","η":"\u03B7","θ":"\u03B8","ι":"\u03B9","κ":"\u03BA","λ":"\u03BB","μ":"\u03BC","ν":"\u03BD","ξ":"\u03BE","ο":"\u03BF","π":"\u03C0","ρ":"\u03C1","ς":"\u03C2","σ":"\u03C3","τ":"\u03C4","υ":"\u03C5","φ":"\u03C6","χ":"\u03C7","ψ":"\u03C8","ω":"\u03C9","ϑ":"\u03D1","ϒ":"\u03D2","ϖ":"\u03D6","•":"\u2022","…":"\u2026","′":"\u2032","″":"\u2033","‾":"\u203E","⁄":"\u2044","℘":"\u2118","ℑ":"\u2111","ℜ":"\u211C","™":"\u2122","ℵ":"\u2135","←":"\u2190","↑":"\u2191","→":"\u2192","↓":"\u2193","↔":"\u2194","↵":"\u21B5","⇐":"\u21D0","⇑":"\u21D1","⇒":"\u21D2","⇓":"\u21D3","⇔":"\u21D4","∀":"\u2200","∂":"\u2202","∃":"\u2203","∅":"\u2205","∇":"\u2207","∈":"\u2208","∉":"\u2209","∋":"\u220B","∏":"\u220F","∑":"\u2211","−":"\u2212","∗":"\u2217","√":"\u221A","∝":"\u221D","∞":"\u221E","∠":"\u2220","∧":"\u2227","∨":"\u2228","∩":"\u2229","∪":"\u222A","∫":"\u222B","∴":"\u2234","∼":"\u223C","≅":"\u2245","≈":"\u2248","≠":"\u2260","≡":"\u2261","≤":"\u2264","≥":"\u2265","⊂":"\u2282","⊃":"\u2283","⊄":"\u2284","⊆":"\u2286","⊇":"\u2287","⊕":"\u2295","⊗":"\u2297","⊥":"\u22A5","⋅":"\u22C5","⌈":"\u2308","⌉":"\u2309","⌊":"\u230A","⌋":"\u230B","⟨":"\u2329","⟩":"\u232A","◊":"\u25CA","♠":"\u2660","♣":"\u2663","♥":"\u2665","♦":"\u2666"},characters:{"'":"'","\xA0":" ","\xA1":"¡","\xA2":"¢","\xA3":"£","\xA4":"¤","\xA5":"¥","\xA6":"¦","\xA7":"§","\xA8":"¨","\xA9":"©",\u00AA:"ª","\xAB":"«","\xAC":"¬","\xAD":"­","\xAE":"®","\xAF":"¯","\xB0":"°","\xB1":"±","\xB2":"²","\xB3":"³","\xB4":"´",\u00B5:"µ","\xB6":"¶","\xB7":"·","\xB8":"¸","\xB9":"¹",\u00BA:"º","\xBB":"»","\xBC":"¼","\xBD":"½","\xBE":"¾","\xBF":"¿",\u00C0:"À",\u00C1:"Á",\u00C2:"Â",\u00C3:"Ã",\u00C4:"Ä",\u00C5:"Å",\u00C6:"Æ",\u00C7:"Ç",\u00C8:"È",\u00C9:"É",\u00CA:"Ê",\u00CB:"Ë",\u00CC:"Ì",\u00CD:"Í",\u00CE:"Î",\u00CF:"Ï",\u00D0:"Ð",\u00D1:"Ñ",\u00D2:"Ò",\u00D3:"Ó",\u00D4:"Ô",\u00D5:"Õ",\u00D6:"Ö","\xD7":"×",\u00D8:"Ø",\u00D9:"Ù",\u00DA:"Ú",\u00DB:"Û",\u00DC:"Ü",\u00DD:"Ý",\u00DE:"Þ",\u00DF:"ß",\u00E0:"à",\u00E1:"á",\u00E2:"â",\u00E3:"ã",\u00E4:"ä",\u00E5:"å",\u00E6:"æ",\u00E7:"ç",\u00E8:"è",\u00E9:"é",\u00EA:"ê",\u00EB:"ë",\u00EC:"ì",\u00ED:"í",\u00EE:"î",\u00EF:"ï",\u00F0:"ð",\u00F1:"ñ",\u00F2:"ò",\u00F3:"ó",\u00F4:"ô",\u00F5:"õ",\u00F6:"ö","\xF7":"÷",\u00F8:"ø",\u00F9:"ù",\u00FA:"ú",\u00FB:"û",\u00FC:"ü",\u00FD:"ý",\u00FE:"þ",\u00FF:"ÿ",'"':""","&":"&","<":"<",">":">",\u0152:"Œ",\u0153:"œ",\u0160:"Š",\u0161:"š",\u0178:"Ÿ","\u02C6":"ˆ","\u02DC":"˜","\u2002":" ","\u2003":" ","\u2009":" ","\u200C":"‌","\u200D":"‍","\u200E":"‎","\u200F":"‏","\u2013":"–","\u2014":"—","\u2018":"‘","\u2019":"’","\u201A":"‚","\u201C":"“","\u201D":"”","\u201E":"„","\u2020":"†","\u2021":"‡","\u2030":"‰","\u2039":"‹","\u203A":"›","\u20AC":"€",\u0192:"ƒ",\u0391:"Α",\u0392:"Β",\u0393:"Γ",\u0394:"Δ",\u0395:"Ε",\u0396:"Ζ",\u0397:"Η",\u0398:"Θ",\u0399:"Ι",\u039A:"Κ",\u039B:"Λ",\u039C:"Μ",\u039D:"Ν",\u039E:"Ξ",\u039F:"Ο",\u03A0:"Π",\u03A1:"Ρ",\u03A3:"Σ",\u03A4:"Τ",\u03A5:"Υ",\u03A6:"Φ",\u03A7:"Χ",\u03A8:"Ψ",\u03A9:"Ω",\u03B1:"α",\u03B2:"β",\u03B3:"γ",\u03B4:"δ",\u03B5:"ε",\u03B6:"ζ",\u03B7:"η",\u03B8:"θ",\u03B9:"ι",\u03BA:"κ",\u03BB:"λ",\u03BC:"μ",\u03BD:"ν",\u03BE:"ξ",\u03BF:"ο",\u03C0:"π",\u03C1:"ρ",\u03C2:"ς",\u03C3:"σ",\u03C4:"τ",\u03C5:"υ",\u03C6:"φ",\u03C7:"χ",\u03C8:"ψ",\u03C9:"ω",\u03D1:"ϑ",\u03D2:"ϒ",\u03D6:"ϖ","\u2022":"•","\u2026":"…","\u2032":"′","\u2033":"″","\u203E":"‾","\u2044":"⁄","\u2118":"℘",\u2111:"ℑ",\u211C:"ℜ","\u2122":"™",\u2135:"ℵ","\u2190":"←","\u2191":"↑","\u2192":"→","\u2193":"↓","\u2194":"↔","\u21B5":"↵","\u21D0":"⇐","\u21D1":"⇑","\u21D2":"⇒","\u21D3":"⇓","\u21D4":"⇔","\u2200":"∀","\u2202":"∂","\u2203":"∃","\u2205":"∅","\u2207":"∇","\u2208":"∈","\u2209":"∉","\u220B":"∋","\u220F":"∏","\u2211":"∑","\u2212":"−","\u2217":"∗","\u221A":"√","\u221D":"∝","\u221E":"∞","\u2220":"∠","\u2227":"∧","\u2228":"∨","\u2229":"∩","\u222A":"∪","\u222B":"∫","\u2234":"∴","\u223C":"∼","\u2245":"≅","\u2248":"≈","\u2260":"≠","\u2261":"≡","\u2264":"≤","\u2265":"≥","\u2282":"⊂","\u2283":"⊃","\u2284":"⊄","\u2286":"⊆","\u2287":"⊇","\u2295":"⊕","\u2297":"⊗","\u22A5":"⊥","\u22C5":"⋅","\u2308":"⌈","\u2309":"⌉","\u230A":"⌊","\u230B":"⌋","\u2329":"⟨","\u232A":"⟩","\u25CA":"◊","\u2660":"♠","\u2663":"♣","\u2665":"♥","\u2666":"♦"}},html5:{entities:{"Æ":"\xC6","Æ":"\xC6","&":"&","&":"&","Á":"\xC1","Á":"\xC1","Ă":"\u0102","Â":"\xC2","Â":"\xC2","А":"\u0410","𝔄":"\u{1D504}","À":"\xC0","À":"\xC0","Α":"\u0391","Ā":"\u0100","⩓":"\u2A53","Ą":"\u0104","𝔸":"\u{1D538}","⁡":"\u2061","Å":"\xC5","Å":"\xC5","𝒜":"\u{1D49C}","≔":"\u2254","Ã":"\xC3","Ã":"\xC3","Ä":"\xC4","Ä":"\xC4","∖":"\u2216","⫧":"\u2AE7","⌆":"\u2306","Б":"\u0411","∵":"\u2235","ℬ":"\u212C","Β":"\u0392","𝔅":"\u{1D505}","𝔹":"\u{1D539}","˘":"\u02D8","ℬ":"\u212C","≎":"\u224E","Ч":"\u0427","©":"\xA9","©":"\xA9","Ć":"\u0106","⋒":"\u22D2","ⅅ":"\u2145","ℭ":"\u212D","Č":"\u010C","Ç":"\xC7","Ç":"\xC7","Ĉ":"\u0108","∰":"\u2230","Ċ":"\u010A","¸":"\xB8","·":"\xB7","ℭ":"\u212D","Χ":"\u03A7","⊙":"\u2299","⊖":"\u2296","⊕":"\u2295","⊗":"\u2297","∲":"\u2232","”":"\u201D","’":"\u2019","∷":"\u2237","⩴":"\u2A74","≡":"\u2261","∯":"\u222F","∮":"\u222E","ℂ":"\u2102","∐":"\u2210","∳":"\u2233","⨯":"\u2A2F","𝒞":"\u{1D49E}","⋓":"\u22D3","≍":"\u224D","ⅅ":"\u2145","⤑":"\u2911","Ђ":"\u0402","Ѕ":"\u0405","Џ":"\u040F","‡":"\u2021","↡":"\u21A1","⫤":"\u2AE4","Ď":"\u010E","Д":"\u0414","∇":"\u2207","Δ":"\u0394","𝔇":"\u{1D507}","´":"\xB4","˙":"\u02D9","˝":"\u02DD","`":"`","˜":"\u02DC","⋄":"\u22C4","ⅆ":"\u2146","𝔻":"\u{1D53B}","¨":"\xA8","⃜":"\u20DC","≐":"\u2250","∯":"\u222F","¨":"\xA8","⇓":"\u21D3","⇐":"\u21D0","⇔":"\u21D4","⫤":"\u2AE4","⟸":"\u27F8","⟺":"\u27FA","⟹":"\u27F9","⇒":"\u21D2","⊨":"\u22A8","⇑":"\u21D1","⇕":"\u21D5","∥":"\u2225","↓":"\u2193","⤓":"\u2913","⇵":"\u21F5","̑":"\u0311","⥐":"\u2950","⥞":"\u295E","↽":"\u21BD","⥖":"\u2956","⥟":"\u295F","⇁":"\u21C1","⥗":"\u2957","⊤":"\u22A4","↧":"\u21A7","⇓":"\u21D3","𝒟":"\u{1D49F}","Đ":"\u0110","Ŋ":"\u014A","Ð":"\xD0","Ð":"\xD0","É":"\xC9","É":"\xC9","Ě":"\u011A","Ê":"\xCA","Ê":"\xCA","Э":"\u042D","Ė":"\u0116","𝔈":"\u{1D508}","È":"\xC8","È":"\xC8","∈":"\u2208","Ē":"\u0112","◻":"\u25FB","▫":"\u25AB","Ę":"\u0118","𝔼":"\u{1D53C}","Ε":"\u0395","⩵":"\u2A75","≂":"\u2242","⇌":"\u21CC","ℰ":"\u2130","⩳":"\u2A73","Η":"\u0397","Ë":"\xCB","Ë":"\xCB","∃":"\u2203","ⅇ":"\u2147","Ф":"\u0424","𝔉":"\u{1D509}","◼":"\u25FC","▪":"\u25AA","𝔽":"\u{1D53D}","∀":"\u2200","ℱ":"\u2131","ℱ":"\u2131","Ѓ":"\u0403",">":">",">":">","Γ":"\u0393","Ϝ":"\u03DC","Ğ":"\u011E","Ģ":"\u0122","Ĝ":"\u011C","Г":"\u0413","Ġ":"\u0120","𝔊":"\u{1D50A}","⋙":"\u22D9","𝔾":"\u{1D53E}","≥":"\u2265","⋛":"\u22DB","≧":"\u2267","⪢":"\u2AA2","≷":"\u2277","⩾":"\u2A7E","≳":"\u2273","𝒢":"\u{1D4A2}","≫":"\u226B","Ъ":"\u042A","ˇ":"\u02C7","^":"^","Ĥ":"\u0124","ℌ":"\u210C","ℋ":"\u210B","ℍ":"\u210D","─":"\u2500","ℋ":"\u210B","Ħ":"\u0126","≎":"\u224E","≏":"\u224F","Е":"\u0415","IJ":"\u0132","Ё":"\u0401","Í":"\xCD","Í":"\xCD","Î":"\xCE","Î":"\xCE","И":"\u0418","İ":"\u0130","ℑ":"\u2111","Ì":"\xCC","Ì":"\xCC","ℑ":"\u2111","Ī":"\u012A","ⅈ":"\u2148","⇒":"\u21D2","∬":"\u222C","∫":"\u222B","⋂":"\u22C2","⁣":"\u2063","⁢":"\u2062","Į":"\u012E","𝕀":"\u{1D540}","Ι":"\u0399","ℐ":"\u2110","Ĩ":"\u0128","І":"\u0406","Ï":"\xCF","Ï":"\xCF","Ĵ":"\u0134","Й":"\u0419","𝔍":"\u{1D50D}","𝕁":"\u{1D541}","𝒥":"\u{1D4A5}","Ј":"\u0408","Є":"\u0404","Х":"\u0425","Ќ":"\u040C","Κ":"\u039A","Ķ":"\u0136","К":"\u041A","𝔎":"\u{1D50E}","𝕂":"\u{1D542}","𝒦":"\u{1D4A6}","Љ":"\u0409","<":"<","<":"<","Ĺ":"\u0139","Λ":"\u039B","⟪":"\u27EA","ℒ":"\u2112","↞":"\u219E","Ľ":"\u013D","Ļ":"\u013B","Л":"\u041B","⟨":"\u27E8","←":"\u2190","⇤":"\u21E4","⇆":"\u21C6","⌈":"\u2308","⟦":"\u27E6","⥡":"\u2961","⇃":"\u21C3","⥙":"\u2959","⌊":"\u230A","↔":"\u2194","⥎":"\u294E","⊣":"\u22A3","↤":"\u21A4","⥚":"\u295A","⊲":"\u22B2","⧏":"\u29CF","⊴":"\u22B4","⥑":"\u2951","⥠":"\u2960","↿":"\u21BF","⥘":"\u2958","↼":"\u21BC","⥒":"\u2952","⇐":"\u21D0","⇔":"\u21D4","⋚":"\u22DA","≦":"\u2266","≶":"\u2276","⪡":"\u2AA1","⩽":"\u2A7D","≲":"\u2272","𝔏":"\u{1D50F}","⋘":"\u22D8","⇚":"\u21DA","Ŀ":"\u013F","⟵":"\u27F5","⟷":"\u27F7","⟶":"\u27F6","⟸":"\u27F8","⟺":"\u27FA","⟹":"\u27F9","𝕃":"\u{1D543}","↙":"\u2199","↘":"\u2198","ℒ":"\u2112","↰":"\u21B0","Ł":"\u0141","≪":"\u226A","⤅":"\u2905","М":"\u041C"," ":"\u205F","ℳ":"\u2133","𝔐":"\u{1D510}","∓":"\u2213","𝕄":"\u{1D544}","ℳ":"\u2133","Μ":"\u039C","Њ":"\u040A","Ń":"\u0143","Ň":"\u0147","Ņ":"\u0145","Н":"\u041D","​":"\u200B","​":"\u200B","​":"\u200B","​":"\u200B","≫":"\u226B","≪":"\u226A","
":`
|
||
`,"𝔑":"\u{1D511}","⁠":"\u2060"," ":"\xA0","ℕ":"\u2115","⫬":"\u2AEC","≢":"\u2262","≭":"\u226D","∦":"\u2226","∉":"\u2209","≠":"\u2260","≂̸":"\u2242\u0338","∄":"\u2204","≯":"\u226F","≱":"\u2271","≧̸":"\u2267\u0338","≫̸":"\u226B\u0338","≹":"\u2279","⩾̸":"\u2A7E\u0338","≵":"\u2275","≎̸":"\u224E\u0338","≏̸":"\u224F\u0338","⋪":"\u22EA","⧏̸":"\u29CF\u0338","⋬":"\u22EC","≮":"\u226E","≰":"\u2270","≸":"\u2278","≪̸":"\u226A\u0338","⩽̸":"\u2A7D\u0338","≴":"\u2274","⪢̸":"\u2AA2\u0338","⪡̸":"\u2AA1\u0338","⊀":"\u2280","⪯̸":"\u2AAF\u0338","⋠":"\u22E0","∌":"\u220C","⋫":"\u22EB","⧐̸":"\u29D0\u0338","⋭":"\u22ED","⊏̸":"\u228F\u0338","⋢":"\u22E2","⊐̸":"\u2290\u0338","⋣":"\u22E3","⊂⃒":"\u2282\u20D2","⊈":"\u2288","⊁":"\u2281","⪰̸":"\u2AB0\u0338","⋡":"\u22E1","≿̸":"\u227F\u0338","⊃⃒":"\u2283\u20D2","⊉":"\u2289","≁":"\u2241","≄":"\u2244","≇":"\u2247","≉":"\u2249","∤":"\u2224","𝒩":"\u{1D4A9}","Ñ":"\xD1","Ñ":"\xD1","Ν":"\u039D","Œ":"\u0152","Ó":"\xD3","Ó":"\xD3","Ô":"\xD4","Ô":"\xD4","О":"\u041E","Ő":"\u0150","𝔒":"\u{1D512}","Ò":"\xD2","Ò":"\xD2","Ō":"\u014C","Ω":"\u03A9","Ο":"\u039F","𝕆":"\u{1D546}","“":"\u201C","‘":"\u2018","⩔":"\u2A54","𝒪":"\u{1D4AA}","Ø":"\xD8","Ø":"\xD8","Õ":"\xD5","Õ":"\xD5","⨷":"\u2A37","Ö":"\xD6","Ö":"\xD6","‾":"\u203E","⏞":"\u23DE","⎴":"\u23B4","⏜":"\u23DC","∂":"\u2202","П":"\u041F","𝔓":"\u{1D513}","Φ":"\u03A6","Π":"\u03A0","±":"\xB1","ℌ":"\u210C","ℙ":"\u2119","⪻":"\u2ABB","≺":"\u227A","⪯":"\u2AAF","≼":"\u227C","≾":"\u227E","″":"\u2033","∏":"\u220F","∷":"\u2237","∝":"\u221D","𝒫":"\u{1D4AB}","Ψ":"\u03A8",""":'"',""":'"',"𝔔":"\u{1D514}","ℚ":"\u211A","𝒬":"\u{1D4AC}","⤐":"\u2910","®":"\xAE","®":"\xAE","Ŕ":"\u0154","⟫":"\u27EB","↠":"\u21A0","⤖":"\u2916","Ř":"\u0158","Ŗ":"\u0156","Р":"\u0420","ℜ":"\u211C","∋":"\u220B","⇋":"\u21CB","⥯":"\u296F","ℜ":"\u211C","Ρ":"\u03A1","⟩":"\u27E9","→":"\u2192","⇥":"\u21E5","⇄":"\u21C4","⌉":"\u2309","⟧":"\u27E7","⥝":"\u295D","⇂":"\u21C2","⥕":"\u2955","⌋":"\u230B","⊢":"\u22A2","↦":"\u21A6","⥛":"\u295B","⊳":"\u22B3","⧐":"\u29D0","⊵":"\u22B5","⥏":"\u294F","⥜":"\u295C","↾":"\u21BE","⥔":"\u2954","⇀":"\u21C0","⥓":"\u2953","⇒":"\u21D2","ℝ":"\u211D","⥰":"\u2970","⇛":"\u21DB","ℛ":"\u211B","↱":"\u21B1","⧴":"\u29F4","Щ":"\u0429","Ш":"\u0428","Ь":"\u042C","Ś":"\u015A","⪼":"\u2ABC","Š":"\u0160","Ş":"\u015E","Ŝ":"\u015C","С":"\u0421","𝔖":"\u{1D516}","↓":"\u2193","←":"\u2190","→":"\u2192","↑":"\u2191","Σ":"\u03A3","∘":"\u2218","𝕊":"\u{1D54A}","√":"\u221A","□":"\u25A1","⊓":"\u2293","⊏":"\u228F","⊑":"\u2291","⊐":"\u2290","⊒":"\u2292","⊔":"\u2294","𝒮":"\u{1D4AE}","⋆":"\u22C6","⋐":"\u22D0","⋐":"\u22D0","⊆":"\u2286","≻":"\u227B","⪰":"\u2AB0","≽":"\u227D","≿":"\u227F","∋":"\u220B","∑":"\u2211","⋑":"\u22D1","⊃":"\u2283","⊇":"\u2287","⋑":"\u22D1","Þ":"\xDE","Þ":"\xDE","™":"\u2122","Ћ":"\u040B","Ц":"\u0426","	":" ","Τ":"\u03A4","Ť":"\u0164","Ţ":"\u0162","Т":"\u0422","𝔗":"\u{1D517}","∴":"\u2234","Θ":"\u0398","  ":"\u205F\u200A"," ":"\u2009","∼":"\u223C","≃":"\u2243","≅":"\u2245","≈":"\u2248","𝕋":"\u{1D54B}","⃛":"\u20DB","𝒯":"\u{1D4AF}","Ŧ":"\u0166","Ú":"\xDA","Ú":"\xDA","↟":"\u219F","⥉":"\u2949","Ў":"\u040E","Ŭ":"\u016C","Û":"\xDB","Û":"\xDB","У":"\u0423","Ű":"\u0170","𝔘":"\u{1D518}","Ù":"\xD9","Ù":"\xD9","Ū":"\u016A","_":"_","⏟":"\u23DF","⎵":"\u23B5","⏝":"\u23DD","⋃":"\u22C3","⊎":"\u228E","Ų":"\u0172","𝕌":"\u{1D54C}","↑":"\u2191","⤒":"\u2912","⇅":"\u21C5","↕":"\u2195","⥮":"\u296E","⊥":"\u22A5","↥":"\u21A5","⇑":"\u21D1","⇕":"\u21D5","↖":"\u2196","↗":"\u2197","ϒ":"\u03D2","Υ":"\u03A5","Ů":"\u016E","𝒰":"\u{1D4B0}","Ũ":"\u0168","Ü":"\xDC","Ü":"\xDC","⊫":"\u22AB","⫫":"\u2AEB","В":"\u0412","⊩":"\u22A9","⫦":"\u2AE6","⋁":"\u22C1","‖":"\u2016","‖":"\u2016","∣":"\u2223","|":"|","❘":"\u2758","≀":"\u2240"," ":"\u200A","𝔙":"\u{1D519}","𝕍":"\u{1D54D}","𝒱":"\u{1D4B1}","⊪":"\u22AA","Ŵ":"\u0174","⋀":"\u22C0","𝔚":"\u{1D51A}","𝕎":"\u{1D54E}","𝒲":"\u{1D4B2}","𝔛":"\u{1D51B}","Ξ":"\u039E","𝕏":"\u{1D54F}","𝒳":"\u{1D4B3}","Я":"\u042F","Ї":"\u0407","Ю":"\u042E","Ý":"\xDD","Ý":"\xDD","Ŷ":"\u0176","Ы":"\u042B","𝔜":"\u{1D51C}","𝕐":"\u{1D550}","𝒴":"\u{1D4B4}","Ÿ":"\u0178","Ж":"\u0416","Ź":"\u0179","Ž":"\u017D","З":"\u0417","Ż":"\u017B","​":"\u200B","Ζ":"\u0396","ℨ":"\u2128","ℤ":"\u2124","𝒵":"\u{1D4B5}","á":"\xE1","á":"\xE1","ă":"\u0103","∾":"\u223E","∾̳":"\u223E\u0333","∿":"\u223F","â":"\xE2","â":"\xE2","´":"\xB4","´":"\xB4","а":"\u0430","æ":"\xE6","æ":"\xE6","⁡":"\u2061","𝔞":"\u{1D51E}","à":"\xE0","à":"\xE0","ℵ":"\u2135","ℵ":"\u2135","α":"\u03B1","ā":"\u0101","⨿":"\u2A3F","&":"&","&":"&","∧":"\u2227","⩕":"\u2A55","⩜":"\u2A5C","⩘":"\u2A58","⩚":"\u2A5A","∠":"\u2220","⦤":"\u29A4","∠":"\u2220","∡":"\u2221","⦨":"\u29A8","⦩":"\u29A9","⦪":"\u29AA","⦫":"\u29AB","⦬":"\u29AC","⦭":"\u29AD","⦮":"\u29AE","⦯":"\u29AF","∟":"\u221F","⊾":"\u22BE","⦝":"\u299D","∢":"\u2222","Å":"\xC5","⍼":"\u237C","ą":"\u0105","𝕒":"\u{1D552}","≈":"\u2248","⩰":"\u2A70","⩯":"\u2A6F","≊":"\u224A","≋":"\u224B","'":"'","≈":"\u2248","≊":"\u224A","å":"\xE5","å":"\xE5","𝒶":"\u{1D4B6}","*":"*","≈":"\u2248","≍":"\u224D","ã":"\xE3","ã":"\xE3","ä":"\xE4","ä":"\xE4","∳":"\u2233","⨑":"\u2A11","⫭":"\u2AED","≌":"\u224C","϶":"\u03F6","‵":"\u2035","∽":"\u223D","⋍":"\u22CD","⊽":"\u22BD","⌅":"\u2305","⌅":"\u2305","⎵":"\u23B5","⎶":"\u23B6","≌":"\u224C","б":"\u0431","„":"\u201E","∵":"\u2235","∵":"\u2235","⦰":"\u29B0","϶":"\u03F6","ℬ":"\u212C","β":"\u03B2","ℶ":"\u2136","≬":"\u226C","𝔟":"\u{1D51F}","⋂":"\u22C2","◯":"\u25EF","⋃":"\u22C3","⨀":"\u2A00","⨁":"\u2A01","⨂":"\u2A02","⨆":"\u2A06","★":"\u2605","▽":"\u25BD","△":"\u25B3","⨄":"\u2A04","⋁":"\u22C1","⋀":"\u22C0","⤍":"\u290D","⧫":"\u29EB","▪":"\u25AA","▴":"\u25B4","▾":"\u25BE","◂":"\u25C2","▸":"\u25B8","␣":"\u2423","▒":"\u2592","░":"\u2591","▓":"\u2593","█":"\u2588","=⃥":"=\u20E5","≡⃥":"\u2261\u20E5","⌐":"\u2310","𝕓":"\u{1D553}","⊥":"\u22A5","⊥":"\u22A5","⋈":"\u22C8","╗":"\u2557","╔":"\u2554","╖":"\u2556","╓":"\u2553","═":"\u2550","╦":"\u2566","╩":"\u2569","╤":"\u2564","╧":"\u2567","╝":"\u255D","╚":"\u255A","╜":"\u255C","╙":"\u2559","║":"\u2551","╬":"\u256C","╣":"\u2563","╠":"\u2560","╫":"\u256B","╢":"\u2562","╟":"\u255F","⧉":"\u29C9","╕":"\u2555","╒":"\u2552","┐":"\u2510","┌":"\u250C","─":"\u2500","╥":"\u2565","╨":"\u2568","┬":"\u252C","┴":"\u2534","⊟":"\u229F","⊞":"\u229E","⊠":"\u22A0","╛":"\u255B","╘":"\u2558","┘":"\u2518","└":"\u2514","│":"\u2502","╪":"\u256A","╡":"\u2561","╞":"\u255E","┼":"\u253C","┤":"\u2524","├":"\u251C","‵":"\u2035","˘":"\u02D8","¦":"\xA6","¦":"\xA6","𝒷":"\u{1D4B7}","⁏":"\u204F","∽":"\u223D","⋍":"\u22CD","\":"\\","⧅":"\u29C5","⟈":"\u27C8","•":"\u2022","•":"\u2022","≎":"\u224E","⪮":"\u2AAE","≏":"\u224F","≏":"\u224F","ć":"\u0107","∩":"\u2229","⩄":"\u2A44","⩉":"\u2A49","⩋":"\u2A4B","⩇":"\u2A47","⩀":"\u2A40","∩︀":"\u2229\uFE00","⁁":"\u2041","ˇ":"\u02C7","⩍":"\u2A4D","č":"\u010D","ç":"\xE7","ç":"\xE7","ĉ":"\u0109","⩌":"\u2A4C","⩐":"\u2A50","ċ":"\u010B","¸":"\xB8","¸":"\xB8","⦲":"\u29B2","¢":"\xA2","¢":"\xA2","·":"\xB7","𝔠":"\u{1D520}","ч":"\u0447","✓":"\u2713","✓":"\u2713","χ":"\u03C7","○":"\u25CB","⧃":"\u29C3","ˆ":"\u02C6","≗":"\u2257","↺":"\u21BA","↻":"\u21BB","®":"\xAE","Ⓢ":"\u24C8","⊛":"\u229B","⊚":"\u229A","⊝":"\u229D","≗":"\u2257","⨐":"\u2A10","⫯":"\u2AEF","⧂":"\u29C2","♣":"\u2663","♣":"\u2663",":":":","≔":"\u2254","≔":"\u2254",",":",","@":"@","∁":"\u2201","∘":"\u2218","∁":"\u2201","ℂ":"\u2102","≅":"\u2245","⩭":"\u2A6D","∮":"\u222E","𝕔":"\u{1D554}","∐":"\u2210","©":"\xA9","©":"\xA9","℗":"\u2117","↵":"\u21B5","✗":"\u2717","𝒸":"\u{1D4B8}","⫏":"\u2ACF","⫑":"\u2AD1","⫐":"\u2AD0","⫒":"\u2AD2","⋯":"\u22EF","⤸":"\u2938","⤵":"\u2935","⋞":"\u22DE","⋟":"\u22DF","↶":"\u21B6","⤽":"\u293D","∪":"\u222A","⩈":"\u2A48","⩆":"\u2A46","⩊":"\u2A4A","⊍":"\u228D","⩅":"\u2A45","∪︀":"\u222A\uFE00","↷":"\u21B7","⤼":"\u293C","⋞":"\u22DE","⋟":"\u22DF","⋎":"\u22CE","⋏":"\u22CF","¤":"\xA4","¤":"\xA4","↶":"\u21B6","↷":"\u21B7","⋎":"\u22CE","⋏":"\u22CF","∲":"\u2232","∱":"\u2231","⌭":"\u232D","⇓":"\u21D3","⥥":"\u2965","†":"\u2020","ℸ":"\u2138","↓":"\u2193","‐":"\u2010","⊣":"\u22A3","⤏":"\u290F","˝":"\u02DD","ď":"\u010F","д":"\u0434","ⅆ":"\u2146","‡":"\u2021","⇊":"\u21CA","⩷":"\u2A77","°":"\xB0","°":"\xB0","δ":"\u03B4","⦱":"\u29B1","⥿":"\u297F","𝔡":"\u{1D521}","⇃":"\u21C3","⇂":"\u21C2","⋄":"\u22C4","⋄":"\u22C4","♦":"\u2666","♦":"\u2666","¨":"\xA8","ϝ":"\u03DD","⋲":"\u22F2","÷":"\xF7","÷":"\xF7","÷":"\xF7","⋇":"\u22C7","⋇":"\u22C7","ђ":"\u0452","⌞":"\u231E","⌍":"\u230D","$":"$","𝕕":"\u{1D555}","˙":"\u02D9","≐":"\u2250","≑":"\u2251","∸":"\u2238","∔":"\u2214","⊡":"\u22A1","⌆":"\u2306","↓":"\u2193","⇊":"\u21CA","⇃":"\u21C3","⇂":"\u21C2","⤐":"\u2910","⌟":"\u231F","⌌":"\u230C","𝒹":"\u{1D4B9}","ѕ":"\u0455","⧶":"\u29F6","đ":"\u0111","⋱":"\u22F1","▿":"\u25BF","▾":"\u25BE","⇵":"\u21F5","⥯":"\u296F","⦦":"\u29A6","џ":"\u045F","⟿":"\u27FF","⩷":"\u2A77","≑":"\u2251","é":"\xE9","é":"\xE9","⩮":"\u2A6E","ě":"\u011B","≖":"\u2256","ê":"\xEA","ê":"\xEA","≕":"\u2255","э":"\u044D","ė":"\u0117","ⅇ":"\u2147","≒":"\u2252","𝔢":"\u{1D522}","⪚":"\u2A9A","è":"\xE8","è":"\xE8","⪖":"\u2A96","⪘":"\u2A98","⪙":"\u2A99","⏧":"\u23E7","ℓ":"\u2113","⪕":"\u2A95","⪗":"\u2A97","ē":"\u0113","∅":"\u2205","∅":"\u2205","∅":"\u2205"," ":"\u2004"," ":"\u2005"," ":"\u2003","ŋ":"\u014B"," ":"\u2002","ę":"\u0119","𝕖":"\u{1D556}","⋕":"\u22D5","⧣":"\u29E3","⩱":"\u2A71","ε":"\u03B5","ε":"\u03B5","ϵ":"\u03F5","≖":"\u2256","≕":"\u2255","≂":"\u2242","⪖":"\u2A96","⪕":"\u2A95","=":"=","≟":"\u225F","≡":"\u2261","⩸":"\u2A78","⧥":"\u29E5","≓":"\u2253","⥱":"\u2971","ℯ":"\u212F","≐":"\u2250","≂":"\u2242","η":"\u03B7","ð":"\xF0","ð":"\xF0","ë":"\xEB","ë":"\xEB","€":"\u20AC","!":"!","∃":"\u2203","ℰ":"\u2130","ⅇ":"\u2147","≒":"\u2252","ф":"\u0444","♀":"\u2640","ffi":"\uFB03","ff":"\uFB00","ffl":"\uFB04","𝔣":"\u{1D523}","fi":"\uFB01","fj":"fj","♭":"\u266D","fl":"\uFB02","▱":"\u25B1","ƒ":"\u0192","𝕗":"\u{1D557}","∀":"\u2200","⋔":"\u22D4","⫙":"\u2AD9","⨍":"\u2A0D","½":"\xBD","½":"\xBD","⅓":"\u2153","¼":"\xBC","¼":"\xBC","⅕":"\u2155","⅙":"\u2159","⅛":"\u215B","⅔":"\u2154","⅖":"\u2156","¾":"\xBE","¾":"\xBE","⅗":"\u2157","⅜":"\u215C","⅘":"\u2158","⅚":"\u215A","⅝":"\u215D","⅞":"\u215E","⁄":"\u2044","⌢":"\u2322","𝒻":"\u{1D4BB}","≧":"\u2267","⪌":"\u2A8C","ǵ":"\u01F5","γ":"\u03B3","ϝ":"\u03DD","⪆":"\u2A86","ğ":"\u011F","ĝ":"\u011D","г":"\u0433","ġ":"\u0121","≥":"\u2265","⋛":"\u22DB","≥":"\u2265","≧":"\u2267","⩾":"\u2A7E","⩾":"\u2A7E","⪩":"\u2AA9","⪀":"\u2A80","⪂":"\u2A82","⪄":"\u2A84","⋛︀":"\u22DB\uFE00","⪔":"\u2A94","𝔤":"\u{1D524}","≫":"\u226B","⋙":"\u22D9","ℷ":"\u2137","ѓ":"\u0453","≷":"\u2277","⪒":"\u2A92","⪥":"\u2AA5","⪤":"\u2AA4","≩":"\u2269","⪊":"\u2A8A","⪊":"\u2A8A","⪈":"\u2A88","⪈":"\u2A88","≩":"\u2269","⋧":"\u22E7","𝕘":"\u{1D558}","`":"`","ℊ":"\u210A","≳":"\u2273","⪎":"\u2A8E","⪐":"\u2A90",">":">",">":">","⪧":"\u2AA7","⩺":"\u2A7A","⋗":"\u22D7","⦕":"\u2995","⩼":"\u2A7C","⪆":"\u2A86","⥸":"\u2978","⋗":"\u22D7","⋛":"\u22DB","⪌":"\u2A8C","≷":"\u2277","≳":"\u2273","≩︀":"\u2269\uFE00","≩︀":"\u2269\uFE00","⇔":"\u21D4"," ":"\u200A","½":"\xBD","ℋ":"\u210B","ъ":"\u044A","↔":"\u2194","⥈":"\u2948","↭":"\u21AD","ℏ":"\u210F","ĥ":"\u0125","♥":"\u2665","♥":"\u2665","…":"\u2026","⊹":"\u22B9","𝔥":"\u{1D525}","⤥":"\u2925","⤦":"\u2926","⇿":"\u21FF","∻":"\u223B","↩":"\u21A9","↪":"\u21AA","𝕙":"\u{1D559}","―":"\u2015","𝒽":"\u{1D4BD}","ℏ":"\u210F","ħ":"\u0127","⁃":"\u2043","‐":"\u2010","í":"\xED","í":"\xED","⁣":"\u2063","î":"\xEE","î":"\xEE","и":"\u0438","е":"\u0435","¡":"\xA1","¡":"\xA1","⇔":"\u21D4","𝔦":"\u{1D526}","ì":"\xEC","ì":"\xEC","ⅈ":"\u2148","⨌":"\u2A0C","∭":"\u222D","⧜":"\u29DC","℩":"\u2129","ij":"\u0133","ī":"\u012B","ℑ":"\u2111","ℐ":"\u2110","ℑ":"\u2111","ı":"\u0131","⊷":"\u22B7","Ƶ":"\u01B5","∈":"\u2208","℅":"\u2105","∞":"\u221E","⧝":"\u29DD","ı":"\u0131","∫":"\u222B","⊺":"\u22BA","ℤ":"\u2124","⊺":"\u22BA","⨗":"\u2A17","⨼":"\u2A3C","ё":"\u0451","į":"\u012F","𝕚":"\u{1D55A}","ι":"\u03B9","⨼":"\u2A3C","¿":"\xBF","¿":"\xBF","𝒾":"\u{1D4BE}","∈":"\u2208","⋹":"\u22F9","⋵":"\u22F5","⋴":"\u22F4","⋳":"\u22F3","∈":"\u2208","⁢":"\u2062","ĩ":"\u0129","і":"\u0456","ï":"\xEF","ï":"\xEF","ĵ":"\u0135","й":"\u0439","𝔧":"\u{1D527}","ȷ":"\u0237","𝕛":"\u{1D55B}","𝒿":"\u{1D4BF}","ј":"\u0458","є":"\u0454","κ":"\u03BA","ϰ":"\u03F0","ķ":"\u0137","к":"\u043A","𝔨":"\u{1D528}","ĸ":"\u0138","х":"\u0445","ќ":"\u045C","𝕜":"\u{1D55C}","𝓀":"\u{1D4C0}","⇚":"\u21DA","⇐":"\u21D0","⤛":"\u291B","⤎":"\u290E","≦":"\u2266","⪋":"\u2A8B","⥢":"\u2962","ĺ":"\u013A","⦴":"\u29B4","ℒ":"\u2112","λ":"\u03BB","⟨":"\u27E8","⦑":"\u2991","⟨":"\u27E8","⪅":"\u2A85","«":"\xAB","«":"\xAB","←":"\u2190","⇤":"\u21E4","⤟":"\u291F","⤝":"\u291D","↩":"\u21A9","↫":"\u21AB","⤹":"\u2939","⥳":"\u2973","↢":"\u21A2","⪫":"\u2AAB","⤙":"\u2919","⪭":"\u2AAD","⪭︀":"\u2AAD\uFE00","⤌":"\u290C","❲":"\u2772","{":"{","[":"[","⦋":"\u298B","⦏":"\u298F","⦍":"\u298D","ľ":"\u013E","ļ":"\u013C","⌈":"\u2308","{":"{","л":"\u043B","⤶":"\u2936","“":"\u201C","„":"\u201E","⥧":"\u2967","⥋":"\u294B","↲":"\u21B2","≤":"\u2264","←":"\u2190","↢":"\u21A2","↽":"\u21BD","↼":"\u21BC","⇇":"\u21C7","↔":"\u2194","⇆":"\u21C6","⇋":"\u21CB","↭":"\u21AD","⋋":"\u22CB","⋚":"\u22DA","≤":"\u2264","≦":"\u2266","⩽":"\u2A7D","⩽":"\u2A7D","⪨":"\u2AA8","⩿":"\u2A7F","⪁":"\u2A81","⪃":"\u2A83","⋚︀":"\u22DA\uFE00","⪓":"\u2A93","⪅":"\u2A85","⋖":"\u22D6","⋚":"\u22DA","⪋":"\u2A8B","≶":"\u2276","≲":"\u2272","⥼":"\u297C","⌊":"\u230A","𝔩":"\u{1D529}","≶":"\u2276","⪑":"\u2A91","↽":"\u21BD","↼":"\u21BC","⥪":"\u296A","▄":"\u2584","љ":"\u0459","≪":"\u226A","⇇":"\u21C7","⌞":"\u231E","⥫":"\u296B","◺":"\u25FA","ŀ":"\u0140","⎰":"\u23B0","⎰":"\u23B0","≨":"\u2268","⪉":"\u2A89","⪉":"\u2A89","⪇":"\u2A87","⪇":"\u2A87","≨":"\u2268","⋦":"\u22E6","⟬":"\u27EC","⇽":"\u21FD","⟦":"\u27E6","⟵":"\u27F5","⟷":"\u27F7","⟼":"\u27FC","⟶":"\u27F6","↫":"\u21AB","↬":"\u21AC","⦅":"\u2985","𝕝":"\u{1D55D}","⨭":"\u2A2D","⨴":"\u2A34","∗":"\u2217","_":"_","◊":"\u25CA","◊":"\u25CA","⧫":"\u29EB","(":"(","⦓":"\u2993","⇆":"\u21C6","⌟":"\u231F","⇋":"\u21CB","⥭":"\u296D","‎":"\u200E","⊿":"\u22BF","‹":"\u2039","𝓁":"\u{1D4C1}","↰":"\u21B0","≲":"\u2272","⪍":"\u2A8D","⪏":"\u2A8F","[":"[","‘":"\u2018","‚":"\u201A","ł":"\u0142","<":"<","<":"<","⪦":"\u2AA6","⩹":"\u2A79","⋖":"\u22D6","⋋":"\u22CB","⋉":"\u22C9","⥶":"\u2976","⩻":"\u2A7B","⦖":"\u2996","◃":"\u25C3","⊴":"\u22B4","◂":"\u25C2","⥊":"\u294A","⥦":"\u2966","≨︀":"\u2268\uFE00","≨︀":"\u2268\uFE00","∺":"\u223A","¯":"\xAF","¯":"\xAF","♂":"\u2642","✠":"\u2720","✠":"\u2720","↦":"\u21A6","↦":"\u21A6","↧":"\u21A7","↤":"\u21A4","↥":"\u21A5","▮":"\u25AE","⨩":"\u2A29","м":"\u043C","—":"\u2014","∡":"\u2221","𝔪":"\u{1D52A}","℧":"\u2127","µ":"\xB5","µ":"\xB5","∣":"\u2223","*":"*","⫰":"\u2AF0","·":"\xB7","·":"\xB7","−":"\u2212","⊟":"\u229F","∸":"\u2238","⨪":"\u2A2A","⫛":"\u2ADB","…":"\u2026","∓":"\u2213","⊧":"\u22A7","𝕞":"\u{1D55E}","∓":"\u2213","𝓂":"\u{1D4C2}","∾":"\u223E","μ":"\u03BC","⊸":"\u22B8","⊸":"\u22B8","⋙̸":"\u22D9\u0338","≫⃒":"\u226B\u20D2","≫̸":"\u226B\u0338","⇍":"\u21CD","⇎":"\u21CE","⋘̸":"\u22D8\u0338","≪⃒":"\u226A\u20D2","≪̸":"\u226A\u0338","⇏":"\u21CF","⊯":"\u22AF","⊮":"\u22AE","∇":"\u2207","ń":"\u0144","∠⃒":"\u2220\u20D2","≉":"\u2249","⩰̸":"\u2A70\u0338","≋̸":"\u224B\u0338","ʼn":"\u0149","≉":"\u2249","♮":"\u266E","♮":"\u266E","ℕ":"\u2115"," ":"\xA0"," ":"\xA0","≎̸":"\u224E\u0338","≏̸":"\u224F\u0338","⩃":"\u2A43","ň":"\u0148","ņ":"\u0146","≇":"\u2247","⩭̸":"\u2A6D\u0338","⩂":"\u2A42","н":"\u043D","–":"\u2013","≠":"\u2260","⇗":"\u21D7","⤤":"\u2924","↗":"\u2197","↗":"\u2197","≐̸":"\u2250\u0338","≢":"\u2262","⤨":"\u2928","≂̸":"\u2242\u0338","∄":"\u2204","∄":"\u2204","𝔫":"\u{1D52B}","≧̸":"\u2267\u0338","≱":"\u2271","≱":"\u2271","≧̸":"\u2267\u0338","⩾̸":"\u2A7E\u0338","⩾̸":"\u2A7E\u0338","≵":"\u2275","≯":"\u226F","≯":"\u226F","⇎":"\u21CE","↮":"\u21AE","⫲":"\u2AF2","∋":"\u220B","⋼":"\u22FC","⋺":"\u22FA","∋":"\u220B","њ":"\u045A","⇍":"\u21CD","≦̸":"\u2266\u0338","↚":"\u219A","‥":"\u2025","≰":"\u2270","↚":"\u219A","↮":"\u21AE","≰":"\u2270","≦̸":"\u2266\u0338","⩽̸":"\u2A7D\u0338","⩽̸":"\u2A7D\u0338","≮":"\u226E","≴":"\u2274","≮":"\u226E","⋪":"\u22EA","⋬":"\u22EC","∤":"\u2224","𝕟":"\u{1D55F}","¬":"\xAC","¬":"\xAC","∉":"\u2209","⋹̸":"\u22F9\u0338","⋵̸":"\u22F5\u0338","∉":"\u2209","⋷":"\u22F7","⋶":"\u22F6","∌":"\u220C","∌":"\u220C","⋾":"\u22FE","⋽":"\u22FD","∦":"\u2226","∦":"\u2226","⫽⃥":"\u2AFD\u20E5","∂̸":"\u2202\u0338","⨔":"\u2A14","⊀":"\u2280","⋠":"\u22E0","⪯̸":"\u2AAF\u0338","⊀":"\u2280","⪯̸":"\u2AAF\u0338","⇏":"\u21CF","↛":"\u219B","⤳̸":"\u2933\u0338","↝̸":"\u219D\u0338","↛":"\u219B","⋫":"\u22EB","⋭":"\u22ED","⊁":"\u2281","⋡":"\u22E1","⪰̸":"\u2AB0\u0338","𝓃":"\u{1D4C3}","∤":"\u2224","∦":"\u2226","≁":"\u2241","≄":"\u2244","≄":"\u2244","∤":"\u2224","∦":"\u2226","⋢":"\u22E2","⋣":"\u22E3","⊄":"\u2284","⫅̸":"\u2AC5\u0338","⊈":"\u2288","⊂⃒":"\u2282\u20D2","⊈":"\u2288","⫅̸":"\u2AC5\u0338","⊁":"\u2281","⪰̸":"\u2AB0\u0338","⊅":"\u2285","⫆̸":"\u2AC6\u0338","⊉":"\u2289","⊃⃒":"\u2283\u20D2","⊉":"\u2289","⫆̸":"\u2AC6\u0338","≹":"\u2279","ñ":"\xF1","ñ":"\xF1","≸":"\u2278","⋪":"\u22EA","⋬":"\u22EC","⋫":"\u22EB","⋭":"\u22ED","ν":"\u03BD","#":"#","№":"\u2116"," ":"\u2007","⊭":"\u22AD","⤄":"\u2904","≍⃒":"\u224D\u20D2","⊬":"\u22AC","≥⃒":"\u2265\u20D2",">⃒":">\u20D2","⧞":"\u29DE","⤂":"\u2902","≤⃒":"\u2264\u20D2","<⃒":"<\u20D2","⊴⃒":"\u22B4\u20D2","⤃":"\u2903","⊵⃒":"\u22B5\u20D2","∼⃒":"\u223C\u20D2","⇖":"\u21D6","⤣":"\u2923","↖":"\u2196","↖":"\u2196","⤧":"\u2927","Ⓢ":"\u24C8","ó":"\xF3","ó":"\xF3","⊛":"\u229B","⊚":"\u229A","ô":"\xF4","ô":"\xF4","о":"\u043E","⊝":"\u229D","ő":"\u0151","⨸":"\u2A38","⊙":"\u2299","⦼":"\u29BC","œ":"\u0153","⦿":"\u29BF","𝔬":"\u{1D52C}","˛":"\u02DB","ò":"\xF2","ò":"\xF2","⧁":"\u29C1","⦵":"\u29B5","Ω":"\u03A9","∮":"\u222E","↺":"\u21BA","⦾":"\u29BE","⦻":"\u29BB","‾":"\u203E","⧀":"\u29C0","ō":"\u014D","ω":"\u03C9","ο":"\u03BF","⦶":"\u29B6","⊖":"\u2296","𝕠":"\u{1D560}","⦷":"\u29B7","⦹":"\u29B9","⊕":"\u2295","∨":"\u2228","↻":"\u21BB","⩝":"\u2A5D","ℴ":"\u2134","ℴ":"\u2134","ª":"\xAA","ª":"\xAA","º":"\xBA","º":"\xBA","⊶":"\u22B6","⩖":"\u2A56","⩗":"\u2A57","⩛":"\u2A5B","ℴ":"\u2134","ø":"\xF8","ø":"\xF8","⊘":"\u2298","õ":"\xF5","õ":"\xF5","⊗":"\u2297","⨶":"\u2A36","ö":"\xF6","ö":"\xF6","⌽":"\u233D","∥":"\u2225","¶":"\xB6","¶":"\xB6","∥":"\u2225","⫳":"\u2AF3","⫽":"\u2AFD","∂":"\u2202","п":"\u043F","%":"%",".":".","‰":"\u2030","⊥":"\u22A5","‱":"\u2031","𝔭":"\u{1D52D}","φ":"\u03C6","ϕ":"\u03D5","ℳ":"\u2133","☎":"\u260E","π":"\u03C0","⋔":"\u22D4","ϖ":"\u03D6","ℏ":"\u210F","ℎ":"\u210E","ℏ":"\u210F","+":"+","⨣":"\u2A23","⊞":"\u229E","⨢":"\u2A22","∔":"\u2214","⨥":"\u2A25","⩲":"\u2A72","±":"\xB1","±":"\xB1","⨦":"\u2A26","⨧":"\u2A27","±":"\xB1","⨕":"\u2A15","𝕡":"\u{1D561}","£":"\xA3","£":"\xA3","≺":"\u227A","⪳":"\u2AB3","⪷":"\u2AB7","≼":"\u227C","⪯":"\u2AAF","≺":"\u227A","⪷":"\u2AB7","≼":"\u227C","⪯":"\u2AAF","⪹":"\u2AB9","⪵":"\u2AB5","⋨":"\u22E8","≾":"\u227E","′":"\u2032","ℙ":"\u2119","⪵":"\u2AB5","⪹":"\u2AB9","⋨":"\u22E8","∏":"\u220F","⌮":"\u232E","⌒":"\u2312","⌓":"\u2313","∝":"\u221D","∝":"\u221D","≾":"\u227E","⊰":"\u22B0","𝓅":"\u{1D4C5}","ψ":"\u03C8"," ":"\u2008","𝔮":"\u{1D52E}","⨌":"\u2A0C","𝕢":"\u{1D562}","⁗":"\u2057","𝓆":"\u{1D4C6}","ℍ":"\u210D","⨖":"\u2A16","?":"?","≟":"\u225F",""":'"',""":'"',"⇛":"\u21DB","⇒":"\u21D2","⤜":"\u291C","⤏":"\u290F","⥤":"\u2964","∽̱":"\u223D\u0331","ŕ":"\u0155","√":"\u221A","⦳":"\u29B3","⟩":"\u27E9","⦒":"\u2992","⦥":"\u29A5","⟩":"\u27E9","»":"\xBB","»":"\xBB","→":"\u2192","⥵":"\u2975","⇥":"\u21E5","⤠":"\u2920","⤳":"\u2933","⤞":"\u291E","↪":"\u21AA","↬":"\u21AC","⥅":"\u2945","⥴":"\u2974","↣":"\u21A3","↝":"\u219D","⤚":"\u291A","∶":"\u2236","ℚ":"\u211A","⤍":"\u290D","❳":"\u2773","}":"}","]":"]","⦌":"\u298C","⦎":"\u298E","⦐":"\u2990","ř":"\u0159","ŗ":"\u0157","⌉":"\u2309","}":"}","р":"\u0440","⤷":"\u2937","⥩":"\u2969","”":"\u201D","”":"\u201D","↳":"\u21B3","ℜ":"\u211C","ℛ":"\u211B","ℜ":"\u211C","ℝ":"\u211D","▭":"\u25AD","®":"\xAE","®":"\xAE","⥽":"\u297D","⌋":"\u230B","𝔯":"\u{1D52F}","⇁":"\u21C1","⇀":"\u21C0","⥬":"\u296C","ρ":"\u03C1","ϱ":"\u03F1","→":"\u2192","↣":"\u21A3","⇁":"\u21C1","⇀":"\u21C0","⇄":"\u21C4","⇌":"\u21CC","⇉":"\u21C9","↝":"\u219D","⋌":"\u22CC","˚":"\u02DA","≓":"\u2253","⇄":"\u21C4","⇌":"\u21CC","‏":"\u200F","⎱":"\u23B1","⎱":"\u23B1","⫮":"\u2AEE","⟭":"\u27ED","⇾":"\u21FE","⟧":"\u27E7","⦆":"\u2986","𝕣":"\u{1D563}","⨮":"\u2A2E","⨵":"\u2A35",")":")","⦔":"\u2994","⨒":"\u2A12","⇉":"\u21C9","›":"\u203A","𝓇":"\u{1D4C7}","↱":"\u21B1","]":"]","’":"\u2019","’":"\u2019","⋌":"\u22CC","⋊":"\u22CA","▹":"\u25B9","⊵":"\u22B5","▸":"\u25B8","⧎":"\u29CE","⥨":"\u2968","℞":"\u211E","ś":"\u015B","‚":"\u201A","≻":"\u227B","⪴":"\u2AB4","⪸":"\u2AB8","š":"\u0161","≽":"\u227D","⪰":"\u2AB0","ş":"\u015F","ŝ":"\u015D","⪶":"\u2AB6","⪺":"\u2ABA","⋩":"\u22E9","⨓":"\u2A13","≿":"\u227F","с":"\u0441","⋅":"\u22C5","⊡":"\u22A1","⩦":"\u2A66","⇘":"\u21D8","⤥":"\u2925","↘":"\u2198","↘":"\u2198","§":"\xA7","§":"\xA7",";":";","⤩":"\u2929","∖":"\u2216","∖":"\u2216","✶":"\u2736","𝔰":"\u{1D530}","⌢":"\u2322","♯":"\u266F","щ":"\u0449","ш":"\u0448","∣":"\u2223","∥":"\u2225","­":"\xAD","­":"\xAD","σ":"\u03C3","ς":"\u03C2","ς":"\u03C2","∼":"\u223C","⩪":"\u2A6A","≃":"\u2243","≃":"\u2243","⪞":"\u2A9E","⪠":"\u2AA0","⪝":"\u2A9D","⪟":"\u2A9F","≆":"\u2246","⨤":"\u2A24","⥲":"\u2972","←":"\u2190","∖":"\u2216","⨳":"\u2A33","⧤":"\u29E4","∣":"\u2223","⌣":"\u2323","⪪":"\u2AAA","⪬":"\u2AAC","⪬︀":"\u2AAC\uFE00","ь":"\u044C","/":"/","⧄":"\u29C4","⌿":"\u233F","𝕤":"\u{1D564}","♠":"\u2660","♠":"\u2660","∥":"\u2225","⊓":"\u2293","⊓︀":"\u2293\uFE00","⊔":"\u2294","⊔︀":"\u2294\uFE00","⊏":"\u228F","⊑":"\u2291","⊏":"\u228F","⊑":"\u2291","⊐":"\u2290","⊒":"\u2292","⊐":"\u2290","⊒":"\u2292","□":"\u25A1","□":"\u25A1","▪":"\u25AA","▪":"\u25AA","→":"\u2192","𝓈":"\u{1D4C8}","∖":"\u2216","⌣":"\u2323","⋆":"\u22C6","☆":"\u2606","★":"\u2605","ϵ":"\u03F5","ϕ":"\u03D5","¯":"\xAF","⊂":"\u2282","⫅":"\u2AC5","⪽":"\u2ABD","⊆":"\u2286","⫃":"\u2AC3","⫁":"\u2AC1","⫋":"\u2ACB","⊊":"\u228A","⪿":"\u2ABF","⥹":"\u2979","⊂":"\u2282","⊆":"\u2286","⫅":"\u2AC5","⊊":"\u228A","⫋":"\u2ACB","⫇":"\u2AC7","⫕":"\u2AD5","⫓":"\u2AD3","≻":"\u227B","⪸":"\u2AB8","≽":"\u227D","⪰":"\u2AB0","⪺":"\u2ABA","⪶":"\u2AB6","⋩":"\u22E9","≿":"\u227F","∑":"\u2211","♪":"\u266A","¹":"\xB9","¹":"\xB9","²":"\xB2","²":"\xB2","³":"\xB3","³":"\xB3","⊃":"\u2283","⫆":"\u2AC6","⪾":"\u2ABE","⫘":"\u2AD8","⊇":"\u2287","⫄":"\u2AC4","⟉":"\u27C9","⫗":"\u2AD7","⥻":"\u297B","⫂":"\u2AC2","⫌":"\u2ACC","⊋":"\u228B","⫀":"\u2AC0","⊃":"\u2283","⊇":"\u2287","⫆":"\u2AC6","⊋":"\u228B","⫌":"\u2ACC","⫈":"\u2AC8","⫔":"\u2AD4","⫖":"\u2AD6","⇙":"\u21D9","⤦":"\u2926","↙":"\u2199","↙":"\u2199","⤪":"\u292A","ß":"\xDF","ß":"\xDF","⌖":"\u2316","τ":"\u03C4","⎴":"\u23B4","ť":"\u0165","ţ":"\u0163","т":"\u0442","⃛":"\u20DB","⌕":"\u2315","𝔱":"\u{1D531}","∴":"\u2234","∴":"\u2234","θ":"\u03B8","ϑ":"\u03D1","ϑ":"\u03D1","≈":"\u2248","∼":"\u223C"," ":"\u2009","≈":"\u2248","∼":"\u223C","þ":"\xFE","þ":"\xFE","˜":"\u02DC","×":"\xD7","×":"\xD7","⊠":"\u22A0","⨱":"\u2A31","⨰":"\u2A30","∭":"\u222D","⤨":"\u2928","⊤":"\u22A4","⌶":"\u2336","⫱":"\u2AF1","𝕥":"\u{1D565}","⫚":"\u2ADA","⤩":"\u2929","‴":"\u2034","™":"\u2122","▵":"\u25B5","▿":"\u25BF","◃":"\u25C3","⊴":"\u22B4","≜":"\u225C","▹":"\u25B9","⊵":"\u22B5","◬":"\u25EC","≜":"\u225C","⨺":"\u2A3A","⨹":"\u2A39","⧍":"\u29CD","⨻":"\u2A3B","⏢":"\u23E2","𝓉":"\u{1D4C9}","ц":"\u0446","ћ":"\u045B","ŧ":"\u0167","≬":"\u226C","↞":"\u219E","↠":"\u21A0","⇑":"\u21D1","⥣":"\u2963","ú":"\xFA","ú":"\xFA","↑":"\u2191","ў":"\u045E","ŭ":"\u016D","û":"\xFB","û":"\xFB","у":"\u0443","⇅":"\u21C5","ű":"\u0171","⥮":"\u296E","⥾":"\u297E","𝔲":"\u{1D532}","ù":"\xF9","ù":"\xF9","↿":"\u21BF","↾":"\u21BE","▀":"\u2580","⌜":"\u231C","⌜":"\u231C","⌏":"\u230F","◸":"\u25F8","ū":"\u016B","¨":"\xA8","¨":"\xA8","ų":"\u0173","𝕦":"\u{1D566}","↑":"\u2191","↕":"\u2195","↿":"\u21BF","↾":"\u21BE","⊎":"\u228E","υ":"\u03C5","ϒ":"\u03D2","υ":"\u03C5","⇈":"\u21C8","⌝":"\u231D","⌝":"\u231D","⌎":"\u230E","ů":"\u016F","◹":"\u25F9","𝓊":"\u{1D4CA}","⋰":"\u22F0","ũ":"\u0169","▵":"\u25B5","▴":"\u25B4","⇈":"\u21C8","ü":"\xFC","ü":"\xFC","⦧":"\u29A7","⇕":"\u21D5","⫨":"\u2AE8","⫩":"\u2AE9","⊨":"\u22A8","⦜":"\u299C","ϵ":"\u03F5","ϰ":"\u03F0","∅":"\u2205","ϕ":"\u03D5","ϖ":"\u03D6","∝":"\u221D","↕":"\u2195","ϱ":"\u03F1","ς":"\u03C2","⊊︀":"\u228A\uFE00","⫋︀":"\u2ACB\uFE00","⊋︀":"\u228B\uFE00","⫌︀":"\u2ACC\uFE00","ϑ":"\u03D1","⊲":"\u22B2","⊳":"\u22B3","в":"\u0432","⊢":"\u22A2","∨":"\u2228","⊻":"\u22BB","≚":"\u225A","⋮":"\u22EE","|":"|","|":"|","𝔳":"\u{1D533}","⊲":"\u22B2","⊂⃒":"\u2282\u20D2","⊃⃒":"\u2283\u20D2","𝕧":"\u{1D567}","∝":"\u221D","⊳":"\u22B3","𝓋":"\u{1D4CB}","⫋︀":"\u2ACB\uFE00","⊊︀":"\u228A\uFE00","⫌︀":"\u2ACC\uFE00","⊋︀":"\u228B\uFE00","⦚":"\u299A","ŵ":"\u0175","⩟":"\u2A5F","∧":"\u2227","≙":"\u2259","℘":"\u2118","𝔴":"\u{1D534}","𝕨":"\u{1D568}","℘":"\u2118","≀":"\u2240","≀":"\u2240","𝓌":"\u{1D4CC}","⋂":"\u22C2","◯":"\u25EF","⋃":"\u22C3","▽":"\u25BD","𝔵":"\u{1D535}","⟺":"\u27FA","⟷":"\u27F7","ξ":"\u03BE","⟸":"\u27F8","⟵":"\u27F5","⟼":"\u27FC","⋻":"\u22FB","⨀":"\u2A00","𝕩":"\u{1D569}","⨁":"\u2A01","⨂":"\u2A02","⟹":"\u27F9","⟶":"\u27F6","𝓍":"\u{1D4CD}","⨆":"\u2A06","⨄":"\u2A04","△":"\u25B3","⋁":"\u22C1","⋀":"\u22C0","ý":"\xFD","ý":"\xFD","я":"\u044F","ŷ":"\u0177","ы":"\u044B","¥":"\xA5","¥":"\xA5","𝔶":"\u{1D536}","ї":"\u0457","𝕪":"\u{1D56A}","𝓎":"\u{1D4CE}","ю":"\u044E","ÿ":"\xFF","ÿ":"\xFF","ź":"\u017A","ž":"\u017E","з":"\u0437","ż":"\u017C","ℨ":"\u2128","ζ":"\u03B6","𝔷":"\u{1D537}","ж":"\u0436","⇝":"\u21DD","𝕫":"\u{1D56B}","𝓏":"\u{1D4CF}","‍":"\u200D","‌":"\u200C"},characters:{\u00C6:"Æ","&":"&",\u00C1:"Á",\u0102:"Ă",\u00C2:"Â",\u0410:"А","\u{1D504}":"𝔄",\u00C0:"À",\u0391:"Α",\u0100:"Ā","\u2A53":"⩓",\u0104:"Ą","\u{1D538}":"𝔸","\u2061":"⁡",\u00C5:"Å","\u{1D49C}":"𝒜","\u2254":"≔",\u00C3:"Ã",\u00C4:"Ä","\u2216":"∖","\u2AE7":"⫧","\u2306":"⌆",\u0411:"Б","\u2235":"∵",\u212C:"ℬ",\u0392:"Β","\u{1D505}":"𝔅","\u{1D539}":"𝔹","\u02D8":"˘","\u224E":"≎",\u0427:"Ч","\xA9":"©",\u0106:"Ć","\u22D2":"⋒","\u2145":"ⅅ",\u212D:"ℭ",\u010C:"Č",\u00C7:"Ç",\u0108:"Ĉ","\u2230":"∰",\u010A:"Ċ","\xB8":"¸","\xB7":"·",\u03A7:"Χ","\u2299":"⊙","\u2296":"⊖","\u2295":"⊕","\u2297":"⊗","\u2232":"∲","\u201D":"”","\u2019":"’","\u2237":"∷","\u2A74":"⩴","\u2261":"≡","\u222F":"∯","\u222E":"∮",\u2102:"ℂ","\u2210":"∐","\u2233":"∳","\u2A2F":"⨯","\u{1D49E}":"𝒞","\u22D3":"⋓","\u224D":"≍","\u2911":"⤑",\u0402:"Ђ",\u0405:"Ѕ",\u040F:"Џ","\u2021":"‡","\u21A1":"↡","\u2AE4":"⫤",\u010E:"Ď",\u0414:"Д","\u2207":"∇",\u0394:"Δ","\u{1D507}":"𝔇","\xB4":"´","\u02D9":"˙","\u02DD":"˝","`":"`","\u02DC":"˜","\u22C4":"⋄","\u2146":"ⅆ","\u{1D53B}":"𝔻","\xA8":"¨","\u20DC":"⃜","\u2250":"≐","\u21D3":"⇓","\u21D0":"⇐","\u21D4":"⇔","\u27F8":"⟸","\u27FA":"⟺","\u27F9":"⟹","\u21D2":"⇒","\u22A8":"⊨","\u21D1":"⇑","\u21D5":"⇕","\u2225":"∥","\u2193":"↓","\u2913":"⤓","\u21F5":"⇵","\u0311":"̑","\u2950":"⥐","\u295E":"⥞","\u21BD":"↽","\u2956":"⥖","\u295F":"⥟","\u21C1":"⇁","\u2957":"⥗","\u22A4":"⊤","\u21A7":"↧","\u{1D49F}":"𝒟",\u0110:"Đ",\u014A:"Ŋ",\u00D0:"Ð",\u00C9:"É",\u011A:"Ě",\u00CA:"Ê",\u042D:"Э",\u0116:"Ė","\u{1D508}":"𝔈",\u00C8:"È","\u2208":"∈",\u0112:"Ē","\u25FB":"◻","\u25AB":"▫",\u0118:"Ę","\u{1D53C}":"𝔼",\u0395:"Ε","\u2A75":"⩵","\u2242":"≂","\u21CC":"⇌",\u2130:"ℰ","\u2A73":"⩳",\u0397:"Η",\u00CB:"Ë","\u2203":"∃","\u2147":"ⅇ",\u0424:"Ф","\u{1D509}":"𝔉","\u25FC":"◼","\u25AA":"▪","\u{1D53D}":"𝔽","\u2200":"∀",\u2131:"ℱ",\u0403:"Ѓ",">":">",\u0393:"Γ",\u03DC:"Ϝ",\u011E:"Ğ",\u0122:"Ģ",\u011C:"Ĝ",\u0413:"Г",\u0120:"Ġ","\u{1D50A}":"𝔊","\u22D9":"⋙","\u{1D53E}":"𝔾","\u2265":"≥","\u22DB":"⋛","\u2267":"≧","\u2AA2":"⪢","\u2277":"≷","\u2A7E":"⩾","\u2273":"≳","\u{1D4A2}":"𝒢","\u226B":"≫",\u042A:"Ъ","\u02C7":"ˇ","^":"^",\u0124:"Ĥ",\u210C:"ℌ",\u210B:"ℋ",\u210D:"ℍ","\u2500":"─",\u0126:"Ħ","\u224F":"≏",\u0415:"Е",\u0132:"IJ",\u0401:"Ё",\u00CD:"Í",\u00CE:"Î",\u0418:"И",\u0130:"İ",\u2111:"ℑ",\u00CC:"Ì",\u012A:"Ī","\u2148":"ⅈ","\u222C":"∬","\u222B":"∫","\u22C2":"⋂","\u2063":"⁣","\u2062":"⁢",\u012E:"Į","\u{1D540}":"𝕀",\u0399:"Ι",\u2110:"ℐ",\u0128:"Ĩ",\u0406:"І",\u00CF:"Ï",\u0134:"Ĵ",\u0419:"Й","\u{1D50D}":"𝔍","\u{1D541}":"𝕁","\u{1D4A5}":"𝒥",\u0408:"Ј",\u0404:"Є",\u0425:"Х",\u040C:"Ќ",\u039A:"Κ",\u0136:"Ķ",\u041A:"К","\u{1D50E}":"𝔎","\u{1D542}":"𝕂","\u{1D4A6}":"𝒦",\u0409:"Љ","<":"<",\u0139:"Ĺ",\u039B:"Λ","\u27EA":"⟪",\u2112:"ℒ","\u219E":"↞",\u013D:"Ľ",\u013B:"Ļ",\u041B:"Л","\u27E8":"⟨","\u2190":"←","\u21E4":"⇤","\u21C6":"⇆","\u2308":"⌈","\u27E6":"⟦","\u2961":"⥡","\u21C3":"⇃","\u2959":"⥙","\u230A":"⌊","\u2194":"↔","\u294E":"⥎","\u22A3":"⊣","\u21A4":"↤","\u295A":"⥚","\u22B2":"⊲","\u29CF":"⧏","\u22B4":"⊴","\u2951":"⥑","\u2960":"⥠","\u21BF":"↿","\u2958":"⥘","\u21BC":"↼","\u2952":"⥒","\u22DA":"⋚","\u2266":"≦","\u2276":"≶","\u2AA1":"⪡","\u2A7D":"⩽","\u2272":"≲","\u{1D50F}":"𝔏","\u22D8":"⋘","\u21DA":"⇚",\u013F:"Ŀ","\u27F5":"⟵","\u27F7":"⟷","\u27F6":"⟶","\u{1D543}":"𝕃","\u2199":"↙","\u2198":"↘","\u21B0":"↰",\u0141:"Ł","\u226A":"≪","\u2905":"⤅",\u041C:"М","\u205F":" ",\u2133:"ℳ","\u{1D510}":"𝔐","\u2213":"∓","\u{1D544}":"𝕄",\u039C:"Μ",\u040A:"Њ",\u0143:"Ń",\u0147:"Ň",\u0145:"Ņ",\u041D:"Н","\u200B":"​","\n":"
","\u{1D511}":"𝔑","\u2060":"⁠","\xA0":" ",\u2115:"ℕ","\u2AEC":"⫬","\u2262":"≢","\u226D":"≭","\u2226":"∦","\u2209":"∉","\u2260":"≠","\u2242\u0338":"≂̸","\u2204":"∄","\u226F":"≯","\u2271":"≱","\u2267\u0338":"≧̸","\u226B\u0338":"≫̸","\u2279":"≹","\u2A7E\u0338":"⩾̸","\u2275":"≵","\u224E\u0338":"≎̸","\u224F\u0338":"≏̸","\u22EA":"⋪","\u29CF\u0338":"⧏̸","\u22EC":"⋬","\u226E":"≮","\u2270":"≰","\u2278":"≸","\u226A\u0338":"≪̸","\u2A7D\u0338":"⩽̸","\u2274":"≴","\u2AA2\u0338":"⪢̸","\u2AA1\u0338":"⪡̸","\u2280":"⊀","\u2AAF\u0338":"⪯̸","\u22E0":"⋠","\u220C":"∌","\u22EB":"⋫","\u29D0\u0338":"⧐̸","\u22ED":"⋭","\u228F\u0338":"⊏̸","\u22E2":"⋢","\u2290\u0338":"⊐̸","\u22E3":"⋣","\u2282\u20D2":"⊂⃒","\u2288":"⊈","\u2281":"⊁","\u2AB0\u0338":"⪰̸","\u22E1":"⋡","\u227F\u0338":"≿̸","\u2283\u20D2":"⊃⃒","\u2289":"⊉","\u2241":"≁","\u2244":"≄","\u2247":"≇","\u2249":"≉","\u2224":"∤","\u{1D4A9}":"𝒩",\u00D1:"Ñ",\u039D:"Ν",\u0152:"Œ",\u00D3:"Ó",\u00D4:"Ô",\u041E:"О",\u0150:"Ő","\u{1D512}":"𝔒",\u00D2:"Ò",\u014C:"Ō",\u03A9:"Ω",\u039F:"Ο","\u{1D546}":"𝕆","\u201C":"“","\u2018":"‘","\u2A54":"⩔","\u{1D4AA}":"𝒪",\u00D8:"Ø",\u00D5:"Õ","\u2A37":"⨷",\u00D6:"Ö","\u203E":"‾","\u23DE":"⏞","\u23B4":"⎴","\u23DC":"⏜","\u2202":"∂",\u041F:"П","\u{1D513}":"𝔓",\u03A6:"Φ",\u03A0:"Π","\xB1":"±",\u2119:"ℙ","\u2ABB":"⪻","\u227A":"≺","\u2AAF":"⪯","\u227C":"≼","\u227E":"≾","\u2033":"″","\u220F":"∏","\u221D":"∝","\u{1D4AB}":"𝒫",\u03A8:"Ψ",'"':""","\u{1D514}":"𝔔",\u211A:"ℚ","\u{1D4AC}":"𝒬","\u2910":"⤐","\xAE":"®",\u0154:"Ŕ","\u27EB":"⟫","\u21A0":"↠","\u2916":"⤖",\u0158:"Ř",\u0156:"Ŗ",\u0420:"Р",\u211C:"ℜ","\u220B":"∋","\u21CB":"⇋","\u296F":"⥯",\u03A1:"Ρ","\u27E9":"⟩","\u2192":"→","\u21E5":"⇥","\u21C4":"⇄","\u2309":"⌉","\u27E7":"⟧","\u295D":"⥝","\u21C2":"⇂","\u2955":"⥕","\u230B":"⌋","\u22A2":"⊢","\u21A6":"↦","\u295B":"⥛","\u22B3":"⊳","\u29D0":"⧐","\u22B5":"⊵","\u294F":"⥏","\u295C":"⥜","\u21BE":"↾","\u2954":"⥔","\u21C0":"⇀","\u2953":"⥓",\u211D:"ℝ","\u2970":"⥰","\u21DB":"⇛",\u211B:"ℛ","\u21B1":"↱","\u29F4":"⧴",\u0429:"Щ",\u0428:"Ш",\u042C:"Ь",\u015A:"Ś","\u2ABC":"⪼",\u0160:"Š",\u015E:"Ş",\u015C:"Ŝ",\u0421:"С","\u{1D516}":"𝔖","\u2191":"↑",\u03A3:"Σ","\u2218":"∘","\u{1D54A}":"𝕊","\u221A":"√","\u25A1":"□","\u2293":"⊓","\u228F":"⊏","\u2291":"⊑","\u2290":"⊐","\u2292":"⊒","\u2294":"⊔","\u{1D4AE}":"𝒮","\u22C6":"⋆","\u22D0":"⋐","\u2286":"⊆","\u227B":"≻","\u2AB0":"⪰","\u227D":"≽","\u227F":"≿","\u2211":"∑","\u22D1":"⋑","\u2283":"⊃","\u2287":"⊇",\u00DE:"Þ","\u2122":"™",\u040B:"Ћ",\u0426:"Ц"," ":"	",\u03A4:"Τ",\u0164:"Ť",\u0162:"Ţ",\u0422:"Т","\u{1D517}":"𝔗","\u2234":"∴",\u0398:"Θ","\u205F\u200A":"  ","\u2009":" ","\u223C":"∼","\u2243":"≃","\u2245":"≅","\u2248":"≈","\u{1D54B}":"𝕋","\u20DB":"⃛","\u{1D4AF}":"𝒯",\u0166:"Ŧ",\u00DA:"Ú","\u219F":"↟","\u2949":"⥉",\u040E:"Ў",\u016C:"Ŭ",\u00DB:"Û",\u0423:"У",\u0170:"Ű","\u{1D518}":"𝔘",\u00D9:"Ù",\u016A:"Ū",_:"_","\u23DF":"⏟","\u23B5":"⎵","\u23DD":"⏝","\u22C3":"⋃","\u228E":"⊎",\u0172:"Ų","\u{1D54C}":"𝕌","\u2912":"⤒","\u21C5":"⇅","\u2195":"↕","\u296E":"⥮","\u22A5":"⊥","\u21A5":"↥","\u2196":"↖","\u2197":"↗",\u03D2:"ϒ",\u03A5:"Υ",\u016E:"Ů","\u{1D4B0}":"𝒰",\u0168:"Ũ",\u00DC:"Ü","\u22AB":"⊫","\u2AEB":"⫫",\u0412:"В","\u22A9":"⊩","\u2AE6":"⫦","\u22C1":"⋁","\u2016":"‖","\u2223":"∣","|":"|","\u2758":"❘","\u2240":"≀","\u200A":" ","\u{1D519}":"𝔙","\u{1D54D}":"𝕍","\u{1D4B1}":"𝒱","\u22AA":"⊪",\u0174:"Ŵ","\u22C0":"⋀","\u{1D51A}":"𝔚","\u{1D54E}":"𝕎","\u{1D4B2}":"𝒲","\u{1D51B}":"𝔛",\u039E:"Ξ","\u{1D54F}":"𝕏","\u{1D4B3}":"𝒳",\u042F:"Я",\u0407:"Ї",\u042E:"Ю",\u00DD:"Ý",\u0176:"Ŷ",\u042B:"Ы","\u{1D51C}":"𝔜","\u{1D550}":"𝕐","\u{1D4B4}":"𝒴",\u0178:"Ÿ",\u0416:"Ж",\u0179:"Ź",\u017D:"Ž",\u0417:"З",\u017B:"Ż",\u0396:"Ζ",\u2128:"ℨ",\u2124:"ℤ","\u{1D4B5}":"𝒵",\u00E1:"á",\u0103:"ă","\u223E":"∾","\u223E\u0333":"∾̳","\u223F":"∿",\u00E2:"â",\u0430:"а",\u00E6:"æ","\u{1D51E}":"𝔞",\u00E0:"à",\u2135:"ℵ",\u03B1:"α",\u0101:"ā","\u2A3F":"⨿","\u2227":"∧","\u2A55":"⩕","\u2A5C":"⩜","\u2A58":"⩘","\u2A5A":"⩚","\u2220":"∠","\u29A4":"⦤","\u2221":"∡","\u29A8":"⦨","\u29A9":"⦩","\u29AA":"⦪","\u29AB":"⦫","\u29AC":"⦬","\u29AD":"⦭","\u29AE":"⦮","\u29AF":"⦯","\u221F":"∟","\u22BE":"⊾","\u299D":"⦝","\u2222":"∢","\u237C":"⍼",\u0105:"ą","\u{1D552}":"𝕒","\u2A70":"⩰","\u2A6F":"⩯","\u224A":"≊","\u224B":"≋","'":"'",\u00E5:"å","\u{1D4B6}":"𝒶","*":"*",\u00E3:"ã",\u00E4:"ä","\u2A11":"⨑","\u2AED":"⫭","\u224C":"≌","\u03F6":"϶","\u2035":"‵","\u223D":"∽","\u22CD":"⋍","\u22BD":"⊽","\u2305":"⌅","\u23B6":"⎶",\u0431:"б","\u201E":"„","\u29B0":"⦰",\u03B2:"β",\u2136:"ℶ","\u226C":"≬","\u{1D51F}":"𝔟","\u25EF":"◯","\u2A00":"⨀","\u2A01":"⨁","\u2A02":"⨂","\u2A06":"⨆","\u2605":"★","\u25BD":"▽","\u25B3":"△","\u2A04":"⨄","\u290D":"⤍","\u29EB":"⧫","\u25B4":"▴","\u25BE":"▾","\u25C2":"◂","\u25B8":"▸","\u2423":"␣","\u2592":"▒","\u2591":"░","\u2593":"▓","\u2588":"█","=\u20E5":"=⃥","\u2261\u20E5":"≡⃥","\u2310":"⌐","\u{1D553}":"𝕓","\u22C8":"⋈","\u2557":"╗","\u2554":"╔","\u2556":"╖","\u2553":"╓","\u2550":"═","\u2566":"╦","\u2569":"╩","\u2564":"╤","\u2567":"╧","\u255D":"╝","\u255A":"╚","\u255C":"╜","\u2559":"╙","\u2551":"║","\u256C":"╬","\u2563":"╣","\u2560":"╠","\u256B":"╫","\u2562":"╢","\u255F":"╟","\u29C9":"⧉","\u2555":"╕","\u2552":"╒","\u2510":"┐","\u250C":"┌","\u2565":"╥","\u2568":"╨","\u252C":"┬","\u2534":"┴","\u229F":"⊟","\u229E":"⊞","\u22A0":"⊠","\u255B":"╛","\u2558":"╘","\u2518":"┘","\u2514":"└","\u2502":"│","\u256A":"╪","\u2561":"╡","\u255E":"╞","\u253C":"┼","\u2524":"┤","\u251C":"├","\xA6":"¦","\u{1D4B7}":"𝒷","\u204F":"⁏","\\":"\","\u29C5":"⧅","\u27C8":"⟈","\u2022":"•","\u2AAE":"⪮",\u0107:"ć","\u2229":"∩","\u2A44":"⩄","\u2A49":"⩉","\u2A4B":"⩋","\u2A47":"⩇","\u2A40":"⩀","\u2229\uFE00":"∩︀","\u2041":"⁁","\u2A4D":"⩍",\u010D:"č",\u00E7:"ç",\u0109:"ĉ","\u2A4C":"⩌","\u2A50":"⩐",\u010B:"ċ","\u29B2":"⦲","\xA2":"¢","\u{1D520}":"𝔠",\u0447:"ч","\u2713":"✓",\u03C7:"χ","\u25CB":"○","\u29C3":"⧃","\u02C6":"ˆ","\u2257":"≗","\u21BA":"↺","\u21BB":"↻","\u24C8":"Ⓢ","\u229B":"⊛","\u229A":"⊚","\u229D":"⊝","\u2A10":"⨐","\u2AEF":"⫯","\u29C2":"⧂","\u2663":"♣",":":":",",":",","@":"@","\u2201":"∁","\u2A6D":"⩭","\u{1D554}":"𝕔","\u2117":"℗","\u21B5":"↵","\u2717":"✗","\u{1D4B8}":"𝒸","\u2ACF":"⫏","\u2AD1":"⫑","\u2AD0":"⫐","\u2AD2":"⫒","\u22EF":"⋯","\u2938":"⤸","\u2935":"⤵","\u22DE":"⋞","\u22DF":"⋟","\u21B6":"↶","\u293D":"⤽","\u222A":"∪","\u2A48":"⩈","\u2A46":"⩆","\u2A4A":"⩊","\u228D":"⊍","\u2A45":"⩅","\u222A\uFE00":"∪︀","\u21B7":"↷","\u293C":"⤼","\u22CE":"⋎","\u22CF":"⋏","\xA4":"¤","\u2231":"∱","\u232D":"⌭","\u2965":"⥥","\u2020":"†",\u2138:"ℸ","\u2010":"‐","\u290F":"⤏",\u010F:"ď",\u0434:"д","\u21CA":"⇊","\u2A77":"⩷","\xB0":"°",\u03B4:"δ","\u29B1":"⦱","\u297F":"⥿","\u{1D521}":"𝔡","\u2666":"♦",\u03DD:"ϝ","\u22F2":"⋲","\xF7":"÷","\u22C7":"⋇",\u0452:"ђ","\u231E":"⌞","\u230D":"⌍",$:"$","\u{1D555}":"𝕕","\u2251":"≑","\u2238":"∸","\u2214":"∔","\u22A1":"⊡","\u231F":"⌟","\u230C":"⌌","\u{1D4B9}":"𝒹",\u0455:"ѕ","\u29F6":"⧶",\u0111:"đ","\u22F1":"⋱","\u25BF":"▿","\u29A6":"⦦",\u045F:"џ","\u27FF":"⟿",\u00E9:"é","\u2A6E":"⩮",\u011B:"ě","\u2256":"≖",\u00EA:"ê","\u2255":"≕",\u044D:"э",\u0117:"ė","\u2252":"≒","\u{1D522}":"𝔢","\u2A9A":"⪚",\u00E8:"è","\u2A96":"⪖","\u2A98":"⪘","\u2A99":"⪙","\u23E7":"⏧",\u2113:"ℓ","\u2A95":"⪕","\u2A97":"⪗",\u0113:"ē","\u2205":"∅","\u2004":" ","\u2005":" ","\u2003":" ",\u014B:"ŋ","\u2002":" ",\u0119:"ę","\u{1D556}":"𝕖","\u22D5":"⋕","\u29E3":"⧣","\u2A71":"⩱",\u03B5:"ε","\u03F5":"ϵ","=":"=","\u225F":"≟","\u2A78":"⩸","\u29E5":"⧥","\u2253":"≓","\u2971":"⥱",\u212F:"ℯ",\u03B7:"η",\u00F0:"ð",\u00EB:"ë","\u20AC":"€","!":"!",\u0444:"ф","\u2640":"♀",\uFB03:"ffi",\uFB00:"ff",\uFB04:"ffl","\u{1D523}":"𝔣",\uFB01:"fi",fj:"fj","\u266D":"♭",\uFB02:"fl","\u25B1":"▱",\u0192:"ƒ","\u{1D557}":"𝕗","\u22D4":"⋔","\u2AD9":"⫙","\u2A0D":"⨍","\xBD":"½","\u2153":"⅓","\xBC":"¼","\u2155":"⅕","\u2159":"⅙","\u215B":"⅛","\u2154":"⅔","\u2156":"⅖","\xBE":"¾","\u2157":"⅗","\u215C":"⅜","\u2158":"⅘","\u215A":"⅚","\u215D":"⅝","\u215E":"⅞","\u2044":"⁄","\u2322":"⌢","\u{1D4BB}":"𝒻","\u2A8C":"⪌",\u01F5:"ǵ",\u03B3:"γ","\u2A86":"⪆",\u011F:"ğ",\u011D:"ĝ",\u0433:"г",\u0121:"ġ","\u2AA9":"⪩","\u2A80":"⪀","\u2A82":"⪂","\u2A84":"⪄","\u22DB\uFE00":"⋛︀","\u2A94":"⪔","\u{1D524}":"𝔤",\u2137:"ℷ",\u0453:"ѓ","\u2A92":"⪒","\u2AA5":"⪥","\u2AA4":"⪤","\u2269":"≩","\u2A8A":"⪊","\u2A88":"⪈","\u22E7":"⋧","\u{1D558}":"𝕘",\u210A:"ℊ","\u2A8E":"⪎","\u2A90":"⪐","\u2AA7":"⪧","\u2A7A":"⩺","\u22D7":"⋗","\u2995":"⦕","\u2A7C":"⩼","\u2978":"⥸","\u2269\uFE00":"≩︀",\u044A:"ъ","\u2948":"⥈","\u21AD":"↭",\u210F:"ℏ",\u0125:"ĥ","\u2665":"♥","\u2026":"…","\u22B9":"⊹","\u{1D525}":"𝔥","\u2925":"⤥","\u2926":"⤦","\u21FF":"⇿","\u223B":"∻","\u21A9":"↩","\u21AA":"↪","\u{1D559}":"𝕙","\u2015":"―","\u{1D4BD}":"𝒽",\u0127:"ħ","\u2043":"⁃",\u00ED:"í",\u00EE:"î",\u0438:"и",\u0435:"е","\xA1":"¡","\u{1D526}":"𝔦",\u00EC:"ì","\u2A0C":"⨌","\u222D":"∭","\u29DC":"⧜","\u2129":"℩",\u0133:"ij",\u012B:"ī",\u0131:"ı","\u22B7":"⊷",\u01B5:"Ƶ","\u2105":"℅","\u221E":"∞","\u29DD":"⧝","\u22BA":"⊺","\u2A17":"⨗","\u2A3C":"⨼",\u0451:"ё",\u012F:"į","\u{1D55A}":"𝕚",\u03B9:"ι","\xBF":"¿","\u{1D4BE}":"𝒾","\u22F9":"⋹","\u22F5":"⋵","\u22F4":"⋴","\u22F3":"⋳",\u0129:"ĩ",\u0456:"і",\u00EF:"ï",\u0135:"ĵ",\u0439:"й","\u{1D527}":"𝔧","\u0237":"ȷ","\u{1D55B}":"𝕛","\u{1D4BF}":"𝒿",\u0458:"ј",\u0454:"є",\u03BA:"κ",\u03F0:"ϰ",\u0137:"ķ",\u043A:"к","\u{1D528}":"𝔨",\u0138:"ĸ",\u0445:"х",\u045C:"ќ","\u{1D55C}":"𝕜","\u{1D4C0}":"𝓀","\u291B":"⤛","\u290E":"⤎","\u2A8B":"⪋","\u2962":"⥢",\u013A:"ĺ","\u29B4":"⦴",\u03BB:"λ","\u2991":"⦑","\u2A85":"⪅","\xAB":"«","\u291F":"⤟","\u291D":"⤝","\u21AB":"↫","\u2939":"⤹","\u2973":"⥳","\u21A2":"↢","\u2AAB":"⪫","\u2919":"⤙","\u2AAD":"⪭","\u2AAD\uFE00":"⪭︀","\u290C":"⤌","\u2772":"❲","{":"{","[":"[","\u298B":"⦋","\u298F":"⦏","\u298D":"⦍",\u013E:"ľ",\u013C:"ļ",\u043B:"л","\u2936":"⤶","\u2967":"⥧","\u294B":"⥋","\u21B2":"↲","\u2264":"≤","\u21C7":"⇇","\u22CB":"⋋","\u2AA8":"⪨","\u2A7F":"⩿","\u2A81":"⪁","\u2A83":"⪃","\u22DA\uFE00":"⋚︀","\u2A93":"⪓","\u22D6":"⋖","\u297C":"⥼","\u{1D529}":"𝔩","\u2A91":"⪑","\u296A":"⥪","\u2584":"▄",\u0459:"љ","\u296B":"⥫","\u25FA":"◺",\u0140:"ŀ","\u23B0":"⎰","\u2268":"≨","\u2A89":"⪉","\u2A87":"⪇","\u22E6":"⋦","\u27EC":"⟬","\u21FD":"⇽","\u27FC":"⟼","\u21AC":"↬","\u2985":"⦅","\u{1D55D}":"𝕝","\u2A2D":"⨭","\u2A34":"⨴","\u2217":"∗","\u25CA":"◊","(":"(","\u2993":"⦓","\u296D":"⥭","\u200E":"‎","\u22BF":"⊿","\u2039":"‹","\u{1D4C1}":"𝓁","\u2A8D":"⪍","\u2A8F":"⪏","\u201A":"‚",\u0142:"ł","\u2AA6":"⪦","\u2A79":"⩹","\u22C9":"⋉","\u2976":"⥶","\u2A7B":"⩻","\u2996":"⦖","\u25C3":"◃","\u294A":"⥊","\u2966":"⥦","\u2268\uFE00":"≨︀","\u223A":"∺","\xAF":"¯","\u2642":"♂","\u2720":"✠","\u25AE":"▮","\u2A29":"⨩",\u043C:"м","\u2014":"—","\u{1D52A}":"𝔪","\u2127":"℧",\u00B5:"µ","\u2AF0":"⫰","\u2212":"−","\u2A2A":"⨪","\u2ADB":"⫛","\u22A7":"⊧","\u{1D55E}":"𝕞","\u{1D4C2}":"𝓂",\u03BC:"μ","\u22B8":"⊸","\u22D9\u0338":"⋙̸","\u226B\u20D2":"≫⃒","\u21CD":"⇍","\u21CE":"⇎","\u22D8\u0338":"⋘̸","\u226A\u20D2":"≪⃒","\u21CF":"⇏","\u22AF":"⊯","\u22AE":"⊮",\u0144:"ń","\u2220\u20D2":"∠⃒","\u2A70\u0338":"⩰̸","\u224B\u0338":"≋̸",\u0149:"ʼn","\u266E":"♮","\u2A43":"⩃",\u0148:"ň",\u0146:"ņ","\u2A6D\u0338":"⩭̸","\u2A42":"⩂",\u043D:"н","\u2013":"–","\u21D7":"⇗","\u2924":"⤤","\u2250\u0338":"≐̸","\u2928":"⤨","\u{1D52B}":"𝔫","\u21AE":"↮","\u2AF2":"⫲","\u22FC":"⋼","\u22FA":"⋺",\u045A:"њ","\u2266\u0338":"≦̸","\u219A":"↚","\u2025":"‥","\u{1D55F}":"𝕟","\xAC":"¬","\u22F9\u0338":"⋹̸","\u22F5\u0338":"⋵̸","\u22F7":"⋷","\u22F6":"⋶","\u22FE":"⋾","\u22FD":"⋽","\u2AFD\u20E5":"⫽⃥","\u2202\u0338":"∂̸","\u2A14":"⨔","\u219B":"↛","\u2933\u0338":"⤳̸","\u219D\u0338":"↝̸","\u{1D4C3}":"𝓃","\u2284":"⊄","\u2AC5\u0338":"⫅̸","\u2285":"⊅","\u2AC6\u0338":"⫆̸",\u00F1:"ñ",\u03BD:"ν","#":"#","\u2116":"№","\u2007":" ","\u22AD":"⊭","\u2904":"⤄","\u224D\u20D2":"≍⃒","\u22AC":"⊬","\u2265\u20D2":"≥⃒",">\u20D2":">⃒","\u29DE":"⧞","\u2902":"⤂","\u2264\u20D2":"≤⃒","<\u20D2":"<⃒","\u22B4\u20D2":"⊴⃒","\u2903":"⤃","\u22B5\u20D2":"⊵⃒","\u223C\u20D2":"∼⃒","\u21D6":"⇖","\u2923":"⤣","\u2927":"⤧",\u00F3:"ó",\u00F4:"ô",\u043E:"о",\u0151:"ő","\u2A38":"⨸","\u29BC":"⦼",\u0153:"œ","\u29BF":"⦿","\u{1D52C}":"𝔬","\u02DB":"˛",\u00F2:"ò","\u29C1":"⧁","\u29B5":"⦵","\u29BE":"⦾","\u29BB":"⦻","\u29C0":"⧀",\u014D:"ō",\u03C9:"ω",\u03BF:"ο","\u29B6":"⦶","\u{1D560}":"𝕠","\u29B7":"⦷","\u29B9":"⦹","\u2228":"∨","\u2A5D":"⩝",\u2134:"ℴ",\u00AA:"ª",\u00BA:"º","\u22B6":"⊶","\u2A56":"⩖","\u2A57":"⩗","\u2A5B":"⩛",\u00F8:"ø","\u2298":"⊘",\u00F5:"õ","\u2A36":"⨶",\u00F6:"ö","\u233D":"⌽","\xB6":"¶","\u2AF3":"⫳","\u2AFD":"⫽",\u043F:"п","%":"%",".":".","\u2030":"‰","\u2031":"‱","\u{1D52D}":"𝔭",\u03C6:"φ",\u03D5:"ϕ","\u260E":"☎",\u03C0:"π",\u03D6:"ϖ",\u210E:"ℎ","+":"+","\u2A23":"⨣","\u2A22":"⨢","\u2A25":"⨥","\u2A72":"⩲","\u2A26":"⨦","\u2A27":"⨧","\u2A15":"⨕","\u{1D561}":"𝕡","\xA3":"£","\u2AB3":"⪳","\u2AB7":"⪷","\u2AB9":"⪹","\u2AB5":"⪵","\u22E8":"⋨","\u2032":"′","\u232E":"⌮","\u2312":"⌒","\u2313":"⌓","\u22B0":"⊰","\u{1D4C5}":"𝓅",\u03C8:"ψ","\u2008":" ","\u{1D52E}":"𝔮","\u{1D562}":"𝕢","\u2057":"⁗","\u{1D4C6}":"𝓆","\u2A16":"⨖","?":"?","\u291C":"⤜","\u2964":"⥤","\u223D\u0331":"∽̱",\u0155:"ŕ","\u29B3":"⦳","\u2992":"⦒","\u29A5":"⦥","\xBB":"»","\u2975":"⥵","\u2920":"⤠","\u2933":"⤳","\u291E":"⤞","\u2945":"⥅","\u2974":"⥴","\u21A3":"↣","\u219D":"↝","\u291A":"⤚","\u2236":"∶","\u2773":"❳","}":"}","]":"]","\u298C":"⦌","\u298E":"⦎","\u2990":"⦐",\u0159:"ř",\u0157:"ŗ",\u0440:"р","\u2937":"⤷","\u2969":"⥩","\u21B3":"↳","\u25AD":"▭","\u297D":"⥽","\u{1D52F}":"𝔯","\u296C":"⥬",\u03C1:"ρ",\u03F1:"ϱ","\u21C9":"⇉","\u22CC":"⋌","\u02DA":"˚","\u200F":"‏","\u23B1":"⎱","\u2AEE":"⫮","\u27ED":"⟭","\u21FE":"⇾","\u2986":"⦆","\u{1D563}":"𝕣","\u2A2E":"⨮","\u2A35":"⨵",")":")","\u2994":"⦔","\u2A12":"⨒","\u203A":"›","\u{1D4C7}":"𝓇","\u22CA":"⋊","\u25B9":"▹","\u29CE":"⧎","\u2968":"⥨","\u211E":"℞",\u015B:"ś","\u2AB4":"⪴","\u2AB8":"⪸",\u0161:"š",\u015F:"ş",\u015D:"ŝ","\u2AB6":"⪶","\u2ABA":"⪺","\u22E9":"⋩","\u2A13":"⨓",\u0441:"с","\u22C5":"⋅","\u2A66":"⩦","\u21D8":"⇘","\xA7":"§",";":";","\u2929":"⤩","\u2736":"✶","\u{1D530}":"𝔰","\u266F":"♯",\u0449:"щ",\u0448:"ш","\xAD":"­",\u03C3:"σ",\u03C2:"ς","\u2A6A":"⩪","\u2A9E":"⪞","\u2AA0":"⪠","\u2A9D":"⪝","\u2A9F":"⪟","\u2246":"≆","\u2A24":"⨤","\u2972":"⥲","\u2A33":"⨳","\u29E4":"⧤","\u2323":"⌣","\u2AAA":"⪪","\u2AAC":"⪬","\u2AAC\uFE00":"⪬︀",\u044C:"ь","/":"/","\u29C4":"⧄","\u233F":"⌿","\u{1D564}":"𝕤","\u2660":"♠","\u2293\uFE00":"⊓︀","\u2294\uFE00":"⊔︀","\u{1D4C8}":"𝓈","\u2606":"☆","\u2282":"⊂","\u2AC5":"⫅","\u2ABD":"⪽","\u2AC3":"⫃","\u2AC1":"⫁","\u2ACB":"⫋","\u228A":"⊊","\u2ABF":"⪿","\u2979":"⥹","\u2AC7":"⫇","\u2AD5":"⫕","\u2AD3":"⫓","\u266A":"♪","\xB9":"¹","\xB2":"²","\xB3":"³","\u2AC6":"⫆","\u2ABE":"⪾","\u2AD8":"⫘","\u2AC4":"⫄","\u27C9":"⟉","\u2AD7":"⫗","\u297B":"⥻","\u2AC2":"⫂","\u2ACC":"⫌","\u228B":"⊋","\u2AC0":"⫀","\u2AC8":"⫈","\u2AD4":"⫔","\u2AD6":"⫖","\u21D9":"⇙","\u292A":"⤪",\u00DF:"ß","\u2316":"⌖",\u03C4:"τ",\u0165:"ť",\u0163:"ţ",\u0442:"т","\u2315":"⌕","\u{1D531}":"𝔱",\u03B8:"θ",\u03D1:"ϑ",\u00FE:"þ","\xD7":"×","\u2A31":"⨱","\u2A30":"⨰","\u2336":"⌶","\u2AF1":"⫱","\u{1D565}":"𝕥","\u2ADA":"⫚","\u2034":"‴","\u25B5":"▵","\u225C":"≜","\u25EC":"◬","\u2A3A":"⨺","\u2A39":"⨹","\u29CD":"⧍","\u2A3B":"⨻","\u23E2":"⏢","\u{1D4C9}":"𝓉",\u0446:"ц",\u045B:"ћ",\u0167:"ŧ","\u2963":"⥣",\u00FA:"ú",\u045E:"ў",\u016D:"ŭ",\u00FB:"û",\u0443:"у",\u0171:"ű","\u297E":"⥾","\u{1D532}":"𝔲",\u00F9:"ù","\u2580":"▀","\u231C":"⌜","\u230F":"⌏","\u25F8":"◸",\u016B:"ū",\u0173:"ų","\u{1D566}":"𝕦",\u03C5:"υ","\u21C8":"⇈","\u231D":"⌝","\u230E":"⌎",\u016F:"ů","\u25F9":"◹","\u{1D4CA}":"𝓊","\u22F0":"⋰",\u0169:"ũ",\u00FC:"ü","\u29A7":"⦧","\u2AE8":"⫨","\u2AE9":"⫩","\u299C":"⦜","\u228A\uFE00":"⊊︀","\u2ACB\uFE00":"⫋︀","\u228B\uFE00":"⊋︀","\u2ACC\uFE00":"⫌︀",\u0432:"в","\u22BB":"⊻","\u225A":"≚","\u22EE":"⋮","\u{1D533}":"𝔳","\u{1D567}":"𝕧","\u{1D4CB}":"𝓋","\u299A":"⦚",\u0175:"ŵ","\u2A5F":"⩟","\u2259":"≙","\u2118":"℘","\u{1D534}":"𝔴","\u{1D568}":"𝕨","\u{1D4CC}":"𝓌","\u{1D535}":"𝔵",\u03BE:"ξ","\u22FB":"⋻","\u{1D569}":"𝕩","\u{1D4CD}":"𝓍",\u00FD:"ý",\u044F:"я",\u0177:"ŷ",\u044B:"ы","\xA5":"¥","\u{1D536}":"𝔶",\u0457:"ї","\u{1D56A}":"𝕪","\u{1D4CE}":"𝓎",\u044E:"ю",\u00FF:"ÿ",\u017A:"ź",\u017E:"ž",\u0437:"з",\u017C:"ż",\u03B6:"ζ","\u{1D537}":"𝔷",\u0436:"ж","\u21DD":"⇝","\u{1D56B}":"𝕫","\u{1D4CF}":"𝓏","\u200D":"‍","\u200C":"‌"}}}});var tw=J(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});Cp.numericUnicodeMap={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376}});var iw=J(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.fromCodePoint=String.fromCodePoint||function(n){return String.fromCharCode(Math.floor((n-65536)/1024)+55296,(n-65536)%1024+56320)};ta.getCodePoint=String.prototype.codePointAt?function(n,e){return n.codePointAt(e)}:function(n,e){return(n.charCodeAt(e)-55296)*1024+n.charCodeAt(e+1)-56320+65536};ta.highSurrogateFrom=55296;ta.highSurrogateTo=56319});var lw=J(Uo=>{"use strict";var ia=Uo&&Uo.__assign||function(){return ia=Object.assign||function(n){for(var e,t=1,i=arguments.length;t<i;t++){e=arguments[t];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r])}return n},ia.apply(this,arguments)};Object.defineProperty(Uo,"__esModule",{value:!0});var Fc=ew(),xk=tw(),rw=iw(),Tp=ia(ia({},Fc.namedReferences),{all:Fc.namedReferences.html5});function ow(n,e,t){e.lastIndex=0;var i=e.exec(n),r;if(i){r="";var o=0;do{o!==i.index&&(r+=n.substring(o,i.index));var s=i[0];r+=t(s),o=i.index+s.length}while(i=e.exec(n));o!==n.length&&(r+=n.substring(o))}else r=n;return r}var bk={specialChars:/[<>'"&]/g,nonAscii:/[<>'"&\u0080-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/g,nonAsciiPrintable:/[<>'"&\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/g,nonAsciiPrintableOnly:/[\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/g,extensive:/[\x01-\x0c\x0e-\x1f\x21-\x2c\x2e-\x2f\x3a-\x40\x5b-\x60\x7b-\x7d\x7f-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/g},yk={mode:"specialChars",level:"all",numeric:"decimal"};function vk(n,e){var t=e===void 0?yk:e,i=t.mode,r=i===void 0?"specialChars":i,o=t.numeric,s=o===void 0?"decimal":o,a=t.level,c=a===void 0?"all":a;if(!n)return"";var l=bk[r],d=Tp[c].characters,h=s==="hexadecimal";return ow(n,l,function(u){var p=d[u];if(!p){var f=u.length>1?rw.getCodePoint(u,0):u.charCodeAt(0);p=(h?"&#x"+f.toString(16):"&#"+f)+";"}return p})}Uo.encode=vk;var wk={scope:"body",level:"all"},Sp=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g,Ep=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g,nw={xml:{strict:Sp,attribute:Ep,body:Fc.bodyRegExps.xml},html4:{strict:Sp,attribute:Ep,body:Fc.bodyRegExps.html4},html5:{strict:Sp,attribute:Ep,body:Fc.bodyRegExps.html5}},Fk=ia(ia({},nw),{all:nw.html5}),sw=String.fromCharCode,Dk=sw(65533),Pk={level:"all"};function aw(n,e,t,i){var r=n,o=n[n.length-1];if(t&&o==="=")r=n;else if(i&&o!==";")r=n;else{var s=e[n];if(s)r=s;else if(n[0]==="&"&&n[1]==="#"){var a=n[2],c=a=="x"||a=="X"?parseInt(n.substr(3),16):parseInt(n.substr(2));r=c>=1114111?Dk:c>65535?rw.fromCodePoint(c):sw(xk.numericUnicodeMap[c]||c)}}return r}function kk(n,e){var t=(e===void 0?Pk:e).level,i=t===void 0?"all":t;return n?aw(n,Tp[i].entities,!1,!1):""}Uo.decodeEntity=kk;function Ck(n,e){var t=e===void 0?wk:e,i=t.level,r=i===void 0?"all":i,o=t.scope,s=o===void 0?r==="xml"?"strict":"body":o;if(!n)return"";var a=Fk[r][s],c=Tp[r].entities,l=s==="attribute",d=s==="strict";return ow(n,a,function(h){return aw(h,c,l,d)})}Uo.decode=Ck});var Bp=J(ft=>{"use strict";Object.defineProperty(ft,"__esModule",{value:!0});ft.isBlock=ft.parse=ft.Matcher=ft.HTMLElement=ft.CommentNode=ft.TextNode=ft.AbstractNode=ft.NodeType=void 0;var na=lw(),Ri=!1,At;(function(n){n[n.ELEMENT_NODE=1]="ELEMENT_NODE",n[n.TEXT_NODE=3]="TEXT_NODE",n[n.COMMENT_NODE=8]="COMMENT_NODE"})(At||(ft.NodeType=At={}));var jo=class{constructor(){this.childNodes=[]}get text(){return(0,na.decode)(this.rawText)}remove(){return this.parentNode&&this.parentNode.removeChild(this),this}};ft.AbstractNode=jo;var Wo=class extends jo{constructor(e){super(),this.nodeType=At.TEXT_NODE,this.value=e}get rawText(){return this.value}get isWhitespace(){return/^(\s| )*$/.test(this.rawText)}toString(){return this.rawText}};ft.TextNode=Wo;var $h=class extends jo{constructor(e){super(),this.nodeType=At.COMMENT_NODE,this.value=e}get rawText(){return this.value}toString(){return`<!--${this.rawText}-->`}};ft.CommentNode=$h;var Sk={div:!0,p:!0,li:!0,td:!0,section:!0,br:!0};function ra(n){return n[n.length-1]}var oa=class n extends jo{constructor(e,t="",i=null){super(),this.tagName=e,this.rawAttrs=t,this.classNames=[],this.nodeType=At.ELEMENT_NODE,this.rawAttrs=t,this.parentNode=i,this.childNodes=[];let r={};for(let o;o=Ek.exec(t);)r[o[2]]=o[4]||o[5]||o[6];r.id&&(this.id=r.id),r.class&&(this.classNames=r.class.split(/\s+/))}removeChild(e){this.childNodes=this.childNodes.filter(t=>t!==e),e instanceof n&&(e.parentNode=null)}exchangeChild(e,t){let i=this.childNodes.findIndex(r=>r===e);i>=0&&(this.childNodes[i]=t,e instanceof n&&(e.parentNode=null))}get rawText(){let e="";for(let t=0;t<this.childNodes.length;t++)e+=this.childNodes[t].rawText;return e}get structuredText(){let e=[],t=[e];function i(r){if(r.nodeType===At.ELEMENT_NODE)Sk[r.tagName]?(e.length>0&&t.push(e=[]),r.childNodes.forEach(i),e.length>0&&t.push(e=[])):r.childNodes.forEach(i);else if(r.nodeType===At.TEXT_NODE)if(r.isWhitespace)e.prependWhitespace=!0;else{let o=r.text;e.prependWhitespace&&(o=" "+o,e.prependWhitespace=!1),e.push(o)}}return i(this),t.map(function(r){return r.join("").trim().replace(/\s{2,}/g," ")}).join(`
|
||
`).replace(/\s+$/,"")}get children(){return this.childNodes.filter(e=>e instanceof n)}toString(){let e=this.tagName;if(e){let t=/^(img|br|hr|area|base|input|doctype|link|meta)$/i.test(e),i=this.rawAttrs?" "+this.rawAttrs:"";return t?`<${e}${i} />`:`<${e}${i}>${this.innerHTML}</${e}>`}else return this.innerHTML}get innerHTML(){return this.childNodes.map(e=>e.toString()).join("")}set innerHTML(e){let t=Ip(e);this.childNodes.forEach(i=>i.remove()),t.childNodes.forEach(i=>this.appendChild(i))}set_content(e){if(e instanceof jo)e=[e];else if(typeof e=="string"){let t=Ip(e);e=t.childNodes.length?t.childNodes:[new Wo(e)]}this.childNodes=e}get outerHTML(){return this.toString()}trimRight(e){for(let t=0;t<this.childNodes.length;t++){let i=this.childNodes[t];if(i.nodeType===At.ELEMENT_NODE)i.trimRight(e);else{let r=i.rawText.search(e);r>-1&&(i.value=i.rawText.substr(0,r),this.childNodes.length=t+1)}}return this}get structure(){let e=[],t=0;function i(o){e.push(" ".repeat(t)+o)}function r(o){let s=o.id?"#"+o.id:"",a=o.classNames.length?"."+o.classNames.join("."):"";i(o.tagName+s+a),t++;for(let c=0;c<o.childNodes.length;c++){let l=o.childNodes[c];l.nodeType===At.ELEMENT_NODE?r(l):l.nodeType===At.TEXT_NODE&&(l.isWhitespace||i("#text"))}t--}return r(this),e.join(`
|
||
`)}removeWhitespace(){let e=0;for(let t=0;t<this.childNodes.length;t++){let i=this.childNodes[t];if(i.nodeType===At.TEXT_NODE){if(i.isWhitespace)continue;i.value=i.rawText.trim()}else i.nodeType===At.ELEMENT_NODE&&i.removeWhitespace();this.childNodes[e++]=i}return this.childNodes.length=e,this}querySelectorAll(e){if(!(e instanceof qo))if(e.includes(",")){let o=e.split(","),s=new Set(o.map(a=>this.querySelectorAll(a.trim())).flat());return Array.from(s)}else return this.querySelectorAll(new qo(e));let t=e,i=new Set,r=[];for(this.childNodes.forEach(o=>r.push(o));r.length>0;){let o=r.shift();o.nodeType===At.ELEMENT_NODE&&(t.advance(o)&&t.matched&&(i.add(o),t.rewind()),o.childNodes.forEach(s=>{r.push(s)}))}return Array.from(i)}querySelector(e){let t;e instanceof qo?(t=e,t.reset()):t=new qo(e);let i=[];for(let r=0;r<this.childNodes.length;r++)for(i.push([this.childNodes[r],0,!1]);i.length;){let o=ra(i),s=o[0];if(o[1]===0){if(s.nodeType!==At.ELEMENT_NODE){i.pop();continue}if((o[2]=t.advance(s))&&t.matched)return s}o[1]<s.childNodes.length?i.push([s.childNodes[o[1]++],0,!1]):(o[2]&&t.rewind(),i.pop())}return null}appendChild(e){return this.childNodes.push(e),e instanceof n&&(e.parentNode=this),e}prependChild(e){return this.childNodes.unshift(e),e instanceof n&&(e.parentNode=this),e}get firstChild(){return this.childNodes[0]}get lastChild(){return ra(this.childNodes)}get attributes(){if(this._attrs)return this._attrs;this._attrs={};let e=this.rawAttributes;for(let t in e)this._attrs[t]=(0,na.decode)(e[t]);return this._attrs}get rawAttributes(){if(this._rawAttrs)return this._rawAttrs;let e={};if(this.rawAttrs){let t;for(;t=Tk.exec(this.rawAttrs);)e[t[1]]=t[4]||t[5]||t[6]||""}return this._rawAttrs=e,e}setAttribute(e,t){e==="id"?this.id=t:e==="class"&&(this.classNames=t.split(/\s+/));let i=this.attributes;t===void 0?delete i[e]:i[e]=t+"",this._rawAttrs&&(t===void 0?delete this._rawAttrs[e]:this._rawAttrs[e]=(0,na.encode)(t+"")),this.rawAttrs=Object.keys(i).map(r=>r+(i[r]===""?"":'="'+(0,na.encode)(i[r])+'"')).join(" ")}removeAttribute(e){this.setAttribute(e,void 0)}setAttributes(e){e.id?this.id=e.id:e.class&&(this.classNames=e.class.split(/\s+/)),this.attributes&&(Object.keys(this.attributes).forEach(t=>delete this.attributes[t]),Object.keys(e).forEach(t=>this.attributes[t]=e[t]+"")),this.rawAttributes&&(Object.keys(this.rawAttributes).forEach(t=>delete this.rawAttributes[t]),Object.keys(e).forEach(t=>this.rawAttributes[t]=(0,na.encode)(e[t]+""))),this.rawAttrs=Object.keys(e).map(t=>t+(e[t]===""?"":'="'+(0,na.encode)(e[t]+"")+'"')).join(" ")}};ft.HTMLElement=oa;var Qh={},Ap={f145:function(n,e,t,i,r){"use strict";if(e=e||"",t=t||[],i=i||"",r=r||"",n.id!=e.substr(1))return!1;for(let o=t,s=0;s<o.length;s++)if(n.classNames.indexOf(o[s])===-1)return!1;return!0},f45:function(n,e,t,i,r){"use strict";e=e||"",t=t||[],i=i||"",r=r||"";for(let o=t,s=0;s<o.length;s++)if(n.classNames.indexOf(o[s])===-1)return!1;return!0},f15:function(n,e,t,i,r){"use strict";return e=e||"",t=t||[],i=i||"",r=r||"",n.id==e.substr(1)},f1:function(n,e,t,i,r){"use strict";if(e=e||"",t=t||[],i=i||"",r=r||"",n.id!=e.substr(1))return!1},f5:function(n,e,t,i,r){"use strict";return n=n||{},e=e||"",t=t||[],i=i||"",r=r||"",!0},f245:function(n,e,t,i,r){"use strict";e=e||"",t=t||[],i=i||"",r=r||"";let o=n.attributes;for(let s in o){let a=o[s];if(s==i&&a==r)return!0}return!1},f25:function(n,e,t,i,r){"use strict";e=e||"",t=t||[],i=i||"",r=r||"";let o=n.attributes;for(let s in o){let a=o[s];if(s==i&&a==r)return!0}return!1},f2:function(n,e,t,i,r){"use strict";e=e||"",t=t||[],i=i||"",r=r||"";let o=n.attributes;for(let s in o){let a=o[s];if(s==i&&a==r)return!0}return!1},f345:function(n,e,t,i,r){"use strict";if(e=e||"",t=t||[],i=i||"",r=r||"",n.tagName!=e)return!1;for(let o=t,s=0;s<o.length;s++)if(n.classNames.indexOf(o[s])===-1)return!1;return!0},f35:function(n,e,t,i,r){"use strict";return e=e||"",t=t||[],i=i||"",r=r||"",n.tagName==e},f3:function(n,e,t,i,r){"use strict";if(e=e||"",t=t||[],i=i||"",r=r||"",n.tagName!=e)return!1}},qo=class{constructor(e){this.nextMatch=0,Ap.f5=Ap.f5,this.matchers=e.split(" ").map(t=>{if(Qh[t])return Qh[t];let i=t.split("."),r=i[0],o=i.slice(1).sort(),s='"use strict";',a="f",c="",l="";if(r&&r!="*"){let h;if(r[0]=="#")s+="if (el.id != "+JSON.stringify(r.substr(1))+") return false;",a+="1";else if(h=r.match(/^\[\s*(\S+)\s*(=|!=)\s*((((["'])([^\6]*)\6))|(\S*?))\]\s*/)){c=h[1];let u=h[2];if(u!=="="&&u!=="!=")throw new Error("Selector not supported, Expect [key${op}value].op must be =,!=");u==="="&&(u="=="),l=h[7]||h[8],s+=`let attrs = el.attributes;for (let key in attrs){const val = attrs[key]; if (key == "${c}" && val == "${l}"){return true;}} return false;`,a+="2"}else s+="if (el.tagName != "+JSON.stringify(r)+") return false;",a+="3"}o.length>0&&(s+="for (let cls = "+JSON.stringify(o)+", i = 0; i < cls.length; i++) if (el.classNames.indexOf(cls[i]) === -1) return false;",a+="4"),s+="return true;",a+="5";let d={func:Ap[a],tagName:r||"",classes:o||"",attr_key:c||"",value:l||""};return s=s||"",Qh[t]=d})}advance(e){return this.nextMatch<this.matchers.length&&this.matchers[this.nextMatch].func(e,this.matchers[this.nextMatch].tagName,this.matchers[this.nextMatch].classes,this.matchers[this.nextMatch].attr_key,this.matchers[this.nextMatch].value)?(this.nextMatch++,!0):!1}rewind(){this.nextMatch--}get matched(){return this.nextMatch==this.matchers.length}reset(){this.nextMatch=0}flushCache(){Qh={}}};ft.Matcher=qo;var Vn=/<!--[^]*?(?=-->)-->|<(\/?)([a-z][-.:0-9_a-z]*)((\s+[a-z][-.:0-9_a-z]*(\s*=\s*("[^"]*"|'([^']*')|([^\s\/>]+)))?)*)\s*(\/?)>/ig,Ek=/(^|\s)(id|class)\s*=\s*("([^"]+)"|'([^']+)'|(\S+))/ig,Tk=/([a-z][-.:0-9_a-z]*)(\s*=\s*("([^"]*)"|'([^']*)'|(\S+)))?/ig,Ak={area:!0,base:!0,br:!0,col:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,source:!0},cw={li:{li:!0},p:{p:!0,div:!0},b:{div:!0},td:{td:!0,th:!0},th:{td:!0,th:!0},h1:{h1:!0},h2:{h2:!0},h3:{h3:!0},h4:{h4:!0},h5:{h5:!0},h6:{h6:!0}},dw={li:{ul:!0,ol:!0},a:{div:!0},b:{div:!0},i:{div:!0},p:{div:!0},td:{tr:!0,table:!0},th:{tr:!0,table:!0}},Ik={script:!0,noscript:!0,style:!0,pre:!0};function Ip(n,e){let t=new oa(null),i=t,r=[t],o=0;e=e||{};let s;for(;s=Vn.exec(n);){if(Ri&&console.log("match",s[0]),o+s[0].length<Vn.lastIndex){let a=n.substring(o,Vn.lastIndex-s[0].length);Ri&&console.log("text node",a),i.appendChild(new Wo(a))}if(o=Vn.lastIndex,s[0][1]=="!"){if(e.comment){let a=n.substring(o-3,o-s[0].length+4);Ri&&console.log("comment node",a),i.appendChild(new $h(a))}continue}if(e.lowerCaseTagName&&(s[2]=s[2].toLowerCase()),!s[1]&&(!s[9]&&cw[i.tagName]&&cw[i.tagName][s[2]]&&(Ri&&console.log("closed",i.tagName,"when opening",s[2]),r.pop(),i=ra(r)),Ri&&console.log("add",s[2],"tag to the stack"),i=i.appendChild(new oa(s[2],s[3].trim())),r.push(i),Ik[s[2]])){let a="</"+s[2]+">",c=n.indexOf(a,Vn.lastIndex);if(e[s[2]]){let l;c==-1?l=n.substr(Vn.lastIndex):l=n.substring(Vn.lastIndex,c),l.length>0&&(Ri&&console.log("add text node as child of",s[2]),i.appendChild(new Wo(l)))}c==-1?o=Vn.lastIndex=n.length+1:(o=Vn.lastIndex=c+a.length,s[1]="true")}if(s[1]||s[9]||Ak[s[2]])for(;;)if(i.tagName==s[2]){Ri&&console.log("met the end of",s[2]),r.pop(),i=ra(r);break}else{if(dw[i.tagName]&&dw[i.tagName][s[2]]){Ri&&console.log("closing",i.tagName,"due to meeting",s[2]),r.pop(),i=ra(r);continue}break}}for(o<n.length&&(Ri&&console.log("Final text node",n.substring(o)),t.appendChild(new Wo(n.substring(o)))),t.valid=r.length===1;r.length>1;){let a=r.pop(),c=ra(r);a.parentNode&&a.parentNode instanceof oa&&a.parentNode.parentNode&&(a.parentNode===c&&a.tagName===c.tagName?(Ri&&console.log(a.tagName,"is probably supposed to close",c.tagName),c.removeChild(a),a.childNodes.forEach(l=>{c.parentNode.appendChild(l)}),r.pop()):(Ri&&console.log("no close tag found for",a.tagName,". Removing"),c.removeChild(a),a.childNodes.forEach(l=>{c.appendChild(l)})))}return t}ft.parse=Ip;var Bk=["html","body","address","article","aside","blockquote","canvas","dd","div","dl","dt","fieldset","figcaption","figure","footer","form","header","hr","li","main","nav","noscript","ol","p","pre","section","tfoot","table","tbody","ul","video","th","td","tr","h1","h2","h3","h4","h5","h6"];function Lk(n){return n.nodeType===At.ELEMENT_NODE&&n.tagName&&Bk.includes(n.tagName.toLowerCase())}ft.isBlock=Lk});var VC={};v0(VC,{default:()=>b0});module.exports=H1(VC);var ye=require("obsidian");var eg={};v0(eg,{AFRelationship:()=>Rs,AcroButtonFlags:()=>bt,AcroChoiceFlags:()=>ge,AcroFieldFlags:()=>jt,AcroTextFlags:()=>Me,AnnotationFlags:()=>No,AppearanceCharacteristics:()=>Ls,BlendMode:()=>Ne,Cache:()=>ht,CharCodes:()=>P,ColorTypes:()=>zo,CombedTextLayoutError:()=>Bc,CorruptPageTreeError:()=>Cs,CustomFontEmbedder:()=>Pr,CustomFontSubsetEmbedder:()=>Wd,Duplex:()=>Ns,EncryptedPDFError:()=>Ko,ExceededMaxLengthError:()=>Lc,FieldAlreadyExistsError:()=>ca,FieldExistsAsNonTerminalError:()=>Up,FileEmbedder:()=>jd,FillRule:()=>sn,FontkitNotRegisteredError:()=>Cc,ForeignPageError:()=>Sc,ImageAlignment:()=>bi,IndexOutOfBoundsError:()=>kn,InvalidAcroFieldValueError:()=>Cn,InvalidFieldNamePartError:()=>Ac,InvalidMaxLengthError:()=>Oc,InvalidPDFDateStringError:()=>lo,InvalidTargetIndexError:()=>ks,JpegEmbedder:()=>Hs,LineCapStyle:()=>hi,LineJoinStyle:()=>Ro,MethodNotImplementedError:()=>Ye,MissingCatalogError:()=>Ef,MissingDAEntryError:()=>wl,MissingKeywordError:()=>Al,MissingOnValueCheckError:()=>zp,MissingPDFHeaderError:()=>Tl,MissingPageContentsEmbeddingError:()=>ml,MissingTfOperatorError:()=>Fl,MultiSelectValueError:()=>vl,NextByteAssertionError:()=>Dl,NoSuchFieldError:()=>Tc,NonFullScreenPageMode:()=>Co,NumberParsingError:()=>Ss,PDFAcroButton:()=>xr,PDFAcroCheckBox:()=>En,PDFAcroChoice:()=>Os,PDFAcroComboBox:()=>Tn,PDFAcroField:()=>Bs,PDFAcroForm:()=>yr,PDFAcroListBox:()=>On,PDFAcroNonTerminal:()=>An,PDFAcroPushButton:()=>Bn,PDFAcroRadioButton:()=>Ln,PDFAcroSignature:()=>br,PDFAcroTerminal:()=>zt,PDFAcroText:()=>In,PDFAnnotation:()=>Rd,PDFArray:()=>X,PDFArrayIsNotRectangleError:()=>yl,PDFBool:()=>Li,PDFButton:()=>Di,PDFCatalog:()=>vr,PDFCheckBox:()=>Yt,PDFContentStream:()=>tn,PDFContext:()=>fo,PDFCrossRefSection:()=>go,PDFCrossRefStream:()=>zd,PDFDict:()=>G,PDFDocument:()=>je,PDFDropdown:()=>vi,PDFEmbeddedPage:()=>zi,PDFField:()=>at,PDFFlateStream:()=>pr,PDFFont:()=>Oe,PDFForm:()=>zn,PDFHeader:()=>en,PDFHexString:()=>j,PDFImage:()=>xi,PDFInvalidObject:()=>Is,PDFInvalidObjectParsingError:()=>kl,PDFJavaScript:()=>Un,PDFName:()=>w,PDFNull:()=>Ve,PDFNumber:()=>K,PDFObject:()=>ke,PDFObjectCopier:()=>zl,PDFObjectParser:()=>js,PDFObjectParsingError:()=>Pl,PDFObjectStream:()=>Ts,PDFObjectStreamParser:()=>Zd,PDFOperator:()=>ae,PDFOperatorNames:()=>ce,PDFOptionList:()=>wi,PDFPage:()=>Be,PDFPageEmbedder:()=>Ws,PDFPageLeaf:()=>$e,PDFPageTree:()=>wr,PDFParser:()=>ac,PDFParsingError:()=>Bi,PDFRadioGroup:()=>Jt,PDFRawStream:()=>Oi,PDFRef:()=>Y,PDFSecurity:()=>Mh,PDFSignature:()=>Ui,PDFStream:()=>Te,PDFStreamParsingError:()=>Cl,PDFStreamWriter:()=>Ud,PDFString:()=>ee,PDFSvg:()=>ui,PDFTextField:()=>Fi,PDFTrailer:()=>mr,PDFTrailerDict:()=>Md,PDFWidgetAnnotation:()=>xo,PDFWriter:()=>As,PDFXRefStreamParser:()=>Yd,PageEmbeddingMismatchedContextError:()=>bl,PageSizes:()=>Xo,ParseSpeeds:()=>Mc,PngEmbedder:()=>Us,PrintScaling:()=>Eo,PrivateConstructorError:()=>Dn,ReadingDirection:()=>So,RemovePageFromEmptyDocumentError:()=>Ec,ReparseError:()=>Pn,RichTextFieldReadError:()=>Ic,RotationTypes:()=>Gs,StalledParserError:()=>El,StandardFontEmbedder:()=>Dr,StandardFontValues:()=>Hb,StandardFonts:()=>Go,TextAlignment:()=>qe,TextRenderingMode:()=>ap,UnbalancedParenthesisError:()=>Sl,UnexpectedFieldTypeError:()=>Hi,UnexpectedObjectTypeError:()=>$i,UnrecognizedStreamTypeError:()=>xl,UnsupportedEncodingError:()=>gl,ViewerPreferences:()=>_l,addRandomSuffix:()=>U1,adjustDimsForRotation:()=>on,appendBezierCurve:()=>Pt,appendQuadraticCurve:()=>Ys,arrayAsString:()=>xn,asNumber:()=>le,asPDFName:()=>Ks,asPDFNumber:()=>_,assertEachIs:()=>hl,assertInteger:()=>Sf,assertIs:()=>T,assertIsOneOf:()=>si,assertIsOneOfOrUndefined:()=>mt,assertIsSubset:()=>Cf,assertMultiple:()=>ul,assertOrUndefined:()=>V,assertPositive:()=>Fn,assertRange:()=>xt,assertRangeOrUndefined:()=>Vt,backtick:()=>Qe,beginMarkedContent:()=>qh,beginText:()=>gc,breakTextIntoLines:()=>T0,byAscendingId:()=>B0,byteArrayToHexString:()=>V0,bytesFor:()=>sr,canBeConvertedToUint8Array:()=>R0,charAtIndex:()=>fd,charFromCode:()=>Mt,charFromHexCode:()=>C0,charSplit:()=>E0,cleanText:()=>nr,clip:()=>dc,clipEvenOdd:()=>UP,closePath:()=>an,cmyk:()=>Yh,colorString:()=>Fp,colorToComponents:()=>Jh,componentsToColor:()=>yt,concatTransformationMatrix:()=>Mi,copyStringIntoBuffer:()=>Ee,createPDFAcroField:()=>Vd,createPDFAcroFields:()=>Ms,createTypeErrorMsg:()=>Kb,createValueErrorMsg:()=>qb,decodeFromBase64:()=>D0,decodeFromBase64DataUri:()=>k0,decodePDFRawStream:()=>qs,defaultButtonAppearanceProvider:()=>Kp,defaultCheckBoxAppearanceProvider:()=>Wp,defaultDropdownAppearanceProvider:()=>Xp,defaultOptionListAppearanceProvider:()=>Zp,defaultRadioGroupAppearanceProvider:()=>jp,defaultTextFieldAppearanceProvider:()=>Gp,degrees:()=>$,degreesToRadians:()=>ci,drawButton:()=>ru,drawCheckBox:()=>aa,drawCheckMark:()=>gw,drawEllipse:()=>Dc,drawEllipsePath:()=>pw,drawImage:()=>kc,drawLine:()=>Vp,drawLinesOfText:()=>Np,drawObject:()=>Qs,drawOptionList:()=>Hp,drawPage:()=>Rp,drawRadioButton:()=>la,drawRectangle:()=>Br,drawSvgPath:()=>nu,drawText:()=>jk,drawTextField:()=>su,drawTextLines:()=>ou,encodeToBase64:()=>P0,endMarkedContent:()=>Wh,endPath:()=>fc,endText:()=>mc,error:()=>ar,escapeRegExp:()=>Cm,escapedNewlineChars:()=>Sm,fill:()=>Hh,fillAndStroke:()=>zh,fillEvenOdd:()=>lp,findLastMatch:()=>ds,getType:()=>Wb,grayscale:()=>Zh,hasSurrogates:()=>U0,hasUtf16BOM:()=>ja,highSurrogate:()=>pd,isArrayEqual:()=>hs,isNewlineChar:()=>S0,isStandardFont:()=>Ld,isType:()=>jb,isWithinBMP:()=>z0,last:()=>_r,layoutCombedText:()=>qp,layoutMultilineText:()=>au,layoutSinglelineText:()=>da,lineSplit:()=>Ha,lineTo:()=>Je,lowSurrogate:()=>gd,mergeIntoTypedArray:()=>A0,mergeLines:()=>ud,mergeUint8Arrays:()=>I0,moveText:()=>GP,moveTo:()=>Kt,newlineChars:()=>q1,nextLine:()=>cp,normalizeAppearance:()=>Zt,numberToString:()=>q0,padStart:()=>Nt,parseDate:()=>za,pdfDocEncodingDecode:()=>fl,pluckIndices:()=>N0,popGraphicsState:()=>Ue,pushGraphicsState:()=>ze,radians:()=>zP,radiansToDegrees:()=>Sv,range:()=>M0,rectangle:()=>Ev,rectanglesAreEqual:()=>Ps,reduceRotation:()=>di,restoreDashPattern:()=>WP,reverseArray:()=>rr,rgb:()=>fe,rotateAndSkewTextDegreesAndTranslate:()=>_P,rotateAndSkewTextRadiansAndTranslate:()=>_s,rotateDegrees:()=>Xs,rotateInPlace:()=>pi,rotateRadians:()=>Vo,rotateRectangle:()=>sp,scale:()=>Er,setCharacterSpacing:()=>XP,setCharacterSqueeze:()=>YP,setDashPattern:()=>Zs,setFillingCmykColor:()=>gp,setFillingColor:()=>Ni,setFillingGrayscaleColor:()=>hp,setFillingRgbColor:()=>fp,setFontAndSize:()=>Ho,setGraphicsState:()=>Rn,setLineCap:()=>uc,setLineHeight:()=>dp,setLineJoin:()=>jP,setLineWidth:()=>Tr,setStrokingCmykColor:()=>mp,setStrokingColor:()=>Ir,setStrokingGrayscaleColor:()=>up,setStrokingRgbColor:()=>pp,setTextMatrix:()=>Tv,setTextRenderingMode:()=>Uh,setTextRise:()=>JP,setWordSpacing:()=>ZP,showText:()=>pc,singleQuote:()=>Ub,sizeInBytes:()=>us,skewDegrees:()=>qP,skewRadians:()=>hc,sortedUniq:()=>L0,square:()=>KP,stringAsByteArray:()=>cs,stroke:()=>Js,sum:()=>O0,toCharCode:()=>se,toCodePoint:()=>hd,toDegrees:()=>Nn,toHexString:()=>Xi,toHexStringOfMinLength:()=>Gi,toRadians:()=>ot,toUint8Array:()=>Qr,translate:()=>Tt,typedArrayFor:()=>Ua,utf16Decode:()=>Wa,utf16Encode:()=>H0,utf8Encode:()=>K1,values:()=>Ds,waitForTick:()=>Ti});var ls="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Va=new Uint8Array(256);for(let n=0;n<ls.length;n++)Va[ls.charCodeAt(n)]=n;var P0=n=>{let e="",t=n.length;for(let i=0;i<t;i+=3)e+=ls[n[i]>>2],e+=ls[(n[i]&3)<<4|n[i+1]>>4],e+=ls[(n[i+1]&15)<<2|n[i+2]>>6],e+=ls[n[i+2]&63];return t%3===2?e=e.substring(0,e.length-1)+"=":t%3===1&&(e=e.substring(0,e.length-2)+"=="),e},D0=n=>{let e=n.length*.75,t=n.length,i,r=0,o,s,a,c;n[n.length-1]==="="&&(e--,n[n.length-2]==="="&&e--);let l=new Uint8Array(e);for(i=0;i<t;i+=4)o=Va[n.charCodeAt(i)],s=Va[n.charCodeAt(i+1)],a=Va[n.charCodeAt(i+2)],c=Va[n.charCodeAt(i+3)],l[r++]=o<<2|s>>4,l[r++]=(s&15)<<4|a>>2,l[r++]=(a&3)<<6|c&63;return l},z1=/^(data)?:?([\w\/\+]+)?;?(charset=[\w-]+|base64)?.*,/i,k0=n=>{let e=n.trim(),i=e.substring(0,100).match(z1);if(!i)return D0(e);let[r]=i,o=e.substring(r.length);return D0(o)};var se=n=>n.charCodeAt(0),hd=n=>n.codePointAt(0),Gi=(n,e)=>Nt(n.toString(16),e,"0").toUpperCase(),Xi=n=>Gi(n,2),Mt=n=>String.fromCharCode(n),C0=n=>Mt(parseInt(n,16)),Nt=(n,e,t)=>{let i="";for(let r=0,o=e-n.length;r<o;r++)i+=t;return i+n},cs=n=>{let e=new Uint8Array(n.length);return Ee(n,e,0),e},Ee=(n,e,t)=>{let i=n.length;for(let r=0;r<i;r++)e[t++]=n.charCodeAt(r);return i},U1=(n,e=4)=>`${n}-${Math.floor(Math.random()*10**e)}`,Cm=n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),nr=n=>n.replace(/\t|\u0085|\u2028|\u2029/g," ").replace(/[\b\v]/g,""),Sm=["\\n","\\f","\\r","\\u000B"],q1=[`
|
||
`,"\f","\r","\v"],S0=n=>/^[\n\f\r\u000B]$/.test(n),Ha=n=>n.split(/[\n\f\r\u000B]/),ud=n=>n.replace(/[\n\f\r\u000B]/g," "),fd=(n,e)=>{let t=n.charCodeAt(e),i,r=e+1,o=1;return t>=55296&&t<=56319&&n.length>r&&(i=n.charCodeAt(r),i>=56320&&i<=57343&&(o=2)),[n.slice(e,e+o),o]},E0=n=>{let e=[];for(let t=0,i=n.length;t<i;){let[r,o]=fd(n,t);e.push(r),t+=o}return e},W1=n=>{let e=Sm.join("|"),t=["$"];for(let r=0,o=n.length;r<o;r++){let s=n[r];if(S0(s))throw new TypeError(`\`wordBreak\` must not include ${e}`);t.push(s===""?".":Cm(s))}let i=t.join("|");return new RegExp(`(${e})|((.*?)(${i}))`,"gm")},T0=(n,e,t,i)=>{let r=W1(e),o=nr(n).match(r),s="",a=0,c=[],l=()=>{s!==""&&c.push(s),s="",a=0};for(let d=0,h=o.length;d<h;d++){let u=o[d];if(S0(u))l();else{let p=i(u);a+p>t&&l(),s+=u,a+=p}}return l(),c},j1=/^D:(\d\d\d\d)(\d\d)?(\d\d)?(\d\d)?(\d\d)?(\d\d)?([+\-Z])?(\d\d)?'?(\d\d)?'?$/,za=n=>{let e=n.match(j1);if(!e)return;let[,t,i="01",r="01",o="00",s="00",a="00",c="Z",l="00",d="00"]=e,h=c==="Z"?"Z":`${c}${l}:${d}`;return new Date(`${t}-${i}-${r}T${o}:${s}:${a}${h}`)},ds=(n,e)=>{var t;let i=0,r;for(;i<n.length;){let o=n.substring(i).match(e);if(!o)return{match:r,pos:i};r=o,i+=((t=o.index)!==null&&t!==void 0?t:0)+o[0].length}return{match:r,pos:i}};var _r=n=>n[n.length-1],Ua=n=>{if(n instanceof Uint8Array)return n;let e=n.length,t=new Uint8Array(e);for(let i=0;i<e;i++)t[i]=n.charCodeAt(i);return t},A0=(...n)=>{let e=n.length,t=[];for(let s=0;s<e;s++){let a=n[s];t[s]=a instanceof Uint8Array?a:Ua(a)}let i=0;for(let s=0;s<e;s++)i+=n[s].length;let r=new Uint8Array(i),o=0;for(let s=0;s<e;s++){let a=t[s];for(let c=0,l=a.length;c<l;c++)r[o++]=a[c]}return r},I0=n=>{let e=0;for(let r=0,o=n.length;r<o;r++)e+=n[r].length;let t=new Uint8Array(e),i=0;for(let r=0,o=n.length;r<o;r++){let s=n[r];t.set(s,i),i+=s.length}return t},xn=n=>{let e="";for(let t=0,i=n.length;t<i;t++)e+=Mt(n[t]);return e},B0=(n,e)=>n.id-e.id,L0=(n,e)=>{let t=[];for(let i=0,r=n.length;i<r;i++){let o=n[i],s=n[i-1];(i===0||e(o)!==e(s))&&t.push(o)}return t},hs=(n,e)=>{if(n.length!==e.length)return!1;for(let t=0,i=n.length;t<i;t++)if(n[t]!==e[t])return!1;return!0},rr=n=>{let e=n.length;for(let t=0,i=Math.floor(e/2);t<i;t++){let r=t,o=e-t-1,s=n[t];n[r]=n[o],n[o]=s}return n},O0=n=>{let e=0;for(let t=0,i=n.length;t<i;t++)e+=n[t];return e},M0=(n,e)=>{let t=new Array(e-n);for(let i=0,r=t.length;i<r;i++)t[i]=n+i;return t},N0=(n,e)=>{let t=new Array(e.length);for(let i=0,r=e.length;i<r;i++)t[i]=n[e[i]];return t},R0=n=>n instanceof Uint8Array||n instanceof ArrayBuffer||typeof n=="string",Qr=n=>{if(typeof n=="string")return k0(n);if(n instanceof ArrayBuffer)return new Uint8Array(n);if(n instanceof Uint8Array)return n;throw new TypeError("`input` must be one of `string | ArrayBuffer | Uint8Array`")},Em=[];for(let n=0;n<=255;++n)Em[n]=n.toString(16).padStart(2,"0");var V0=n=>{let e=new Array(n.length);for(let t=0;t<n.length;++t)e[t]=Em[n[t]];return e.join("")};var Ti=()=>new Promise(n=>{setTimeout(()=>n(),0)});var K1=(n,e=!0)=>{let t=[];e&&t.push(239,187,191);for(let i=0,r=n.length;i<r;){let o=n.codePointAt(i);if(o<128){let s=o&127;t.push(s),i+=1}else if(o<2048){let s=o>>6&31|192,a=o&63|128;t.push(s,a),i+=1}else if(o<65536){let s=o>>12&15|224,a=o>>6&63|128,c=o&63|128;t.push(s,a,c),i+=1}else if(o<1114112){let s=o>>18&7|240,a=o>>12&63|128,c=o>>6&63|128,l=o>>0&63|128;t.push(s,a,c,l),i+=2}else throw new Error(`Invalid code point: 0x${Xi(o)}`)}return new Uint8Array(t)},H0=(n,e=!0)=>{let t=[];e&&t.push(65279);for(let i=0,r=n.length;i<r;){let o=n.codePointAt(i);if(o<65536)t.push(o),i+=1;else if(o<1114112)t.push(pd(o),gd(o)),i+=2;else throw new Error(`Invalid code point: 0x${Xi(o)}`)}return new Uint16Array(t)},z0=n=>n>=0&&n<=65535,U0=n=>n>=65536&&n<=1114111,pd=n=>Math.floor((n-65536)/1024)+55296,gd=n=>(n-65536)%1024+56320,or;(function(n){n.BigEndian="BigEndian",n.LittleEndian="LittleEndian"})(or||(or={}));var qa="\uFFFD".codePointAt(0),Wa=(n,e=!0)=>{if(n.length<=1)return String.fromCodePoint(qa);let t=e?X1(n):or.BigEndian,i=e?2:0,r=[];for(;n.length-i>=2;){let o=Am(n[i++],n[i++],t);if(G1(o))if(n.length-i<2)r.push(qa);else{let s=Am(n[i++],n[i++],t);Tm(s)?r.push(o,s):r.push(qa)}else Tm(o)?(i+=2,r.push(qa)):r.push(o)}return i<n.length&&r.push(qa),String.fromCodePoint(...r)},G1=n=>n>=55296&&n<=56319,Tm=n=>n>=56320&&n<=57343,Am=(n,e,t)=>{if(t===or.LittleEndian)return e<<8|n;if(t===or.BigEndian)return n<<8|e;throw new Error(`Invalid byteOrder: ${t}`)},X1=n=>Im(n)?or.BigEndian:Bm(n)?or.LittleEndian:or.BigEndian,Im=n=>n[0]===254&&n[1]===255,Bm=n=>n[0]===255&&n[1]===254,ja=n=>Im(n)||Bm(n);var q0=n=>{let e=String(n);if(Math.abs(n)<1){let t=parseInt(n.toString().split("e-")[1]);if(t){let i=n<0;i&&(n*=-1),n*=Math.pow(10,t-1),e="0."+new Array(t).join("0")+n.toString().substring(2),i&&(e="-"+e)}}else{let t=parseInt(n.toString().split("+")[1]);t>20&&(t-=20,n/=Math.pow(10,t),e=n.toString()+new Array(t+1).join("0"))}return e},us=n=>Math.ceil(n.toString(2).length/8),sr=n=>{let e=new Uint8Array(us(n));for(let t=1;t<=e.length;t++)e[t-1]=n>>(e.length-t)*8;return e};var ar=n=>{throw new Error(n)};var vb=Ki(al()),yb="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",cl=new Uint8Array(256);for(ll=0;ll<yb.length;ll++)cl[yb.charCodeAt(ll)]=ll;var ll,zD=function(n){var e=n.length*.75,t=n.length,i,r=0,o,s,a,c;n[n.length-1]==="="&&(e--,n[n.length-2]==="="&&e--);var l=new Uint8Array(e);for(i=0;i<t;i+=4)o=cl[n.charCodeAt(i)],s=cl[n.charCodeAt(i+1)],a=cl[n.charCodeAt(i+2)],c=cl[n.charCodeAt(i+3)],l[r++]=o<<2|s>>4,l[r++]=(s&15)<<4|a>>2,l[r++]=(a&3)<<6|c&63;return l},UD=function(n){for(var e="",t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e},Bd=function(n){return UD(vb.default.inflate(zD(n)))},wb=function(n,e,t){for(var i="",r=0,o=e-n.length;r<o;r++)i+=t;return i+n};var Fb="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";var Db="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";var Pb="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";var kb="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";var Cb="eJyNnVtzG0eyrf8KA0/7RMhzJJK6+U2+zMX2mJYsEuJMzANEtihsgYQMEITaO/Z/P41CV+bKlaug86JQf6uArsrKXNVX8H8m3y9vb7u7+8m3k4t/btazm+7o5PmTZy+PTl88eXk6eTT56/Lu/tfZbTc0+Hu3eOju51ezb75bLq532maxYO2oarPb+aJndRCm3fzm425/Y8N/3M8W86tXdzeLoeXjYXv91/mX7vq3+f3Vx8m396tN92jy/cfZanZ1361+73af/PHLfXd33V2/Wd7O7sY+fvfd8svk239/8+T540ffHB+/ePTk8eOTRy+fHf/n0eR8aLxazO+635br+f18eTf59ptBBuHtx/nVp7tuvZ58+3TgF91qXZpNHj8+/svjx4+Hnfy6HAawG8z3y8/9ajeGo/+6+j9HT16+ePpo9+/z8u/L3b8vH5d/nx+9ul6+745+79f33e366B93V8vV5+Vqdt9d/+Xo6NVicfRm9z3rozfduls9DNTDOF8fzY7uV7Pr7na2+nS0/HD0y/xued9/7r4ZGi2OXv3taHZ3/X+Xq6P58AXrzfv1/Ho+W8279V+Gzv447Op6fnfz+9XHrsxA6cnv98NHZqvrqg4Nv599/vs4Ic+fvHg0eVe3np4cP5q8Wl/tAr0axR862/7m+PHzR5Pf76//Pp18+2QnDv+/2P3/9PF+vv7Z3a/mV0NA//0/k+m7ybfHz4dGvw5dWX+eDXH830d7fHJyssfdl6vF7Nb46fPTPf9jsxzi9X5hytOnz/bK3eb2/W6ibu6ydr1cLGYr4y+GiSn8c7e62qV7FZ4fH++F2e0grYf4mGQdLj0oM557/Xm26u4W3YeWRB+r3Zitd9+4/uQdfzEO9/Nis85duBqqdJZ38bH//LG7y82HocyXYiTrxWz9MQfrz261zHR512V4vxUt7z+uOtH2w3KzEnT+INqu518E7B46MbddiKmnw/xOpNXVcrG8y3jd3c6jZDOw2NlAot0fm9ki45tVN5SzD/PZkyc1abp1sZqqvHz+dJx7kX2vMvouo+8z+sH3/Oz5Hv2YO/NX/2BNhb/l7/p7Tph/5DD/lD/4c97jL156NeT/zB/8NffrLA/ot9zqdf6uN/mDv+d+vc0fPM8fvPBZOx0neppbvcvoMu/xXzn53g+L2afuPtiGhfz9oMU65c9FT7FUnK2v5vOr+epqc5tnbbOz7fWw/nR5j8XfQmfsY7M8nve51VVudZ1bieL8kD94k9HH3OV5Rv+d9/gpt/IStiXhNu/xLqNlRp9F1WerFxa4zpG4z9+1yR98yJWwza2Ek/aOdsc9xfRzV3f5FRPh+MXjmpWrRvtD2Xg/X1w3l/rr5VaYe1idPWL35TjNk+NJrbgPuwND9Fkfs1o7PiyWq7ng667xLVeb1bCMX3kAj0+wbNbzcuCaoluPWnRZ3Wzmg3K7vNdHDju5fPFX5Bh6S5wPc8HE8dNwKCcPB65nNzedSNs9x0MxOuDYzV236kTtD8dCs5vV7DOY2tOaWcNJRCd80MP7frY+EOHD6kofK9gERH04KRg/Pxxizz+v52shDWO9/7jchGPFtOyH5PaZW80eRD3Mrjb36tClePmHRfcla43Kup1drdThzvtVp3Z8vbyfXYWKc2k+zCQGwJQV1qF3trseQqqOUTd3N7PV5nYx24jdLG+Gw8xP4utmOA6Yl9uQsy688sOek+cjW66uPwzHeeHA0I9Q4iLrByCR+x7OYA/Pntoebgen2yxwF7ayzMRie70r+vVaLGCLuGNfeSK3I5KlGNRQn8Mp8ZD34hziH2lK3QliBvryH/PGlyY5qf51cfb86Cj3oC4X1/OHOSS0fyT2zA+YRXF4txsfOj/0ob4Rg3U596IygaHmr/T9hVJx3J6IGdWDfyb2zmeCPuBnAWknfs4weASchBxXJ1YDfX7yvIrjVQ+xK3IdXztjHvgodVx+VR3w8mjlaDRVP9KXw7FTqda3RWOFcCarhAzRw1yzJ/rha9z76ct66rn8s7u7EZn7Ju7Cz+LUID05DhbJocx9xQuJHc02xnrFY/Xznxw5i+rbj8uVGNUZ7d3DQFVgJ3pU8Kd1EaOwWTXRDjxienErFzjWm3KUsxL9jSnoUWzxaKtmgrebxf3886IX/WqU/9s4QEuk4Xjrfj5bXM8/fMhz1bet4de4H09YkSxeGwfT7MCq05auGuO9a9lgK2N+jQHyxZDqHy+/DUcMeA3OToFWy0/dHZ4ImTmuupv5Oh76eonGyYblONdFPdRYb4aqDucjHmw6hrTCbERm2Ur1fzU+8C+q8NOX9di1XOmK18Eszj/ef8zw+6YBLpRv2VjuGybTNVfHlvCqdfhwICtjgP18uVUavG9zhdaMtJae1jK6bu0517Ht++BhCa+Y9bigW9wLA78PJu2euF0ecMTUNfu6240YSWMNX8rjTK8FPvixq0/xCOfFySn4+JDAqyGR1/n7fud8Pa2Tv2gsJD8fXH9/iRPnpxJ2X0eZYrIFt4wYJuetGv8ldtviMETt42wBS0Mt8t2pSaxwnwu1BJgvx8MmT7WvTGCjFLrWgG6imeKAxmlVs6rPRn6XB4iWwbLnlhDXg010KmMbS/731AlbuMhtTs3Or+dXymh/iF8EB2aHDnd/pcNa625j3t4czuuD+3rV+M5XTZOOpwM2A/F73IgPHFD+2Fruad9+iVie3dkBWTwSsG87WAo0QeaXB/e0WN7s5vtuKcK9bJvpJq9jNYOGr2pU8s3Bye1gJfeYN9L3Tq7jdnHnLh80u+e3lrsfN7u7kf95NPm5W939NpuvdveQ/z15tbtbPXn0zenj/zwat/buEdC+nxGNpo7wb8PWU9/au0pAODAUzsL3nOUu4NIbuE1VoPv6Dyg4T1DGkAW2vzoU0L5wEL0OW2+HrZe+VWOGKIzehfMQi/M6ekBh9MBh9EDr6AHR6EGx0QMb6zqwYidILoatF7Y1Hbae2dblsPXkiW/WISGDvgPeDJsnvlU/CCjEAjh8H9AaC0AUC1AsFsAsFsDGWDh5CJmwDVoft/KI+tzzsRGWpiEqDuNUpM65UqsC5WqIata4LNyqnuXv5hI2rurYxFzMJlFFG9dlbTLXtglU4Mapyit/nRHUuyEqeueq8qt6niPKHmBcGYGJ2Q1MIkswrn3BZDYHE9ghTIg2UTF4RUVgGBWhaxhj6zBB+EfVwEQMUd0ZV3ZiYrsy2ViMa3cxmS3GBPYZE6LZVPyQE3KbW/UCNQIhXGg0A3QhQ1TfxsmFnLMLVQVcyBC5kHHpQlU9y9/NLmRcuZCJ2YVMIhcyrl3IZHYhE8iFjJMLVf46I3AhQ+RCzpULVfU8R5RdyLhyIROzC5lELmRcu5DJ7EImsAuZEF2oYnChisCFKkIXMsYuZIJwoaqBCxmi4jOuXMjEdmWyCxnXLmQyu5AJ7EImRBeq+CEn5Da36gVqBEK4EIYGrShyqvQokimRyM4UZLCnyMmjoiiNKjQ5a+yPLSuKyrdii2xeUScHi6K2sdiGvSyqZGhRJFcL4usGB3+LnEyOROV0ocl5Y17Y86KojC+2yO4XdbLAKGofjG3YDKPKjhjVaItBA28MHAwycHTJKLBVRlX4ZWgAphk5GUYUlX3GFl/xFTbSKGo3jW3YUqPKvhrVaK5Be2jUxbbRvm/xQ/ETrusEPRcpGRVK5LdBYrcFEbwWKTktStJnocGZ3A97LErKYVHP/ooquStK2luxBTsrauSrKJGrgvRaUnBUpOSnQVJuCg3OZezZSVFSPop6dlFUyUNR0g6KLdg/UWP3RC16JyjgnEDBN4GiayJmz0RNOCbI4JdIqdpRUl6J+kEvYJ9ESbsktmCPRI0dErXoj6A8yAzfyra9pu1ICVccR4+WaIhMxTiZoXN2wqqADRoiDzQuDbCqZ/m72fqMK98zMZueSeR4xrXdmcxeZwIZnXFyucpfZwT+ZojMzblytqqe54iypxlXhmZidjOTyMqMax8zmU3MBHYwE6J9VQzeVREYV0XoWsbYskwQflU1MCtDVH/GlU2Z2K5MNijj2p1MZmsygX3JhGhKFT/khNzmVr1AjUAIF6p9RRtyRhXuAhkRCOxEJoEVOSMvckGakcln4vvZjlxQfuRqNiTXyJFc0JbkOnuSK2RKLpArmfBaMPAlZ2RMIChnMvlcxJe9yQVlTq5md3KN7MkF7U+us0G5wg7lSrQo4+BRxsCkjKFLOWSbckX4lIlgVM6oQF1QVuXqgfpls3JBu5XrbFeusF+5Eg3L+IPI1a1o1yvWiolwrdoxdC1nZAQukGuBwK5lEriWM3ItF6RrmXwmvp9dywXlWq5m13KNXMsF7Vqus2u5Qq7lArmWCa8FA9dyRq4FgnItk89FfNm1XFCu5Wp2LdfItVzQruU6u5Yr7FquRNcyDq5lDFzLGLqWQ3YtV4RrmQiu5Ywq1AXlWq4eqF92LRe0a7nOruUKu5Yr0bWMP4hc3Yp2vWKtmAjXWo2/6OG7q4RMoGLyK8PsVqMAXlUJOVXF0qdG8Sx9L3tUxcqhqpb9qSrkThVrb6oqO1Pl5EsVkyuN+HUi4EiVkB8ZVm40iucphuxEFSsfqlp2oaqQB1WsHaiq7D+Vs/tUHr1npOA8IwHfGQm6TkXsOZULxxkl8JtKqLIqVl5TtWbNsc9UrF2mquwxlbPDVB79ZaQPKeu2qU2fiR69cJUx19FWDFHhGidjcc7OUhWwFkPkLcaluVT1LH8324tx5S8mZoMxiRzGuLYYk9ljTCCTMU4uU/nrjMBnDJHROFdOU9XzHFH2GuPKbEzMbmMS2Y1x7Tcms+GYwI5jQrScisFzKgLTqQhdxxjbjgnCd6oGxmOIas+4sh4T25XJ5mNcu4/JbD8msP+YEA2o4oeckNvcqheoEYjsQt8N9FXcip8tqDoGIBHSwvUeYiALoiAVRvEpLISmkFq+jnbV9cS3LJ0che4CxwRzWrsLiKYcFBsIMBsIsHEge/LDGPdT34pu+gPGHZDw1h8o7kCjo/4Q4g7Mugts7C6QaJs/jCXvW9OwtSv0575VRwcIuux0/3tsdXJ3ZPzJNUOj/2L4DFEMjVMgjatomphDahLF1TgH1wSOsAkxzIYp1pVfZDTNCEJviOJvPE9ClWgmKk7TUV4IjNNREU9H5TwdlcvpqKKYjirxdFSepqMKaTqqQNNRMU/HyC8ymmaE01ERT0flYjpGiadjxDQdfx1n4oVv1V0BqvEHFEIPHDoEtAYckMUamIUZ2BhhIDW4jnbjPPatOgJAdQSAwgiAwwiA1hEAshEAsxEAG0cApI7AUZ2tJ48N2UyN7Kdxqo59Kw70J5wqQGKgP9FUAY0D/SlMFTAa6E8wVUDiQH+CgTqxcTraxK08zE1jTBs5pk0eEx+SgSJGuxGj3YTR/jzZn/Kc+FY8LipIHAQVng6CCo0HQQXJA8mi0OFRYfV8BlA8Ftqhctzy1LbsWMhRPYFBFA6PnOPhEVB7TTRgO2py5MdGzvzYyNhyNwLfskg7ipF2jpF2apF2xJF2xSPtzCLtyCJtaBPivsn5oc47fp6oU46fJ+ls42eR1aCI/ODTi58nfGaxI70tUGUrLtEFpYU2vIsf6oIECgGpKhrUJAeGGlCMSNXhokYcOZKpyEileosqJD8JVIWkUkGyKmqTmuQy5Qa5YqkFFS+pXMckc0lHGaqbBCp0UlXNU5Nc/tSAnIBUbQrUiP2BZLIKUsk1orppJRJ7CalfLyThMNTgYCE1fIcaHS6k5EYkR2OKIngUCWRXpCbn+mWC1/DKVrx8t0fiyt1O2B3ej5eddptTO0bdbZULWce+aSUODOvScfwFzUE6jZLgfo3nl0m6vPPLRF3Z+SW/o+qIgnDwHVVTMRz4BueLiDAw+Q1OFkSIqtaKU9BbYp8DwWFrv/X4S8wriCAJFEdWVTRjG4xpVCCyUcD4ksJRJlnEOrZoRVy0Otykb4WS56BdwGOD0V5xDgxR9J2ruFcVI14ZxLoijLIxjq8JIrJVa8U06C2xz4HgCBpPsRuO08oJ5lPfirccCop3gwoSNyAKT/ceCo23HQqiWwqF0d2EwsKNhELqeunorZn5Gc45ojDdLlyE75mGrXdhy6/QnE3SxZmzibous6P13Nd3aee+I6oWA9NgiObCOE2IcTUrJuapMYnmxzhPkgk8UybE6TJMc4brDoWBZ6+x7pB6kb97mtG7jGBa00LEPE9wlWiWK+apDi9TwXxHTpMeRZr5KKrpjy1yDkSdEiGKnA1R5ZSIasyLqFFypPc6VfQ4TQ6916maXDT2N23wdw0O+aNfb5RizqSgUzoFjXMKXkSBjEJK+YQSZRNKKpdQz5mEKuURSpxFqHEOoRYzCBXKH3qHLceJc6f9DltucCH3M5X0naSQMerVLiHlbAGVcgUUzpT6pgCkiSHKEeOUIMZVdpiYU8MkygvjnBQmcEaYENPBMOUCvuxDYeAsaLzsQ+pF/u5pRu8ygmlP78YwzxNeJZrtinmq47k5zjgrNPEs0/yzrNKA2+Rs4BaUFCxzbrDOKcJ6zBRWKWFIftuMKadPklUWUaOL5n6nTeVdU4EMY4USjeWcb9SC0o5Uzj57uh/yzhllnAuUay6oLHM155drlFkucE65wtnkSswj55RB4UUejghnTetFHpYvxPdPBXsnGORFft8lCTkXTKMsMM7zX083YfoN0ewbp8k3rubexDz1JtHMG+eJN4Hn3YQ47YZp1vEaBIWB57xxDYLUi/zd04zeZQTTnS5KMM+TXSWa64p5qutTYzDVhmiqjdNUG1dTbWKeapNoqo3zVJvAU21CnGrDNNX44CeFgae68eAnqRf5u6cZvcsIpjo9J8k8T3WVaKorpqn+bZzl8cmE33CGkdXZRUZP1rkQHq1z7M/WOYNH6BzCM3QO7SE6R3UGgflzMmUrXjErKD7RWJC4q1J4uq5WaLx/UhDdDymMboIUFu58FBLvKv4G8zZeTdyh2KDLg7L7iIj0oDo5qHCbEHAeayfG2omxLkOK2f0+QOKRr8LTrZxC44NeBcmHw4tCT38VFh8JLyg+2/UbVscY/dcTfMS0bMVHTAsSj5gWnh4xLTQ+YlqQfMS0KPSIaWH0iGlh4RHT155GPow6tD15M9nfzYet+GxOQeLZnMLTszmFxmdzCpLP5hSFns0prE4RoPjY0ZvRn2GrZj6i4MounMetPN7zxnjP5XjP83h5IkER4z2nZ5HewEQ68WXkzQQfMnwzrhSuXcal+Q2tDyOtVzFh9g1RSIyruJiYg2MSRci4DpPJHCsTKEGMU5bgdWhGlC+N69CkngvUiJXMIRPbseJsMn44VimvTODkMiFmWL7UbghyDa+rUyvOOnVdfZTqg8SQeoYonMZVOE3M4TSJwmlch9NkDqcJlHrGKfUqfysQpZ5zlXpVPReoESuZeia2Y8WpZ/xwrFLqmcCpZ0JMPXy0nTIEUg8fbadWnHrq0fYqpefYjqXAoT3wHJtuIsKsn2PTaiPkjefYtMypqp9jk+rbpsDJe+h5B9nmvCkcjLlO6tjkazFPCR7V/5+Y52SPckr5KFPipwdBZJZiEaTnQOQnUkE0nwLZNximu5z9vfSt+g2A6hkToDApwGEPQGv4AVk4gVkMgY2BA1Lz15G/oPoWSxiQONV4S8UKNJ5qvBVlCQqdarzFAgQUTzV2aHeO98K34rsaBcV3NQoS72oUnt7VKDS+q1EQvatRGL2rUVh4V6OQ+K7GDl0tFzTyeu7qbXafeOZbdZSAqrEgwlECh1EihVNXwHXwgGzwwGzwzj72nz925Zzr2NgyjGqZZ2vZmJqlnJplnho+nQVFTJqdzgLKM2Sns45WcSsPZBW93IV1dzvPU74JpbjJ9rFpeMVGesUmewU/kgqKcJGNcJFNcpFtmPA+buUk7XPm4buILwlRENK7iMxVhNS7iCxRrPK7iCxwbPhdRMbktXj8fkqIXFcfv7OY/TcdvzPXTpyP31kgT07H78TBxQxRrRgnnzauHMHEbAsmkTcYZxswgQ3chOjihsko/LXPhQodmXrFXa4Ftnfj5PHOhdGb2K45Zfmmke8bZ/M3gVeAKqRloArLHAxeEIwfygGxNJjUyIHGImFyK0V4uTDeSAVeOCpfCdQYul5HqioWkyrBimKo4ahybTGx7Zy8yhjXS43JLWNNi44J2li3Odt6gRrlpFajcKCPa1IUOI5R5fUpqjLWsYmIeGzAcY9qCm+UU5CjTKGOIq9k6XLAqRR4VTtwOUA3ESucvhyg1cZq17gcoGVe+fTlAKmi7UeBiz6qvCJGVXpibCKcMTZgf4xqssEop/UyyrRqRpENM6jsaCTGdTS+SNeq5bSmRpVXVlLV+hqbfM1L5FobW/CKG9W07kY5rb5BzmtwfMmuFc60Hkf16xmo1ubY4GAGttbp2OhwmqY1O6oHEzGt30FdNYWDYWus6KGNWtdDA1zdo3BwbdIrfWzytdUnrfpRbaz9sdHhJSofB0T50BK1bdVA3xQOWkM+Sjif4BM953g8ACg+x3OeVn7g6XriOa7xgOiZnfOwmgMLT+qc47rtqNroiRH6IZR6PRnH2nj1xjmN+tCrNy7m8TdevXHOkWi9euNCjEnj1RvjFJ30ysrIG6+sEKdgHXplhUQVtq+8skI6BfDgKyukcigPvLJCGgVVvr2hIsjhlW9vBEqhbb+9ESQV1oNvbwSVQnrg7Y2gcTibb28EhUIpXm3IseIw5lcbHFEAG682OFeha7/a4BIFrfVqgwscLv1qg2MKFL8SQKHgEDVfCUgKBezwKwFJVuH76isBqQUF8yuvBCSdQ3vwlYCkUqAbz8LruHLYxbPwwCjUrWfhQVDhPfAsPGgU0uaz8KBwGBvPwgOn0KVHxzkqHC77iW0IlzMKlwsULhdUuFzN4XKNwuUCh8sVDpcrMVzOKVwmULiMc7jGXw6GYFVCoaqYAlWxClPVcpCqQiGqmANUOYen8hicSik0I6bAjJTCcjGG5IVvxdOVCwwFIHG2d0EhABrP6y7C0IHRNYQLGDKQeJK2Q/6zzGUrzlxB8SzLhbO4FVOhIDHfhae5LjTOc0Hy94KLQrNfWD0/BRSnd4d20/rMt+IpS0E1BIDEdYvC0ylNofH6Q0F00aEwutJQ2DhjQOoIHMXT2YtJekR7h+Kguzw5dqUGkZ6vTs5XuBADOE9jJyarozLdMbu44tm5u6Dy0rfiKXlB4jy88HTyXWg84y5InmYXhc6tC6s5Biheyr2Y5Ke2dyxfiNjRTZjZTc7GTSP1NjL1Njn1+DICKCIpNyIpNyEpp6PrwVbs9RRdD5AYyJRcD2gcyDS4HjDq7hRcD0isoekEH7iboncBEo95Tcm7gMYHuqbCu0ChR7em6F2A4oNx09G7Tn0r3gyYoncBEjcFpuRdQOPl/2nwLmD0q7VT8C4g8Vr+FLzrCRC8Cj0drWv/I2VTtC5A9nYJoPwLbVOyLqT4donj+BNt02BdwPztEmNmXT7UZUi4ZS6SZaMilrIilrki2LpAEbVi1gUoFwZdqJ2Sc/m87Zzr1MZvzgUoJp5zTDynlniO+GaTK56SzjwlndWUNNKHeupz3fepvi9Hwxt/qekSHQ+ZvZEGLL6IAwK+iQPYXsUB5m/cAPRXbgDWd24A2RtpznbW99y34ot8l8n6gKd3+y7R+gDRxIFigwFW8xJQ7bajmS2wl2h9gOLN4stkfcDTscElWh8gOgK4DNYHLFxHv0Trc1RL6CmQW/xl5svR+174VjyfuETvQ5TPJy7J+5CC9wGOpxmXwfuA0WnG5Wh0MARzOmTq1cxL8jrE9GrmpXA7lPitzUv0O2T0hublJP8Y9iVZns/XJjbaiIFuWgPd6IFuxEDZ91BSA3XnQxhfT7206/RgBukmRBLY0/RtiKQKd0s3IpKQfC7fikgKOV66GcECeF96x4y5ckH1jhlL5Ietd8xYZmdM75gxJ4+sHIzSELmlcbJM48o3TczmaRI5qHG2URPYS02IhmqYXNVvMoVS5XtPXANgc4bIaY2T3ToXnmtiNl6XsvuaRhZsnH3YBDbjKizFoJMtmyAty1ThW6axeZnQcDDTk42ZwqZtAjt3upPIgvDwKm1E8+TmJhyMj/J101rxaTm86c34ZK83hQyfbvlVJ1T3/JTGzt+866caCP9X9/2UllYBeedPibQWqHt/QoMVASktCiipdQH1vDSgSqsDSnqBwBa8RqBGywRKtFKABIsFUlovUKIlAyW1aqCeFw5Uae1AiZcP1HgFQS0uIqjQOhJuBgfHELeJRYGBaSOlNQUlWlaCJFYW1PPiEtS8vqBMSwxKvMqgxgsNaEsdkrTcoCYdFRsIU0WZfRW1hrVik+SuKPIChBqvQepRAaGJlQjUjf5QWo9Q+1oA1aqE8oEAttYmbHIogHmFQjEuUkM5TfxXQsqW/66PoXj/yYXd3yTc/5WH3dY2bPl1nrIVr/MUlK7zVNfDHhmibhmXfasqdLCibUZ97gH313ju9Ngx7LQh6rRx2emqQqcr2mbU5x5wp43nTodnlaDnkVP3oyjHEJrAQALfNnjf6B+PK4p5cJDuMDSkNDCU5LCgAQwK6FbSXvaJh4NSHkx9zAdGYoiGYVyOoaowgIq2GfW5B9xv47nT9tgH9NoZddsF2W+ToePGtoL1oh/cdxdy5+0hDOi8M+q8C7Lz4c/Tjx0Nf56eWS/6wZ2Xf55+1MYHJaDrlVDHK5bdhr96PXYQ/up1JH3aN3dX/NXrUam/QAe9NUTdNS77i38kd+we/pFcQn3uAfdZ/ZHcvfR+oAvbc9ny4wRDqpdF8IObijbhq+nv4b1PxxrAZd/o7+G9FwcUoNCN0Pfh8AFY+LWK92OkfauPW3kMOY5XA/VA7LY+Be2T+gGRqzH4sBX3dZWDD0K8xXs1dtx70MeZvKKOj7QeC3zMCIZgSPamqguBaETGD38RjQ2PbaiTPEp1bDNK9uJrRjBUQ7KHVV0IREM1fviLaKj4viR1koeq3pes0nBat1jMaLAGcbgOdT9NX0jIg3bla1/HAzelV11Og3clD39/cjRZf55d7T5yOtJywp3/bM1xlhta/MLh9GxybTstW1f7v10LyE38Ovj3dR2ob9kIHeHQ9nTcA+7YEO298of86W1GvUDUI+OpW7uKG4O03zleSj028hA+sA1bX8JWH7diR1J97yldpx87whd2jyN+yJ/fZvQlo14g6qb0or1EPz4w9pVfTz+O+CF/fpvRl4x6gaiv0kxGSbwmUjus3hI5FtpD4+u2Df6lwfsW5+G0zqpGPV+IG0ckrsEcJ+VBftFW0i+S9prSKBonU1X1a3M8CFB4FCA96O/aavxF476BeSio5bHQayHjOPitkOOIH/Lntxl9yagXiPqrzgdHiV8PGDub3g44Jv4gvmIr2BfBesWoy/I0cNT4Gf2xz+kR/WPiD+IrtoJ9EaxXjPosz/722ocJXiSvpItb8aigoHotHFH+AePC05HDnuKflHUcf9e4IPr14sLo14t3bGlHOWUrHjIVJE6KCk8nGoXGk6KC5ElRUeikqLB46FVQfDr0wyRcgq6IDp1OohDozX6unvjGOGwg40whgTgA9jAg9GkCOsYGSA0AoDpHjvykXVxeaF5aqO1gpEbicA3HMTvOAzctjd6VFAKTYhwMUzCMU0TyZeCbxmXgm4OXgSOEMOkfgdBiDNmBn4DQLVL42j8AoRvEUDZ+/kGrFNao3rTCxCEmVQW6/knNY9+KNsN/SHNPP43utHfcT+hOgKJ9Ok+W/QndCRDfA3LFHdSZXVVyZHfK9ij/SoYWaCyHfiVDN8kjbPxKhlb1uFu/kqFlikbjVzL26iKszouwBi/y6ruQ6+4inwct8knPonHSs2if9MQrAvj1+QchtEC7av8gxNig/v2XbUa9QPT16u/P7qXbCV7pLFux2goSi3rhqQoLjYt6QXJRLwot6oXRlc7CwpXO2wn+2d1bHDEg6N2e3k3qTWXbikddd2mwwNMh1t0k3DA2JP9GxN0k3h42RkdZdxO8GVzJ7uD11LbcHsU9FH335C4+4RURBaH1fFcUczjE012R68CoZ7uiwCHKT3YFDMHKt5LvUrUzz7HD37t7Qohip3/vjsUcu/R7d8x17PLv3bHAsePfuyMMscNLLhQIjp265FKl9JtCT6TAcTzwm0K6iYip/k0hrTbi2/hNIS2nWMvfFJIixj0tITKUaQ6aS8jYoN47gzkwRNE3ruJuYo64SRRr4zrKJnN8TeDImhBjivcbTyPqcyA4gu2bi8sJ3llbhnV4t+V/uGkZdrXMe1nqHaB3EYJd4UXck9iqzx/kPbcdbpmucCoOHUlXOE9E+77xPdyvrzw3Aoeu2DV5uRIpdEs++xEodengsx9LvGpHCLqCV+1OYqs+f5B70H6Kg47FsRekQGdIgT6R0je/jXvIcu5ouF7IDDoXrheeULtefJa7cuCxkXrWgX3IB9OGoAd4fE0f5P2r4+tRQksiBLuvCHafjWvZMK5l27g+T/D84DN+FlA6K6gXzFp3GKPeEuM9RvoqU1+4uug+3Ncv3f//m9NnptYPXscPGa73DIXmN3wjjnGMmrrpG1vEa49BC3ERY1jFsBiuHVJavRostdBZ0WI3t88ErjtUWvzFUtLqTWuthu6oFnnyq+SFMgRp96wHbsUJK6j2EpF1DuB4/f2ZkeugW/o4urF6KFt2KcsRXb8ywV569y9bxq08EHXlvPBU1IXGk+yC5El2Uegku7CYvQXFK+c7ZFfOPWx/hAbrMO51NJcVZhEimx+EjVje11s5ZSO0cv5QL0yu9oYHG+GC7Cra3QjtdrsPzRBNlHFKO+ece3Qvv0ay4uvcklPRnqn2uBiipDQuo2lPSFF6Vr4UqDF+ma0m5pQ1ifLWuE5ekzmDTaA0Nk65zM9O8DT8kZuuc+A4v41TkjvnTHfl0AR5bhtRiQ8nDZTJfSaxDsS5wKjY8xweEUOUDMapGJxzMfBfqngW8XVuycVQORSDISoG4zLW6Y9H0A6WAjXGL4tB/e0IlqgYWn87gmUuhvS3I5hTMaS/HUHT8Eduus6B42IwTsXgnIvBlUMT5PluRBUDXMGiTO4zicUgLl9VJVxUwZKIAidGVLk8SE1FEnUqlSBetz6Vyibfr3uqBC6hg/frVJtUTukGlxYORlAXWPMGl27AxXbwBpdulApP3+DSKhdhUFMpBvWP1sfWrWlIxRlVLlFSU6GS/vU0gLqMXJYuXwqV1de3OBVz6zroXo/Xi2qYEOUHEj0gATbuAcJLjXQKPG6Vv905vuhnyJ/1IU63yIN6YadQlUwT2f0JyvHM3JAlB3G8EBClevY+npa/yOKo7PN3mMOJO1rZigVeUDUbQKLQC0/VXWgs6YKoRAuj+4mFhfuJhcT6fADrfWFk518nvhVvOj4kpwKebkY+oCcBIiMCxX9xzVm1HEB1HI7op8u2MLRTI27N2+zH24YJb6XzbrPdbpseuxXGus1uus0WusWh7Qeyu4Ls9x3KVry1UVB8rm6P8o2OwtM9jj1Nz9UVHO96FER3NAqjmxn9WCsnvhXzqsdaASRSradaARpTrQ+1Asx/ws/ZWCtAYo71qVb6MA99noc+z0PfmIdezkOv56HP89CLeegb81CK4KltWRE4ikXgHIvAqRWBIy4CV7wInFkROLIiMET1XRdEzCpDlFrGKb+MqyQzMWeaSZRuxjnnTODEMyFmn2FKQb7MQqGAdDBEGWmc0tK5yE0Tc4K6lLPUNEpV45yvJnDShms3TyOi9G1cuyExJ3K+dkNcp7S4dkMCJXe+dhM5pzncpINMR0rJjhLlO0oq5VHPWY8qJT5KnPuocfqjFisAFSqC/C6IiBWkG1KqBpSoIIIkagL1XBZBzZWBMhUHSlwfqHGJgAZVgpQKBSVVK6jnckGVKgYlXTTYgusGNSodlKh6xGtAY1L8OYHnmP+EHAASnlj+k2ccMJ9n/UnzCzQ8hfwnziag+Lzxn+DjTGKn2cUTzt0XHp6UNBB2cMY0pOTfI68nm10mcVyG47gc53GZlsblShqXSXFchmlcxmlc+JJUp2kcX5DiGKOUxxn0NNaopvEGOY45SDTuoMHY//O//w/7Vd1G";var Sb="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";var Eb="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";var Tb="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";var Ab="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";var Ib="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";var Bb="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";var Lb="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";var Ob="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";var Mb="eJxtmNtu20YQhl+F4FULyMGeD7pz3AY1ChtG7NpFA18w1NomIlECSRcxgrx7SVk7+wOdG8H5OJydf2Z2d5gf9cV+t0v9VK/r+6vXsXlOlbHe28paq229qj/t++m62aXZ4J/m8PRb1z9/baZxefK63Z6eXN5dVMvTCh83u277xr/6kLrnl2XNq7TpXnczuZyabdee98/b2VzM/x4/dd/T5qab2pd6PQ2vaVVfvDRD005puE3Lu7eH1HbN9hTjx4/77/X6y5lcnUmjVzHIVVDicVX/1W/SsO36dLMfu6nb9/X6TAoBD+5euvZbn8axXtuZ36dhPJrVQqgPQoh5hev91LWLkIv94W1Ygq9+aX+tZAx2tfz64284/sblN/rqfLP/mqrbt3FKu7G67Nv9cNgPzZQ2H6rz7bb6vLgZq89pTMO/M/xfEqturJpqSM/d7GJIm2oamk3aNcO3av80O5xh3yyKmm1193ZIT02bqovTKjP+MAf++7zsZvZ3276kYyWWXB0z99S18/PbafPHQ71W4fjn/fxnFO+ZvkrT0LVzTr78qB/+nk38bHM9exgP8zr1z9U7jt6840YW5uSJKcZOCaBBnKgm5mU8MVNYyMwWFvO7Ukagkmgg6sDWQ5yFFqjzUrLEaQ3BEmiwNsMSaZS0vgWfOkPHWQowNeTUc0kumnxZvsgPxlGai6VTGUqAVCTQ6QkWnc77DKEiLktSUBJKqHIQZ86d8gCpHYoiEzMsb1ubYy8vW50DChB5ZhGqrijD0EqUIeiaEHIfCg5Kpuu0ApiToaGPSY0uaQsyr65L2oKi1yFt1PLaQ3lzfXTgXodGoJYzglndSLDMPg1sTPJpQJHJigw0QrGERqD9YhyTOgONQDUyuF1zaxuokc/BW2ztXCMrGZ9WMW1oQZHIXWNBkSCfRZEL5BMUiZw6CzVSFCfUSGZFNjIldoKDkonTKQiJIGzWmFd3BizJJ9SINoLDriOfUCOZS+zg+KGD1qGiLNMLxtJD1/ns00ON6EzyUCM6vbxhoBKaqbG3DFQCNiL1iHccBPV0DHhQH/JW8EW90dkyFKGywCJU0WkVSvSGeiSUODWFFD0HYdPQVoiRgfPMA+/nnRgiAyNYSjpWNQcNSMrtFCUH4ZIRpSCWocFCSuhCEY6hoUClc0WC52BJlCYYLQdhN+hygRRRlo5BKRRLS6oihSqh+ZzzRGG1Mo4Iz1LoP0qsxDGFzk0JE42ji0jCPejomJKCuwil4m5CiRMEUMVSzVLDUstSx1Juc0oVWMpqY295qVltmtWmWW2a1aZZbZrVplltmtWmWW2G1WZYbYbVZlhthtVmWG2G1WZYbYbVZlhtltVmWW2W1WZZbZbVZlltltVmWW2W1QYjQCh7E2aAQHeGhCFgPoNoy8KNb2wxBhmGKBxoUZXlLGsLI6AsftEDHV0wIURVbANLcTKlGGBIKPOAxCmhePCKUwFzAmpDFRQvjA9R06Hq8TONvshgKDCuRAZTXigUxjxNFfKRo3CLhnIJBMFRvMZpqpNBMlQJzGT5WFQMVQI/AikPMIhEU1aDjqJvQwmjSHB05cC9jbYwc5UtAHNLhDw41ha+lEqF4JaH3gmB61SYcqInxTDmQK8v08vjqv4zDf1N0w3Lf4A8/vwPpfK11w==";var iP={Courier:kb,"Courier-Bold":Fb,"Courier-Oblique":Pb,"Courier-BoldOblique":Db,Helvetica:Tb,"Helvetica-Bold":Cb,"Helvetica-Oblique":Eb,"Helvetica-BoldOblique":Sb,"Times-Roman":Lb,"Times-Bold":Ab,"Times-Italic":Bb,"Times-BoldItalic":Ib,Symbol:Ob,ZapfDingbats:Mb},ao;(function(n){n.Courier="Courier",n.CourierBold="Courier-Bold",n.CourierOblique="Courier-Oblique",n.CourierBoldOblique="Courier-BoldOblique",n.Helvetica="Helvetica",n.HelveticaBold="Helvetica-Bold",n.HelveticaOblique="Helvetica-Oblique",n.HelveticaBoldOblique="Helvetica-BoldOblique",n.TimesRoman="Times-Roman",n.TimesRomanBold="Times-Bold",n.TimesRomanItalic="Times-Italic",n.TimesRomanBoldItalic="Times-BoldItalic",n.Symbol="Symbol",n.ZapfDingbats="ZapfDingbats"})(ao||(ao={}));var Nb={},Rb=function(){function n(){var e=this;this.getWidthOfGlyph=function(t){return e.CharWidths[t]},this.getXAxisKerningForPair=function(t,i){return(e.KernPairXAmounts[t]||{})[i]}}return n.load=function(e){var t=Nb[e];if(t)return t;var i=Bd(iP[e]),r=Object.assign(new n,JSON.parse(i));return r.CharWidths=r.CharMetrics.reduce(function(o,s){return o[s.N]=s.WX,o},{}),r.KernPairXAmounts=r.KernPairs.reduce(function(o,s){var a=s[0],c=s[1],l=s[2];return o[a]||(o[a]={}),o[a][c]=l,o},{}),Nb[e]=r,r},n}();var Vb="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";var rP=Bd(Vb),Pf=JSON.parse(rP),kf=function(){function n(e,t){var i=this;this.canEncodeUnicodeCodePoint=function(r){return r in i.unicodeMappings},this.encodeUnicodeCodePoint=function(r){var o=i.unicodeMappings[r];if(!o){var s=String.fromCharCode(r),a="0x"+wb(r.toString(16),4,"0"),c=i.name+' cannot encode "'+s+'" ('+a+")";throw new Error(c)}return{code:o[0],name:o[1]}},this.name=e,this.supportedCodePoints=Object.keys(t).map(Number).sort(function(r,o){return r-o}),this.unicodeMappings=t}return n}(),dl={Symbol:new kf("Symbol",Pf.symbol),ZapfDingbats:new kf("ZapfDingbats",Pf.zapfdingbats),WinAnsi:new kf("WinAnsi",Pf.win1252)};var Ds=n=>Object.keys(n).map(e=>n[e]),Hb=Ds(ao),Ld=n=>Hb.includes(n),Ps=(n,e)=>n.x===e.x&&n.y===e.y&&n.width===e.width&&n.height===e.height;var Qe=n=>`\`${n}\``,Ub=n=>`'${n}'`,zb=n=>{let e=typeof n;return e==="string"?Ub(n):e==="undefined"?Qe(n):n},qb=(n,e,t)=>{let i=new Array(t.length);for(let o=0,s=t.length;o<s;o++){let a=t[o];i[o]=zb(a)}let r=i.join(" or ");return`${Qe(e)} must be one of ${r}, but was actually ${zb(n)}`},si=(n,e,t)=>{Array.isArray(t)||(t=Ds(t));for(let i=0,r=t.length;i<r;i++)if(n===t[i])return;throw new TypeError(qb(n,e,t))},mt=(n,e,t)=>{Array.isArray(t)||(t=Ds(t)),si(n,e,t.concat(void 0))},Cf=(n,e,t)=>{Array.isArray(t)||(t=Ds(t));for(let i=0,r=n.length;i<r;i++)si(n[i],e,t)},Wb=n=>n===null?"null":n===void 0?"undefined":typeof n=="string"?"string":isNaN(n)?"NaN":typeof n=="number"?"number":typeof n=="boolean"?"boolean":typeof n=="symbol"?"symbol":typeof n=="bigint"?"bigint":n.constructor&&n.constructor.name?n.constructor.name:n.name?n.name:n.constructor?String(n.constructor):String(n),jb=(n,e)=>e==="null"?n===null:e==="undefined"?n===void 0:e==="string"?typeof n=="string":e==="number"?typeof n=="number"&&!isNaN(n):e==="boolean"?typeof n=="boolean":e==="symbol"?typeof n=="symbol":e==="bigint"?typeof n=="bigint":e===Date?n instanceof Date:e===Array?n instanceof Array:e===Uint8Array?n instanceof Uint8Array:e===ArrayBuffer?n instanceof ArrayBuffer:e===Function?n instanceof Function:n instanceof e[0],Kb=(n,e,t)=>{let i=new Array(t.length);for(let o=0,s=t.length;o<s;o++){let a=t[o];a==="null"&&(i[o]=Qe("null")),a==="undefined"&&(i[o]=Qe("undefined")),a==="string"?i[o]=Qe("string"):a==="number"?i[o]=Qe("number"):a==="boolean"?i[o]=Qe("boolean"):a==="symbol"?i[o]=Qe("symbol"):a==="bigint"?i[o]=Qe("bigint"):a===Array?i[o]=Qe("Array"):a===Uint8Array?i[o]=Qe("Uint8Array"):a===ArrayBuffer?i[o]=Qe("ArrayBuffer"):i[o]=Qe(a[1])}let r=i.join(" or ");return`${Qe(e)} must be of type ${r}, but was actually of type ${Qe(Wb(n))}`},T=(n,e,t)=>{for(let i=0,r=t.length;i<r;i++)if(jb(n,t[i]))return;throw new TypeError(Kb(n,e,t))},V=(n,e,t)=>{T(n,e,t.concat("undefined"))},hl=(n,e,t)=>{for(let i=0,r=n.length;i<r;i++)T(n[i],e,t)},xt=(n,e,t,i)=>{if(T(n,e,["number"]),T(t,"min",["number"]),T(i,"max",["number"]),i=Math.max(t,i),n<t||n>i)throw new Error(`${Qe(e)} must be at least ${t} and at most ${i}, but was actually ${n}`)},Vt=(n,e,t,i)=>{T(n,e,["number","undefined"]),typeof n=="number"&&xt(n,e,t,i)},ul=(n,e,t)=>{if(T(n,e,["number"]),n%t!==0)throw new Error(`${Qe(e)} must be a multiple of ${t}, but was actually ${n}`)},Sf=(n,e)=>{if(!Number.isInteger(n))throw new Error(`${Qe(e)} must be an integer, but was actually ${n}`)},Fn=(n,e)=>{if(![1,0].includes(Math.sign(n)))throw new Error(`${Qe(e)} must be a positive number or 0, but was actually ${n}`)};var he=new Uint16Array(256);for(let n=0;n<256;n++)he[n]=n;he[22]=se("");he[24]=se("\u02D8");he[25]=se("\u02C7");he[26]=se("\u02C6");he[27]=se("\u02D9");he[28]=se("\u02DD");he[29]=se("\u02DB");he[30]=se("\u02DA");he[31]=se("\u02DC");he[127]=se("\uFFFD");he[128]=se("\u2022");he[129]=se("\u2020");he[130]=se("\u2021");he[131]=se("\u2026");he[132]=se("\u2014");he[133]=se("\u2013");he[134]=se("\u0192");he[135]=se("\u2044");he[136]=se("\u2039");he[137]=se("\u203A");he[138]=se("\u2212");he[139]=se("\u2030");he[140]=se("\u201E");he[141]=se("\u201C");he[142]=se("\u201D");he[143]=se("\u2018");he[144]=se("\u2019");he[145]=se("\u201A");he[146]=se("\u2122");he[147]=se("\uFB01");he[148]=se("\uFB02");he[149]=se("\u0141");he[150]=se("\u0152");he[151]=se("\u0160");he[152]=se("\u0178");he[153]=se("\u017D");he[154]=se("\u0131");he[155]=se("\u0142");he[156]=se("\u0153");he[157]=se("\u0161");he[158]=se("\u017E");he[159]=se("\uFFFD");he[160]=se("\u20AC");he[173]=se("\uFFFD");var fl=n=>{let e=new Array(n.length);for(let t=0,i=n.length;t<i;t++)e[t]=he[n[t]];return String.fromCodePoint(...e)};var pl=class{constructor(e){this.populate=e,this.value=void 0}getValue(){return this.value}access(){return this.value||(this.value=this.populate()),this.value}invalidate(){this.value=void 0}};pl.populatedBy=n=>new pl(n);var ht=pl;var Ye=class extends Error{constructor(e,t){let i=`Method ${e}.${t}() not implemented`;super(i)}},Dn=class extends Error{constructor(e){let t=`Cannot construct ${e} - it has a private constructor`;super(t)}},$i=class extends Error{constructor(e,t){let i=s=>{var a,c;return(a=s==null?void 0:s.name)!==null&&a!==void 0?a:(c=s==null?void 0:s.constructor)===null||c===void 0?void 0:c.name},o=`Expected instance of ${(Array.isArray(e)?e.map(i):[i(e)]).join(" or ")}, but got instance of ${t&&i(t)}`;super(o)}},gl=class extends Error{constructor(e){let t=`${e} stream encoding not supported`;super(t)}},Pn=class extends Error{constructor(e,t){let i=`Cannot call ${e}.${t}() more than once`;super(i)}},Ef=class extends Error{constructor(e){let t=`Missing catalog (ref=${e})`;super(t)}},ml=class extends Error{constructor(){super("Can't embed page with missing Contents")}},xl=class extends Error{constructor(e){var t,i,r;let s=`Unrecognized stream type: ${(r=(i=(t=e==null?void 0:e.contructor)===null||t===void 0?void 0:t.name)!==null&&i!==void 0?i:e==null?void 0:e.name)!==null&&r!==void 0?r:e}`;super(s)}},bl=class extends Error{constructor(){super("Found mismatched contexts while embedding pages. All pages in the array passed to `PDFDocument.embedPages()` must be from the same document.")}},yl=class extends Error{constructor(e){let t=`Attempted to convert PDFArray with ${e} elements to rectangle, but must have exactly 4 elements.`;super(t)}},lo=class extends Error{constructor(e){let t=`Attempted to convert "${e}" to a date, but it does not match the PDF date string format.`;super(t)}},ks=class extends Error{constructor(e,t){let i=`Invalid targetIndex specified: targetIndex=${e} must be less than Count=${t}`;super(i)}},Cs=class extends Error{constructor(e,t){let i=`Failed to ${t} at targetIndex=${e} due to corrupt page tree: It is likely that one or more 'Count' entries are invalid`;super(i)}},kn=class extends Error{constructor(e,t,i){let r=`index should be at least ${t} and at most ${i}, but was actually ${e}`;super(r)}},Cn=class extends Error{constructor(){super("Attempted to set invalid field value")}},vl=class extends Error{constructor(){super("Attempted to select multiple values for single-select field")}},wl=class extends Error{constructor(e){let t=`No /DA (default appearance) entry found for field: ${e}`;super(t)}},Fl=class extends Error{constructor(e){let t=`No Tf operator found for DA of field: ${e}`;super(t)}},Ss=class extends Error{constructor(e,t){let i=`Failed to parse number (line:${e.line} col:${e.column} offset=${e.offset}): "${t}"`;super(i)}},Bi=class extends Error{constructor(e,t){let i=`Failed to parse PDF document (line:${e.line} col:${e.column} offset=${e.offset}): ${t}`;super(i)}},Dl=class extends Bi{constructor(e,t,i){let r=`Expected next byte to be ${t} but it was actually ${i}`;super(e,r)}},Pl=class extends Bi{constructor(e,t){let i=`Failed to parse PDF object starting with the following byte: ${t}`;super(e,i)}},kl=class extends Bi{constructor(e){super(e,"Failed to parse invalid PDF object")}},Cl=class extends Bi{constructor(e){super(e,"Failed to parse PDF stream")}},Sl=class extends Bi{constructor(e){super(e,"Failed to parse PDF literal string due to unbalanced parenthesis")}},El=class extends Bi{constructor(e){super(e,"Parser stalled")}},Tl=class extends Bi{constructor(e){super(e,"No PDF header found")}},Al=class extends Bi{constructor(e,t){let i=`Did not find expected keyword '${xn(t)}'`;super(e,i)}};var Tf;(function(n){n[n.Null=0]="Null",n[n.Backspace=8]="Backspace",n[n.Tab=9]="Tab",n[n.Newline=10]="Newline",n[n.FormFeed=12]="FormFeed",n[n.CarriageReturn=13]="CarriageReturn",n[n.Space=32]="Space",n[n.ExclamationPoint=33]="ExclamationPoint",n[n.Hash=35]="Hash",n[n.Percent=37]="Percent",n[n.LeftParen=40]="LeftParen",n[n.RightParen=41]="RightParen",n[n.Plus=43]="Plus",n[n.Minus=45]="Minus",n[n.Dash=45]="Dash",n[n.Period=46]="Period",n[n.ForwardSlash=47]="ForwardSlash",n[n.Zero=48]="Zero",n[n.One=49]="One",n[n.Two=50]="Two",n[n.Three=51]="Three",n[n.Four=52]="Four",n[n.Five=53]="Five",n[n.Six=54]="Six",n[n.Seven=55]="Seven",n[n.Eight=56]="Eight",n[n.Nine=57]="Nine",n[n.LessThan=60]="LessThan",n[n.GreaterThan=62]="GreaterThan",n[n.A=65]="A",n[n.D=68]="D",n[n.E=69]="E",n[n.F=70]="F",n[n.O=79]="O",n[n.P=80]="P",n[n.R=82]="R",n[n.LeftSquareBracket=91]="LeftSquareBracket",n[n.BackSlash=92]="BackSlash",n[n.RightSquareBracket=93]="RightSquareBracket",n[n.a=97]="a",n[n.b=98]="b",n[n.d=100]="d",n[n.e=101]="e",n[n.f=102]="f",n[n.i=105]="i",n[n.j=106]="j",n[n.l=108]="l",n[n.m=109]="m",n[n.n=110]="n",n[n.o=111]="o",n[n.r=114]="r",n[n.s=115]="s",n[n.t=116]="t",n[n.u=117]="u",n[n.x=120]="x",n[n.LeftCurly=123]="LeftCurly",n[n.RightCurly=125]="RightCurly",n[n.Tilde=126]="Tilde"})(Tf||(Tf={}));var P=Tf;var _b=Ki(al(),1);var Il=class{constructor(e,t){this.major=String(e),this.minor=String(t)}getVersionString(){return`${this.major}.${this.minor}`}toString(){let e=Mt(129);return`%PDF-${this.major}.${this.minor}
|
||
%${e}${e}${e}${e}`}sizeInBytes(){return 12+this.major.length+this.minor.length}copyBytesInto(e,t){let i=t;return e[t++]=P.Percent,e[t++]=P.P,e[t++]=P.D,e[t++]=P.F,e[t++]=P.Dash,t+=Ee(this.major,e,t),e[t++]=P.Period,t+=Ee(this.minor,e,t),e[t++]=P.Newline,e[t++]=P.Percent,e[t++]=129,e[t++]=129,e[t++]=129,e[t++]=129,t-i}};Il.forVersion=(n,e)=>new Il(n,e);var en=Il;var Af=class{clone(e){throw new Ye(this.constructor.name,"clone")}toString(){throw new Ye(this.constructor.name,"toString")}sizeInBytes(){throw new Ye(this.constructor.name,"sizeInBytes")}copyBytesInto(e,t){throw new Ye(this.constructor.name,"copyBytesInto")}},ke=Af;var Bl=class n extends ke{constructor(e){super(),this.numberValue=e,this.stringValue=q0(e)}asNumber(){return this.numberValue}value(){return this.numberValue}clone(){return n.of(this.numberValue)}toString(){return this.stringValue}sizeInBytes(){return this.stringValue.length}copyBytesInto(e,t){return t+=Ee(this.stringValue,e,t),this.stringValue.length}};Bl.of=n=>new Bl(n);var K=Bl;var Ll=class n extends ke{constructor(e){super(),this.array=[],this.context=e}size(){return this.array.length}push(e){this.array.push(e)}insert(e,t){this.array.splice(e,0,t)}indexOf(e){let t=this.array.indexOf(e);return t===-1?void 0:t}remove(e){this.array.splice(e,1)}set(e,t){this.array[e]=t}get(e){return this.array[e]}lookupMaybe(e,...t){return this.context.lookupMaybe(this.get(e),...t)}lookup(e,...t){return this.context.lookup(this.get(e),...t)}asRectangle(){if(this.size()!==4)throw new yl(this.size());let e=this.lookup(0,K).asNumber(),t=this.lookup(1,K).asNumber(),i=this.lookup(2,K).asNumber(),r=this.lookup(3,K).asNumber(),o=Math.min(e,i),s=Math.min(t,r),a=Math.abs(e-i),c=Math.abs(t-r);return{x:o,y:s,width:a,height:c}}asArray(){return this.array.slice()}clone(e){let t=n.withContext(e||this.context);for(let i=0,r=this.size();i<r;i++)t.push(this.array[i]);return t}toString(){let e="[ ";for(let t=0,i=this.size();t<i;t++)e+=this.get(t).toString(),e+=" ";return e+="]",e}sizeInBytes(){let e=3;for(let t=0,i=this.size();t<i;t++)e+=this.get(t).sizeInBytes()+1;return e}copyBytesInto(e,t){let i=t;e[t++]=P.LeftSquareBracket,e[t++]=P.Space;for(let r=0,o=this.size();r<o;r++)t+=this.get(r).copyBytesInto(e,t),e[t++]=P.Space;return e[t++]=P.RightSquareBracket,t-i}scalePDFNumbers(e,t){for(let i=0,r=this.size();i<r;i++){let o=this.lookup(i);if(o instanceof K){let s=i%2===0?e:t;this.set(i,K.of(o.asNumber()*s))}}}};Ll.withContext=n=>new Ll(n);var X=Ll;var If={},co=class extends ke{constructor(e,t){if(e!==If)throw new Dn("PDFBool");super(),this.value=t}asBoolean(){return this.value}clone(){return this}toString(){return String(this.value)}sizeInBytes(){return this.value?4:5}copyBytesInto(e,t){return this.value?(e[t++]=P.t,e[t++]=P.r,e[t++]=P.u,e[t++]=P.e,4):(e[t++]=P.f,e[t++]=P.a,e[t++]=P.l,e[t++]=P.s,e[t++]=P.e,5)}};co.True=new co(If,!0);co.False=new co(If,!1);var Li=co;var Ht=new Uint8Array(256);Ht[P.LeftParen]=1;Ht[P.RightParen]=1;Ht[P.LessThan]=1;Ht[P.GreaterThan]=1;Ht[P.LeftSquareBracket]=1;Ht[P.RightSquareBracket]=1;Ht[P.LeftCurly]=1;Ht[P.RightCurly]=1;Ht[P.ForwardSlash]=1;Ht[P.Percent]=1;var ai=new Uint8Array(256);ai[P.Null]=1;ai[P.Tab]=1;ai[P.Newline]=1;ai[P.FormFeed]=1;ai[P.CarriageReturn]=1;ai[P.Space]=1;var Od=new Uint8Array(256);for(let n=0,e=256;n<e;n++)Od[n]=ai[n]||Ht[n]?1:0;Od[P.Hash]=1;var oP=n=>n.replace(/#([\dABCDEF]{2})/g,(e,t)=>C0(t)),sP=n=>n>=P.ExclamationPoint&&n<=P.Tilde&&!Od[n],Xb={},Gb=new Map,re=class extends ke{constructor(e,t){if(e!==Xb)throw new Dn("PDFName");super();let i="/";for(let r=0,o=t.length;r<o;r++){let s=t[r],a=se(s);i+=sP(a)?s:`#${Xi(a)}`}this.encodedName=i}asBytes(){let e=[],t="",i=!1,r=o=>{o!==void 0&&e.push(o),i=!1};for(let o=1,s=this.encodedName.length;o<s;o++){let a=this.encodedName[o],c=se(a),l=this.encodedName[o+1];i?c>=P.Zero&&c<=P.Nine||c>=P.a&&c<=P.f||c>=P.A&&c<=P.F?(t+=a,(t.length===2||!(l>="0"&&l<="9"||l>="a"&&l<="f"||l>="A"&&l<="F"))&&(r(parseInt(t,16)),t="")):r(c):c===P.Hash?i=!0:r(c)}return new Uint8Array(e)}decodeText(){let e=this.asBytes();return String.fromCharCode(...Array.from(e))}asString(){return this.encodedName}value(){return this.encodedName}clone(){return this}toString(){return this.encodedName}sizeInBytes(){return this.encodedName.length}copyBytesInto(e,t){return t+=Ee(this.encodedName,e,t),this.encodedName.length}};re.of=n=>{let e=oP(n),t=Gb.get(e);return t||(t=new re(Xb,e),Gb.set(e,t)),t};re.Length=re.of("Length");re.FlateDecode=re.of("FlateDecode");re.Resources=re.of("Resources");re.Font=re.of("Font");re.XObject=re.of("XObject");re.ExtGState=re.of("ExtGState");re.Contents=re.of("Contents");re.Type=re.of("Type");re.Parent=re.of("Parent");re.MediaBox=re.of("MediaBox");re.Page=re.of("Page");re.Annots=re.of("Annots");re.TrimBox=re.of("TrimBox");re.ArtBox=re.of("ArtBox");re.BleedBox=re.of("BleedBox");re.CropBox=re.of("CropBox");re.Rotate=re.of("Rotate");re.Title=re.of("Title");re.Author=re.of("Author");re.Subject=re.of("Subject");re.Creator=re.of("Creator");re.Keywords=re.of("Keywords");re.Producer=re.of("Producer");re.CreationDate=re.of("CreationDate");re.ModDate=re.of("ModDate");var w=re;var Bf=class extends ke{asNull(){return null}clone(){return this}toString(){return"null"}sizeInBytes(){return 4}copyBytesInto(e,t){return e[t++]=P.n,e[t++]=P.u,e[t++]=P.l,e[t++]=P.l,4}},Ve=new Bf;var ho=class n extends ke{constructor(e,t){super(),this.suppressEncryption=!1,this.dict=e,this.context=t}keys(){return Array.from(this.dict.keys())}values(){return Array.from(this.dict.values())}entries(){return Array.from(this.dict.entries())}set(e,t){this.dict.set(e,t)}get(e,t=!1){let i=this.dict.get(e);if(!(i===Ve&&!t))return i}has(e){let t=this.dict.get(e);return t!==void 0&&t!==Ve}lookupMaybe(e,...t){let i=t.includes(Ve),r=this.context.lookupMaybe(this.get(e,i),...t);if(!(r===Ve&&!i))return r}lookup(e,...t){let i=t.includes(Ve),r=this.context.lookup(this.get(e,i),...t);if(!(r===Ve&&!i))return r}delete(e){return this.dict.delete(e)}asMap(){return new Map(this.dict)}uniqueKey(e=""){let t=this.keys(),i=w.of(this.context.addRandomSuffix(e,10));for(;t.includes(i);)i=w.of(this.context.addRandomSuffix(e,10));return i}clone(e){let t=n.withContext(e||this.context),i=this.entries();for(let r=0,o=i.length;r<o;r++){let[s,a]=i[r];t.set(s,a)}return t}toString(){let e=`<<
|
||
`,t=this.entries();for(let i=0,r=t.length;i<r;i++){let[o,s]=t[i];e+=o.toString()+" "+s.toString()+`
|
||
`}return e+=">>",e}sizeInBytes(){let e=5,t=this.entries();for(let i=0,r=t.length;i<r;i++){let[o,s]=t[i];e+=o.sizeInBytes()+s.sizeInBytes()+2}return e}copyBytesInto(e,t){let i=t;e[t++]=P.LessThan,e[t++]=P.LessThan,e[t++]=P.Newline;let r=this.entries();for(let o=0,s=r.length;o<s;o++){let[a,c]=r[o];t+=a.copyBytesInto(e,t),e[t++]=P.Space,t+=c.copyBytesInto(e,t),e[t++]=P.Newline}return e[t++]=P.GreaterThan,e[t++]=P.GreaterThan,t-i}};ho.withContext=n=>new ho(new Map,n);ho.fromMapWithContext=(n,e)=>new ho(n,e);var G=ho;var Sn=class n extends ke{constructor(e){super(),this.value=e}asBytes(){let e=this.value+(this.value.length%2===1?"0":""),t=e.length,i=new Uint8Array(e.length/2),r=0,o=0;for(;r<t;){let s=parseInt(e.substring(r,r+2),16);i[o]=s,r+=2,o+=1}return i}decodeText(){let e=this.asBytes();return ja(e)?Wa(e):fl(e)}decodeDate(){let e=this.decodeText(),t=za(e);if(!t)throw new lo(e);return t}asString(){return this.value}clone(){return n.of(this.value)}toString(){return`<${this.value}>`}sizeInBytes(){return this.value.length+2}copyBytesInto(e,t){return e[t++]=P.LessThan,t+=Ee(this.value,e,t),e[t++]=P.GreaterThan,this.value.length+2}};Sn.of=n=>new Sn(n);Sn.fromText=n=>{let e=H0(n),t="";for(let i=0,r=e.length;i<r;i++)t+=Gi(e[i],4);return new Sn(t)};Sn.fromBytes=n=>Sn.of(V0(n));var j=Sn;var Lf=class extends ke{constructor(e){super(),this.dict=e}clone(e){throw new Ye(this.constructor.name,"clone")}getContentsString(){throw new Ye(this.constructor.name,"getContentsString")}getContents(){throw new Ye(this.constructor.name,"getContents")}getContentsSize(){throw new Ye(this.constructor.name,"getContentsSize")}updateContents(e){throw new Ye(this.constructor.name,"updateContents")}updateDict(){let e=this.getContentsSize();this.dict.set(w.Length,K.of(e))}sizeInBytes(){return this.updateDict(),this.dict.sizeInBytes()+this.getContentsSize()+18}toString(){this.updateDict();let e=this.dict.toString();return e+=`
|
||
stream
|
||
`,e+=this.getContentsString(),e+=`
|
||
endstream`,e}copyBytesInto(e,t){this.updateDict();let i=t;t+=this.dict.copyBytesInto(e,t),e[t++]=P.Newline,e[t++]=P.s,e[t++]=P.t,e[t++]=P.r,e[t++]=P.e,e[t++]=P.a,e[t++]=P.m,e[t++]=P.Newline;let r=this.getContents();for(let o=0,s=r.length;o<s;o++)e[t++]=r[o];return e[t++]=P.Newline,e[t++]=P.e,e[t++]=P.n,e[t++]=P.d,e[t++]=P.s,e[t++]=P.t,e[t++]=P.r,e[t++]=P.e,e[t++]=P.a,e[t++]=P.m,t-i}},Te=Lf;var Ol=class n extends Te{constructor(e,t,i){super(e),this.contents=t,this.transform=i}asUint8Array(){return this.contents.slice()}clone(e){return n.of(this.dict.clone(e),this.contents.slice())}getContentsString(){return xn(this.contents)}getContents(){return this.contents}getContentsSize(){return this.contents.length}updateContents(e){this.contents=e}};Ol.of=(n,e,t)=>new Ol(n,e,t);var Oi=Ol;var Yb={},Zb=new Map,Ml=class extends ke{constructor(e,t,i){if(e!==Yb)throw new Dn("PDFRef");super(),this.objectNumber=t,this.generationNumber=i,this.tag=`${t} ${i} R`}clone(){return this}toString(){return this.tag}sizeInBytes(){return this.tag.length}copyBytesInto(e,t){return t+=Ee(this.tag,e,t),this.tag.length}};Ml.of=(n,e=0)=>{let t=`${n} ${e} R`,i=Zb.get(t);return i||(i=new Ml(Yb,n,e),Zb.set(t,i)),i};var Y=Ml;var uo=class n extends ke{constructor(e){super(),this.value=e}asBytes(){let e=[],t="",i=!1,r=o=>{o!==void 0&&e.push(o),i=!1};for(let o=0,s=this.value.length;o<s;o++){let a=this.value[o],c=se(a),l=this.value[o+1];i?c===P.Newline||c===P.CarriageReturn?r():c===P.n?r(P.Newline):c===P.r?r(P.CarriageReturn):c===P.t?r(P.Tab):c===P.b?r(P.Backspace):c===P.f?r(P.FormFeed):c===P.LeftParen?r(P.LeftParen):c===P.RightParen?r(P.RightParen):c===P.Backspace?r(P.BackSlash):c>=P.Zero&&c<=P.Seven?(t+=a,(t.length===3||!(l>="0"&&l<="7"))&&(r(parseInt(t,8)),t="")):r(c):c===P.BackSlash?i=!0:r(c)}return new Uint8Array(e)}decodeText(){let e=this.asBytes();return ja(e)?Wa(e):fl(e)}decodeDate(){let e=this.decodeText(),t=za(e);if(!t)throw new lo(e);return t}asString(){return this.value}clone(){return n.of(this.value)}toString(){return`(${this.value})`}sizeInBytes(){return this.value.length+2}copyBytesInto(e,t){return e[t++]=P.LeftParen,t+=Ee(this.value,e,t),e[t++]=P.RightParen,this.value.length+2}};uo.of=n=>new uo(n);uo.fromDate=n=>{let e=Nt(String(n.getUTCFullYear()),4,"0"),t=Nt(String(n.getUTCMonth()+1),2,"0"),i=Nt(String(n.getUTCDate()),2,"0"),r=Nt(String(n.getUTCHours()),2,"0"),o=Nt(String(n.getUTCMinutes()),2,"0"),s=Nt(String(n.getUTCSeconds()),2,"0");return new uo(`D:${e}${t}${i}${r}${o}${s}Z`)};var ee=uo;var Nl=class n{constructor(e,t){this.name=e,this.args=t||[]}clone(e){let t=new Array(this.args.length);for(let i=0,r=t.length;i<r;i++){let o=this.args[i];t[i]=o instanceof ke?o.clone(e):o}return n.of(this.name,t)}toString(){let e="";for(let t=0,i=this.args.length;t<i;t++)e+=String(this.args[t])+" ";return e+=this.name,e}sizeInBytes(){let e=0;for(let t=0,i=this.args.length;t<i;t++){let r=this.args[t];e+=(r instanceof ke?r.sizeInBytes():r.length)+1}return e+=this.name.length,e}copyBytesInto(e,t){let i=t;for(let r=0,o=this.args.length;r<o;r++){let s=this.args[r];s instanceof ke?t+=s.copyBytesInto(e,t):t+=Ee(s,e,t),e[t++]=P.Space}return t+=Ee(this.name,e,t),t-i}};Nl.of=(n,e)=>new Nl(n,e);var ae=Nl;var Of;(function(n){n.NonStrokingColor="sc",n.NonStrokingColorN="scn",n.NonStrokingColorRgb="rg",n.NonStrokingColorGray="g",n.NonStrokingColorCmyk="k",n.NonStrokingColorspace="cs",n.StrokingColor="SC",n.StrokingColorN="SCN",n.StrokingColorRgb="RG",n.StrokingColorGray="G",n.StrokingColorCmyk="K",n.StrokingColorspace="CS",n.BeginMarkedContentSequence="BDC",n.BeginMarkedContent="BMC",n.EndMarkedContent="EMC",n.MarkedContentPointWithProps="DP",n.MarkedContentPoint="MP",n.DrawObject="Do",n.ConcatTransformationMatrix="cm",n.PopGraphicsState="Q",n.PushGraphicsState="q",n.SetFlatness="i",n.SetGraphicsStateParams="gs",n.SetLineCapStyle="J",n.SetLineDashPattern="d",n.SetLineJoinStyle="j",n.SetLineMiterLimit="M",n.SetLineWidth="w",n.SetTextMatrix="Tm",n.SetRenderingIntent="ri",n.AppendRectangle="re",n.BeginInlineImage="BI",n.BeginInlineImageData="ID",n.EndInlineImage="EI",n.ClipEvenOdd="W*",n.ClipNonZero="W",n.CloseAndStroke="s",n.CloseFillEvenOddAndStroke="b*",n.CloseFillNonZeroAndStroke="b",n.ClosePath="h",n.AppendBezierCurve="c",n.CurveToReplicateFinalPoint="y",n.CurveToReplicateInitialPoint="v",n.EndPath="n",n.FillEvenOddAndStroke="B*",n.FillEvenOdd="f*",n.FillNonZeroAndStroke="B",n.FillNonZero="f",n.LegacyFillNonZero="F",n.LineTo="l",n.MoveTo="m",n.ShadingFill="sh",n.StrokePath="S",n.BeginText="BT",n.EndText="ET",n.MoveText="Td",n.MoveTextSetLeading="TD",n.NextLine="T*",n.SetCharacterSpacing="Tc",n.SetFontAndSize="Tf",n.SetTextHorizontalScaling="Tz",n.SetTextLineHeight="TL",n.SetTextRenderingMode="Tr",n.SetTextRise="Ts",n.SetWordSpacing="Tw",n.ShowText="Tj",n.ShowTextAdjusted="TJ",n.ShowTextLine="'",n.ShowTextLineAndSpace='"',n.Type3D0="d0",n.Type3D1="d1",n.BeginCompatibilitySection="BX",n.EndCompatibilitySection="EX"})(Of||(Of={}));var ce=Of;var Jb=Ki(al(),1);var Mf=class extends Te{constructor(e,t){super(e),this.computeContents=()=>{let i=this.getUnencodedContents();return this.encode?Jb.default.deflate(i):i},this.encode=t,t&&e.set(w.of("Filter"),w.of("FlateDecode")),this.contentsCache=ht.populatedBy(this.computeContents)}getContents(){return this.contentsCache.access()}getContentsSize(){return this.contentsCache.access().length}getUnencodedContents(){throw new Ye(this.constructor.name,"getUnencodedContents")}updateContents(e){this.contentsCache=ht.populatedBy(()=>e)}},pr=Mf;var Rl=class n extends pr{constructor(e,t,i=!0){super(e,i),this.operators=t}push(...e){this.operators.push(...e)}clone(e){let t=new Array(this.operators.length);for(let o=0,s=this.operators.length;o<s;o++)t[o]=this.operators[o].clone(e);let{dict:i,encode:r}=this;return n.of(i.clone(e),t,r)}getContentsString(){let e="";for(let t=0,i=this.operators.length;t<i;t++)e+=`${this.operators[t]}
|
||
`;return e}getUnencodedContents(){let e=new Uint8Array(this.getUnencodedContentsSize()),t=0;for(let i=0,r=this.operators.length;i<r;i++)t+=this.operators[i].copyBytesInto(e,t),e[t++]=P.Newline;return e}getUnencodedContentsSize(){let e=0;for(let t=0,i=this.operators.length;t<i;t++)e+=this.operators[t].sizeInBytes()+1;return e}};Rl.of=(n,e,t=!0)=>new Rl(n,e,t);var tn=Rl;var Es=class{constructor(e){this.seed=e}nextInt(){let e=Math.sin(this.seed++)*1e4;return e-Math.floor(e)}};Es.withSeed=n=>new Es(n);var aP=([n],[e])=>n.objectNumber-e.objectNumber,Vl=class{constructor(){this.isDecrypted=!0,this.largestObjectNumber=0,this.header=en.forVersion(1,7),this.trailerInfo={},this.indirectObjects=new Map,this.rng=Es.withSeed(1)}assign(e,t){this.indirectObjects.set(e,t),e.objectNumber>this.largestObjectNumber&&(this.largestObjectNumber=e.objectNumber)}nextRef(){return this.largestObjectNumber+=1,Y.of(this.largestObjectNumber)}register(e){let t=this.nextRef();return this.assign(t,e),t}delete(e){return this.indirectObjects.delete(e)}lookupMaybe(e,...t){let i=t.includes(Ve),r=e instanceof Y?this.indirectObjects.get(e):e;if(!(!r||r===Ve&&!i)){for(let o=0,s=t.length;o<s;o++){let a=t[o];if(a===Ve){if(r===Ve)return r}else if(r instanceof a)return r}throw new $i(t,r)}}lookup(e,...t){let i=e instanceof Y?this.indirectObjects.get(e):e;if(t.length===0)return i;for(let r=0,o=t.length;r<o;r++){let s=t[r];if(s===Ve){if(i===Ve)return i}else if(i instanceof s)return i}throw new $i(t,i)}getObjectRef(e){let t=Array.from(this.indirectObjects.entries());for(let i=0,r=t.length;i<r;i++){let[o,s]=t[i];if(s===e)return o}}enumerateIndirectObjects(){return Array.from(this.indirectObjects.entries()).sort(aP)}obj(e){if(e instanceof ke)return e;if(e==null)return Ve;if(typeof e=="string")return w.of(e);if(typeof e=="number")return K.of(e);if(typeof e=="boolean")return e?Li.True:Li.False;if(e instanceof Uint8Array)return j.fromBytes(e);if(Array.isArray(e)){let t=X.withContext(this);for(let i=0,r=e.length;i<r;i++)t.push(this.obj(e[i]));return t}else{let t=G.withContext(this),i=Object.keys(e);for(let r=0,o=i.length;r<o;r++){let s=i[r],a=e[s];a!==void 0&&t.set(w.of(s),this.obj(a))}return t}}getLiteral(e,{deep:t=!0,literalRef:i=!1,literalStreamDict:r=!1,literalString:o=!1}={}){let s={deep:t,literalRef:i,literalStreamDict:r,literalString:o};if(e instanceof X){let a=e.asArray();return t?a.map(c=>this.getLiteral(c,s)):a}else{if(e instanceof Li)return e.asBoolean();if(e instanceof G){let a={},c=e.entries();for(let l=0,d=c.length;l<d;l++){let[h,u]=c[l];a[this.getLiteral(h)]=t?this.getLiteral(u,s):u}return a}else{if(e instanceof w)return e.decodeText();if(e===Ve)return null;if(e instanceof K)return e.asNumber();if(e instanceof Y&&i)return e.objectNumber;if(e instanceof Te&&r)return this.getLiteral(e.dict,s);if((e instanceof ee||e instanceof j)&&o)return e.asString()}}return e}stream(e,t={}){return Oi.of(this.obj(t),Ua(e))}flateStream(e,t={}){return this.stream(_b.default.deflate(Ua(e)),{...t,Filter:"FlateDecode"})}contentStream(e,t={}){return tn.of(this.obj(t),e)}formXObject(e,t={}){return this.contentStream(e,{BBox:this.obj([0,0,0,0]),Matrix:this.obj([1,0,0,1,0,0]),...t,Type:"XObject",Subtype:"Form"})}getPushGraphicsStateContentStream(){if(this.pushGraphicsStateContentStreamRef)return this.pushGraphicsStateContentStreamRef;let e=this.obj({}),t=ae.of(ce.PushGraphicsState),i=tn.of(e,[t]);return this.pushGraphicsStateContentStreamRef=this.register(i),this.pushGraphicsStateContentStreamRef}getPopGraphicsStateContentStream(){if(this.popGraphicsStateContentStreamRef)return this.popGraphicsStateContentStreamRef;let e=this.obj({}),t=ae.of(ce.PopGraphicsState),i=tn.of(e,[t]);return this.popGraphicsStateContentStreamRef=this.register(i),this.popGraphicsStateContentStreamRef}addRandomSuffix(e,t=4){return`${e}-${Math.floor(this.rng.nextInt()*10**t)}`}};Vl.create=()=>new Vl;var fo=Vl;var gr=class n extends G{constructor(e,t,i=!0){super(e,t),this.normalized=!1,this.autoNormalizeCTM=i}clone(e){let t=n.fromMapWithContext(new Map,e||this.context,this.autoNormalizeCTM),i=this.entries();for(let r=0,o=i.length;r<o;r++){let[s,a]=i[r];t.set(s,a)}return t}Parent(){return this.lookupMaybe(w.Parent,G)}Contents(){return this.lookup(w.of("Contents"))}Annots(){return this.lookupMaybe(w.Annots,X)}BleedBox(){return this.lookupMaybe(w.BleedBox,X)}TrimBox(){return this.lookupMaybe(w.TrimBox,X)}ArtBox(){return this.lookupMaybe(w.ArtBox,X)}Resources(){let e=this.getInheritableAttribute(w.Resources);return this.context.lookupMaybe(e,G)}MediaBox(){let e=this.getInheritableAttribute(w.MediaBox);return this.context.lookup(e,X)}CropBox(){let e=this.getInheritableAttribute(w.CropBox);return this.context.lookupMaybe(e,X)}Rotate(){let e=this.getInheritableAttribute(w.Rotate);return this.context.lookupMaybe(e,K)}getInheritableAttribute(e){let t;return this.ascend(i=>{t||(t=i.get(e))}),t}setParent(e){this.set(w.Parent,e)}addContentStream(e){let t=this.normalizedEntries().Contents||this.context.obj([]);this.set(w.Contents,t),t.push(e)}wrapContentStreams(e,t){let i=this.Contents();return i instanceof X?(i.insert(0,e),i.push(t),!0):!1}addAnnot(e){let{Annots:t}=this.normalizedEntries();t.push(e)}removeAnnot(e){let{Annots:t}=this.normalizedEntries(),i=t.indexOf(e);i!==void 0&&t.remove(i)}setFontDictionary(e,t){let{Font:i}=this.normalizedEntries();i.set(e,t)}newFontDictionaryKey(e){let{Font:t}=this.normalizedEntries();return t.uniqueKey(e)}newFontDictionary(e,t){let i=this.newFontDictionaryKey(e);return this.setFontDictionary(i,t),i}setXObject(e,t){let{XObject:i}=this.normalizedEntries();i.set(e,t)}newXObjectKey(e){let{XObject:t}=this.normalizedEntries();return t.uniqueKey(e)}newXObject(e,t){let i=this.newXObjectKey(e);return this.setXObject(i,t),i}setExtGState(e,t){let{ExtGState:i}=this.normalizedEntries();i.set(e,t)}newExtGStateKey(e){let{ExtGState:t}=this.normalizedEntries();return t.uniqueKey(e)}newExtGState(e,t){let i=this.newExtGStateKey(e);return this.setExtGState(i,t),i}ascend(e){e(this);let t=this.Parent();t&&t.ascend(e)}normalize(){if(this.normalized)return;let{context:e}=this,t=this.get(w.Contents);this.context.lookup(t)instanceof Te&&this.set(w.Contents,e.obj([t])),this.autoNormalizeCTM&&this.wrapContentStreams(this.context.getPushGraphicsStateContentStream(),this.context.getPopGraphicsStateContentStream());let r=this.getInheritableAttribute(w.Resources),o=e.lookupMaybe(r,G)||e.obj({});this.set(w.Resources,o);let s=o.lookupMaybe(w.Font,G)||e.obj({});o.set(w.Font,s);let a=o.lookupMaybe(w.XObject,G)||e.obj({});o.set(w.XObject,a);let c=o.lookupMaybe(w.ExtGState,G)||e.obj({});o.set(w.ExtGState,c);let l=this.Annots()||e.obj([]);this.set(w.Annots,l),this.normalized=!0}normalizedEntries(){this.normalize();let e=this.Annots(),t=this.Resources(),i=this.Contents();return{Annots:e,Resources:t,Contents:i,Font:t.lookup(w.Font,G),XObject:t.lookup(w.XObject,G),ExtGState:t.lookup(w.ExtGState,G)}}};gr.InheritableEntries=["Resources","MediaBox","CropBox","Rotate"];gr.withContextAndParent=(n,e)=>{let t=new Map;return t.set(w.Type,w.Page),t.set(w.Parent,e),t.set(w.Resources,n.obj({})),t.set(w.MediaBox,n.obj([0,0,612,792])),new gr(t,n,!1)};gr.fromMapWithContext=(n,e,t=!0)=>new gr(n,e,t);var $e=gr;var Hl=class{constructor(e,t){this.traversedObjects=new Map,this.copy=i=>i instanceof $e?this.copyPDFPage(i):i instanceof G?this.copyPDFDict(i):i instanceof X?this.copyPDFArray(i):i instanceof Te?this.copyPDFStream(i):i instanceof Y?this.copyPDFIndirectObject(i):i.clone(),this.copyPDFPage=i=>{let r=i.clone(),{InheritableEntries:o}=$e;for(let s=0,a=o.length;s<a;s++){let c=w.of(o[s]),l=r.getInheritableAttribute(c);!r.get(c)&&l&&r.set(c,l)}return r.delete(w.of("Parent")),this.copyPDFDict(r)},this.copyPDFDict=i=>{if(this.traversedObjects.has(i))return this.traversedObjects.get(i);let r=i.clone(this.dest);this.traversedObjects.set(i,r);let o=i.entries();for(let s=0,a=o.length;s<a;s++){let[c,l]=o[s];r.set(c,this.copy(l))}return r},this.copyPDFArray=i=>{if(this.traversedObjects.has(i))return this.traversedObjects.get(i);let r=i.clone(this.dest);this.traversedObjects.set(i,r);for(let o=0,s=i.size();o<s;o++){let a=i.get(o);r.set(o,this.copy(a))}return r},this.copyPDFStream=i=>{if(this.traversedObjects.has(i))return this.traversedObjects.get(i);let r=i.clone(this.dest);this.traversedObjects.set(i,r);let o=i.dict.entries();for(let s=0,a=o.length;s<a;s++){let[c,l]=o[s];r.dict.set(c,this.copy(l))}return r},this.copyPDFIndirectObject=i=>{if(!this.traversedObjects.has(i)){let o=this.dest.nextRef();this.traversedObjects.set(i,o);let s=this.src.lookup(i);if(s){let a=this.copy(s);this.dest.assign(o,a)}}return this.traversedObjects.get(i)},this.src=e,this.dest=t}};Hl.for=(n,e)=>new Hl(n,e);var zl=Hl;var po=class{constructor(e){this.subsections=e?[[e]]:[],this.chunkIdx=0,this.chunkLength=e?1:0}addEntry(e,t){this.append({ref:e,offset:t,deleted:!1})}addDeletedEntry(e,t){this.append({ref:e,offset:t,deleted:!0})}toString(){let e=`xref
|
||
`;for(let t=0,i=this.subsections.length;t<i;t++){let r=this.subsections[t];e+=`${r[0].ref.objectNumber} ${r.length}
|
||
`;for(let o=0,s=r.length;o<s;o++){let a=r[o];e+=Nt(String(a.offset),10,"0"),e+=" ",e+=Nt(String(a.ref.generationNumber),5,"0"),e+=" ",e+=a.deleted?"f":"n",e+=`
|
||
`}}return e}sizeInBytes(){let e=5;for(let t=0,i=this.subsections.length;t<i;t++){let r=this.subsections[t],o=r.length,[s]=r;e+=2,e+=String(s.ref.objectNumber).length,e+=String(o).length,e+=20*o}return e}copyBytesInto(e,t){let i=t;return e[t++]=P.x,e[t++]=P.r,e[t++]=P.e,e[t++]=P.f,e[t++]=P.Newline,t+=this.copySubsectionsIntoBuffer(this.subsections,e,t),t-i}copySubsectionsIntoBuffer(e,t,i){let r=i,o=e.length;for(let s=0;s<o;s++){let a=this.subsections[s],c=String(a[0].ref.objectNumber);i+=Ee(c,t,i),t[i++]=P.Space;let l=String(a.length);i+=Ee(l,t,i),t[i++]=P.Newline,i+=this.copyEntriesIntoBuffer(a,t,i)}return i-r}copyEntriesIntoBuffer(e,t,i){let r=e.length;for(let o=0;o<r;o++){let s=e[o],a=Nt(String(s.offset),10,"0");i+=Ee(a,t,i),t[i++]=P.Space;let c=Nt(String(s.ref.generationNumber),5,"0");i+=Ee(c,t,i),t[i++]=P.Space,t[i++]=s.deleted?P.f:P.n,t[i++]=P.Space,t[i++]=P.Newline}return 20*r}append(e){if(this.chunkLength===0){this.subsections.push([e]),this.chunkIdx=0,this.chunkLength=1;return}let t=this.subsections[this.chunkIdx],i=t[this.chunkLength-1];e.ref.objectNumber-i.ref.objectNumber>1?(this.subsections.push([e]),this.chunkIdx+=1,this.chunkLength=1):(t.push(e),this.chunkLength+=1)}};po.create=()=>new po({ref:Y.of(0,65535),offset:0,deleted:!0});po.createEmpty=()=>new po;var go=po;var Ul=class{constructor(e){this.lastXRefOffset=String(e)}toString(){return`startxref
|
||
${this.lastXRefOffset}
|
||
%%EOF`}sizeInBytes(){return 16+this.lastXRefOffset.length}copyBytesInto(e,t){let i=t;return e[t++]=P.s,e[t++]=P.t,e[t++]=P.a,e[t++]=P.r,e[t++]=P.t,e[t++]=P.x,e[t++]=P.r,e[t++]=P.e,e[t++]=P.f,e[t++]=P.Newline,t+=Ee(this.lastXRefOffset,e,t),e[t++]=P.Newline,e[t++]=P.Percent,e[t++]=P.Percent,e[t++]=P.E,e[t++]=P.O,e[t++]=P.F,t-i}};Ul.forLastCrossRefSectionOffset=n=>new Ul(n);var mr=Ul;var ql=class{constructor(e){this.dict=e}toString(){return`trailer
|
||
${this.dict.toString()}`}sizeInBytes(){return 8+this.dict.sizeInBytes()}copyBytesInto(e,t){let i=t;return e[t++]=P.t,e[t++]=P.r,e[t++]=P.a,e[t++]=P.i,e[t++]=P.l,e[t++]=P.e,e[t++]=P.r,e[t++]=P.Newline,t+=this.dict.copyBytesInto(e,t),t-i}};ql.of=n=>new ql(n);var Md=ql;var Wl=class n extends pr{constructor(e,t,i=!0){super(e.obj({}),i),this.objects=t,this.offsets=this.computeObjectOffsets(),this.offsetsString=this.computeOffsetsString(),this.dict.set(w.of("Type"),w.of("ObjStm")),this.dict.set(w.of("N"),K.of(this.objects.length)),this.dict.set(w.of("First"),K.of(this.offsetsString.length))}getObjectsCount(){return this.objects.length}clone(e){return n.withContextAndObjects(e||this.dict.context,this.objects.slice(),this.encode)}getContentsString(){let e=this.offsetsString;for(let t=0,i=this.objects.length;t<i;t++){let[,r]=this.objects[t];e+=`${r}
|
||
`}return e}getUnencodedContents(){let e=new Uint8Array(this.getUnencodedContentsSize()),t=Ee(this.offsetsString,e,0);for(let i=0,r=this.objects.length;i<r;i++){let[,o]=this.objects[i];t+=o.copyBytesInto(e,t),e[t++]=P.Newline}return e}getUnencodedContentsSize(){return this.offsetsString.length+_r(this.offsets)[1]+_r(this.objects)[1].sizeInBytes()+1}computeOffsetsString(){let e="";for(let t=0,i=this.offsets.length;t<i;t++){let[r,o]=this.offsets[t];e+=`${r} ${o} `}return e}computeObjectOffsets(){let e=0,t=new Array(this.objects.length);for(let i=0,r=this.objects.length;i<r;i++){let[o,s]=this.objects[i];t[i]=[o.objectNumber,e],e+=s.sizeInBytes()+1}return t}};Wl.withContextAndObjects=(n,e,t=!0)=>new Wl(n,e,t);var Ts=Wl;var jl=class{constructor(e,t){this.parsedObjects=0,this.shouldWaitForTick=i=>(this.parsedObjects+=i,this.parsedObjects%this.objectsPerTick===0),this.context=e,this.objectsPerTick=t}async serializeToBuffer(){let{size:e,header:t,indirectObjects:i,xref:r,trailerDict:o,trailer:s}=await this.computeBufferSize(),a=0,c=new Uint8Array(e);a+=t.copyBytesInto(c,a),c[a++]=P.Newline,c[a++]=P.Newline;for(let l=0,d=i.length;l<d;l++){let[h,u]=i[l],p=String(h.objectNumber);a+=Ee(p,c,a),c[a++]=P.Space;let f=String(h.generationNumber);a+=Ee(f,c,a),c[a++]=P.Space,c[a++]=P.o,c[a++]=P.b,c[a++]=P.j,c[a++]=P.Newline,a+=u.copyBytesInto(c,a),c[a++]=P.Newline,c[a++]=P.e,c[a++]=P.n,c[a++]=P.d,c[a++]=P.o,c[a++]=P.b,c[a++]=P.j,c[a++]=P.Newline,c[a++]=P.Newline;let m=u instanceof Ts?u.getObjectsCount():1;this.shouldWaitForTick(m)&&await Ti()}return r&&(a+=r.copyBytesInto(c,a),c[a++]=P.Newline),o&&(a+=o.copyBytesInto(c,a),c[a++]=P.Newline,c[a++]=P.Newline),a+=s.copyBytesInto(c,a),c}computeIndirectObjectSize([e,t]){let i=e.sizeInBytes()+3,r=t.sizeInBytes()+9;return i+r}createTrailerDict(){return this.context.obj({Size:this.context.largestObjectNumber+1,Root:this.context.trailerInfo.Root,Encrypt:this.context.trailerInfo.Encrypt,Info:this.context.trailerInfo.Info,ID:this.context.trailerInfo.ID})}async computeBufferSize(){let e=en.forVersion(1,7),t=e.sizeInBytes()+2,i=go.create(),r=this.context.security,o=this.context.enumerateIndirectObjects();for(let l=0,d=o.length;l<d;l++){let h=o[l],[u,p]=h;r&&this.encrypt(u,p,r),i.addEntry(u,t),t+=this.computeIndirectObjectSize(h),this.shouldWaitForTick(1)&&await Ti()}let s=t;t+=i.sizeInBytes()+1;let a=Md.of(this.createTrailerDict());t+=a.sizeInBytes()+2;let c=mr.forLastCrossRefSectionOffset(s);return t+=c.sizeInBytes(),{size:t,header:e,indirectObjects:o,xref:i,trailerDict:a,trailer:c}}encrypt(e,t,i){if(t instanceof Te){let r=i.getEncryptFn(e.objectNumber,e.generationNumber),o=t.getContents(),s=r(o);t.updateContents(s)}}};jl.forContext=(n,e)=>new jl(n,e);var As=jl;var Kl=class n extends ke{constructor(e){super(),this.data=e}clone(){return n.of(this.data.slice())}toString(){return`PDFInvalidObject(${this.data.length} bytes)`}sizeInBytes(){return this.data.length}copyBytesInto(e,t){let i=this.data.length;for(let r=0;r<i;r++)e[t++]=this.data[r];return i}};Kl.of=n=>new Kl(n);var Is=Kl;var lP=/\/([^\0\t\n\f\r\ ]+)[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]+Tf/,Nf=class n{constructor(e,t){this.dict=e,this.ref=t}T(){return this.dict.lookupMaybe(w.of("T"),ee,j)}Ff(){let e=this.getInheritableAttribute(w.of("Ff"));return this.dict.context.lookupMaybe(e,K)}V(){let e=this.getInheritableAttribute(w.of("V"));return this.dict.context.lookup(e)}Kids(){return this.dict.lookupMaybe(w.of("Kids"),X)}DA(){let e=this.dict.lookup(w.of("DA"));if(e instanceof ee||e instanceof j)return e}setKids(e){this.dict.set(w.of("Kids"),this.dict.context.obj(e))}getParent(){let e=this.dict.get(w.of("Parent"));if(e instanceof Y){let t=this.dict.lookup(w.of("Parent"),G);return new n(t,e)}}setParent(e){e?this.dict.set(w.of("Parent"),e):this.dict.delete(w.of("Parent"))}getFullyQualifiedName(){let e=this.getParent();return e?`${e.getFullyQualifiedName()}.${this.getPartialName()}`:this.getPartialName()}getPartialName(){var e;return(e=this.T())===null||e===void 0?void 0:e.decodeText()}setPartialName(e){e?this.dict.set(w.of("T"),j.fromText(e)):this.dict.delete(w.of("T"))}setDefaultAppearance(e){this.dict.set(w.of("DA"),ee.of(e))}getDefaultAppearance(){let e=this.DA();return e instanceof j?e.decodeText():e==null?void 0:e.asString()}setFontSize(e){var t;let i=(t=this.getFullyQualifiedName())!==null&&t!==void 0?t:"",r=this.getDefaultAppearance();if(!r)throw new wl(i);let o=ds(r,lP);if(!o.match)throw new Fl(i);let s=r.slice(0,o.pos-o.match[0].length),a=o.pos<=r.length?r.slice(o.pos):"",c=o.match[1],l=`${s} /${c} ${e} Tf ${a}`;this.setDefaultAppearance(l)}getFlags(){var e,t;return(t=(e=this.Ff())===null||e===void 0?void 0:e.asNumber())!==null&&t!==void 0?t:0}setFlags(e){this.dict.set(w.of("Ff"),K.of(e))}hasFlag(e){return(this.getFlags()&e)!==0}setFlag(e){let t=this.getFlags();this.setFlags(t|e)}clearFlag(e){let t=this.getFlags();this.setFlags(t&~e)}setFlagTo(e,t){t?this.setFlag(e):this.clearFlag(e)}getInheritableAttribute(e){let t;return this.ascend(i=>{t||(t=i.dict.get(e))}),t}ascend(e){e(this);let t=this.getParent();t&&t.ascend(e)}},Bs=Nf;var Gl=class{constructor(e){this.dict=e}W(){let e=this.dict.lookup(w.of("W"));if(e instanceof K)return e}getWidth(){var e,t;return(t=(e=this.W())===null||e===void 0?void 0:e.asNumber())!==null&&t!==void 0?t:1}setWidth(e){let t=this.dict.context.obj(e);this.dict.set(w.of("W"),t)}};Gl.fromDict=n=>new Gl(n);var Nd=Gl;var Xl=class{constructor(e){this.dict=e}Rect(){return this.dict.lookup(w.of("Rect"),X)}AP(){return this.dict.lookupMaybe(w.of("AP"),G)}F(){let e=this.dict.lookup(w.of("F"));return this.dict.context.lookupMaybe(e,K)}getRectangle(){var e;let t=this.Rect();return(e=t==null?void 0:t.asRectangle())!==null&&e!==void 0?e:{x:0,y:0,width:0,height:0}}setRectangle(e){let{x:t,y:i,width:r,height:o}=e,s=this.dict.context.obj([t,i,t+r,i+o]);this.dict.set(w.of("Rect"),s)}getAppearanceState(){let e=this.dict.lookup(w.of("AS"));if(e instanceof w)return e}setAppearanceState(e){this.dict.set(w.of("AS"),e)}setAppearances(e){this.dict.set(w.of("AP"),e)}ensureAP(){let e=this.AP();return e||(e=this.dict.context.obj({}),this.dict.set(w.of("AP"),e)),e}getNormalAppearance(){let t=this.ensureAP().get(w.of("N"));if(t instanceof Y||t instanceof G)return t;throw new Error(`Unexpected N type: ${t==null?void 0:t.constructor.name}`)}setNormalAppearance(e){this.ensureAP().set(w.of("N"),e)}setRolloverAppearance(e){this.ensureAP().set(w.of("R"),e)}setDownAppearance(e){this.ensureAP().set(w.of("D"),e)}removeRolloverAppearance(){let e=this.AP();e==null||e.delete(w.of("R"))}removeDownAppearance(){let e=this.AP();e==null||e.delete(w.of("D"))}getAppearances(){let e=this.AP();if(!e)return;let t=e.lookup(w.of("N"),G,Te),i=e.lookupMaybe(w.of("R"),G,Te),r=e.lookupMaybe(w.of("D"),G,Te);return{normal:t,rollover:i,down:r}}getFlags(){var e,t;return(t=(e=this.F())===null||e===void 0?void 0:e.asNumber())!==null&&t!==void 0?t:0}setFlags(e){this.dict.set(w.of("F"),K.of(e))}hasFlag(e){return(this.getFlags()&e)!==0}setFlag(e){let t=this.getFlags();this.setFlags(t|e)}clearFlag(e){let t=this.getFlags();this.setFlags(t&~e)}setFlagTo(e,t){t?this.setFlag(e):this.clearFlag(e)}};Xl.fromDict=n=>new Xl(n);var Rd=Xl;var Zl=class{constructor(e){this.dict=e}R(){let e=this.dict.lookup(w.of("R"));if(e instanceof K)return e}BC(){let e=this.dict.lookup(w.of("BC"));if(e instanceof X)return e}BG(){let e=this.dict.lookup(w.of("BG"));if(e instanceof X)return e}CA(){let e=this.dict.lookup(w.of("CA"));if(e instanceof j||e instanceof ee)return e}RC(){let e=this.dict.lookup(w.of("RC"));if(e instanceof j||e instanceof ee)return e}AC(){let e=this.dict.lookup(w.of("AC"));if(e instanceof j||e instanceof ee)return e}getRotation(){var e;return(e=this.R())===null||e===void 0?void 0:e.asNumber()}getBorderColor(){let e=this.BC();if(!e)return;let t=[];for(let i=0,r=e==null?void 0:e.size();i<r;i++){let o=e.get(i);o instanceof K&&t.push(o.asNumber())}return t}getBackgroundColor(){let e=this.BG();if(!e)return;let t=[];for(let i=0,r=e==null?void 0:e.size();i<r;i++){let o=e.get(i);o instanceof K&&t.push(o.asNumber())}return t}getCaptions(){let e=this.CA(),t=this.RC(),i=this.AC();return{normal:e==null?void 0:e.decodeText(),rollover:t==null?void 0:t.decodeText(),down:i==null?void 0:i.decodeText()}}setRotation(e){let t=this.dict.context.obj(e);this.dict.set(w.of("R"),t)}setBorderColor(e){let t=this.dict.context.obj(e);this.dict.set(w.of("BC"),t)}setBackgroundColor(e){let t=this.dict.context.obj(e);this.dict.set(w.of("BG"),t)}setCaptions(e){let t=j.fromText(e.normal);if(this.dict.set(w.of("CA"),t),e.rollover){let i=j.fromText(e.rollover);this.dict.set(w.of("RC"),i)}else this.dict.delete(w.of("RC"));if(e.down){let i=j.fromText(e.down);this.dict.set(w.of("AC"),i)}else this.dict.delete(w.of("AC"))}};Zl.fromDict=n=>new Zl(n);var Ls=Zl;var mo=class extends Rd{MK(){let e=this.dict.lookup(w.of("MK"));if(e instanceof G)return e}BS(){let e=this.dict.lookup(w.of("BS"));if(e instanceof G)return e}DA(){let e=this.dict.lookup(w.of("DA"));if(e instanceof ee||e instanceof j)return e}P(){let e=this.dict.get(w.of("P"));if(e instanceof Y)return e}setP(e){this.dict.set(w.of("P"),e)}setDefaultAppearance(e){this.dict.set(w.of("DA"),ee.of(e))}getDefaultAppearance(){let e=this.DA();return e instanceof j?e.decodeText():e==null?void 0:e.asString()}getAppearanceCharacteristics(){let e=this.MK();if(e)return Ls.fromDict(e)}getOrCreateAppearanceCharacteristics(){let e=this.MK();if(e)return Ls.fromDict(e);let t=Ls.fromDict(this.dict.context.obj({}));return this.dict.set(w.of("MK"),t.dict),t}getBorderStyle(){let e=this.BS();if(e)return Nd.fromDict(e)}getOrCreateBorderStyle(){let e=this.BS();if(e)return Nd.fromDict(e);let t=Nd.fromDict(this.dict.context.obj({}));return this.dict.set(w.of("BS"),t.dict),t}getOnValue(){var e;let t=(e=this.getAppearances())===null||e===void 0?void 0:e.normal;if(t instanceof G){let i=t.keys();for(let r=0,o=i.length;r<o;r++){let s=i[r];if(s!==w.of("Off"))return s}}}};mo.fromDict=n=>new mo(n);mo.create=(n,e)=>{let t=n.obj({Type:"Annot",Subtype:"Widget",Rect:[0,0,0,0],Parent:e});return new mo(t)};var xo=mo;var Yl=class extends Bs{FT(){let e=this.getInheritableAttribute(w.of("FT"));return this.dict.context.lookup(e,w)}getWidgets(){let e=this.Kids();if(!e)return[xo.fromDict(this.dict)];let t=new Array(e.size());for(let i=0,r=e.size();i<r;i++){let o=e.lookup(i,G);t[i]=xo.fromDict(o)}return t}addWidget(e){let{Kids:t}=this.normalizedEntries();t.push(e)}removeWidget(e){let t=this.Kids();if(t){if(e<0||e>t.size())throw new kn(e,0,t.size());t.remove(e)}else{if(e!==0)throw new kn(e,0,0);this.setKids([])}}normalizedEntries(){let e=this.Kids();return e||(e=this.dict.context.obj([this.ref]),this.dict.set(w.of("Kids"),e)),{Kids:e}}};Yl.fromDict=(n,e)=>new Yl(n,e);var zt=Yl;var Rf=class extends zt{Opt(){return this.dict.lookupMaybe(w.of("Opt"),ee,j,X)}setOpt(e){this.dict.set(w.of("Opt"),this.dict.context.obj(e))}getExportValues(){let e=this.Opt();if(!e)return;if(e instanceof ee||e instanceof j)return[e];let t=[];for(let i=0,r=e.size();i<r;i++){let o=e.lookup(i);(o instanceof ee||o instanceof j)&&t.push(o)}return t}removeExportValue(e){let t=this.Opt();if(t)if(t instanceof ee||t instanceof j){if(e!==0)throw new kn(e,0,0);this.setOpt([])}else{if(e<0||e>t.size())throw new kn(e,0,t.size());t.remove(e)}}normalizeExportValues(){var e,t,i,r;let o=(e=this.getExportValues())!==null&&e!==void 0?e:[],s=[],a=this.getWidgets();for(let c=0,l=a.length;c<l;c++){let d=a[c],h=(t=o[c])!==null&&t!==void 0?t:j.fromText((r=(i=d.getOnValue())===null||i===void 0?void 0:i.decodeText())!==null&&r!==void 0?r:"");s.push(h)}this.setOpt(s)}addOpt(e,t){var i;this.normalizeExportValues();let r=e.decodeText(),o;if(t){let a=(i=this.getExportValues())!==null&&i!==void 0?i:[];for(let c=0,l=a.length;c<l;c++)a[c].decodeText()===r&&(o=c)}let s=this.Opt();return s.push(e),o!=null?o:s.size()-1}addWidgetWithOpt(e,t,i){let r=this.addOpt(t,i),o=w.of(String(r));return this.addWidget(e),o}},xr=Rf;var bo=class extends xr{setValue(e){var t;let i=(t=this.getOnValue())!==null&&t!==void 0?t:w.of("Yes");if(e!==i&&e!==w.of("Off"))throw new Cn;this.dict.set(w.of("V"),e);let r=this.getWidgets();for(let o=0,s=r.length;o<s;o++){let a=r[o],c=a.getOnValue()===e?e:w.of("Off");a.setAppearanceState(c)}}getValue(){let e=this.V();return e instanceof w?e:w.of("Off")}getOnValue(){let[e]=this.getWidgets();return e==null?void 0:e.getOnValue()}};bo.fromDict=(n,e)=>new bo(n,e);bo.create=n=>{let e=n.obj({FT:"Btn",Kids:[]}),t=n.register(e);return new bo(e,t)};var En=bo;var et=n=>1<<n,jt;(function(n){n[n.ReadOnly=et(0)]="ReadOnly",n[n.Required=et(1)]="Required",n[n.NoExport=et(2)]="NoExport"})(jt||(jt={}));var bt;(function(n){n[n.NoToggleToOff=et(14)]="NoToggleToOff",n[n.Radio=et(15)]="Radio",n[n.PushButton=et(16)]="PushButton",n[n.RadiosInUnison=et(25)]="RadiosInUnison"})(bt||(bt={}));var Me;(function(n){n[n.Multiline=et(12)]="Multiline",n[n.Password=et(13)]="Password",n[n.FileSelect=et(20)]="FileSelect",n[n.DoNotSpellCheck=et(22)]="DoNotSpellCheck",n[n.DoNotScroll=et(23)]="DoNotScroll",n[n.Comb=et(24)]="Comb",n[n.RichText=et(25)]="RichText"})(Me||(Me={}));var ge;(function(n){n[n.Combo=et(17)]="Combo",n[n.Edit=et(18)]="Edit",n[n.Sort=et(19)]="Sort",n[n.MultiSelect=et(21)]="MultiSelect",n[n.DoNotSpellCheck=et(22)]="DoNotSpellCheck",n[n.CommitOnSelChange=et(26)]="CommitOnSelChange"})(ge||(ge={}));var Vf=class extends zt{setValues(e){if(this.hasFlag(ge.Combo)&&!this.hasFlag(ge.Edit)&&!this.valuesAreValid(e))throw new Cn;if(e.length===0&&this.dict.delete(w.of("V")),e.length===1&&this.dict.set(w.of("V"),e[0]),e.length>1){if(!this.hasFlag(ge.MultiSelect))throw new vl;this.dict.set(w.of("V"),this.dict.context.obj(e))}this.updateSelectedIndices(e)}valuesAreValid(e){let t=this.getOptions();for(let i=0,r=e.length;i<r;i++){let o=e[i].decodeText();if(!t.find(s=>o===(s.display||s.value).decodeText()))return!1}return!0}updateSelectedIndices(e){if(e.length>1){let t=new Array(e.length),i=this.getOptions();for(let r=0,o=e.length;r<o;r++){let s=e[r].decodeText();t[r]=i.findIndex(a=>s===(a.display||a.value).decodeText())}this.dict.set(w.of("I"),this.dict.context.obj(t.sort()))}else this.dict.delete(w.of("I"))}getValues(){let e=this.V();if(e instanceof ee||e instanceof j)return[e];if(e instanceof X){let t=[];for(let i=0,r=e.size();i<r;i++){let o=e.lookup(i);(o instanceof ee||o instanceof j)&&t.push(o)}return t}return[]}Opt(){return this.dict.lookupMaybe(w.of("Opt"),ee,j,X)}setOptions(e){let t=new Array(e.length);for(let i=0,r=e.length;i<r;i++){let{value:o,display:s}=e[i];t[i]=this.dict.context.obj([o,s||o])}this.dict.set(w.of("Opt"),this.dict.context.obj(t))}getOptions(){let e=this.Opt();if(e instanceof ee||e instanceof j)return[{value:e,display:e}];if(e instanceof X){let t=[];for(let i=0,r=e.size();i<r;i++){let o=e.lookup(i);if((o instanceof ee||o instanceof j)&&t.push({value:o,display:o}),o instanceof X&&o.size()>0){let s=o.lookup(0,ee,j),a=o.lookupMaybe(1,ee,j);t.push({value:s,display:a||s})}}return t}return[]}},Os=Vf;var yo=class extends Os{};yo.fromDict=(n,e)=>new yo(n,e);yo.create=n=>{let e=n.obj({FT:"Ch",Ff:ge.Combo,Kids:[]}),t=n.register(e);return new yo(e,t)};var Tn=yo;var vo=class extends Bs{addField(e){let{Kids:t}=this.normalizedEntries();t==null||t.push(e)}normalizedEntries(){let e=this.Kids();return e||(e=this.dict.context.obj([]),this.dict.set(w.of("Kids"),e)),{Kids:e}}};vo.fromDict=(n,e)=>new vo(n,e);vo.create=n=>{let e=n.obj({}),t=n.register(e);return new vo(e,t)};var An=vo;var Jl=class extends zt{};Jl.fromDict=(n,e)=>new Jl(n,e);var br=Jl;var wo=class extends zt{MaxLen(){let e=this.dict.lookup(w.of("MaxLen"));if(e instanceof K)return e}Q(){let e=this.dict.lookup(w.of("Q"));if(e instanceof K)return e}setMaxLength(e){this.dict.set(w.of("MaxLen"),K.of(e))}removeMaxLength(){this.dict.delete(w.of("MaxLen"))}getMaxLength(){var e;return(e=this.MaxLen())===null||e===void 0?void 0:e.asNumber()}setQuadding(e){this.dict.set(w.of("Q"),K.of(e))}getQuadding(){var e;return(e=this.Q())===null||e===void 0?void 0:e.asNumber()}setValue(e){this.dict.set(w.of("V"),e)}removeValue(){this.dict.delete(w.of("V"))}getValue(){let e=this.V();if(e instanceof ee||e instanceof j)return e}};wo.fromDict=(n,e)=>new wo(n,e);wo.create=n=>{let e=n.obj({FT:"Tx",Kids:[]}),t=n.register(e);return new wo(e,t)};var In=wo;var Fo=class extends xr{};Fo.fromDict=(n,e)=>new Fo(n,e);Fo.create=n=>{let e=n.obj({FT:"Btn",Ff:bt.PushButton,Kids:[]}),t=n.register(e);return new Fo(e,t)};var Bn=Fo;var Do=class extends xr{setValue(e){if(!this.getOnValues().includes(e)&&e!==w.of("Off"))throw new Cn;this.dict.set(w.of("V"),e);let i=this.getWidgets();for(let r=0,o=i.length;r<o;r++){let s=i[r],a=s.getOnValue()===e?e:w.of("Off");s.setAppearanceState(a)}}getValue(){let e=this.V();return e instanceof w?e:w.of("Off")}getOnValues(){let e=this.getWidgets(),t=[];for(let i=0,r=e.length;i<r;i++){let o=e[i].getOnValue();o&&t.push(o)}return t}};Do.fromDict=(n,e)=>new Do(n,e);Do.create=n=>{let e=n.obj({FT:"Btn",Ff:bt.Radio,Kids:[]}),t=n.register(e);return new Do(e,t)};var Ln=Do;var Po=class extends Os{};Po.fromDict=(n,e)=>new Po(n,e);Po.create=n=>{let e=n.obj({FT:"Ch",Kids:[]}),t=n.register(e);return new Po(e,t)};var On=Po;var Ms=n=>{if(!n)return[];let e=[];for(let t=0,i=n.size();t<i;t++){let r=n.get(t),o=n.lookup(t);r instanceof Y&&o instanceof G&&e.push([Vd(o,r),r])}return e},Vd=(n,e)=>cP(n)?An.fromDict(n,e):dP(n,e),cP=n=>{let e=n.lookup(w.of("Kids"));if(e instanceof X)for(let t=0,i=e.size();t<i;t++){let r=e.lookup(t);if(r instanceof G&&r.has(w.of("T")))return!0}return!1},dP=(n,e)=>{let t=zf(n,w.of("FT")),i=n.context.lookup(t,w);return i===w.of("Btn")?hP(n,e):i===w.of("Ch")?uP(n,e):i===w.of("Tx")?In.fromDict(n,e):i===w.of("Sig")?br.fromDict(n,e):zt.fromDict(n,e)},hP=(n,e)=>{var t;let i=zf(n,w.of("Ff")),r=n.context.lookupMaybe(i,K),o=(t=r==null?void 0:r.asNumber())!==null&&t!==void 0?t:0;return Hf(o,bt.PushButton)?Bn.fromDict(n,e):Hf(o,bt.Radio)?Ln.fromDict(n,e):En.fromDict(n,e)},uP=(n,e)=>{var t;let i=zf(n,w.of("Ff")),r=n.context.lookupMaybe(i,K),o=(t=r==null?void 0:r.asNumber())!==null&&t!==void 0?t:0;return Hf(o,ge.Combo)?Tn.fromDict(n,e):On.fromDict(n,e)},Hf=(n,e)=>(n&e)!==0,zf=(n,e)=>{let t;return Qb(n,i=>{t||(t=i.get(e))}),t},Qb=(n,e)=>{e(n);let t=n.lookupMaybe(w.of("Parent"),G);t&&Qb(t,e)};var ko=class{constructor(e){this.dict=e}Fields(){let e=this.dict.lookup(w.of("Fields"));if(e instanceof X)return e}getFields(){let{Fields:e}=this.normalizedEntries(),t=new Array(e.size());for(let i=0,r=e.size();i<r;i++){let o=e.get(i),s=e.lookup(i,G);t[i]=[Vd(s,o),o]}return t}getAllFields(){let e=[],t=i=>{if(i)for(let r=0,o=i.length;r<o;r++){let s=i[r];e.push(s);let[a]=s;a instanceof An&&t(Ms(a.Kids()))}};return t(this.getFields()),e}addField(e){let{Fields:t}=this.normalizedEntries();t==null||t.push(e)}removeField(e){let t=e.getParent(),i=t===void 0?this.normalizedEntries().Fields:t.Kids(),r=i==null?void 0:i.indexOf(e.ref);if(i===void 0||r===void 0)throw new Error(`Tried to remove inexistent field ${e.getFullyQualifiedName()}`);i.remove(r),t!==void 0&&i.size()===0&&this.removeField(t)}normalizedEntries(){let e=this.Fields();return e||(e=this.dict.context.obj([]),this.dict.set(w.of("Fields"),e)),{Fields:e}}};ko.fromDict=n=>new ko(n);ko.create=n=>{let e=n.obj({Fields:[]});return new ko(e)};var yr=ko;var Hd=(n,e)=>{if(n!==void 0)return e[n]},Co;(function(n){n.UseNone="UseNone",n.UseOutlines="UseOutlines",n.UseThumbs="UseThumbs",n.UseOC="UseOC"})(Co||(Co={}));var So;(function(n){n.L2R="L2R",n.R2L="R2L"})(So||(So={}));var Eo;(function(n){n.None="None",n.AppDefault="AppDefault"})(Eo||(Eo={}));var Ns;(function(n){n.Simplex="Simplex",n.DuplexFlipShortEdge="DuplexFlipShortEdge",n.DuplexFlipLongEdge="DuplexFlipLongEdge"})(Ns||(Ns={}));var To=class{constructor(e){this.dict=e}lookupBool(e){let t=this.dict.lookup(w.of(e));if(t instanceof Li)return t}lookupName(e){let t=this.dict.lookup(w.of(e));if(t instanceof w)return t}HideToolbar(){return this.lookupBool("HideToolbar")}HideMenubar(){return this.lookupBool("HideMenubar")}HideWindowUI(){return this.lookupBool("HideWindowUI")}FitWindow(){return this.lookupBool("FitWindow")}CenterWindow(){return this.lookupBool("CenterWindow")}DisplayDocTitle(){return this.lookupBool("DisplayDocTitle")}NonFullScreenPageMode(){return this.lookupName("NonFullScreenPageMode")}Direction(){return this.lookupName("Direction")}PrintScaling(){return this.lookupName("PrintScaling")}Duplex(){return this.lookupName("Duplex")}PickTrayByPDFSize(){return this.lookupBool("PickTrayByPDFSize")}PrintPageRange(){let e=this.dict.lookup(w.of("PrintPageRange"));if(e instanceof X)return e}NumCopies(){let e=this.dict.lookup(w.of("NumCopies"));if(e instanceof K)return e}getHideToolbar(){var e,t;return(t=(e=this.HideToolbar())===null||e===void 0?void 0:e.asBoolean())!==null&&t!==void 0?t:!1}getHideMenubar(){var e,t;return(t=(e=this.HideMenubar())===null||e===void 0?void 0:e.asBoolean())!==null&&t!==void 0?t:!1}getHideWindowUI(){var e,t;return(t=(e=this.HideWindowUI())===null||e===void 0?void 0:e.asBoolean())!==null&&t!==void 0?t:!1}getFitWindow(){var e,t;return(t=(e=this.FitWindow())===null||e===void 0?void 0:e.asBoolean())!==null&&t!==void 0?t:!1}getCenterWindow(){var e,t;return(t=(e=this.CenterWindow())===null||e===void 0?void 0:e.asBoolean())!==null&&t!==void 0?t:!1}getDisplayDocTitle(){var e,t;return(t=(e=this.DisplayDocTitle())===null||e===void 0?void 0:e.asBoolean())!==null&&t!==void 0?t:!1}getNonFullScreenPageMode(){var e,t;let i=(e=this.NonFullScreenPageMode())===null||e===void 0?void 0:e.decodeText();return(t=Hd(i,Co))!==null&&t!==void 0?t:Co.UseNone}getReadingDirection(){var e,t;let i=(e=this.Direction())===null||e===void 0?void 0:e.decodeText();return(t=Hd(i,So))!==null&&t!==void 0?t:So.L2R}getPrintScaling(){var e,t;let i=(e=this.PrintScaling())===null||e===void 0?void 0:e.decodeText();return(t=Hd(i,Eo))!==null&&t!==void 0?t:Eo.AppDefault}getDuplex(){var e;let t=(e=this.Duplex())===null||e===void 0?void 0:e.decodeText();return Hd(t,Ns)}getPickTrayByPDFSize(){var e;return(e=this.PickTrayByPDFSize())===null||e===void 0?void 0:e.asBoolean()}getPrintPageRange(){let e=this.PrintPageRange();if(!e)return[];let t=[];for(let i=0;i<e.size();i+=2){let r=e.lookup(i,K).asNumber(),o=e.lookup(i+1,K).asNumber();t.push({start:r,end:o})}return t}getNumCopies(){var e,t;return(t=(e=this.NumCopies())===null||e===void 0?void 0:e.asNumber())!==null&&t!==void 0?t:1}setHideToolbar(e){let t=this.dict.context.obj(e);this.dict.set(w.of("HideToolbar"),t)}setHideMenubar(e){let t=this.dict.context.obj(e);this.dict.set(w.of("HideMenubar"),t)}setHideWindowUI(e){let t=this.dict.context.obj(e);this.dict.set(w.of("HideWindowUI"),t)}setFitWindow(e){let t=this.dict.context.obj(e);this.dict.set(w.of("FitWindow"),t)}setCenterWindow(e){let t=this.dict.context.obj(e);this.dict.set(w.of("CenterWindow"),t)}setDisplayDocTitle(e){let t=this.dict.context.obj(e);this.dict.set(w.of("DisplayDocTitle"),t)}setNonFullScreenPageMode(e){si(e,"nonFullScreenPageMode",Co);let t=w.of(e);this.dict.set(w.of("NonFullScreenPageMode"),t)}setReadingDirection(e){si(e,"readingDirection",So);let t=w.of(e);this.dict.set(w.of("Direction"),t)}setPrintScaling(e){si(e,"printScaling",Eo);let t=w.of(e);this.dict.set(w.of("PrintScaling"),t)}setDuplex(e){si(e,"duplex",Ns);let t=w.of(e);this.dict.set(w.of("Duplex"),t)}setPickTrayByPDFSize(e){let t=this.dict.context.obj(e);this.dict.set(w.of("PickTrayByPDFSize"),t)}setPrintPageRange(e){Array.isArray(e)||(e=[e]);let t=[];for(let r=0,o=e.length;r<o;r++)t.push(e[r].start),t.push(e[r].end);hl(t,"printPageRange",["number"]);let i=this.dict.context.obj(t);this.dict.set(w.of("PrintPageRange"),i)}setNumCopies(e){xt(e,"numCopies",1,Number.MAX_VALUE),Sf(e,"numCopies");let t=this.dict.context.obj(e);this.dict.set(w.of("NumCopies"),t)}};To.fromDict=n=>new To(n);To.create=n=>{let e=n.obj({});return new To(e)};var _l=To;var Ao=class extends G{Pages(){return this.lookup(w.of("Pages"),G)}AcroForm(){return this.lookupMaybe(w.of("AcroForm"),G)}getAcroForm(){let e=this.AcroForm();if(e)return yr.fromDict(e)}getOrCreateAcroForm(){let e=this.getAcroForm();if(!e){e=yr.create(this.context);let t=this.context.register(e.dict);this.set(w.of("AcroForm"),t)}return e}ViewerPreferences(){return this.lookupMaybe(w.of("ViewerPreferences"),G)}getViewerPreferences(){let e=this.ViewerPreferences();if(e)return _l.fromDict(e)}getOrCreateViewerPreferences(){let e=this.getViewerPreferences();if(!e){e=_l.create(this.context);let t=this.context.register(e.dict);this.set(w.of("ViewerPreferences"),t)}return e}insertLeafNode(e,t){let i=this.get(w.of("Pages"));return this.Pages().insertLeafNode(e,t)||i}removeLeafNode(e){this.Pages().removeLeafNode(e)}};Ao.withContextAndPages=(n,e)=>{let t=new Map;return t.set(w.of("Type"),w.of("Catalog")),t.set(w.of("Pages"),e),new Ao(t,n)};Ao.fromMapWithContext=(n,e)=>new Ao(n,e);var vr=Ao;var Io=class n extends G{Parent(){return this.lookup(w.of("Parent"))}Kids(){return this.lookup(w.of("Kids"),X)}Count(){return this.lookup(w.of("Count"),K)}pushTreeNode(e){this.Kids().push(e)}pushLeafNode(e){let t=this.Kids();this.insertLeafKid(t.size(),e)}insertLeafNode(e,t){let i=this.Kids(),r=this.Count().asNumber();if(t>r)throw new ks(t,r);let o=t;for(let s=0,a=i.size();s<a;s++){if(o===0){this.insertLeafKid(s,e);return}let c=i.get(s),l=this.context.lookup(c);if(l instanceof n){if(l.Count().asNumber()>o)return l.insertLeafNode(e,o)||c;o-=l.Count().asNumber()}l instanceof $e&&(o-=1)}if(o===0){this.insertLeafKid(i.size(),e);return}throw new Cs(t,"insertLeafNode")}removeLeafNode(e,t=!0){let i=this.Kids(),r=this.Count().asNumber();if(e>=r)throw new ks(e,r);let o=e;for(let s=0,a=i.size();s<a;s++){let c=i.get(s),l=this.context.lookup(c);if(l instanceof n)if(l.Count().asNumber()>o){l.removeLeafNode(o,t),t&&l.Kids().size()===0&&i.remove(s);return}else o-=l.Count().asNumber();if(l instanceof $e)if(o===0){this.removeKid(s);return}else o-=1}throw new Cs(e,"removeLeafNode")}ascend(e){e(this);let t=this.Parent();t&&t.ascend(e)}traverse(e){let t=this.Kids();for(let i=0,r=t.size();i<r;i++){let o=t.get(i),s=this.context.lookup(o);s instanceof n&&s.traverse(e),e(s,o)}}insertLeafKid(e,t){let i=this.Kids();this.ascend(r=>{let o=r.Count().asNumber()+1;r.set(w.of("Count"),K.of(o))}),i.insert(e,t)}removeKid(e){let t=this.Kids();t.lookup(e)instanceof $e&&this.ascend(r=>{let o=r.Count().asNumber()-1;r.set(w.of("Count"),K.of(o))}),t.remove(e)}};Io.withContext=(n,e)=>{let t=new Map;return t.set(w.of("Type"),w.of("Pages")),t.set(w.of("Kids"),n.obj([])),t.set(w.of("Count"),n.obj(0)),e&&t.set(w.of("Parent"),e),new Io(t,n)};Io.fromMapWithContext=(n,e)=>new Io(n,e);var wr=Io;var Fr;(function(n){n[n.Deleted=0]="Deleted",n[n.Uncompressed=1]="Uncompressed",n[n.Compressed=2]="Compressed"})(Fr||(Fr={}));var Bo=class n extends pr{constructor(e,t,i=!0){super(e,i),this.computeIndex=()=>{let r=[],o=0;for(let s=0,a=this.entries.length;s<a;s++){let c=this.entries[s],l=this.entries[s-1];s===0?r.push(c.ref.objectNumber):c.ref.objectNumber-l.ref.objectNumber>1&&(r.push(o),r.push(c.ref.objectNumber),o=0),o+=1}return r.push(o),r},this.computeEntryTuples=()=>{let r=new Array(this.entries.length);for(let o=0,s=this.entries.length;o<s;o++){let a=this.entries[o];if(a.type===Fr.Deleted){let{type:c,nextFreeObjectNumber:l,ref:d}=a;r[o]=[c,l,d.generationNumber]}if(a.type===Fr.Uncompressed){let{type:c,offset:l,ref:d}=a;r[o]=[c,l,d.generationNumber]}if(a.type===Fr.Compressed){let{type:c,objectStreamRef:l,index:d}=a;r[o]=[c,l.objectNumber,d]}}return r},this.computeMaxEntryByteWidths=()=>{let r=this.entryTuplesCache.access(),o=[0,0,0];for(let s=0,a=r.length;s<a;s++){let[c,l,d]=r[s],h=us(c),u=us(l),p=us(d);h>o[0]&&(o[0]=h),u>o[1]&&(o[1]=u),p>o[2]&&(o[2]=p)}return o},this.entries=t||[],this.entryTuplesCache=ht.populatedBy(this.computeEntryTuples),this.maxByteWidthsCache=ht.populatedBy(this.computeMaxEntryByteWidths),this.indexCache=ht.populatedBy(this.computeIndex),e.set(w.of("Type"),w.of("XRef"))}addDeletedEntry(e,t){let i=Fr.Deleted;this.entries.push({type:i,ref:e,nextFreeObjectNumber:t}),this.entryTuplesCache.invalidate(),this.maxByteWidthsCache.invalidate(),this.indexCache.invalidate(),this.contentsCache.invalidate()}addUncompressedEntry(e,t){let i=Fr.Uncompressed;this.entries.push({type:i,ref:e,offset:t}),this.entryTuplesCache.invalidate(),this.maxByteWidthsCache.invalidate(),this.indexCache.invalidate(),this.contentsCache.invalidate()}addCompressedEntry(e,t,i){let r=Fr.Compressed;this.entries.push({type:r,ref:e,objectStreamRef:t,index:i}),this.entryTuplesCache.invalidate(),this.maxByteWidthsCache.invalidate(),this.indexCache.invalidate(),this.contentsCache.invalidate()}clone(e){let{dict:t,entries:i,encode:r}=this;return n.of(t.clone(e),i.slice(),r)}getContentsString(){let e=this.entryTuplesCache.access(),t=this.maxByteWidthsCache.access(),i="";for(let r=0,o=e.length;r<o;r++){let[s,a,c]=e[r],l=rr(sr(s)),d=rr(sr(a)),h=rr(sr(c));for(let u=t[0]-1;u>=0;u--)i+=(l[u]||0).toString(2);for(let u=t[1]-1;u>=0;u--)i+=(d[u]||0).toString(2);for(let u=t[2]-1;u>=0;u--)i+=(h[u]||0).toString(2)}return i}getUnencodedContents(){let e=this.entryTuplesCache.access(),t=this.maxByteWidthsCache.access(),i=new Uint8Array(this.getUnencodedContentsSize()),r=0;for(let o=0,s=e.length;o<s;o++){let[a,c,l]=e[o],d=rr(sr(a)),h=rr(sr(c)),u=rr(sr(l));for(let p=t[0]-1;p>=0;p--)i[r++]=d[p]||0;for(let p=t[1]-1;p>=0;p--)i[r++]=h[p]||0;for(let p=t[2]-1;p>=0;p--)i[r++]=u[p]||0}return i}getUnencodedContentsSize(){let e=this.maxByteWidthsCache.access();return O0(e)*this.entries.length}updateDict(){super.updateDict();let e=this.maxByteWidthsCache.access(),t=this.indexCache.access(),{context:i}=this.dict;this.dict.set(w.of("W"),i.obj(e)),this.dict.set(w.of("Index"),i.obj(t))}};Bo.create=(n,e=!0)=>{let t=new Bo(n,[],e);return t.addDeletedEntry(Y.of(0,65535),0),t};Bo.of=(n,e,t=!0)=>new Bo(n,e,t);var zd=Bo;var Ql=class extends As{constructor(e,t,i,r){super(e,t),this.encodeStreams=i,this.objectsPerStream=r}async computeBufferSize(){let e=this.context.largestObjectNumber+1,t=en.forVersion(1,7),i=t.sizeInBytes()+2,r=zd.create(this.createTrailerDict(),this.encodeStreams),o=[],s=[],a=[],c=this.context.security,l=this.context.enumerateIndirectObjects();for(let p=0,f=l.length;p<f;p++){let m=l[p],[x,g]=m;if(x===this.context.trailerInfo.Encrypt||g instanceof Te||g instanceof Is||g instanceof vr||g instanceof wr||g instanceof $e||x.generationNumber!==0)o.push(m),c&&this.encrypt(x,g,c),r.addUncompressedEntry(x,i),i+=this.computeIndirectObjectSize(m),this.shouldWaitForTick(1)&&await Ti();else{let v=_r(s),y=_r(a);(!v||v.length%this.objectsPerStream===0)&&(v=[],s.push(v),y=Y.of(e++),a.push(y)),r.addCompressedEntry(x,y,v.length),v.push(m)}}for(let p=0,f=s.length;p<f;p++){let m=s[p],x=a[p],g=Ts.withContextAndObjects(this.context,m,this.encodeStreams);c&&this.encrypt(x,g,c),r.addUncompressedEntry(x,i),i+=this.computeIndirectObjectSize([x,g]),o.push([x,g]),this.shouldWaitForTick(m.length)&&await Ti()}let d=Y.of(e++);r.dict.set(w.of("Size"),K.of(e)),r.addUncompressedEntry(d,i);let h=i;i+=this.computeIndirectObjectSize([d,r]),o.push([d,r]);let u=mr.forLastCrossRefSectionOffset(h);return i+=u.sizeInBytes(),{size:i,header:t,indirectObjects:o,trailer:u}}};Ql.forContext=(n,e,t=!0,i=50)=>new Ql(n,e,t,i);var Ud=Ql;var $l=class{constructor(e,t){this.encoding=e===ao.ZapfDingbats?dl.ZapfDingbats:e===ao.Symbol?dl.Symbol:dl.WinAnsi,this.font=Rb.load(e),this.fontName=this.font.FontName,this.customName=t}encodeText(e){let t=this.encodeTextAsGlyphs(e),i=new Array(t.length);for(let r=0,o=t.length;r<o;r++)i[r]=Xi(t[r].code);return j.of(i.join(""))}widthOfTextAtSize(e,t){let i=this.encodeTextAsGlyphs(e),r=0;for(let s=0,a=i.length;s<a;s++){let c=i[s].name,l=(i[s+1]||{}).name,d=this.font.getXAxisKerningForPair(c,l)||0;r+=this.widthOfGlyph(c)+d}let o=t/1e3;return r*o}heightOfFontAtSize(e,t={}){let{descender:i=!0}=t,{Ascender:r,Descender:o,FontBBox:s}=this.font,a=r||s[3],c=o||s[1],l=a-c;return i||(l+=o||0),l/1e3*e}sizeOfFontAtHeight(e){let{Ascender:t,Descender:i,FontBBox:r}=this.font,o=t||r[3],s=i||r[1];return 1e3*e/(o-s)}embedIntoContext(e,t){let i=e.obj({Type:"Font",Subtype:"Type1",BaseFont:this.customName||this.fontName,Encoding:this.encoding===dl.WinAnsi?"WinAnsiEncoding":void 0});return t?(e.assign(t,i),t):e.register(i)}widthOfGlyph(e){return this.font.getWidthOfGlyph(e)||250}encodeTextAsGlyphs(e){let t=Array.from(e),i=new Array(t.length);for(let r=0,o=t.length;r<o;r++){let s=hd(t[r]);try{i[r]=this.encoding.encodeUnicodeCodePoint(s)}catch(a){i[r]=this.encoding.encodeUnicodeCodePoint(hd("?"))}}return i}};$l.for=(n,e)=>new $l(n,e);var Dr=$l;var ey=(n,e)=>{let t=new Array(n.length);for(let i=0,r=n.length;i<r;i++){let o=n[i],s=$b(qd(e(o))),a=$b(...o.codePoints.map(pP));t[i]=[s,a]}return fP(t)},fP=n=>`/CIDInit /ProcSet findresource begin
|
||
12 dict begin
|
||
begincmap
|
||
/CIDSystemInfo <<
|
||
/Registry (Adobe)
|
||
/Ordering (UCS)
|
||
/Supplement 0
|
||
>> def
|
||
/CMapName /Adobe-Identity-UCS def
|
||
/CMapType 2 def
|
||
1 begincodespacerange
|
||
<0000><ffff>
|
||
endcodespacerange
|
||
${n.length} beginbfchar
|
||
${n.map(([e,t])=>`${e} ${t}`).join(`
|
||
`)}
|
||
endbfchar
|
||
endcmap
|
||
CMapName currentdict /CMap defineresource pop
|
||
end
|
||
end`,$b=(...n)=>`<${n.join("")}>`,qd=n=>Gi(n,4),pP=n=>{if(z0(n))return qd(n);if(U0(n)){let i=pd(n),r=gd(n);return`${qd(i)}${qd(r)}`}let t=`0x${Xi(n)} is not a valid UTF-8 or UTF-16 codepoint.`;throw new Error(t)};var gP=n=>{let e=0,t=i=>{e|=1<<i-1};return n.fixedPitch&&t(1),n.serif&&t(2),n.symbolic&&t(3),n.script&&t(4),n.nonsymbolic&&t(6),n.italic&&t(7),n.allCap&&t(17),n.smallCap&&t(18),n.forceBold&&t(19),e},ty=n=>{let e=n["OS/2"]?n["OS/2"].sFamilyClass:0;return gP({fixedPitch:n.post.isFixedPitch,serif:1<=e&&e<=7,symbolic:!0,script:e===10,italic:n.head.macStyle.italic})};var Uf=class n{static async for(e,t,i,r){let o=await e.create(t);return new n(o,t,i,r)}constructor(e,t,i,r){this.allGlyphsInFontSortedById=()=>{let o=new Array(this.font.characterSet.length);for(let s=0,a=o.length;s<a;s++){let c=this.font.characterSet[s];o[s]=this.font.glyphForCodePoint(c)}return L0(o.sort(B0),s=>s.id)},this.font=e,this.scale=1e3/this.font.unitsPerEm,this.fontData=t,this.fontName=this.font.postscriptName||"Font",this.customName=i,this.fontFeatures=r,this.baseFontName="",this.glyphCache=ht.populatedBy(this.allGlyphsInFontSortedById)}encodeText(e){let{glyphs:t}=this.font.layout(e,this.fontFeatures),i=new Array(t.length);for(let r=0,o=t.length;r<o;r++)i[r]=Gi(t[r].id,4);return j.of(i.join(""))}widthOfTextAtSize(e,t){let{glyphs:i}=this.font.layout(e,this.fontFeatures),r=0;for(let s=0,a=i.length;s<a;s++)r+=i[s].advanceWidth*this.scale;let o=t/1e3;return r*o}heightOfFontAtSize(e,t={}){let{descender:i=!0}=t,{ascent:r,descent:o,bbox:s}=this.font,a=(r||s.maxY)*this.scale,c=(o||s.minY)*this.scale,l=a-c;return i||(l-=Math.abs(o)||0),l/1e3*e}sizeOfFontAtHeight(e){let{ascent:t,descent:i,bbox:r}=this.font,o=(t||r.maxY)*this.scale,s=(i||r.minY)*this.scale;return 1e3*e/(o-s)}embedIntoContext(e,t){return this.baseFontName=this.customName||e.addRandomSuffix(this.fontName),this.embedFontDict(e,t)}async embedFontDict(e,t){let i=await this.embedCIDFontDict(e),r=this.embedUnicodeCmap(e),o=e.obj({Type:"Font",Subtype:"Type0",BaseFont:this.baseFontName,Encoding:"Identity-H",DescendantFonts:[i],ToUnicode:r});return t?(e.assign(t,o),t):e.register(o)}isCFF(){return this.font.cff}async embedCIDFontDict(e){let t=await this.embedFontDescriptor(e),i=e.obj({Type:"Font",Subtype:this.isCFF()?"CIDFontType0":"CIDFontType2",CIDToGIDMap:"Identity",BaseFont:this.baseFontName,CIDSystemInfo:{Registry:ee.of("Adobe"),Ordering:ee.of("Identity"),Supplement:0},FontDescriptor:t,W:this.computeWidths()});return e.register(i)}async embedFontDescriptor(e){let t=await this.embedFontStream(e),{scale:i}=this,{italicAngle:r,ascent:o,descent:s,capHeight:a,xHeight:c}=this.font,{minX:l,minY:d,maxX:h,maxY:u}=this.font.bbox,p=e.obj({Type:"FontDescriptor",FontName:this.baseFontName,Flags:ty(this.font),FontBBox:[l*i,d*i,h*i,u*i],ItalicAngle:r,Ascent:o*i,Descent:s*i,CapHeight:(a||o)*i,XHeight:(c||0)*i,StemV:0,[this.isCFF()?"FontFile3":"FontFile2"]:t});return e.register(p)}async serializeFont(){return this.fontData}async embedFontStream(e){let t=e.flateStream(await this.serializeFont(),{Subtype:this.isCFF()?"CIDFontType0C":void 0});return e.register(t)}embedUnicodeCmap(e){let t=ey(this.glyphCache.access(),this.glyphId.bind(this)),i=e.flateStream(t);return e.register(i)}glyphId(e){return e?e.id:-1}computeWidths(){let e=this.glyphCache.access(),t=[],i=[];for(let r=0,o=e.length;r<o;r++){let s=e[r],a=e[r-1],c=this.glyphId(s),l=this.glyphId(a);r===0?t.push(c):c-l!==1&&(t.push(i),t.push(c),i=[]),i.push(s.advanceWidth*this.scale)}return t.push(i),t}},Pr=Uf;var qf=class n extends Pr{static async for(e,t,i,r){let o=await e.create(t);return new n(o,t,i,r)}constructor(e,t,i,r){super(e,t,i,r),this.subset=this.font.createSubset(),this.glyphs=[],this.glyphCache=ht.populatedBy(()=>this.glyphs),this.glyphIdMap=new Map}encodeText(e){let{glyphs:t}=this.font.layout(e,this.fontFeatures),i=new Array(t.length);for(let r=0,o=t.length;r<o;r++){let s=t[r],a=this.subset.includeGlyph(s);this.glyphs[a-1]=s,this.glyphIdMap.set(s.id,a),i[r]=Gi(a,4)}return this.glyphCache.invalidate(),j.of(i.join(""))}isCFF(){return this.subset.cff}glyphId(e){return e?this.glyphIdMap.get(e.id):-1}serializeFont(){return new Promise((e,t)=>{let i=[];this.subset.encodeStream().on("data",r=>i.push(r)).on("end",()=>e(I0(i))).on("error",r=>t(r))})}},Wd=qf;var Rs;(function(n){n.Source="Source",n.Data="Data",n.Alternative="Alternative",n.Supplement="Supplement",n.EncryptedPayload="EncryptedPayload",n.FormData="EncryptedPayload",n.Schema="Schema",n.Unspecified="Unspecified"})(Rs||(Rs={}));var Wf=class n{static for(e,t,i={}){return new n(e,t,i)}constructor(e,t,i={}){this.fileData=e,this.fileName=t,this.options=i}async embedIntoContext(e,t){let{mimeType:i,description:r,creationDate:o,modificationDate:s,afRelationship:a}=this.options,c=e.flateStream(this.fileData,{Type:"EmbeddedFile",Subtype:i!=null?i:void 0,Params:{Size:this.fileData.length,CreationDate:o?ee.fromDate(o):void 0,ModDate:s?ee.fromDate(s):void 0}}),l=e.register(c),d=e.obj({Type:"Filespec",F:ee.of(this.fileName),UF:j.fromText(this.fileName),EF:{F:l},Desc:r?j.fromText(r):void 0,AFRelationship:a!=null?a:void 0});return t?(e.assign(t,d),t):e.register(d)}},jd=Wf;var iy=[65472,65473,65474,65475,65477,65478,65479,65480,65481,65482,65483,65484,65485,65486,65487],Vs;(function(n){n.DeviceGray="DeviceGray",n.DeviceRGB="DeviceRGB",n.DeviceCMYK="DeviceCMYK"})(Vs||(Vs={}));var mP={1:Vs.DeviceGray,3:Vs.DeviceRGB,4:Vs.DeviceCMYK},jf=class n{static async for(e){let t=new DataView(e.buffer);if(t.getUint16(0)!==65496)throw new Error("SOI not found in JPEG");let r=2,o;for(;r<t.byteLength&&(o=t.getUint16(r),r+=2,!iy.includes(o));)r+=t.getUint16(r);if(!iy.includes(o))throw new Error("Invalid JPEG");r+=2;let s=t.getUint8(r++),a=t.getUint16(r);r+=2;let c=t.getUint16(r);r+=2;let l=t.getUint8(r++),d=mP[l];if(!d)throw new Error("Unknown JPEG channel.");let h=d;return new n(e,s,c,a,h)}constructor(e,t,i,r,o){this.imageData=e,this.bitsPerComponent=t,this.width=i,this.height=r,this.colorSpace=o}async embedIntoContext(e,t){let i=e.stream(this.imageData,{Type:"XObject",Subtype:"Image",BitsPerComponent:this.bitsPerComponent,Width:this.width,Height:this.height,ColorSpace:this.colorSpace,Filter:"DCTDecode",Decode:this.colorSpace===Vs.DeviceCMYK?[1,0,1,0,1,0,1,0]:void 0});return t?(e.assign(t,i),t):e.register(i)}},Hs=jf;var ny=Ki(al()),W={};W.toRGBA8=function(n){var e=n.width,t=n.height;if(n.tabs.acTL==null)return[W.toRGBA8.decodeImage(n.data,e,t,n).buffer];var i=[];n.frames[0].data==null&&(n.frames[0].data=n.data);for(var r=e*t*4,o=new Uint8Array(r),s=new Uint8Array(r),a=new Uint8Array(r),c=0;c<n.frames.length;c++){var l=n.frames[c],d=l.rect.x,h=l.rect.y,u=l.rect.width,p=l.rect.height,f=W.toRGBA8.decodeImage(l.data,u,p,n);if(c!=0)for(var m=0;m<r;m++)a[m]=o[m];if(l.blend==0?W._copyTile(f,u,p,o,e,t,d,h,0):l.blend==1&&W._copyTile(f,u,p,o,e,t,d,h,1),i.push(o.buffer.slice(0)),l.dispose!=0){if(l.dispose==1)W._copyTile(s,u,p,o,e,t,d,h,0);else if(l.dispose==2)for(var m=0;m<r;m++)o[m]=a[m]}}return i};W.toRGBA8.decodeImage=function(n,e,t,i){var r=e*t,o=W.decode._getBPP(i),s=Math.ceil(e*o/8),a=new Uint8Array(r*4),c=new Uint32Array(a.buffer),l=i.ctype,d=i.depth,h=W._bin.readUshort,u=Date.now();if(l==6){var p=r<<2;if(d==8)for(var f=0;f<p;f+=4)a[f]=n[f],a[f+1]=n[f+1],a[f+2]=n[f+2],a[f+3]=n[f+3];if(d==16)for(var f=0;f<p;f++)a[f]=n[f<<1]}else if(l==2){var m=i.tabs.tRNS;if(m==null){if(d==8)for(var f=0;f<r;f++){var x=f*3;c[f]=255<<24|n[x+2]<<16|n[x+1]<<8|n[x]}if(d==16)for(var f=0;f<r;f++){var x=f*6;c[f]=255<<24|n[x+4]<<16|n[x+2]<<8|n[x]}}else{var g=m[0],b=m[1],v=m[2];if(d==8)for(var f=0;f<r;f++){var y=f<<2,x=f*3;c[f]=255<<24|n[x+2]<<16|n[x+1]<<8|n[x],n[x]==g&&n[x+1]==b&&n[x+2]==v&&(a[y+3]=0)}if(d==16)for(var f=0;f<r;f++){var y=f<<2,x=f*6;c[f]=255<<24|n[x+4]<<16|n[x+2]<<8|n[x],h(n,x)==g&&h(n,x+2)==b&&h(n,x+4)==v&&(a[y+3]=0)}}}else if(l==3){var F=i.tabs.PLTE,D=i.tabs.tRNS,C=D?D.length:0;if(d==1)for(var k=0;k<t;k++)for(var E=k*s,B=k*e,f=0;f<e;f++){var y=B+f<<2,S=n[E+(f>>3)]>>7-((f&7)<<0)&1,A=3*S;a[y]=F[A],a[y+1]=F[A+1],a[y+2]=F[A+2],a[y+3]=S<C?D[S]:255}if(d==2)for(var k=0;k<t;k++)for(var E=k*s,B=k*e,f=0;f<e;f++){var y=B+f<<2,S=n[E+(f>>2)]>>6-((f&3)<<1)&3,A=3*S;a[y]=F[A],a[y+1]=F[A+1],a[y+2]=F[A+2],a[y+3]=S<C?D[S]:255}if(d==4)for(var k=0;k<t;k++)for(var E=k*s,B=k*e,f=0;f<e;f++){var y=B+f<<2,S=n[E+(f>>1)]>>4-((f&1)<<2)&15,A=3*S;a[y]=F[A],a[y+1]=F[A+1],a[y+2]=F[A+2],a[y+3]=S<C?D[S]:255}if(d==8)for(var f=0;f<r;f++){var y=f<<2,S=n[f],A=3*S;a[y]=F[A],a[y+1]=F[A+1],a[y+2]=F[A+2],a[y+3]=S<C?D[S]:255}}else if(l==4){if(d==8)for(var f=0;f<r;f++){var y=f<<2,L=f<<1,I=n[L];a[y]=I,a[y+1]=I,a[y+2]=I,a[y+3]=n[L+1]}if(d==16)for(var f=0;f<r;f++){var y=f<<2,L=f<<2,I=n[L];a[y]=I,a[y+1]=I,a[y+2]=I,a[y+3]=n[L+2]}}else if(l==0)for(var g=i.tabs.tRNS?i.tabs.tRNS:-1,k=0;k<t;k++){var N=k*s,q=k*e;if(d==1)for(var U=0;U<e;U++){var I=255*(n[N+(U>>>3)]>>>7-(U&7)&1),Z=I==g*255?0:255;c[q+U]=Z<<24|I<<16|I<<8|I}else if(d==2)for(var U=0;U<e;U++){var I=85*(n[N+(U>>>2)]>>>6-((U&3)<<1)&3),Z=I==g*85?0:255;c[q+U]=Z<<24|I<<16|I<<8|I}else if(d==4)for(var U=0;U<e;U++){var I=17*(n[N+(U>>>1)]>>>4-((U&1)<<2)&15),Z=I==g*17?0:255;c[q+U]=Z<<24|I<<16|I<<8|I}else if(d==8)for(var U=0;U<e;U++){var I=n[N+U],Z=I==g?0:255;c[q+U]=Z<<24|I<<16|I<<8|I}else if(d==16)for(var U=0;U<e;U++){var I=n[N+(U<<1)],Z=h(n,N+(U<<f))==g?0:255;c[q+U]=Z<<24|I<<16|I<<8|I}}return a};W.decode=function(n){for(var e=new Uint8Array(n),t=8,i=W._bin,r=i.readUshort,o=i.readUint,s={tabs:{},frames:[]},a=new Uint8Array(e.length),c=0,l,d=0,h=[137,80,78,71,13,10,26,10],u=0;u<8;u++)if(e[u]!=h[u])throw"The input is not a PNG file!";for(;t<e.length;){var p=i.readUint(e,t);t+=4;var f=i.readASCII(e,t,4);if(t+=4,f=="IHDR")W.decode._IHDR(e,t,s);else if(f=="IDAT"){for(var u=0;u<p;u++)a[c+u]=e[t+u];c+=p}else if(f=="acTL")s.tabs[f]={num_frames:o(e,t),num_plays:o(e,t+4)},l=new Uint8Array(e.length);else if(f=="fcTL"){if(d!=0){var m=s.frames[s.frames.length-1];m.data=W.decode._decompress(s,l.slice(0,d),m.rect.width,m.rect.height),d=0}var x={x:o(e,t+12),y:o(e,t+16),width:o(e,t+4),height:o(e,t+8)},g=r(e,t+22);g=r(e,t+20)/(g==0?100:g);var b={rect:x,delay:Math.round(g*1e3),dispose:e[t+24],blend:e[t+25]};s.frames.push(b)}else if(f=="fdAT"){for(var u=0;u<p-4;u++)l[d+u]=e[t+u+4];d+=p-4}else if(f=="pHYs")s.tabs[f]=[i.readUint(e,t),i.readUint(e,t+4),e[t+8]];else if(f=="cHRM"){s.tabs[f]=[];for(var u=0;u<8;u++)s.tabs[f].push(i.readUint(e,t+u*4))}else if(f=="tEXt"){s.tabs[f]==null&&(s.tabs[f]={});var v=i.nextZero(e,t),y=i.readASCII(e,t,v-t),F=i.readASCII(e,v+1,t+p-v-1);s.tabs[f][y]=F}else if(f=="iTXt"){s.tabs[f]==null&&(s.tabs[f]={});var v=0,D=t;v=i.nextZero(e,D);var y=i.readASCII(e,D,v-D);D=v+1;var C=e[D],k=e[D+1];D+=2,v=i.nextZero(e,D);var E=i.readASCII(e,D,v-D);D=v+1,v=i.nextZero(e,D);var B=i.readUTF8(e,D,v-D);D=v+1;var F=i.readUTF8(e,D,p-(D-t));s.tabs[f][y]=F}else if(f=="PLTE")s.tabs[f]=i.readBytes(e,t,p);else if(f=="hIST"){var S=s.tabs.PLTE.length/3;s.tabs[f]=[];for(var u=0;u<S;u++)s.tabs[f].push(r(e,t+u*2))}else if(f=="tRNS")s.ctype==3?s.tabs[f]=i.readBytes(e,t,p):s.ctype==0?s.tabs[f]=r(e,t):s.ctype==2&&(s.tabs[f]=[r(e,t),r(e,t+2),r(e,t+4)]);else if(f=="gAMA")s.tabs[f]=i.readUint(e,t)/1e5;else if(f=="sRGB")s.tabs[f]=e[t];else if(f=="bKGD")s.ctype==0||s.ctype==4?s.tabs[f]=[r(e,t)]:s.ctype==2||s.ctype==6?s.tabs[f]=[r(e,t),r(e,t+2),r(e,t+4)]:s.ctype==3&&(s.tabs[f]=e[t]);else if(f=="IEND")break;t+=p;var A=i.readUint(e,t);t+=4}if(d!=0){var m=s.frames[s.frames.length-1];m.data=W.decode._decompress(s,l.slice(0,d),m.rect.width,m.rect.height),d=0}return s.data=W.decode._decompress(s,a,s.width,s.height),delete s.compress,delete s.interlace,delete s.filter,s};W.decode._decompress=function(n,e,t,i){var a=Date.now(),r=W.decode._getBPP(n),o=Math.ceil(t*r/8),s=new Uint8Array((o+1+n.interlace)*i);e=W.decode._inflate(e,s);var a=Date.now();return n.interlace==0?e=W.decode._filterZero(e,n,0,t,i):n.interlace==1&&(e=W.decode._readInterlace(e,n)),e};W.decode._inflate=function(n,e){var t=W.inflateRaw(new Uint8Array(n.buffer,2,n.length-6),e);return t};W.inflateRaw=function(){var n={};return n.H={},n.H.N=function(e,t){var i=Uint8Array,r=0,o=0,s=0,a=0,c=0,l=0,d=0,h=0,u=0,p,f;if(e[0]==3&&e[1]==0)return t||new i(0);var m=n.H,x=m.b,g=m.e,b=m.R,v=m.n,y=m.A,F=m.Z,D=m.m,C=t==null;for(C&&(t=new i(e.length>>>2<<3));r==0;){if(r=x(e,u,1),o=x(e,u+1,2),u+=3,o==0){(u&7)!=0&&(u+=8-(u&7));var k=(u>>>3)+4,E=e[k-4]|e[k-3]<<8;C&&(t=n.H.W(t,h+E)),t.set(new i(e.buffer,e.byteOffset+k,E),h),u=k+E<<3,h+=E;continue}if(C&&(t=n.H.W(t,h+(1<<17))),o==1&&(p=D.J,f=D.h,l=511,d=31),o==2){s=g(e,u,5)+257,a=g(e,u+5,5)+1,c=g(e,u+10,4)+4,u+=14;for(var B=u,S=1,A=0;A<38;A+=2)D.Q[A]=0,D.Q[A+1]=0;for(var A=0;A<c;A++){var L=g(e,u+A*3,3);D.Q[(D.X[A]<<1)+1]=L,L>S&&(S=L)}u+=3*c,v(D.Q,S),y(D.Q,S,D.u),p=D.w,f=D.d,u=b(D.u,(1<<S)-1,s+a,e,u,D.v);var I=m.V(D.v,0,s,D.C);l=(1<<I)-1;var N=m.V(D.v,s,a,D.D);d=(1<<N)-1,v(D.C,I),y(D.C,I,p),v(D.D,N),y(D.D,N,f)}for(;;){var q=p[F(e,u)&l];u+=q&15;var U=q>>>4;if(!(U>>>8))t[h++]=U;else{if(U==256)break;var Z=h+U-254;if(U>264){var O=D.q[U-257];Z=h+(O>>>3)+g(e,u,O&7),u+=O&7}var z=f[F(e,u)&d];u+=z&15;var R=z>>>4,M=D.c[R],ne=(M>>>4)+x(e,u,M&15);for(u+=M&15;h<Z;)t[h]=t[h++-ne],t[h]=t[h++-ne],t[h]=t[h++-ne],t[h]=t[h++-ne];h=Z}}}return t.length==h?t:t.slice(0,h)},n.H.W=function(e,t){var i=e.length;if(t<=i)return e;var r=new Uint8Array(i<<1);return r.set(e,0),r},n.H.R=function(e,t,i,r,o,s){for(var a=n.H.e,c=n.H.Z,l=0;l<i;){var d=e[c(r,o)&t];o+=d&15;var h=d>>>4;if(h<=15)s[l]=h,l++;else{var u=0,p=0;h==16?(p=3+a(r,o,2),o+=2,u=s[l-1]):h==17?(p=3+a(r,o,3),o+=3):h==18&&(p=11+a(r,o,7),o+=7);for(var f=l+p;l<f;)s[l]=u,l++}}return o},n.H.V=function(e,t,i,r){for(var o=0,s=0,a=r.length>>>1;s<i;){var c=e[s+t];r[s<<1]=0,r[(s<<1)+1]=c,c>o&&(o=c),s++}for(;s<a;)r[s<<1]=0,r[(s<<1)+1]=0,s++;return o},n.H.n=function(e,t){for(var i=n.H.m,r=e.length,o,s,a,c,l,d=i.j,c=0;c<=t;c++)d[c]=0;for(c=1;c<r;c+=2)d[e[c]]++;var h=i.K;for(o=0,d[0]=0,s=1;s<=t;s++)o=o+d[s-1]<<1,h[s]=o;for(a=0;a<r;a+=2)l=e[a+1],l!=0&&(e[a]=h[l],h[l]++)},n.H.A=function(e,t,i){for(var r=e.length,o=n.H.m,s=o.r,a=0;a<r;a+=2)if(e[a+1]!=0)for(var c=a>>1,l=e[a+1],d=c<<4|l,h=t-l,u=e[a]<<h,p=u+(1<<h);u!=p;){var f=s[u]>>>15-t;i[f]=d,u++}},n.H.l=function(e,t){for(var i=n.H.m.r,r=15-t,o=0;o<e.length;o+=2){var s=e[o]<<t-e[o+1];e[o]=i[s]>>>r}},n.H.M=function(e,t,i){i=i<<(t&7);var r=t>>>3;e[r]|=i,e[r+1]|=i>>>8},n.H.I=function(e,t,i){i=i<<(t&7);var r=t>>>3;e[r]|=i,e[r+1]|=i>>>8,e[r+2]|=i>>>16},n.H.e=function(e,t,i){return(e[t>>>3]|e[(t>>>3)+1]<<8)>>>(t&7)&(1<<i)-1},n.H.b=function(e,t,i){return(e[t>>>3]|e[(t>>>3)+1]<<8|e[(t>>>3)+2]<<16)>>>(t&7)&(1<<i)-1},n.H.Z=function(e,t){return(e[t>>>3]|e[(t>>>3)+1]<<8|e[(t>>>3)+2]<<16)>>>(t&7)},n.H.i=function(e,t){return(e[t>>>3]|e[(t>>>3)+1]<<8|e[(t>>>3)+2]<<16|e[(t>>>3)+3]<<24)>>>(t&7)},n.H.m=function(){var e=Uint16Array,t=Uint32Array;return{K:new e(16),j:new e(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new e(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new t(32),J:new e(512),_:[],h:new e(32),$:[],w:new e(32768),C:[],v:[],d:new e(32768),D:[],u:new e(512),Q:[],r:new e(32768),s:new t(286),Y:new t(30),a:new t(19),t:new t(15e3),k:new e(65536),g:new e(32768)}}(),function(){for(var e=n.H.m,t=32768,i=0;i<t;i++){var r=i;r=(r&2863311530)>>>1|(r&1431655765)<<1,r=(r&3435973836)>>>2|(r&858993459)<<2,r=(r&4042322160)>>>4|(r&252645135)<<4,r=(r&4278255360)>>>8|(r&16711935)<<8,e.r[i]=(r>>>16|r<<16)>>>17}function o(s,a,c){for(;a--!=0;)s.push(0,c)}for(var i=0;i<32;i++)e.q[i]=e.S[i]<<3|e.T[i],e.c[i]=e.p[i]<<4|e.z[i];o(e._,144,8),o(e._,112,9),o(e._,24,7),o(e._,8,8),n.H.n(e._,9),n.H.A(e._,9,e.J),n.H.l(e._,9),o(e.$,32,5),n.H.n(e.$,5),n.H.A(e.$,5,e.h),n.H.l(e.$,5),o(e.Q,19,0),o(e.C,286,0),o(e.D,30,0),o(e.v,320,0)}(),n.H.N}();W.decode._readInterlace=function(n,e){for(var t=e.width,i=e.height,r=W.decode._getBPP(e),o=r>>3,s=Math.ceil(t*r/8),a=new Uint8Array(i*s),c=0,l=[0,0,4,0,2,0,1],d=[0,4,0,2,0,1,0],h=[8,8,8,4,4,2,2],u=[8,8,4,4,2,2,1],p=0;p<7;){for(var f=h[p],m=u[p],x=0,g=0,b=l[p];b<i;)b+=f,g++;for(var v=d[p];v<t;)v+=m,x++;var y=Math.ceil(x*r/8);W.decode._filterZero(n,e,c,x,g);for(var F=0,D=l[p];D<i;){for(var C=d[p],k=c+F*y<<3;C<t;){if(r==1){var E=n[k>>3];E=E>>7-(k&7)&1,a[D*s+(C>>3)]|=E<<7-((C&7)<<0)}if(r==2){var E=n[k>>3];E=E>>6-(k&7)&3,a[D*s+(C>>2)]|=E<<6-((C&3)<<1)}if(r==4){var E=n[k>>3];E=E>>4-(k&7)&15,a[D*s+(C>>1)]|=E<<4-((C&1)<<2)}if(r>=8)for(var B=D*s+C*o,S=0;S<o;S++)a[B+S]=n[(k>>3)+S];k+=r,C+=m}F++,D+=f}x*g!=0&&(c+=g*(1+y)),p=p+1}return a};W.decode._getBPP=function(n){var e=[1,null,3,1,2,null,4][n.ctype];return e*n.depth};W.decode._filterZero=function(n,e,t,i,r){var o=W.decode._getBPP(e),s=Math.ceil(i*o/8),a=W.decode._paeth;o=Math.ceil(o/8);var c=0,l=1,d=n[t],h=0;if(d>1&&(n[t]=[0,0,1][d-2]),d==3)for(h=o;h<s;h++)n[h+1]=n[h+1]+(n[h+1-o]>>>1)&255;for(var u=0;u<r;u++)if(c=t+u*s,l=c+u+1,d=n[l-1],h=0,d==0)for(;h<s;h++)n[c+h]=n[l+h];else if(d==1){for(;h<o;h++)n[c+h]=n[l+h];for(;h<s;h++)n[c+h]=n[l+h]+n[c+h-o]}else if(d==2)for(;h<s;h++)n[c+h]=n[l+h]+n[c+h-s];else if(d==3){for(;h<o;h++)n[c+h]=n[l+h]+(n[c+h-s]>>>1);for(;h<s;h++)n[c+h]=n[l+h]+(n[c+h-s]+n[c+h-o]>>>1)}else{for(;h<o;h++)n[c+h]=n[l+h]+a(0,n[c+h-s],0);for(;h<s;h++)n[c+h]=n[l+h]+a(n[c+h-o],n[c+h-s],n[c+h-o-s])}return n};W.decode._paeth=function(n,e,t){var i=n+e-t,r=i-n,o=i-e,s=i-t;return r*r<=o*o&&r*r<=s*s?n:o*o<=s*s?e:t};W.decode._IHDR=function(n,e,t){var i=W._bin;t.width=i.readUint(n,e),e+=4,t.height=i.readUint(n,e),e+=4,t.depth=n[e],e++,t.ctype=n[e],e++,t.compress=n[e],e++,t.filter=n[e],e++,t.interlace=n[e],e++};W._bin={nextZero:function(n,e){for(;n[e]!=0;)e++;return e},readUshort:function(n,e){return n[e]<<8|n[e+1]},writeUshort:function(n,e,t){n[e]=t>>8&255,n[e+1]=t&255},readUint:function(n,e){return n[e]*(256*256*256)+(n[e+1]<<16|n[e+2]<<8|n[e+3])},writeUint:function(n,e,t){n[e]=t>>24&255,n[e+1]=t>>16&255,n[e+2]=t>>8&255,n[e+3]=t&255},readASCII:function(n,e,t){for(var i="",r=0;r<t;r++)i+=String.fromCharCode(n[e+r]);return i},writeASCII:function(n,e,t){for(var i=0;i<t.length;i++)n[e+i]=t.charCodeAt(i)},readBytes:function(n,e,t){for(var i=[],r=0;r<t;r++)i.push(n[e+r]);return i},pad:function(n){return n.length<2?"0"+n:n},readUTF8:function(n,e,t){for(var i="",r,o=0;o<t;o++)i+="%"+W._bin.pad(n[e+o].toString(16));try{r=decodeURIComponent(i)}catch(s){return W._bin.readASCII(n,e,t)}return r}};W._copyTile=function(n,e,t,i,r,o,s,a,c){for(var l=Math.min(e,r),d=Math.min(t,o),h=0,u=0,p=0;p<d;p++)for(var f=0;f<l;f++)if(s>=0&&a>=0?(h=p*e+f<<2,u=(a+p)*r+s+f<<2):(h=(-a+p)*e-s+f<<2,u=p*r+f<<2),c==0)i[u]=n[h],i[u+1]=n[h+1],i[u+2]=n[h+2],i[u+3]=n[h+3];else if(c==1){var m=n[h+3]*.00392156862745098,x=n[h]*m,g=n[h+1]*m,b=n[h+2]*m,v=i[u+3]*(1/255),y=i[u]*v,F=i[u+1]*v,D=i[u+2]*v,C=1-m,k=m+v*C,E=k==0?0:1/k;i[u+3]=255*k,i[u+0]=(x+y*C)*E,i[u+1]=(g+F*C)*E,i[u+2]=(b+D*C)*E}else if(c==2){var m=n[h+3],x=n[h],g=n[h+1],b=n[h+2],v=i[u+3],y=i[u],F=i[u+1],D=i[u+2];m==v&&x==y&&g==F&&b==D?(i[u]=0,i[u+1]=0,i[u+2]=0,i[u+3]=0):(i[u]=x,i[u+1]=g,i[u+2]=b,i[u+3]=m)}else if(c==3){var m=n[h+3],x=n[h],g=n[h+1],b=n[h+2],v=i[u+3],y=i[u],F=i[u+1],D=i[u+2];if(m==v&&x==y&&g==F&&b==D)continue;if(m<220&&v>20)return!1}return!0};W.encode=function(n,e,t,i,r,o,s){i==null&&(i=0),s==null&&(s=!1);var a=W.encode.compress(n,e,t,i,[!1,!1,!1,0,s]);return W.encode.compressPNG(a,-1),W.encode._main(a,e,t,r,o)};W.encodeLL=function(n,e,t,i,r,o,s,a){for(var c={ctype:0+(i==1?0:2)+(r==0?0:4),depth:o,frames:[]},l=Date.now(),d=(i+r)*o,h=d*e,u=0;u<n.length;u++)c.frames.push({rect:{x:0,y:0,width:e,height:t},img:new Uint8Array(n[u]),blend:0,dispose:1,bpp:Math.ceil(d/8),bpl:Math.ceil(h/8)});W.encode.compressPNG(c,0,!0);var p=W.encode._main(c,e,t,s,a);return p};W.encode._main=function(n,e,t,i,r){r==null&&(r={});var o=W.crc.crc,s=W._bin.writeUint,a=W._bin.writeUshort,c=W._bin.writeASCII,l=8,d=n.frames.length>1,h=!1,u=33+(d?20:0);if(r.sRGB!=null&&(u+=13),r.pHYs!=null&&(u+=21),n.ctype==3){for(var p=n.plte.length,f=0;f<p;f++)n.plte[f]>>>24!=255&&(h=!0);u+=8+p*3+4+(h?8+p*1+4:0)}for(var m=0;m<n.frames.length;m++){var x=n.frames[m];d&&(u+=38),u+=x.cimg.length+12,m!=0&&(u+=4)}u+=12;for(var g=new Uint8Array(u),b=[137,80,78,71,13,10,26,10],f=0;f<8;f++)g[f]=b[f];if(s(g,l,13),l+=4,c(g,l,"IHDR"),l+=4,s(g,l,e),l+=4,s(g,l,t),l+=4,g[l]=n.depth,l++,g[l]=n.ctype,l++,g[l]=0,l++,g[l]=0,l++,g[l]=0,l++,s(g,l,o(g,l-17,17)),l+=4,r.sRGB!=null&&(s(g,l,1),l+=4,c(g,l,"sRGB"),l+=4,g[l]=r.sRGB,l++,s(g,l,o(g,l-5,5)),l+=4),r.pHYs!=null&&(s(g,l,9),l+=4,c(g,l,"pHYs"),l+=4,s(g,l,r.pHYs[0]),l+=4,s(g,l,r.pHYs[1]),l+=4,g[l]=r.pHYs[2],l++,s(g,l,o(g,l-13,13)),l+=4),d&&(s(g,l,8),l+=4,c(g,l,"acTL"),l+=4,s(g,l,n.frames.length),l+=4,s(g,l,r.loop!=null?r.loop:0),l+=4,s(g,l,o(g,l-12,12)),l+=4),n.ctype==3){var p=n.plte.length;s(g,l,p*3),l+=4,c(g,l,"PLTE"),l+=4;for(var f=0;f<p;f++){var v=f*3,y=n.plte[f],F=y&255,D=y>>>8&255,C=y>>>16&255;g[l+v+0]=F,g[l+v+1]=D,g[l+v+2]=C}if(l+=p*3,s(g,l,o(g,l-p*3-4,p*3+4)),l+=4,h){s(g,l,p),l+=4,c(g,l,"tRNS"),l+=4;for(var f=0;f<p;f++)g[l+f]=n.plte[f]>>>24&255;l+=p,s(g,l,o(g,l-p-4,p+4)),l+=4}}for(var k=0,m=0;m<n.frames.length;m++){var x=n.frames[m];d&&(s(g,l,26),l+=4,c(g,l,"fcTL"),l+=4,s(g,l,k++),l+=4,s(g,l,x.rect.width),l+=4,s(g,l,x.rect.height),l+=4,s(g,l,x.rect.x),l+=4,s(g,l,x.rect.y),l+=4,a(g,l,i[m]),l+=2,a(g,l,1e3),l+=2,g[l]=x.dispose,l++,g[l]=x.blend,l++,s(g,l,o(g,l-30,30)),l+=4);var E=x.cimg,p=E.length;s(g,l,p+(m==0?0:4)),l+=4;var B=l;c(g,l,m==0?"IDAT":"fdAT"),l+=4,m!=0&&(s(g,l,k++),l+=4),g.set(E,l),l+=p,s(g,l,o(g,B,l-B)),l+=4}return s(g,l,0),l+=4,c(g,l,"IEND"),l+=4,s(g,l,o(g,l-4,4)),l+=4,g.buffer};W.encode.compressPNG=function(n,e,t){for(var i=0;i<n.frames.length;i++){var r=n.frames[i],o=r.rect.width,s=r.rect.height,a=new Uint8Array(s*r.bpl+s);r.cimg=W.encode._filterZero(r.img,s,r.bpp,r.bpl,a,e,t)}};W.encode.compress=function(n,e,t,i,r){for(var o=r[0],s=r[1],a=r[2],c=r[3],l=r[4],d=6,h=8,u=255,p=0;p<n.length;p++)for(var f=new Uint8Array(n[p]),m=f.length,x=0;x<m;x+=4)u&=f[x+3];var g=u!=255,b=W.encode.framize(n,e,t,o,s,a),v={},y=[],F=[];if(i!=0){for(var D=[],x=0;x<b.length;x++)D.push(b[x].img.buffer);for(var C=W.encode.concatRGBA(D),k=W.quantize(C,i),E=0,B=new Uint8Array(k.abuf),x=0;x<b.length;x++){var S=b[x].img,A=S.length;F.push(new Uint8Array(k.inds.buffer,E>>2,A>>2));for(var p=0;p<A;p+=4)S[p]=B[E+p],S[p+1]=B[E+p+1],S[p+2]=B[E+p+2],S[p+3]=B[E+p+3];E+=A}for(var x=0;x<k.plte.length;x++)y.push(k.plte[x].est.rgba)}else for(var p=0;p<b.length;p++){var L=b[p],I=new Uint32Array(L.img.buffer),N=L.rect.width,m=I.length,q=new Uint8Array(m);F.push(q);for(var x=0;x<m;x++){var U=I[x];if(x!=0&&U==I[x-1])q[x]=q[x-1];else if(x>N&&U==I[x-N])q[x]=q[x-N];else{var Z=v[U];if(Z==null&&(v[U]=Z=y.length,y.push(U),y.length>=300))break;q[x]=Z}}}var O=y.length;O<=256&&l==!1&&(O<=2?h=1:O<=4?h=2:O<=16?h=4:h=8,h=Math.max(h,c));for(var p=0;p<b.length;p++){var L=b[p],z=L.rect.x,R=L.rect.y,N=L.rect.width,M=L.rect.height,ne=L.img,oe=new Uint32Array(ne.buffer),Se=4*N,de=4;if(O<=256&&l==!1){Se=Math.ceil(h*N/8);for(var dt=new Uint8Array(Se*M),Ut=F[p],ji=0;ji<M;ji++){var x=ji*Se,Lt=ji*N;if(h==8)for(var ve=0;ve<N;ve++)dt[x+ve]=Ut[Lt+ve];else if(h==4)for(var ve=0;ve<N;ve++)dt[x+(ve>>1)]|=Ut[Lt+ve]<<4-(ve&1)*4;else if(h==2)for(var ve=0;ve<N;ve++)dt[x+(ve>>2)]|=Ut[Lt+ve]<<6-(ve&3)*2;else if(h==1)for(var ve=0;ve<N;ve++)dt[x+(ve>>3)]|=Ut[Lt+ve]<<7-(ve&7)*1}ne=dt,d=3,de=1}else if(g==!1&&b.length==1){for(var dt=new Uint8Array(N*M*3),Ct=N*M,x=0;x<Ct;x++){var S=x*3,er=x*4;dt[S]=ne[er],dt[S+1]=ne[er+1],dt[S+2]=ne[er+2]}ne=dt,d=2,de=3,Se=3*N}L.img=ne,L.bpl=Se,L.bpp=de}return{ctype:d,depth:h,plte:y,frames:b}};W.encode.framize=function(n,e,t,i,r,o){for(var s=[],a=0;a<n.length;a++){var c=new Uint8Array(n[a]),l=new Uint32Array(c.buffer),d,h=0,u=0,p=e,f=t,m=i?1:0;if(a!=0){for(var x=o||i||a==1||s[a-2].dispose!=0?1:2,g=0,b=1e9,v=0;v<x;v++){for(var L=new Uint8Array(n[a-1-v]),y=new Uint32Array(n[a-1-v]),F=e,D=t,C=-1,k=-1,E=0;E<t;E++)for(var B=0;B<e;B++){var S=E*e+B;l[S]!=y[S]&&(B<F&&(F=B),B>C&&(C=B),E<D&&(D=E),E>k&&(k=E))}C==-1&&(F=D=C=k=0),r&&((F&1)==1&&F--,(D&1)==1&&D--);var A=(C-F+1)*(k-D+1);A<b&&(b=A,g=v,h=F,u=D,p=C-F+1,f=k-D+1)}var L=new Uint8Array(n[a-1-g]);g==1&&(s[a-1].dispose=2),d=new Uint8Array(p*f*4),W._copyTile(L,e,t,d,p,f,-h,-u,0),m=W._copyTile(c,e,t,d,p,f,-h,-u,3)?1:0,m==1?W.encode._prepareDiff(c,e,t,d,{x:h,y:u,width:p,height:f}):W._copyTile(c,e,t,d,p,f,-h,-u,0)}else d=c.slice(0);s.push({rect:{x:h,y:u,width:p,height:f},img:d,blend:m,dispose:0})}if(i)for(var a=0;a<s.length;a++){var I=s[a];if(I.blend!=1){var N=I.rect,q=s[a-1].rect,U=Math.min(N.x,q.x),Z=Math.min(N.y,q.y),O=Math.max(N.x+N.width,q.x+q.width),z=Math.max(N.y+N.height,q.y+q.height),R={x:U,y:Z,width:O-U,height:z-Z};s[a-1].dispose=1,a-1!=0&&W.encode._updateFrame(n,e,t,s,a-1,R,r),W.encode._updateFrame(n,e,t,s,a,R,r)}}var M=0;if(n.length!=1)for(var S=0;S<s.length;S++){var I=s[S];M+=I.rect.width*I.rect.height}return s};W.encode._updateFrame=function(n,e,t,i,r,o,s){for(var a=Uint8Array,c=Uint32Array,l=new a(n[r-1]),d=new c(n[r-1]),h=r+1<n.length?new a(n[r+1]):null,u=new a(n[r]),p=new c(u.buffer),f=e,m=t,x=-1,g=-1,b=0;b<o.height;b++)for(var v=0;v<o.width;v++){var y=o.x+v,F=o.y+b,D=F*e+y,C=p[D];C==0||i[r-1].dispose==0&&d[D]==C&&(h==null||h[D*4+3]!=0)||(y<f&&(f=y),y>x&&(x=y),F<m&&(m=F),F>g&&(g=F))}x==-1&&(f=m=x=g=0),s&&((f&1)==1&&f--,(m&1)==1&&m--),o={x:f,y:m,width:x-f+1,height:g-m+1};var k=i[r];k.rect=o,k.blend=1,k.img=new Uint8Array(o.width*o.height*4),i[r-1].dispose==0?(W._copyTile(l,e,t,k.img,o.width,o.height,-o.x,-o.y,0),W.encode._prepareDiff(u,e,t,k.img,o)):W._copyTile(u,e,t,k.img,o.width,o.height,-o.x,-o.y,0)};W.encode._prepareDiff=function(n,e,t,i,r){W._copyTile(n,e,t,i,r.width,r.height,-r.x,-r.y,2)};W.encode._filterZero=function(n,e,t,i,r,o,s){var a=[],c=[0,1,2,3,4];o!=-1?c=[o]:(e*i>5e5||t==1)&&(c=[0]);var l;s&&(l={level:0});for(var d=s&&UZIP!=null?UZIP:ny.default,h=0;h<c.length;h++){for(var u=0;u<e;u++)W.encode._filterLine(r,n,u,i,t,c[h]);a.push(d.deflate(r,l))}for(var p,f=1e9,h=0;h<a.length;h++)a[h].length<f&&(p=h,f=a[h].length);return a[p]};W.encode._filterLine=function(n,e,t,i,r,o){var s=t*i,a=s+t,c=W.decode._paeth;if(n[a]=o,a++,o==0)if(i<500)for(var l=0;l<i;l++)n[a+l]=e[s+l];else n.set(new Uint8Array(e.buffer,s,i),a);else if(o==1){for(var l=0;l<r;l++)n[a+l]=e[s+l];for(var l=r;l<i;l++)n[a+l]=e[s+l]-e[s+l-r]+256&255}else if(t==0){for(var l=0;l<r;l++)n[a+l]=e[s+l];if(o==2)for(var l=r;l<i;l++)n[a+l]=e[s+l];if(o==3)for(var l=r;l<i;l++)n[a+l]=e[s+l]-(e[s+l-r]>>1)+256&255;if(o==4)for(var l=r;l<i;l++)n[a+l]=e[s+l]-c(e[s+l-r],0,0)+256&255}else{if(o==2)for(var l=0;l<i;l++)n[a+l]=e[s+l]+256-e[s+l-i]&255;if(o==3){for(var l=0;l<r;l++)n[a+l]=e[s+l]+256-(e[s+l-i]>>1)&255;for(var l=r;l<i;l++)n[a+l]=e[s+l]+256-(e[s+l-i]+e[s+l-r]>>1)&255}if(o==4){for(var l=0;l<r;l++)n[a+l]=e[s+l]+256-c(0,e[s+l-i],0)&255;for(var l=r;l<i;l++)n[a+l]=e[s+l]+256-c(e[s+l-r],e[s+l-i],e[s+l-r-i])&255}}};W.crc={table:function(){for(var n=new Uint32Array(256),e=0;e<256;e++){for(var t=e,i=0;i<8;i++)t&1?t=3988292384^t>>>1:t=t>>>1;n[e]=t}return n}(),update:function(n,e,t,i){for(var r=0;r<i;r++)n=W.crc.table[(n^e[t+r])&255]^n>>>8;return n},crc:function(n,e,t){return W.crc.update(4294967295,n,e,t)^4294967295}};W.quantize=function(n,e){for(var t=new Uint8Array(n),i=t.slice(0),r=new Uint32Array(i.buffer),o=W.quantize.getKDtree(i,e),s=o[0],a=o[1],c=W.quantize.planeDst,l=t,d=r,h=l.length,u=new Uint8Array(t.length>>2),p=0;p<h;p+=4){var f=l[p]*.00392156862745098,m=l[p+1]*(1/255),x=l[p+2]*(1/255),g=l[p+3]*(1/255),b=W.quantize.getNearest(s,f,m,x,g);u[p>>2]=b.ind,d[p>>2]=b.est.rgba}return{abuf:i.buffer,inds:u,plte:a}};W.quantize.getKDtree=function(n,e,t){t==null&&(t=1e-4);var i=new Uint32Array(n.buffer),r={i0:0,i1:n.length,bst:null,est:null,tdst:0,left:null,right:null};r.bst=W.quantize.stats(n,r.i0,r.i1),r.est=W.quantize.estats(r.bst);for(var o=[r];o.length<e;){for(var s=0,a=0,c=0;c<o.length;c++)o[c].est.L>s&&(s=o[c].est.L,a=c);if(s<t)break;var l=o[a],d=W.quantize.splitPixels(n,i,l.i0,l.i1,l.est.e,l.est.eMq255),h=l.i0>=d||l.i1<=d;if(h){l.est.L=0;continue}var u={i0:l.i0,i1:d,bst:null,est:null,tdst:0,left:null,right:null};u.bst=W.quantize.stats(n,u.i0,u.i1),u.est=W.quantize.estats(u.bst);var p={i0:d,i1:l.i1,bst:null,est:null,tdst:0,left:null,right:null};p.bst={R:[],m:[],N:l.bst.N-u.bst.N};for(var c=0;c<16;c++)p.bst.R[c]=l.bst.R[c]-u.bst.R[c];for(var c=0;c<4;c++)p.bst.m[c]=l.bst.m[c]-u.bst.m[c];p.est=W.quantize.estats(p.bst),l.left=u,l.right=p,o[a]=u,o.push(p)}o.sort(function(f,m){return m.bst.N-f.bst.N});for(var c=0;c<o.length;c++)o[c].ind=c;return[r,o]};W.quantize.getNearest=function(n,e,t,i,r){if(n.left==null)return n.tdst=W.quantize.dist(n.est.q,e,t,i,r),n;var o=W.quantize.planeDst(n.est,e,t,i,r),s=n.left,a=n.right;o>0&&(s=n.right,a=n.left);var c=W.quantize.getNearest(s,e,t,i,r);if(c.tdst<=o*o)return c;var l=W.quantize.getNearest(a,e,t,i,r);return l.tdst<c.tdst?l:c};W.quantize.planeDst=function(n,e,t,i,r){var o=n.e;return o[0]*e+o[1]*t+o[2]*i+o[3]*r-n.eMq};W.quantize.dist=function(n,e,t,i,r){var o=e-n[0],s=t-n[1],a=i-n[2],c=r-n[3];return o*o+s*s+a*a+c*c};W.quantize.splitPixels=function(n,e,t,i,r,o){var s=W.quantize.vecDot;i-=4;for(var a=0;t<i;){for(;s(n,t,r)<=o;)t+=4;for(;s(n,i,r)>o;)i-=4;if(t>=i)break;var c=e[t>>2];e[t>>2]=e[i>>2],e[i>>2]=c,t+=4,i-=4}for(;s(n,t,r)>o;)t-=4;return t+4};W.quantize.vecDot=function(n,e,t){return n[e]*t[0]+n[e+1]*t[1]+n[e+2]*t[2]+n[e+3]*t[3]};W.quantize.stats=function(n,e,t){for(var i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],r=[0,0,0,0],o=t-e>>2,s=e;s<t;s+=4){var a=n[s]*.00392156862745098,c=n[s+1]*(1/255),l=n[s+2]*(1/255),d=n[s+3]*(1/255);r[0]+=a,r[1]+=c,r[2]+=l,r[3]+=d,i[0]+=a*a,i[1]+=a*c,i[2]+=a*l,i[3]+=a*d,i[5]+=c*c,i[6]+=c*l,i[7]+=c*d,i[10]+=l*l,i[11]+=l*d,i[15]+=d*d}return i[4]=i[1],i[8]=i[2],i[9]=i[6],i[12]=i[3],i[13]=i[7],i[14]=i[11],{R:i,m:r,N:o}};W.quantize.estats=function(n){var e=n.R,t=n.m,i=n.N,r=t[0],o=t[1],s=t[2],a=t[3],c=i==0?0:1/i,l=[e[0]-r*r*c,e[1]-r*o*c,e[2]-r*s*c,e[3]-r*a*c,e[4]-o*r*c,e[5]-o*o*c,e[6]-o*s*c,e[7]-o*a*c,e[8]-s*r*c,e[9]-s*o*c,e[10]-s*s*c,e[11]-s*a*c,e[12]-a*r*c,e[13]-a*o*c,e[14]-a*s*c,e[15]-a*a*c],d=l,h=W.M4,u=[.5,.5,.5,.5],p=0,f=0;if(i!=0)for(var m=0;m<10&&(u=h.multVec(d,u),f=Math.sqrt(h.dot(u,u)),u=h.sml(1/f,u),!(Math.abs(f-p)<1e-9));m++)p=f;var x=[r*c,o*c,s*c,a*c],g=h.dot(h.sml(255,x),u);return{Cov:l,q:x,e:u,L:p,eMq255:g,eMq:h.dot(u,x),rgba:(Math.round(255*x[3])<<24|Math.round(255*x[2])<<16|Math.round(255*x[1])<<8|Math.round(255*x[0])<<0)>>>0}};W.M4={multVec:function(n,e){return[n[0]*e[0]+n[1]*e[1]+n[2]*e[2]+n[3]*e[3],n[4]*e[0]+n[5]*e[1]+n[6]*e[2]+n[7]*e[3],n[8]*e[0]+n[9]*e[1]+n[10]*e[2]+n[11]*e[3],n[12]*e[0]+n[13]*e[1]+n[14]*e[2]+n[15]*e[3]]},dot:function(n,e){return n[0]*e[0]+n[1]*e[1]+n[2]*e[2]+n[3]*e[3]},sml:function(n,e){return[n*e[0],n*e[1],n*e[2],n*e[3]]}};W.encode.concatRGBA=function(n){for(var e=0,t=0;t<n.length;t++)e+=n[t].byteLength;for(var i=new Uint8Array(e),r=0,t=0;t<n.length;t++){for(var o=new Uint8Array(n[t]),s=o.length,a=0;a<s;a+=4){var c=o[a],l=o[a+1],d=o[a+2],h=o[a+3];h==0&&(c=l=d=0),i[r+a]=c,i[r+a+1]=l,i[r+a+2]=d,i[r+a+3]=h}r+=s}return i.buffer};var Kf=W;var xP=n=>{if(n===0)return Lo.Greyscale;if(n===2)return Lo.Truecolour;if(n===3)return Lo.IndexedColour;if(n===4)return Lo.GreyscaleWithAlpha;if(n===6)return Lo.TruecolourWithAlpha;throw new Error(`Unknown color type: ${n}`)},bP=n=>{let e=Math.floor(n.length/4),t=new Uint8Array(e*3),i=new Uint8Array(e*1),r=0,o=0,s=0;for(;r<n.length;)t[o++]=n[r++],t[o++]=n[r++],t[o++]=n[r++],i[s++]=n[r++];return{rgbChannel:t,alphaChannel:i}},Lo;(function(n){n.Greyscale="Greyscale",n.Truecolour="Truecolour",n.IndexedColour="IndexedColour",n.GreyscaleWithAlpha="GreyscaleWithAlpha",n.TruecolourWithAlpha="TruecolourWithAlpha"})(Lo||(Lo={}));var zs=class{constructor(e){let t=Kf.decode(e),i=Kf.toRGBA8(t);if(i.length>1)throw new Error("Animated PNGs are not supported");let r=new Uint8Array(i[0]),{rgbChannel:o,alphaChannel:s}=bP(r);this.rgbChannel=o,s.some(c=>c<255)&&(this.alphaChannel=s),this.type=xP(t.ctype),this.width=t.width,this.height=t.height,this.bitsPerComponent=8}};zs.load=n=>new zs(n);var Gf=class n{static async for(e){let t=zs.load(e);return new n(t)}constructor(e){this.image=e,this.bitsPerComponent=e.bitsPerComponent,this.width=e.width,this.height=e.height,this.colorSpace="DeviceRGB"}async embedIntoContext(e,t){let i=this.embedAlphaChannel(e),r=e.flateStream(this.image.rgbChannel,{Type:"XObject",Subtype:"Image",BitsPerComponent:this.image.bitsPerComponent,Width:this.image.width,Height:this.image.height,ColorSpace:this.colorSpace,SMask:i});return t?(e.assign(t,r),t):e.register(r)}embedAlphaChannel(e){if(!this.image.alphaChannel)return;let t=e.flateStream(this.image.alphaChannel,{Type:"XObject",Subtype:"Image",Height:this.image.height,Width:this.image.width,BitsPerComponent:this.image.bitsPerComponent,ColorSpace:"DeviceGray",Decode:[0,1]});return e.register(t)}},Us=Gf;var Xf=class n{constructor(e,t,i){this.bytes=e,this.start=t||0,this.pos=this.start,this.end=t&&i?t+i:this.bytes.length}get length(){return this.end-this.start}get isEmpty(){return this.length===0}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getUint16(){let e=this.getByte(),t=this.getByte();return e===-1||t===-1?-1:(e<<8)+t}getInt32(){let e=this.getByte(),t=this.getByte(),i=this.getByte(),r=this.getByte();return(e<<24)+(t<<16)+(i<<8)+r}getBytes(e,t=!1){let i=this.bytes,r=this.pos,o=this.end;if(e){let s=r+e;s>o&&(s=o),this.pos=s;let a=i.subarray(r,s);return t?new Uint8ClampedArray(a):a}else{let s=i.subarray(r,o);return t?new Uint8ClampedArray(s):s}}peekByte(){let e=this.getByte();return this.pos--,e}peekBytes(e,t=!1){let i=this.getBytes(e,t);return this.pos-=i.length,i}skip(e){e||(e=1),this.pos+=e}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(e,t){return new n(this.bytes,e,t)}decode(){return this.bytes}},Kd=Xf;var yP=new Uint8Array(0),Zf=class{constructor(e){if(this.pos=0,this.bufferLength=0,this.eof=!1,this.buffer=yP,this.minBufferLength=512,e)for(;this.minBufferLength<e;)this.minBufferLength*=2}get isEmpty(){for(;!this.eof&&this.bufferLength===0;)this.readBlock();return this.bufferLength===0}getByte(){let e=this.pos;for(;this.bufferLength<=e;){if(this.eof)return-1;this.readBlock()}return this.buffer[this.pos++]}getUint16(){let e=this.getByte(),t=this.getByte();return e===-1||t===-1?-1:(e<<8)+t}getInt32(){let e=this.getByte(),t=this.getByte(),i=this.getByte(),r=this.getByte();return(e<<24)+(t<<16)+(i<<8)+r}getBytes(e,t=!1){let i,r=this.pos;if(e){for(this.ensureBuffer(r+e),i=r+e;!this.eof&&this.bufferLength<i;)this.readBlock();let s=this.bufferLength;i>s&&(i=s)}else{for(;!this.eof;)this.readBlock();i=this.bufferLength}this.pos=i;let o=this.buffer.subarray(r,i);return t&&!(o instanceof Uint8ClampedArray)?new Uint8ClampedArray(o):o}peekByte(){let e=this.getByte();return this.pos--,e}peekBytes(e,t=!1){let i=this.getBytes(e,t);return this.pos-=i.length,i}skip(e){e||(e=1),this.pos+=e}reset(){this.pos=0}makeSubStream(e,t){let i=e+t;for(;this.bufferLength<=i&&!this.eof;)this.readBlock();return new Kd(this.buffer,e,t)}decode(){for(;!this.eof;)this.readBlock();return this.buffer.subarray(0,this.bufferLength)}readBlock(){throw new Ye(this.constructor.name,"readBlock")}ensureBuffer(e){let t=this.buffer;if(e<=t.byteLength)return t;let i=this.minBufferLength;for(;i<e;)i*=2;let r=new Uint8Array(i);return r.set(t),this.buffer=r}},li=Zf;var ry=n=>n===32||n===9||n===13||n===10,Yf=class extends li{constructor(e,t){super(t),this.stream=e,this.input=new Uint8Array(5),t&&(t=.8*t)}readBlock(){let r=this.stream,o=r.getByte();for(;ry(o);)o=r.getByte();if(o===-1||o===126){this.eof=!0;return}let s=this.bufferLength,a,c;if(o===122){for(a=this.ensureBuffer(s+4),c=0;c<4;++c)a[s+c]=0;this.bufferLength+=4}else{let l=this.input;for(l[0]=o,c=1;c<5;++c){for(o=r.getByte();ry(o);)o=r.getByte();if(l[c]=o,o===-1||o===126)break}if(a=this.ensureBuffer(s+c-1),this.bufferLength+=c-1,c<5){for(;c<5;++c)l[c]=117;this.eof=!0}let d=0;for(c=0;c<5;++c)d=d*85+(l[c]-33);for(c=3;c>=0;--c)a[s+c]=d&255,d>>=8}}},oy=Yf;var Jf=class extends li{constructor(e,t){super(t),this.stream=e,this.firstDigit=-1,t&&(t=.5*t)}readBlock(){let t=this.stream.getBytes(8e3);if(!t.length){this.eof=!0;return}let i=t.length+1>>1,r=this.ensureBuffer(this.bufferLength+i),o=this.bufferLength,s=this.firstDigit;for(let a=0,c=t.length;a<c;a++){let l=t[a],d;if(l>=48&&l<=57)d=l&15;else if(l>=65&&l<=70||l>=97&&l<=102)d=(l&15)+9;else if(l===62){this.eof=!0;break}else continue;s<0?s=d:(r[o++]=s<<4|d,s=-1)}s>=0&&this.eof&&(r[o++]=s<<4,s=-1),this.firstDigit=s,this.bufferLength=o}},sy=Jf;var ay=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),vP=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),wP=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),FP=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],DP=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5],_f=class extends li{constructor(e,t){super(t),this.stream=e;let i=e.getByte(),r=e.getByte();if(i===-1||r===-1)throw new Error(`Invalid header in flate stream: ${i}, ${r}`);if((i&15)!==8)throw new Error(`Unknown compression method in flate stream: ${i}, ${r}`);if(((i<<8)+r)%31!==0)throw new Error(`Bad FCHECK in flate stream: ${i}, ${r}`);if(r&32)throw new Error(`FDICT bit set in flate stream: ${i}, ${r}`);this.codeSize=0,this.codeBuf=0}readBlock(){let e,t,i=this.stream,r=this.getBits(3);if(r&1&&(this.eof=!0),r>>=1,r===0){let l;if((l=i.getByte())===-1)throw new Error("Bad block header in flate stream");let d=l;if((l=i.getByte())===-1)throw new Error("Bad block header in flate stream");if(d|=l<<8,(l=i.getByte())===-1)throw new Error("Bad block header in flate stream");let h=l;if((l=i.getByte())===-1)throw new Error("Bad block header in flate stream");if(h|=l<<8,h!==(~d&65535)&&(d!==0||h!==0))throw new Error("Bad uncompressed block length in flate stream");this.codeBuf=0,this.codeSize=0;let u=this.bufferLength;e=this.ensureBuffer(u+d);let p=u+d;if(this.bufferLength=p,d===0)i.peekByte()===-1&&(this.eof=!0);else for(let f=u;f<p;++f){if((l=i.getByte())===-1){this.eof=!0;break}e[f]=l}return}let o,s;if(r===1)o=FP,s=DP;else if(r===2){let l=this.getBits(5)+257,d=this.getBits(5)+1,h=this.getBits(4)+4,u=new Uint8Array(ay.length),p;for(p=0;p<h;++p)u[ay[p]]=this.getBits(3);let f=this.generateHuffmanTable(u);t=0,p=0;let m=l+d,x=new Uint8Array(m),g,b,v;for(;p<m;){let y=this.getCode(f);if(y===16)g=2,b=3,v=t;else if(y===17)g=3,b=3,v=t=0;else if(y===18)g=7,b=11,v=t=0;else{x[p++]=t=y;continue}let F=this.getBits(g)+b;for(;F-- >0;)x[p++]=v}o=this.generateHuffmanTable(x.subarray(0,l)),s=this.generateHuffmanTable(x.subarray(l,m))}else throw new Error("Unknown block type in flate stream");e=this.buffer;let a=e?e.length:0,c=this.bufferLength;for(;;){let l=this.getCode(o);if(l<256){c+1>=a&&(e=this.ensureBuffer(c+1),a=e.length),e[c++]=l;continue}if(l===256){this.bufferLength=c;return}l-=257,l=vP[l];let d=l>>16;d>0&&(d=this.getBits(d)),t=(l&65535)+d,l=this.getCode(s),l=wP[l],d=l>>16,d>0&&(d=this.getBits(d));let h=(l&65535)+d;c+t>=a&&(e=this.ensureBuffer(c+t),a=e.length);for(let u=0;u<t;++u,++c)e[c]=e[c-h]}}getBits(e){let t=this.stream,i=this.codeSize,r=this.codeBuf,o;for(;i<e;){if((o=t.getByte())===-1)throw new Error("Bad encoding in flate stream");r|=o<<i,i+=8}return o=r&(1<<e)-1,this.codeBuf=r>>e,this.codeSize=i-=e,o}getCode(e){let t=this.stream,i=e[0],r=e[1],o=this.codeSize,s=this.codeBuf,a;for(;o<r&&(a=t.getByte())!==-1;)s|=a<<o,o+=8;let c=i[s&(1<<r)-1];typeof i=="number"&&console.log("FLATE:",c);let l=c>>16,d=c&65535;if(l<1||o<l)throw new Error("Bad encoding in flate stream");return this.codeBuf=s>>l,this.codeSize=o-l,d}generateHuffmanTable(e){let t=e.length,i=0,r;for(r=0;r<t;++r)e[r]>i&&(i=e[r]);let o=1<<i,s=new Int32Array(o);for(let a=1,c=0,l=2;a<=i;++a,c<<=1,l<<=1)for(let d=0;d<t;++d)if(e[d]===a){let h=0,u=c;for(r=0;r<a;++r)h=h<<1|u&1,u>>=1;for(r=h;r<o;r+=l)s[r]=a<<16|d;++c}return[s,i]}},ly=_f;var Qf=class extends li{constructor(e,t,i){super(t),this.stream=e,this.cachedData=0,this.bitsCached=0;let r=4096,o={earlyChange:i,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(r),dictionaryLengths:new Uint16Array(r),dictionaryPrevCodes:new Uint16Array(r),currentSequence:new Uint8Array(r),currentSequenceLength:0};for(let s=0;s<256;++s)o.dictionaryValues[s]=s,o.dictionaryLengths[s]=1;this.lzwState=o}readBlock(){let t=1024,i=512,r,o,s,a=this.lzwState;if(!a)return;let c=a.earlyChange,l=a.nextCode,d=a.dictionaryValues,h=a.dictionaryLengths,u=a.dictionaryPrevCodes,p=a.codeLength,f=a.prevCode,m=a.currentSequence,x=a.currentSequenceLength,g=0,b=this.bufferLength,v=this.ensureBuffer(this.bufferLength+t);for(r=0;r<512;r++){let y=this.readBits(p),F=x>0;if(!y||y<256)m[0]=y,x=1;else if(y>=258)if(y<l)for(x=h[y],o=x-1,s=y;o>=0;o--)m[o]=d[s],s=u[s];else m[x++]=m[0];else if(y===256){p=9,l=258,x=0;continue}else{this.eof=!0,delete this.lzwState;break}if(F&&(u[l]=f,h[l]=h[f]+1,d[l]=m[0],l++,p=l+c&l+c-1?p:Math.min(Math.log(l+c)/.6931471805599453+1,12)|0),f=y,g+=x,t<g){do t+=i;while(t<g);v=this.ensureBuffer(this.bufferLength+t)}for(o=0;o<x;o++)v[b++]=m[o]}a.nextCode=l,a.codeLength=p,a.prevCode=f,a.currentSequenceLength=x,this.bufferLength=b}readBits(e){let t=this.bitsCached,i=this.cachedData;for(;t<e;){let r=this.stream.getByte();if(r===-1)return this.eof=!0,null;i=i<<8|r,t+=8}return this.bitsCached=t-=e,this.cachedData=i,i>>>t&(1<<e)-1}},cy=Qf;var $f=class extends li{constructor(e,t){super(t),this.stream=e}readBlock(){let e=this.stream.getBytes(2);if(!e||e.length<2||e[0]===128){this.eof=!0;return}let t,i=this.bufferLength,r=e[0];if(r<128){if(t=this.ensureBuffer(i+r+1),t[i++]=e[1],r>0){let o=this.stream.getBytes(r);t.set(o,i),i+=r}}else{r=257-r;let o=e[1];t=this.ensureBuffer(i+r+1);for(let s=0;s<r;s++)t[i++]=o}this.bufferLength=i}},dy=$f;var hy=(n,e,t)=>{if(e===w.of("FlateDecode"))return new ly(n);if(e===w.of("LZWDecode")){let i=1;if(t instanceof G){let r=t.lookup(w.of("EarlyChange"));r instanceof K&&(i=r.asNumber())}return new cy(n,void 0,i)}if(e===w.of("ASCII85Decode"))return new oy(n);if(e===w.of("ASCIIHexDecode"))return new sy(n);if(e===w.of("RunLengthDecode"))return new dy(n);throw new gl(e.asString())},qs=({dict:n,contents:e,transform:t})=>{let i=new Kd(e);t&&(i=t.createStream(i,e.length));let r=n.lookup(w.of("Filter")),o=n.lookup(w.of("DecodeParms"));if(r instanceof w)i=hy(i,r,o);else if(r instanceof X)for(let s=0,a=r.size();s<a;s++)i=hy(i,r.lookup(s,w),o&&o.lookupMaybe(s,G));else if(r)throw new $i([w,X],r);return i};var PP=n=>{let e=n.MediaBox(),t=e.lookup(0,K).asNumber(),i=e.lookup(1,K).asNumber(),r=e.lookup(2,K).asNumber(),o=e.lookup(3,K).asNumber();return{left:Math.min(t,r),bottom:Math.min(i,o),right:Math.max(t,r),top:Math.max(i,o)}},kP=n=>[1,0,0,1,-n.left,-n.bottom],ep=class n{static async for(e,t,i){return new n(e,t,i)}constructor(e,t,i){this.page=e;let r=t!=null?t:PP(e);this.width=r.right-r.left,this.height=r.top-r.bottom,this.boundingBox=r,this.transformationMatrix=i!=null?i:kP(r)}async embedIntoContext(e,t){let{Contents:i,Resources:r}=this.page.normalizedEntries();if(!i)throw new ml;let o=this.decodeContents(i),{left:s,bottom:a,right:c,top:l}=this.boundingBox,d=e.flateStream(o,{Type:"XObject",Subtype:"Form",FormType:1,BBox:[s,a,c,l],Matrix:this.transformationMatrix,Resources:r});return t?(e.assign(t,d),t):e.register(d)}decodeContents(e){let t=Uint8Array.of(P.Newline),i=[];for(let r=0,o=e.size();r<o;r++){let s=e.lookup(r,Te),a;if(s instanceof Oi)a=qs(s).decode();else if(s instanceof tn)a=s.getUnencodedContents();else throw new xl(s);i.push(a,t)}return A0(...i)}},Ws=ep;var tt=new Uint8Array(256);tt[P.Zero]=1;tt[P.One]=1;tt[P.Two]=1;tt[P.Three]=1;tt[P.Four]=1;tt[P.Five]=1;tt[P.Six]=1;tt[P.Seven]=1;tt[P.Eight]=1;tt[P.Nine]=1;var Gd=new Uint8Array(256);Gd[P.Period]=1;Gd[P.Plus]=1;Gd[P.Minus]=1;var ec=new Uint8Array(256);for(let n=0,e=256;n<e;n++)ec[n]=tt[n]||Gd[n]?1:0;var{Newline:uy,CarriageReturn:fy}=P,tp=class{constructor(e,t=!1){this.bytes=e,this.capNumbers=t}parseRawInt(){let e="";for(;!this.bytes.done();){let i=this.bytes.peek();if(!tt[i])break;e+=Mt(this.bytes.next())}let t=Number(e);if(!e||!isFinite(t))throw new Ss(this.bytes.position(),e);return t}parseRawNumber(){let e="";for(;!this.bytes.done();){let i=this.bytes.peek();if(!ec[i]||(e+=Mt(this.bytes.next()),i===P.Period))break}for(;!this.bytes.done();){let i=this.bytes.peek();if(!tt[i])break;e+=Mt(this.bytes.next())}let t=Number(e);if(!e||!isFinite(t))throw new Ss(this.bytes.position(),e);if(t>Number.MAX_SAFE_INTEGER)if(this.capNumbers){let i=`Parsed number that is too large for some PDF readers: ${e}, using Number.MAX_SAFE_INTEGER instead.`;return console.warn(i),Number.MAX_SAFE_INTEGER}else{let i=`Parsed number that is too large for some PDF readers: ${e}, not capping.`;console.warn(i)}return t}skipWhitespace(){for(;!this.bytes.done()&&ai[this.bytes.peek()];)this.bytes.next()}skipLine(){for(;!this.bytes.done();){let e=this.bytes.peek();if(e===uy||e===fy)return;this.bytes.next()}}skipComment(){if(this.bytes.peek()!==P.Percent)return!1;for(;!this.bytes.done();){let e=this.bytes.peek();if(e===uy||e===fy)return!0;this.bytes.next()}return!0}skipWhitespaceAndComments(){for(this.skipWhitespace();this.skipComment();)this.skipWhitespace()}matchKeyword(e){let t=this.bytes.offset();for(let i=0,r=e.length;i<r;i++)if(this.bytes.done()||this.bytes.next()!==e[i])return this.bytes.moveTo(t),!1;return!0}},py=tp;var Oo=class{constructor(e){this.idx=0,this.line=0,this.column=0,this.bytes=e,this.length=this.bytes.length}moveTo(e){this.idx=e}next(){let e=this.bytes[this.idx++];return e===P.Newline?(this.line+=1,this.column=0):this.column+=1,e}assertNext(e){if(this.peek()!==e)throw new Dl(this.position(),e,this.peek());return this.next()}peek(){return this.bytes[this.idx]}peekAhead(e){return this.bytes[this.idx+e]}peekAt(e){return this.bytes[e]}done(){return this.idx>=this.length}offset(){return this.idx}slice(e,t){return this.bytes.slice(e,t)}position(){return{line:this.line,column:this.column,offset:this.idx}}};Oo.of=n=>new Oo(n);Oo.fromPDFRawStream=n=>Oo.of(qs(n).decode());var kr=Oo;var{Space:CP,CarriageReturn:tc,Newline:ic}=P,nc=[P.s,P.t,P.r,P.e,P.a,P.m],Xd=[P.e,P.n,P.d,P.s,P.t,P.r,P.e,P.a,P.m],Ae={header:[P.Percent,P.P,P.D,P.F,P.Dash],eof:[P.Percent,P.Percent,P.E,P.O,P.F],obj:[P.o,P.b,P.j],endobj:[P.e,P.n,P.d,P.o,P.b,P.j],xref:[P.x,P.r,P.e,P.f],trailer:[P.t,P.r,P.a,P.i,P.l,P.e,P.r],startxref:[P.s,P.t,P.a,P.r,P.t,P.x,P.r,P.e,P.f],true:[P.t,P.r,P.u,P.e],false:[P.f,P.a,P.l,P.s,P.e],null:[P.n,P.u,P.l,P.l],stream:nc,streamEOF1:[...nc,CP,tc,ic],streamEOF2:[...nc,tc,ic],streamEOF3:[...nc,tc],streamEOF4:[...nc,ic],endstream:Xd,EOF1endstream:[tc,ic,...Xd],EOF2endstream:[tc,...Xd],EOF3endstream:[ic,...Xd]};var Mo=class extends py{constructor(e,t,i=!1,r){super(e,i),this.context=t,this.cryptoFactory=r}parseObject(e){if(this.skipWhitespaceAndComments(),this.matchKeyword(Ae.true))return Li.True;if(this.matchKeyword(Ae.false))return Li.False;if(this.matchKeyword(Ae.null))return Ve;let t=this.bytes.peek();if(t===P.LessThan&&this.bytes.peekAhead(1)===P.LessThan)return this.parseDictOrStream(e);if(t===P.LessThan)return this.parseHexString(e);if(t===P.LeftParen)return this.parseString(e);if(t===P.ForwardSlash)return this.parseName();if(t===P.LeftSquareBracket)return this.parseArray(e);if(ec[t])return this.parseNumberOrRef();throw new Pl(this.bytes.position(),t)}parseNumberOrRef(){let e=this.parseRawNumber();this.skipWhitespaceAndComments();let t=this.bytes.offset();if(tt[this.bytes.peek()]){let i=this.parseRawNumber();if(this.skipWhitespaceAndComments(),this.bytes.peek()===P.R)return this.bytes.assertNext(P.R),Y.of(e,i)}return this.bytes.moveTo(t),K.of(e)}parseHexString(e){let t="";for(this.bytes.assertNext(P.LessThan);!this.bytes.done()&&this.bytes.peek()!==P.GreaterThan;)t+=Mt(this.bytes.next());return this.bytes.assertNext(P.GreaterThan),this.cryptoFactory&&e&&(t=this.cryptoFactory.createCipherTransform(e.objectNumber,e.generationNumber).decryptBytes(j.of(t).asBytes()).reduce((o,s)=>o+s.toString(16).padStart(2,"0"),"")),j.of(t)}parseString(e){let t=0,i=!1,r="";for(;!this.bytes.done();){let o=this.bytes.next();if(r+=Mt(o),i||(o===P.LeftParen&&(t+=1),o===P.RightParen&&(t-=1)),o===P.BackSlash?i=!i:i&&(i=!1),t===0){let s=r.substring(1,r.length-1);return this.cryptoFactory&&e&&(s=this.cryptoFactory.createCipherTransform(e.objectNumber,e.generationNumber).decryptString(s)),ee.of(s)}}throw new Sl(this.bytes.position())}parseName(){this.bytes.assertNext(P.ForwardSlash);let e="";for(;!this.bytes.done();){let t=this.bytes.peek();if(ai[t]||Ht[t])break;e+=Mt(t),this.bytes.next()}return w.of(e)}parseArray(e){this.bytes.assertNext(P.LeftSquareBracket),this.skipWhitespaceAndComments();let t=X.withContext(this.context);for(;this.bytes.peek()!==P.RightSquareBracket;){let i=this.parseObject(e);t.push(i),this.skipWhitespaceAndComments()}return this.bytes.assertNext(P.RightSquareBracket),t}parseDict(e){this.bytes.assertNext(P.LessThan),this.bytes.assertNext(P.LessThan),this.skipWhitespaceAndComments();let t=new Map;for(;!this.bytes.done()&&this.bytes.peek()!==P.GreaterThan&&this.bytes.peekAhead(1)!==P.GreaterThan;){let r=this.parseName(),o=this.parseObject(e);t.set(r,o),this.skipWhitespaceAndComments()}this.skipWhitespaceAndComments(),this.bytes.assertNext(P.GreaterThan),this.bytes.assertNext(P.GreaterThan);let i=t.get(w.of("Type"));return i===w.of("Catalog")?vr.fromMapWithContext(t,this.context):i===w.of("Pages")?wr.fromMapWithContext(t,this.context):i===w.of("Page")?$e.fromMapWithContext(t,this.context):G.fromMapWithContext(t,this.context)}parseDictOrStream(e){let t=this.bytes.position(),i=this.parseDict(e);if(this.skipWhitespaceAndComments(),!this.matchKeyword(Ae.streamEOF1)&&!this.matchKeyword(Ae.streamEOF2)&&!this.matchKeyword(Ae.streamEOF3)&&!this.matchKeyword(Ae.streamEOF4)&&!this.matchKeyword(Ae.stream))return i;let r=this.bytes.offset(),o,s=i.get(w.of("Length"));s instanceof K?(o=r+s.asNumber(),this.bytes.moveTo(o),this.skipWhitespaceAndComments(),this.matchKeyword(Ae.endstream)||(this.bytes.moveTo(r),o=this.findEndOfStreamFallback(t))):o=this.findEndOfStreamFallback(t);let a=this.bytes.slice(r,o);return this.cryptoFactory&&e&&(a=this.cryptoFactory.createCipherTransform(e.objectNumber,e.generationNumber).decryptBytes(a)),Oi.of(i,a)}findEndOfStreamFallback(e){let t=1,i=this.bytes.offset();for(;!this.bytes.done()&&(i=this.bytes.offset(),this.matchKeyword(Ae.stream)?t+=1:this.matchKeyword(Ae.EOF1endstream)||this.matchKeyword(Ae.EOF2endstream)||this.matchKeyword(Ae.EOF3endstream)||this.matchKeyword(Ae.endstream)?t-=1:this.bytes.next(),t!==0););if(t!==0)throw new Cl(e);return i}};Mo.forBytes=(n,e,t)=>new Mo(kr.of(n),e,t);Mo.forByteStream=(n,e,t=!1)=>new Mo(n,e,t);var js=Mo;var rc=class extends js{constructor(e,t){super(kr.fromPDFRawStream(e),e.dict.context);let{dict:i}=e;this.alreadyParsed=!1,this.shouldWaitForTick=t||(()=>!1),this.firstOffset=i.lookup(w.of("First"),K).asNumber(),this.objectCount=i.lookup(w.of("N"),K).asNumber()}async parseIntoContext(){if(this.alreadyParsed)throw new Pn("PDFObjectStreamParser","parseIntoContext");this.alreadyParsed=!0;let e=this.parseOffsetsAndObjectNumbers();for(let t=0,i=e.length;t<i;t++){let{objectNumber:r,offset:o}=e[t];this.bytes.moveTo(this.firstOffset+o);let s=Y.of(r,0),a=this.parseObject(s);this.context.assign(s,a),this.shouldWaitForTick()&&await Ti()}}parseOffsetsAndObjectNumbers(){let e=[];for(let t=0,i=this.objectCount;t<i;t++){this.skipWhitespaceAndComments();let r=this.parseRawInt();this.skipWhitespaceAndComments();let o=this.parseRawInt();e.push({objectNumber:r,offset:o})}return e}};rc.forStream=(n,e)=>new rc(n,e);var Zd=rc;var oc=class{constructor(e){this.alreadyParsed=!1,this.dict=e.dict,this.bytes=kr.fromPDFRawStream(e),this.context=this.dict.context;let t=this.dict.lookup(w.of("Size"),K),i=this.dict.lookup(w.of("Index"));if(i instanceof X){this.subsections=[];for(let o=0,s=i.size();o<s;o+=2){let a=i.lookup(o+0,K).asNumber(),c=i.lookup(o+1,K).asNumber();this.subsections.push({firstObjectNumber:a,length:c})}}else this.subsections=[{firstObjectNumber:0,length:t.asNumber()}];let r=this.dict.lookup(w.of("W"),X);this.byteWidths=[-1,-1,-1];for(let o=0,s=r.size();o<s;o++)this.byteWidths[o]=r.lookup(o,K).asNumber()}parseIntoContext(){if(this.alreadyParsed)throw new Pn("PDFXRefStreamParser","parseIntoContext");return this.alreadyParsed=!0,this.context.trailerInfo={Root:this.dict.get(w.of("Root")),Encrypt:this.dict.get(w.of("Encrypt")),Info:this.dict.get(w.of("Info")),ID:this.dict.get(w.of("ID"))},this.parseEntries()}parseEntries(){let e=[],[t,i,r]=this.byteWidths;for(let o=0,s=this.subsections.length;o<s;o++){let{firstObjectNumber:a,length:c}=this.subsections[o];for(let l=0;l<c;l++){let d=0;for(let m=0,x=t;m<x;m++)d=d<<8|this.bytes.next();let h=0;for(let m=0,x=i;m<x;m++)h=h<<8|this.bytes.next();let u=0;for(let m=0,x=r;m<x;m++)u=u<<8|this.bytes.next();t===0&&(d=1);let p=a+l,f={ref:Y.of(p,u),offset:h,deleted:d===0,inObjectStream:d===2};e.push(f)}}return e}};oc.forStream=n=>new oc(n);var Yd=oc;var sc=class extends js{constructor(e,t=1/0,i=!1,r=!1,o=!1,s){super(kr.of(e),fo.create(),o,s),this.alreadyParsed=!1,this.parsedObjects=0,this.shouldWaitForTick=()=>(this.parsedObjects+=1,this.parsedObjects%this.objectsPerTick===0),this.objectsPerTick=t,this.throwOnInvalidObject=i,this.warnOnInvalidObjects=r,this.context.isDecrypted=!!(s!=null&&s.encryptionKey)}async parseDocument(){if(this.alreadyParsed)throw new Pn("PDFParser","parseDocument");this.alreadyParsed=!0,this.context.header=this.parseHeader();let e;for(;!this.bytes.done();){await this.parseDocumentSection();let t=this.bytes.offset();if(t===e)throw new El(this.bytes.position());e=t}return this.maybeRecoverRoot(),this.context.lookup(Y.of(0))&&(console.warn("Removing parsed object: 0 0 R"),this.context.delete(Y.of(0))),this.context}maybeRecoverRoot(){let e=i=>i instanceof G&&i.lookup(w.of("Type"))===w.of("Catalog"),t=this.context.lookup(this.context.trailerInfo.Root);if(!e(t)){let i=this.context.enumerateIndirectObjects();for(let r=0,o=i.length;r<o;r++){let[s,a]=i[r];e(a)&&(this.context.trailerInfo.Root=s)}}}parseHeader(){for(;!this.bytes.done();){if(this.matchKeyword(Ae.header)){let e=this.parseRawInt();this.bytes.assertNext(P.Period);let t=this.parseRawInt(),i=en.forVersion(e,t);return this.skipBinaryHeaderComment(),i}this.bytes.next()}throw new Tl(this.bytes.position())}parseIndirectObjectHeader(){this.skipWhitespaceAndComments();let e=this.parseRawInt();this.skipWhitespaceAndComments();let t=this.parseRawInt();if(this.skipWhitespaceAndComments(),!this.matchKeyword(Ae.obj))throw new Al(this.bytes.position(),Ae.obj);return Y.of(e,t)}matchIndirectObjectHeader(){let e=this.bytes.offset();try{return this.parseIndirectObjectHeader(),!0}catch(t){return this.bytes.moveTo(e),!1}}async parseIndirectObject(){let e=this.parseIndirectObjectHeader();this.skipWhitespaceAndComments();let t=this.parseObject(e);return this.skipWhitespaceAndComments(),this.matchKeyword(Ae.endobj),t instanceof Oi&&t.dict.lookup(w.of("Type"))===w.of("ObjStm")?await Zd.forStream(t,this.shouldWaitForTick).parseIntoContext():t instanceof Oi&&t.dict.lookup(w.of("Type"))===w.of("XRef")?Yd.forStream(t).parseIntoContext():this.context.assign(e,t),e}tryToParseInvalidIndirectObject(){let e=this.bytes.position(),t=`Trying to parse invalid object: ${JSON.stringify(e)})`;if(this.throwOnInvalidObject)throw new Error(t);this.warnOnInvalidObjects&&console.warn(t);let i=this.parseIndirectObjectHeader();this.warnOnInvalidObjects&&console.warn(`Invalid object ref: ${i}`),this.skipWhitespaceAndComments();let r=this.bytes.offset(),o=!0;for(;!this.bytes.done()&&(this.matchKeyword(Ae.endobj)&&(o=!1),!!o);)this.bytes.next();if(o)throw new kl(e);let s=this.bytes.offset()-Ae.endobj.length,a=Is.of(this.bytes.slice(r,s));return this.context.assign(i,a),i}async parseIndirectObjects(){for(this.skipWhitespaceAndComments();!this.bytes.done()&&tt[this.bytes.peek()];){let e=this.bytes.offset();try{await this.parseIndirectObject()}catch(t){this.bytes.moveTo(e),this.tryToParseInvalidIndirectObject()}this.skipWhitespaceAndComments(),this.skipJibberish(),this.shouldWaitForTick()&&await Ti()}}maybeParseCrossRefSection(){if(this.skipWhitespaceAndComments(),!this.matchKeyword(Ae.xref))return;this.skipWhitespaceAndComments();let e=-1,t=go.createEmpty();for(;!this.bytes.done()&&tt[this.bytes.peek()];){let i=this.parseRawInt();if(this.skipWhitespaceAndComments(),!tt[this.bytes.peek()])return go.createEmpty();let r=this.parseRawInt();this.skipWhitespaceAndComments();let o=this.bytes.peek();if(o===P.n||o===P.f){let s=Y.of(e,r);this.bytes.next()===P.n?t.addEntry(s,i):t.addDeletedEntry(s,i),e+=1}else e=i;this.skipWhitespaceAndComments()}return t}maybeParseTrailerDict(){if(this.skipWhitespaceAndComments(),!this.matchKeyword(Ae.trailer))return;this.skipWhitespaceAndComments();let e=this.parseDict(),{context:t}=this;t.trailerInfo={Root:e.get(w.of("Root"))||t.trailerInfo.Root,Encrypt:e.get(w.of("Encrypt"))||t.trailerInfo.Encrypt,Info:e.get(w.of("Info"))||t.trailerInfo.Info,ID:e.get(w.of("ID"))||t.trailerInfo.ID}}maybeParseTrailer(){if(this.skipWhitespaceAndComments(),!this.matchKeyword(Ae.startxref))return;this.skipWhitespaceAndComments();let e=this.parseRawInt();return this.skipWhitespace(),this.matchKeyword(Ae.eof),this.skipWhitespaceAndComments(),this.matchKeyword(Ae.eof),this.skipWhitespaceAndComments(),mr.forLastCrossRefSectionOffset(e)}async parseDocumentSection(){await this.parseIndirectObjects(),this.maybeParseCrossRefSection(),this.maybeParseTrailerDict(),this.maybeParseTrailer(),this.skipJibberish()}skipJibberish(){for(this.skipWhitespaceAndComments();!this.bytes.done();){let e=this.bytes.offset(),t=this.bytes.peek();if(t>=P.Space&&t<=P.Tilde&&(this.matchKeyword(Ae.xref)||this.matchKeyword(Ae.trailer)||this.matchKeyword(Ae.startxref)||this.matchIndirectObjectHeader())){this.bytes.moveTo(e);break}this.bytes.next()}}skipBinaryHeaderComment(){this.skipWhitespaceAndComments();try{let e=this.bytes.offset();this.parseIndirectObjectHeader(),this.bytes.moveTo(e)}catch(e){this.bytes.next(),this.skipWhitespaceAndComments()}}};sc.forBytesWithOptions=(n,e,t,i,r,o)=>new sc(n,e,t,i,r,o);var ac=sc;var ue=Ki(Fv(),1),op=class n{static create(e,t){return new n(e,t)}constructor(e,t){if(!t.ownerPassword&&!t.userPassword)throw new Error("Either an owner password or a user password must be specified.");this.context=e,this.initialize(t)}initialize(e){this.id=SP();let t;switch(this.context.header.getVersionString()){case"1.4":case"1.5":t=2;break;case"1.6":case"1.7":t=4;break;case"1.7ext3":t=5;break;default:t=1;break}switch(t){case 1:case 2:case 4:this.encryption=this.initializeV1V2V4(t,e);break;case 5:this.encryption=this.initializeV5(e);break}}initializeV1V2V4(e,t){let i={Filter:"Standard"},r,o;switch(e){case 1:r=2,this.keyBits=40,o=EP(t.permissions);break;case 2:r=3,this.keyBits=128,o=rp(t.permissions);break;case 4:r=4,this.keyBits=128,o=rp(t.permissions);break;default:throw new Error(`Unsupported algorithm '${e}'.`)}let s=Oh(t.userPassword),a=t.ownerPassword?Oh(t.ownerPassword):s,c=IP(r,this.keyBits,s,a);this.encryptionKey=BP(r,this.keyBits,this.id,s,c,o);let l;return r===2?l=TP(this.encryptionKey):l=AP(this.id,this.encryptionKey),i.V=e,e>=2&&(i.Length=this.keyBits),e===4&&(i.CF={StdCF:{AuthEvent:"DocOpen",CFM:"AESV2",Length:this.keyBits/8}},i.StmF="StdCF",i.StrF="StdCF"),i.R=r,i.O=nn(c),i.U=nn(l),i.P=o,i}initializeV5(e){let t={Filter:"Standard"};this.keyBits=256,this.encryptionKey=RP(cc);let i=Dv(e.userPassword),r=LP(i,cc),o=ue.default.lib.WordArray.create(r.words.slice(10,12),8),s=OP(i,o,this.encryptionKey),a=e.ownerPassword?Dv(e.ownerPassword):i,c=MP(a,r,cc),l=ue.default.lib.WordArray.create(c.words.slice(10,12),8),d=NP(a,l,r,this.encryptionKey),h=rp(e.permissions),u=VP(h,this.encryptionKey,cc);return t.V=5,t.Length=this.keyBits,t.CF={StdCF:{AuthEvent:"DocOpen",CFM:"AESV3",Length:this.keyBits/8}},t.StmF="StdCF",t.StrF="StdCF",t.R=5,t.O=nn(c),t.OE=nn(d),t.U=nn(r),t.UE=nn(s),t.P=h,t.Perms=nn(u),t}getEncryptFn(e,t){let i=this.encryption.V,r,o;if(i<5){if(r=this.encryptionKey.clone().concat(ue.default.lib.WordArray.create([(e&255)<<24|(e&65280)<<8|e>>8&65280|t&255,(t&65280)<<16],5)),i===1||i===2)return o=ue.default.MD5(r),o.sigBytes=Math.min(16,this.keyBits/8+5),c=>nn(ue.default.RC4.encrypt(ue.default.lib.WordArray.create(c),o).ciphertext);i===4&&(o=ue.default.MD5(r.concat(ue.default.lib.WordArray.create([1933667412],4))))}else if(i===5)o=this.encryptionKey;else throw new Error(`Unsupported algorithm '${i}'.`);let s=cc(16),a={mode:ue.default.mode.CBC,padding:ue.default.pad.Pkcs7,iv:s};return c=>nn(s.clone().concat(ue.default.AES.encrypt(ue.default.lib.WordArray.create(c),o,a).ciphertext))}encrypt(){let e=this.context.obj([this.id,this.id]);this.context.trailerInfo.ID=e;let t=this.context.obj(this.encryption);return this.context.trailerInfo.Encrypt=this.context.register(t),this}},SP=()=>nn(ue.default.MD5(Date.now().toString())),cc=n=>ue.default.lib.WordArray.random(n),EP=(n={})=>{let e=-64;return n.printing&&(e|=4),n.modifying&&(e|=8),n.copying&&(e|=16),n.annotating&&(e|=32),e},rp=(n={})=>{let e=-3904;return(n.printing==="lowResolution"||n.printing)&&(e|=4),n.printing==="highResolution"&&(e|=2052),n.modifying&&(e|=8),n.copying&&(e|=16),n.annotating&&(e|=32),n.fillingForms&&(e|=256),n.contentAccessibility&&(e|=512),n.documentAssembly&&(e|=1024),e},TP=n=>ue.default.RC4.encrypt(Oh(),n).ciphertext,AP=(n,e)=>{let t=e.clone(),i=ue.default.MD5(Oh().concat(ue.default.lib.WordArray.create(n)));for(let r=0;r<20;r++){let o=Math.ceil(t.sigBytes/4);for(let s=0;s<o;s++)t.words[s]=e.words[s]^(r|r<<8|r<<16|r<<24);i=ue.default.RC4.encrypt(i,t).ciphertext}return i.concat(ue.default.lib.WordArray.create(null,16))},IP=(n,e,t,i)=>{let r=i,o=n>=3?51:1;for(let c=0;c<o;c++)r=ue.default.MD5(r);let s=r.clone();s.sigBytes=e/8;let a=t;o=n>=3?20:1;for(let c=0;c<o;c++){let l=Math.ceil(s.sigBytes/4);for(let d=0;d<l;d++)s.words[d]=r.words[d]^(c|c<<8|c<<16|c<<24);a=ue.default.RC4.encrypt(a,s).ciphertext}return a},BP=(n,e,t,i,r,o)=>{let s=i.clone().concat(r).concat(ue.default.lib.WordArray.create([Pv(o)],4)).concat(ue.default.lib.WordArray.create(t)),a=n>=3?51:1;for(let c=0;c<a;c++)s=ue.default.MD5(s),s.sigBytes=e/8;return s},LP=(n,e)=>{let t=e(8),i=e(8);return ue.default.SHA256(n.clone().concat(t)).concat(t).concat(i)},OP=(n,e,t)=>{let i=ue.default.SHA256(n.clone().concat(e)),r={mode:ue.default.mode.CBC,padding:ue.default.pad.NoPadding,iv:ue.default.lib.WordArray.create(null,16)};return ue.default.AES.encrypt(t,i,r).ciphertext},MP=(n,e,t)=>{let i=t(8),r=t(8);return ue.default.SHA256(n.clone().concat(i).concat(e)).concat(i).concat(r)},NP=(n,e,t,i)=>{let r=ue.default.SHA256(n.clone().concat(e).concat(t)),o={mode:ue.default.mode.CBC,padding:ue.default.pad.NoPadding,iv:ue.default.lib.WordArray.create(null,16)};return ue.default.AES.encrypt(i,r,o).ciphertext},RP=n=>n(32),VP=(n,e,t)=>{let i=ue.default.lib.WordArray.create([Pv(n),4294967295,1415668834],12).concat(t(4)),r={mode:ue.default.mode.ECB,padding:ue.default.pad.NoPadding};return ue.default.AES.encrypt(i,e,r).ciphertext},Oh=(n="")=>{let e=new Uint8Array(32),t=n.length,i=0;for(;i<t&&i<32;){let r=n.charCodeAt(i);if(r>255)throw new Error("Password contains one or more invalid characters.");e[i]=r,i++}for(;i<32;)e[i]=HP[i-t],i++;return ue.default.lib.WordArray.create(e)},Dv=(n="")=>{let e=Math.min(127,n.length),t=new Uint8Array(e);for(let i=0;i<e;i++)t[i]=n.charCodeAt(i);return ue.default.lib.WordArray.create(t)},Pv=n=>(n&255)<<24|(n&65280)<<8|n>>8&65280|n>>24&255,nn=n=>{let e=[];for(let t=0;t<n.sigBytes;t++)e.push(n.words[Math.floor(t/4)]>>8*(3-t%4)&255);return Uint8Array.from(e)},HP=[40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122],Mh=op;var rn=n=>1<<n,No;(function(n){n[n.Invisible=rn(0)]="Invisible",n[n.Hidden=rn(1)]="Hidden",n[n.Print=rn(2)]="Print",n[n.NoZoom=rn(3)]="NoZoom",n[n.NoRotate=rn(4)]="NoRotate",n[n.NoView=rn(5)]="NoView",n[n.ReadOnly=rn(6)]="ReadOnly",n[n.Locked=rn(7)]="Locked",n[n.ToggleNoView=rn(8)]="ToggleNoView",n[n.LockedContents=rn(9)]="LockedContents"})(No||(No={}));var Ks=n=>n instanceof w?n:w.of(n),_=n=>n instanceof K?n:K.of(n),le=n=>n instanceof K?n.asNumber():n;var Gs;(function(n){n.Degrees="degrees",n.Radians="radians"})(Gs||(Gs={}));var zP=n=>(T(n,"radianAngle",["number"]),{type:Gs.Radians,angle:n}),$=n=>(T(n,"degreeAngle",["number"]),{type:Gs.Degrees,angle:n}),{Radians:kv,Degrees:Cv}=Gs,ci=n=>n*Math.PI/180,Sv=n=>n*180/Math.PI,ot=n=>n.type===kv?n.angle:n.type===Cv?ci(n.angle):ar(`Invalid rotation: ${JSON.stringify(n)}`),Nn=n=>n.type===kv?Sv(n.angle):n.type===Cv?n.angle:ar(`Invalid rotation: ${JSON.stringify(n)}`),di=(n=0)=>{let e=n/90%4;return e===0?0:e===1?90:e===2?180:e===3?270:0},on=(n,e=0)=>{let t=di(e);return t===90||t===270?{width:n.height,height:n.width}:{width:n.width,height:n.height}},sp=(n,e=0,t=0)=>{let{x:i,y:r,width:o,height:s}=n,a=di(t),c=e/2;return a===0?{x:i-c,y:r-c,width:o,height:s}:a===90?{x:i-s+c,y:r-c,width:s,height:o}:a===180?{x:i-o+c,y:r-s+c,width:o,height:s}:a===270?{x:i-c,y:r-o+c,width:s,height:o}:{x:i-c,y:r-c,width:o,height:s}};var dc=()=>ae.of(ce.ClipNonZero),UP=()=>ae.of(ce.ClipEvenOdd),{cos:Nh,sin:Rh,tan:Vh}=Math,Mi=(n,e,t,i,r,o)=>ae.of(ce.ConcatTransformationMatrix,[_(n),_(e),_(t),_(i),_(r),_(o)]),Tt=(n,e)=>Mi(1,0,0,1,n,e),Er=(n,e)=>Mi(n,0,0,e,0,0),Vo=n=>Mi(Nh(le(n)),Rh(le(n)),-Rh(le(n)),Nh(le(n)),0,0),Xs=n=>Vo(ci(le(n))),hc=(n,e)=>Mi(1,Vh(le(n)),Vh(le(e)),1,0,0),qP=(n,e)=>hc(ci(le(n)),ci(le(e))),Zs=(n,e)=>ae.of(ce.SetLineDashPattern,[`[${n.map(_).join(" ")}]`,_(e)]),WP=()=>Zs([],0),hi;(function(n){n[n.Butt=0]="Butt",n[n.Round=1]="Round",n[n.Projecting=2]="Projecting"})(hi||(hi={}));var uc=n=>ae.of(ce.SetLineCapStyle,[_(n)]),Ro;(function(n){n[n.Miter=0]="Miter",n[n.Round=1]="Round",n[n.Bevel=2]="Bevel"})(Ro||(Ro={}));var jP=n=>ae.of(ce.SetLineJoinStyle,[_(n)]),Rn=n=>ae.of(ce.SetGraphicsStateParams,[Ks(n)]),ze=()=>ae.of(ce.PushGraphicsState),Ue=()=>ae.of(ce.PopGraphicsState),Tr=n=>ae.of(ce.SetLineWidth,[_(n)]),Pt=(n,e,t,i,r,o)=>ae.of(ce.AppendBezierCurve,[_(n),_(e),_(t),_(i),_(r),_(o)]),Ys=(n,e,t,i)=>ae.of(ce.CurveToReplicateInitialPoint,[_(n),_(e),_(t),_(i)]),an=()=>ae.of(ce.ClosePath),Kt=(n,e)=>ae.of(ce.MoveTo,[_(n),_(e)]),Je=(n,e)=>ae.of(ce.LineTo,[_(n),_(e)]),Ev=(n,e,t,i)=>ae.of(ce.AppendRectangle,[_(n),_(e),_(t),_(i)]),KP=(n,e,t)=>Ev(n,e,t,t),Js=()=>ae.of(ce.StrokePath),sn;(function(n){n.NonZero="f",n.EvenOdd="f*"})(sn||(sn={}));var Hh=()=>ae.of(ce.FillNonZero),lp=()=>ae.of(ce.FillEvenOdd),zh=()=>ae.of(ce.FillNonZeroAndStroke),fc=()=>ae.of(ce.EndPath),cp=()=>ae.of(ce.NextLine),GP=(n,e)=>ae.of(ce.MoveText,[_(n),_(e)]),pc=n=>ae.of(ce.ShowText,[n]),gc=()=>ae.of(ce.BeginText),mc=()=>ae.of(ce.EndText),Ho=(n,e)=>ae.of(ce.SetFontAndSize,[Ks(n),_(e)]),XP=n=>ae.of(ce.SetCharacterSpacing,[_(n)]),ZP=n=>ae.of(ce.SetWordSpacing,[_(n)]),YP=n=>ae.of(ce.SetTextHorizontalScaling,[_(n)]),dp=n=>ae.of(ce.SetTextLineHeight,[_(n)]),JP=n=>ae.of(ce.SetTextRise,[_(n)]),ap;(function(n){n[n.Fill=0]="Fill",n[n.Outline=1]="Outline",n[n.FillAndOutline=2]="FillAndOutline",n[n.Invisible=3]="Invisible",n[n.FillAndClip=4]="FillAndClip",n[n.OutlineAndClip=5]="OutlineAndClip",n[n.FillAndOutlineAndClip=6]="FillAndOutlineAndClip",n[n.Clip=7]="Clip"})(ap||(ap={}));var Uh=n=>ae.of(ce.SetTextRenderingMode,[_(n)]),Tv=(n,e,t,i,r,o)=>ae.of(ce.SetTextMatrix,[_(n),_(e),_(t),_(i),_(r),_(o)]),_s=(n,e,t,i,r)=>Tv(Nh(le(n)),Rh(le(n))+Vh(le(e)),-Rh(le(n))+Vh(le(t)),Nh(le(n)),i,r),_P=(n,e,t,i,r)=>_s(ci(le(n)),ci(le(e)),ci(le(t)),i,r),Qs=n=>ae.of(ce.DrawObject,[Ks(n)]),hp=n=>ae.of(ce.NonStrokingColorGray,[_(n)]),up=n=>ae.of(ce.StrokingColorGray,[_(n)]),fp=(n,e,t)=>ae.of(ce.NonStrokingColorRgb,[_(n),_(e),_(t)]),pp=(n,e,t)=>ae.of(ce.StrokingColorRgb,[_(n),_(e),_(t)]),gp=(n,e,t,i)=>ae.of(ce.NonStrokingColorCmyk,[_(n),_(e),_(t),_(i)]),mp=(n,e,t,i)=>ae.of(ce.StrokingColorCmyk,[_(n),_(e),_(t),_(i)]),qh=n=>ae.of(ce.BeginMarkedContent,[Ks(n)]),Wh=()=>ae.of(ce.EndMarkedContent);var Yv=Ki(Zv(),1),zo;(function(n){n.Grayscale="Grayscale",n.RGB="RGB",n.CMYK="CMYK"})(zo||(zo={}));var Zh=n=>(xt(n,"gray",0,1),{type:zo.Grayscale,gray:n}),fe=(n,e,t)=>(xt(n,"red",0,1),xt(e,"green",0,1),xt(t,"blue",0,1),{type:zo.RGB,red:n,green:e,blue:t}),Yh=(n,e,t,i)=>(xt(n,"cyan",0,1),xt(e,"magenta",0,1),xt(t,"yellow",0,1),xt(i,"key",0,1),{type:zo.CMYK,cyan:n,magenta:e,yellow:t,key:i}),Fp=n=>{T(n,"color",["string"]);let e=(0,Yv.default)(n).unitObject();return{rgb:fe(e.r,e.g,e.b),alpha:e.alpha}},{Grayscale:Dp,RGB:Pp,CMYK:kp}=zo,Ni=n=>n.type===Dp?hp(n.gray):n.type===Pp?fp(n.red,n.green,n.blue):n.type===kp?gp(n.cyan,n.magenta,n.yellow,n.key):ar(`Invalid color: ${JSON.stringify(n)}`),Ir=n=>n.type===Dp?up(n.gray):n.type===Pp?pp(n.red,n.green,n.blue):n.type===kp?mp(n.cyan,n.magenta,n.yellow,n.key):ar(`Invalid color: ${JSON.stringify(n)}`),yt=(n,e=1)=>(n==null?void 0:n.length)===1?Zh(n[0]*e):(n==null?void 0:n.length)===3?fe(n[0]*e,n[1]*e,n[2]*e):(n==null?void 0:n.length)===4?Yh(n[0]*e,n[1]*e,n[2]*e,n[3]*e):void 0,Jh=n=>n.type===Dp?[n.gray]:n.type===Pp?[n.red,n.green,n.blue]:n.type===kp?[n.cyan,n.magenta,n.yellow,n.key]:ar(`Invalid color: ${JSON.stringify(n)}`);var te=0,ie=0,we=0,Fe=0,vc=0,wc=0,Jv=new Map([["A",7],["a",7],["C",6],["c",6],["H",1],["h",1],["L",2],["l",2],["M",2],["m",2],["Q",4],["q",4],["S",4],["s",4],["T",2],["t",2],["V",1],["v",1],["Z",0],["z",0]]),fk=n=>{let e,t=[],i=[],r="",o=!1,s=0;for(let a of n)if(Jv.has(a))s=Jv.get(a),e&&(r.length>0&&(i[i.length]=+r),t[t.length]={cmd:e,args:i},i=[],r="",o=!1),e=a;else if([" ",","].includes(a)||a==="-"&&r.length>0&&r[r.length-1]!=="e"||a==="."&&o){if(r.length===0)continue;i.length===s?(t[t.length]={cmd:e,args:i},i=[+r],e==="M"&&(e="L"),e==="m"&&(e="l")):i[i.length]=+r,o=a===".",r=["-","."].includes(a)?a:""}else r+=a,a==="."&&(o=!0);return r.length>0&&(i.length===s?(t[t.length]={cmd:e,args:i},i=[+r],e==="M"&&(e="L"),e==="m"&&(e="l")):i[i.length]=+r),t[t.length]={cmd:e,args:i},t},pk=n=>{te=ie=we=Fe=vc=wc=0;let e=[];for(let t=0;t<n.length;t++){let i=n[t];if(i.cmd&&typeof _v[i.cmd]=="function"){let r=_v[i.cmd](i.args);Array.isArray(r)?e=e.concat(r):e.push(r)}}return e},_v={M(n){return te=n[0],ie=n[1],we=Fe=null,vc=te,wc=ie,Kt(te,ie)},m(n){return te+=n[0],ie+=n[1],we=Fe=null,vc=te,wc=ie,Kt(te,ie)},C(n){return te=n[4],ie=n[5],we=n[2],Fe=n[3],Pt(n[0],n[1],n[2],n[3],n[4],n[5])},c(n){let e=Pt(n[0]+te,n[1]+ie,n[2]+te,n[3]+ie,n[4]+te,n[5]+ie);return we=te+n[2],Fe=ie+n[3],te+=n[4],ie+=n[5],e},S(n){(we===null||Fe===null)&&(we=te,Fe=ie);let e=Pt(te-(we-te),ie-(Fe-ie),n[0],n[1],n[2],n[3]);return we=n[0],Fe=n[1],te=n[2],ie=n[3],e},s(n){(we===null||Fe===null)&&(we=te,Fe=ie);let e=Pt(te-(we-te),ie-(Fe-ie),te+n[0],ie+n[1],te+n[2],ie+n[3]);return we=te+n[0],Fe=ie+n[1],te+=n[2],ie+=n[3],e},Q(n){return we=n[0],Fe=n[1],te=n[2],ie=n[3],Ys(n[0],n[1],te,ie)},q(n){let e=Ys(n[0]+te,n[1]+ie,n[2]+te,n[3]+ie);return we=te+n[0],Fe=ie+n[1],te+=n[2],ie+=n[3],e},T(n){we===null||Fe===null?(we=te,Fe=ie):(we=te-(we-te),Fe=ie-(Fe-ie));let e=Ys(we,Fe,n[0],n[1]);return te=n[0],ie=n[1],e},t(n){we===null||Fe===null?(we=te,Fe=ie):(we=te-(we-te),Fe=ie-(Fe-ie));let e=Ys(we,Fe,te+n[0],ie+n[1]);return te+=n[0],ie+=n[1],e},A(n){let e=Qv(te,ie,n);return te=n[5],ie=n[6],e},a(n){n[5]+=te,n[6]+=ie;let e=Qv(te,ie,n);return te=n[5],ie=n[6],e},L(n){return te=n[0],ie=n[1],we=Fe=null,Je(te,ie)},l(n){return te+=n[0],ie+=n[1],we=Fe=null,Je(te,ie)},H(n){return te=n[0],we=Fe=null,Je(te,ie)},h(n){return te+=n[0],we=Fe=null,Je(te,ie)},V(n){return ie=n[0],we=Fe=null,Je(te,ie)},v(n){return ie+=n[0],we=Fe=null,Je(te,ie)},Z(){let n=an();return te=vc,ie=wc,n},z(){let n=an();return te=vc,ie=wc,n}},Qv=(n,e,t)=>{let[i,r,o,s,a,c,l]=t,d=gk(c,l,i,r,s,a,o,n,e),h=[];for(let u of d){let p=mk(...u);h.push(Pt(...p))}return h},gk=(n,e,t,i,r,o,s,a,c)=>{let l=s*(Math.PI/180),d=Math.sin(l),h=Math.cos(l);t=Math.abs(t),i=Math.abs(i),we=h*(a-n)*.5+d*(c-e)*.5,Fe=h*(c-e)*.5-d*(a-n)*.5;let u=we*we/(t*t)+Fe*Fe/(i*i);u>1&&(u=Math.sqrt(u),t*=u,i*=u);let p=h/t,f=d/t,m=-d/i,x=h/i,g=p*a+f*c,b=m*a+x*c,v=p*n+f*e,y=m*n+x*e,D=1/((v-g)*(v-g)+(y-b)*(y-b))-.25;D<0&&(D=0);let C=Math.sqrt(D);o===r&&(C=-C);let k=.5*(g+v)-C*(y-b),E=.5*(b+y)+C*(v-g),B=Math.atan2(b-E,g-k),A=Math.atan2(y-E,v-k)-B;A<0&&o===1?A+=2*Math.PI:A>0&&o===0&&(A-=2*Math.PI);let L=Math.ceil(Math.abs(A/(Math.PI*.5+.001))),I=[];for(let N=0;N<L;N++){let q=B+N*A/L,U=B+(N+1)*A/L;I[N]=[k,E,q,U,t,i,d,h]}return I},mk=(n,e,t,i,r,o,s,a)=>{let c=a*r,l=-s*o,d=s*r,h=a*o,u=.5*(i-t),p=8/3*Math.sin(u*.5)*Math.sin(u*.5)/Math.sin(u),f=n+Math.cos(t)-p*Math.sin(t),m=e+Math.sin(t)+p*Math.cos(t),x=n+Math.cos(i),g=e+Math.sin(i),b=x+p*Math.sin(i),v=g-p*Math.cos(i);return[c*f+l*m,d*f+h*m,c*b+l*v,d*b+h*v,c*x+l*g,d*x+h*g]},$v=n=>pk(fk(n));var sa=Ki(Bp(),1);var ui=class{constructor(e,t={}){this.svg=e,this.images=t}};var Ne;(function(n){n.Normal="Normal",n.Multiply="Multiply",n.Screen="Screen",n.Overlay="Overlay",n.Darken="Darken",n.Lighten="Lighten",n.ColorDodge="ColorDodge",n.ColorBurn="ColorBurn",n.HardLight="HardLight",n.SoftLight="SoftLight",n.Difference="Difference",n.Exclusion="Exclusion"})(Ne||(Ne={}));var eu=[1,0,0,1,0,0];var Vi=([n,e,t,i,r,o],[s,a,c,l,d,h])=>[n*s+t*a,e*s+i*a,n*c+t*l,e*c+i*l,n*d+t*h+r,e*d+i*h+o],tu=([n,e,t,i,r,o],{x:s,y:a})=>({x:n*s+t*a+r,y:e*s+i*a+o}),ln=(n,e)=>{switch(n){case"scale":case"scaleX":case"scaleY":{let[t,i=t]=e;return[n==="scaleY"?1:t,0,0,n==="scaleX"?1:i,0,0]}case"translate":case"translateX":case"translateY":{let[t,i=t]=e;return[1,0,0,1,n==="translateY"?0:t,n==="translateX"?0:-i]}case"rotate":{let[t,i=0,r=0]=e,o=ln("translate",[i,r]),s=ln("translate",[-i,-r]),a=ci(-t),c=[Math.cos(a),Math.sin(a),-Math.sin(a),Math.cos(a),0,0];return Vi(Vi(o,c),s)}case"skewY":case"skewX":{let t=ci(-e[0]),i=Math.tan(t);return[1,n==="skewY"?i:0,n==="skewX"?i:0,1,0,0]}case"matrix":{let[t,i,r,o,s,a]=e,c=ln("scale",[1,-1]);return Vi(Vi(c,[t,i,r,o,s,a]),c)}default:return eu}},Hn=(n,e,t)=>Vi(n,ln(e,t)),Ok={butt:hi.Butt,round:hi.Round,square:hi.Projecting},Mk={evenodd:sn.EvenOdd,nonzero:sn.NonZero},Nk={bevel:Ro.Bevel,miter:Ro.Miter,round:Ro.Round},hw=(n,e)=>({text(t){let i=t.svgAttributes.textAnchor,r=t.svgAttributes.dominantBaseline,o=t.text.trim().replace(/\s/g," "),s=t.svgAttributes.fontSize||12,a=(f,m)=>{let x=f.fontFamily;if(!x)return;let g=f.fontWeight==="bold"||Number(f.fontWeight)>=700,b=f.fontStyle==="italic",v=(F,D,C)=>m[C+(F?"_bold":"")+(D?"_italic":"")],y=Object.keys(m).find(F=>F.startsWith(x));return v(g,b,x)||v(g,!1,x)||v(!1,b,x)||v(!1,!1,x)||(y?m[y]:void 0)},c=e.fonts&&a(t.svgAttributes,e.fonts),l=(c||n.getFont()[0]).widthOfTextAtSize(o,s),d=(c||n.getFont()[0]).heightAtSize(s),h=(c||n.getFont()[0]).heightAtSize(s,{descender:!1}),u=i==="middle"?l/2:i==="end"?l:0,p=0;switch(r){case"middle":case"central":p=h-d/2;break;case"mathematical":p=s*.6;break;case"hanging":p=h;break;case"text-before-edge":p=s;break;case"ideographic":case"text-after-edge":p=h-d;break;case"text-top":case"text-bottom":case"auto":case"use-script":case"no-change":case"reset-size":case"alphabetic":default:p=0;break}n.drawText(o,{x:-u,y:-p,font:c,size:s,color:t.svgAttributes.fill,opacity:t.svgAttributes.fillOpacity,matrix:t.svgAttributes.matrix,clipSpaces:t.svgAttributes.clipSpaces,blendMode:t.svgAttributes.blendMode||e.blendMode})},line(t){n.drawLine({start:{x:t.svgAttributes.x1||0,y:-t.svgAttributes.y1||0},end:{x:t.svgAttributes.x2||0,y:-t.svgAttributes.y2||0},thickness:t.svgAttributes.strokeWidth,color:t.svgAttributes.stroke,opacity:t.svgAttributes.strokeOpacity,lineCap:t.svgAttributes.strokeLineCap,matrix:t.svgAttributes.matrix,clipSpaces:t.svgAttributes.clipSpaces,blendMode:t.svgAttributes.blendMode||e.blendMode})},path(t){t.svgAttributes.d&&n.drawSvgPath(t.svgAttributes.d,{x:0,y:0,borderColor:t.svgAttributes.stroke,borderWidth:t.svgAttributes.strokeWidth,borderOpacity:t.svgAttributes.strokeOpacity,borderLineCap:t.svgAttributes.strokeLineCap,color:t.svgAttributes.fill,opacity:t.svgAttributes.fillOpacity,fillRule:t.svgAttributes.fillRule,matrix:Hn(t.svgAttributes.matrix,"scale",[1,-1]),clipSpaces:t.svgAttributes.clipSpaces,blendMode:t.svgAttributes.blendMode||e.blendMode})},image(t){var i,r;let{src:o}=t.svgAttributes;if(!(o&&(!((i=e.images)===null||i===void 0)&&i[o])))return;let s=(r=e.images)===null||r===void 0?void 0:r[o],{x:a,y:c,width:l,height:d}=Rk(s.width,s.height,t.svgAttributes.width||s.width,t.svgAttributes.height||s.height,t.svgAttributes.preserveAspectRatio);n.drawImage(s,{x:a,y:-c-d,width:l,height:d,opacity:t.svgAttributes.fillOpacity,matrix:t.svgAttributes.matrix,clipSpaces:t.svgAttributes.clipSpaces,blendMode:t.svgAttributes.blendMode||e.blendMode})},rect(t){!t.svgAttributes.fill&&!t.svgAttributes.stroke||n.drawRectangle({x:0,y:0,width:t.svgAttributes.width,height:t.svgAttributes.height,rx:t.svgAttributes.rx,ry:t.svgAttributes.ry,borderColor:t.svgAttributes.stroke,borderWidth:t.svgAttributes.strokeWidth,borderOpacity:t.svgAttributes.strokeOpacity,borderLineCap:t.svgAttributes.strokeLineCap,color:t.svgAttributes.fill,opacity:t.svgAttributes.fillOpacity,matrix:Hn(t.svgAttributes.matrix,"translateY",[t.svgAttributes.height]),clipSpaces:t.svgAttributes.clipSpaces,blendMode:t.svgAttributes.blendMode||e.blendMode})},ellipse(t){n.drawEllipse({x:t.svgAttributes.cx||0,y:-(t.svgAttributes.cy||0),xScale:t.svgAttributes.rx,yScale:t.svgAttributes.ry,borderColor:t.svgAttributes.stroke,borderWidth:t.svgAttributes.strokeWidth,borderOpacity:t.svgAttributes.strokeOpacity,borderLineCap:t.svgAttributes.strokeLineCap,color:t.svgAttributes.fill,opacity:t.svgAttributes.fillOpacity,matrix:t.svgAttributes.matrix,clipSpaces:t.svgAttributes.clipSpaces,blendMode:t.svgAttributes.blendMode||e.blendMode})},circle(t){return hw(n,e).ellipse(t)}}),pt=(n,e,t,i)=>{let r=e[t]||n[t];return!r&&typeof i!="undefined"?i:r},uw=n=>{let e=/([^:\s]+)*\s*:\s*([^;]+)/g,t={},i=e.exec(n);for(;i!=null;)t[i[1]]=i[2],i=e.exec(n);return t},Lp=(n,e)=>{if(!n||n.length===0||["none","transparent"].includes(n))return;if(n==="currentColor")return e||Lp("#000000");let t=Fp(n);return{rgb:t.rgb,alpha:t.alpha?t.alpha+"":void 0}},Op=(n,e,t)=>{var i,r,o,s;let a=n.attributes,c=uw(a.style),l=pt(a,c,"width",""),d=pt(a,c,"height",""),h=Lp(pt(a,c,"fill")),u=pt(a,c,"fill-opacity"),p=pt(a,c,"opacity"),f=Lp(pt(a,c,"stroke")),m=pt(a,c,"stroke-opacity"),x=pt(a,c,"stroke-linecap"),g=pt(a,c,"stroke-linejoin"),b=pt(a,c,"fill-rule"),v=pt(a,c,"stroke-width"),y=pt(a,c,"font-family"),F=pt(a,c,"font-style"),D=pt(a,c,"font-weight"),C=pt(a,c,"font-size"),k=pt(a,c,"mix-blend-mode"),E=vt(l,e.width),B=vt(d,e.height),S=vt(a.x,e.width),A=vt(a.y,e.height),L=vt(a.x1,e.width),I=vt(a.x2,e.width),N=vt(a.y1,e.height),q=vt(a.y2,e.height),U=vt(a.cx,e.width),Z=vt(a.cy,e.height),O=vt(a.rx||a.r,e.width),z=vt(a.ry||a.r,e.height),R={fontFamily:y||e.fontFamily,fontStyle:F||e.fontStyle,fontWeight:D||e.fontWeight,fontSize:(i=vt(C))!==null&&i!==void 0?i:e.fontSize,fill:(h==null?void 0:h.rgb)||e.fill,fillOpacity:(r=vt(u||p||(h==null?void 0:h.alpha)))!==null&&r!==void 0?r:e.fillOpacity,fillRule:Mk[b]||e.fillRule,stroke:(f==null?void 0:f.rgb)||e.stroke,strokeWidth:(o=vt(v))!==null&&o!==void 0?o:e.strokeWidth,strokeOpacity:(s=vt(m||p||(f==null?void 0:f.alpha)))!==null&&s!==void 0?s:e.strokeOpacity,strokeLineCap:Ok[x]||e.strokeLineCap,strokeLineJoin:Nk[g]||e.strokeLineJoin,width:E||e.width,height:B||e.height,rotation:e.rotation,viewBox:n.tagName==="svg"&&n.attributes.viewBox?iu(n.attributes.viewBox):e.viewBox,blendMode:Uk(k)||e.blendMode},M={src:a.src||a.href||a["xlink:href"],textAnchor:a["text-anchor"],dominantBaseline:a["dominant-baseline"],preserveAspectRatio:a.preserveAspectRatio},ne=a.transform||"";["translate","translateX","translateY","skewX","skewY","rotate","scale","scaleX","scaleY","matrix"].forEach(Se=>{a[Se]&&(ne=a[Se]+" "+ne)}),(S||A)&&(ne=ne+`translate(${S||0} ${A||0}) `);let oe=t;if(ne){let Se=/(\w+)\((.+?)\)/g,de=Se.exec(ne);for(;de!==null;){let[,dt,Ut]=de,ji=(Ut||"").split(/\s*,\s*|\s+/).filter(Lt=>Lt.length>0).map(Lt=>parseFloat(Lt));oe=Hn(oe,dt,ji),de=Se.exec(ne)}}if(M.x=S,M.y=A,(a.cx||a.cy)&&(M.cx=U,M.cy=Z),(a.rx||a.ry||a.r)&&(M.rx=O,M.ry=z),(a.x1||a.y1)&&(M.x1=L,M.y1=N),(a.x2||a.y2)&&(M.x2=I,M.y2=q),(a.width||a.height)&&(M.width=E!=null?E:e.width,M.height=B!=null?B:e.height),a.d&&(oe=Hn(oe,"scale",[1,-1]),M.d=a.d),C&&R.fontSize&&(R.fontSize=R.fontSize),R.fontFamily){let Se=R.fontFamily.match(/^"(.*?)"|^'(.*?)'/);Se&&(R.fontFamily=Se[1]||Se[2])}return R.strokeWidth&&(M.strokeWidth=R.strokeWidth),{inherited:R,svgAttributes:M,tagName:n.tagName,matrix:oe}},Rk=(n,e,t,i,r)=>{if(r==="none")return{x:0,y:0,width:t,height:i};let o=n/e,s=t/i,a=s>o?o*i:t,c=s>=o?i:t/o,l=t-a,d=i-c,[h,u]=(()=>{switch(r){case"xMinYMin":return[0,0];case"xMidYMin":return[l/2,0];case"xMaxYMin":return[l,d/2];case"xMinYMid":return[0,d];case"xMaxYMid":return[l,d/2];case"xMinYMax":return[0,d];case"xMidYMax":return[l/2,d];case"xMaxYMax":return[l,d];case"xMidYMid":default:return[l/2,d/2]}})();return{x:h,y:u,width:a,height:c}},Vk=(n,e,t,i,r,o="xMidYMid")=>{let[s,a="meet"]=o.split(" "),c=i/e,l=r/t,d=Hn(n,"scale",[c,l]);if(s==="none")return{clipBox:d,content:d};let h=a==="slice"?Math.max(c,l):Math.min(c,l),u=i-e*h,p=r-t*h,[f,m]=(()=>{switch(s){case"xMinYMin":return[0,0];case"xMidYMin":return[u/2,0];case"xMaxYMin":return[u,p/2];case"xMinYMid":return[0,p];case"xMaxYMid":return[u,p/2];case"xMinYMax":return[0,p];case"xMidYMax":return[u/2,p];case"xMaxYMax":return[u,p];case"xMidYMid":default:return[u/2,p/2]}})(),x=Hn(Hn(n,"translate",[f,m]),"scale",[h]);return{clipBox:d,content:x}},Mp=(n,e,t,i)=>{if(n.nodeType===sa.NodeType.COMMENT_NODE)return[];if(n.nodeType===sa.NodeType.TEXT_NODE)return[];if(n.tagName==="g")return zk(n,e,t,i);if(n.tagName==="svg")return Hk(n,e,t,i);{n.tagName==="polygon"&&(n.tagName="path",n.attributes.d=`M${n.attributes.points}Z`,delete n.attributes.points);let r=Op(n,e,t),o={...r.inherited,...r.svgAttributes,matrix:r.matrix,clipSpaces:i};return Object.assign(n,{svgAttributes:o}),[n]}},Hk=(n,e,t,i)=>{var r,o;(r=n.attributes.width)!==null&&r!==void 0||n.setAttribute("width",e.viewBox.width+""),(o=n.attributes.height)!==null&&o!==void 0||n.setAttribute("height",e.viewBox.height+"");let s=Op(n,e,t),a=[],c=n.attributes.viewBox?iu(n.attributes.viewBox):n.attributes.width&&n.attributes.height?iu(`0 0 ${n.attributes.width} ${n.attributes.height}`):e.viewBox,l=parseFloat(n.attributes.x)||0,d=parseFloat(n.attributes.y)||0,h=Hn(t,"translate",[l,d]),{clipBox:u,content:p}=Vk(h,c.width,c.height,parseFloat(n.attributes.width),parseFloat(n.attributes.height),n.attributes.preserveAspectRatio),f=tu(u,{x:0,y:0}),m=tu(u,{x:c.width,y:0}),x=tu(u,{x:c.width,y:-c.height}),g=tu(u,{x:0,y:-c.height}),b={topLeft:f,topRight:m,bottomRight:x,bottomLeft:g};return h=Hn(p,"translate",[-c.x,-c.y]),n.childNodes.forEach(v=>{let y=Mp(v,{...s.inherited,viewBox:c},h,[...i,b]);a.push(...y)}),a},zk=(n,e,t,i)=>{let r=Op(n,e,t),o=[];return n.childNodes.forEach(s=>{o.push(...Mp(s,r.inherited,r.matrix,i))}),o},vt=(n,e=1)=>{if(!n)return;let t=parseFloat(n);if(!isNaN(t))return n.endsWith("%")?t*e/100:t},Uk=n=>{switch(n){case"normal":return Ne.Normal;case"multiply":return Ne.Multiply;case"screen":return Ne.Screen;case"overlay":return Ne.Overlay;case"darken":return Ne.Darken;case"lighten":return Ne.Lighten;case"color-dodge":return Ne.ColorDodge;case"color-burn":return Ne.ColorBurn;case"hard-light":return Ne.HardLight;case"soft-light":return Ne.SoftLight;case"difference":return Ne.Difference;case"exclusion":return Ne.Exclusion;default:return}},iu=n=>{if(!n)return;let[e=0,t=0,i=1,r=1]=(n||"").split(" ").map(o=>vt(o));return{x:e,y:t,width:i,height:r}},qk=(n,{width:e,height:t,fontSize:i},r,o)=>{let s=(0,sa.parse)(n).firstChild;return e&&s.setAttribute("width",e+""),t&&s.setAttribute("height",t+""),i&&s.setAttribute("font-size",i+""),Mp(s,{...r,viewBox:iu(s.attributes.viewBox||"0 0 1 1")},o,[])},fw=(n,e,t)=>{let i=typeof e=="string"?new ui(e):e;if(!i.svg)return;let r=n.getSize(),o=(0,sa.parse)(i.svg).querySelector("svg");if(!o)return console.error("This is not an svg. Ignoring: "+i.svg);let s=o.attributes,a=uw(s.style),c=pt(s,a,"width",""),l=pt(s,a,"height",""),d=t.width!==void 0?t.width:parseFloat(c),h=t.height!==void 0?t.height:parseFloat(l);s.viewBox||o.setAttribute("viewBox",`0 0 ${c||d} ${l||h}`),(t.width||t.height)&&(d!==void 0&&(a.width=d+(isNaN(d)?"":"px")),h!==void 0&&(a.height=h+(isNaN(h)?"":"px")),o.setAttribute("style",Object.entries(a).map(([m,x])=>`${m}:${x};`).join("")));let u=[1,0,0,1,t.x||0,t.y||0],p=qk(o.outerHTML,t,r,u),f=hw(n,{...t,images:i.images});p.forEach(m=>{var x;(x=f[m.tagName])===null||x===void 0||x.call(f,m)})};var Wk=({topLeft:n,topRight:e,bottomRight:t,bottomLeft:i})=>[Kt(n.x,n.y),Je(e.x,e.y),Je(t.x,t.y),Je(i.x,i.y),an(),dc(),fc()],Pc=n=>n.flatMap(Wk),jk=(n,e)=>[ze(),e.graphicsState&&Rn(e.graphicsState),gc(),Ni(e.color),Ho(e.font,e.size),e.strokeWidth&&Tr(e.strokeWidth),e.strokeColor&&Ir(e.strokeColor),e.renderMode&&Uh(e.renderMode),_s(ot(e.rotate),ot(e.xSkew),ot(e.ySkew),e.x,e.y),pc(n),mc(),Ue()].filter(Boolean),Np=(n,e)=>{let t=[ze(),e.graphicsState&&Rn(e.graphicsState),...e.clipSpaces?Pc(e.clipSpaces):[],e.matrix&&Mi(...e.matrix),gc(),Ni(e.color),Ho(e.font,e.size),dp(e.lineHeight),e.strokeWidth&&Tr(e.strokeWidth),e.strokeColor&&Ir(e.strokeColor),e.renderMode&&Uh(e.renderMode),_s(ot(e.rotate),ot(e.xSkew),ot(e.ySkew),e.x,e.y)].filter(Boolean);for(let i=0,r=n.length;i<r;i++)t.push(pc(n[i]),cp());return t.push(mc(),Ue()),t},kc=(n,e)=>[ze(),e.graphicsState&&Rn(e.graphicsState),...e.clipSpaces?Pc(e.clipSpaces):[],e.matrix&&Mi(...e.matrix),Tt(e.x,e.y),Vo(ot(e.rotate)),Er(e.width,e.height),hc(ot(e.xSkew),ot(e.ySkew)),Qs(n),Ue()].filter(Boolean),Rp=(n,e)=>[ze(),e.graphicsState&&Rn(e.graphicsState),Tt(e.x,e.y),Vo(ot(e.rotate)),Er(e.xScale,e.yScale),hc(ot(e.xSkew),ot(e.ySkew)),Qs(n),Ue()].filter(Boolean),Vp=n=>{var e,t;return[ze(),n.graphicsState&&Rn(n.graphicsState),...n.clipSpaces?Pc(n.clipSpaces):[],n.matrix&&Mi(...n.matrix),n.color&&Ir(n.color),Tr(n.thickness),Zs((e=n.dashArray)!==null&&e!==void 0?e:[],(t=n.dashPhase)!==null&&t!==void 0?t:0),Kt(n.start.x,n.start.y),n.lineCap&&uc(n.lineCap),Kt(n.start.x,n.start.y),Je(n.end.x,n.end.y),Js(),Ue()].filter(Boolean)},fi=4*((Math.sqrt(2)-1)/3),Br=n=>{let{width:e,height:t,xSkew:i,ySkew:r,rotate:o,matrix:s}=n,a=typeof e=="number"?e:e.asNumber(),c=typeof t=="number"?t:t.asNumber(),l=typeof n.x=="number"?n.x:n.x.asNumber(),d=typeof n.y=="number"?n.y:n.y.asNumber(),h=Math.max(0,Math.min(n.rx||0,a/2)),u=Math.max(0,Math.min(n.ry||0,c/2)),p=h>0||u>0?[`M ${h},0`,`H ${a-h}`,`C ${a-h*(1-fi)},0 ${a},${u*(1-fi)} ${a},${u}`,`V ${c-u}`,`C ${a},${c-u*(1-fi)} ${a-h*(1-fi)},${c} ${a-h},${c}`,`H ${h}`,`C ${h*(1-fi)},${c} 0,${c-u*(1-fi)} 0,${c-u}`,`V ${u}`,`C 0,${u*(1-fi)} ${h*(1-fi)},0 ${h},0`,"Z"].join(" "):`M 0,0 H ${a} V ${c} H 0 Z`,f=Vi(s||eu,ln("translate",[l,-d]));return o&&(f=Vi(f,ln("rotate",[-Nn(o)]))),i&&(f=Vi(f,ln("skewX",[Nn(i)]))),r&&(f=Vi(f,ln("skewY",[-Nn(r)]))),f=Vi(f,ln("translateY",[-c])),nu(p,{...n,x:0,y:0,rotate:$(0),scale:1,matrix:f})},pw=n=>{let e=le(n.x),t=le(n.y),i=le(n.xScale),r=le(n.yScale);e-=i,t-=r;let o=i*fi,s=r*fi,a=e+i*2,c=t+r*2,l=e+i,d=t+r;return[ze(),Kt(e,d),Pt(e,d-s,l-o,t,l,t),Pt(l+o,t,a,d-s,a,d),Pt(a,d+s,l+o,c,l,c),Pt(l-o,c,e,d+s,e,d),Ue()]},Kk=n=>{let e=le(n.x),t=le(n.y),i=le(n.xScale),r=le(n.yScale),o=-i,s=-r,a=i*fi,c=r*fi,l=o+i*2,d=s+r*2,h=o+i,u=s+r;return[Tt(e,t),Vo(ot(n.rotate)),Kt(o,u),Pt(o,u-c,h-a,s,h,s),Pt(h+a,s,l,u-c,l,u),Pt(l,u+c,h+a,d,h,d),Pt(h-a,d,o,u+c,o,u)]},Dc=n=>{var e,t,i;return[ze(),n.graphicsState&&Rn(n.graphicsState),n.color&&Ni(n.color),n.borderColor&&Ir(n.borderColor),...n.clipSpaces?Pc(n.clipSpaces):[],n.matrix&&Mi(...n.matrix),Tr(n.borderWidth),n.borderLineCap&&uc(n.borderLineCap),Zs((e=n.borderDashArray)!==null&&e!==void 0?e:[],(t=n.borderDashPhase)!==null&&t!==void 0?t:0),...n.rotate===void 0?pw({x:n.x,y:n.y,xScale:n.xScale,yScale:n.yScale}):Kk({x:n.x,y:n.y,xScale:n.xScale,yScale:n.yScale,rotate:(i=n.rotate)!==null&&i!==void 0?i:$(0)}),n.color&&n.borderWidth?zh():n.color?Hh():n.borderColor?Js():an(),Ue()].filter(Boolean)},nu=(n,e)=>{var t,i,r;return[ze(),e.graphicsState&&Rn(e.graphicsState),...e.clipSpaces?Pc(e.clipSpaces):[],e.matrix&&Mi(...e.matrix),Tt(e.x,e.y),Vo(ot((t=e.rotate)!==null&&t!==void 0?t:$(0))),e.scale?Er(e.scale,-e.scale):Er(1,-1),e.color&&Ni(e.color),e.borderColor&&Ir(e.borderColor),e.borderWidth&&Tr(e.borderWidth),e.borderLineCap&&uc(e.borderLineCap),Zs((i=e.borderDashArray)!==null&&i!==void 0?i:[],(r=e.borderDashPhase)!==null&&r!==void 0?r:0),...$v(n),e.color&&e.borderWidth?zh():e.color?e.fillRule===sn.EvenOdd?lp():Hh():e.borderColor?Js():an(),Ue()].filter(Boolean)},gw=n=>{let e=le(n.size),t=-1+.75,i=-1+.51,r=1-.525,o=1-.31,s=-1+.325,a=-((s-t)*(o-t))/(r-i)+i;return[ze(),n.color&&Ir(n.color),Tr(n.thickness),Tt(n.x,n.y),Kt(s*e,a*e),Je(t*e,i*e),Je(o*e,r*e),Js(),Ue()].filter(Boolean)},pi=n=>n.rotation===0?[Tt(0,0),Xs(0)]:n.rotation===90?[Tt(n.width,0),Xs(90)]:n.rotation===180?[Tt(n.width,n.height),Xs(180)]:n.rotation===270?[Tt(0,n.height),Xs(270)]:[],aa=n=>{let e=Br({x:n.x,y:n.y,width:n.width,height:n.height,borderWidth:n.borderWidth,color:n.color,borderColor:n.borderColor,rotate:$(0),xSkew:$(0),ySkew:$(0)});if(!n.filled)return e;let t=le(n.width),i=le(n.height),r=Math.min(t,i)/2,o=gw({x:t/2,y:i/2,size:r,thickness:n.thickness,color:n.markColor});return[ze(),...e,...o,Ue()]},la=n=>{let e=le(n.width),t=le(n.height),i=Math.min(e,t)/2,r=Dc({x:n.x,y:n.y,xScale:i,yScale:i,color:n.color,borderColor:n.borderColor,borderWidth:n.borderWidth});if(!n.filled)return r;let o=Dc({x:n.x,y:n.y,xScale:i*.45,yScale:i*.45,color:n.dotColor,borderColor:void 0,borderWidth:0});return[ze(),...r,...o,Ue()]},ru=n=>{let e=le(n.x),t=le(n.y),i=le(n.width),r=le(n.height),o=Br({x:e,y:t,width:i,height:r,borderWidth:n.borderWidth,color:n.color,borderColor:n.borderColor,rotate:$(0),xSkew:$(0),ySkew:$(0)}),s=ou(n.textLines,{color:n.textColor,font:n.font,size:n.fontSize,rotate:$(0),xSkew:$(0),ySkew:$(0)});return[ze(),...o,...s,Ue()]},ou=(n,e)=>{let t=[gc(),Ni(e.color),Ho(e.font,e.size)];for(let i=0,r=n.length;i<r;i++){let{encoded:o,x:s,y:a}=n[i];t.push(_s(ot(e.rotate),ot(e.xSkew),ot(e.ySkew),s,a),pc(o))}return t.push(mc()),t},su=n=>{let e=le(n.x),t=le(n.y),i=le(n.width),r=le(n.height),o=le(n.borderWidth),s=le(n.padding),a=e+o/2+s,c=t+o/2+s,l=i-(o/2+s)*2,d=r-(o/2+s)*2,h=[Kt(a,c),Je(a,c+d),Je(a+l,c+d),Je(a+l,c),an(),dc(),fc()],u=Br({x:e,y:t,width:i,height:r,borderWidth:n.borderWidth,color:n.color,borderColor:n.borderColor,rotate:$(0),xSkew:$(0),ySkew:$(0)}),p=ou(n.textLines,{color:n.textColor,font:n.font,size:n.fontSize,rotate:$(0),xSkew:$(0),ySkew:$(0)}),f=[qh("Tx"),ze(),...p,Ue(),Wh()];return[ze(),...u,...h,...f,Ue()]},Hp=n=>{let e=le(n.x),t=le(n.y),i=le(n.width),r=le(n.height),o=le(n.lineHeight),s=le(n.borderWidth),a=le(n.padding),c=e+s/2+a,l=t+s/2+a,d=i-(s/2+a)*2,h=r-(s/2+a)*2,u=[Kt(c,l),Je(c,l+h),Je(c+d,l+h),Je(c+d,l),an(),dc(),fc()],p=Br({x:e,y:t,width:i,height:r,borderWidth:n.borderWidth,color:n.color,borderColor:n.borderColor,rotate:$(0),xSkew:$(0),ySkew:$(0)}),f=[];for(let g=0,b=n.selectedLines.length;g<b;g++){let v=n.textLines[n.selectedLines[g]];f.push(...Br({x:v.x-a,y:v.y-(o-v.height)/2,width:i-s,height:v.height+(o-v.height)/2,borderWidth:0,color:n.selectedColor,borderColor:void 0,rotate:$(0),xSkew:$(0),ySkew:$(0)}))}let m=ou(n.textLines,{color:n.textColor,font:n.font,size:n.fontSize,rotate:$(0),xSkew:$(0),ySkew:$(0)}),x=[qh("Tx"),ze(),...m,Ue(),Wh()];return[ze(),...p,...f,...u,...x,Ue()]};var Ko=class extends Error{constructor(){super("Input document to `PDFDocument.load` is encrypted. You can use `PDFDocument.load(..., { ignoreEncryption: true })` if you wish to load the document anyways.")}},Cc=class extends Error{constructor(){super("Input to `PDFDocument.embedFont` was a custom font, but no `fontkit` instance was found. You must register a `fontkit` instance with `PDFDocument.registerFontkit(...)` before embedding custom fonts.")}},Sc=class extends Error{constructor(){super("A `page` passed to `PDFDocument.addPage` or `PDFDocument.insertPage` was from a different (foreign) PDF document. If you want to copy pages from one PDFDocument to another, you must use `PDFDocument.copyPages(...)` to copy the pages before adding or inserting them.")}},Ec=class extends Error{constructor(){super("PDFDocument has no pages so `PDFDocument.removePage` cannot be called")}},Tc=class extends Error{constructor(e){let t=`PDFDocument has no form field with the name "${e}"`;super(t)}},Hi=class extends Error{constructor(e,t,i){var r,o;let s=t==null?void 0:t.name,a=(o=(r=i==null?void 0:i.constructor)===null||r===void 0?void 0:r.name)!==null&&o!==void 0?o:i,c=`Expected field "${e}" to be of type ${s}, but it is actually of type ${a}`;super(c)}},zp=class extends Error{constructor(e){let t=`Failed to select check box due to missing onValue: "${e}"`;super(t)}},ca=class extends Error{constructor(e){let t=`A field already exists with the specified name: "${e}"`;super(t)}},Ac=class extends Error{constructor(e){let t=`Field name contains invalid component: "${e}"`;super(t)}},Up=class extends Error{constructor(e){let t=`A non-terminal field already exists with the specified name: "${e}"`;super(t)}},Ic=class extends Error{constructor(e){let t=`Reading rich text fields is not supported: Attempted to read rich text field: ${e}`;super(t)}},Bc=class extends Error{constructor(e,t){let i=`Failed to layout combed text as lineLength=${e} is greater than cellCount=${t}`;super(i)}},Lc=class extends Error{constructor(e,t,i){let r=`Attempted to set text with length=${e} for TextField with maxLength=${t} and name=${i}`;super(r)}},Oc=class extends Error{constructor(e,t,i){let r=`Attempted to set maxLength=${t}, which is less than ${e}, the length of this field's current value (name=${i})`;super(r)}};var qe;(function(n){n[n.Left=0]="Left",n[n.Center=1]="Center",n[n.Right=2]="Right"})(qe||(qe={}));var mw=4,xw=500,bw=(n,e,t,i=!1)=>{let r=mw;for(;r<xw;){let o=0;for(let l=0,d=n.length;l<d;l++){o+=1;let u=n[l].split(" "),p=t.width;for(let f=0,m=u.length;f<m;f++){let g=f===m-1?u[f]:u[f]+" ",b=e.widthOfTextAtSize(g,r);p-=b,p<=0&&(o+=1,p=t.width-b)}}if(!i&&o>n.length)return r-1;let s=e.heightAtSize(r);if((s+s*.2)*o>Math.abs(t.height))return r-1;r+=1}return r},Gk=(n,e,t,i)=>{let r=t.width/i,o=t.height,s=mw,a=E0(n);for(;s<xw;){for(let l=0,d=a.length;l<d;l++){let h=a[l];if(e.widthOfTextAtSize(h,s)>r*.75)return s-1}if(e.heightAtSize(s,{descender:!1})>o)return s-1;s+=1}return s},Xk=n=>{for(let e=n.length;e>0;e--)if(/\s/.test(n[e]))return e},Zk=(n,e,t,i)=>{var r;let o=n.length;for(;o>0;){let s=n.substring(0,o),a=t.encodeText(s),c=t.widthOfTextAtSize(s,i);if(c<e){let l=n.substring(o)||void 0;return{line:s,encoded:a,width:c,remainder:l}}o=(r=Xk(s))!==null&&r!==void 0?r:0}return{line:n,encoded:t.encodeText(n),width:t.widthOfTextAtSize(n,i),remainder:void 0}},au=(n,{alignment:e,fontSize:t,font:i,bounds:r})=>{let o=Ha(nr(n));(t===void 0||t===0)&&(t=bw(o,i,r,!0));let s=i.heightAtSize(t),a=s+s*.2,c=[],l=r.x,d=r.y,h=r.x+r.width,u=r.y+r.height,p=r.y+r.height;for(let f=0,m=o.length;f<m;f++){let x=o[f];for(;x!==void 0;){let{line:g,encoded:b,width:v,remainder:y}=Zk(x,r.width,i,t),F=e===qe.Left?r.x:e===qe.Center?r.x+r.width/2-v/2:e===qe.Right?r.x+r.width-v:r.x;p-=a,F<l&&(l=F),p<d&&(d=p),F+v>h&&(h=F+v),p+s>u&&(u=p+s),c.push({text:g,encoded:b,width:v,height:s,x:F,y:p}),x=y==null?void 0:y.trim()}}return{fontSize:t,lineHeight:a,lines:c,bounds:{x:l,y:d,width:h-l,height:u-d}}},qp=(n,{fontSize:e,font:t,bounds:i,cellCount:r})=>{let o=ud(nr(n));if(o.length>r)throw new Bc(o.length,r);(e===void 0||e===0)&&(e=Gk(o,t,i,r));let s=i.width/r,a=t.heightAtSize(e,{descender:!1}),c=i.y+(i.height/2-a/2),l=[],d=i.x,h=i.y,u=i.x+i.width,p=i.y+i.height,f=0,m=0;for(;f<r;){let[x,g]=fd(o,m),b=t.encodeText(x),v=t.widthOfTextAtSize(x,e),F=i.x+(s*f+s/2)-v/2;F<d&&(d=F),c<h&&(h=c),F+v>u&&(u=F+v),c+a>p&&(p=c+a),l.push({text:o,encoded:b,width:v,height:a,x:F,y:c}),f+=1,m+=g}return{fontSize:e,cells:l,bounds:{x:d,y:h,width:u-d,height:p-h}}},da=(n,{alignment:e,fontSize:t,font:i,bounds:r})=>{let o=ud(nr(n));(t===void 0||t===0)&&(t=bw([o],i,r));let s=i.encodeText(o),a=i.widthOfTextAtSize(o,t),c=i.heightAtSize(t,{descender:!1}),l=e===qe.Left?r.x:e===qe.Center?r.x+r.width/2-a/2:e===qe.Right?r.x+r.width-a:r.x,d=r.y+(r.height/2-c/2);return{fontSize:t,line:{text:o,encoded:s,width:a,height:c,x:l,y:d},bounds:{x:l,y:d,width:a,height:c}}};var Zt=n=>"normal"in n?n:{normal:n},Yk=/\/([^\0\t\n\f\r\ ]+)[\0\t\n\f\r\ ]+(\d*\.\d+|\d+)[\0\t\n\f\r\ ]+Tf/,Lr=n=>{var e,t;let i=(e=n.getDefaultAppearance())!==null&&e!==void 0?e:"",r=(t=ds(i,Yk).match)!==null&&t!==void 0?t:[],o=Number(r[2]);return isFinite(o)?o:void 0},Jk=/(\d*\.\d+|\d+)[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]+(g|rg|k)/,gi=n=>{var e;let t=(e=n.getDefaultAppearance())!==null&&e!==void 0?e:"",i=ds(t,Jk).match,[,r,o,s,a,c]=i!=null?i:[];if(c==="g"&&r)return Zh(Number(r));if(c==="rg"&&r&&o&&s)return fe(Number(r),Number(o),Number(s));if(c==="k"&&r&&o&&s&&a)return Yh(Number(r),Number(o),Number(s),Number(a))},mi=(n,e,t,i=0)=>{var r;let o=[Ni(e).toString(),Ho((r=t==null?void 0:t.name)!==null&&r!==void 0?r:"dummy__noop",i).toString()].join(`
|
||
`);n.setDefaultAppearance(o)},Wp=(n,e)=>{var t,i,r;let o=gi(e),s=gi(n.acroField),a=e.getRectangle(),c=e.getAppearanceCharacteristics(),l=e.getBorderStyle(),d=(t=l==null?void 0:l.getWidth())!==null&&t!==void 0?t:0,h=di(c==null?void 0:c.getRotation()),{width:u,height:p}=on(a,h),f=pi({...a,rotation:h}),m=fe(0,0,0),x=(i=yt(c==null?void 0:c.getBorderColor()))!==null&&i!==void 0?i:m,g=yt(c==null?void 0:c.getBackgroundColor()),b=yt(c==null?void 0:c.getBackgroundColor(),.8),v=(r=o!=null?o:s)!==null&&r!==void 0?r:m;mi(o?e:n.acroField,v);let y={x:0+d/2,y:0+d/2,width:u-d,height:p-d,thickness:1.5,borderWidth:d,borderColor:x,markColor:v};return{normal:{on:[...f,...aa({...y,color:g,filled:!0})],off:[...f,...aa({...y,color:g,filled:!1})]},down:{on:[...f,...aa({...y,color:b,filled:!0})],off:[...f,...aa({...y,color:b,filled:!1})]}}},jp=(n,e)=>{var t,i,r;let o=gi(e),s=gi(n.acroField),a=e.getRectangle(),c=e.getAppearanceCharacteristics(),l=e.getBorderStyle(),d=(t=l==null?void 0:l.getWidth())!==null&&t!==void 0?t:0,h=di(c==null?void 0:c.getRotation()),{width:u,height:p}=on(a,h),f=pi({...a,rotation:h}),m=fe(0,0,0),x=(i=yt(c==null?void 0:c.getBorderColor()))!==null&&i!==void 0?i:m,g=yt(c==null?void 0:c.getBackgroundColor()),b=yt(c==null?void 0:c.getBackgroundColor(),.8),v=(r=o!=null?o:s)!==null&&r!==void 0?r:m;mi(o?e:n.acroField,v);let y={x:u/2,y:p/2,width:u-d,height:p-d,borderWidth:d,borderColor:x,dotColor:v};return{normal:{on:[...f,...la({...y,color:g,filled:!0})],off:[...f,...la({...y,color:g,filled:!1})]},down:{on:[...f,...la({...y,color:b,filled:!0})],off:[...f,...la({...y,color:b,filled:!1})]}}},Kp=(n,e,t)=>{var i,r,o,s,a;let c=gi(e),l=gi(n.acroField),d=Lr(e),h=Lr(n.acroField),u=e.getRectangle(),p=e.getAppearanceCharacteristics(),f=e.getBorderStyle(),m=p==null?void 0:p.getCaptions(),x=(i=m==null?void 0:m.normal)!==null&&i!==void 0?i:"",g=(o=(r=m==null?void 0:m.down)!==null&&r!==void 0?r:x)!==null&&o!==void 0?o:"",b=(s=f==null?void 0:f.getWidth())!==null&&s!==void 0?s:0,v=di(p==null?void 0:p.getRotation()),{width:y,height:F}=on(u,v),D=pi({...u,rotation:v}),C=fe(0,0,0),k=yt(p==null?void 0:p.getBorderColor()),E=yt(p==null?void 0:p.getBackgroundColor()),B=yt(p==null?void 0:p.getBackgroundColor(),.8),S={x:b,y:b,width:y-b*2,height:F-b*2},A=da(x,{alignment:qe.Center,fontSize:d!=null?d:h,font:t,bounds:S}),L=da(g,{alignment:qe.Center,fontSize:d!=null?d:h,font:t,bounds:S}),I=Math.min(A.fontSize,L.fontSize),N=(a=c!=null?c:l)!==null&&a!==void 0?a:C;mi(c||d!==void 0?e:n.acroField,N,t,I);let q={x:0+b/2,y:0+b/2,width:y-b,height:F-b,borderWidth:b,borderColor:k,textColor:N,font:t.name,fontSize:I};return{normal:[...D,...ru({...q,color:E,textLines:[A.line]})],down:[...D,...ru({...q,color:B,textLines:[L.line]})]}},Gp=(n,e,t)=>{var i,r,o,s;let a=gi(e),c=gi(n.acroField),l=Lr(e),d=Lr(n.acroField),h=e.getRectangle(),u=e.getAppearanceCharacteristics(),p=e.getBorderStyle(),f=(i=n.getText())!==null&&i!==void 0?i:"",m=(r=p==null?void 0:p.getWidth())!==null&&r!==void 0?r:0,x=di(u==null?void 0:u.getRotation()),{width:g,height:b}=on(h,x),v=pi({...h,rotation:x}),y=fe(0,0,0),F=yt(u==null?void 0:u.getBorderColor()),D=yt(u==null?void 0:u.getBackgroundColor()),C,k,E=n.isCombed()?0:1,B={x:m+E,y:m+E,width:g-(m+E)*2,height:b-(m+E)*2};if(n.isMultiline()){let L=au(f,{alignment:n.getAlignment(),fontSize:l!=null?l:d,font:t,bounds:B});C=L.lines,k=L.fontSize}else if(n.isCombed()){let L=qp(f,{fontSize:l!=null?l:d,font:t,bounds:B,cellCount:(o=n.getMaxLength())!==null&&o!==void 0?o:0});C=L.cells,k=L.fontSize}else{let L=da(f,{alignment:n.getAlignment(),fontSize:l!=null?l:d,font:t,bounds:B});C=[L.line],k=L.fontSize}let S=(s=a!=null?a:c)!==null&&s!==void 0?s:y;mi(a||l!==void 0?e:n.acroField,S,t,k);let A={x:0+m/2,y:0+m/2,width:g-m,height:b-m,borderWidth:m!=null?m:0,borderColor:F,textColor:S,font:t.name,fontSize:k,color:D,textLines:C,padding:E};return[...v,...su(A)]},Xp=(n,e,t)=>{var i,r,o;let s=gi(e),a=gi(n.acroField),c=Lr(e),l=Lr(n.acroField),d=e.getRectangle(),h=e.getAppearanceCharacteristics(),u=e.getBorderStyle(),p=(i=n.getSelected()[0])!==null&&i!==void 0?i:"",f=(r=u==null?void 0:u.getWidth())!==null&&r!==void 0?r:0,m=di(h==null?void 0:h.getRotation()),{width:x,height:g}=on(d,m),b=pi({...d,rotation:m}),v=fe(0,0,0),y=yt(h==null?void 0:h.getBorderColor()),F=yt(h==null?void 0:h.getBackgroundColor()),D=1,C={x:f+D,y:f+D,width:x-(f+D)*2,height:g-(f+D)*2},{line:k,fontSize:E}=da(p,{alignment:qe.Left,fontSize:c!=null?c:l,font:t,bounds:C}),B=(o=s!=null?s:a)!==null&&o!==void 0?o:v;mi(s||c!==void 0?e:n.acroField,B,t,E);let S={x:0+f/2,y:0+f/2,width:x-f,height:g-f,borderWidth:f!=null?f:0,borderColor:y,textColor:B,font:t.name,fontSize:E,color:F,textLines:[k],padding:D};return[...b,...su(S)]},Zp=(n,e,t)=>{var i,r;let o=gi(e),s=gi(n.acroField),a=Lr(e),c=Lr(n.acroField),l=e.getRectangle(),d=e.getAppearanceCharacteristics(),h=e.getBorderStyle(),u=(i=h==null?void 0:h.getWidth())!==null&&i!==void 0?i:0,p=di(d==null?void 0:d.getRotation()),{width:f,height:m}=on(l,p),x=pi({...l,rotation:p}),g=fe(0,0,0),b=yt(d==null?void 0:d.getBorderColor()),v=yt(d==null?void 0:d.getBackgroundColor()),y=n.getOptions(),F=n.getSelected();n.isSorted()&&y.sort();let D="";for(let N=0,q=y.length;N<q;N++)D+=y[N],N<q-1&&(D+=`
|
||
`);let C=1,k={x:u+C,y:u+C,width:f-(u+C)*2,height:m-(u+C)*2},{lines:E,fontSize:B,lineHeight:S}=au(D,{alignment:qe.Left,fontSize:a!=null?a:c,font:t,bounds:k}),A=[];for(let N=0,q=E.length;N<q;N++){let U=E[N];F.includes(U.text)&&A.push(N)}let L=fe(153/255,193/255,218/255),I=(r=o!=null?o:s)!==null&&r!==void 0?r:g;return mi(o||a!==void 0?e:n.acroField,I,t,B),[...x,...Hp({x:0+u/2,y:0+u/2,width:f-u,height:m-u,borderWidth:u!=null?u:0,borderColor:b,textColor:I,font:t.name,fontSize:B,color:v,textLines:E,lineHeight:S,selectedColor:L,selectedLines:A,padding:C})]};var hu=Ki(Bp(),1);var zi=class{constructor(e,t,i){this.alreadyEmbedded=!1,T(e,"ref",[[Y,"PDFRef"]]),T(t,"doc",[[je,"PDFDocument"]]),T(i,"embedder",[[Ws,"PDFPageEmbedder"]]),this.ref=e,this.doc=t,this.width=i.width,this.height=i.height,this.embedder=i}scale(e){return T(e,"factor",["number"]),{width:this.width*e,height:this.height*e}}size(){return this.scale(1)}async embed(){this.alreadyEmbedded||(await this.embedder.embedIntoContext(this.doc.context,this.ref),this.alreadyEmbedded=!0)}};zi.of=(n,e,t)=>new zi(n,e,t);var Oe=class{constructor(e,t,i){this.modified=!0,T(e,"ref",[[Y,"PDFRef"]]),T(t,"doc",[[je,"PDFDocument"]]),T(i,"embedder",[[Pr,"CustomFontEmbedder"],[Dr,"StandardFontEmbedder"]]),this.ref=e,this.doc=t,this.name=i.fontName,this.embedder=i}encodeText(e){return T(e,"text",["string"]),this.modified=!0,this.embedder.encodeText(e)}widthOfTextAtSize(e,t){return T(e,"text",["string"]),T(t,"size",["number"]),this.embedder.widthOfTextAtSize(e,t)}heightAtSize(e,t){var i;return T(e,"size",["number"]),V(t==null?void 0:t.descender,"options.descender",["boolean"]),this.embedder.heightOfFontAtSize(e,{descender:(i=t==null?void 0:t.descender)!==null&&i!==void 0?i:!0})}sizeAtHeight(e){return T(e,"height",["number"]),this.embedder.sizeOfFontAtHeight(e)}getCharacterSet(){return this.embedder instanceof Dr?this.embedder.encoding.supportedCodePoints:this.embedder.font.characterSet}async embed(){this.modified&&(await this.embedder.embedIntoContext(this.doc.context,this.ref),this.modified=!1)}};Oe.of=(n,e,t)=>new Oe(n,e,t);var xi=class{constructor(e,t,i){T(e,"ref",[[Y,"PDFRef"]]),T(t,"doc",[[je,"PDFDocument"]]),T(i,"embedder",[[Hs,"JpegEmbedder"],[Us,"PngEmbedder"]]),this.ref=e,this.doc=t,this.width=i.width,this.height=i.height,this.embedder=i}scale(e){return T(e,"factor",["number"]),{width:this.width*e,height:this.height*e}}scaleToFit(e,t){T(e,"width",["number"]),T(t,"height",["number"]);let i=e/this.width,r=t/this.height,o=Math.min(i,r);return this.scale(o)}size(){return this.scale(1)}async embed(){if(this.embedder){if(!this.embedTask){let{doc:e,ref:t}=this;this.embedTask=this.embedder.embedIntoContext(e.context,t)}await this.embedTask,this.embedder=void 0}}};xi.of=(n,e,t)=>new xi(n,e,t);var bi;(function(n){n[n.Left=0]="Left",n[n.Center=1]="Center",n[n.Right=2]="Right"})(bi||(bi={}));var yi=n=>{V(n==null?void 0:n.x,"options.x",["number"]),V(n==null?void 0:n.y,"options.y",["number"]),V(n==null?void 0:n.width,"options.width",["number"]),V(n==null?void 0:n.height,"options.height",["number"]),V(n==null?void 0:n.textColor,"options.textColor",[[Object,"Color"]]),V(n==null?void 0:n.backgroundColor,"options.backgroundColor",[[Object,"Color"]]),V(n==null?void 0:n.borderColor,"options.borderColor",[[Object,"Color"]]),V(n==null?void 0:n.borderWidth,"options.borderWidth",["number"]),V(n==null?void 0:n.rotate,"options.rotate",[[Object,"Rotation"]])},at=class{constructor(e,t,i){T(e,"acroField",[[zt,"PDFAcroTerminal"]]),T(t,"ref",[[Y,"PDFRef"]]),T(i,"doc",[[je,"PDFDocument"]]),this.acroField=e,this.ref=t,this.doc=i}getName(){var e;return(e=this.acroField.getFullyQualifiedName())!==null&&e!==void 0?e:""}isReadOnly(){return this.acroField.hasFlag(jt.ReadOnly)}enableReadOnly(){this.acroField.setFlagTo(jt.ReadOnly,!0)}disableReadOnly(){this.acroField.setFlagTo(jt.ReadOnly,!1)}isRequired(){return this.acroField.hasFlag(jt.Required)}enableRequired(){this.acroField.setFlagTo(jt.Required,!0)}disableRequired(){this.acroField.setFlagTo(jt.Required,!1)}isExported(){return!this.acroField.hasFlag(jt.NoExport)}enableExporting(){this.acroField.setFlagTo(jt.NoExport,!1)}disableExporting(){this.acroField.setFlagTo(jt.NoExport,!0)}needsAppearancesUpdate(){throw new Ye(this.constructor.name,"needsAppearancesUpdate")}defaultUpdateAppearances(e){throw new Ye(this.constructor.name,"defaultUpdateAppearances")}markAsDirty(){this.doc.getForm().markFieldAsDirty(this.ref)}markAsClean(){this.doc.getForm().markFieldAsClean(this.ref)}isDirty(){return this.doc.getForm().fieldIsDirty(this.ref)}createWidget(e){var t;let i=e.textColor,r=e.backgroundColor,o=e.borderColor,s=e.borderWidth,a=Nn(e.rotate),c=e.caption,l=e.x,d=e.y,h=e.width+s,u=e.height+s,p=!!e.hidden,f=e.page;ul(a,"degreesAngle",90);let m=xo.create(this.doc.context,this.ref),x=sp({x:l,y:d,width:h,height:u},s,a);m.setRectangle(x),f&&m.setP(f);let g=m.getOrCreateAppearanceCharacteristics();r&&g.setBackgroundColor(Jh(r)),g.setRotation(a),c&&g.setCaptions({normal:c}),o&&g.setBorderColor(Jh(o));let b=m.getOrCreateBorderStyle();if(s!==void 0&&b.setWidth(s),m.setFlagTo(No.Print,!0),m.setFlagTo(No.Hidden,p),m.setFlagTo(No.Invisible,!1),i){let y=((t=this.acroField.getDefaultAppearance())!==null&&t!==void 0?t:"")+`
|
||
`+Ni(i).toString();this.acroField.setDefaultAppearance(y)}return m}updateWidgetAppearanceWithFont(e,t,{normal:i,rollover:r,down:o}){this.updateWidgetAppearances(e,{normal:this.createAppearanceStream(e,i,t),rollover:r&&this.createAppearanceStream(e,r,t),down:o&&this.createAppearanceStream(e,o,t)})}updateOnOffWidgetAppearance(e,t,{normal:i,rollover:r,down:o}){this.updateWidgetAppearances(e,{normal:this.createAppearanceDict(e,i,t),rollover:r&&this.createAppearanceDict(e,r,t),down:o&&this.createAppearanceDict(e,o,t)})}updateWidgetAppearances(e,{normal:t,rollover:i,down:r}){e.setNormalAppearance(t),i?e.setRolloverAppearance(i):e.removeRolloverAppearance(),r?e.setDownAppearance(r):e.removeDownAppearance()}createAppearanceStream(e,t,i){let{context:r}=this.acroField.dict,{width:o,height:s}=e.getRectangle(),a=i&&{Font:{[i.name]:i.ref}},c=r.formXObject(t,{Resources:a,BBox:r.obj([0,0,o,s]),Matrix:r.obj([1,0,0,1,0,0])});return r.register(c)}createImageAppearanceStream(e,t,i){var r;let{context:o}=this.acroField.dict,s=e.getRectangle(),a=e.getAppearanceCharacteristics(),c=e.getBorderStyle(),l=(r=c==null?void 0:c.getWidth())!==null&&r!==void 0?r:0,d=di(a==null?void 0:a.getRotation()),h=pi({...s,rotation:d}),u=on(s,d),p=t.scaleToFit(u.width-l*2,u.height-l*2),f={x:l,y:l,width:p.width,height:p.height,rotate:$(0),xSkew:$(0),ySkew:$(0)};i===bi.Center?(f.x+=(u.width-l*2)/2-p.width/2,f.y+=(u.height-l*2)/2-p.height/2):i===bi.Right&&(f.x=u.width-l-p.width,f.y=u.height-l-p.height);let m=this.doc.context.addRandomSuffix("Image",10),x=[...h,...kc(m,f)],g={XObject:{[m]:t.ref}},b=o.formXObject(x,{Resources:g,BBox:o.obj([0,0,s.width,s.height]),Matrix:o.obj([1,0,0,1,0,0])});return o.register(b)}createAppearanceDict(e,t,i){let{context:r}=this.acroField.dict,o=this.createAppearanceStream(e,t.on),s=this.createAppearanceStream(e,t.off),a=r.obj({});return a.set(i,o),a.set(w.of("Off"),s),a}};var Yt=class extends at{constructor(e,t,i){super(e,t,i),T(e,"acroCheckBox",[[En,"PDFAcroCheckBox"]]),this.acroField=e}check(){var e;let t=(e=this.acroField.getOnValue())!==null&&e!==void 0?e:w.of("Yes");this.markAsDirty(),this.acroField.setValue(t)}uncheck(){this.markAsDirty(),this.acroField.setValue(w.of("Off"))}isChecked(){let e=this.acroField.getOnValue();return!!e&&e===this.acroField.getValue()}addToPage(e,t){var i,r,o,s,a,c;T(e,"page",[[Be,"PDFPage"]]),yi(t),t||(t={}),"textColor"in t||(t.textColor=fe(0,0,0)),"backgroundColor"in t||(t.backgroundColor=fe(1,1,1)),"borderColor"in t||(t.borderColor=fe(0,0,0)),"borderWidth"in t||(t.borderWidth=1);let l=this.createWidget({x:(i=t.x)!==null&&i!==void 0?i:0,y:(r=t.y)!==null&&r!==void 0?r:0,width:(o=t.width)!==null&&o!==void 0?o:50,height:(s=t.height)!==null&&s!==void 0?s:50,textColor:t.textColor,backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:(a=t.borderWidth)!==null&&a!==void 0?a:0,rotate:(c=t.rotate)!==null&&c!==void 0?c:$(0),hidden:t.hidden,page:e.ref}),d=this.doc.context.register(l.dict);this.acroField.addWidget(d),l.setAppearanceState(w.of("Off")),this.updateWidgetAppearance(l,w.of("Yes")),e.node.addAnnot(d)}needsAppearancesUpdate(){var e;let t=this.acroField.getWidgets();for(let i=0,r=t.length;i<r;i++){let o=t[i],s=o.getAppearanceState(),a=(e=o.getAppearances())===null||e===void 0?void 0:e.normal;if(!(a instanceof G)||s&&!a.has(s))return!0}return!1}defaultUpdateAppearances(){this.updateAppearances()}updateAppearances(e){var t;V(e,"provider",[Function]);let i=this.acroField.getWidgets();for(let r=0,o=i.length;r<o;r++){let s=i[r],a=(t=s.getOnValue())!==null&&t!==void 0?t:w.of("Yes");a&&this.updateWidgetAppearance(s,a,e)}this.markAsClean()}updateWidgetAppearance(e,t,i){let r=i!=null?i:Wp,o=Zt(r(this,e));this.updateOnOffWidgetAppearance(e,t,o)}};Yt.of=(n,e,t)=>new Yt(n,e,t);var vi=class extends at{constructor(e,t,i){super(e,t,i),T(e,"acroComboBox",[[Tn,"PDFAcroComboBox"]]),this.acroField=e}getOptions(){let e=this.acroField.getOptions(),t=new Array(e.length);for(let i=0,r=t.length;i<r;i++){let{display:o,value:s}=e[i];t[i]=(o!=null?o:s).decodeText()}return t}getSelected(){let e=this.acroField.getValues(),t=new Array(e.length);for(let i=0,r=e.length;i<r;i++)t[i]=e[i].decodeText();return t}setOptions(e){T(e,"options",[Array]);let t=new Array(e.length);for(let i=0,r=e.length;i<r;i++)t[i]={value:j.fromText(e[i])};this.acroField.setOptions(t)}addOptions(e){T(e,"options",["string",Array]);let t=Array.isArray(e)?e:[e],i=this.acroField.getOptions(),r=new Array(t.length);for(let o=0,s=t.length;o<s;o++)r[o]={value:j.fromText(t[o])};this.acroField.setOptions(i.concat(r))}select(e,t=!1){T(e,"options",["string",Array]),T(t,"merge",["boolean"]);let i=Array.isArray(e)?e:[e],r=this.getOptions();i.find(a=>!r.includes(a))&&this.enableEditing(),this.markAsDirty(),(i.length>1||i.length===1&&t)&&this.enableMultiselect();let s=new Array(i.length);for(let a=0,c=i.length;a<c;a++)s[a]=j.fromText(i[a]);if(t){let a=this.acroField.getValues();this.acroField.setValues(a.concat(s))}else this.acroField.setValues(s)}clear(){this.markAsDirty(),this.acroField.setValues([])}setFontSize(e){Fn(e,"fontSize"),this.acroField.setFontSize(e),this.markAsDirty()}isEditable(){return this.acroField.hasFlag(ge.Edit)}enableEditing(){this.acroField.setFlagTo(ge.Edit,!0)}disableEditing(){this.acroField.setFlagTo(ge.Edit,!1)}isSorted(){return this.acroField.hasFlag(ge.Sort)}enableSorting(){this.acroField.setFlagTo(ge.Sort,!0)}disableSorting(){this.acroField.setFlagTo(ge.Sort,!1)}isMultiselect(){return this.acroField.hasFlag(ge.MultiSelect)}enableMultiselect(){this.acroField.setFlagTo(ge.MultiSelect,!0)}disableMultiselect(){this.acroField.setFlagTo(ge.MultiSelect,!1)}isSpellChecked(){return!this.acroField.hasFlag(ge.DoNotSpellCheck)}enableSpellChecking(){this.acroField.setFlagTo(ge.DoNotSpellCheck,!1)}disableSpellChecking(){this.acroField.setFlagTo(ge.DoNotSpellCheck,!0)}isSelectOnClick(){return this.acroField.hasFlag(ge.CommitOnSelChange)}enableSelectOnClick(){this.acroField.setFlagTo(ge.CommitOnSelChange,!0)}disableSelectOnClick(){this.acroField.setFlagTo(ge.CommitOnSelChange,!1)}addToPage(e,t){var i,r,o,s,a,c,l;T(e,"page",[[Be,"PDFPage"]]),yi(t),t||(t={}),"textColor"in t||(t.textColor=fe(0,0,0)),"backgroundColor"in t||(t.backgroundColor=fe(1,1,1)),"borderColor"in t||(t.borderColor=fe(0,0,0)),"borderWidth"in t||(t.borderWidth=1);let d=this.createWidget({x:(i=t.x)!==null&&i!==void 0?i:0,y:(r=t.y)!==null&&r!==void 0?r:0,width:(o=t.width)!==null&&o!==void 0?o:200,height:(s=t.height)!==null&&s!==void 0?s:50,textColor:t.textColor,backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:(a=t.borderWidth)!==null&&a!==void 0?a:0,rotate:(c=t.rotate)!==null&&c!==void 0?c:$(0),hidden:t.hidden,page:e.ref}),h=this.doc.context.register(d.dict);this.acroField.addWidget(h);let u=(l=t.font)!==null&&l!==void 0?l:this.doc.getForm().getDefaultFont();this.updateWidgetAppearance(d,u),e.node.addAnnot(h)}needsAppearancesUpdate(){var e;if(this.isDirty())return!0;let t=this.acroField.getWidgets();for(let i=0,r=t.length;i<r;i++)if(!(((e=t[i].getAppearances())===null||e===void 0?void 0:e.normal)instanceof Te))return!0;return!1}defaultUpdateAppearances(e){T(e,"font",[[Oe,"PDFFont"]]),this.updateAppearances(e)}updateAppearances(e,t){T(e,"font",[[Oe,"PDFFont"]]),V(t,"provider",[Function]);let i=this.acroField.getWidgets();for(let r=0,o=i.length;r<o;r++){let s=i[r];this.updateWidgetAppearance(s,e,t)}this.markAsClean()}updateWidgetAppearance(e,t,i){let r=i!=null?i:Xp,o=Zt(r(this,e,t));this.updateWidgetAppearanceWithFont(e,t,o)}};vi.of=(n,e,t)=>new vi(n,e,t);var wi=class extends at{constructor(e,t,i){super(e,t,i),T(e,"acroListBox",[[On,"PDFAcroListBox"]]),this.acroField=e}getOptions(){let e=this.acroField.getOptions(),t=new Array(e.length);for(let i=0,r=t.length;i<r;i++){let{display:o,value:s}=e[i];t[i]=(o!=null?o:s).decodeText()}return t}getSelected(){let e=this.acroField.getValues(),t=new Array(e.length);for(let i=0,r=e.length;i<r;i++)t[i]=e[i].decodeText();return t}setOptions(e){T(e,"options",[Array]),this.markAsDirty();let t=new Array(e.length);for(let i=0,r=e.length;i<r;i++)t[i]={value:j.fromText(e[i])};this.acroField.setOptions(t)}addOptions(e){T(e,"options",["string",Array]),this.markAsDirty();let t=Array.isArray(e)?e:[e],i=this.acroField.getOptions(),r=new Array(t.length);for(let o=0,s=t.length;o<s;o++)r[o]={value:j.fromText(t[o])};this.acroField.setOptions(i.concat(r))}select(e,t=!1){T(e,"options",["string",Array]),T(t,"merge",["boolean"]);let i=Array.isArray(e)?e:[e],r=this.getOptions();Cf(i,"option",r),this.markAsDirty(),(i.length>1||i.length===1&&t)&&this.enableMultiselect();let o=new Array(i.length);for(let s=0,a=i.length;s<a;s++)o[s]=j.fromText(i[s]);if(t){let s=this.acroField.getValues();this.acroField.setValues(s.concat(o))}else this.acroField.setValues(o)}clear(){this.markAsDirty(),this.acroField.setValues([])}setFontSize(e){Fn(e,"fontSize"),this.acroField.setFontSize(e),this.markAsDirty()}isSorted(){return this.acroField.hasFlag(ge.Sort)}enableSorting(){this.acroField.setFlagTo(ge.Sort,!0)}disableSorting(){this.acroField.setFlagTo(ge.Sort,!1)}isMultiselect(){return this.acroField.hasFlag(ge.MultiSelect)}enableMultiselect(){this.acroField.setFlagTo(ge.MultiSelect,!0)}disableMultiselect(){this.acroField.setFlagTo(ge.MultiSelect,!1)}isSelectOnClick(){return this.acroField.hasFlag(ge.CommitOnSelChange)}enableSelectOnClick(){this.acroField.setFlagTo(ge.CommitOnSelChange,!0)}disableSelectOnClick(){this.acroField.setFlagTo(ge.CommitOnSelChange,!1)}addToPage(e,t){var i,r,o,s,a,c,l;T(e,"page",[[Be,"PDFPage"]]),yi(t),t||(t={}),"textColor"in t||(t.textColor=fe(0,0,0)),"backgroundColor"in t||(t.backgroundColor=fe(1,1,1)),"borderColor"in t||(t.borderColor=fe(0,0,0)),"borderWidth"in t||(t.borderWidth=1);let d=this.createWidget({x:(i=t.x)!==null&&i!==void 0?i:0,y:(r=t.y)!==null&&r!==void 0?r:0,width:(o=t.width)!==null&&o!==void 0?o:200,height:(s=t.height)!==null&&s!==void 0?s:100,textColor:t.textColor,backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:(a=t.borderWidth)!==null&&a!==void 0?a:0,rotate:(c=t.rotate)!==null&&c!==void 0?c:$(0),hidden:t.hidden,page:e.ref}),h=this.doc.context.register(d.dict);this.acroField.addWidget(h);let u=(l=t.font)!==null&&l!==void 0?l:this.doc.getForm().getDefaultFont();this.updateWidgetAppearance(d,u),e.node.addAnnot(h)}needsAppearancesUpdate(){var e;if(this.isDirty())return!0;let t=this.acroField.getWidgets();for(let i=0,r=t.length;i<r;i++)if(!(((e=t[i].getAppearances())===null||e===void 0?void 0:e.normal)instanceof Te))return!0;return!1}defaultUpdateAppearances(e){T(e,"font",[[Oe,"PDFFont"]]),this.updateAppearances(e)}updateAppearances(e,t){T(e,"font",[[Oe,"PDFFont"]]),V(t,"provider",[Function]);let i=this.acroField.getWidgets();for(let r=0,o=i.length;r<o;r++){let s=i[r];this.updateWidgetAppearance(s,e,t)}this.markAsClean()}updateWidgetAppearance(e,t,i){let r=i!=null?i:Zp,o=Zt(r(this,e,t));this.updateWidgetAppearanceWithFont(e,t,o)}};wi.of=(n,e,t)=>new wi(n,e,t);var Jt=class extends at{constructor(e,t,i){super(e,t,i),T(e,"acroRadioButton",[[Ln,"PDFAcroRadioButton"]]),this.acroField=e}getOptions(){let e=this.acroField.getExportValues();if(e){let r=new Array(e.length);for(let o=0,s=e.length;o<s;o++)r[o]=e[o].decodeText();return r}let t=this.acroField.getOnValues(),i=new Array(t.length);for(let r=0,o=i.length;r<o;r++)i[r]=t[r].decodeText();return i}getSelected(){let e=this.acroField.getValue();if(e===w.of("Off"))return;let t=this.acroField.getExportValues();if(t){let i=this.acroField.getOnValues();for(let r=0,o=i.length;r<o;r++)if(i[r]===e)return t[r].decodeText()}return e.decodeText()}select(e){T(e,"option",["string"]);let t=this.getOptions();si(e,"option",t),this.markAsDirty();let i=this.acroField.getOnValues(),r=this.acroField.getExportValues();if(r)for(let o=0,s=r.length;o<s;o++)r[o].decodeText()===e&&this.acroField.setValue(i[o]);else for(let o=0,s=i.length;o<s;o++){let a=i[o];a.decodeText()===e&&this.acroField.setValue(a)}}clear(){this.markAsDirty(),this.acroField.setValue(w.of("Off"))}isOffToggleable(){return!this.acroField.hasFlag(bt.NoToggleToOff)}enableOffToggling(){this.acroField.setFlagTo(bt.NoToggleToOff,!1)}disableOffToggling(){this.acroField.setFlagTo(bt.NoToggleToOff,!0)}isMutuallyExclusive(){return!this.acroField.hasFlag(bt.RadiosInUnison)}enableMutualExclusion(){this.acroField.setFlagTo(bt.RadiosInUnison,!1)}disableMutualExclusion(){this.acroField.setFlagTo(bt.RadiosInUnison,!0)}addOptionToPage(e,t,i){var r,o,s,a,c,l,d,h,u;T(e,"option",["string"]),T(t,"page",[[Be,"PDFPage"]]),yi(i);let p=this.createWidget({x:(r=i==null?void 0:i.x)!==null&&r!==void 0?r:0,y:(o=i==null?void 0:i.y)!==null&&o!==void 0?o:0,width:(s=i==null?void 0:i.width)!==null&&s!==void 0?s:50,height:(a=i==null?void 0:i.height)!==null&&a!==void 0?a:50,textColor:(c=i==null?void 0:i.textColor)!==null&&c!==void 0?c:fe(0,0,0),backgroundColor:(l=i==null?void 0:i.backgroundColor)!==null&&l!==void 0?l:fe(1,1,1),borderColor:(d=i==null?void 0:i.borderColor)!==null&&d!==void 0?d:fe(0,0,0),borderWidth:(h=i==null?void 0:i.borderWidth)!==null&&h!==void 0?h:1,rotate:(u=i==null?void 0:i.rotate)!==null&&u!==void 0?u:$(0),hidden:i==null?void 0:i.hidden,page:t.ref}),f=this.doc.context.register(p.dict),m=this.acroField.addWidgetWithOpt(f,j.fromText(e),!this.isMutuallyExclusive());p.setAppearanceState(w.of("Off")),this.updateWidgetAppearance(p,m),t.node.addAnnot(f)}needsAppearancesUpdate(){var e;let t=this.acroField.getWidgets();for(let i=0,r=t.length;i<r;i++){let o=t[i],s=o.getAppearanceState(),a=(e=o.getAppearances())===null||e===void 0?void 0:e.normal;if(!(a instanceof G)||s&&!a.has(s))return!0}return!1}defaultUpdateAppearances(){this.updateAppearances()}updateAppearances(e){V(e,"provider",[Function]);let t=this.acroField.getWidgets();for(let i=0,r=t.length;i<r;i++){let o=t[i],s=o.getOnValue();s&&this.updateWidgetAppearance(o,s,e)}}updateWidgetAppearance(e,t,i){let r=i!=null?i:jp,o=Zt(r(this,e));this.updateOnOffWidgetAppearance(e,t,o)}};Jt.of=(n,e,t)=>new Jt(n,e,t);var Ui=class extends at{constructor(e,t,i){super(e,t,i),T(e,"acroSignature",[[br,"PDFAcroSignature"]]),this.acroField=e}needsAppearancesUpdate(){return!1}};Ui.of=(n,e,t)=>new Ui(n,e,t);var Fi=class extends at{constructor(e,t,i){super(e,t,i),T(e,"acroText",[[In,"PDFAcroText"]]),this.acroField=e}getText(){let e=this.acroField.getValue();if(!e&&this.isRichFormatted())throw new Ic(this.getName());return e==null?void 0:e.decodeText()}setText(e){V(e,"text",["string"]);let t=this.getMaxLength();if(t!==void 0&&e&&e.length>t)throw new Lc(e.length,t,this.getName());this.markAsDirty(),this.disableRichFormatting(),e?this.acroField.setValue(j.fromText(e)):this.acroField.removeValue()}getAlignment(){let e=this.acroField.getQuadding();return e===0?qe.Left:e===1?qe.Center:e===2?qe.Right:qe.Left}setAlignment(e){si(e,"alignment",qe),this.markAsDirty(),this.acroField.setQuadding(e)}getMaxLength(){return this.acroField.getMaxLength()}setMaxLength(e){if(Vt(e,"maxLength",0,Number.MAX_SAFE_INTEGER),this.markAsDirty(),e===void 0)this.acroField.removeMaxLength();else{let t=this.getText();if(t&&t.length>e)throw new Oc(t.length,e,this.getName());this.acroField.setMaxLength(e)}}removeMaxLength(){this.markAsDirty(),this.acroField.removeMaxLength()}setImage(e){let t=this.getAlignment(),i=t===qe.Center?bi.Center:t===qe.Right?bi.Right:bi.Left,r=this.acroField.getWidgets();for(let o=0,s=r.length;o<s;o++){let a=r[o],c=this.createImageAppearanceStream(a,e,i);this.updateWidgetAppearances(a,{normal:c})}this.markAsClean()}setFontSize(e){Fn(e,"fontSize"),this.acroField.setFontSize(e),this.markAsDirty()}isMultiline(){return this.acroField.hasFlag(Me.Multiline)}enableMultiline(){this.markAsDirty(),this.acroField.setFlagTo(Me.Multiline,!0)}disableMultiline(){this.markAsDirty(),this.acroField.setFlagTo(Me.Multiline,!1)}isPassword(){return this.acroField.hasFlag(Me.Password)}enablePassword(){this.acroField.setFlagTo(Me.Password,!0)}disablePassword(){this.acroField.setFlagTo(Me.Password,!1)}isFileSelector(){return this.acroField.hasFlag(Me.FileSelect)}enableFileSelection(){this.acroField.setFlagTo(Me.FileSelect,!0)}disableFileSelection(){this.acroField.setFlagTo(Me.FileSelect,!1)}isSpellChecked(){return!this.acroField.hasFlag(Me.DoNotSpellCheck)}enableSpellChecking(){this.acroField.setFlagTo(Me.DoNotSpellCheck,!1)}disableSpellChecking(){this.acroField.setFlagTo(Me.DoNotSpellCheck,!0)}isScrollable(){return!this.acroField.hasFlag(Me.DoNotScroll)}enableScrolling(){this.acroField.setFlagTo(Me.DoNotScroll,!1)}disableScrolling(){this.acroField.setFlagTo(Me.DoNotScroll,!0)}isCombed(){return this.acroField.hasFlag(Me.Comb)&&!this.isMultiline()&&!this.isPassword()&&!this.isFileSelector()&&this.getMaxLength()!==void 0}enableCombing(){this.getMaxLength()===void 0&&console.warn("PDFTextFields must have a max length in order to be combed"),this.markAsDirty(),this.disableMultiline(),this.disablePassword(),this.disableFileSelection(),this.acroField.setFlagTo(Me.Comb,!0)}disableCombing(){this.markAsDirty(),this.acroField.setFlagTo(Me.Comb,!1)}isRichFormatted(){return this.acroField.hasFlag(Me.RichText)}enableRichFormatting(){this.acroField.setFlagTo(Me.RichText,!0)}disableRichFormatting(){this.acroField.setFlagTo(Me.RichText,!1)}addToPage(e,t){var i,r,o,s,a,c,l;T(e,"page",[[Be,"PDFPage"]]),yi(t),t||(t={}),"textColor"in t||(t.textColor=fe(0,0,0)),"backgroundColor"in t||(t.backgroundColor=fe(1,1,1)),"borderColor"in t||(t.borderColor=fe(0,0,0)),"borderWidth"in t||(t.borderWidth=1);let d=this.createWidget({x:(i=t.x)!==null&&i!==void 0?i:0,y:(r=t.y)!==null&&r!==void 0?r:0,width:(o=t.width)!==null&&o!==void 0?o:200,height:(s=t.height)!==null&&s!==void 0?s:50,textColor:t.textColor,backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:(a=t.borderWidth)!==null&&a!==void 0?a:0,rotate:(c=t.rotate)!==null&&c!==void 0?c:$(0),hidden:t.hidden,page:e.ref}),h=this.doc.context.register(d.dict);this.acroField.addWidget(h);let u=(l=t.font)!==null&&l!==void 0?l:this.doc.getForm().getDefaultFont();this.updateWidgetAppearance(d,u),e.node.addAnnot(h)}needsAppearancesUpdate(){var e;if(this.isDirty())return!0;let t=this.acroField.getWidgets();for(let i=0,r=t.length;i<r;i++)if(!(((e=t[i].getAppearances())===null||e===void 0?void 0:e.normal)instanceof Te))return!0;return!1}defaultUpdateAppearances(e){T(e,"font",[[Oe,"PDFFont"]]),this.updateAppearances(e)}updateAppearances(e,t){T(e,"font",[[Oe,"PDFFont"]]),V(t,"provider",[Function]);let i=this.acroField.getWidgets();for(let r=0,o=i.length;r<o;r++){let s=i[r];this.updateWidgetAppearance(s,e,t)}this.markAsClean()}updateWidgetAppearance(e,t,i){let r=i!=null?i:Gp,o=Zt(r(this,e,t));this.updateWidgetAppearanceWithFont(e,t,o)}};Fi.of=(n,e,t)=>new Fi(n,e,t);var Go;(function(n){n.Courier="Courier",n.CourierBold="Courier-Bold",n.CourierOblique="Courier-Oblique",n.CourierBoldOblique="Courier-BoldOblique",n.Helvetica="Helvetica",n.HelveticaBold="Helvetica-Bold",n.HelveticaOblique="Helvetica-Oblique",n.HelveticaBoldOblique="Helvetica-BoldOblique",n.TimesRoman="Times-Roman",n.TimesRomanBold="Times-Bold",n.TimesRomanItalic="Times-Italic",n.TimesRomanBoldItalic="Times-BoldItalic",n.Symbol="Symbol",n.ZapfDingbats="ZapfDingbats"})(Go||(Go={}));var zn=class{constructor(e,t){this.embedDefaultFont=()=>this.doc.embedStandardFont(Go.Helvetica),T(e,"acroForm",[[yr,"PDFAcroForm"]]),T(t,"doc",[[je,"PDFDocument"]]),this.acroForm=e,this.doc=t,this.dirtyFields=new Set,this.defaultFontCache=ht.populatedBy(this.embedDefaultFont)}hasXFA(){return this.acroForm.dict.has(w.of("XFA"))}deleteXFA(){this.acroForm.dict.delete(w.of("XFA"))}getFields(){let e=this.acroForm.getAllFields(),t=[];for(let i=0,r=e.length;i<r;i++){let[o,s]=e[i],a=_k(o,s,this.doc);a&&t.push(a)}return t}getFieldMaybe(e){T(e,"name",["string"]);let t=this.getFields();for(let i=0,r=t.length;i<r;i++){let o=t[i];if(o.getName()===e)return o}}getField(e){T(e,"name",["string"]);let t=this.getFieldMaybe(e);if(t)return t;throw new Tc(e)}getButton(e){T(e,"name",["string"]);let t=this.getField(e);if(t instanceof Di)return t;throw new Hi(e,Di,t)}getCheckBox(e){T(e,"name",["string"]);let t=this.getField(e);if(t instanceof Yt)return t;throw new Hi(e,Yt,t)}getDropdown(e){T(e,"name",["string"]);let t=this.getField(e);if(t instanceof vi)return t;throw new Hi(e,vi,t)}getOptionList(e){T(e,"name",["string"]);let t=this.getField(e);if(t instanceof wi)return t;throw new Hi(e,wi,t)}getRadioGroup(e){T(e,"name",["string"]);let t=this.getField(e);if(t instanceof Jt)return t;throw new Hi(e,Jt,t)}getSignature(e){T(e,"name",["string"]);let t=this.getField(e);if(t instanceof Ui)return t;throw new Hi(e,Ui,t)}getTextField(e){T(e,"name",["string"]);let t=this.getField(e);if(t instanceof Fi)return t;throw new Hi(e,Fi,t)}createButton(e){T(e,"name",["string"]);let t=ha(e),i=this.findOrCreateNonTerminals(t.nonTerminal),r=Bn.create(this.doc.context);return r.setPartialName(t.terminal),ua(i,[r,r.ref],t.terminal),Di.of(r,r.ref,this.doc)}createCheckBox(e){T(e,"name",["string"]);let t=ha(e),i=this.findOrCreateNonTerminals(t.nonTerminal),r=En.create(this.doc.context);return r.setPartialName(t.terminal),ua(i,[r,r.ref],t.terminal),Yt.of(r,r.ref,this.doc)}createDropdown(e){T(e,"name",["string"]);let t=ha(e),i=this.findOrCreateNonTerminals(t.nonTerminal),r=Tn.create(this.doc.context);return r.setPartialName(t.terminal),ua(i,[r,r.ref],t.terminal),vi.of(r,r.ref,this.doc)}createOptionList(e){T(e,"name",["string"]);let t=ha(e),i=this.findOrCreateNonTerminals(t.nonTerminal),r=On.create(this.doc.context);return r.setPartialName(t.terminal),ua(i,[r,r.ref],t.terminal),wi.of(r,r.ref,this.doc)}createRadioGroup(e){T(e,"name",["string"]);let t=ha(e),i=this.findOrCreateNonTerminals(t.nonTerminal),r=Ln.create(this.doc.context);return r.setPartialName(t.terminal),ua(i,[r,r.ref],t.terminal),Jt.of(r,r.ref,this.doc)}createTextField(e){T(e,"name",["string"]);let t=ha(e),i=this.findOrCreateNonTerminals(t.nonTerminal),r=In.create(this.doc.context);return r.setPartialName(t.terminal),ua(i,[r,r.ref],t.terminal),Fi.of(r,r.ref,this.doc)}flatten(e={updateFieldAppearances:!0}){e.updateFieldAppearances&&this.updateFieldAppearances();let t=this.getFields();for(let i=0,r=t.length;i<r;i++){let o=t[i],s=o.acroField.getWidgets();for(let a=0,c=s.length;a<c;a++)try{let l=s[a],d=this.findWidgetPage(l),h=this.findWidgetAppearanceRef(o,l),u=d.node.newXObject("FlatWidget",h),p=l.getRectangle(),f=[ze(),Tt(p.x,p.y),...pi({...p,rotation:0}),Qs(u),Ue()].filter(Boolean);d.pushOperators(...f)}catch(l){console.error(l)}this.removeField(o)}}removeField(e){let t=e.acroField.getWidgets(),i=new Set;for(let s=0,a=t.length;s<a;s++)try{let c=t[s],l=this.findWidgetAppearanceRef(e,c),d=this.findWidgetPage(c);i.add(d),d.node.removeAnnot(l)}catch(c){console.error(c)}i.forEach(s=>s.node.removeAnnot(e.ref)),this.acroForm.removeField(e.acroField);let r=e.acroField.normalizedEntries().Kids,o=r.size();for(let s=0;s<o;s++){let a=r.get(s);a instanceof Y&&this.doc.context.delete(a)}this.doc.context.delete(e.ref)}updateFieldAppearances(e){V(e,"font",[[Oe,"PDFFont"]]),e=e!=null?e:this.getDefaultFont();let t=this.getFields();for(let i=0,r=t.length;i<r;i++){let o=t[i];o.needsAppearancesUpdate()&&o.defaultUpdateAppearances(e)}}markFieldAsDirty(e){V(e,"fieldRef",[[Y,"PDFRef"]]),this.dirtyFields.add(e)}markFieldAsClean(e){V(e,"fieldRef",[[Y,"PDFRef"]]),this.dirtyFields.delete(e)}fieldIsDirty(e){return V(e,"fieldRef",[[Y,"PDFRef"]]),this.dirtyFields.has(e)}getDefaultFont(){return this.defaultFontCache.access()}findWidgetPage(e){let t=e.P(),i=this.doc.getPages().find(r=>r.ref===t);if(i===void 0){let r=this.doc.context.getObjectRef(e.dict);if(r===void 0)throw new Error("Could not find PDFRef for PDFObject");if(i=this.doc.findPageForAnnotationRef(r),i===void 0)throw new Error(`Could not find page for PDFRef ${r}`)}return i}findWidgetAppearanceRef(e,t){var i;let r=t.getNormalAppearance();if((e instanceof Yt||e instanceof Jt)&&(r instanceof Y&&(r=this.doc.context.lookup(r,G)),r instanceof G)){let o=e.acroField.getValue(),s=(i=r.get(o))!==null&&i!==void 0?i:r.get(w.of("Off"));s instanceof Y&&(r=s)}if(!(r instanceof Y)){let o=e.getName();throw new Error(`Failed to extract appearance ref for: ${o}`)}return r}findOrCreateNonTerminals(e){let t=[this.acroForm];for(let i=0,r=e.length;i<r;i++){let o=e[i];if(!o)throw new Ac(o);let[s,a]=t,c=this.findNonTerminal(o,s);if(c)t=c;else{let l=An.create(this.doc.context);l.setPartialName(o),l.setParent(a);let d=this.doc.context.register(l.dict);s.addField(d),t=[l,d]}}return t}findNonTerminal(e,t){let i=t instanceof yr?this.acroForm.getFields():Ms(t.Kids());for(let r=0,o=i.length;r<o;r++){let[s,a]=i[r];if(s.getPartialName()===e){if(s instanceof An)return[s,a];throw new ca(e)}}}};zn.of=(n,e)=>new zn(n,e);var _k=(n,e,t)=>{if(n instanceof Bn)return Di.of(n,e,t);if(n instanceof En)return Yt.of(n,e,t);if(n instanceof Tn)return vi.of(n,e,t);if(n instanceof On)return wi.of(n,e,t);if(n instanceof In)return Fi.of(n,e,t);if(n instanceof Ln)return Jt.of(n,e,t);if(n instanceof br)return Ui.of(n,e,t)},ha=n=>{if(n.length===0)throw new Error("PDF field names must not be empty strings");let e=n.split(".");for(let t=0,i=e.length;t<i;t++)if(e[t]==="")throw new Error(`Periods in PDF field names must be separated by at least one character: "${n}"`);return e.length===1?{nonTerminal:[],terminal:e[0]}:{nonTerminal:e.slice(0,e.length-1),terminal:e[e.length-1]}},ua=([n,e],[t,i],r)=>{let o=n.normalizedEntries(),s=Ms("Kids"in o?o.Kids:o.Fields);for(let a=0,c=s.length;a<c;a++)if(s[a][0].getPartialName()===r)throw new ca(r);n.addField(i),t.setParent(e)};var Xo={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],Executive:[521.86,756],Folio:[612,936],Legal:[612,1008],Letter:[612,792],Tabloid:[792,1224]};var Mc;(function(n){n[n.Fastest=1/0]="Fastest",n[n.Fast=1500]="Fast",n[n.Medium=500]="Medium",n[n.Slow=100]="Slow"})(Mc||(Mc={}));var Zo=class{constructor(e,t,i){this.alreadyEmbedded=!1,this.ref=e,this.doc=t,this.embedder=i}async embed(){if(!this.alreadyEmbedded){let e=await this.embedder.embedIntoContext(this.doc.context,this.ref);this.doc.catalog.has(w.of("Names"))||this.doc.catalog.set(w.of("Names"),this.doc.context.obj({}));let t=this.doc.catalog.lookup(w.of("Names"),G);t.has(w.of("EmbeddedFiles"))||t.set(w.of("EmbeddedFiles"),this.doc.context.obj({}));let i=t.lookup(w.of("EmbeddedFiles"),G);i.has(w.of("Names"))||i.set(w.of("Names"),this.doc.context.obj([]));let r=i.lookup(w.of("Names"),X);r.push(j.fromText(this.embedder.fileName)),r.push(e),this.doc.catalog.has(w.of("AF"))||this.doc.catalog.set(w.of("AF"),this.doc.context.obj([])),this.doc.catalog.lookup(w.of("AF"),X).push(e),this.alreadyEmbedded=!0}}};Zo.of=(n,e,t)=>new Zo(n,e,t);var Un=class{constructor(e,t,i){this.alreadyEmbedded=!1,this.ref=e,this.doc=t,this.embedder=i}async embed(){if(!this.alreadyEmbedded){let{catalog:e,context:t}=this.doc,i=await this.embedder.embedIntoContext(this.doc.context,this.ref);e.has(w.of("Names"))||e.set(w.of("Names"),t.obj({}));let r=e.lookup(w.of("Names"),G);r.has(w.of("JavaScript"))||r.set(w.of("JavaScript"),t.obj({}));let o=r.lookup(w.of("JavaScript"),G);o.has(w.of("Names"))||o.set(w.of("Names"),t.obj([]));let s=o.lookup(w.of("Names"),X);s.push(j.fromText(this.embedder.scriptName)),s.push(i),this.alreadyEmbedded=!0}}};Un.of=(n,e,t)=>new Un(n,e,t);var Yp=class n{static for(e,t){return new n(e,t)}constructor(e,t){this.script=e,this.scriptName=t}async embedIntoContext(e,t){let i=e.obj({Type:"Action",S:"JavaScript",JS:j.fromText(this.script)});return t?(e.assign(t,i),t):e.register(i)}},yw=Yp;var vw=512,Jp=class extends li{constructor(e,t,i){super(i),this.stream=e,this.decrypt=t,this.nextChunk=null,this.initialized=!1}readBlock(){let e;if(this.initialized?e=this.nextChunk:(e=this.stream.getBytes(vw),this.initialized=!0),!e||e.length===0){this.eof=!0;return}this.nextChunk=this.stream.getBytes(vw);let t=this.nextChunk&&this.nextChunk.length>0,i=this.decrypt;e=i(e,!t);let r=this.bufferLength,o=r+e.length;this.ensureBuffer(o).set(e,r),this.bufferLength=o}},ww=Jp;var qn=class{constructor(e){this.a=0,this.b=0;let t=new Uint8Array(256),i=e.length;for(let r=0;r<256;++r)t[r]=r;for(let r=0,o=0;r<256;++r){let s=t[r];o=o+s+e[r%i]&255,t[r]=t[o],t[o]=s}this.s=t}encryptBlock(e){let t=this.a,i=this.b,r=this.s,o=e.length,s=new Uint8Array(o);for(let a=0;a<o;++a){t=t+1&255;let c=r[t];i=i+c&255;let l=r[i];r[t]=l,r[i]=c,s[a]=e[a]^r[c+l&255]}return this.a=t,this.b=i,s}decryptBlock(e){return this.encryptBlock(e)}encrypt(e){return this.encryptBlock(e)}},fa=function(){let e=new Uint8Array([7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21]),t=new Int32Array([-680876936,-389564586,606105819,-1044525330,-176418897,1200080426,-1473231341,-45705983,1770035416,-1958414417,-42063,-1990404162,1804603682,-40341101,-1502002290,1236535329,-165796510,-1069501632,643717713,-373897302,-701558691,38016083,-660478335,-405537848,568446438,-1019803690,-187363961,1163531501,-1444681467,-51403784,1735328473,-1926607734,-378558,-2022574463,1839030562,-35309556,-1530992060,1272893353,-155497632,-1094730640,681279174,-358537222,-722521979,76029189,-640364487,-421815835,530742520,-995338651,-198630844,1126891415,-1416354905,-57434055,1700485571,-1894986606,-1051523,-2054922799,1873313359,-30611744,-1560198380,1309151649,-145523070,-1120210379,718787259,-343485551]);function i(r,o,s){let a=1732584193,c=-271733879,l=-1732584194,d=271733878,h=s+72&-64,u=new Uint8Array(h),p,f;for(p=0;p<s;++p)u[p]=r[o++];u[p++]=128;let m=h-8;for(;p<m;)u[p++]=0;u[p++]=s<<3&255,u[p++]=s>>5&255,u[p++]=s>>13&255,u[p++]=s>>21&255,u[p++]=s>>>29&255,u[p++]=0,u[p++]=0,u[p++]=0;let x=new Int32Array(16);for(p=0;p<h;){for(f=0;f<16;++f,p+=4)x[f]=u[p]|u[p+1]<<8|u[p+2]<<16|u[p+3]<<24;let g=a,b=c,v=l,y=d,F,D;for(f=0;f<64;++f){f<16?(F=b&v|~b&y,D=f):f<32?(F=y&b|~y&v,D=5*f+1&15):f<48?(F=b^v^y,D=3*f+5&15):(F=v^(b|~y),D=7*f&15);let C=y,k=g+F+t[f]+x[D]|0,E=e[f];y=v,v=b,b=b+(k<<E|k>>>32-E)|0,g=C}a=a+g|0,c=c+b|0,l=l+v|0,d=d+y|0}return new Uint8Array([a&255,a>>8&255,a>>16&255,a>>>24&255,c&255,c>>8&255,c>>16&255,c>>>24&255,l&255,l>>8&255,l>>16&255,l>>>24&255,d&255,d>>8&255,d>>16&255,d>>>24&255])}return i}(),H=class{constructor(e,t){this.high=e|0,this.low=t|0}and(e){this.high&=e.high,this.low&=e.low}xor(e){this.high^=e.high,this.low^=e.low}or(e){this.high|=e.high,this.low|=e.low}shiftRight(e){e>=32?(this.low=this.high>>>e-32|0,this.high=0):(this.low=this.low>>>e|this.high<<32-e,this.high=this.high>>>e|0)}shiftLeft(e){e>=32?(this.high=this.low<<e-32,this.low=0):(this.high=this.high<<e|this.low>>>32-e,this.low<<=e)}rotateRight(e){let t,i;e&32?(i=this.low,t=this.high):(t=this.low,i=this.high),e&=31,this.low=t>>>e|i<<32-e,this.high=i>>>e|t<<32-e}not(){this.high=~this.high,this.low=~this.low}add(e){let t=(this.low>>>0)+(e.low>>>0),i=(this.high>>>0)+(e.high>>>0);t>4294967295&&(i+=1),this.low=t|0,this.high=i|0}copyTo(e,t){e[t]=this.high>>>24&255,e[t+1]=this.high>>16&255,e[t+2]=this.high>>8&255,e[t+3]=this.high&255,e[t+4]=this.low>>>24&255,e[t+5]=this.low>>16&255,e[t+6]=this.low>>8&255,e[t+7]=this.low&255}assign(e){this.high=e.high,this.low=e.low}},pa=function(){function e(d,h){return d>>>h|d<<32-h}function t(d,h,u){return d&h^~d&u}function i(d,h,u){return d&h^d&u^h&u}function r(d){return e(d,2)^e(d,13)^e(d,22)}function o(d){return e(d,6)^e(d,11)^e(d,25)}function s(d){return e(d,7)^e(d,18)^d>>>3}function a(d){return e(d,17)^e(d,19)^d>>>10}let c=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function l(d,h,u){let p=1779033703,f=3144134277,m=1013904242,x=2773480762,g=1359893119,b=2600822924,v=528734635,y=1541459225,F=Math.ceil((u+9)/64)*64,D=new Uint8Array(F),C,k;for(C=0;C<u;++C)D[C]=d[h++];D[C++]=128;let E=F-8;for(;C<E;)D[C++]=0;D[C++]=0,D[C++]=0,D[C++]=0,D[C++]=u>>>29&255,D[C++]=u>>21&255,D[C++]=u>>13&255,D[C++]=u>>5&255,D[C++]=u<<3&255;let B=new Uint32Array(64);for(C=0;C<F;){for(k=0;k<16;++k)B[k]=D[C]<<24|D[C+1]<<16|D[C+2]<<8|D[C+3],C+=4;for(k=16;k<64;++k)B[k]=a(B[k-2])+B[k-7]+s(B[k-15])+B[k-16]|0;let S=p,A=f,L=m,I=x,N=g,q=b,U=v,Z=y,O,z;for(k=0;k<64;++k)O=Z+o(N)+t(N,q,U)+c[k]+B[k],z=r(S)+i(S,A,L),Z=U,U=q,q=N,N=I+O|0,I=L,L=A,A=S,S=O+z|0;p=p+S|0,f=f+A|0,m=m+L|0,x=x+I|0,g=g+N|0,b=b+q|0,v=v+U|0,y=y+Z|0}return new Uint8Array([p>>24&255,p>>16&255,p>>8&255,p&255,f>>24&255,f>>16&255,f>>8&255,f&255,m>>24&255,m>>16&255,m>>8&255,m&255,x>>24&255,x>>16&255,x>>8&255,x&255,g>>24&255,g>>16&255,g>>8&255,g&255,b>>24&255,b>>16&255,b>>8&255,b&255,v>>24&255,v>>16&255,v>>8&255,v&255,y>>24&255,y>>16&255,y>>8&255,y&255])}return l}(),Fw=function(){function e(l,d,h,u,p){l.assign(d),l.and(h),p.assign(d),p.not(),p.and(u),l.xor(p)}function t(l,d,h,u,p){l.assign(d),l.and(h),p.assign(d),p.and(u),l.xor(p),p.assign(h),p.and(u),l.xor(p)}function i(l,d,h){l.assign(d),l.rotateRight(28),h.assign(d),h.rotateRight(34),l.xor(h),h.assign(d),h.rotateRight(39),l.xor(h)}function r(l,d,h){l.assign(d),l.rotateRight(14),h.assign(d),h.rotateRight(18),l.xor(h),h.assign(d),h.rotateRight(41),l.xor(h)}function o(l,d,h){l.assign(d),l.rotateRight(1),h.assign(d),h.rotateRight(8),l.xor(h),h.assign(d),h.shiftRight(7),l.xor(h)}function s(l,d,h){l.assign(d),l.rotateRight(19),h.assign(d),h.rotateRight(61),l.xor(h),h.assign(d),h.shiftRight(6),l.xor(h)}let a=[new H(1116352408,3609767458),new H(1899447441,602891725),new H(3049323471,3964484399),new H(3921009573,2173295548),new H(961987163,4081628472),new H(1508970993,3053834265),new H(2453635748,2937671579),new H(2870763221,3664609560),new H(3624381080,2734883394),new H(310598401,1164996542),new H(607225278,1323610764),new H(1426881987,3590304994),new H(1925078388,4068182383),new H(2162078206,991336113),new H(2614888103,633803317),new H(3248222580,3479774868),new H(3835390401,2666613458),new H(4022224774,944711139),new H(264347078,2341262773),new H(604807628,2007800933),new H(770255983,1495990901),new H(1249150122,1856431235),new H(1555081692,3175218132),new H(1996064986,2198950837),new H(2554220882,3999719339),new H(2821834349,766784016),new H(2952996808,2566594879),new H(3210313671,3203337956),new H(3336571891,1034457026),new H(3584528711,2466948901),new H(113926993,3758326383),new H(338241895,168717936),new H(666307205,1188179964),new H(773529912,1546045734),new H(1294757372,1522805485),new H(1396182291,2643833823),new H(1695183700,2343527390),new H(1986661051,1014477480),new H(2177026350,1206759142),new H(2456956037,344077627),new H(2730485921,1290863460),new H(2820302411,3158454273),new H(3259730800,3505952657),new H(3345764771,106217008),new H(3516065817,3606008344),new H(3600352804,1432725776),new H(4094571909,1467031594),new H(275423344,851169720),new H(430227734,3100823752),new H(506948616,1363258195),new H(659060556,3750685593),new H(883997877,3785050280),new H(958139571,3318307427),new H(1322822218,3812723403),new H(1537002063,2003034995),new H(1747873779,3602036899),new H(1955562222,1575990012),new H(2024104815,1125592928),new H(2227730452,2716904306),new H(2361852424,442776044),new H(2428436474,593698344),new H(2756734187,3733110249),new H(3204031479,2999351573),new H(3329325298,3815920427),new H(3391569614,3928383900),new H(3515267271,566280711),new H(3940187606,3454069534),new H(4118630271,4000239992),new H(116418474,1914138554),new H(174292421,2731055270),new H(289380356,3203993006),new H(460393269,320620315),new H(685471733,587496836),new H(852142971,1086792851),new H(1017036298,365543100),new H(1126000580,2618297676),new H(1288033470,3409855158),new H(1501505948,4234509866),new H(1607167915,987167468),new H(1816402316,1246189591)];function c(l,d,h,u=!1){let p,f,m,x,g,b,v,y;u?(p=new H(3418070365,3238371032),f=new H(1654270250,914150663),m=new H(2438529370,812702999),x=new H(355462360,4144912697),g=new H(1731405415,4290775857),b=new H(2394180231,1750603025),v=new H(3675008525,1694076839),y=new H(1203062813,3204075428)):(p=new H(1779033703,4089235720),f=new H(3144134277,2227873595),m=new H(1013904242,4271175723),x=new H(2773480762,1595750129),g=new H(1359893119,2917565137),b=new H(2600822924,725511199),v=new H(528734635,4215389547),y=new H(1541459225,327033209));let F=Math.ceil((h+17)/128)*128,D=new Uint8Array(F),C,k;for(C=0;C<h;++C)D[C]=l[d++];D[C++]=128;let E=F-16;for(;C<E;)D[C++]=0;D[C++]=0,D[C++]=0,D[C++]=0,D[C++]=0,D[C++]=0,D[C++]=0,D[C++]=0,D[C++]=0,D[C++]=0,D[C++]=0,D[C++]=0,D[C++]=h>>>29&255,D[C++]=h>>21&255,D[C++]=h>>13&255,D[C++]=h>>5&255,D[C++]=h<<3&255;let B=new Array(80);for(C=0;C<80;C++)B[C]=new H(0,0);let S=new H(0,0),A=new H(0,0),L=new H(0,0),I=new H(0,0),N=new H(0,0),q=new H(0,0),U=new H(0,0),Z=new H(0,0),O=new H(0,0),z=new H(0,0),R=new H(0,0),M=new H(0,0),ne;for(C=0;C<F;){for(k=0;k<16;++k)B[k].high=D[C]<<24|D[C+1]<<16|D[C+2]<<8|D[C+3],B[k].low=D[C+4]<<24|D[C+5]<<16|D[C+6]<<8|D[C+7],C+=8;for(k=16;k<80;++k)ne=B[k],s(ne,B[k-2],M),ne.add(B[k-7]),o(R,B[k-15],M),ne.add(R),ne.add(B[k-16]);for(S.assign(p),A.assign(f),L.assign(m),I.assign(x),N.assign(g),q.assign(b),U.assign(v),Z.assign(y),k=0;k<80;++k)O.assign(Z),r(R,N,M),O.add(R),e(R,N,q,U,M),O.add(R),O.add(a[k]),O.add(B[k]),i(z,S,M),t(R,S,A,L,M),z.add(R),ne=Z,Z=U,U=q,q=N,I.add(O),N=I,I=L,L=A,A=S,ne.assign(O),ne.add(z),S=ne;p.add(S),f.add(A),m.add(L),x.add(I),g.add(N),b.add(q),v.add(U),y.add(Z)}let oe;return u?(oe=new Uint8Array(48),p.copyTo(oe,0),f.copyTo(oe,8),m.copyTo(oe,16),x.copyTo(oe,24),g.copyTo(oe,32),b.copyTo(oe,40)):(oe=new Uint8Array(64),p.copyTo(oe,0),f.copyTo(oe,8),m.copyTo(oe,16),x.copyTo(oe,24),g.copyTo(oe,32),b.copyTo(oe,40),v.copyTo(oe,48),y.copyTo(oe,56)),oe}return c}();function Qk(n,e,t){return Fw(n,e,t,!0)}var _p=class{decryptBlock(e){return e}encrypt(e){return e}},Nc=class n{constructor(){if(this.constructor===n)throw new Error("Cannot initialize AESBaseCipher.");this._s=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),this._inv_s=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),this._mix=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]),this._mixCol=new Uint8Array(256);for(let e=0;e<256;e++)e<128?this._mixCol[e]=e<<1:this._mixCol[e]=e<<1^27;this.buffer=new Uint8Array(16),this.bufferPosition=0}_expandKey(e){throw new Error("Cannot call `_expandKey` on the base class")}_decrypt(e,t){let i,r,o,s=new Uint8Array(16);s.set(e);for(let a=0,c=this._keySize;a<16;++a,++c)s[a]^=t[c];for(let a=this._cyclesOfRepetition-1;a>=1;--a){i=s[13],s[13]=s[9],s[9]=s[5],s[5]=s[1],s[1]=i,i=s[14],r=s[10],s[14]=s[6],s[10]=s[2],s[6]=i,s[2]=r,i=s[15],r=s[11],o=s[7],s[15]=s[3],s[11]=i,s[7]=r,s[3]=o;for(let c=0;c<16;++c)s[c]=this._inv_s[s[c]];for(let c=0,l=a*16;c<16;++c,++l)s[c]^=t[l];for(let c=0;c<16;c+=4){let l=this._mix[s[c]],d=this._mix[s[c+1]],h=this._mix[s[c+2]],u=this._mix[s[c+3]];i=l^d>>>8^d<<24^h>>>16^h<<16^u>>>24^u<<8,s[c]=i>>>24&255,s[c+1]=i>>16&255,s[c+2]=i>>8&255,s[c+3]=i&255}}i=s[13],s[13]=s[9],s[9]=s[5],s[5]=s[1],s[1]=i,i=s[14],r=s[10],s[14]=s[6],s[10]=s[2],s[6]=i,s[2]=r,i=s[15],r=s[11],o=s[7],s[15]=s[3],s[11]=i,s[7]=r,s[3]=o;for(let a=0;a<16;++a)s[a]=this._inv_s[s[a]],s[a]^=t[a];return s}_encrypt(e,t){let i=this._s,r,o,s,a=new Uint8Array(16);a.set(e);for(let c=0;c<16;++c)a[c]^=t[c];for(let c=1;c<this._cyclesOfRepetition;c++){for(let l=0;l<16;++l)a[l]=i[a[l]];s=a[1],a[1]=a[5],a[5]=a[9],a[9]=a[13],a[13]=s,s=a[2],o=a[6],a[2]=a[10],a[6]=a[14],a[10]=s,a[14]=o,s=a[3],o=a[7],r=a[11],a[3]=a[15],a[7]=s,a[11]=o,a[15]=r;for(let l=0;l<16;l+=4){let d=a[l+0],h=a[l+1],u=a[l+2],p=a[l+3];r=d^h^u^p,a[l+0]^=r^this._mixCol[d^h],a[l+1]^=r^this._mixCol[h^u],a[l+2]^=r^this._mixCol[u^p],a[l+3]^=r^this._mixCol[p^d]}for(let l=0,d=c*16;l<16;++l,++d)a[l]^=t[d]}for(let c=0;c<16;++c)a[c]=i[a[c]];s=a[1],a[1]=a[5],a[5]=a[9],a[9]=a[13],a[13]=s,s=a[2],o=a[6],a[2]=a[10],a[6]=a[14],a[10]=s,a[14]=o,s=a[3],o=a[7],r=a[11],a[3]=a[15],a[7]=s,a[11]=o,a[15]=r;for(let c=0,l=this._keySize;c<16;++c,++l)a[c]^=t[l];return a}_decryptBlock2(e,t){let i=e.length,r=this.buffer,o=this.bufferPosition,s=[],a=this.iv;for(let d=0;d<i;++d){if(r[o]=e[d],++o,o<16)continue;let h=this._decrypt(r,this._key);for(let u=0;u<16;++u)h[u]^=a[u];a=r,s.push(h),r=new Uint8Array(16),o=0}if(this.buffer=r,this.bufferLength=o,this.iv=a,s.length===0)return new Uint8Array(0);let c=16*s.length;if(t){let d=s[s.length-1],h=d[15];if(h<=16){for(let u=15,p=16-h;u>=p;--u)if(d[u]!==h){h=0;break}c-=h,s[s.length-1]=d.subarray(0,16-h)}}let l=new Uint8Array(c);for(let d=0,h=0,u=s.length;d<u;++d,h+=16)l.set(s[d],h);return l}decryptBlock(e,t,i){let r=e.length,o=this.buffer,s=this.bufferPosition;if(i)this.iv=i;else{for(let a=0;s<16&&a<r;++a,++s)o[s]=e[a];if(s<16)return this.bufferLength=s,new Uint8Array(0);this.iv=o,e=e.subarray(16)}return this.buffer=new Uint8Array(16),this.bufferLength=0,this.decryptBlock=this._decryptBlock2,this.decryptBlock(e,t)}encrypt(e,t){let i=e.length,r=this.buffer,o=this.bufferPosition,s=[];t||(t=new Uint8Array(16));for(let l=0;l<i;++l){if(r[o]=e[l],++o,o<16)continue;for(let h=0;h<16;++h)r[h]^=t[h];let d=this._encrypt(r,this._key);t=d,s.push(d),r=new Uint8Array(16),o=0}if(this.buffer=r,this.bufferLength=o,this.iv=t,s.length===0)return new Uint8Array(0);let a=16*s.length,c=new Uint8Array(a);for(let l=0,d=0,h=s.length;l<h;++l,d+=16)c.set(s[l],d);return c}},lu=class extends Nc{constructor(e){super(),this._cyclesOfRepetition=10,this._keySize=160,this._rcon=new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]),this._key=this._expandKey(e)}_expandKey(e){let i=this._s,r=this._rcon,o=new Uint8Array(176);o.set(e);for(let s=16,a=1;s<176;++a){let c=o[s-3],l=o[s-2],d=o[s-1],h=o[s-4];c=i[c],l=i[l],d=i[d],h=i[h],c^=r[a];for(let u=0;u<4;++u)o[s]=c^=o[s-16],s++,o[s]=l^=o[s-16],s++,o[s]=d^=o[s-16],s++,o[s]=h^=o[s-16],s++}return o}},Yo=class extends Nc{constructor(e){super(),this._cyclesOfRepetition=14,this._keySize=224,this._key=this._expandKey(e)}_expandKey(e){let i=this._s,r=new Uint8Array(240);r.set(e);let o=1,s=0,a=0,c=0,l=0;for(let d=32,h=1;d<240;++h){d%32===16?(s=i[s],a=i[a],c=i[c],l=i[l]):d%32===0&&(s=r[d-3],a=r[d-2],c=r[d-1],l=r[d-4],s=i[s],a=i[a],c=i[c],l=i[l],s^=o,(o<<=1)>=256&&(o=(o^27)&255));for(let u=0;u<4;++u)r[d]=s^=r[d-32],d++,r[d]=a^=r[d-32],d++,r[d]=c^=r[d-32],d++,r[d]=l^=r[d-32],d++}return r}},Qp=class{checkOwnerPassword(e,t,i,r){let o=new Uint8Array(e.length+56);o.set(e,0),o.set(t,e.length),o.set(i,e.length+t.length);let s=pa(o,0,o.length);return hs(s,r)}checkUserPassword(e,t,i){let r=new Uint8Array(e.length+8);r.set(e,0),r.set(t,e.length);let o=pa(r,0,r.length);return hs(o,i)}getOwnerKey(e,t,i,r){let o=new Uint8Array(e.length+56);o.set(e,0),o.set(t,e.length),o.set(i,e.length+t.length);let s=pa(o,0,o.length);return new Yo(s).decryptBlock(r,!1,new Uint8Array(16))}getUserKey(e,t,i){let r=new Uint8Array(e.length+8);r.set(e,0),r.set(t,e.length);let o=pa(r,0,r.length);return new Yo(o).decryptBlock(i,!1,new Uint8Array(16))}},$p=class{calculatePDF20Hash(e,t,i){let r=pa(t,0,t.length).subarray(0,32),o=new Uint8Array([0]),s=0;for(;s<64||o[o.length-1]>s-32;){let a=e.length+r.length+i.length,c=new Uint8Array(a),l=0;c.set(e,l),l+=e.length,c.set(r,l),l+=r.length,c.set(i,l);let d=new Uint8Array(a*64);for(let p=0,f=0;p<64;p++,f+=a)d.set(c,f);o=new lu(r.subarray(0,16)).encrypt(d,r.subarray(16,32));let u=o.slice(0,16).reduce((p,f)=>p+f,0)%3;u===0?r=pa(o,0,o.length):u===1?r=Qk(o,0,o.length):u===2&&(r=Fw(o,0,o.length)),s++}return r.subarray(0,32)}hash(e,t,i){return this.calculatePDF20Hash(e,t,i)}checkOwnerPassword(e,t,i,r){let o=new Uint8Array(e.length+56);o.set(e,0),o.set(t,e.length),o.set(i,e.length+t.length);let s=this.calculatePDF20Hash(e,o,i);return hs(s,r)}checkUserPassword(e,t,i){let r=new Uint8Array(e.length+8);r.set(e,0),r.set(t,e.length);let o=this.calculatePDF20Hash(e,r,new Uint8Array);return hs(o,i)}getOwnerKey(e,t,i,r){let o=new Uint8Array(e.length+56);o.set(e,0),o.set(t,e.length),o.set(i,e.length+t.length);let s=this.calculatePDF20Hash(e,o,i);return new Yo(s).decryptBlock(r,!1,new Uint8Array(16))}getUserKey(e,t,i){let r=new Uint8Array(e.length+8);r.set(e,0),r.set(t,e.length);let o=this.calculatePDF20Hash(e,r,new Uint8Array);return new Yo(o).decryptBlock(i,!1,new Uint8Array(16))}},cu=class{constructor(e,t){this.StringCipherConstructor=e,this.StreamCipherConstructor=t}createStream(e,t){let i=this.StreamCipherConstructor();return new ww(e,function(o,s){return i.decryptBlock(o,s)},t)}decryptString(e){let t=this.StringCipherConstructor(),i=cs(e);return i=t.decryptBlock(i,!0),xn(i)}decryptBytes(e){return this.StringCipherConstructor().decryptBlock(e,!0)}encryptString(e){let t=this.StringCipherConstructor();if(t instanceof Nc){let o=16-e.length%16;e+=String.fromCharCode(o).repeat(o);let s=new Uint8Array(16);if(typeof crypto!="undefined")crypto.getRandomValues(s);else for(let l=0;l<16;l++)s[l]=Math.floor(256*Math.random());let a=cs(e);a=t.encrypt(a,s);let c=new Uint8Array(16+a.length);return c.set(s),c.set(a,16),xn(c)}let i=cs(e);return i=t.encrypt(i),xn(i)}},du=class{constructor(e,t,i){var r,o;this.defaultPasswordBytes=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]),this.identityName=w.of("Identity");let s=e.get(w.of("Filter"));if(s.asString()!=="/Standard")throw new Error("unknown encryption method");this.filterName=s.asString(),this.dict=e;let a=e.get(w.of("V")).asNumber();if(!Number.isInteger(a)||a!==1&&a!==2&&a!==4&&a!==5)throw new Error("unsupported encryption algorithm");this.algorithm=a;let c=(r=e.get(w.of("Length")))===null||r===void 0?void 0:r.asNumber();if(!c)if(a<=3)c=40;else{let b=e.get(w.of("CF")),v=e.get(w.of("StmF"));if(b instanceof G&&v instanceof w){b.suppressEncryption=!0;let y=b.get(w.of(v.asString())),F=null;y&&(F=y.get(w.of("Length"))),c=F&&F.asNumber()||128,c<40&&(c<<=3)}}if(c===void 0||!Number.isInteger(c)||c<40||c%8!==0)throw new Error(`invalid key length: ${c}`);let l=e.get(w.of("O")).asBytes(),d=e.get(w.of("U")).asBytes(),h=l.subarray(0,32),u=d.subarray(0,32),p=e.get(w.of("P")).asNumber(),f=e.get(w.of("R")).asNumber(),m=(a===4||a===5)&&((o=e.get(w.of("EncryptMetadata")))===null||o===void 0?void 0:o.asBoolean())!==!1;this.encryptMetadata=m;let x;if(i){if(f===6)try{i=unescape(encodeURIComponent(i))}catch(b){console.warn("CipherTransformFactory: Unable to convert UTF8 encoded password.")}x=cs(i)}let g;if(a!==5)g=this.prepareKeyData(t,x,h,u,p,f,c,m);else{let b=l.subarray(32,40),v=l.subarray(40,48),y=d.subarray(0,48),F=d.subarray(32,40),D=d.subarray(40,48),C=e.get(w.of("OE")).asBytes(),k=e.get(w.of("UE")).asBytes(),E=e.get(w.of("Perms")).asBytes();g=this.createEncryptionKey20(f,x,h,b,v,y,u,F,D,C,k,E)}if(!g&&!i)throw new Error("NEEDS PASSWORD");if(!g&&i){let b=this.decodeUserPassword(x,h,f,c);g=this.prepareKeyData(t,b,h,u,p,f,c,m)}if(!g)throw new Error("Password incorrect");if(this.encryptionKey=g,a>=4){let b=e.get(w.of("CF"));b instanceof G&&(b.suppressEncryption=!0),this.cf=b,this.stmf=e.get(w.of("StmF"))||this.identityName,this.strf=e.get(w.of("StrF"))||this.identityName,this.eff=e.get(w.of("EFF"))||this.stmf}}createCipherTransform(e,t){if(this.algorithm===4||this.algorithm===5)return new cu(this.buildCipherConstructor(this.cf,this.strf,e,t,this.encryptionKey),this.buildCipherConstructor(this.cf,this.stmf,e,t,this.encryptionKey));let i=this.buildObjectKey(e,t,this.encryptionKey,!1),r=function(){return new qn(i)};return new cu(r,r)}createEncryptionKey20(e,t,i,r,o,s,a,c,l,d,h,u){if(t){let f=Math.min(127,t.length);t=t.subarray(0,f)}else t=new Uint8Array;let p;return e===6?p=new $p:p=new Qp,p.checkUserPassword(t,c,a)?p.getUserKey(t,l,h):t.length&&p.checkOwnerPassword(t,r,s,i)?p.getOwnerKey(t,o,s,d):null}prepareKeyData(e,t,i,r,o,s,a,c){let l=40+i.length+e.length,d=new Uint8Array(l),h=0,u,p;if(t)for(p=Math.min(32,t.length);h<p;++h)d[h]=t[h];for(u=0;h<32;)d[h++]=this.defaultPasswordBytes[u++];for(u=0,p=i.length;u<p;++u)d[h++]=i[u];for(d[h++]=o&255,d[h++]=o>>8&255,d[h++]=o>>16&255,d[h++]=o>>>24&255,u=0,p=e.length;u<p;++u)d[h++]=e[u];s>=4&&!c&&(d[h++]=255,d[h++]=255,d[h++]=255,d[h++]=255);let f=fa(d,0,h),m=a>>3;if(s>=3)for(u=0;u<50;++u)f=fa(f,0,m);let x=f.subarray(0,m),g,b;if(s>=3){for(h=0;h<32;++h)d[h]=this.defaultPasswordBytes[h];for(u=0,p=e.length;u<p;++u)d[h++]=e[u];g=new qn(x),b=g.encryptBlock(fa(d,0,h)),p=x.length;let v=new Uint8Array(p);for(u=1;u<=19;++u){for(let y=0;y<p;++y)v[y]=x[y]^u;g=new qn(v),b=g.encryptBlock(b)}for(u=0,p=b.length;u<p;++u)if(r[u]!==b[u])return null}else for(g=new qn(x),b=g.encryptBlock(this.defaultPasswordBytes),u=0,p=b.length;u<p;++u)if(r[u]!==b[u])return null;return x}decodeUserPassword(e,t,i,r){let o=new Uint8Array(32),s=0,a=Math.min(32,e.length);for(;s<a;++s)o[s]=e[s];let c=0;for(;s<32;)o[s++]=this.defaultPasswordBytes[c++];let l=fa(o,0,s),d=r>>3;if(i>=3)for(c=0;c<50;++c)l=fa(l,0,l.length);let h,u;if(i>=3){u=t;let p=new Uint8Array(d);for(c=19;c>=0;c--){for(let f=0;f<d;++f)p[f]=l[f]^c;h=new qn(p),u=h.encryptBlock(u)}}else h=new qn(l.subarray(0,d)),u=h.encryptBlock(t);return u}buildObjectKey(e,t,i,r=!1){let o=new Uint8Array(i.length+9),s=i.length,a;for(a=0;a<s;++a)o[a]=i[a];return o[a++]=e&255,o[a++]=e>>8&255,o[a++]=e>>16&255,o[a++]=t&255,o[a++]=t>>8&255,r&&(o[a++]=115,o[a++]=65,o[a++]=108,o[a++]=84),fa(o,0,a).subarray(0,Math.min(i.length+5,16))}buildCipherConstructor(e,t,i,r,o){if(!(t instanceof w))throw new Error("Invalid crypt filter name.");let s=e.get(w.of(t.asString().replace("/",""))),a;if(s!=null&&(a=s.get(w.of("CFM"))),!a||a.asString()==="/None")return function(){return new _p};if(a.asString()==="/V2")return()=>new qn(this.buildObjectKey(i,r,o,!1));if(a.asString()==="/AESV2")return()=>new lu(this.buildObjectKey(i,r,o,!0));if(a.asString()==="/AESV3")return()=>new Yo(o);throw new Error("Unknown crypto method")}};var je=class n{static async load(e,t={}){let{ignoreEncryption:i=!1,parseSpeed:r=Mc.Slow,throwOnInvalidObject:o=!1,warnOnInvalidObjects:s=!1,updateMetadata:a=!0,capNumbers:c=!1,password:l}=t;T(e,"pdf",["string",Uint8Array,ArrayBuffer]),T(i,"ignoreEncryption",["boolean"]),T(r,"parseSpeed",["number"]),T(o,"throwOnInvalidObject",["boolean"]),T(s,"warnOnInvalidObjects",["boolean"]),T(l,"password",["string","undefined"]);let d=Qr(e),h=await ac.forBytesWithOptions(d,r,o,c).parseDocument();if(h.lookup(h.trailerInfo.Encrypt)&&l!==void 0){let u=h.lookup(h.trailerInfo.ID,X),p=h.lookup(h.trailerInfo.Encrypt,G),f=await ac.forBytesWithOptions(d,r,o,s,c,new du(p,u.get(0).asBytes(),l)).parseDocument();return new n(f,!0,a)}else return new n(h,i,a)}static async create(e={}){let{updateMetadata:t=!0}=e,i=fo.create(),r=wr.withContext(i),o=i.register(r),s=vr.withContextAndPages(i,o);return i.trailerInfo.Root=i.register(s),new n(i,!1,t)}constructor(e,t,i){if(this.defaultWordBreaks=[" "],this.computePages=()=>{let r=[];return this.catalog.Pages().traverse((o,s)=>{if(o instanceof $e){let a=this.pageMap.get(o);a||(a=Be.of(o,s,this),this.pageMap.set(o,a)),r.push(a)}}),r},this.getOrCreateForm=()=>{let r=this.catalog.getOrCreateAcroForm();return zn.of(r,this)},T(e,"context",[[fo,"PDFContext"]]),T(t,"ignoreEncryption",["boolean"]),this.context=e,this.catalog=e.lookup(e.trailerInfo.Root),e.lookup(e.trailerInfo.Encrypt)&&e.isDecrypted&&delete e.trailerInfo.Encrypt,this.isEncrypted=!!e.lookup(e.trailerInfo.Encrypt),this.pageCache=ht.populatedBy(this.computePages),this.pageMap=new Map,this.formCache=ht.populatedBy(this.getOrCreateForm),this.fonts=[],this.images=[],this.embeddedPages=[],this.embeddedFiles=[],this.javaScripts=[],!t&&this.isEncrypted)throw new Ko;i&&this.updateInfoDict()}registerFontkit(e){this.fontkit=e}getForm(){let e=this.formCache.access();return e.hasXFA()&&(console.warn("Removing XFA form data as pdf-lib does not support reading or writing XFA"),e.deleteXFA()),e}getTitle(){let e=this.getInfoDict().lookup(w.Title);if(e)return Wn(e),e.decodeText()}getAuthor(){let e=this.getInfoDict().lookup(w.Author);if(e)return Wn(e),e.decodeText()}getSubject(){let e=this.getInfoDict().lookup(w.Subject);if(e)return Wn(e),e.decodeText()}getKeywords(){let e=this.getInfoDict().lookup(w.Keywords);if(e)return Wn(e),e.decodeText()}getCreator(){let e=this.getInfoDict().lookup(w.Creator);if(e)return Wn(e),e.decodeText()}getProducer(){let e=this.getInfoDict().lookup(w.Producer);if(e)return Wn(e),e.decodeText()}getLanguage(){let e=this.catalog.get(w.of("Lang"));if(e)return Wn(e),e.decodeText()}getCreationDate(){let e=this.getInfoDict().lookup(w.CreationDate);if(e)return Wn(e),e.decodeDate()}getModificationDate(){let e=this.getInfoDict().lookup(w.ModDate);if(e)return Wn(e),e.decodeDate()}setTitle(e,t){T(e,"title",["string"]);let i=w.of("Title");this.getInfoDict().set(i,j.fromText(e)),t!=null&&t.showInWindowTitleBar&&this.catalog.getOrCreateViewerPreferences().setDisplayDocTitle(!0)}setAuthor(e){T(e,"author",["string"]);let t=w.of("Author");this.getInfoDict().set(t,j.fromText(e))}setSubject(e){T(e,"author",["string"]);let t=w.of("Subject");this.getInfoDict().set(t,j.fromText(e))}setKeywords(e){T(e,"keywords",[Array]);let t=w.of("Keywords");this.getInfoDict().set(t,j.fromText(e.join(" ")))}setCreator(e){T(e,"creator",["string"]);let t=w.of("Creator");this.getInfoDict().set(t,j.fromText(e))}setProducer(e){T(e,"creator",["string"]);let t=w.of("Producer");this.getInfoDict().set(t,j.fromText(e))}setLanguage(e){T(e,"language",["string"]);let t=w.of("Lang");this.catalog.set(t,ee.of(e))}setCreationDate(e){T(e,"creationDate",[[Date,"Date"]]);let t=w.of("CreationDate");this.getInfoDict().set(t,ee.fromDate(e))}setModificationDate(e){T(e,"modificationDate",[[Date,"Date"]]);let t=w.of("ModDate");this.getInfoDict().set(t,ee.fromDate(e))}getPageCount(){return this.pageCount===void 0&&(this.pageCount=this.getPages().length),this.pageCount}getPages(){return this.pageCache.access()}getPage(e){let t=this.getPages();return xt(e,"index",0,t.length-1),t[e]}getPageIndices(){return M0(0,this.getPageCount())}removePage(e){let t=this.getPageCount();if(this.pageCount===0)throw new Ec;xt(e,"index",0,t-1),this.catalog.removeLeafNode(e),this.pageCount=t-1}addPage(e){return T(e,"page",["undefined",[Be,"PDFPage"],Array]),this.insertPage(this.getPageCount(),e)}insertPage(e,t){let i=this.getPageCount();if(xt(e,"index",0,i),T(t,"page",["undefined",[Be,"PDFPage"],Array]),!t||Array.isArray(t)){let o=Array.isArray(t)?t:Xo.A4;t=Be.create(this),t.setSize(...o)}else if(t.doc!==this)throw new Sc;let r=this.catalog.insertLeafNode(t.ref,e);return t.node.setParent(r),this.pageMap.set(t.node,t),this.pageCache.invalidate(),this.pageCount=i+1,t}async copyPages(e,t){T(e,"srcDoc",[[n,"PDFDocument"]]),T(t,"indices",[Array]),await e.flush();let i=zl.for(e.context,this.context),r=e.getPages(),o=t.map(s=>r[s]).map(async s=>i.copy(s.node)).map(s=>s.then(a=>Be.of(a,this.context.register(a),this)));return Promise.all(o)}async copy(){let e=await n.create(),t=await e.copyPages(this,this.getPageIndices());for(let i=0,r=t.length;i<r;i++)e.addPage(t[i]);return this.getAuthor()!==void 0&&e.setAuthor(this.getAuthor()),this.getCreationDate()!==void 0&&e.setCreationDate(this.getCreationDate()),this.getCreator()!==void 0&&e.setCreator(this.getCreator()),this.getLanguage()!==void 0&&e.setLanguage(this.getLanguage()),this.getModificationDate()!==void 0&&e.setModificationDate(this.getModificationDate()),this.getProducer()!==void 0&&e.setProducer(this.getProducer()),this.getSubject()!==void 0&&e.setSubject(this.getSubject()),this.getTitle()!==void 0&&e.setTitle(this.getTitle()),e.defaultWordBreaks=this.defaultWordBreaks,e}addJavaScript(e,t){T(e,"name",["string"]),T(t,"script",["string"]);let i=yw.for(t,e),r=this.context.nextRef(),o=Un.of(r,this,i);this.javaScripts.push(o)}async attach(e,t,i={}){T(e,"attachment",["string",Uint8Array,ArrayBuffer]),T(t,"name",["string"]),V(i.mimeType,"mimeType",["string"]),V(i.description,"description",["string"]),V(i.creationDate,"options.creationDate",[Date]),V(i.modificationDate,"options.modificationDate",[Date]),mt(i.afRelationship,"options.afRelationship",Rs);let r=Qr(e),o=jd.for(r,t,i),s=this.context.nextRef(),a=Zo.of(s,this,o);this.embeddedFiles.push(a)}async embedFont(e,t={}){let{subset:i=!1,customName:r,features:o}=t;T(e,"font",["string",Uint8Array,ArrayBuffer]),T(i,"subset",["boolean"]);let s;if(Ld(e))s=Dr.for(e,r);else if(R0(e)){let l=Qr(e),d=this.assertFontkit();s=i?await Wd.for(d,l,r,o):await Pr.for(d,l,r,o)}else throw new TypeError("`font` must be one of `StandardFonts | string | Uint8Array | ArrayBuffer`");let a=this.context.nextRef(),c=Oe.of(a,this,s);return this.fonts.push(c),c}embedStandardFont(e,t){if(T(e,"font",["string"]),!Ld(e))throw new TypeError("`font` must be one of type `StandardFonts`");let i=Dr.for(e,t),r=this.context.nextRef(),o=Oe.of(r,this,i);return this.fonts.push(o),o}async embedJpg(e){T(e,"jpg",["string",Uint8Array,ArrayBuffer]);let t=Qr(e),i=await Hs.for(t),r=this.context.nextRef(),o=xi.of(r,this,i);return this.images.push(o),o}async embedPng(e){T(e,"png",["string",Uint8Array,ArrayBuffer]);let t=Qr(e),i=await Us.for(t),r=this.context.nextRef(),o=xi.of(r,this,i);return this.images.push(o),o}async embedSvg(e){if(!e)return new ui(e);let t=(0,hu.parse)(e),i=s=>s.tagName==="image"?[s]:s.childNodes.map(a=>a.nodeType===hu.NodeType.ELEMENT_NODE?i(a):[]).flat(),r=i(t),o={};return await Promise.all(r.map(async s=>{var a;let c=(a=s.attributes.href)!==null&&a!==void 0?a:s.attributes["xlink:href"];if(!c||o[c])return;let d=c.match(/\.png(\?|$)|^data:image\/png;base64/gim)?await this.embedPng(c):await this.embedJpg(c);o[c]=d})),new ui(e,o)}async embedPdf(e,t=[0]){T(e,"pdf",["string",Uint8Array,ArrayBuffer,[n,"PDFDocument"]]),T(t,"indices",[Array]);let i=e instanceof n?e:await n.load(e),r=N0(i.getPages(),t);return this.embedPages(r)}async embedPage(e,t,i){T(e,"page",[[Be,"PDFPage"]]);let[r]=await this.embedPages([e],[t],[i]);return r}async embedPages(e,t=[],i=[]){if(e.length===0)return[];for(let a=0,c=e.length-1;a<c;a++){let l=e[a],d=e[a+1];if(l.node.context!==d.node.context)throw new bl}let r=e[0].node.context,o=r===this.context?a=>a:zl.for(r,this.context).copy,s=new Array(e.length);for(let a=0,c=e.length;a<c;a++){let l=o(e[a].node),d=t[a],h=i[a],u=await Ws.for(l,d,h),p=this.context.nextRef();s[a]=zi.of(p,this,u)}return this.embeddedPages.push(...s),s}encrypt(e){this.context.security=Mh.create(this.context,e).encrypt()}async flush(){await this.embedAll(this.fonts),await this.embedAll(this.images),await this.embedAll(this.embeddedPages),await this.embedAll(this.embeddedFiles),await this.embedAll(this.javaScripts)}async save(e={}){let{useObjectStreams:t=!0,addDefaultPage:i=!0,objectsPerTick:r=50,updateFieldAppearances:o=!0}=e;if(T(t,"useObjectStreams",["boolean"]),T(i,"addDefaultPage",["boolean"]),T(r,"objectsPerTick",["number"]),T(o,"updateFieldAppearances",["boolean"]),i&&this.getPageCount()===0&&this.addPage(),o){let a=this.formCache.getValue();a&&a.updateFieldAppearances()}return await this.flush(),(t?Ud:As).forContext(this.context,r).serializeToBuffer()}async saveAsBase64(e={}){let{dataUri:t=!1,...i}=e;T(t,"dataUri",["boolean"]);let r=await this.save(i),o=P0(r);return t?`data:application/pdf;base64,${o}`:o}findPageForAnnotationRef(e){let t=this.getPages();for(let i=0,r=t.length;i<r;i++){let o=t[i],s=o.node.Annots();if((s==null?void 0:s.indexOf(e))!==void 0)return o}}async embedAll(e){for(let t=0,i=e.length;t<i;t++)await e[t].embed()}updateInfoDict(){let e="pdf-lib (https://github.com/Hopding/pdf-lib)",t=new Date,i=this.getInfoDict();this.setProducer(e),this.setModificationDate(t),i.get(w.of("Creator"))||this.setCreator(e),i.get(w.of("CreationDate"))||this.setCreationDate(t)}getInfoDict(){let e=this.context.lookup(this.context.trailerInfo.Info);if(e instanceof G)return e;let t=this.context.obj({});return this.context.trailerInfo.Info=this.context.register(t),t}assertFontkit(){if(!this.fontkit)throw new Cc;return this.fontkit}};function Wn(n){if(!(n instanceof j)&&!(n instanceof ee))throw new $i([j,ee],n)}var Be=class{constructor(e,t,i){this.fontSize=24,this.fontColor=fe(0,0,0),this.lineHeight=24,this.x=0,this.y=0,T(e,"leafNode",[[$e,"PDFPageLeaf"]]),T(t,"ref",[[Y,"PDFRef"]]),T(i,"doc",[[je,"PDFDocument"]]),this.node=e,this.ref=t,this.doc=i}setRotation(e){let t=Nn(e);ul(t,"degreesAngle",90),this.node.set(w.of("Rotate"),this.doc.context.obj(t))}getRotation(){let e=this.node.Rotate();return $(e?e.asNumber():0)}setSize(e,t){T(e,"width",["number"]),T(t,"height",["number"]);let i=this.getMediaBox();this.setMediaBox(i.x,i.y,e,t);let r=this.getCropBox(),o=this.getBleedBox(),s=this.getTrimBox(),a=this.getArtBox(),c=this.node.CropBox(),l=this.node.BleedBox(),d=this.node.TrimBox(),h=this.node.ArtBox();c&&Ps(r,i)&&this.setCropBox(i.x,i.y,e,t),l&&Ps(o,i)&&this.setBleedBox(i.x,i.y,e,t),d&&Ps(s,i)&&this.setTrimBox(i.x,i.y,e,t),h&&Ps(a,i)&&this.setArtBox(i.x,i.y,e,t)}setWidth(e){T(e,"width",["number"]),this.setSize(e,this.getSize().height)}setHeight(e){T(e,"height",["number"]),this.setSize(this.getSize().width,e)}setMediaBox(e,t,i,r){T(e,"x",["number"]),T(t,"y",["number"]),T(i,"width",["number"]),T(r,"height",["number"]);let o=this.doc.context.obj([e,t,e+i,t+r]);this.node.set(w.MediaBox,o)}setCropBox(e,t,i,r){T(e,"x",["number"]),T(t,"y",["number"]),T(i,"width",["number"]),T(r,"height",["number"]);let o=this.doc.context.obj([e,t,e+i,t+r]);this.node.set(w.CropBox,o)}setBleedBox(e,t,i,r){T(e,"x",["number"]),T(t,"y",["number"]),T(i,"width",["number"]),T(r,"height",["number"]);let o=this.doc.context.obj([e,t,e+i,t+r]);this.node.set(w.BleedBox,o)}setTrimBox(e,t,i,r){T(e,"x",["number"]),T(t,"y",["number"]),T(i,"width",["number"]),T(r,"height",["number"]);let o=this.doc.context.obj([e,t,e+i,t+r]);this.node.set(w.TrimBox,o)}setArtBox(e,t,i,r){T(e,"x",["number"]),T(t,"y",["number"]),T(i,"width",["number"]),T(r,"height",["number"]);let o=this.doc.context.obj([e,t,e+i,t+r]);this.node.set(w.ArtBox,o)}getSize(){let{width:e,height:t}=this.getMediaBox();return{width:e,height:t}}getWidth(){return this.getSize().width}getHeight(){return this.getSize().height}getMediaBox(){return this.node.MediaBox().asRectangle()}getCropBox(){var e;let t=this.node.CropBox();return(e=t==null?void 0:t.asRectangle())!==null&&e!==void 0?e:this.getMediaBox()}getBleedBox(){var e;let t=this.node.BleedBox();return(e=t==null?void 0:t.asRectangle())!==null&&e!==void 0?e:this.getCropBox()}getTrimBox(){var e;let t=this.node.TrimBox();return(e=t==null?void 0:t.asRectangle())!==null&&e!==void 0?e:this.getCropBox()}getArtBox(){var e;let t=this.node.ArtBox();return(e=t==null?void 0:t.asRectangle())!==null&&e!==void 0?e:this.getCropBox()}translateContent(e,t){T(e,"x",["number"]),T(t,"y",["number"]),this.node.normalize(),this.getContentStream();let i=this.createContentStream(ze(),Tt(e,t)),r=this.doc.context.register(i),o=this.createContentStream(Ue()),s=this.doc.context.register(o);this.node.wrapContentStreams(r,s)}scale(e,t){T(e,"x",["number"]),T(t,"y",["number"]),this.setSize(this.getWidth()*e,this.getHeight()*t),this.scaleContent(e,t),this.scaleAnnotations(e,t)}scaleContent(e,t){T(e,"x",["number"]),T(t,"y",["number"]),this.node.normalize(),this.getContentStream();let i=this.createContentStream(ze(),Er(e,t)),r=this.doc.context.register(i),o=this.createContentStream(Ue()),s=this.doc.context.register(o);this.node.wrapContentStreams(r,s)}scaleAnnotations(e,t){T(e,"x",["number"]),T(t,"y",["number"]);let i=this.node.Annots();if(i)for(let r=0;r<i.size();r++){let o=i.lookup(r);o instanceof G&&this.scaleAnnot(o,e,t)}}resetPosition(){this.getContentStream(!1),this.x=0,this.y=0}setFont(e){T(e,"font",[[Oe,"PDFFont"]]),this.font=e,this.fontKey=this.node.newFontDictionary(this.font.name,this.font.ref)}setFontSize(e){T(e,"fontSize",["number"]),this.fontSize=e}setFontColor(e){T(e,"fontColor",[[Object,"Color"]]),this.fontColor=e}setLineHeight(e){T(e,"lineHeight",["number"]),this.lineHeight=e}getPosition(){return{x:this.x,y:this.y}}getX(){return this.x}getY(){return this.y}moveTo(e,t){T(e,"x",["number"]),T(t,"y",["number"]),this.x=e,this.y=t}moveDown(e){T(e,"yDecrease",["number"]),this.y-=e}moveUp(e){T(e,"yIncrease",["number"]),this.y+=e}moveLeft(e){T(e,"xDecrease",["number"]),this.x-=e}moveRight(e){T(e,"xIncrease",["number"]),this.x+=e}pushOperators(...e){hl(e,"operator",[[ae,"PDFOperator"]]),this.getContentStream().push(...e)}drawText(e,t={}){var i,r,o,s,a,c,l;T(e,"text",["string"]),V(t.color,"options.color",[[Object,"Color"]]),Vt(t.opacity,"opacity.opacity",0,1),V(t.font,"options.font",[[Oe,"PDFFont"]]),V(t.size,"options.size",["number"]),V(t.rotate,"options.rotate",[[Object,"Rotation"]]),V(t.xSkew,"options.xSkew",[[Object,"Rotation"]]),V(t.ySkew,"options.ySkew",[[Object,"Rotation"]]),V(t.x,"options.x",["number"]),V(t.y,"options.y",["number"]),V(t.lineHeight,"options.lineHeight",["number"]),V(t.maxWidth,"options.maxWidth",["number"]),V(t.wordBreaks,"options.wordBreaks",[Array]),mt(t.blendMode,"options.blendMode",Ne),V(t.strokeColor,"options.strokeColor",[[Object,"Color"]]),V(t.strokeWidth,"options.strokeWidth",["number"]),V(t.renderMode,"options.renderMode",["number"]);let{oldFont:d,newFont:h,newFontKey:u}=this.setOrEmbedFont(t.font),p=t.size||this.fontSize,f=t.wordBreaks||this.doc.defaultWordBreaks,m=y=>h.widthOfTextAtSize(y,p),x=t.maxWidth===void 0?Ha(nr(e)):T0(e,f,t.maxWidth,m),g=new Array(x.length);for(let y=0,F=x.length;y<F;y++)g[y]=h.encodeText(x[y]);let b=this.maybeEmbedGraphicsState({opacity:t.opacity,blendMode:t.blendMode});this.getContentStream().push(...Np(g,{color:(i=t.color)!==null&&i!==void 0?i:this.fontColor,font:u,size:p,rotate:(r=t.rotate)!==null&&r!==void 0?r:$(0),xSkew:(o=t.xSkew)!==null&&o!==void 0?o:$(0),ySkew:(s=t.ySkew)!==null&&s!==void 0?s:$(0),x:(a=t.x)!==null&&a!==void 0?a:this.x,y:(c=t.y)!==null&&c!==void 0?c:this.y,lineHeight:(l=t.lineHeight)!==null&&l!==void 0?l:this.lineHeight,graphicsState:b,matrix:t.matrix,clipSpaces:t.clipSpaces,strokeColor:t.strokeColor,strokeWidth:t.strokeWidth,renderMode:t.renderMode})),t.font&&(d?this.setFont(d):this.resetFont())}drawImage(e,t={}){var i,r,o,s,a,c,l;T(e,"image",[[xi,"PDFImage"]]),V(t.x,"options.x",["number"]),V(t.y,"options.y",["number"]),V(t.width,"options.width",["number"]),V(t.height,"options.height",["number"]),V(t.rotate,"options.rotate",[[Object,"Rotation"]]),V(t.xSkew,"options.xSkew",[[Object,"Rotation"]]),V(t.ySkew,"options.ySkew",[[Object,"Rotation"]]),Vt(t.opacity,"opacity.opacity",0,1),mt(t.blendMode,"options.blendMode",Ne);let d=this.node.newXObject("Image",e.ref),h=this.maybeEmbedGraphicsState({opacity:t.opacity,blendMode:t.blendMode});this.getContentStream().push(...kc(d,{x:(i=t.x)!==null&&i!==void 0?i:this.x,y:(r=t.y)!==null&&r!==void 0?r:this.y,width:(o=t.width)!==null&&o!==void 0?o:e.size().width,height:(s=t.height)!==null&&s!==void 0?s:e.size().height,rotate:(a=t.rotate)!==null&&a!==void 0?a:$(0),xSkew:(c=t.xSkew)!==null&&c!==void 0?c:$(0),ySkew:(l=t.ySkew)!==null&&l!==void 0?l:$(0),graphicsState:h,matrix:t.matrix,clipSpaces:t.clipSpaces}))}drawPage(e,t={}){var i,r,o,s,a;T(e,"embeddedPage",[[zi,"PDFEmbeddedPage"]]),V(t.x,"options.x",["number"]),V(t.y,"options.y",["number"]),V(t.xScale,"options.xScale",["number"]),V(t.yScale,"options.yScale",["number"]),V(t.width,"options.width",["number"]),V(t.height,"options.height",["number"]),V(t.rotate,"options.rotate",[[Object,"Rotation"]]),V(t.xSkew,"options.xSkew",[[Object,"Rotation"]]),V(t.ySkew,"options.ySkew",[[Object,"Rotation"]]),Vt(t.opacity,"opacity.opacity",0,1),mt(t.blendMode,"options.blendMode",Ne);let c=this.node.newXObject("EmbeddedPdfPage",e.ref),l=this.maybeEmbedGraphicsState({opacity:t.opacity,blendMode:t.blendMode}),d=t.width!==void 0?t.width/e.width:t.xScale!==void 0?t.xScale:1,h=t.height!==void 0?t.height/e.height:t.yScale!==void 0?t.yScale:1;this.getContentStream().push(...Rp(c,{x:(i=t.x)!==null&&i!==void 0?i:this.x,y:(r=t.y)!==null&&r!==void 0?r:this.y,xScale:d,yScale:h,rotate:(o=t.rotate)!==null&&o!==void 0?o:$(0),xSkew:(s=t.xSkew)!==null&&s!==void 0?s:$(0),ySkew:(a=t.ySkew)!==null&&a!==void 0?a:$(0),graphicsState:l}))}drawSvgPath(e,t={}){var i,r,o,s,a,c,l,d,h;T(e,"path",["string"]),V(t.x,"options.x",["number"]),V(t.y,"options.y",["number"]),V(t.scale,"options.scale",["number"]),V(t.rotate,"options.rotate",[[Object,"Rotation"]]),V(t.borderWidth,"options.borderWidth",["number"]),V(t.color,"options.color",[[Object,"Color"]]),Vt(t.opacity,"opacity.opacity",0,1),V(t.borderColor,"options.borderColor",[[Object,"Color"]]),V(t.borderDashArray,"options.borderDashArray",[Array]),V(t.borderDashPhase,"options.borderDashPhase",["number"]),mt(t.borderLineCap,"options.borderLineCap",hi),Vt(t.borderOpacity,"options.borderOpacity",0,1),mt(t.blendMode,"options.blendMode",Ne),mt(t.fillRule,"options.fillRule",sn);let u=this.maybeEmbedGraphicsState({opacity:t.opacity,borderOpacity:t.borderOpacity,blendMode:t.blendMode});!("color"in t)&&!("borderColor"in t)&&(t.borderColor=fe(0,0,0)),this.getContentStream().push(...nu(e,{x:(i=t.x)!==null&&i!==void 0?i:this.x,y:(r=t.y)!==null&&r!==void 0?r:this.y,scale:t.scale,rotate:(o=t.rotate)!==null&&o!==void 0?o:$(0),color:(s=t.color)!==null&&s!==void 0?s:void 0,borderColor:(a=t.borderColor)!==null&&a!==void 0?a:void 0,borderWidth:(c=t.borderWidth)!==null&&c!==void 0?c:0,borderDashArray:(l=t.borderDashArray)!==null&&l!==void 0?l:void 0,borderDashPhase:(d=t.borderDashPhase)!==null&&d!==void 0?d:void 0,borderLineCap:(h=t.borderLineCap)!==null&&h!==void 0?h:void 0,graphicsState:u,fillRule:t.fillRule,matrix:t.matrix,clipSpaces:t.clipSpaces}))}drawLine(e){var t,i,r,o,s;T(e.start,"options.start",[[Object,"{ x: number, y: number }"]]),T(e.end,"options.end",[[Object,"{ x: number, y: number }"]]),T(e.start.x,"options.start.x",["number"]),T(e.start.y,"options.start.y",["number"]),T(e.end.x,"options.end.x",["number"]),T(e.end.y,"options.end.y",["number"]),V(e.thickness,"options.thickness",["number"]),V(e.color,"options.color",[[Object,"Color"]]),V(e.dashArray,"options.dashArray",[Array]),V(e.dashPhase,"options.dashPhase",["number"]),mt(e.lineCap,"options.lineCap",hi),Vt(e.opacity,"opacity.opacity",0,1),mt(e.blendMode,"options.blendMode",Ne);let a=this.maybeEmbedGraphicsState({borderOpacity:e.opacity,blendMode:e.blendMode});"color"in e||(e.color=fe(0,0,0)),this.getContentStream().push(...Vp({start:e.start,end:e.end,thickness:(t=e.thickness)!==null&&t!==void 0?t:1,color:(i=e.color)!==null&&i!==void 0?i:void 0,dashArray:(r=e.dashArray)!==null&&r!==void 0?r:void 0,dashPhase:(o=e.dashPhase)!==null&&o!==void 0?o:void 0,lineCap:(s=e.lineCap)!==null&&s!==void 0?s:void 0,graphicsState:a,matrix:e.matrix,clipSpaces:e.clipSpaces}))}drawRectangle(e={}){var t,i,r,o,s,a,c,l,d,h,u,p,f,m,x;V(e.x,"options.x",["number"]),V(e.y,"options.y",["number"]),V(e.width,"options.width",["number"]),V(e.height,"options.height",["number"]),V(e.rotate,"options.rotate",[[Object,"Rotation"]]),V(e.xSkew,"options.xSkew",[[Object,"Rotation"]]),V(e.ySkew,"options.ySkew",[[Object,"Rotation"]]),V(e.borderWidth,"options.borderWidth",["number"]),V(e.color,"options.color",[[Object,"Color"]]),Vt(e.opacity,"options.opacity",0,1),V(e.rx,"options.rx",["number"]),V(e.ry,"options.ry",["number"]),V(e.borderColor,"options.borderColor",[[Object,"Color"]]),V(e.borderDashArray,"options.borderDashArray",[Array]),V(e.borderDashPhase,"options.borderDashPhase",["number"]),mt(e.borderLineCap,"options.borderLineCap",hi),Vt(e.borderOpacity,"options.borderOpacity",0,1),mt(e.blendMode,"options.blendMode",Ne);let g=this.maybeEmbedGraphicsState({opacity:e.opacity,borderOpacity:e.borderOpacity,blendMode:e.blendMode});!("color"in e)&&!("borderColor"in e)&&(e.color=fe(0,0,0)),this.getContentStream().push(...Br({x:(t=e.x)!==null&&t!==void 0?t:this.x,y:(i=e.y)!==null&&i!==void 0?i:this.y,width:(r=e.width)!==null&&r!==void 0?r:150,height:(o=e.height)!==null&&o!==void 0?o:100,rotate:(s=e.rotate)!==null&&s!==void 0?s:$(0),xSkew:(a=e.xSkew)!==null&&a!==void 0?a:$(0),ySkew:(c=e.ySkew)!==null&&c!==void 0?c:$(0),borderWidth:(l=e.borderWidth)!==null&&l!==void 0?l:0,color:(d=e.color)!==null&&d!==void 0?d:void 0,rx:(h=e.rx)!==null&&h!==void 0?h:0,ry:(u=e.ry)!==null&&u!==void 0?u:0,borderColor:(p=e.borderColor)!==null&&p!==void 0?p:void 0,borderDashArray:(f=e.borderDashArray)!==null&&f!==void 0?f:void 0,borderDashPhase:(m=e.borderDashPhase)!==null&&m!==void 0?m:void 0,graphicsState:g,borderLineCap:(x=e.borderLineCap)!==null&&x!==void 0?x:void 0,matrix:e.matrix,clipSpaces:e.clipSpaces}))}drawSquare(e={}){let{size:t}=e;V(t,"size",["number"]),this.drawRectangle({...e,width:t,height:t})}drawEllipse(e={}){var t,i,r,o,s,a,c,l,d,h,u;V(e.x,"options.x",["number"]),V(e.y,"options.y",["number"]),V(e.xScale,"options.xScale",["number"]),V(e.yScale,"options.yScale",["number"]),V(e.rotate,"options.rotate",[[Object,"Rotation"]]),V(e.color,"options.color",[[Object,"Color"]]),Vt(e.opacity,"opacity.opacity",0,1),V(e.borderColor,"options.borderColor",[[Object,"Color"]]),Vt(e.borderOpacity,"options.borderOpacity",0,1),V(e.borderWidth,"options.borderWidth",["number"]),V(e.borderDashArray,"options.borderDashArray",[Array]),V(e.borderDashPhase,"options.borderDashPhase",["number"]),mt(e.borderLineCap,"options.borderLineCap",hi),mt(e.blendMode,"options.blendMode",Ne);let p=this.maybeEmbedGraphicsState({opacity:e.opacity,borderOpacity:e.borderOpacity,blendMode:e.blendMode});!("color"in e)&&!("borderColor"in e)&&(e.color=fe(0,0,0)),this.getContentStream().push(...Dc({x:(t=e.x)!==null&&t!==void 0?t:this.x,y:(i=e.y)!==null&&i!==void 0?i:this.y,xScale:(r=e.xScale)!==null&&r!==void 0?r:100,yScale:(o=e.yScale)!==null&&o!==void 0?o:100,rotate:(s=e.rotate)!==null&&s!==void 0?s:void 0,color:(a=e.color)!==null&&a!==void 0?a:void 0,borderColor:(c=e.borderColor)!==null&&c!==void 0?c:void 0,borderWidth:(l=e.borderWidth)!==null&&l!==void 0?l:0,borderDashArray:(d=e.borderDashArray)!==null&&d!==void 0?d:void 0,borderDashPhase:(h=e.borderDashPhase)!==null&&h!==void 0?h:void 0,borderLineCap:(u=e.borderLineCap)!==null&&u!==void 0?u:void 0,graphicsState:p,matrix:e.matrix,clipSpaces:e.clipSpaces}))}drawCircle(e={}){let{size:t=100}=e;V(t,"size",["number"]),this.drawEllipse({...e,xScale:t,yScale:t})}setOrEmbedFont(e){let t=this.font,i=this.fontKey;e?this.setFont(e):this.getFont();let r=this.font,o=this.fontKey;return{oldFont:t,oldFontKey:i,newFont:r,newFontKey:o}}drawSvg(e,t={}){var i,r;T(e,"svg",["string",[ui,"PDFSvg"]]),V(t.x,"options.x",["number"]),V(t.y,"options.y",["number"]),V(t.width,"options.width",["number"]),V(t.height,"options.height",["number"]),mt(t.blendMode,"options.blendMode",Ne),fw(this,e,{x:(i=t.x)!==null&&i!==void 0?i:this.x,y:(r=t.y)!==null&&r!==void 0?r:this.y,fonts:t.fonts,width:t.width,height:t.height,blendMode:t.blendMode})}getFont(){if(!this.font||!this.fontKey){let e=this.doc.embedStandardFont(Go.Helvetica);this.setFont(e)}return[this.font,this.fontKey]}resetFont(){this.font=void 0,this.fontKey=void 0}getContentStream(e=!0){return e&&this.contentStream?this.contentStream:(this.contentStream=this.createContentStream(),this.contentStreamRef=this.doc.context.register(this.contentStream),this.node.addContentStream(this.contentStreamRef),this.contentStream)}createContentStream(...e){let t=this.doc.context.obj({});return tn.of(t,e)}maybeEmbedGraphicsState(e){let{opacity:t,borderOpacity:i,blendMode:r}=e;if(t===void 0&&i===void 0&&r===void 0)return;let o=this.doc.context.obj({Type:"ExtGState",ca:t,CA:i,BM:r});return this.node.newExtGState("GS",o)}scaleAnnot(e,t,i){let r=["RD","CL","Vertices","QuadPoints","L","Rect"];for(let s=0,a=r.length;s<a;s++){let c=e.lookup(w.of(r[s]));c instanceof X&&c.scalePDFNumbers(t,i)}let o=e.lookup(w.of("InkList"));if(o instanceof X)for(let s=0,a=o.size();s<a;s++){let c=o.lookup(s);c instanceof X&&c.scalePDFNumbers(t,i)}}};Be.of=(n,e,t)=>new Be(n,e,t);Be.create=n=>{T(n,"doc",[[je,"PDFDocument"]]);let e=Y.of(-1),t=$e.withContextAndParent(n.context,e),i=n.context.register(t);return new Be(t,i,n)};var Di=class extends at{constructor(e,t,i){super(e,t,i),T(e,"acroButton",[[Bn,"PDFAcroPushButton"]]),this.acroField=e}setImage(e,t=bi.Center){let i=this.acroField.getWidgets();for(let r=0,o=i.length;r<o;r++){let s=i[r],a=this.createImageAppearanceStream(s,e,t);this.updateWidgetAppearances(s,{normal:a})}this.markAsClean()}setFontSize(e){Fn(e,"fontSize"),this.acroField.setFontSize(e),this.markAsDirty()}addToPage(e,t,i){var r,o,s,a,c,l,d,h,u,p,f;V(e,"text",["string"]),V(t,"page",[[Be,"PDFPage"]]),yi(i);let m=this.createWidget({x:((r=i==null?void 0:i.x)!==null&&r!==void 0?r:0)-((o=i==null?void 0:i.borderWidth)!==null&&o!==void 0?o:0)/2,y:((s=i==null?void 0:i.y)!==null&&s!==void 0?s:0)-((a=i==null?void 0:i.borderWidth)!==null&&a!==void 0?a:0)/2,width:(c=i==null?void 0:i.width)!==null&&c!==void 0?c:100,height:(l=i==null?void 0:i.height)!==null&&l!==void 0?l:50,textColor:(d=i==null?void 0:i.textColor)!==null&&d!==void 0?d:fe(0,0,0),backgroundColor:(h=i==null?void 0:i.backgroundColor)!==null&&h!==void 0?h:fe(.75,.75,.75),borderColor:i==null?void 0:i.borderColor,borderWidth:(u=i==null?void 0:i.borderWidth)!==null&&u!==void 0?u:0,rotate:(p=i==null?void 0:i.rotate)!==null&&p!==void 0?p:$(0),caption:e,hidden:i==null?void 0:i.hidden,page:t.ref}),x=this.doc.context.register(m.dict);this.acroField.addWidget(x);let g=(f=i==null?void 0:i.font)!==null&&f!==void 0?f:this.doc.getForm().getDefaultFont();this.updateWidgetAppearance(m,g),t.node.addAnnot(x)}needsAppearancesUpdate(){var e;if(this.isDirty())return!0;let t=this.acroField.getWidgets();for(let i=0,r=t.length;i<r;i++)if(!(((e=t[i].getAppearances())===null||e===void 0?void 0:e.normal)instanceof Te))return!0;return!1}defaultUpdateAppearances(e){T(e,"font",[[Oe,"PDFFont"]]),this.updateAppearances(e)}updateAppearances(e,t){T(e,"font",[[Oe,"PDFFont"]]),V(t,"provider",[Function]);let i=this.acroField.getWidgets();for(let r=0,o=i.length;r<o;r++){let s=i[r];this.updateWidgetAppearance(s,e,t)}}updateWidgetAppearance(e,t,i){let r=i!=null?i:Kp,o=Zt(r(this,e,t));this.updateWidgetAppearanceWithFont(e,t,o)}};Di.of=(n,e,t)=>new Di(n,e,t);function it(n,e){let t=Object.keys(e).map(i=>$k(n,i,e[i]));return t.length===1?t[0]:function(){t.forEach(i=>i())}}function $k(n,e,t){let i=n[e],r=n.hasOwnProperty(e),o=r?i:function(){return Object.getPrototypeOf(n)[e].apply(this,arguments)},s=t(o);return i&&Object.setPrototypeOf(s,i),Object.setPrototypeOf(a,s),n[e]=a,c;function a(...l){return s===o&&n[e]===a&&c(),s.apply(this,l)}function c(){n[e]===a&&(r?n[e]=o:delete n[e]),s!==o&&(s=o,Object.setPrototypeOf(a,i||Function))}}var be=require("obsidian");var uu=require("obsidian"),Ke=class extends uu.Modal{constructor(e){super(e.app),this.plugin=e,this.lib=e.lib,this.component=new uu.Component,this.contentEl.addClass("pdf-plus-modal")}onOpen(){this.component.load()}onClose(){this.contentEl.empty(),this.component.unload()}};var fn=require("obsidian");var Ig={};v0(Ig,{BidirectionalMultiValuedMap:()=>zc,CommandSuggest:()=>Hc,FuzzyFileSuggest:()=>Vc,FuzzyFolderSuggest:()=>Nr,FuzzyInputSuggest:()=>Mr,FuzzyMarkdownFileSuggest:()=>Rc,MODIFIERS:()=>xg,MultiValuedMap:()=>Qt,MutationObservingChild:()=>Wc,areOverlapping:()=>Eg,areOverlappingStrictly:()=>Tg,binarySearch:()=>hn,binarySearchForRangeStartingWith:()=>Sg,camelCaseToKebabCase:()=>fg,capitalize:()=>oC,cropCanvas:()=>rg,dispatchMouseEvent:()=>lg,doubleClick:()=>gu,encodeLinktext:()=>Rr,evalInContext:()=>Ag,findReferenceCache:()=>Dg,focusObsidian:()=>Xc,formatAnnotationID:()=>Gc,genId:()=>pg,getAndroidWebViewVersion:()=>kw,getBorderRadius:()=>ng,getCJKRegexp:()=>Ew,getCharacterBoundingBoxes:()=>Pw,getCharactersWithBoundingBoxesInPDFCoords:()=>mg,getDirectPDFObj:()=>lt,getEventCoords:()=>pu,getFirstTextNodeIn:()=>aC,getInstallerVersion:()=>yu,getModifierDictInPlatform:()=>bg,getModifierNameInPlatform:()=>Bt,getNodeAndOffsetOfTextPos:()=>Kn,getObsidianDebugInfo:()=>wg,getObsidianDefaultHighlightColorRGB:()=>eC,getOffsetInTextLayerNode:()=>xu,getPathSeparator:()=>lC,getStyleSettings:()=>Fg,getSubpathWithoutHash:()=>kg,getSystemInfo:()=>Cw,getTextLayerInfo:()=>Ft,getTextLayerNode:()=>mu,getWordAt:()=>sC,hexToRgb:()=>Or,hookInternalLinkMouseEventHandlers:()=>Jo,hover:()=>iC,isAncestorOf:()=>Cg,isCanvas:()=>xa,isEmbed:()=>Qo,isHexString:()=>cn,isHoverEditor:()=>Sw,isHoverPopover:()=>ba,isModifierName:()=>yg,isMouseEventExternal:()=>Pi,isNonEmbedLike:()=>Gn,isSelectionForward:()=>un,isTargetElement:()=>Dw,isTargetHTMLElement:()=>It,isTargetNode:()=>Uc,isTypable:()=>og,isVersionNewerThan:()=>ga,isVersionOlderThan:()=>vg,kebabCaseToCamelCase:()=>rC,loadComponentAsync:()=>Tw,matchModifiers:()=>cg,onModKeyPress:()=>ag,paramsToSubpath:()=>Kc,parsePDFSubpath:()=>_o,pdfJsQuadPointsToArrayOfRects:()=>ug,range:()=>gg,registerCharacterKeymap:()=>cC,removeExtension:()=>Pg,repeat:()=>es,repeatable:()=>ya,rgbStringToObject:()=>ig,rgbToHex:()=>tg,rotateCanvas:()=>fu,selectDoubleClickedWord:()=>dg,selectTrippleClickedTextLayerNode:()=>hg,showChildElOnParentElHover:()=>qc,showMenuUnderParentEl:()=>jn,stringCompare:()=>$o,subpathToParams:()=>ma,swapSelectionAnchorAndFocus:()=>jc,toPDFCoords:()=>bu,toSingleLine:()=>Zc,walkDescendantComponents:()=>vu});var wt=require("obsidian");function cn(n){return n.length===7&&n.startsWith("#")}function Or(n){let e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function tg(n){let{r:e,g:t,b:i}=n;return"#"+(1<<24|e<<16|t<<8|i).toString(16).slice(1)}function ig(n){let[e,t,i]=n.split(",").map(r=>parseInt(r.trim()));return{r:e,g:t,b:i}}function eC(){let[n,e,t]=getComputedStyle(document.body).getPropertyValue("--text-highlight-bg-rgb").split(",").map(i=>parseInt(i.trim()));return{r:n,g:e,b:t}}function ng(){let n=getComputedStyle(document.body).getPropertyValue("--radius-s");if(n.endsWith("px")){let e=parseInt(n.slice(0,-2));if(!isNaN(e))return e}return 0}var _t=require("obsidian"),tC={blurOnSelect:!0,closeOnSelect:!0},Mr=class extends _t.AbstractInputSuggest{constructor(e,t,i){super(e,t),this.inputEl=t,this.options=Object.assign(tC,i)}getSuggestions(e){let t=(0,_t.prepareFuzzySearch)(e.trim()),i=this.getItems(),r=[];for(let o of i){let s=t(this.getItemText(o));s&&r.push({match:s,item:o})}return(0,_t.sortSearchResults)(r),r}renderSuggestion(e,t){(0,_t.renderResults)(t,this.getItemText(e.item),e.match)}selectSuggestion(e,t){super.selectSuggestion(e,t),this.inputEl.value=this.getItemText(e.item),this.options.blurOnSelect&&this.inputEl.blur(),this.options.closeOnSelect&&this.close()}},Rc=class extends Mr{getItems(){return this.app.vault.getMarkdownFiles()}getItemText(e){return e.path}},Vc=class extends Mr{getItems(){return this.app.vault.getFiles()}getItemText(e){return e.path}},Nr=class extends Mr{getItems(){return this.app.vault.getAllLoadedFiles().filter(e=>e instanceof _t.TFolder)}getItemText(e){return e.path}},Hc=class extends _t.AbstractInputSuggest{constructor(e,t){super(e.plugin.app,t),this.inputEl=t,this.plugin=e.plugin,this.tab=e}getSuggestions(e){let t=(0,_t.prepareFuzzySearch)(e),i=Object.values(this.plugin.app.commands.commands),r=[];for(let o of i){let s=t(o.name);s&&r.push({match:s,command:o})}return(0,_t.sortSearchResults)(r),r.map(({command:o})=>o)}renderSuggestion(e,t){t.setText(e.name)}selectSuggestion(e){this.inputEl.blur(),this.plugin.settings.commandToExecuteWhenTargetNotIdentified=e.id,this.inputEl.value=e.name,this.close(),this.plugin.saveSettings(),this.tab.redisplay()}};var Qt=class{constructor(){this.map=new Map}addValue(e,t){let i=this.map.get(e);i||(i=new Set,this.map.set(e,i)),i.add(t)}get(e){var t;return(t=this.map.get(e))!=null?t:new Set}delete(e){this.map.delete(e)}deleteValue(e,t){let i=this.map.get(e);i&&(i.delete(t),i.size===0&&this.map.delete(e))}has(e){return this.map.has(e)&&this.map.get(e).size>0}[Symbol.iterator](){return this.map[Symbol.iterator]()}},zc=class{constructor(){this.keyToValues=new Map;this.valueToKeys=new Map}addValue(e,t){this.keyToValues.has(e)||this.keyToValues.set(e,new Set),this.keyToValues.get(e).add(t),this.valueToKeys.has(t)||this.valueToKeys.set(t,new Set),this.valueToKeys.get(t).add(e)}get(e){var t;return(t=this.keyToValues.get(e))!=null?t:new Set}getKeys(e){var t;return(t=this.valueToKeys.get(e))!=null?t:new Set}delete(e){let t=this.keyToValues.get(e);if(t)for(let i of t){let r=this.valueToKeys.get(i);if(!r)throw new Error("Value has no keys");r.delete(e),r.size===0&&this.valueToKeys.delete(i)}this.keyToValues.delete(e)}deleteValue(e){let t=this.valueToKeys.get(e);if(t)for(let i of t){let r=this.keyToValues.get(i);if(!r)throw new Error("Key has no values");r.delete(e),r.size===0&&this.keyToValues.delete(i)}this.valueToKeys.delete(e)}has(e){return this.keyToValues.has(e)&&this.keyToValues.get(e).size>0}hasValue(e){return this.valueToKeys.has(e)&&this.valueToKeys.get(e).size>0}keys(){return this.keyToValues.keys()}values(){return this.valueToKeys.keys()}};function rg(n,e,t={width:e.width,height:e.height}){let i=createEl("canvas");return i.width=t.width,i.height=t.height,i.getContext("2d").drawImage(n,e.left,e.top,e.width,e.height,0,0,t.width,t.height),i}function fu(n,e){if(e=(e%360+360)%360,![0,90,180,270].includes(e))throw new Error("rotate must be 0, 90, 180, or 270");if(!e)return n;let t=createEl("canvas"),i=t.getContext("2d");return e===90||e===270?(t.width=n.height,t.height=n.width):(t.width=n.width,t.height=n.height),i.translate(t.width/2,t.height/2),i.rotate(e*Math.PI/180),i.drawImage(n,-n.width/2,-n.height/2),t}var dn=require("obsidian");function Jo(n,e,t){e.querySelectorAll("a.internal-link").forEach(i=>{i.addEventListener("click",r=>{r.preventDefault();let o=i.getAttribute("href");o&&n.workspace.openLinkText(o,t,dn.Keymap.isModEvent(r))}),i.addEventListener("mouseover",r=>{r.preventDefault();let o=i.getAttribute("href");o&&n.workspace.trigger("hover-link",{event:r,source:"preview",hoverParent:{hoverPopover:null},targetEl:r.currentTarget,linktext:o,sourcePath:t})})})}function Pi(n,e){return!n.relatedTarget||Dw(n,n.relatedTarget)&&!e.contains(n.relatedTarget)}function og(n){return n.nodeName==="INPUT"||n.instanceOf(HTMLElement)&&n.contentEditable==="true"}function pu(n){return n.instanceOf(MouseEvent)?{x:n.clientX,y:n.clientY}:{x:n.touches[0].clientX,y:n.touches[0].clientY}}function sg(n,e,t){let i=e[t];return n instanceof i}function Uc(n,e){return!!e&&(e instanceof Node||sg(e,n.win,"Node"))}function Dw(n,e){return!!e&&(e instanceof Element||sg(e,n.win,"Element"))}function It(n,e){return!!e&&(e instanceof HTMLElement||sg(e,n.win,"HTMLElement"))}function ag(n,e,t){if(dn.Keymap.isModifier(n,"Mod")){t();return}let i=n.doc,r=!1,o=()=>{r=!0,i.removeEventListener("keydown",s),i.removeEventListener("mouseover",a),i.removeEventListener("mouseleave",c)},s=l=>{r||(i.body.contains(e)?dn.Keymap.isModifier(l,"Mod")&&(o(),t()):o())},a=l=>{r||Uc(l,l.target)&&!e.contains(l.target)&&o()},c=l=>{r||l.target===i&&o()};i.addEventListener("keydown",s),i.addEventListener("mouseover",a),i.addEventListener("mouseleave",c)}function qc(n){let{parentEl:e,createChildEl:t,removeChildEl:i,component:r,timeout:o}=n,s=a=>{if(Pi(a,e)){let c=!0,l=!1,d=t(),h=new dn.Component;r==null||r.addChild(h),h.register(()=>d&&i(d)),h.load();let u=()=>setTimeout(()=>{!c&&!l&&h.unload()},o!=null?o:120),p=f=>{Pi(f,e)&&(c=!1,u())};h.registerDomEvent(e,"mouseout",p),d&&h.registerDomEvent(d,"mouseover",f=>{if(Pi(f,d)){l=!0;let m=x=>{Pi(x,d)&&(l=!1,u())};h.registerDomEvent(d,"mouseout",m)}})}};e.addEventListener("mouseover",s)}function lg(n,e,t){n.dispatchEvent(new MouseEvent(e,{bubbles:!0,...t}))}function gu(n,e){lg(n,"dblclick",e)}function iC(n,e,t){t!=null||(t={}),e&&(t[dn.Platform.isMacOS?"metaKey":"ctrlKey"]=!0);let{x:i,y:r}=n.getBoundingClientRect();lg(n,"mouseover",{doc:n.doc,clientX:i,clientY:r,...t})}var nC=["Mod","Ctrl","Meta","Shift","Alt"];function cg(n,e){return nC.every(t=>e.includes(t)?dn.Keymap.isModifier(n,t):!dn.Keymap.isModifier(n,t))}function dg(n){let e=n.doc,t=e.getSelection();if(!t)return;let i=null;if(e.caretRangeFromPoint)i=e.caretRangeFromPoint(n.clientX,n.clientY);else if(e.caretPositionFromPoint){let r=e.caretPositionFromPoint(n.clientX,n.clientY);if(!r)return;i=e.createRange(),i.setStart(r.offsetNode,r.offset),i.collapse(!0)}i&&(t.removeAllRanges(),t.addRange(i),t.modify("move","backward","word"),t.modify("extend","forward","word"))}function hg(n){if(n.detail<3||!Uc(n,n.target))return;let e=n.target.nodeName==="SPAN"?n.target:n.target.parentElement;if(!e||!e.instanceOf(HTMLSpanElement)||!e.hasClass("textLayerNode"))return;let t=n.win.getSelection();if(!t)return;let i=n.doc.createRange();i.selectNodeContents(e),t.removeAllRanges(),t.addRange(i)}function lt(n,e){let t=n.get(w.of(e));return t instanceof Y?n.context.lookup(t):t}function ug(n){let e=[];if(ArrayBuffer.isView(n)){if(n.length%8)return e;for(let t=0;t<n.length;t+=8){let[i,r,o,s,a,c,l,d]=n.slice(t,t+8),h=Math.min(i,o,a,l),u=Math.max(i,o,a,l),p=Math.min(r,s,c,d),f=Math.max(r,s,c,d);e.push([h,p,u,f])}return e}for(let t of n){let i=t[1],r=t[2],o=[r.x,r.y,i.x,i.y];o=window.pdfjsLib.Util.normalizeRect(o),e.push(o)}return e}function jn(n,e){let{x:t,bottom:i,width:r}=e.getBoundingClientRect();return n.setParentElement(e).showAtPosition({x:t,y:i,width:r,overlap:!0,left:!1}),n}function fg(n){return n.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function rC(n){return n.replace(/(-\w)/g,e=>e[1].toUpperCase())}function oC(n){return n.charAt(0).toUpperCase()+n.slice(1)}function sC(n,e){if(e<0||e>=n.length)return"";let t=Math.max(0,n.slice(0,e+1).search(/(?<=[^\s.,][\s.,]+)[^\s.,]*$/));n=n.slice(t),t=Math.max(0,n.search(/[^\s.,]/)),n=n.slice(t);let i=n.search(/[\s.,]/);return i===-1?n:n.slice(0,i)}function pg(){let n=()=>((1+Math.random())*65536|0).toString(16).substring(1);return n()+n()+"-"+n()+"-"+n()+"-"+n()+"-"+n()+n()+n()}function gg(n,e){return Array.from({length:e-n},(t,i)=>n+i)}function mu(n,e){if(!n.contains(e))return null;if(e.instanceOf(HTMLElement)&&e.hasClass("textLayerNode"))return e;let t=e;for(;t=t.parentNode;){if(t===n)return null;if(t.instanceOf(HTMLElement)&&t.hasClass("textLayerNode"))return t}return null}function xu(n,e,t){if(!n.contains(e))return null;let i=n.doc.createNodeIterator(n,NodeFilter.SHOW_TEXT),r,o=t;for(;(r=i.nextNode())&&e!==r;)o+=r.textContent.length;return o}function Kn(n,e){let t=n.doc.createNodeIterator(n,NodeFilter.SHOW_TEXT),i;for(;(i=t.nextNode())&&e>=i.textContent.length;)e-=i.textContent.length;return i?{node:i,offset:e}:null}function*Pw(n){let e=n.doc.createNodeIterator(n,NodeFilter.SHOW_TEXT),t;for(;t=e.nextNode();)if(t.instanceOf(Text))for(let i=0;i<t.length;i++){let r=t.doc.createRange();r.setStart(t,i),r.setEnd(t,i+1);let o=r.getBoundingClientRect();yield{char:t.textContent[i],rect:o}}}function*bu(n,e){let t=n.div,i=t.win.getComputedStyle(t),r=parseFloat(i.borderTopWidth),o=parseFloat(i.borderLeftWidth),s=parseFloat(i.paddingTop),a=parseFloat(i.paddingLeft),c=t.getBoundingClientRect();for(let{x:l,y:d}of e){let h=l-(c.left+o+a),u=d-(c.top+r+s);yield n.getPagePoint(h,u)}}function*mg(n,e){for(let{char:t,rect:i}of Pw(e))yield{char:t,rect:[...bu(n,[{x:i.left,y:i.bottom},{x:i.right,y:i.top}])].flat()}}function Ft(n){return"textLayer"in n?n.textLayer:n}function aC(n){return n.doc.createNodeIterator(n,NodeFilter.SHOW_TEXT).nextNode()}function jc(n){let{anchorNode:e,anchorOffset:t,focusNode:i,focusOffset:r}=n;e&&i&&n.setBaseAndExtent(i,r,e,t)}var xg=["Mod","Ctrl","Meta","Shift","Alt"];function Bt(n){return n==="Mod"?wt.Platform.isMacOS||wt.Platform.isIosApp?"Command":"Ctrl":n==="Shift"?"Shift":n==="Alt"?wt.Platform.isMacOS||wt.Platform.isIosApp?"Option":"Alt":n==="Meta"?wt.Platform.isMacOS||wt.Platform.isIosApp?"Command":wt.Platform.isWin?"Win":"Meta":"Ctrl"}function bg(){let n={},e=new Set;for(let t of xg){let i=Bt(t);e.has(i)||(e.add(i),n[t]=i)}return n}function yg(n){return xg.includes(n)}function lC(){return wt.Platform.isWin?"\\":"/"}function ga(n,e){return n.localeCompare(e,void 0,{numeric:!0,sensitivity:"base"})===1}function vg(n,e){return ga(e,n)}function yu(){return wt.Platform.isDesktopApp?window.electron.remote.app.getVersion():null}function kw(){if(!wt.Platform.isAndroidApp)return null;if("userAgentData"in navigator&&navigator.userAgentData){let e=navigator.userAgentData.brands.find(t=>t.brand==="Android WebView");if(e)return e.version}let n=navigator.userAgent.match(/Chrome\/([\d]+)/);return n?n[1]:null}async function Cw(){if(window.electron){let r=require("os");return{"Obsidian version":window.electron.ipcRenderer.sendSync("version"),"Installer version":window.electron.remote.app.getVersion(),"Operating system":r.version()+" "+r.release()}}let n=await window.Capacitor.Plugins.App.getInfo(),e=await window.Capacitor.Plugins.Device.getInfo(),t={"Obsidian version":`${n.version} (${n.build})`,"API version":wt.apiVersion,"Operating system":`${e.platform} ${e.osVersion} (${e.manufacturer} ${e.model})`},i=kw();return i&&(t["Android WebView version"]=i),t}async function wg(n){let e=n.customCss.theme,t=n.customCss.themes[e],i=n.customCss.snippets.filter(o=>n.customCss.enabledSnippets.has(o)).length,r=n.plugins.plugins;return{...await Cw(),"Use [[Wikilinks]]":n.vault.getConfig("useMarkdownLinks"),"Base color scheme":document.body.hasClass("theme-dark")?"dark":"light",'PDF "Adapt to theme"':!!n.loadLocalStorage("pdfjs-is-themed"),"Community theme":e?`${e} v${t.version}`:"none","Snippets enabled":i,"Plugins installed":Object.keys(n.plugins.manifests).length,"Plugins enabled":Object.values(r).map(o=>`${o.manifest.name} v${o.manifest.version}`)}}function Fg(n){var i;let e=(i=n.plugins.plugins["obsidian-style-settings"])==null?void 0:i.settingsManager.settings;return e?Object.fromEntries(Object.entries(e).filter(([r])=>r.startsWith("pdf-plus@@"))):null}function Dg(n,e,t){var i,r,o;return(o=(i=n.links)==null?void 0:i.find(s=>e<=s.position.start.offset&&s.position.end.offset<=t))!=null?o:(r=n.embeds)==null?void 0:r.find(s=>e<=s.position.start.offset&&s.position.end.offset<=t)}function Pg(n){let e=n.lastIndexOf(".");return e===-1||e===n.length-1||e===0?n:n.slice(0,e)}function kg(n){let{subpath:e}=(0,wt.parseLinktext)(n);return e.startsWith("#")&&(e=e.slice(1)),e}function ma(n){return n.startsWith("#")&&(n=n.slice(1)),new URLSearchParams(n)}function _o(n){let e=ma(n);if(!e.has("page"))return null;let t=+e.get("page");if(isNaN(t))return null;if(e.has("selection")){let i=e.get("selection").split(",").map(c=>parseInt(c.trim()));if(i.length!==4||i.some(c=>isNaN(c)))return null;let[r,o,s,a]=i;return{type:"selection",page:t,beginIndex:r,beginOffset:o,endIndex:s,endOffset:a}}if(e.has("annotation")){let i=e.get("annotation");return{type:"annotation",page:t,annotation:i}}return{type:"page",page:t}}function Kc(n){return"#"+Object.entries(n).filter(([e,t])=>e&&(t||t===0)).map(([e,t])=>`${e}=${t}`).join("&")}function Gc(n,e){return e===0?`${n}R`:`${n}R${e}`}var Wc=class extends wt.Component{constructor(t,i,r){super();this.targetEl=t;this.callback=i;this.options=r;this.observer=new MutationObserver(i)}onload(){this.observer.observe(this.targetEl,this.options)}onunload(){this.observer.disconnect()}};function Gn(n){return!n.isEmbed&&!Sw(n)}function Qo(n){return n.isEmbed&&!xa(n)&&!ba(n)}function xa(n){var e;return!!((e=n.dom)!=null&&e.containerEl.hasClass("canvas-node-content"))}function ba(n){var e;return!!((e=n.dom)!=null&&e.containerEl.closest(".hover-popover"))}function Sw(n){var e;return!!((e=n.dom)!=null&&e.containerEl.closest(".hover-editor"))}function Xc(){activeWindow.open("obsidian://")}function Cg(n,e,t=!1){if(t&&n===e)return!0;let i=e.parent;for(;i;){if(i===n)return!0;i=i.parent}return!1}function Ew(n){n={japanese:!0,korean:!0,...n};let e="";return e+="\\u4e00-\\u9fff",e+="\\u3400-\\u4dbf",n.japanese&&(e+="\\u3040-\\u309F",e+="\\u30A0-\\u30FF",e+="\\uFF65-\\uFF9F",e+="\\u31F0-\\u31FF",e+="\\u3000-\\u303F"),n.korean&&(e+="\\u1100-\\u11FF",e+="\\uA960-\\uA97F",e+="\\uD7B0-\\uD7FF",e+="\\u3130-\\u318F",e+="\\uAC00-\\uD7AF"),new RegExp(`[${e}]`)}function Zc(n,e=!1){let t=Ew({korean:!1});return n=n.replace(/(.?)([\r\n]+)(.?)/g,(i,r,o,s)=>t.test(r)&&t.test(s)?r+s:r==="-"&&s.match(/[a-zA-Z]/)?s:s?r+" "+s:r),e&&(n=n.replace(new RegExp(`(${t.source}) (?=${t.source})`,"g"),"$1")),window.pdfjsViewer.removeNullCharacters(window.pdfjsLib.normalizeUnicode(n))}function Rr(n){return n.replace(/[\\\x00\x08\x0B\x0C\x0E-\x1F ]/g,e=>encodeURIComponent(e))}function cC(n,e,t){return n.register(null,e,(i,r)=>{if(r.key===e&&r.modifiers!==null&&["","Shift"].includes(r.modifiers))return t(i,r)})}function hn(n,e,t){var a,c,l,d;if(t&&t.findFirst&&t.findLast)throw Error("findFirst and findLast cannot be specified at the same time");let i=(a=t==null?void 0:t.findFirst)!=null?a:!1,r=(c=t==null?void 0:t.findLast)!=null?c:!1,o=(l=t==null?void 0:t.from)!=null?l:0,s=(d=t==null?void 0:t.to)!=null?d:n.length-1;if(o>s)return{found:!1,index:o};for(;;){let h=o+s+ +r>>1,u=n[h],p=e(u,h);if(p===0)if(i&&o<h)s=h;else if(r&&s>h)o=h;else return{found:!0,index:h};else p>0?o=h+1:s=h-1;if(o>s)return{found:!1,index:h+ +(p>0)}}}function $o(n,e){return n===e?0:n<e?-1:1}function Sg(n,e,t,i){let r=a=>$o(e,t(a).slice(0,e.length)),{found:o,index:s}=hn(n,r,{findFirst:!0,...i});if(o){let{index:a}=hn(n,r,{findLast:!0,...i,from:s});return{from:s,to:a}}return null}function Eg(n,e){return n.from<=e.to&&n.to>=e.from}function Tg(n,e){return n.from<e.to&&n.to>e.from}function un(n){return n.anchorNode===n.focusNode?n.anchorOffset<n.focusOffset:n.anchorNode&&n.focusNode&&n.anchorNode.compareDocumentPosition(n.focusNode)===Node.DOCUMENT_POSITION_FOLLOWING}function es(n,e){for(e!=null||(e=1);e--;)n()}function ya(n){return e=>es(n,e)}function Ag(n,e){return new Function(n.includes("await")?"(async () => {"+n+"})()":n).call(e)}function vu(n,e){if(e(n)!==!1)for(let i of n._children)vu(i,e)}async function Tw(n){if(!n._loaded){n._loaded=!0,await n.onload();let e=n._children.map(Tw);await Promise.all(e)}}var wu=class extends Ke{constructor(e,t,i,r){super(e),this.file=t,this.page=i,this.id=r}},Vr=class Vr extends wu{static isSubtypeSupported(e){return Vr.supportedSubtypes.includes(e)}static forSubtype(e,...t){return e==="Link"?Vr.forLinkAnnotation(...t):Vr.forTextMarkupAnnotation(...t)}static forTextMarkupAnnotation(...e){return new Vr({color:!1,opacity:!1,author:!1,contents:!0},...e)}static forLinkAnnotation(...e){return new Vr({color:!0,borderWidth:!0},...e)}constructor(e,...t){super(...t),this.allowNoValue=e,this.supportedKeys=Object.keys(e),this.oldValues={},this.newValues={},this.containerEl.addClass("pdf-plus-annotation-edit-modal"),this.buttonContainerEl=this.modalEl.createDiv(),this.scope.register(["Mod"],"Enter",()=>{this.onSaveButtonClick()})}async readOldValues(){let e=this.lib.highlight.writeFile.pdflib,t=await e.getAnnotation(this.file,this.page,this.id);if(!t)throw new Error(`${this.plugin.manifest.name}: Annotation not found.`);for(let i of this.supportedKeys)switch(i){case"color":this.oldValues.color=e.getColorFromAnnotation(t);break;case"opacity":this.oldValues.opacity=e.getOpacityFromAnnotation(t);break;case"borderWidth":this.oldValues.borderWidth=e.getBorderWidthFromAnnotation(t);break;case"author":this.oldValues.author=e.getAuthorFromAnnotation(t);break;case"contents":this.oldValues.contents=e.getContentsFromAnnotation(t);break}}async writeNewValues(){let e=this.lib.highlight.writeFile.pdflib,t=[];for(let i of this.supportedKeys)switch(i){case"color":if(this.newValues.color&&this.newValues.color!==this.oldValues.color){let r=this.newValues.color;t.push(o=>{e.setColorToAnnotation(o,r),this.lib.getLatestBacklinksForAnnotation(this.file,this.page,this.id).then(s=>{s.forEach(a=>this.lib.composer.linkUpdater.updateLinkColor(a.refCache,a.sourcePath,{type:"rgb",rgb:r},{linktext:!1}))})})}break;case"opacity":typeof this.newValues.opacity=="number"&&this.newValues.opacity!==this.oldValues.opacity&&t.push(r=>{e.setOpacityToAnnotation(r,this.newValues.opacity)});break;case"borderWidth":typeof this.newValues.borderWidth=="number"&&this.newValues.borderWidth!==this.oldValues.borderWidth&&t.push(r=>{e.setBorderWidthToAnnotation(r,this.newValues.borderWidth)});break;case"author":this.newValues.author&&this.newValues.author!==this.oldValues.author&&t.push(r=>{e.setAuthorToAnnotation(r,this.newValues.author)});break;case"contents":typeof this.newValues.contents=="string"&&this.newValues.contents!==this.oldValues.contents&&t.push(r=>{e.setContentsToAnnotation(r,this.newValues.contents)});break}t.length&&await e.processAnnotation(this.file,this.page,this.id,async i=>{t.forEach(r=>r(i))})}addColorSetting(){if(this.oldValues.color||this.allowNoValue.color){let e,t;new fn.Setting(this.contentEl).setName("Color").setDesc("You can choose a color from the color picker or select one from your custom named colors.").addColorPicker(i=>{var r;e=i,e.setValueRgb((r=this.oldValues.color)!=null?r:{r:0,g:0,b:0}).onChange(o=>{let s=Or(o);s&&(this.newValues.color=s,t.setValue(o))})}).addDropdown(i=>{t=i,t.addOptions(Object.fromEntries(Object.entries(this.plugin.settings.colors).map(([r,o])=>[o,r]))).setValue(this.oldValues.color?tg(this.oldValues.color):"").onChange(r=>{let o=Or(r);o&&(this.newValues.color=o,e.setValue(r))})})}}addOpacitySetting(){(this.oldValues.opacity||this.allowNoValue.opacity)&&new fn.Setting(this.contentEl).setName("Opacity").addSlider(e=>{var t;e.setLimits(0,1,.01).setValue((t=this.oldValues.opacity)!=null?t:1).setDynamicTooltip().onChange(i=>{this.newValues.opacity=i})})}addBorderWidthSetting(){(this.oldValues.borderWidth||this.allowNoValue.borderWidth)&&new fn.Setting(this.contentEl).setName("Draw border").addToggle(e=>{var t;e.setValue(!!((t=this.oldValues.borderWidth)==null||t)).onChange(i=>{this.newValues.borderWidth=i?1:0})})}addAuthorSetting(){(this.oldValues.author||this.allowNoValue.author)&&new fn.Setting(this.contentEl).setName("Annotation author").addText(e=>{var t;e.setValue((t=this.oldValues.author)!=null?t:"Author").onChange(i=>{this.newValues.author=i})})}initContentsSetting(){var e;if(this.textarea=null,this.editorEl=null,this.previewEl=null,this.plugin.settings.renderMarkdownInStickyNote){let t=(e=this.app.hotkeyManager.getHotkeys("markdown:toggle-preview"))!=null?e:this.app.hotkeyManager.getDefaultHotkeys("markdown:toggle-preview");if(t&&t.length){let i=t[0];this.scope.register(i.modifiers,i.key,()=>this.togglePreview())}}}addContentsSetting(){(this.oldValues.contents||this.allowNoValue.contents)&&new fn.Setting(this.contentEl).setName("Comment").then(e=>{this.previewEl=e.controlEl.createDiv("preview-container markdown-rendered"),this.plugin.settings.renderMarkdownInStickyNote?e.setDesc(`Press ${this.app.hotkeyManager.printHotkeyForCommand("markdown:toggle-preview")} to toggle preview.`):e.setDesc(createFragment(t=>{let i=createEl("a",{text:'"Render markdown in annotation popups when the annotation has text contents"'},r=>{r.onclick=o=>{let s=this.plugin.openSettingTab();s.scrollTo("renderMarkdownInStickyNote",{behavior:"smooth"}),s.updateHeaderElClassOnScroll(o)}});t.append("Tip: There is an option called "),t.append(i),t.append(".")}))}).addTextArea(e=>{var t;this.textarea=e,this.editorEl=e.inputEl,this.editorEl.addClass("editor-container"),e.inputEl.rows=5,e.inputEl.setCssStyles({width:"100%"}),e.setValue((t=this.oldValues.contents)!=null?t:"").onChange(i=>{this.newValues.contents=i})}),this.showEditor()}addButtons(){new fn.Setting(this.buttonContainerEl).addButton(e=>{e.setButtonText("Save").setCta().onClick(()=>{this.onSaveButtonClick()})}).addButton(e=>{e.setButtonText("Cancel").onClick(()=>this.close())}).setClass("no-border"),this.buttonContainerEl.createDiv({cls:"pdf-plus-annotation-edit-modal-save-instructions",text:`Press ${Bt("Mod")} + Enter to save.`})}onSaveButtonClick(){this.writeNewValues(),this.close()}async onOpen(){super.onOpen(),this.titleEl.setText(`${this.plugin.manifest.name}: edit annotation contents`),await this.readOldValues();for(let e of this.supportedKeys)switch(e){case"color":this.addColorSetting();break;case"opacity":this.addOpacitySetting();break;case"borderWidth":this.addBorderWidthSetting();break;case"author":this.addAuthorSetting();break;case"contents":this.initContentsSetting(),this.addContentsSetting();break}this.addButtons()}async showEditor(){var e,t;(e=this.editorEl)==null||e.show(),(t=this.previewEl)==null||t.hide()}async showPreview(){var e,t;this.editorEl&&this.previewEl&&(this.previewEl.setCssStyles({width:`${this.editorEl.clientWidth}px`,height:`${this.editorEl.clientHeight}px`}),this.previewEl.empty(),await fn.MarkdownRenderer.render(this.app,(t=(e=this.textarea)==null?void 0:e.getValue())!=null?t:"",this.previewEl,"",this.component),Jo(this.app,this.previewEl,this.file.path),this.editorEl.hide(),this.previewEl.show())}async togglePreview(){var e;return(e=this.editorEl)!=null&&e.isShown()?this.showPreview():this.showEditor()}};Vr.supportedSubtypes=["Highlight","Underline","Squiggly","StrikeOut","Link"];var Hr=Vr,va=class extends wu{onOpen(){super.onOpen(),this.titleEl.setText(`${this.plugin.manifest.name}: delete annotation`),this.contentEl.createEl("p",{text:"Are you sure you want to delete this annotation?"}),this.plugin.settings.warnEveryAnnotationDelete||this.contentEl.createEl("p",{cls:"mod-warning",text:"There are one or more links pointing to this annotation."}),new fn.Setting(this.contentEl).addButton(e=>{e.setButtonText("Delete").setWarning().onClick(()=>{this.deleteAnnotation(),this.close()})}).addButton(e=>{e.setButtonText("Cancel").onClick(()=>this.close())}).then(e=>e.setClass("no-border"))}openIfNeccessary(){return this.shouldOpen()?this.open():this.deleteAnnotation()}shouldOpen(){return this.plugin.settings.warnEveryAnnotationDelete||this.plugin.settings.warnBacklinkedAnnotationDelete&&this.lib.isBacklinked(this.file,{page:this.page,annotation:this.id})}deleteAnnotation(){this.lib.highlight.writeFile.deleteAnnotation(this.file,this.page,this.id)}};var wa=require("obsidian");var Yc,zr,Fu=class extends Ke{constructor(t,i,...r){super(...r);mn(this,Yc);mn(this,zr);this.file=t,this.page=i,Ot(this,Yc,new Promise(o=>{Ot(this,zr,o)}))}then(t){return Xe(this,Yc).then(i=>{i&&t()}),this}onOpen(){super.onOpen(),this.titleEl.setText(`${this.plugin.manifest.name}: delete page`),this.contentEl.createEl("p",{text:"Are you sure you want to delete this page?"}),this.plugin.settings.warnEveryAnnotationDelete||this.contentEl.createEl("p",{cls:"mod-warning",text:"There are one or more links pointing to this page."}),new wa.Setting(this.contentEl).addButton(t=>{t.setButtonText("Delete").setWarning().onClick(()=>{Xe(this,zr).call(this,!0),this.close()})}).addButton(t=>{t.setButtonText("Cancel").onClick(()=>{Xe(this,zr).call(this,!1),this.close()})}).then(t=>t.setClass("no-border"))}onClose(){super.onClose(),Xe(this,zr).call(this,!1)}openIfNeccessary(){return this.shouldOpen()?(this.open(),this):(Xe(this,zr).call(this,!0),this)}shouldOpen(){return this.plugin.settings.warnEveryPageDelete||this.plugin.settings.warnBacklinkedPageDelete&&this.lib.isBacklinked(this.file,{page:this.page})}};Yc=new WeakMap,zr=new WeakMap;var _c={keep:"Keep labels unchanged",update:"Update"},Jc,Ur,Xn=class extends Ke{constructor(t,i,r,o,s){super(t);mn(this,Jc);mn(this,Ur);this.askPageLabelUpdateMethod=i,this.defaultMethod=r,this.askInPlace=o,this.defaultInPlace=s,Ot(this,Jc,new Promise(a=>{Ot(this,Ur,a)}))}ask(){return this.askPageLabelUpdateMethod||this.askInPlace?this.open():Xe(this,Ur).call(this,{pageLabelUpdateMethod:this.defaultMethod,inPlace:this.defaultInPlace}),this}then(t){Xe(this,Jc).then(i=>{if(i){let{pageLabelUpdateMethod:r,inPlace:o}=i;t(r==="keep",o)}})}onOpen(){super.onOpen(),this.titleEl.setText(`${this.plugin.manifest.name}: Page composer`);let t=this.defaultMethod,i=this.defaultInPlace;this.askPageLabelUpdateMethod&&new wa.Setting(this.contentEl).setName("Update the page labels?").setDesc(createFragment(r=>{r.createEl("a",{text:"Learn more",href:"https://github.com/RyotaUshio/obsidian-pdf-plus/wiki/Page-labels"})})).addDropdown(r=>{r.addOptions(_c).setValue(t).onChange(o=>{t=o})}),this.askInPlace&&new wa.Setting(this.contentEl).setName("Remove pages from original file?").addToggle(r=>{r.setValue(i).onChange(o=>{i=o})}),new wa.Setting(this.contentEl).addButton(r=>{r.setButtonText("Proceed").setCta().onClick(()=>{(t==="keep"||t==="update")&&Xe(this,Ur).call(this,{pageLabelUpdateMethod:t,inPlace:i}),this.close()}),setTimeout(()=>r.buttonEl.focus())}).addButton(r=>{r.setButtonText("Cancel").onClick(()=>{Xe(this,Ur).call(this,null),this.close()})})}onClose(){super.onClose(),Xe(this,Ur).call(this,null)}};Jc=new WeakMap,Ur=new WeakMap;var Du=class extends Ke{constructor(){super(...arguments);this.pageSize="A4";this.orientation="portrait";this.next=[]}askOptions(){return this.open(),this}onOpen(){super.onOpen(),this.titleEl.setText(`${this.plugin.manifest.name}: Create new PDF`),this.addSetting().setName("Page size").addDropdown(t=>{Object.keys(Xo).forEach(i=>t.addOption(i,i)),t.setValue(this.pageSize).onChange(i=>{Xo.hasOwnProperty(i)&&(this.pageSize=i)})}),this.addSetting().setName("Orientation").addDropdown(t=>{t.addOption("portrait","Portrait").addOption("landscape","Landscape").setValue(this.orientation).onChange(i=>{(i==="portrait"||i==="landscape")&&(this.orientation=i)})}),this.addSetting().addButton(t=>{t.setButtonText("Create").setCta().then(i=>{setTimeout(()=>i.buttonEl.focus())}).onClick(async()=>{this.close();let i=await this.createPDFDocument();this.next.forEach(r=>r(i))})}).addButton(t=>{t.setButtonText("Cancel").onClick(()=>{this.close()})})}addSetting(){return new wa.Setting(this.contentEl)}then(t){return this.next.push(t),this}async createPDFDocument(){let t=await je.create(),[i,r]=Xo[this.pageSize],o=Math.max(i,r),s=Math.min(i,r),a=this.orientation==="portrait"?[s,o]:[o,s];return t.addPage(a),t}};var Qc=require("obsidian"),qr=class extends Ke{constructor(t,i){super(t);this.next=[];this.submitted=!1;this.title=null;this.modalTitle=i,this.component.registerDomEvent(this.modalEl.doc,"keypress",r=>{r.key==="Enter"&&this.submitAndClose()})}presetTitle(t){return this.title=t,this}onOpen(){super.onOpen(),this.titleEl.setText(`${this.plugin.manifest.name}: ${this.modalTitle}`),new Qc.Setting(this.contentEl).setName("Title").addText(t=>{this.title!==null&&(t.setValue(this.title),t.inputEl.select()),t.inputEl.size=30,t.inputEl.id="pdf-plus-outline-title-modal"}),new Qc.Setting(this.contentEl).addButton(t=>{t.setButtonText("Add").setCta().onClick(()=>{this.submitAndClose()})}).addButton(t=>{t.setButtonText("Cancel").onClick(()=>{this.close()})})}ask(){return this.open(),this}then(t){return this.submitted&&this.title!==null?t({title:this.title}):this.next.push(t),this}submitAndClose(){let t=this.contentEl.querySelector("#pdf-plus-outline-title-modal");t instanceof HTMLInputElement&&(this.title=t.value,this.submitted=!0,this.close())}onClose(){this.submitted&&this.title!==null&&this.next.forEach(t=>t({title:this.title}))}},Pu=class extends Qc.FuzzySuggestModal{constructor(t,i){super(t.plugin.app);this.next=[];this.outlines=t,this.plugin=t.plugin,this.items=[],this.outlines.iter({enter:r=>{!i.isAncestorOf(r,!0)&&!r.is(i.parent)&&this.items.push(r)}}),this.setPlaceholder("Type an outline item title")}askDestination(){return this.open(),this}then(t){return this.next.push(t),this}getItems(){return this.items}getItemText(t){return t.name}onChooseItem(t){this.next.forEach(i=>i(t))}};var Aw=require("obsidian"),$t=require("obsidian");var ku=class{constructor(e){this._rootDict=e}get root(){return this.createNode(this._rootDict)}get(e){return this.root.get(e)}iterLeaves(e){this.root.iterLeaves(e)}getLeaves(){return this.root.getLeaves()}iter(e){this.root.iter(e)}[Symbol.iterator](){return this.root[Symbol.iterator]()}keys(){return this.root.keys()}values(){return this.root.values()}limitLeafSize(e){this.root.limitLeafSize(e)}},Fa=class extends ku{createNode(e){return new Bg(e)}},Wr=class extends ku{createNode(e){return new Lg(e)}},Cu=class{constructor(e){this.dict=e}is(e){return this.dict===e.dict}isRoot(){return!this._dictHas("Limits")}isUniqueNode(){return this.isRoot()&&this._dictHas(this.leafKey)}isLeaf(){return this._dictHas("Limits")&&this._dictHas(this.leafKey)}isIntermediate(){return this._dictHas("Limits")&&this._dictHas("Kids")}get kids(){let e=this.dict.get(w.of("Kids"));return e instanceof X?e.asArray().map(t=>{let i=this.dict.context.lookup(t);if(i instanceof G)return new this.constructor(i);throw new Error("Kid is not a PDFDict")}):null}get limits(){let e=this.dict.get(w.of("Limits"));if(!(e instanceof X))return null;if(e.size()!==2)throw new Error("Limits array must have 2 elements");return e.asArray().map(t=>this._toStringOrNumber(t))}get(e){let t=this.getLeafFor(e);if(!t)return null;let i=t._getNamesOrNums();if(!i)throw new Error("Node has no names or nums despite not having kids");let r=0,o=(i.length>>1)-1;for(;r<=o;){let s=r+o>>1,a=i[s*2];if(a===e){let c=i[s*2+1];if(c instanceof ke)return c;throw new Error("Value is not a PDFObject")}a<e?r=s+1:o=s-1}return null}has(e){return!!this.get(e)}[Symbol.iterator](){let e=0,t=0,i=this.getLeaves();return{next:()=>{if(e>=i.length)return{done:!0,value:[]};let o=i[e]._getNamesOrNums();if(!o)throw new Error("Leaf has no names or nums");let s=o[t],a=o[t+1];return t+=2,t>=o.length&&(e++,t=0),{done:!1,value:[s,a]}}}}keys(){return Array.from(this,([e])=>e)}values(){return Array.from(this,([,e])=>e)}size(){let e=0;return this.iterLeaves(t=>{let i=t._getNamesOrNums();if(!i)throw new Error("Leaf has no names or nums");e+=i.length>>1}),e}iterLeaves(e){let t=[this];for(;t.length;){let i=t.shift(),r=i.kids;r?t.push(...r):e(i)}}getLeaves(){let e=[];return this.iterLeaves(t=>e.push(t)),e}sortKids(){let e=this.kids;if(!e)return;e.sort((i,r)=>{let o=i.limits,s=r.limits;if(!o||!s)throw new Error("Kid has no limits");return o[0]<s[0]?-1:o[0]>s[0]?1:0});let t=X.withContext(this.dict.context);for(let i of e)t.push(i.dict);this.dict.set(w.of("Kids"),t)}flatten(){if(this.isUniqueNode()||this.isLeaf())return;let e=X.withContext(this.dict.context);for(let[t,i]of this)e.push(this._toPDFStringOrPDFNumber(t)),e.push(i);this.dict.set(w.of(this.leafKey),e),this.dict.delete(w.of("Kids"))}iter(e){var t,i,r;(t=e.enter)==null||t.call(e,this),(i=this.kids)==null||i.forEach(o=>o.iter(e)),(r=e.leave)==null||r.call(e,this)}limitLeafSize(e){let t=[],i=[],r=()=>{let o=this.dict.context.obj(t),s=t[0],a=t[t.length-2],c=this.dict.context.obj([s,a]),l=this.dict.context.obj({[this.leafKey]:o,Limits:c}),d=this.dict.context.register(l);i.push(d)};for(let[o,s]of this)t.push(o,s),t.length>>1>=e&&(r(),t.length=0);if(t.length&&r(),i.length===1)this.dict.set(w.of(this.leafKey),this.dict.context.obj(t)),this.dict.delete(w.of("Kids")),this.dict.delete(w.of("Limits"));else{let o=this.dict.context.obj(i);this.dict.set(w.of("Kids"),o)}}getLeafFor(e){if(this.isUniqueNode())return this;let t=this.limits;if(t&&(e<t[0]||t[1]<e))return null;let i=this,r=this.kids;for(;r;){if(i=r.find(o=>{let s=o.limits;if(!s)throw new Error("Kid has no limits");return s[0]<=e&&e<=s[1]}),!i)return null;r=i.kids}return i}_dictHas(e){return this.dict.has(w.of(e))}_getNamesOrNums(){let e=this.dict.get(w.of(this.leafKey));return e instanceof X?e.asArray().map((t,i)=>i%2?t:this._toStringOrNumber(t)):null}},Bg=class extends Cu{get leafKey(){return"Names"}_toStringOrNumber(e){if(e instanceof ee||e instanceof j)return e.decodeText();throw new Error("Key is not a PDFString or a PDFHexString")}_toPDFStringOrPDFNumber(e){return j.fromText(e)}get names(){return this._getNamesOrNums()}},Lg=class extends Cu{get leafKey(){return"Nums"}_toStringOrNumber(e){if(e instanceof K)return e.asNumber();throw new Error("Key is not a PDFNumber")}_toPDFStringOrPDFNumber(e){return K.of(e)}get nums(){return this._getNamesOrNums()}};var Og={D:"1, 2, 3, ...",R:"I, II, III, ...",r:"i, ii, iii, ...",A:"A, B, C, ...",a:"a, b, c, ..."};function Mg(n){return Og.hasOwnProperty(n)}var $c=class n{static fromPDFDict(e){let t=new n,i=e.get(w.of("St"));i instanceof K&&(t.start=i.asNumber());let r=e.get(w.of("S"));if(r instanceof w){let s=r.decodeText();Mg(s)&&(t.style=s)}let o=e.get(w.of("P"));return(o instanceof ee||o instanceof j)&&(t.prefix=o.decodeText()),t}},qi=class n{constructor(e,t){this.doc=e;this.ranges=t;this.normalize()}normalize(){var e;if(this.ranges.length){this.ranges.sort((t,i)=>t.pageFrom-i.pageFrom),this.ranges[0].pageFrom=1;for(let t=this.ranges.length-1;t>=0;t--){let i=this.getStartOfRange(t),r=this.getEndOfRange(t);if(i>r){this.ranges.splice(t,1);continue}let o=this.ranges[t],s=this.ranges[t-1];if(s&&typeof o.dict.start=="number"&&o.dict.prefix===s.dict.prefix&&o.dict.style===s.dict.style&&o.pageFrom-s.pageFrom===o.dict.start-((e=s.dict.start)!=null?e:1)){this.ranges.splice(t,1);continue}}}return this}static fromDocument(e){let t=lt(e.catalog,"PageLabels");if(!(t instanceof G))return null;let i=new Wr(t),r=[];for(let[o,s]of i){let a=s instanceof Y?e.context.lookup(s):s;if(!(a instanceof G))return null;r.push({pageFrom:o+1,dict:$c.fromPDFDict(a)})}return new n(e,r)}setToDocument(e){e||(e=this.doc);let t=[];for(let{pageFrom:r,dict:o}of this.normalize().ranges){t.push(r-1);let s={};o.style!==void 0&&(s.S=o.style),o.prefix!==void 0&&(s.P=j.fromText(o.prefix)),o.start!==void 0&&(s.St=o.start),t.push(e.context.obj(s))}let i=e.context.obj({Nums:t});new Wr(i).limitLeafSize(64),e.catalog.set(w.of("PageLabels"),i)}static removeFromDocument(e){e.catalog.delete(w.of("PageLabels"))}static processDocument(e,t){let i=n.fromDocument(e);return i?(t(i),i.setToDocument(),!0):!1}static createEmpty(e){return new n(e,[{pageFrom:1,dict:new $c}])}removeRange(e){return this.ranges.splice(e,1),this.normalize(),this}divideRangeAtPage(e,t,i){var a;let r=this.getRangeIndexAtPage(e);if(r===-1)return this;if(e===this.getStartOfRange(r))return this;let o=this.ranges[r],s=new $c;return s.prefix=o.dict.prefix,s.style=o.dict.style,t&&(s.start=e-o.pageFrom+((a=o.dict.start)!=null?a:1)),i==null||i(s),this.ranges.splice(r+1,0,{pageFrom:e,dict:s}),this}shiftRangesAfterPage(e,t){for(let i of this.ranges)i.pageFrom>=e&&(i.pageFrom+=t);return this}getStartOfRange(e){return this.ranges[e].pageFrom}getEndOfRange(e){let t=this.ranges[e+1];return t?t.pageFrom-1:this.doc.getPageCount()}getRangeIndexAtPage(e){for(let t=0;t<this.ranges.length;t++)if(this.getStartOfRange(t)<=e&&e<=this.getEndOfRange(t))return t;return-1}then(e){return e(this),this}rangeCount(){return this.ranges.length}};var Ng=class extends Ke{constructor(t,i){super(t);this.file=i;this.containerEl.addClass("pdf-plus-page-label-modal"),this.controlEl=this.contentEl.createDiv(),this.doc=null,this.pageLabels=null,this.docLoadingPromise=(async()=>(this.doc=await t.lib.loadPdfLibDocument(i),this.pageLabels=qi.fromDocument(this.doc),{doc:this.doc,pageLabels:this.pageLabels}))(),this.scope.register([],"Enter",()=>this.redisplay())}},Rg=class{constructor(e,t){this.dict=e;this.containerEl=t;this.addNumberingStyleSetting(),this.addStartSetting(),this.addPrefixSetting()}addSetting(){return new $t.Setting(this.containerEl)}addNumberingStyleSetting(){this.addSetting().setName("Numbering Style").addDropdown(e=>{var t;e.addOptions({...Og,None:"None"}).setValue((t=this.dict.style)!=null?t:"None").onChange(i=>{Mg(i)?this.dict.style=i:delete this.dict.style})})}addStartSetting(){this.addSetting().setName("Start counting from").addText(e=>{e.inputEl.type="number",this.dict.start!==void 0?e.setValue(""+this.dict.start):e.setPlaceholder("1"),e.onChange(t=>{let i=Number(t);Number.isInteger(i)?(e.inputEl.removeClass("error"),i>1?this.dict.start=i:delete this.dict.start):(delete this.dict.start,e.inputEl.addClass("error"))})})}addPrefixSetting(){return this.addSetting().setName("Prefix").addText(e=>{var t;e.setValue((t=this.dict.prefix)!=null?t:"").onChange(i=>{i?this.dict.prefix=i:delete this.dict.prefix})})}},Su=class extends Ng{constructor(){super(...arguments);this.buttonSetting=null}async onOpen(){super.onOpen(),this.titleEl.setText(`${this.plugin.manifest.name}: edit page labels`),new $t.Setting(this.contentEl).then(t=>{$t.MarkdownRenderer.render(this.app,["Each page in a PDF document can be assigned a ***page label***, which can be different from the page index.",'For example, a book might have a preface numbered as "i", "ii", "iii", ... and the main content numbered as "1", "2", "3", ...'].join(" "),t.descEl,"",this.component)}).then(t=>this.contentEl.prepend(t.settingEl)),this.controlEl.createDiv({cls:"page-labels-loading",text:"Loading..."}),await this.docLoadingPromise,this.display(),this.addButtons()}redisplay(){this.display()}display(){let{pageLabels:t,doc:i}=this;if(!i)return;if(this.controlEl.empty(),t===null||t.rangeCount()===0){this.addHeading(this.controlEl,"No page labels found","lucide-info").setDesc("This PDF document does not have any page labels.").addButton(o=>{o.setButtonText("Create").setCta().onClick(()=>{this.pageLabels=qi.createEmpty(i),this.redisplay(),this.updateButtonVisibility()})}).addButton(o=>{o.setButtonText("Cancel").onClick(()=>this.close())});return}let r=i.getPageCount();for(let o=0;o<t.ranges.length;o++){let s=this.controlEl.createDiv("page-label-range"),a=t.ranges[o],c=t.ranges[o-1],l=t.ranges[o+1],d=t.ranges[o+2],h=t.getEndOfRange(o);this.addHeading(s,`Page ${a.pageFrom}\u2013${h}`,"lucide-arrow-down-01").then(u=>{h>a.pageFrom&&u.addExtraButton(p=>{p.setIcon("lucide-separator-horizontal").setTooltip("Divide this labeling range").onClick(()=>{t.divideRangeAtPage(a.pageFrom+1,!1),this.redisplay()})})}).addExtraButton(u=>{u.setIcon("lucide-x").setTooltip("Label the pages in this range continuing from the previous range").onClick(()=>{t.removeRange(o),this.redisplay()})}),new $t.Setting(s).setName("From").setDesc("The index of the first page in this range.").then(u=>u.controlEl.appendText("Page")).addText(u=>{u.inputEl.type="number",u.setValue(""+a.pageFrom).onChange(p=>{let f=Number(p);Number.isInteger(f)&&(c?c.pageFrom:1)<f&&f<=h?(a.pageFrom=f,u.inputEl.removeClass("error")):u.inputEl.addClass("error")}),u.inputEl.addEventListener("blur",()=>this.redisplay(),{once:!0})}).then(u=>this.addPreviewButton(u,a.pageFrom)),new $t.Setting(s).setName("To").setDesc("The index of the last page in this range.").then(u=>u.controlEl.appendText("Page")).addText(u=>{u.inputEl.type="number",u.setValue(""+h).onChange(p=>{let f=Number(p);Number.isInteger(f)&&a.pageFrom<=f&&f<=(d?d.pageFrom-1:r-1)?(l.pageFrom=f+1,u.inputEl.removeClass("error")):u.inputEl.addClass("error")}).setDisabled(o===t.ranges.length-1).then(p=>{p.disabled&&(0,Aw.setTooltip)(p.inputEl,"The last range cannot be extended.")}),u.inputEl.addEventListener("blur",()=>this.redisplay(),{once:!0})}).then(u=>this.addPreviewButton(u,h)),new Rg(a.dict,s)}}addHeading(t,i,r){return new $t.Setting(t).setName(i).setHeading().then(o=>{let s=createDiv();o.settingEl.prepend(s),(0,$t.setIcon)(s,r)})}addPreviewButton(t,i){return t.addExtraButton(r=>{r.setIcon("lucide-message-square").setTooltip(`Hover${this.plugin.requireModKeyForLinkHover()?"+"+Bt("Mod").toLowerCase():""} to preview`).then(o=>{this.component.registerDomEvent(o.extraSettingsEl,"mouseover",s=>{this.app.workspace.trigger("hover-link",{event:s,source:"pdf-plus",linktext:this.file.path+`#page=${i}`,targetEl:o.extraSettingsEl,hoverParent:this.component})})})})}addButtons(){var t;return(t=this.buttonSetting)!=null?t:new $t.Setting(this.contentEl).addButton(i=>{i.setButtonText("Save").setCta().onClick(async()=>{this.pageLabels&&this.doc?(this.pageLabels.rangeCount()>0?this.pageLabels.setToDocument(this.doc):qi.removeFromDocument(this.doc),await this.app.vault.modifyBinary(this.file,await this.doc.save())):new $t.Notice(`${this.plugin.manifest.name}: Something went wrong.`),this.close()})}).addButton(i=>{i.setButtonText("Cancel").onClick(()=>this.close())}).then(i=>{this.buttonSetting=i,this.updateButtonVisibility()})}updateButtonVisibility(){this.buttonSetting&&(this.pageLabels&&this.pageLabels.rangeCount()>0?this.buttonSetting.settingEl.show():this.buttonSetting.settingEl.hide())}};var ki=require("obsidian");var ed=class ed extends Ke{constructor(...t){super(...t);this.source=null;this.uris=[];this.folderPath=null;this.scope.register([],"Enter",()=>{var i;((i=activeDocument.activeElement)==null?void 0:i.tagName)==="INPUT"&&this.submit()})}onOpen(){super.onOpen();let t=this.plugin.loadLocalStorage(ed.LOCAL_STORAGE_KEY);["file","web"].includes(t)&&(this.source=t),this.folderPath=this.lib.dummyFileManager.getFolderPathForDummyFiles(this.app.workspace.getActiveFile()),this.titleEl.setText(`${this.plugin.manifest.name}: Create dummy file for external PDF`),this.modalEl.createDiv("",i=>{new ki.Setting(i).setDesc(createFragment(r=>{let o=this.plugin.settings.modifierToDropExternalPDFToCreateDummy;r.appendText(`You can also use ${o.length?o.map(Bt).join("+")+" +":""} drag & drop to create dummy files. `),r.createEl("a",{text:"Learn more about dummy PDF files",href:"https://ryotaushio.github.io/obsidian-pdf-plus/external-pdf-files"})})),setTimeout(()=>{this.modalEl.insertBefore(i,this.contentEl)})}),this.display()}display(){ki.Platform.isDesktopApp?this.displayDesktop():this.displayMobile()}displayDesktop(){this.contentEl.empty(),this.addSourceLocationSetting(),this.addFolderSetting(),this.source==="file"?this.addLocalFileSetting():this.source==="web"&&this.addWebFileSetting(),this.source&&this.addButtons()}displayMobile(){this.source="web",this.contentEl.empty(),this.addFolderSetting(),this.addWebFileSetting(),this.addButtons()}addSetting(){return new ki.Setting(this.contentEl)}addSourceLocationSetting(){return this.addSetting().setName("Source location").setDesc("Where the external PDF is located.").addDropdown(t=>{var i;t.addOptions({file:"On this computer",web:"Web"}).setValue((i=this.source)!=null?i:"").onChange(r=>{this.source=r,this.display()}),t.selectEl.tabIndex=this.source?-1:0})}addFolderSetting(){return this.addSetting().setName("Folder to save the dummy files").setDesc(createFragment(t=>{t.appendText("You can specify the default folder in the "),t.createEl("a",{text:"settings",href:"obsidian://pdf-plus?setting=dummyFileFolderPath"}),t.appendText(".")})).addText(t=>{var i;t.inputEl.size=30,t.setValue((i=this.folderPath)!=null?i:""),new Nr(this.app,t.inputEl).onSelect(({item:r})=>{this.folderPath=r.path})})}addLocalFileSetting(){this.addSetting().setName("Absolute path to the PDF").setDesc('Type the path in the input box or click the "Browse" button to select the file.').addButton(t=>{t.setButtonText("Browse").setCta().onClick(()=>{var r;let i=(r=window.electron)==null?void 0:r.remote.dialog.showOpenDialogSync({properties:["openFile","multiSelections","dontAddToRecent"],filters:[{name:"PDF files",extensions:["pdf"]}]});i&&i.length>0&&(this.uris=i.map(o=>this.lib.dummyFileManager.absolutePathToFileUri(o)),this.display())})}).addExtraButton(t=>{t.setIcon("plus").setTooltip("Add another file").onClick(()=>{this.uris.push(""),this.display()})}),this.addUriListSetting()}addWebFileSetting(){this.addSetting().setName("URL of the PDF").setDesc('Must start with "https://" or "http://".').addExtraButton(t=>{t.setIcon("plus").setTooltip("Add another URL").onClick(()=>{this.uris.push(""),this.display()})}),this.addUriListSetting()}addUriListSetting(){this.uris.length||this.uris.push("");for(let t=0;t<this.uris.length;t++)this.addSetting().then(i=>i.settingEl.addClass("no-border")).addText(i=>{i.inputEl.size=30,this.source==="file"?i.setValue(this.uris[t]?this.uris[t].replace(/^file:\/\//,""):"").onChange(r=>{this.uris[t]="file://"+r}):i.setValue(this.uris[t]||"").onChange(r=>{this.uris[t]=r}),t===this.uris.length-1&&setTimeout(()=>i.inputEl.focus())}).addExtraButton(i=>{i.setIcon("trash").setTooltip(`Remove this ${this.source==="file"?"file":"URL"}`).onClick(()=>{this.uris.splice(t,1),this.display()}),this.uris.length===1&&i.extraSettingsEl.hide()})}addButtons(){this.contentEl.createDiv("modal-button-container",t=>{t.createEl("button",{text:"Create",cls:"mod-cta"},i=>{i.addEventListener("click",()=>{this.submit()})}),t.createEl("button",{text:"Cancel"},i=>{i.addEventListener("click",()=>{this.close()})})})}submit(){if(this.uris=this.uris.filter(t=>t),!this.uris.length){new ki.Notice(`${this.plugin.manifest.name}: The external PDF location is not specified.`);return}if(!this.folderPath){new ki.Notice(`${this.plugin.manifest.name}: The folder to save the dummy files is not specified.`);return}this.plugin.saveLocalStorage(ed.LOCAL_STORAGE_KEY,this.source),this.createDummyFiles(),this.close()}async createDummyFiles(){if(this.folderPath){this.folderPath=(0,ki.normalizePath)(this.folderPath);let t=await this.lib.dummyFileManager.createDummyFilesInFolder(this.folderPath,this.uris);new ki.Notice(`${this.plugin.manifest.name}: Dummy files created successfully.`);for(let i of t)i&&await this.app.workspace.getLeaf(!0).openFile(i)}else new ki.Notice(`${this.plugin.manifest.name}: Failed to create dummy files for the following URIs: ${this.uris.join(", ")}`)}};ed.LOCAL_STORAGE_KEY="last-used-dummy-file-source";var Da=ed;var td=require("obsidian");var Vg="1.6.5",Pa=class n extends Ke{static openIfNecessary(e){let t=yu();t&&vg(t,Vg)&&e.app.workspace.onLayoutReady(()=>{new n(e).open()})}onOpen(){super.onOpen();let e=this.plugin.manifest.name;this.setTitle(`${e}: Obsidian installer update is required`),this.contentEl.createEl("p",{text:`Your Obsidian installer (${yu()}) is outdated and is incompatible with the latest ${e}. Please download the latest installer from Obsidian's website and re-install the Obsidian app.`}),(0,td.requireApiVersion)(Vg)||this.contentEl.createEl("p",{text:`Also, in the very near future, Obsidian ${Vg} or later will be required for you to be able to keep receiving updates of ${e}.`}),this.contentEl.createDiv("modal-button-container",t=>{let i="https://obsidian.md/download";new td.ButtonComponent(t).setButtonText("Get installer from obsidian.md").setTooltip(i).setCta().onClick(()=>{window.open(i)});let r="https://help.obsidian.md/Getting+started/Update+Obsidian#Installer%20updates";new td.ButtonComponent(t).setButtonText('What is "installer update"? (help.obsidian.md)').setTooltip(r).onClick(()=>{window.open(r)})})}};var Le=require("obsidian");var Iw=require("obsidian");var ka=class n{constructor(){this.tree=null;this.dict=null}static fromDocument(e){if(e.catalog.has(w.of("Dests"))){let i=lt(e.catalog,"Dests");if(i instanceof G){let r=new n;return r.dict=i,r}}let t=lt(e.catalog,"Names");if(t instanceof G){let i=lt(t,"Dests");if(i instanceof G){let r=new n;return r.tree=new Fa(i),r}}return null}getExplicitDest(e){var i,r;let t=null;if(this.dict){let o=lt(this.dict,e);t=(i=o instanceof Y?this.dict.context.lookup(o):o)!=null?i:null}else if(this.tree){let o=this.tree.get(e);t=(r=o instanceof Y?this.tree._rootDict.context.lookup(o):o)!=null?r:null}if(t instanceof X)return t;if(t instanceof G){let o=t.get(w.of("D"));if(o instanceof X)return o}return null}};var Ge=class n{constructor(e,t){this.plugin=e,this.doc=t,this.namedDests=ka.fromDocument(t)}static async fromDocument(e,t){return new n(t,e)}static async fromFile(e,t){let{lib:i}=t,r=await i.loadPdfLibDocument(e);return new n(t,r)}get lib(){return this.plugin.lib}get root(){let e=lt(this.doc.catalog,"Outlines");return e instanceof G?new Eu(this,e):null}set root(e){if(e){let t=this.doc.context.getObjectRef(e.dict);t||(t=this.doc.context.register(e.dict)),this.doc.catalog.set(w.of("Outlines"),t);return}this.doc.catalog.delete(w.of("Outlines"))}ensureRoot(){if(!this.root){let e=this.doc.context.obj({Type:"Outlines"});this.doc.context.register(e),this.root=new Eu(this,e)}return this.root}getLeaves(){let e=[],t=i=>{i.firstChild&&t(i.firstChild),i.nextSibling&&t(i.nextSibling),i.firstChild||e.push(i)};return this.root&&t(this.root),e}iter(e){let t=i=>{var r,o;(r=e.enter)==null||r.call(e,i),i.iterChildren(t),(o=e.leave)==null||o.call(e,i)};this.root&&t(this.root)}async iterAsync(e){let t=async i=>{var r,o;await((r=e.enter)==null?void 0:r.call(e,i)),await i.iterChildrenAsync(t),await((o=e.leave)==null?void 0:o.call(e,i))};this.root&&await t(this.root)}async prune(){await this.iterAsync({leave:async e=>{await e.destNotExistInDoc()&&(e.removeAndLiftUpChildren(),e.updateCountForAllAncestors())}})}stringify(){let e="";return this.iter({enter:t=>{t.isRoot()||(e=e+" ".repeat(t.depth-1)+"- "+t.title+`
|
||
`)}}),e}async findPDFjsOutlineTreeNode(e){let t=null;return await this.iterAsync({enter:async i=>{if(!(t||i.isRoot())&&e.item.title===i.title){let r=e.item.dest,o=i.getNormalizedDestination();if(typeof r=="string")typeof o=="string"&&r===o&&(t=i);else{let s=await e.getPageNumber();JSON.stringify(this.lib.normalizePDFJsDestArray(r,s))===JSON.stringify(o)&&(t=i)}}}}),t}static async processOutlineRoot(e,t,i){let{app:r}=i,o=await n.fromFile(t,i);e(o.ensureRoot());let s=await o.doc.save();await r.vault.modifyBinary(t,s)}static async findAndProcessOutlineItem(e,t,i,r){let{app:o}=r,s=await n.fromFile(i,r),a=await s.findPDFjsOutlineTreeNode(e);if(!a){new Iw.Notice(`${r.manifest.name}: Failed to process the outline item.`);return}t(a);let c=await s.doc.save();await o.vault.modifyBinary(i,c)}},Eu=class n{constructor(e,t){this.outlines=e,this.dict=t}get doc(){return this.outlines.doc}get lib(){return this.outlines.plugin.lib}is(e){return e!==null&&this.dict===e.dict}_get(e){let t=lt(this.dict,e);return t instanceof G?new n(this.outlines,t):null}_setOrDelete(e,t){if(t){let i=this.doc.context.getObjectRef(t.dict);i||(i=this.doc.context.register(t.dict)),this.dict.set(w.of(e),i);return}this.dict.delete(w.of(e))}get firstChild(){return this._get("First")}set firstChild(e){if(e&&!this.is(e.parent))throw new Error(`Item "${e.name}" is not a child of this item "${this.name}"`);this._setOrDelete("First",e)}get lastChild(){return this._get("Last")}set lastChild(e){if(e&&!this.is(e.parent))throw new Error(`Item "${e.name}" is not a child of this item "${this.name}"`);this._setOrDelete("Last",e)}get nextSibling(){return this._get("Next")}set nextSibling(e){if(e&&!(e.parent&&e.parent.is(this.parent)))throw new Error(`Item "${e.name}" is not a sibling of this item "${this.name}"`);this._setOrDelete("Next",e)}get prevSibling(){return this._get("Prev")}set prevSibling(e){if(e&&!(e.parent&&e.parent.is(this.parent)))throw new Error(`Item "${e.name}" is not a sibling of this item "${this.name}"`);this._setOrDelete("Prev",e)}get parent(){return this._get("Parent")}set parent(e){if(e&&this.isRoot())throw new Error("Cannot set parent of the root of outline");this._setOrDelete("Parent",e)}get count(){let e=lt(this.dict,"Count");return e instanceof K?e.asNumber():null}set count(e){if(e===null){this.dict.delete(w.of("Count"));return}this.dict.set(w.of("Count"),K.of(e))}get title(){if(this.isRoot())throw new Error("Root of outline does not have a title");let e=lt(this.dict,"Title");if(e instanceof ee||e instanceof j)return e.decodeText();throw new Error("Title is not a string")}set title(e){if(this.isRoot())throw new Error("Cannot set title of the root of outline");this.dict.set(w.of("Title"),j.fromText(e))}get name(){if(this.isRoot())return"(Root)";let e=this.title;return this.iterAncestors(t=>{t.isRoot()||(e=`${t.title}/${e}`)}),e}get depth(){let e=0;return this.iterAncestors(()=>e++),e}isLeaf(){return!this.firstChild}isRoot(){return this.parent===null}createChild(e,t){let i;if(typeof t=="string")i=j.fromText(t);else{i=X.withContext(this.doc.context),i.push(this.doc.getPage(t[0]).ref),i.push(w.of(t[1]));for(let s of t.slice(2))i.push(typeof s=="number"?K.of(s):Ve)}let r=this.doc.context.getObjectRef(this.dict);if(!r)throw new Error("Could not get ref for parent");let o={Title:j.fromText(e),Dest:i,Parent:r};if(this.lastChild){Object.assign(o,{Prev:this.doc.context.getObjectRef(this.lastChild.dict)});let s=new n(this.outlines,this.doc.context.obj(o));this.lastChild.nextSibling=s,this.lastChild=s}else{let s=new n(this.outlines,this.doc.context.obj(o));this.firstChild=s,this.lastChild=s}return this.lastChild}appendChild(e){if(e.isAncestorOf(this,!0))throw new Error("Cannot append an ancestor as a child");e.remove(),e.updateCountForAllAncestors(),e.parent=this,this.lastChild?(this.lastChild.nextSibling=e,e.prevSibling=this.lastChild,this.lastChild=e):(this.firstChild=e,this.lastChild=e,e.prevSibling=null),e.nextSibling=null,e.updateCountForAllAncestors()}remove(){return this.prevSibling&&(this.prevSibling.nextSibling=this.nextSibling),this.nextSibling&&(this.nextSibling.prevSibling=this.prevSibling),this.parent&&(this.is(this.parent.firstChild)&&(this.parent.firstChild=this.nextSibling),this.is(this.parent.lastChild)&&(this.parent.lastChild=this.prevSibling)),this}removeAndLiftUpChildren(){if(this.remove(),this.firstChild){if(!this.lastChild)throw new Error("Last child is not set despite having children");this.iterChildren(e=>{e.parent=this.parent}),this.prevSibling?(this.prevSibling.nextSibling=this.firstChild,this.firstChild.prevSibling=this.prevSibling):this.parent&&(this.parent.firstChild=this.firstChild,this.firstChild.prevSibling=null),this.nextSibling?(this.nextSibling.prevSibling=this.lastChild,this.lastChild.nextSibling=this.nextSibling):this.parent&&(this.parent.lastChild=this.lastChild,this.lastChild.nextSibling=null)}}iterChildren(e){let t=this.firstChild;for(;t;)e(t),t=t.nextSibling}async iterChildrenAsync(e){let t=this.firstChild;for(;t;)await e(t),t=t.nextSibling}iterAncestors(e,t=!1){t&&e(this);let i=this.parent;for(;i;)e(i),i=i.parent;return this}isAncestorOf(e,t=!1){let i=!1;return e.iterAncestors(r=>{this.is(r)&&(i=!0)},t),i}async sortChildren(){let e=[];await this.iterChildrenAsync(async r=>{let o=r.getExplicitDestination();if(o===null)return 0;let s=o[0],a=o[1]==="XYZ"?o[3]:o[1]==="FitBH"||o[1]==="FitH"?o[2]:void 0;e.push({child:r,page:s,top:a!=null?a:void 0})}),e.sort((r,o)=>{var s,a;return r.page-o.page||((s=r.top)!=null?s:0)-((a=o.top)!=null?a:0)});let t=null,i=e.first();i&&(i.child.prevSibling=null,this.firstChild=i.child);for(let{child:r}of e)t&&(t.nextSibling=r,r.prevSibling=t),t=r;t&&(t.nextSibling=null,this.lastChild=t)}async destNotExistInDoc(){var r,o,s;if(this.isRoot())return!1;let e=this.getDestination(),t=null;if(e instanceof ee||e instanceof j){let a=e.decodeText();t=(o=(r=this.outlines.namedDests)==null?void 0:r.getExplicitDest(a))!=null?o:null}else e instanceof X&&(t=e);if(!t)return!0;let i=t.get(0);if(i instanceof Y){let a=this.doc.context.lookup(i);if(a instanceof $e)return!((s=a.Parent())!=null&&s.Kids().asArray().includes(i))}throw new Error("The first element of a destination array must be a refernece of a page leaf node.")}countVisibleDescendants(){let e=0;return this.iterChildren(()=>e++),this.iterChildren(t=>{typeof t.count=="number"&&t.count>0&&(e+=t.countVisibleDescendants())}),e}updateCount(e){let t=this.countVisibleDescendants();if(this.isRoot()&&!e)throw new Error("Cannot close the root outline");this.count=e?t:-t}updateCountForAllAncestors(e=!1){return this.iterAncestors(t=>t.updateCount(t.isRoot()),e)}getDestination(){let e=lt(this.dict,"Dest");if(e)return e;let t=lt(this.dict,"A");if(t instanceof G){let i=lt(t,"S");if(i instanceof w&&i.decodeText()==="GoTo"){let r=lt(t,"D");return r!=null?r:null}}return null}getNormalizedDestination(){let e=this.getDestination();return e instanceof ee||e instanceof j?e.decodeText():e instanceof X?this.lib.normalizePdfLibDestArray(e,this.doc):null}getExplicitDestination(){var t,i;let e=this.getNormalizedDestination();if(typeof e=="string"){let r=(i=(t=this.outlines.namedDests)==null?void 0:t.getExplicitDest(e))!=null?i:null;return r?this.lib.normalizePdfLibDestArray(r,this.doc):null}return e}};var jr=require("obsidian");function Bw(n,e,t){let i=(r,o)=>{if(o>=e.length)return;t.clickableParentItem&&r.setUseNativeMenu(!1);let s=new Set(r.items);e[o](r);let a=r.items.filter(c=>!s.has(c));if(o!=e.length-1){for(let c of a)if(c instanceof jr.MenuItem){let l=c.callback,d=c.setSubmenu();if(t.vim){zg(d);let h=d.scope.keys.find(u=>u.key==="Escape"&&u.modifiers==="");h&&(d.scope.unregister(h),d.scope.register([],"Escape",n.hide.bind(n)))}i(d,o+1),t.clickableParentItem&&c.onClick(l)}}};i(n,0)}function Lw(n){let e=[],t=[],i=n;for(;i&&i.selected>=0;){t.push(i.selected);let r=i.items[i.selected];r instanceof jr.MenuItem&&e.push(r),i=r instanceof jr.MenuItem?r.submenu:null}return{items:e,indices:t}}function Hg(n,e){n.openSubmenu=function(t){return this.parentMenu&&this.closeSubmenu(),jr.Menu.prototype.openSubmenu.call(this,t)},n.openSubmenuSoon=(0,jr.debounce)(n.openSubmenu.bind(n),e!=null?e:250,!0)}function zg(n){n.scope.register([],"j",n.onArrowDown.bind(n)),n.scope.register([],"k",n.onArrowUp.bind(n)),n.scope.register([],"h",n.onArrowLeft.bind(n)),n.scope.register([],"l",n.onArrowRight.bind(n))}var pe=require("obsidian");var jg=require("obsidian");var Mw=require("obsidian");var Dt=require("obsidian");var Ow=require("obsidian"),De=class extends Ow.Component{constructor(e){super(),this.plugin=e}get app(){return this.plugin.app}get lib(){return this.plugin.lib}get settings(){return this.plugin.settings}};var Tu=class Tu extends De{constructor(e,t){super(e),this.child=t,this.destIdToBibText=new Map,this.destIdToParsedBib=new Map,this.events=new Dt.Events,this.initialized=!1,this.init()}isEnabled(){let e=this.child.pdfViewer;return this.settings.actionOnCitationHover!=="none"&&(Gn(e)||this.settings.enableBibInCanvas&&xa(e)||this.settings.enableBibInHoverPopover&&ba(e)||this.settings.enableBibInEmbed&&Qo(e))}async init(){this.isEnabled()&&(await this.extractBibText(),await this.parseBibText()),this.initialized=!0}async extractBibText(){return new Promise(e=>{this.lib.onDocumentReady(this.child.pdfViewer,t=>{new Ug(this.plugin,t).onExtracted((i,r)=>{this.destIdToBibText.set(i,r),this.events.trigger("extracted",i,r)}).extract().then(e)})})}async parseBibText(){let e=Array.from(this.destIdToBibText.values()).join(`
|
||
`),t=await this.parseBibliographyText(e);if(t){let i=Array.from(this.destIdToBibText.keys());for(let r=0;r<t.length;r++)this.destIdToParsedBib.set(i[r],t[r]),this.events.trigger("parsed",i[r],t[r])}}spawnBibPopoverOnModKeyDown(e,t,i,r){let o=()=>{let s=new Dt.HoverPopover(t,r,200);s.hoverEl.addClass("pdf-plus-bib-popover");let a=s.hoverEl.createDiv();s.addChild(new qg(this,e,a))};this.plugin.requireModKeyForLinkHover(Tu.HOVER_LINK_SOURCE_ID)?ag(i,r,o):o()}getGoogleScholarSearchUrlFromDest(e){var r;let t="",i=this.destIdToParsedBib.get(e);if(i){let{author:o,title:s,year:a,"container-title":c}=i;s&&(t+=`${s[0]}`),o&&(t+=" "+o.map(l=>l.family).join(" ")),a&&(t+=` ${a}`),c&&(t+=` ${c[0]}`)}else t=(r=this.destIdToBibText.get(e))!=null?r:"";return t?`https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=${encodeURIComponent(t)}`:null}async parseBibliographyText(e){let{app:t,plugin:i,settings:r}=this,o=r.anystylePath;if(!o)return null;let s=i.getAnyStyleInputDir();if(Dt.Platform.isDesktopApp&&t.vault.adapter instanceof Dt.FileSystemAdapter&&s){let a=t.vault.adapter.getFullPath(s);await Dt.FileSystemAdapter.mkdir(a);let c=s+`/${pg()}.txt`,l=t.vault.adapter.getFullPath(c);await t.vault.adapter.write(c,e),this.register(()=>t.vault.adapter.remove(c));let{spawn:d}=require("child_process");return new Promise(h=>{let u=d(o,["parse",l]),p="";u.stdout.on("data",f=>{if(f){p+=f.toString();return}h(null)}),u.on("error",f=>{if("code"in f&&f.code==="ENOENT"){let m=`${i.manifest.name}: AnyStyle not found at the path "${o}".`;if(i.settings.anystylePath){let x=new Dt.Notice(m,8e3);x.noticeEl.appendText(" Click "),x.noticeEl.createEl("a",{text:"here"},g=>{g.addEventListener("click",()=>{i.openSettingTab().scrollTo("anystylePath")})}),x.noticeEl.appendText(" to update the path."),console.error(m)}else console.warn(m);return h(null)}}),u.on("close",f=>{var x;if(f)return h(null);let m=JSON.parse(p);if(Array.isArray(m)){for(let g of m)for(let b of(x=g.date)!=null?x:[]){let v=b.match(/\d{4}/);if(v){g.year=v[0];break}}h(m)}h(null)})})}return null}on(e,t,i){return this.events.on(e,t,i)}};Tu.HOVER_LINK_SOURCE_ID="pdf-plus-citation-link";var pn=Tu,Ug=class{constructor(e,t){this.plugin=e,this.doc=t,this.pageRefToTextContentItemsPromise={}}onExtracted(e){return this.onExtractedCallback=e,this}async extract(){let e=await this.doc.getDestinations(),t=[];for(let i in e)if(this.plugin.lib.isCitationId(i)){let r=e[i];t.push(this.extractBibTextForDest(r).then(o=>{var s;if(o){let a=o.text;(s=this.onExtractedCallback)==null||s.call(this,i,a)}}))}await Promise.all(t)}async getTextContentItemsFromPageRef(e){var i;let t=JSON.stringify(e);return(i=this.pageRefToTextContentItemsPromise[t])!=null?i:this.pageRefToTextContentItemsPromise[t]=(async()=>{let r=await this.doc.getPageIndex(e)+1;return(await(await this.doc.getPage(r)).getTextContent()).items})()}async extractBibTextForDest(e){let t=e[0],i=await this.getTextContentItemsFromPageRef(t),r=-1;if(e[1].name==="XYZ"){let d=e[2],h=e[3];if(d===null||h===null)return null;r=i.findIndex(u=>{if(!u.str)return!1;let p=u.transform[4],f=u.transform[5]+(u.height||u.transform[0])*.8;return d<=p&&f<=h})}else if(e[1].name==="FitBH"){let d=e[2];if(d===null)return null;r=i.findIndex(h=>h.str?h.transform[5]+(h.height||h.transform[0])*.8<=d:!1)}if(r===-1)return null;let o=i[r],s=o.transform[4],a=i[r].str,c=r+1,l=[o];for(;;){let d=i[c];if(!d||d.transform[4]<=s+Math.max(d.height,8)*.1)break;d.str.trimStart().startsWith(".")||d.str.trimStart().startsWith(",")?a=a.trimEnd()+d.str.trimStart():a+=`
|
||
`+d.str,l.push(d),c++}return a=a.trimStart().replace(/^\[\d+\]/,""),a=a.trimStart().replace(/^\(\d+\)/,""),a=a.trimStart().replace(/^\d+\./,""),{text:Zc(a),items:l}}},qg=class extends De{constructor(e,t,i){super(e.plugin),this.bib=e,this.destId=t,this.containerEl=i,this.containerEl.addClass("pdf-plus-bib")}get child(){return this.bib.child}renderParsedBib(e){let{author:t,title:i,year:r,"container-title":o}=e;return t?(this.containerEl.createDiv("",s=>{s.createDiv("bib-title",a=>{var c;a.setText((c=i==null?void 0:i[0])!=null?c:"No title")}),s.createDiv("bib-author-year",a=>{let c=t.map(l=>{let d="";return l.given&&(d+=l.given),l.family&&(d+=" "+l.family),d}).filter(l=>l).join(", ");a.appendText(c),r&&a.appendText(` (${r})`)}),o&&s.createDiv("bib-container-title",a=>{a.setText(o[0])})}),!0):!1}async onload(){await this.render()}async render(){this.containerEl.empty();let e=!1,t=this.bib.destIdToParsedBib.get(this.destId);if(t&&(e=this.renderParsedBib(t)),!e){let i=this.bib.destIdToBibText.get(this.destId);i?(this.containerEl.createDiv({text:i}),Dt.Platform.isDesktopApp&&this.settings.anystylePath&&this.registerRenderOn("parsed")):this.bib.initialized?this.containerEl.createDiv({text:"No bibliography found"}):(this.containerEl.createDiv({text:"Loading..."}),this.registerRenderOn("extracted"))}this.containerEl.createDiv("button-container",i=>{new Dt.ButtonComponent(i).setButtonText("Google Scholar").onClick(()=>{let r=this.bib.getGoogleScholarSearchUrlFromDest(this.destId);if(!r){new Dt.Notice(`${this.plugin.manifest.name}: ${this.bib.initialized?"No bibliography found":"Still loading the bibliography information. Please try again later."}`);return}window.open(r)}),new Dt.ExtraButtonComponent(i).setIcon("lucide-settings").setTooltip("Customize...").onClick(()=>{this.plugin.openSettingTab().scrollToHeading("citation")})})}registerRenderOn(e){let t=this.bib.on(e,i=>{i===this.destId&&(this.render(),this.bib.events.offref(t))});this.registerEvent(t)}onunload(){this.containerEl.empty()}};var Au=class{get hoverPopover(){return this.child.hoverPopover}set hoverPopover(e){this.child.hoverPopover=e,e&&(e.hoverEl.addClass("pdf-plus-pdf-link-like-popover"),this.onHoverPopoverSet(e))}onHoverPopoverSet(e){}constructor(e,t,i){this.plugin=e,this.app=e.app,this.lib=e.lib,this.child=t,this.targetEl=i,this.useModifierKey()&&this.registerClickToOpenInNewLeaf(),this.shouldShowHoverPopover()&&this.registerHover(),this.shouldRecordHistory()&&this.registerClickToRecordHistory()}get hoverLinkSourceId(){return this.constructor.HOVER_LINK_SOURCE_ID}get file(){return this.child.file}get sourcePath(){var e,t;return(t=(e=this.file)==null?void 0:e.path)!=null?t:""}registerClickToOpenInNewLeaf(){let{app:e,plugin:t,targetEl:i}=this;t.registerDomEvent(i,"click",async r=>{if(r.defaultPrevented)return;let o=Mw.Keymap.isModEvent(r);if(!o)return;r.preventDefault(),r.stopPropagation();let s=await this.getLinkText(r);s!==null&&e.workspace.openLinkText(s,this.sourcePath,o)},{capture:!0})}async customHover(e){return!1}registerHover(){let{app:e,plugin:t,targetEl:i}=this;t.registerDomEvent(i,"mouseover",async r=>{if(await this.customHover(r))return;let o=null;try{o=await this.getLinkText(r)}catch(s){if(s.name==="UnknownErrorException")return console.warn(`${this.plugin.manifest.name}: The destination was not found in this document.`);throw s}o!==null&&e.workspace.trigger("hover-link",{event:r,source:this.hoverLinkSourceId,hoverParent:this,targetEl:i,linktext:o,sourcePath:this.sourcePath})})}registerClickToRecordHistory(){let{plugin:e,targetEl:t}=this;e.registerDomEvent(t,"click",i=>{this.recordLeafHistory()},{capture:!0})}recordLeafHistory(){this.lib.workspace.iteratePDFViews(e=>{if(e.containerEl.contains(this.targetEl)){let t=e.leaf;t.recordHistory(t.getHistoryState())}})}},Iu=class extends Au{async getLinkText(e){var c,l,d;let{lib:t,child:i,targetEl:r}=this;if(!Pi(e,r))return null;let o=(c=i.pdfViewer.pdfViewer)==null?void 0:c.pdfDocument;if(!o)return null;let s=this.getDest(),a=null;return typeof s=="string"?a=await t.destIdToSubpath(s,o):a=await t.pdfJsDestArrayToSubpath(s,o),a===null?null:((d=(l=this.file)==null?void 0:l.path)!=null?d:"")+a}onHoverPopoverSet(e){let t=e.hoverEl,i=this.getDest();typeof i=="string"&&(t.dataset.dest=i)}},id=class id extends Iu{constructor(e,t,i){super(e,t,i.container),this.linkAnnotationElement=i}static registerEvents(e,t,i){return i.data.subtype==="Link"?new id(e,t,i):null}async getLinkText(e){var t,i;if(this.plugin.settings.actionOnCitationHover==="google-scholar-popover"&&this.lib.requirePluginNewerThan("surfing","0.9.5")){let r=this.getDest();if(this.lib.isCitationId(r)&&((t=this.child.pdfViewer.pdfViewer)==null?void 0:t.pdfDocument)){let s=(i=this.child.bib)==null?void 0:i.getGoogleScholarSearchUrlFromDest(r);if(s)return s}}return super.getLinkText(e)}getDest(){return this.linkAnnotationElement.data.dest}useModifierKey(){return this.plugin.settings.clickPDFInternalLinkWithModifierKey}shouldShowHoverPopover(){return this.plugin.settings.enableHoverPDFInternalLink}isCitationLink(){let e=this.getDest();return this.lib.isCitationId(e)}get hoverLinkSourceId(){return this.isCitationLink()?pn.HOVER_LINK_SOURCE_ID:id.HOVER_LINK_SOURCE_ID}shouldRecordHistory(){return this.plugin.settings.recordPDFInternalLinkHistory&&!this.child.opts.isEmbed}async customHover(e){if(this.plugin.settings.actionOnCitationHover==="pdf-plus-bib-popover"&&this.child.bib&&this.child.bib.isEnabled()){let t=this.getDest();if(this.lib.isCitationId(t))return this.child.bib.spawnBibPopoverOnModKeyDown(t,this,e,this.targetEl),!0}return!1}onHoverPopoverSet(e){super.onHoverPopoverSet(e),e.hoverEl.addClass("pdf-plus-pdf-internal-link-popover")}};id.HOVER_LINK_SOURCE_ID="pdf-plus-internal-link";var Zn=id,Bu=class Bu extends Iu{constructor(e,t,i){super(e,t,i.selfEl),this.item=i}static registerEvents(e,t,i){return new Bu(e,t,i)}getDest(){return this.item.item.dest}useModifierKey(){return this.plugin.settings.clickOutlineItemWithModifierKey}shouldShowHoverPopover(){return this.plugin.settings.popoverPreviewOnOutlineHover}shouldRecordHistory(){return this.plugin.settings.recordHistoryOnOutlineClick&&!this.child.opts.isEmbed}onHoverPopoverSet(e){super.onHoverPopoverSet(e),e.hoverEl.addClass("pdf-plus-outline-item-popover")}};Bu.HOVER_LINK_SOURCE_ID="pdf-plus-outline";var Yn=Bu,Lu=class Lu extends Au{static registerEvents(e,t){return new Lu(e,t,t.pdfViewer.pdfThumbnailViewer.container)}async getLinkText(e){var r,o;let t=It(e,e.target)&&e.target.closest('.pdf-thumbnail-view > a[href^="#page="]');if(!t)return null;let i=t.getAttribute("href");return((o=(r=this.file)==null?void 0:r.path)!=null?o:"")+i}useModifierKey(){return this.plugin.settings.clickThumbnailWithModifierKey}shouldShowHoverPopover(){return this.plugin.settings.popoverPreviewOnThumbnailHover}shouldRecordHistory(){return this.plugin.settings.recordHistoryOnThumbnailClick&&!this.child.opts.isEmbed}onHoverPopoverSet(e){super.onHoverPopoverSet(e),e.hoverEl.addClass("pdf-plus-thumbnail-item-popover")}};Lu.HOVER_LINK_SOURCE_ID="pdf-plus-thumbnail";var Jn=Lu;var nd=class nd extends De{constructor(e,t,i){super(e),this.child=t,this.annot=i}get hoverPopover(){return this.child.hoverPopover}set hoverPopover(e){this.child.hoverPopover=e}get hoverLinkSourceId(){return nd.HOVER_LINK_SOURCE_ID}onload(){this.settings.popoverPreviewOnExternalLinkHover&&this.registerDomEvent(this.annot.container,"mouseover",e=>{let t=this.annot.data.url;t&&(t.startsWith("http://")||t.startsWith("https://"))&&this.app.workspace.trigger("hover-link",{event:e,source:this.hoverLinkSourceId,hoverParent:this,targetEl:this.annot.container,linktext:t})})}static registerEvents(e,t,i){var r;return i.data.subtype==="Link"&&i.data.url?(r=t.component)==null?void 0:r.addChild(new nd(e,t,i)):null}};nd.HOVER_LINK_SOURCE_ID="pdf-plus-external-link";var Kr=nd;var hC={highlight:"Highlight",underline:"Underline"},uC={open:"Open backlink",preview:"Popover preview of backlink"},Ou={"":"Current tab",tab:"New tab",right:"Split right",left:"Split left",down:"Split down",up:"Split up",window:"New window","right-sidebar":"Right sidebar","left-sidebar":"Left sidebar"},Nw={"last-paste":"Last pasted .md","last-active":"Last active .md","last-active-and-open":"Last active & open .md","last-paste-then-last-active":"Last pasted .md if any, otherwise last active .md","last-paste-then-last-active-and-open":"Last pasted .md if any, otherwise last active & open .md","last-active-and-open-then-last-paste":"Last active & open .md if any, otherwise last pasted .md"},fC={root:"Vault folder",current:"Same folder as current file",folder:"In the folder specified below"},Rw={root:"Vault folder",current:"Same folder as current file",folder:"In the folder specified below",subfolder:"In subfolder under current folder",obsidian:"Same as Obsidian's attachment location"},pC=["png","jpg","webp","bmp"],Hw="green",Wg={none:"Same as other internal links","pdf-plus-bib-popover":"PDF++'s custom bibliography popover","google-scholar-popover":"Google Scholar popover"},gC={text:"Copy text",obsidian:"Obsidian default (copy as quote)","pdf-plus":"Run PDF++'s copy command"},Qn={displayTextFormats:[{name:"Title & page",template:"{{file.basename}}, p.{{pageLabel}}"},{name:"Page",template:"p.{{pageLabel}}"},{name:"Text",template:"{{text}}"},{name:"Emoji",template:"\u{1F4D6}"},{name:"None",template:""}],defaultDisplayTextFormatIndex:0,syncDisplayTextFormat:!0,syncDefaultDisplayTextFormat:!1,copyCommands:[{name:"Quote",template:`> ({{linkWithDisplay}})
|
||
> {{selection}}
|
||
`},{name:"Link",template:"{{linkWithDisplay}}"},{name:"Embed",template:"!{{link}}"},{name:"Callout",template:`> [!{{calloutType}}|{{color}}] {{linkWithDisplay}}
|
||
> {{text}}
|
||
`},{name:"Quote in callout",template:`> [!{{calloutType}}|{{color}}] {{linkWithDisplay}}
|
||
> > {{text}}
|
||
>
|
||
> `}],useAnotherCopyTemplateWhenNoSelection:!1,copyTemplateWhenNoSelection:"{{linkToPageWithDisplay}}",trimSelectionEmbed:!1,embedMargin:50,noSidebarInEmbed:!0,noSpreadModeInEmbed:!0,embedUnscrollable:!1,singleTabForSinglePDF:!0,highlightExistingTab:!1,existingTabHighlightOpacity:.5,existingTabHighlightDuration:.75,paneTypeForFirstPDFLeaf:"left",openLinkNextToExistingPDFTab:!0,openPDFWithDefaultApp:!1,openPDFWithDefaultAppAndObsidian:!0,focusObsidianAfterOpenPDFWithDefaultApp:!0,syncWithDefaultApp:!1,dontActivateAfterOpenPDF:!0,dontActivateAfterOpenMD:!0,highlightDuration:.75,noTextHighlightsInEmbed:!1,noAnnotationHighlightsInEmbed:!0,persistentTextHighlightsInEmbed:!0,persistentAnnotationHighlightsInEmbed:!1,highlightBacklinks:!0,selectionBacklinkVisualizeStyle:"highlight",dblclickEmbedToOpenLink:!0,highlightBacklinksPane:!0,highlightOnHoverBacklinkPane:!0,backlinkHoverColor:"",colors:{Yellow:"#ffd000",Red:"#ea5252",Note:"#086ddd",Important:"#bb61e5"},defaultColor:"",defaultColorPaletteItemIndex:0,syncColorPaletteItem:!0,syncDefaultColorPaletteItem:!1,colorPaletteInToolbar:!0,noColorButtonInColorPalette:!0,colorPaletteInEmbedToolbar:!1,quietColorPaletteTooltip:!1,showStatusInToolbar:!0,highlightColorSpecifiedOnly:!1,doubleClickHighlightToOpenBacklink:!0,hoverHighlightAction:"preview",paneTypeForFirstMDLeaf:"right",singleMDLeafInSidebar:!0,alwaysUseSidebar:!0,ignoreExistingMarkdownTabIn:[],defaultColorPaletteActionIndex:4,syncColorPaletteAction:!0,syncDefaultColorPaletteAction:!1,proxyMDProperty:"PDF",hoverPDFLinkToOpen:!1,ignoreHeightParamInPopoverPreview:!0,filterBacklinksByPageDefault:!0,showBacklinkToPage:!0,enableHoverPDFInternalLink:!0,recordPDFInternalLinkHistory:!0,alwaysRecordHistory:!0,renderMarkdownInStickyNote:!1,enablePDFEdit:!1,author:"",writeHighlightToFileOpacity:.2,defaultWriteFileToggle:!1,syncWriteFileToggle:!0,syncDefaultWriteFileToggle:!1,enableAnnotationDeletion:!0,warnEveryAnnotationDelete:!1,warnBacklinkedAnnotationDelete:!0,enableAnnotationContentEdit:!0,enableEditEncryptedPDF:!1,pdfLinkColor:"#04a802",pdfLinkBorder:!1,replaceContextMenu:!0,showContextMenuOnMouseUpIf:"Mod",contextMenuConfig:[{id:"action",visible:!0},{id:"selection",visible:!0},{id:"write-file",visible:!0},{id:"annotation",visible:!0},{id:"modify-annotation",visible:!0},{id:"link",visible:!0},{id:"text",visible:!0},{id:"search",visible:!0},{id:"speech",visible:!0},{id:"page",visible:!0},{id:"settings",visible:!0}],selectionProductMenuConfig:["color","copy-format","display"],writeFileProductMenuConfig:["color","copy-format","display"],annotationProductMenuConfig:["copy-format","display"],updateColorPaletteStateFromContextMenu:!0,mobileCopyAction:"pdf-plus",showContextMenuOnTablet:!1,executeBuiltinCommandForOutline:!0,executeBuiltinCommandForZoom:!0,executeFontSizeAdjusterCommand:!0,closeSidebarWithShowCommandIfExist:!0,autoHidePDFSidebar:!1,defaultSidebarView:1,outlineDrag:!0,outlineContextMenu:!0,outlineLinkDisplayTextFormat:"{{file.basename}}, {{text}}",outlineLinkCopyFormat:"{{linkWithDisplay}}",recordHistoryOnOutlineClick:!0,popoverPreviewOnOutlineHover:!0,thumbnailDrag:!0,thumbnailContextMenu:!0,thumbnailLinkDisplayTextFormat:"{{file.basename}}, p.{{pageLabel}}",thumbnailLinkCopyFormat:"{{linkWithDisplay}}",recordHistoryOnThumbnailClick:!0,popoverPreviewOnThumbnailHover:!0,annotationPopupDrag:!0,showAnnotationPopupOnHover:!0,useCallout:!0,calloutType:"PDF",calloutIcon:"highlighter",highlightBacklinksInEmbed:!1,highlightBacklinksInHoverPopover:!1,highlightBacklinksInCanvas:!0,clickPDFInternalLinkWithModifierKey:!0,clickOutlineItemWithModifierKey:!0,clickThumbnailWithModifierKey:!0,focusEditorAfterAutoPaste:!0,clearSelectionAfterAutoPaste:!0,respectCursorPositionWhenAutoPaste:!0,blankLineAboveAppendedContent:!0,autoCopy:!1,autoFocus:!1,autoPaste:!1,autoFocusTarget:"last-active-and-open-then-last-paste",autoPasteTarget:"last-active-and-open-then-last-paste",openAutoFocusTargetIfNotOpened:!0,howToOpenAutoFocusTargetIfNotOpened:"right",closeHoverEditorWhenLostFocus:!0,closeSidebarWhenLostFocus:!1,openAutoFocusTargetInEditingView:!0,executeCommandWhenTargetNotIdentified:!0,commandToExecuteWhenTargetNotIdentified:"switcher:open",autoPasteTargetDialogTimeoutSec:20,autoCopyToggleRibbonIcon:!0,autoCopyIconName:"highlighter",autoFocusToggleRibbonIcon:!0,autoFocusIconName:"zap",autoPasteToggleRibbonIcon:!0,autoPasteIconName:"clipboard-paste",viewSyncFollowPageNumber:!0,viewSyncPageDebounceInterval:.3,openAfterExtractPages:!0,howToOpenExtractedPDF:"tab",warnEveryPageDelete:!1,warnBacklinkedPageDelete:!0,extractPageInPlace:!1,askExtractPageInPlace:!0,pageLabelUpdateWhenInsertPage:"keep",pageLabelUpdateWhenDeletePage:"keep",pageLabelUpdateWhenExtractPage:"keep",askPageLabelUpdateWhenInsertPage:!0,askPageLabelUpdateWhenDeletePage:!0,askPageLabelUpdateWhenExtractPage:!0,copyOutlineAsListFormat:"{{linkWithDisplay}}",copyOutlineAsListDisplayTextFormat:"{{text}}",copyOutlineAsHeadingsFormat:`{{text}}
|
||
|
||
{{linkWithDisplay}}`,copyOutlineAsHeadingsDisplayTextFormat:"p.{{pageLabel}}",copyOutlineAsHeadingsMinLevel:2,newFileNameFormat:"",newFileTemplatePath:"",newPDFLocation:"current",newPDFFolderPath:"",rectEmbedStaticImage:!1,rectImageFormat:"file",rectImageExtension:"webp",zoomToFitRect:!1,rectFollowAdaptToTheme:!0,rectEmbedResolution:100,includeColorWhenCopyingRectLink:!0,backlinkIconSize:50,showBacklinkIconForSelection:!1,showBacklinkIconForAnnotation:!1,showBacklinkIconForOffset:!0,showBacklinkIconForRect:!1,showBoundingRectForBacklinkedAnnot:!1,hideReplyAnnotation:!1,hideStampAnnotation:!1,searchLinkHighlightAll:"true",searchLinkCaseSensitive:"true",searchLinkMatchDiacritics:"default",searchLinkEntireWord:"false",dontFitWidthWhenOpenPDFLink:!0,preserveCurrentLeftOffsetWhenOpenPDFLink:!1,defaultZoomValue:"page-width",scrollModeOnLoad:0,spreadModeOnLoad:0,usePageUpAndPageDown:!0,hoverableDropdownMenuInToolbar:!0,zoomLevelInputBoxInToolbar:!0,popoverPreviewOnExternalLinkHover:!0,actionOnCitationHover:"pdf-plus-bib-popover",anystylePath:"",enableBibInEmbed:!1,enableBibInHoverPopover:!1,enableBibInCanvas:!0,citationIdPatterns:`^cite.
|
||
^bib\\d+$`,copyAsSingleLine:!0,removeWhitespaceBetweenCJChars:!0,dummyFileFolderPath:"",externalURIPatterns:[".*\\.pdf$","https://arxiv.org/pdf/.*"],modifierToDropExternalPDFToCreateDummy:["Shift"],vim:!1,vimrcPath:"",vimVisualMotion:!0,vimScrollSize:40,vimLargerScrollSizeWhenZoomIn:!0,vimContinuousScrollSpeed:1.2,vimSmoothScroll:!0,vimHlsearch:!0,vimIncsearch:!0,enableVimInContextMenu:!0,enableVimOutlineMode:!0,vimSmoothOutlineMode:!0,vimHintChars:"hjklasdfgyuiopqwertnmzxcvb",vimHintArgs:"all",PATH:"",autoCheckForUpdates:!0,fixObsidianTextSelectionBug:!0};function mC(n){return Qn.hasOwnProperty(n)}var _n=Bt("Mod").toLowerCase(),Mu=class extends pe.PluginSettingTab{constructor(t){super(t.app,t);this.plugin=t;this.events=new pe.Events;this.component=new pe.Component,this.items={},this.headings=new Map,this.iconHeadings=new Map,this.headerEls=new Map,this.promises=[],this.containerEl.addClass("pdf-plus-settings"),this.headerContainerEl=this.containerEl.createDiv("header-container"),this.contentEl=this.containerEl.createDiv("content")}addSetting(t){let i=new pe.Setting(this.contentEl);return t&&(this.items[t]=i,this.component.registerDomEvent(i.settingEl,"contextmenu",r=>{r.preventDefault(),new jg.Menu().addItem(o=>{o.setTitle("Restore default value of this setting").setIcon("lucide-undo-2").onClick(async()=>{this.plugin.settings[t]=this.plugin.getDefaultSettings()[t],await this.plugin.saveSettings(),this.redisplay(),new pe.Notice(`${this.plugin.manifest.name}: Default setting restored. Note that some options require a restart to take effect.`,6e3)})}).addItem(o=>{o.setTitle("Copy link to this setting").setIcon("lucide-link").onClick(()=>{navigator.clipboard.writeText(`obsidian://pdf-plus?setting=${t}`)})}).showAtMouseEvent(r)})),i}addHeading(t,i,r,o){let s=this.addSetting().setName(t).setHeading().then(a=>{if(r){let c=a.settingEl.parentElement;c&&c.insertBefore(createDiv("spacer"),a.settingEl);let l=createDiv();a.settingEl.prepend(l),(0,pe.setIcon)(l,r),a.settingEl.addClass("pdf-plus-setting-heading")}});return this.headings.set(i,s),this.component.registerDomEvent(s.settingEl,"contextmenu",a=>{a.preventDefault(),new jg.Menu().addItem(c=>{c.setTitle("Copy link to this heading").setIcon("lucide-link").onClick(()=>{navigator.clipboard.writeText(`obsidian://pdf-plus?setting=heading:${i}`)})}).showAtMouseEvent(a)}),r&&this.headerContainerEl.createDiv("clickable-icon header",a=>{let c=a.createDiv();(0,pe.setIcon)(c,r);let l=a.createDiv("header-title");l.setText(t),(0,pe.setTooltip)(a,t),this.component.registerDomEvent(a,"click",d=>{var h;((h=s.settingEl.previousElementSibling)!=null?h:s.settingEl).scrollIntoView({behavior:"smooth"}),this.updateHeaderElClassOnScroll(d)}),o==null||o({headerEl:a,iconEl:c,titleEl:l}),this.iconHeadings.set(i,s),this.headerEls.set(i,a)}),s}updateHeaderElClass(){var r,o,s;let t=this.containerEl.getBoundingClientRect().height,i=Array.from(this.iconHeadings.entries());for(let a=0;a<i.length;a++){let c=i[a][1].settingEl.getBoundingClientRect().top,l=(o=(r=i[a+1])==null?void 0:r[1].settingEl.getBoundingClientRect().top)!=null?o:this.contentEl.getBoundingClientRect().bottom,d=c<=t*.85&&l>=t*.2+this.headerContainerEl.clientHeight,h=i[a][0];(s=this.headerEls.get(h))==null||s.toggleClass("is-active",d)}}updateHeaderElClassOnScroll(t){var o;let i=(o=t==null?void 0:t.win)!=null?o:activeWindow,r=i.setInterval(()=>this.updateHeaderElClass(),50);i.setTimeout(()=>i.clearInterval(r),1500)}scrollTo(t,i){let r=this.items[t];r&&this.scrollToSetting(r,i)}scrollToHeading(t,i){let r=this.headings.get(t);r&&this.scrollToSetting(r,i)}scrollToSetting(t,i){let r=t.settingEl;r&&this.containerEl.scrollTo({top:r.offsetTop-this.headerContainerEl.offsetHeight,...i})}openFromObsidianUrl(t){let i=t.setting;i.startsWith("heading:")?this.plugin.openSettingTab().scrollToHeading(i.slice(8)):mC(i)&&this.plugin.openSettingTab().scrollTo(i)}getVisibilityToggler(t,i){let r=()=>{i()?t.settingEl.show():t.settingEl.hide()};return r(),r}showConditionally(t,i){let r=Array.isArray(t)?t:[t],o=r.map(s=>this.getVisibilityToggler(s,i));return this.events.on("update",()=>o.forEach(s=>s())),r}addTextSetting(t,i,r){let o=this.addSetting(t).addText(s=>{s.setValue(this.plugin.settings[t]).setPlaceholder(i!=null?i:"").then(a=>{i&&(a.inputEl.size=Math.max(a.inputEl.size,a.inputEl.placeholder.length))}).onChange(async a=>{this.plugin.settings[t]=a,await this.plugin.saveSettings()}),r&&(this.component.registerDomEvent(s.inputEl,"blur",()=>{r(o)}),this.component.registerDomEvent(s.inputEl,"keypress",a=>{a.key==="Enter"&&r(o)}))});return o}addTextAreaSetting(t,i,r){return this.addSetting(t).addTextArea(o=>{o.setValue(this.plugin.settings[t]).setPlaceholder(i!=null?i:"").onChange(async s=>{this.plugin.settings[t]=s,await this.plugin.saveSettings()}),r&&this.component.registerDomEvent(o.inputEl,"blur",r)})}addNumberSetting(t){return this.addSetting(t).addText(i=>{i.setValue(""+this.plugin.settings[t]).setPlaceholder(""+Qn[t]).then(r=>r.inputEl.type="number").onChange(async r=>{this.plugin.settings[t]=r===""?Qn[t]:+r,await this.plugin.saveSettings()})})}addToggleSetting(t,i){return this.addSetting(t).addToggle(r=>{r.setValue(this.plugin.settings[t]).onChange(async o=>{this.plugin.settings[t]=o,await this.plugin.saveSettings(),i==null||i(o)})})}addColorPickerSetting(t,i){return this.addSetting(t).addColorPicker(r=>{r.setValue(this.plugin.settings[t]).onChange(async o=>{this.plugin.settings[t]=o,await this.plugin.saveSettings(),i==null||i(o)})})}addDropdownSetting(t,...i){let r=[],o=a=>a,s=a=>{};return Array.isArray(i[0])?(r=i[0],typeof i[1]=="function"&&(o=i[1]),typeof i[2]=="function"&&(s=i[2])):(r=Object.keys(i[0]),o=a=>i[0][a],typeof i[1]=="function"&&(s=i[1])),this.addSetting(t).addDropdown(a=>{var c;for(let l of r){let d=(c=o(l))!=null?c:l;a.addOption(l,d)}a.setValue(this.plugin.settings[t]).onChange(async l=>{this.plugin.settings[t]=l,await this.plugin.saveSettings(),s==null||s(l)})})}addIndexDropdownSetting(t,i,r,o){return this.addSetting(t).addDropdown(s=>{var l;for(let d of i){let h=(l=r==null?void 0:r(d))!=null?l:d;s.addOption(d,h)}let a=this.plugin.settings[t],c=i[a];s.setValue(c).onChange(async d=>{let h=i.indexOf(d);h!==-1&&(this.plugin.settings[t]=h,await this.plugin.saveSettings(),o==null||o(h))})})}addEnumDropdownSetting(t,i,r){return this.addSetting(t).addDropdown(o=>{for(let[s,a]of Object.entries(i))parseInt(s).toString()===s&&o.addOption(s,a);o.setValue(""+this.plugin.settings[t]).onChange(async s=>{this.plugin.settings[t]=+s,await this.plugin.saveSettings(),r==null||r(+s)})})}addSliderSetting(t,i,r,o){return this.addSetting(t).addSlider(s=>{s.setLimits(i,r,o).setValue(this.plugin.settings[t]).setDynamicTooltip().onChange(async a=>{this.plugin.settings[t]=a,await this.plugin.saveSettings()})})}addDesc(t){return this.addSetting().setDesc(t)}addFileLocationSetting(t,i,r,o){return[this.addDropdownSetting(t,fC,()=>this.redisplay()).then(i),this.addSetting().addText(s=>{s.setValue(this.plugin.settings[r]),s.inputEl.size=30,new Nr(this.app,s.inputEl).onSelect(({item:a})=>{this.plugin.settings[r]=a.path,this.plugin.saveSettings()})}).then(s=>{o(s),this.plugin.settings[t]!=="folder"&&s.settingEl.hide()})]}addAttachmentLocationSetting(t,i,r){let o,s,a,c=()=>{let f=o.getValue();u.settingEl.toggle(f==="folder"),p.settingEl.toggle(f==="subfolder")},l=()=>{let f=o.getValue();return f==="root"?"/":f==="folder"?s.getValue()||i:f==="current"?"./":f==="subfolder"?"./"+(a.getValue()||i):""},d=f=>{if(f===""){o.setValue("obsidian");return}if(f==="/"){o.setValue("root");return}if(f!=="."&&f!=="./"){if(f.startsWith("./")){let m=f.slice(2);o.setValue("subfolder"),a.setValue(m!==i?m:"");return}o.setValue("folder"),s.setValue(f!==i?f:"");return}o.setValue("current")},h=this.addSetting(t).addDropdown(f=>{f.onChange(async()=>{c(),this.plugin.settings[t]=l(),await this.plugin.saveSettings()}),f.addOptions(Rw),o=f}),u=this.addSetting().addText(f=>{f.setPlaceholder(i).onChange(async()=>{this.plugin.settings[t]=l(),await this.plugin.saveSettings()}),new Nr(this.app,f.inputEl).onSelect(()=>{setTimeout(async()=>{this.plugin.settings[t]=l(),await this.plugin.saveSettings()})}),s=f}),p=this.addSetting().addText(f=>{f.setPlaceholder(i).onChange(async()=>{this.plugin.settings[t]=l(),await this.plugin.saveSettings()}),a=f});r(h,u,p),d(this.plugin.settings[t]),c()}addFundingButton(){let t=i=>{let r=i.firstElementChild;(r==null?void 0:r.tagName)==="svg"&&(r.setAttribute("fill","var(--color-red)"),r.setAttribute("stroke","var(--color-red)"))};return this.addHeading("Support development","funding","lucide-heart",({iconEl:i})=>t(i)).setDesc(`If you find PDF++ helpful, please consider supporting the development to help me keep this plugin alive.
|
||
|
||
If you prefer PayPal, please make donations via Ko-fi. Thank you!`).then(i=>{let r=i.infoEl,o=i.settingEl.firstElementChild;if(!o)return;let s=i.settingEl.createDiv();s.appendChild(o),s.appendChild(r),i.settingEl.prepend(s),i.settingEl.id="pdf-plus-funding",s.id="pdf-plus-funding-icon-info-container",o.id="pdf-plus-funding-icon",t(o)}).addButton(i=>{i.setButtonText("GitHub Sponsors").onClick(()=>{open("https://github.com/sponsors/RyotaUshio")})}).addButton(i=>{i.setButtonText("Buy Me a Coffee").onClick(()=>{open("https://www.buymeacoffee.com/ryotaushio")})}).addButton(i=>{i.setButtonText("Ko-fi").onClick(()=>{open("https://ko-fi.com/ryotaushio")})})}async renderMarkdown(t,i){this.promises.push(this._renderMarkdown(t,i)),i.addClass("markdown-rendered")}async _renderMarkdown(t,i){await pe.MarkdownRenderer.render(this.app,Array.isArray(t)?t.join(`
|
||
`):t,i,"",this.component),i.childNodes.length===1&&i.firstChild instanceof HTMLParagraphElement&&i.replaceChildren(...i.firstChild.childNodes)}addColorSetting(t){let i=this.plugin.settings.colors,[r,o]=Object.entries(i)[t],s=o;return this.addSetting().addText(a=>{a.setPlaceholder("Color name (case-insensitive)").then(c=>{c.inputEl.size=c.inputEl.placeholder.length,(0,pe.setTooltip)(c.inputEl,"Color name (case-insensitive)")}).setValue(r).onChange(async c=>{if(c in i){new pe.Notice("This color name is already used."),a.inputEl.addClass("error");return}a.inputEl.removeClass("error"),delete i[r];for(let l of["defaultColor","backlinkHoverColor"]){let d=this.items[l];if(d){let h=d.components[0].selectEl.querySelector(`:scope > option:nth-child(${t+2})`);h&&(h.value=c,h.textContent=c)}}this.plugin.settings.defaultColor===r&&(this.plugin.settings.defaultColor=c),r=c,i[r]=o,await this.plugin.saveSettings(),this.plugin.loadStyle()})}).addColorPicker(a=>{a.setValue(o),a.onChange(async c=>{s=o,o=c,i[r]=o,await this.plugin.saveSettings(),this.plugin.loadStyle()})}).addExtraButton(a=>{a.setIcon("rotate-ccw").setTooltip("Return to previous color").onClick(async()=>{o=s,i[r]=o,await this.plugin.saveSettings(),this.plugin.loadStyle(),this.redisplay()})}).addExtraButton(a=>{a.setIcon("trash").setTooltip("Delete").onClick(async()=>{this.plugin.settings.defaultColor===r&&(this.plugin.settings.defaultColor=""),delete i[r],await this.plugin.saveSettings(),this.plugin.loadStyle(),this.redisplay()})})}addNameValuePairListSetting(t,i,r,o,s){let{getName:a,setName:c,getValue:l,setValue:d}=o,h=t[i],u=a(h),p=l(h);return this.addSetting().addText(f=>{f.setPlaceholder(s.name.placeholder).then(m=>{m.inputEl.size=s.name.formSize,(0,pe.setTooltip)(m.inputEl,s.name.placeholder)}).setValue(u).onChange(async m=>{if(t.some(g=>a(g)===m)){new pe.Notice(s.name.duplicateMessage),f.inputEl.addClass("error");return}f.inputEl.removeClass("error"),c(h,m);let x=this.items[r];if(x){let g=x.components[0].selectEl.querySelector(`:scope > option:nth-child(${i+1})`);g&&(g.value=m,g.textContent=m)}await this.plugin.saveSettings()})}).then(f=>{s.value.hasOwnProperty("formRows")?f.addTextArea(m=>{m.setPlaceholder(s.value.placeholder).then(x=>{x.inputEl.rows=s.value.formRows,x.inputEl.cols=s.value.formSize,(0,pe.setTooltip)(x.inputEl,s.value.placeholder)}).setValue(p).onChange(async x=>{d(h,x),await this.plugin.saveSettings()})}):f.addText(m=>{m.setPlaceholder(s.value.placeholder).then(x=>{x.inputEl.size=s.value.formSize,(0,pe.setTooltip)(x.inputEl,s.value.placeholder)}).setValue(p).onChange(async x=>{d(h,x),await this.plugin.saveSettings()})})}).addExtraButton(f=>{f.setIcon("trash").setTooltip("Delete").onClick(async()=>{if(t.length===1){new pe.Notice(s.delete.deleteLastMessage);return}t.splice(i,1),this.plugin.settings[r]>i?this.plugin.settings[r]--:this.plugin.settings[r]===i&&(this.plugin.settings[r]=0),await this.plugin.saveSettings(),this.redisplay()})}).setClass("no-border")}addNamedTemplatesSetting(t,i,r,o){return this.addNameValuePairListSetting(t,i,r,{getName:s=>s.name,setName:(s,a)=>{s.name=a},getValue:s=>s.template,setValue:(s,a)=>{s.template=a}},o)}addDisplayTextSetting(t){return this.addNamedTemplatesSetting(this.plugin.settings.displayTextFormats,t,"defaultDisplayTextFormatIndex",{name:{placeholder:"Format name",formSize:30,duplicateMessage:"This format name is already used."},value:{placeholder:"Display text format",formSize:50},delete:{deleteLastMessage:"You cannot delete the last display text format."}})}addCopyCommandSetting(t){return this.addNamedTemplatesSetting(this.plugin.settings.copyCommands,t,"defaultColorPaletteActionIndex",{name:{placeholder:"Format name",formSize:30,duplicateMessage:"This format name is already used."},value:{placeholder:"Copied text format",formSize:50,formRows:3},delete:{deleteLastMessage:"You cannot delete the last copy format."}})}addHotkeySettingButton(t,i){t.addButton(r=>{r.setButtonText("Open hotkeys settings").onClick(()=>{this.plugin.openHotkeySettingTab(i)})})}addPagePreviewSettingButton(t){return t.addButton(i=>{i.setButtonText("Open page preview settings").onClick(()=>{this.app.setting.openTabById("page-preview")})})}addRequireModKeyOnHoverSetting(t){let i=this.app.workspace.hoverLinkSources[t].display,r=this.plugin.requireModKeyForLinkHover(t);return this.addSetting().setName(`Require ${_n} key while hovering`).setDesc(`Currently ${r?"required":"not required"}. You can toggle this on and off in the core Page Preview plugin settings > ${i}.`).then(o=>this.addPagePreviewSettingButton(o))}addIconSetting(t,i){let r=a=>a.startsWith("lucide-")?a.slice(7):a,o=a=>a.startsWith("lucide-")?a:"lucide-"+a,s=a=>{var d;let c=(d=a.controlEl.querySelector(":scope>.icon-preview"))!=null?d:a.controlEl.createDiv("icon-preview");(0,pe.setIcon)(c,o(this.plugin.settings[t]));let l=a.components[0];(!i||this.plugin.settings[t])&&!c.childElementCount?(l.inputEl.addClass("error"),(0,pe.setTooltip)(l.inputEl,"No icon found")):(l.inputEl.removeClass("error"),(0,pe.setTooltip)(l.inputEl,""))};return this.addTextSetting(t,void 0,a=>{this.plugin.settings[t]=r(this.plugin.settings[t]),this.plugin.saveSettings(),s(a)}).then(a=>{this.renderMarkdown(["You can use any icon from [Lucide](https://lucide.dev/icons)."+(i?" Leave blank to remove icons.":"")],a.descEl)}).then(s)}addProductMenuSetting(t,i){let r=Qn[t],o={color:"Colors","copy-format":"Copy format",display:"Display text format"},s=this.plugin.settings[t],a=this.addHeading(i,t);a.addExtraButton(d=>{d.setTooltip("Reset").setIcon("rotate-ccw").onClick(()=>{s.length=0,s.push(...r),this.redisplay()})});let c=[],l=r.slice();for(let d=0;d<r.length;d++){if(d>0){if(!pe.Platform.isDesktopApp)return;let h=c[d-1].getValue();if(!h)return;l.remove(h)}this.addSetting().then(h=>{pe.Platform.isDesktopApp&&h.setName(d===0?"Top-level menu":d===1?"Submenu":"Subsubmenu")}).addDropdown(h=>{var p;for(let f of l)h.addOption(f,o[f]);d>0&&h.addOption("","None");let u=(p=s[d])!=null?p:"";u&&!l.includes(u)&&l[0]&&(s[d]=l[0],u=s[d]),h.setValue(u).onChange(f=>{if(f)s[d]=f;else for(;s.length>d;)s.pop();this.plugin.saveSettings(),this.redisplay()}),c.push(h)}).then(h=>{h.settingEl.addClasses(["no-border","small-padding"])})}return a}createLinkTo(t,i){return createEl("a","",r=>{r.onclick=o=>{this.scrollTo(t,{behavior:"smooth"}),this.updateHeaderElClassOnScroll(o)},activeWindow.setTimeout(()=>{let o=this.items[t];!i&&o&&(i='"'+o.nameEl.textContent+'"'),r.setText(i!=null?i:"")})})}createLinkToHeading(t,i){return createEl("a","",r=>{r.onclick=o=>{this.scrollToHeading(t,{behavior:"smooth"}),this.updateHeaderElClassOnScroll(o)},activeWindow.setTimeout(()=>{let o=this.headings.get(t);!i&&o&&(i='"'+o.nameEl.textContent+'"'),r.setText(i!=null?i:"")})})}redisplay(){let t=this.contentEl.scrollTop;this.display(),this.contentEl.scroll({top:t}),this.events.trigger("update")}async display(){var c,l;Pa.openIfNecessary(this.plugin),this.plugin.checkDeprecatedSettings(),this.headerContainerEl.empty(),this.contentEl.empty(),this.promises=[],this.component.load(),activeWindow.setTimeout(()=>this.updateHeaderElClass());for(let d of["wheel","touchmove"])this.component.registerDomEvent(this.contentEl,d,(0,pe.debounce)(()=>this.updateHeaderElClass(),100),{passive:!0});this.contentEl.createDiv("top-note",async d=>{await this.renderMarkdown(["> [!TIP]","> - You can easily navigate through the settings by clicking the icons in the header above.","> - Some settings below require reopening tabs or reloading the plugin to take effect.","> - [Visit the docs](https://ryotaushio.github.io/obsidian-pdf-plus/)",'> - <a id="pdf-plus-funding-link-placeholder"></a>'],d);let h=document.getElementById("pdf-plus-funding-link-placeholder");h&&(h.textContent="Help me keep PDF++ alive!",h.onclick=u=>{this.scrollToHeading("funding",{behavior:"smooth"}),this.updateHeaderElClassOnScroll(u)})}),this.addHeading("Editing PDF files","edit","lucide-save").then(d=>{this.renderMarkdown(["By allowing PDF++ to modify PDF files directly, you can:","- Add, edit and delete highlights and links in PDF files.","- Add, insert, delete or extract PDF pages and auto-update links.","- Add, rename, move and delete outline items.","- Edit [page labels](https://ryotaushio.github.io/obsidian-pdf-plus/page-labels.html).","","[Learn more](https://ryotaushio.github.io/obsidian-pdf-plus/editing-pdfs.html)"],d.descEl)}),this.addToggleSetting("enablePDFEdit",()=>this.redisplay()).setName("Enable PDF editing").then(d=>{this.renderMarkdown(['PDF++ will not modify PDF files themselves unless you turn on this option. <span style="color: var(--text-warning);">The author assumes no responsibility for any data corruption. Please make sure you have a backup of your files.</span> Also note that PDF++ currently does not support editing encrypted PDFs.'],d.descEl)}),this.plugin.settings.enablePDFEdit&&this.addTextSetting("author","Your name",d=>{let h=d.components[0].inputEl;h.toggleClass("error",!h.value)}).setName("Annotation author").setDesc("It must contain at least one character in order to make annotations referenceable & editable within Obsidian.").then(d=>{let h=d.components[0].inputEl;h.toggleClass("error",!h.value)}),this.addHeading("Backlink highlighting","backlink-highlight","lucide-highlighter").setDesc('Annotate PDF files with highlights just by linking to text selection. You can easily copy links to selections using color palette in the toolbar. See the "Color palette" section for the details.').then(d=>d.settingEl.addClass("normal-margin-top")),this.addToggleSetting("highlightBacklinks").setName("Highlight backlinks in PDF viewer").setDesc("In the PDF viewer, any referenced text will be highlighted for easy identification."),this.addDesc("Try turning off the following options if you experience performance issues."),this.addToggleSetting("highlightBacklinksInEmbed").setName("Highlight backlinks in PDF embeds"),this.addToggleSetting("highlightBacklinksInCanvas").setName("Highlight backlinks in Canvas"),this.addToggleSetting("highlightBacklinksInHoverPopover").setName("Highlight backlinks in hover popover previews"),this.addDropdownSetting("selectionBacklinkVisualizeStyle",hC).setName("Highlight style").setDesc("How backlinks to a text selection should be visualized."),this.addDropdownSetting("hoverHighlightAction",uC,()=>this.redisplay()).setName("Action when hovering over highlighted text").setDesc(`Easily open backlinks or display a popover preview of it by pressing ${Bt("Mod").toLowerCase()} (by default) while hovering over a highlighted text in PDF viewer.`),this.addRequireModKeyOnHoverSetting("pdf-plus"),this.addToggleSetting("doubleClickHighlightToOpenBacklink").setName("Double click highlighted text to open the corresponding backlink"),this.addHeading("How backlinks are opened","open-backlink").setDesc("Customize how backlinks are opened when "+(this.plugin.settings.hoverHighlightAction==="open"?`${Bt("Mod").toLowerCase()}+hovering over or `:"")+"double-clicking highlighted text."),this.addDropdownSetting("paneTypeForFirstMDLeaf",Ou,()=>this.redisplay()).setName("How to open the markdown file when no markdown file is opened"),(this.plugin.settings.paneTypeForFirstMDLeaf==="left-sidebar"||this.plugin.settings.paneTypeForFirstMDLeaf==="right-sidebar")&&(this.addToggleSetting("alwaysUseSidebar").setName("Always use sidebar to open markdown files from highlighted text").setDesc(`If turned on, the ${this.plugin.settings.paneTypeForFirstMDLeaf==="left-sidebar"?"left":"right"} sidebar will be used whether there is existing markdown tabs or not.`),this.addToggleSetting("singleMDLeafInSidebar").setName("Don't open multiple panes in sidebar").setDesc("Turn this on if you want to open markdown files in a single pane in the sidebar.")),this.addSetting("ignoreExistingMarkdownTabIn").setName("Ignore existing markdown tabs in...").setDesc("If some notes are opened in the ignored splits, PDF++ will still open the backlink in the way specified in the previous setting. For example, you might want to ignore the left sidebar if you are pinning a certain note (e.g. daily note) in it.");let t={leftSplit:"Left sidebar",rightSplit:"Right sidebar",floatingSplit:"Popout windows"},i=this.plugin.settings.ignoreExistingMarkdownTabIn;for(let[d,h]of Object.entries(t)){let u=d;this.addSetting().addToggle(p=>{p.setValue(i.includes(u)).onChange(f=>{f?i.push(u):i.remove(u),this.plugin.saveSettings()})}).then(p=>{p.controlEl.prepend(createEl("span",{text:h})),p.settingEl.addClasses(["no-border","ignore-split-setting"])})}this.addToggleSetting("dontActivateAfterOpenMD").setName("Don't move focus to markdown view after opening a backlink").setDesc("This option will be ignored when you open a link in a tab in the same split as the current tab."),this.addHeading("Colors","color"),this.addSetting("colors").setName("Highlight colors").then(d=>this.renderMarkdown(['You can optionally highlight the selection with **a specified color** by appending "&color=`<COLOR NAME>`" to a link text, where `<COLOR NAME>` is one of the colors that you register below. e.g `[[file.pdf#page=1&selection=4,0,5,20&color=red]].` ',"Color names are case-insensitive. ","",'You can ues the color palette in PDF toolbars to easily copy links with "&color=..." appended automatically. See the "Color palette" section for the details.',"",'You can also opt not to use this plugin-dependent notation and apply a single color (the "default highlight color" setting) to all highlights.',"","These colors are also available as CSS variables, e.g. `--pdf-plus-yellow-rgb`. You can use them for various CSS customizations. See [README](https://github.com/RyotaUshio/obsidian-pdf-plus?tab=readme-ov-file#css-customization) for the details."],d.descEl)).addButton(d=>{d.setIcon("plus").setTooltip("Add a new color").onClick(()=>{this.plugin.settings.colors[""]="#",this.redisplay()})});for(let d=0;d<Object.keys(this.plugin.settings.colors).length;d++)this.addColorSetting(d).setClass("no-border");this.addToggleSetting("highlightColorSpecifiedOnly",()=>this.redisplay()).setName("Highlight a backlink only if a color is specified").setDesc("By default, all backlinks are highlighted. If this option is enabled, a backlink will be highlighted only when a color is specified in the link text."),this.plugin.settings.highlightColorSpecifiedOnly||this.addDropdownSetting("defaultColor",["",...Object.keys(this.plugin.settings.colors)],d=>d||"Obsidian default",()=>this.plugin.loadStyle()).setName("Default highlight color").setDesc("If no color is specified in link text, this color will be used."),this.addHeading("Backlink indicator bounding rectangles","backlink-bounding-rect"),this.addToggleSetting("showBoundingRectForBacklinkedAnnot").setName("Show bounding rectangles for backlinked annotations").setDesc("Bounding rectangles will be shown for annotations with backlinks."),this.addHeading("Backlink indicator icons","backlink-icon").setDesc("Show icons for text selections, annotations, offsets and rectangular selections with backlinks."),this.addToggleSetting("showBacklinkIconForSelection").setName("Show icon for text selection with backlinks"),this.addToggleSetting("showBacklinkIconForAnnotation").setName("Show icon for annotation with backlinks"),this.addToggleSetting("showBacklinkIconForOffset").setName("Show icon for offset backlinks"),this.addToggleSetting("showBacklinkIconForRect").setName("Show icon for rectangular selection backlinks"),this.addSliderSetting("backlinkIconSize",10,100,5).setName("Icon size"),this.addHeading("Rectangular selection embeds","rect","lucide-box-select").then(d=>{this.renderMarkdown(["You can embed a specified rectangular area from a PDF page into your note. [Learn more](https://ryotaushio.github.io/obsidian-pdf-plus/embedding-rectangular-selections.html)"],d.descEl)}),this.addToggleSetting("rectEmbedStaticImage",()=>this.redisplay()).setName("Paste as image").setDesc("By default, rectangular selection embeds are re-rendered every time you open the markdown file, which can slow down the loading time. Turn on this option to replace them with static images and improve the performance."),this.plugin.settings.rectEmbedStaticImage&&(this.addDropdownSetting("rectImageFormat",{file:"Create & embed image file","data-url":"Embed as data URL"},()=>this.redisplay()).setName("How to embed the image").then(d=>this.renderMarkdown(['- "Create & embed image file": Create an image file and embed it in the markdown file. The image file will be saved in the folder you specify in the "Default location for new attachments" setting in the core Obsidian settings.',`- "Embed as data URL": Embed the image as a [data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) without creating a file. This option is useful when you don't want to mess up your attachment folder. It also helps you make your notes self-contained.`],d.descEl)),this.plugin.settings.rectImageFormat==="file"&&this.addDropdownSetting("rectImageExtension",pC).setName("Image file format")),this.addToggleSetting("rectFollowAdaptToTheme").setName('Follow "adapt to theme" setting').setDesc('If enabled, rectangular selection embeds will be inverted in color when the "Adapt to theme" setting is enabled in the PDF toolbar. This will help you reduce eye strain in dark mode.'),this.addSliderSetting("rectEmbedResolution",10,200,1).setName("Rendering resolution").setDesc("The higher the value, the better the rendering quality, but the longer time it takes to render. The default value is 100."),this.addToggleSetting("includeColorWhenCopyingRectLink").setName("Include the selected color's name when copying a link to a rectangular selection").setDesc("When enabled, the name of the color selected in the color palette will be included in the link text. As a result, the rectangular selection will be highlighted with the specified color in the PDF viewer."),this.addToggleSetting("zoomToFitRect").setName("Zoom to fit rectangular selection when opening link").setDesc(createFragment(d=>{d.appendText("When enabled, the PDF viewer will zoom to fit the rectangular selection when you open a link to it. Otherwise, the viewer will keep the current zoom level. "),d.appendText("Note: check out the "),d.appendChild(this.createLinkTo("dblclickEmbedToOpenLink")),d.appendText(" option as well.")})),this.addHeading("PDF++ callouts","callout","lucide-quote").then(d=>{this.renderMarkdown("Create [callouts](https://help.obsidian.md/Editing+and+formatting/Callouts) with the same color as the highlight color without any CSS snippet scripting.",d.descEl)}),this.addToggleSetting("useCallout").setName("Use PDF++ callouts").then(d=>{this.renderMarkdown(["You can also disable this option and choose to use your own custom [CSS snippets](https://help.obsidian.md/Extending+Obsidian/CSS+snippets). See our [README](https://github.com/RyotaUshio/obsidian-pdf-plus?tab=readme-ov-file#css-customization) for the details."],d.descEl)}),this.addTextSetting("calloutType",void 0,()=>this.redisplay()).setName("Callout type name").then(d=>{var p,f;let h=this.plugin.settings.calloutType,u=(f=(p=Object.keys(this.plugin.settings.colors).first())==null?void 0:p.toLowerCase())!=null?f:"yellow";this.renderMarkdown([`For example, if this is set to "${h}", use the following syntax to insert a callout with color "${u}":`,"","```markdown",`> [!${h}|${u}] Title`,"> Content","```","",'You can also use explicit RGB color values like "255, 208, 0" instead of color names.',"I recommend setting this as a custom color palette action in the setting below, like so:","","```markdown","> [!{{calloutType}}|{{color}}] {{linkWithDisplay}}","> {{text}}","```"],d.descEl)}),this.addIconSetting("calloutIcon",!0).setName("Callout icon"),this.addHeading("PDF toolbar","toolbar","lucide-palette"),this.addToggleSetting("hoverableDropdownMenuInToolbar").setName("Hoverable dropdown menus").setDesc("(Not supported on smartphones) When enabled, the dropdown menus (\u2304) in the PDF toolbar will be opened by hovering over the icon, and you don't need to click it."),this.addToggleSetting("zoomLevelInputBoxInToolbar").setName("Show zoom level box").setDesc("A input box will be added to the PDF toolbar, which indicated the current zoom level and allows you to set the zoom level by typing a number."),this.addHeading("Color palette","palette").setDesc('Clicking a color while selecting a range of text will copy a link to the selection with "&color=..." appended.'),this.addToggleSetting("colorPaletteInToolbar",()=>{this.redisplay(),this.plugin.loadStyle()}).setName("Show color palette in the toolbar").setDesc("A color palette will be added to the toolbar of the PDF viewer."),this.plugin.settings.colorPaletteInToolbar&&(this.addToggleSetting("noColorButtonInColorPalette",()=>this.plugin.loadStyle()).setName('Show "without specifying color" button in the color palette'),this.addToggleSetting("colorPaletteInEmbedToolbar",()=>this.plugin.loadStyle()).setName("Show color palette in PDF embeds as well"),this.addIndexDropdownSetting("defaultColorPaletteItemIndex",["",...Object.keys(this.plugin.settings.colors)],d=>d||"Don't specify").setName("Default color selected in color palette").setDesc("This color will be selected in the color palette in a newly opened PDF viewer."),this.addToggleSetting("syncColorPaletteItem",()=>this.redisplay()).setName("Share a single color among all color palettes").setDesc("If disabled, you can specify a different color for each color palette."),this.plugin.settings.syncColorPaletteItem&&this.addToggleSetting("syncDefaultColorPaletteItem").setName("Share the color with newly opened color palettes as well"),this.addToggleSetting("quietColorPaletteTooltip").setName("Quiet tooltips in color palette").setDesc(`When disabled${Qn.quietColorPaletteTooltip?"":" (default)"}, the tooltip will show the color name as well as the selected copy format and display text format. If enabled, only the color name will be shown.`)),this.addHeading("Viewer options","viewer-option","lucide-monitor"),this.addSetting("defaultZoomValue").setName("Default zoom level").setDesc("This option will be ignored in PDF embeds.").addDropdown(d=>{d.addOptions({"page-width":"Fit width","page-height":"Fit height","page-fit":"Fit page",custom:"Custom..."}).setValue(this.plugin.settings.defaultZoomValue.startsWith("page-")?this.plugin.settings.defaultZoomValue:"custom").onChange(async h=>{h==="custom"&&(h="100"),this.plugin.settings.defaultZoomValue=h,r(),await this.plugin.saveSettings()})});let r=this.getVisibilityToggler(this.addSetting().setName("Custom zoom level (%)").addSlider(d=>{d.setLimits(10,400,5).setDynamicTooltip().setValue(this.plugin.settings.defaultZoomValue.startsWith("page-")?100:parseInt(this.plugin.settings.defaultZoomValue)).onChange(async h=>{this.plugin.settings.defaultZoomValue=""+h,await this.plugin.saveSettings()})}),()=>!this.plugin.settings.defaultZoomValue.startsWith("page-"));this.addEnumDropdownSetting("scrollModeOnLoad",{0:"Vertical",1:"Horizontal",3:"In-page",2:"Wrapped"},()=>o()).setName("Default scroll mode");let o=this.getVisibilityToggler(this.addEnumDropdownSetting("spreadModeOnLoad",{0:"Single page",1:"Two page (odd)",2:"Two page (even)"}).setName("Default spread mode"),()=>this.plugin.settings.scrollModeOnLoad!==2);if(this.addToggleSetting("usePageUpAndPageDown").setName("Use PageUp/PageDown key to go to previous/next page").setDesc(createFragment(d=>{d.appendText("You need to reopen PDF viewers after changing this option. Note that you can achieve the same thing (and even more advanced stuff) using "),d.appendChild(this.createLinkToHeading("vim","Vim keybindings")),d.appendText(".")})),this.addHeading("Context menu in PDF viewer","context-menu","lucide-mouse-pointer-click").setDesc("(Desktop & tablet only) Customize the behavior of the context menu that pops up when you right-click in the PDF viewer. For mobile users, see also the next section."),this.addToggleSetting("replaceContextMenu",()=>this.redisplay()).setName("Replace the built-in context menu with PDF++'s custom menu"),!this.plugin.settings.replaceContextMenu)this.addSetting().setName("Display text format").setDesc('You can customize the display text format in the setting "Copied text foramt > Display text format" below.');else{this.addToggleSetting("showContextMenuOnTablet").setName("Show context menu on tablet devices as well").setDesc('By default, Obsidian does not show the context menu after text selection on mobile devices, including tablets (iPad, etc.). If you want to show the context menu on tablets, turn this option on. Even if this option is turned off, you copy select the OS-native "Copy" option to run the "'+this.plugin.lib.commands.stripCommandNamePrefix(this.plugin.lib.commands.getCommand("copy-link-to-selection").name)+'" command.');let d=bg();this.addDropdownSetting("showContextMenuOnMouseUpIf",{always:"Always",...Object.fromEntries(Object.entries(d).map(([h,u])=>[h,`${u} key is pressed`])),never:"Never"}).setName("Show the context menu right after selecting text when...").setDesc(createFragment(h=>{h.appendText("If "),h.appendChild(this.createLinkToHeading("auto-copy","auto-copy")),h.appendText(" is enabled, it will be prioritized and the context menu will not be shown.")}));{this.addHeading("Menu items","context-menu-items").setDesc("Customize which menu items to show.");let h={action:'Look up "(selection)"',selection:"Copy link to selection","write-file":`Add ${this.plugin.settings.selectionBacklinkVisualizeStyle} to file`,annotation:"Copy link to annotation","modify-annotation":"Edit/delete annotation",link:"Copy PDF link / Search on Google Scholar / Paste copied PDF link to selection / Copy URL",text:"Copy selected text / Copy annotated text",search:"Copy link to search",speech:"Read aloud selected text",page:"Copy link to page",settings:"Customize menu..."},u=this.plugin.settings.contextMenuConfig,p=[];for(let f=0;f<u.length;f++){let m=u[f],x=h[m.id];x&&p.push(this.addSetting().setName(x).addToggle(g=>{g.setValue(m.visible).onChange(b=>{m.visible=b,this.plugin.saveSettings()})}).then(g=>{m.id==="action"?g.setDesc("Available only on macOS."):m.id==="write-file"||m.id==="modify-annotation"?g.setDesc(createFragment(b=>{b.appendText("Requires "),b.appendChild(this.createLinkTo("enablePDFEdit","PDF editing")),b.appendText(" to be enabled.")})):m.id==="link"?g.setDesc('"Search on Google Scholar": Available when right-clicking citation links in PDFs.'):m.id==="speech"?g.setDesc(createFragment(b=>{b.appendText("Requires the "),b.createEl("a",{text:"Text to Speech",href:"obsidian://show-plugin?id=obsidian-tts"}),b.appendText(" plugin to be enabled.")})):m.id==="page"&&g.setDesc("Available when right-clicking with no text selected.")}))}}this.addDesc("Customize nested menus."),this.addProductMenuSetting("selectionProductMenuConfig","Copy link to selection"),this.addProductMenuSetting("writeFileProductMenuConfig",`Add ${this.plugin.settings.selectionBacklinkVisualizeStyle} to file`),this.addProductMenuSetting("annotationProductMenuConfig","Copy link to annotation"),this.addToggleSetting("updateColorPaletteStateFromContextMenu").setName("Update color palette from context menu").setDesc(`In the context menu, the items (color, copy format and display text format) set in the color palette are selected by default. If this option is enabled, selecting a menu item will also update the color palette state and hence the default-selected items in the context menu as well. Even if this option is enabled, you can prevent the color palette from being updated by holding down the ${Bt("Mod")} key while selecting the menu item.`)}this.addHeading("Copying on mobile","mobile-copy","lucide-smartphone"),this.addDropdownSetting("mobileCopyAction",gC).setName('Action triggered by selecting "Copy" option on mobile devices'),this.addHeading("Copying links via hotkeys","copy-hotkeys","lucide-keyboard"),this.addSetting().setName("Set up hotkeys for copying links").then(d=>{this.renderMarkdown(["PDF++ offers two commands for quickly copying links via hotkeys.","","1. **Copy link to selection or annotation:**"," Copies a link to the text selection or focused annotation in the PDF viewer, which is formatted according to the options specified in the PDF toolbar.",' <br>If the "Add highlights to file directly" toggle switch in the PDF toolbar is on, it first adds a highlight annotation directly to the PDF file, and then copies the link to the created annotation.',"2. **Copy link to current page view:** Copies a link, clicking which will open the PDF file at the current scroll position and zoom level.","",'After running this command, you can add the copied link to the PDF file itself: select a range of text, right-click, and then click "Paste copied link to selection".'],d.descEl)}).then(d=>this.addHotkeySettingButton(d,`${this.plugin.manifest.name}: Copy link`)),this.addSetting().setName("Further workflow enhancements").setDesc(createFragment(d=>{d.appendText("See the "),d.appendChild(this.createLinkToHeading("auto",'"Auto-copy / auto-focus / auto-paste"')),d.appendText(" section below.")})),this.addHeading("Other shortcut commands","other-hotkeys","lucide-layers-2"),this.addSetting().then(d=>{this.renderMarkdown(["PDF++ also offers the following commands for reducing mouse clicks on the PDF toolbar by assigning hotkeys to them.","","- **Show outline** / **show thumbnail**","- **Close PDF siderbar**","- **Zoom in** / **zoom out**","- **Fit width** / **fit height**","- **Go to page**: This command brings the cursor to the page number input field in the PDF toolbar. Enter a page number and press Enter to jump to the page.","- **Show copy format menu** / **show display text format menu**: By running thes commands via hotkeys and then using the arrow keys, you can quickly select a format from the menu without using the mouse.","- **Enable PDF edit** / **disable PDF edit**","- And more..."],d.descEl)}).then(d=>this.addHotkeySettingButton(d)),this.addToggleSetting("executeBuiltinCommandForOutline").setName(`Show outline: when the active file is not PDF, run the core Outline plugin's "Show outline" command`).setDesc("By turning this on, you can use the same hotkey to show the outline of a markdown file and a PDF file without key conflict."),this.addToggleSetting("closeSidebarWithShowCommandIfExist").setName("Show outline / show thumbnail: close the sidebar if it is already open").setDesc("Enabling this will allow you to use the same hotkey to close the sidebar if it is already open."),this.addToggleSetting("executeBuiltinCommandForZoom").setName('Zoom in / zoom out: when the active file is not PDF, run the built-in "Zoom in" / "Zoom out" command').setDesc("By turning this on, you can use the same hotkey to zoom in/out a PDF viewer or any other type of view without key conflict."),this.addToggleSetting("executeFontSizeAdjusterCommand").setName(`Zoom in / zoom out: when the active file is not PDF, run Font Size Adjuster's "Increment font size" / "Decrement font size" command`).then(d=>{this.renderMarkdown(["(Requires the [Font Size Adjuster](obsidian://show-plugin?id=font-size) plugin enabled) ",'If both of this option and the above option are enabled, this option will be prioritized. The built-in "Zoom in" / "Zoom out" command will be executed if Font Size Adjuster is not installed or disabled.'],d.descEl)}),this.addHeading("Copy templates","template","lucide-copy").setDesc("The template format that will be used when copying a link to a selection or an annotation in PDF viewer. "),this.addSetting().then(d=>this.renderMarkdown(["Each `{{...}}` will be evaluated as a JavaScript expression given the variables listed below.","","Available variables are:","","- `file` or `pdf`: The PDF file ([`TFile`](https://docs.obsidian.md/Reference/TypeScript+API/TFile)). Use `file.basename` for the file name without extension, `file.name` for the file name with extension, `file.path` for the full path relative to the vault root, etc.","- `page`: The page number (`Number`). The first page is always page 1.","- `pageLabel`: The page number displayed in the counter in the toolbar (`String`). This can be different from `page`.",` - **Tip**: You can modify page labels with PDF++'s "Edit page labels" command.`,"- `pageCount`: The total number of pages (`Number`).","- `text` or `selection`: The selected text (`String`). In the case of links to annotations written directly in the PDF file, this is the text covered by the annotation.",'- `comment`: In the case of links to annotations written directly in the PDF file, this is the comment associated with the annotation (`String`). Otherwise, it is an empty string `""`.',"- `folder`: The folder containing the PDF file ([`TFolder`](https://docs.obsidian.md/Reference/TypeScript+API/TFolder)). This is an alias for `file.parent`.","- `obsidian`: The Obsidian API. See the [official developer documentation](https://docs.obsidian.md/Home) and the type definition file [`obsidian.d.ts`](https://github.com/obsidianmd/obsidian-api/blob/master/obsidian.d.ts) for the details.","- `dv`: Available if the [Dataview](obsidian://show-plugin?id=dataview) plugin is enabled. See Dataview's [official documentation](https://blacksmithgu.github.io/obsidian-dataview/api/code-reference/) for the details. You can use it almost the same as the `dv` variable available in `dataviewjs` code blocks, but there are some differences. For example, `dv.current()` is not available.","- `quickAddApi`: Available if the [QuickAdd](obsidian://show-plugin?id=quickadd) plugin is enabled. See QuickAdd's [official documentation](https://quickadd.obsidian.guide/docs/QuickAddAPI) for the details.","- `app`: The global Obsidian app object ([`App`](https://docs.obsidian.md/Reference/TypeScript+API/App)).","- and other global variables such as:",' - [`moment`](https://momentjs.com/docs/#/displaying/): For exampe, use `moment().format("YYYY-MM-DD")` to get the current date in the "YYYY-MM-DD" format.',"",`Additionally, you have access to the following variables when the PDF file has a corresponding markdown file specified via the "${this.plugin.settings.proxyMDProperty}" property(see the "Property to associate a markdown file to a PDF file" setting below): `,"","- `md`: The markdown file associated with the PDF file ([`TFile`](https://docs.obsidian.md/Reference/TypeScript+API/TFile)). If there is no such file, this is `null`.","- `properties`: The properties of `md` as an `Object` mapping each property name to the corresponding value. If `md` is `null` or the `md` has no properties, this is an empty object `{}`.",'\n<span style="color: var(--text-warning);">The following variables are deprecated and will be removed in the near future</span>: `linkedFile`, `linkedFileProperties`. Remove them from your templates if you are using them.'],d.descEl)),this.addTextSetting("proxyMDProperty",void 0,()=>this.redisplay()).setName("Property to associate a markdown file to a PDF file").then(d=>{this.renderMarkdown(["Create a markdown file with this property to associate it with a PDF file. The PDF file is specified by a link, e.g. `[[file.pdf]]`.","It can be used to store properties/metadata that can be used when copying links.","",'<span style="color: var(--text-warning);">[Dataview](obsidian://show-plugin?id=dataview)\'s inline field syntax such as `'+this.plugin.settings.proxyMDProperty+":: [[file.pdf]]` is supported for the time being, but it is deprecated and will likely not work in the future.</span>","","Remarks:","- Make sure the associated markdown file can be uniquely identified. For example, if you have two markdown files `file1.md` and `file2.md` and both of their `"+this.plugin.settings.proxyMDProperty+"` properties point to the same PDF file, PDF++ cannot determine which markdown file is associated with `file.pdf`. However, PDF++ v1.0.0 or later will add support for this.","- If you are in Source Mode, be sure to enclose the link in double quotes."],d.descEl)}),this.addSetting("displayTextFormats").setName("Display text format").then(d=>this.renderMarkdown(["This format will be also used when copying a link to a selection or an annotation from the context menu."],d.descEl)).addButton(d=>{d.setIcon("plus").setTooltip("Add a new display text format").onClick(()=>{this.plugin.settings.displayTextFormats.push({name:"",template:""}),this.redisplay()})});for(let d=0;d<this.plugin.settings.displayTextFormats.length;d++)this.addDisplayTextSetting(d);this.addIndexDropdownSetting("defaultDisplayTextFormatIndex",this.plugin.settings.displayTextFormats.map(d=>d.name),void 0,()=>{this.plugin.loadStyle()}).setName("Default display text format"),this.addToggleSetting("syncDisplayTextFormat").setName("Share a single display text format among all PDF viewers").setDesc("If disabled, you can specify a different display text format for each PDF viewer from the dropdown menu in the PDF toolbar."),this.plugin.settings.syncDisplayTextFormat&&this.addToggleSetting("syncDefaultDisplayTextFormat").setName("Share the display text format with newly opened PDF viewers as well"),this.addSetting("copyCommands").setName("Custom copy formats").then(d=>this.renderMarkdown(["Customize the format to use when you copy a link by clicking a color palette item or running the commands while selecting a range of text in PDF viewer.","","In addition to the variables listed above, here you can use","","- `link`: The link without display text, e.g. `[[file.pdf#page=1&selection=0,1,2,3&color=red]]`,","- `linkWithDisplay`: The link with display text, e.g. `[[file.pdf#page=1&selection=0,1,2,3&color=red|file, page 1]]`,",'- `linktext`: The text content of the link without brackets and the display text, e.g. `file.pdf#page=1&selection=0,1,2,3&color=red`<br>(if the "Use \\[\\[Wikilinks\\]\\]" setting is turned off, `linktext` will be properly encoded for use in markdown links),',"- `display`: The display text formatted according to the above setting, e.g. `file, page 1`,","- `linkToPage`: The link to the page without display text, e.g. `[[file.pdf#page=1]]`,","- `linkToPageWithDisplay`: The link to the page with display text, e.g. `[[file.pdf#page=1|file, page 1]]`,",`- \`calloutType\`: The callout type you specify in the "Callout type name" setting above, in this case, "${this.plugin.settings.calloutType}", and`,"- `color` (or `colorName`): In the case of text selections, this is the name of the selected color in lowercase, e.g. `red`. If no color is specified, it will be an empty string. For text markup annotations (e.g. highlights and underlines), this is the RGB value of the color, e.g. `255,208,0`."],d.descEl)).addButton(d=>{d.setIcon("plus").setTooltip("Add a new copy command").onClick(()=>{this.plugin.settings.copyCommands.push({name:"",template:""}),this.redisplay()})});for(let d=0;d<this.plugin.settings.copyCommands.length;d++)this.addCopyCommandSetting(d);this.addIndexDropdownSetting("defaultColorPaletteActionIndex",this.plugin.settings.copyCommands.map(d=>d.name),void 0,()=>{this.plugin.loadStyle()}).setName("Default action when clicking on color palette"),this.addToggleSetting("syncColorPaletteAction").setName("Share a single action among all PDF viewers").setDesc("If disabled, you can specify a different action for each PDF viewer from the dropdown menu in the PDF toolbar."),this.plugin.settings.syncColorPaletteAction&&this.addToggleSetting("syncDefaultColorPaletteAction").setName("Share the action with newly opened PDF viewers as well"),this.addToggleSetting("useAnotherCopyTemplateWhenNoSelection",()=>this.redisplay()).setName("Use another template when no text is selected").setDesc("For example, you can use this to copy a link to the page when there is no selection."),this.plugin.settings.useAnotherCopyTemplateWhenNoSelection&&this.addTextSetting("copyTemplateWhenNoSelection").setName("Link copy template used when no text is selected"),this.addHeading("Auto-copy / auto-focus / auto-paste","auto","lucide-zap").setDesc("Speed up the process of copying & pasting PDF links to your notes with some automation. Note that you can't activate both of auto-focus and auto-paste at the same time."),this.addHeading("Auto-copy","auto-copy").setDesc(`If enabled, the "Copy link to selection or annotation" command will be triggered automatically every time you select a range of text in a PDF viewer, meaning you don't even have to press a hotkey to copy a link.`),this.addToggleSetting("autoCopy",()=>this.plugin.autoCopyMode.toggle(this.plugin.settings.autoCopy)).setName("Enable").setDesc("You can also toggle auto-focus via an icon in the left ribbon menu if the next setting is enabled."),this.addToggleSetting("autoCopyToggleRibbonIcon",()=>this.redisplay()).setName("Show an icon to toggle auto-copy in the left ribbon menu").setDesc("You can also toggle this mode via a command. Reload the plugin after changing this setting to take effect."),this.plugin.settings.autoCopyToggleRibbonIcon&&this.addIconSetting("autoCopyIconName",!1).setName("Icon name").then(d=>{d.descEl.appendText(" Reload the plugin after changing this setting to take effect.")}),this.addHeading("Auto-focus","auto-focus").setDesc("If enabled, a markdown file will be focused automatically after copying a link to PDF text selection or annotation."),this.addSetting("autoFocus").setName("Enable").setDesc("Recommended if you prefer something less agressive than auto-paste. You can also toggle auto-focus via an icon in the left ribbon menu if the next setting is enabled.").addToggle(d=>{d.setValue(this.plugin.settings.autoFocus).onChange(h=>{this.plugin.toggleAutoFocus(h),this.redisplay()})}),this.addToggleSetting("autoFocusToggleRibbonIcon",()=>this.redisplay()).setName("Show an icon to toggle auto-focus in the left ribbon menu").setDesc("You can also toggle auto-focus via a command. Reload the plugin after changing this setting to take effect."),this.plugin.settings.autoFocusToggleRibbonIcon&&this.addIconSetting("autoFocusIconName",!1).setName("Icon name").then(d=>{d.descEl.appendText(" Reload the plugin after changing this setting to take effect.")}),this.addDropdownSetting("autoFocusTarget",Nw).setName("Target markdown file to focus on"),this.addHeading("Auto-paste","auto-paste").setDesc("If enabled, the copied link to PDF text selection or annotation will be automatically pasted into a markdown file right after copying."),this.addSetting("autoPaste").setName("Enable").setDesc("You can also toggle auto-paste via an icon in the left ribbon menu if the next setting is enabled.").addToggle(d=>{d.setValue(this.plugin.settings.autoPaste).onChange(h=>{this.plugin.toggleAutoPaste(h),this.redisplay()})}),this.addToggleSetting("autoPasteToggleRibbonIcon",()=>this.redisplay()).setName("Show an icon to toggle auto-paste in the left ribbon menu").setDesc("You can also toggle auto-paste via a command. Reload the plugin after changing this setting to take effect."),this.plugin.settings.autoPasteToggleRibbonIcon&&this.addIconSetting("autoPasteIconName",!1).setName("Icon name").then(d=>{d.descEl.appendText(" Reload the plugin after changing this setting to take effect.")}),this.addDropdownSetting("autoPasteTarget",Nw).setName("Target markdown file to paste links to"),this.addToggleSetting("focusEditorAfterAutoPaste",()=>this.events.trigger("update")).setName("Focus editor after auto-pasting").setDesc("If enabled, auto-paste will focus on the editor after pasting."),this.showConditionally(this.addToggleSetting("clearSelectionAfterAutoPaste").setName("Clear text selection after auto-pasting").setDesc("If enabled, the text selection in the PDF viewer will be automatically cleared after performing auto-pasting."),()=>!this.plugin.settings.focusEditorAfterAutoPaste),this.addToggleSetting("respectCursorPositionWhenAutoPaste",()=>this.events.trigger("update")).setName("Respect current cursor position").setDesc("When enabled, triggering auto-pasting will paste the copied text at the current cursor position if the target note is already opened. If disabled, the text will be always appended to the end of the note."),this.showConditionally(this.addToggleSetting("blankLineAboveAppendedContent").setName("Blank line above the appended content").setDesc("Because you disabled the option above, auto-pasted content will be added at the end of your note. Enable this option to make sure that you have a blank line between the existing content and the newly added content."),()=>!this.plugin.settings.respectCursorPositionWhenAutoPaste),this.addHeading("General","auto-general").setDesc("General settings that apply to both auto-focus and auto-paste."),this.addToggleSetting("openAutoFocusTargetIfNotOpened",()=>this.redisplay()).setName("Open target markdown file if not opened"),this.plugin.settings.openAutoFocusTargetIfNotOpened&&(this.addDropdownSetting("howToOpenAutoFocusTargetIfNotOpened",{...Ou,"hover-editor":"Hover Editor"},()=>this.redisplay()).setName("How to open target markdown file when not opened").then(d=>{this.renderMarkdown('The "Hover Editor" option is available if the [Hover Editor](obsidian://show-plugin?id=obsidian-hover-editor) plugin is enabled.',d.descEl),this.plugin.settings.howToOpenAutoFocusTargetIfNotOpened==="hover-editor"&&(this.app.plugins.plugins["obsidian-hover-editor"]||d.descEl.addClass("error"))}),this.showConditionally(this.addToggleSetting("closeHoverEditorWhenLostFocus").setName("Close Hover Editor when it loses focus").setDesc("This option will not affect the behavior of Hover Editor outside of PDF++."),()=>this.plugin.settings.howToOpenAutoFocusTargetIfNotOpened==="hover-editor"),this.addToggleSetting("closeSidebarWhenLostFocus").setName("Auto-hide sidebar when it loses focus after auto-pasting").setDesc("After auto-pasting into a markdown file opened in the left or right sidebar, the sidebar will be automatically collapsed once it loses focus."),this.addToggleSetting("openAutoFocusTargetInEditingView").setName("Always open in editing view").setDesc('This option can be useful especially when you set the previous option to "Hover Editor".')),this.addToggleSetting("executeCommandWhenTargetNotIdentified",()=>this.redisplay()).setName("Execute command when target file cannot be determined").setDesc("When PDF++ cannot determine which markdown file to focus on or paste to, it will execute the command specified in the next option to let you pick a target file.");let s=(l=(c=this.app.commands.findCommand(`${this.plugin.manifest.id}:create-new-note`))==null?void 0:c.name)!=null?l:"PDF++: Create new note for auto-focus or auto-paste";this.plugin.settings.executeCommandWhenTargetNotIdentified&&(this.addSetting("commandToExecuteWhenTargetNotIdentified").setName("Command to execute").then(d=>{var h,u,p,f,m,x;this.renderMarkdown(["Here's some examples of useful commands:","",`- ${(u=(h=this.app.commands.findCommand("file-explorer:new-file"))==null?void 0:h.name)!=null?u:"Create new note"}`,`- ${(f=(p=this.app.commands.findCommand("file-explorer:new-file-in-new-pane"))==null?void 0:p.name)!=null?f:"Create note to the right"}`,`- ${(x=(m=this.app.commands.findCommand("switcher:open"))==null?void 0:m.name)!=null?x:"Quick switcher: Open quick switcher"}`,"- [Omnisearch](obsidian://show-plugin?id=omnisearch): Vault search","- [Hover Editor](obsidian://show-plugin?id=obsidian-hover-editor): Open new Hover Editor",`- **${s}**: See below for the details.`],d.descEl)}).addText(d=>{let h=this.plugin.settings.commandToExecuteWhenTargetNotIdentified,u=this.app.commands.findCommand(h);u?d.setValue(u.name):(d.inputEl.addClass("error"),d.setPlaceholder("Command not found")),d.inputEl.size=30,new Hc(this,d.inputEl)}),this.addSliderSetting("autoPasteTargetDialogTimeoutSec",1,60,1).setName("[Auto-paste] Maximum time to wait for the command to open the target file (sec)").setDesc("The link will be auto-pasted into the first markdown file that you open within this time frame after the command is executed. If you don't open any markdown file during this time, the auto-paste will not occur. This option is not related to auto-focus.")),this.addHeading(`The "${s}" command`,"create-new-note-command").setDesc('Creates a new note and opens it in a new pane specified in the "How to open target markdown file when not opened" option.'),this.addTextSetting("newFileNameFormat","Leave blank not to specify").setName("New note title format").then(async d=>{await this.renderMarkdown(['If this option is left blank or the active file is not a PDF, "Untitled \\*" will be used (if the language is set to English). You can use the following variables: `file`, `folder`, `app`, and other global variables such as `moment`.'],d.descEl),d.descEl.createSpan({text:"See "}),d.descEl.appendChild(this.createLinkToHeading("template","above")),d.descEl.createSpan({text:" for the details about these variables."})}),this.addTextSetting("newFileTemplatePath","Leave blank not to use a template").setName("Template file path").then(async d=>{await this.renderMarkdown(["You can leave this blank if you don't want to use a template.","You can use `file`, `folder`, `app`, and other global variables such as `moment`."],d.descEl),d.descEl.createSpan({text:"See "}),d.descEl.appendChild(this.createLinkToHeading("template","above")),d.descEl.createSpan({text:" for the details about these variables."}),await this.renderMarkdown(["You can also include [Templater](obsidian://show-plugin?id=templater-obsidian) syntaxes in the template.",'In that case, make sure the "Trigger templater on new file creation" option is enabled in the Templater settings.',"","Example:","```","---",`${this.plugin.settings.proxyMDProperty}: "[[{{ file.path }}|{{ file.basename }}]]"`,"---",'<%* const title = await tp.system.prompt("Type note tile") -%>',"<%* await tp.file.rename(title) %>","```"],d.descEl);let h=d.components[0].inputEl;new Rc(this.app,h).onSelect(({item:u})=>{this.plugin.settings.newFileTemplatePath=u.path,this.plugin.saveSettings()})}),this.addHeading("PDF Annotations","annot","lucide-message-square"),this.addToggleSetting("annotationPopupDrag").setName("Drag & drop annotation popup to insert a link to the annotation").setDesc("Note that turning on this option disables text selection in the annotation popup (e.g. modified date, author, etc)."),this.addToggleSetting("showAnnotationPopupOnHover").setName("If an annotation has a comment, show the annotation popup on hover").setDesc("This is the same behavior as the PDF viewers of some web browsers (e.g. Chrome/Firefox). You may have to reopen the PDF file after changing this option."),this.addToggleSetting("renderMarkdownInStickyNote").setName("Render markdown in annotation popups when the annotation has text contents"),this.plugin.settings.enablePDFEdit&&(this.addSliderSetting("writeHighlightToFileOpacity",0,1,.01).setName("Highlight opacity"),this.addToggleSetting("defaultWriteFileToggle").setName("Write highlight to file by default").setDesc("You can turn this on and off with the toggle button in the PDF viewer toolbar."),this.addToggleSetting("syncWriteFileToggle").setName("Share the same toggle state among all PDF viewers").setDesc("If disabled, you can specify whether to write highlights to files for each PDF viewer."),this.plugin.settings.syncWriteFileToggle&&this.addToggleSetting("syncDefaultWriteFileToggle").setName("Share the state with newly opened PDF viewers as well"),this.addToggleSetting("enableAnnotationContentEdit",()=>this.redisplay()).setName("Enable editing annotation contents").setDesc('If enabled, you can edit the text contents of annotations embedded in PDF files by clicking the "Edit" button in the annotation popup.'),this.addToggleSetting("enableAnnotationDeletion",()=>this.redisplay()).setName("Enable annotation deletion").setDesc('If enabled, you can delete annotations embedded in PDF files by clicking the "Delete" button in the annotation popup.'),this.plugin.settings.enableAnnotationDeletion&&(this.addToggleSetting("warnEveryAnnotationDelete",()=>this.redisplay()).setName("Always warn when deleting an annotation"),this.plugin.settings.warnEveryAnnotationDelete||this.addToggleSetting("warnBacklinkedAnnotationDelete").setName("Warn when deleting an annotation with backlinks"))),this.addHeading("PDF internal links","pdf-link","link").setDesc("Make it easier to work with internal links embedded in PDF files."),this.addToggleSetting("clickPDFInternalLinkWithModifierKey").then(d=>{this.renderMarkdown("Use [modifier keys](https://help.obsidian.md/User+interface/Tabs#Open+a+link) to open PDF internal links in various ways",d.nameEl)}).then(d=>{this.plugin.requireModKeyForLinkHover(Zn.HOVER_LINK_SOURCE_ID)&&d.setDesc(`You may want to turn this off to avoid conflicts with hover+${_n}.`),d.descEl.appendText("Reopen tabs or reload the app after changing this option.")}),this.addToggleSetting("enableHoverPDFInternalLink",()=>this.events.trigger("update")).setName(`Show a popover preview of PDF internal links by hover(+${_n})`),this.showConditionally(this.addRequireModKeyOnHoverSetting(Zn.HOVER_LINK_SOURCE_ID),()=>this.plugin.settings.enableHoverPDFInternalLink),this.addToggleSetting("recordPDFInternalLinkHistory").setName("Enable history navigation for PDF internal links").setDesc('When enabled, clicking the "navigate back" (left arrow) button will take you back to the page you were originally viewing before clicking on an internal link in the PDF file.'),this.addSetting().setName("Copy PDF link as Obsidian link").setDesc('(Requires custom context menu enabled) In the PDF viewer, right-click a PDF-embedded link and then click "Copy PDF link as Obsidian link". It will copy the PDF link as an Obsidian link that you can paste into markdown files. Clicking the pasted link will take you to the same destination as the original PDF link.'),this.addSetting().setName('"Copy link to current page view" command').setDesc("Running this command while viewing a PDF file will copy a link, clicking which will open the PDF file at the current scroll position and zoom level."),this.addSetting().setName("Paste copied link to a text selection in a PDF file").setDesc('(Requires custom context menu & PDF editing enabled) After copying a link by the above actions, you can "paste" it to a selection in PDF to create a PDF internal link. To do this, right-click the selection and click "Paste copied link to selection".'),this.plugin.settings.replaceContextMenu&&this.plugin.settings.enablePDFEdit&&(this.addToggleSetting("pdfLinkBorder",()=>this.redisplay()).setName("Draw borders around internal links").setDesc('Specify whether PDF internal links that you create by "Paste copied link to selection" should be surrounded by borders.'),this.plugin.settings.pdfLinkBorder&&this.addColorPickerSetting("pdfLinkColor").setName("Border color of internal links").setDesc('Specify the border color of PDF internal links that you create by "Paste copied link to selection".')),this.addHeading("Citations in PDF (experimental)","citation","lucide-graduation-cap").then(d=>{this.renderMarkdown(["Enjoy supercharged experiences of working with citations in PDF files, just like in [Google Scholar's PDF viewer](https://scholar.googleblog.com/2024/03/supercharge-your-pdf-reading-follow.html).","","The current implementation is based on some pretty primitive hand-crafted rules, and there is a lot of room for improvement. Code contribution is much appreciated!"],d.descEl)}),this.addDropdownSetting("actionOnCitationHover",Wg,()=>this.events.trigger("update")).setName(`Hover(+${_n}) on a citation link to show...`).then(d=>{this.renderMarkdown([`- **${Wg["pdf-plus-bib-popover"]}**: Recommended. It works without any additional stuff, but you can further boost the visibility by installing [AnyStyle](https://github.com/inukshuk/anystyle) (desktop only).`,`- **${Wg["google-scholar-popover"]}**: Requires [Surfing](obsidian://show-plugin?id=surfing) ver. 0.9.9 or higher enabled. Be careful not to exceed the rate limit of Google Scholar.`],d.descEl)}),this.showConditionally(this.addRequireModKeyOnHoverSetting(pn.HOVER_LINK_SOURCE_ID),()=>this.plugin.settings.actionOnCitationHover!=="none"),this.showConditionally(this.addSetting("anystylePath").setName("AnyStyle path").addText(d=>{d.setPlaceholder("anystyle").setValue(this.plugin.settings.anystylePath).onChange(h=>{this.plugin.settings.anystylePath=h,this.plugin.saveLocalStorage("anystylePath",h)})}).then(d=>{d.components[0].inputEl.size=35,this.renderMarkdown(["The path to the [AnyStyle](https://github.com/inukshuk/anystyle) executable. ","","PDF++ extracts the bibliography text from the PDF file for each citation link and uses AnyStyle to convert the extracted text into a structured metadata.","It works just fine without AnyStyle, but you can further boost the visibility by installing it and providing its path here.","","Note: This setting is saved in the [local storage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) instead of `data.json` in the plugin folder."],d.descEl)}),()=>pe.Platform.isDesktopApp&&this.plugin.settings.actionOnCitationHover==="pdf-plus-bib-popover"),this.showConditionally(this.addTextAreaSetting("citationIdPatterns",void 0,()=>this.plugin.setCitationIdRegex()).setName("Citation ID patterns").setDesc("You don't need to care about this option in most use cases - just leave it to the default value. For advanced users: most internal links in PDF files use so-called destination names to specify the target location. This option allows you to specify the regular expressions (separated by line breaks) that determine whether a given internal link is a citation link based on the dsetination name."),()=>this.plugin.settings.actionOnCitationHover!=="none"),this.showConditionally([this.addDesc("Try turning off the following options if you experience performance issues."),this.addToggleSetting("enableBibInEmbed").setName("Enable bibliography extraction in PDF embeds"),this.addToggleSetting("enableBibInCanvas").setName("Enable bibliography extraction in Canvas"),this.addToggleSetting("enableBibInHoverPopover").setName("Enable bibliography extraction in hover popover previews")],()=>this.plugin.settings.actionOnCitationHover!=="none"),this.addHeading("External links in PDF","pdf-external-link","external-link").setDesc("Make it easier to work with external links embedded in PDF files."),this.addToggleSetting("popoverPreviewOnExternalLinkHover").setName(`Show a popover preview of external links by hover(+${_n})`).then(d=>{this.renderMarkdown(["Requires [Surfing](obsidian://show-plugin?id=surfing) ver. 0.9.9 or higher enabled."],d.descEl)}),this.showConditionally(this.addRequireModKeyOnHoverSetting(Kr.HOVER_LINK_SOURCE_ID),()=>this.plugin.settings.popoverPreviewOnExternalLinkHover),this.addHeading("PDF sidebar","sidebar","sidebar-left").setDesc("General settings for the PDF sidebar. The options specific to the outline and thumbnails are located in the corresponding sections below."),this.addToggleSetting("autoHidePDFSidebar").setName("Click on PDF content to hide sidebar").setDesc("Requires reopening the tabs after changing this option."),this.addEnumDropdownSetting("defaultSidebarView",{1:"Thumbnails",2:"Outline"}).setName("Default sidebar view").setDesc("Reopen PDFs after changing this option."),this.addHeading("PDF outline (table of contents)","outline","lucide-list").setDesc('Power up the outline view of the built-in PDF viewer: add, rename, or delete items via the right-click menu and the "Add to outline" command, drag & drop items to insert a section link, and more.'),this.addToggleSetting("clickOutlineItemWithModifierKey").then(d=>{this.renderMarkdown("Click PDF outline with [modifier keys](https://help.obsidian.md/User+interface/Tabs#Open+a+link) to open target section in various ways",d.nameEl)}).then(d=>{this.plugin.requireModKeyForLinkHover(Yn.HOVER_LINK_SOURCE_ID)&&d.setDesc(`You may want to turn this off to avoid conflicts with hover+${_n}.`),d.descEl.appendText("Reopen tabs or reload the app after changing this option.")}),this.addToggleSetting("popoverPreviewOnOutlineHover",()=>this.events.trigger("update")).setName(`Show popover preview by hover(+${_n})`).setDesc("Reopen tabs or reload the app after changing this option."),this.showConditionally(this.addRequireModKeyOnHoverSetting(Yn.HOVER_LINK_SOURCE_ID),()=>this.plugin.settings.popoverPreviewOnOutlineHover),this.addToggleSetting("recordHistoryOnOutlineClick").setName("Record to history when clicking an outline item").setDesc("Reopen tabs or reload the app after changing this option."),this.addToggleSetting("outlineContextMenu").setName("Replace the built-in context menu in the outline with a custom one").setDesc("This enables you to insert a section link with a custom format by right-clicking an item in the outline. Moreover, you will be able to add, rename, or delete outline items if PDF modification is enabled."),this.addToggleSetting("outlineDrag").setName("Drag & drop outline item to insert link to section").setDesc("Grab an item in the outline and drop it to a markdown file to insert a section link. Changing this option requires reopening the tabs or reloading the app."),(this.plugin.settings.outlineContextMenu||this.plugin.settings.outlineDrag)&&(this.addTextSetting("outlineLinkDisplayTextFormat").setName("Display text format").then(d=>{let h=d.components[0];h.inputEl.size=30}),this.addTextAreaSetting("outlineLinkCopyFormat").setName("Copy format").then(d=>{let h=d.components[0];h.inputEl.rows=3,h.inputEl.cols=30})),this.addHeading("Copy outline as markdown","outline-copy").setDesc('You can copy PDF outline as a markdown list or headings using the commands "Copy outline as markdown list" and "Copy outline as markdown headings".'),this.addTextSetting("copyOutlineAsListDisplayTextFormat").setName("List: display text format").then(d=>{let h=d.components[0];h.inputEl.size=30}),this.addTextAreaSetting("copyOutlineAsListFormat").setName("List: copy format").setDesc("You don't need to include leading hyphens in the template.").then(d=>{let h=d.components[0];h.inputEl.rows=3,h.inputEl.cols=30}),this.addTextSetting("copyOutlineAsHeadingsDisplayTextFormat").setName("Headings: display text format").then(d=>{let h=d.components[0];h.inputEl.size=30}),this.addTextAreaSetting("copyOutlineAsHeadingsFormat").setName("Headings: copy format").setDesc("You don't need to include leading hashes in the template.").then(d=>{let h=d.components[0];h.inputEl.rows=3,h.inputEl.cols=30}),this.addSliderSetting("copyOutlineAsHeadingsMinLevel",1,6,1).setName("Headings: minimum level").setDesc("The copied headings will start at this level."),this.addHeading("PDF thumbnails","thumbnail","lucide-gallery-thumbnails"),this.addToggleSetting("clickThumbnailWithModifierKey").then(d=>{this.renderMarkdown("Click PDF thumbnails with [modifier keys](https://help.obsidian.md/User+interface/Tabs#Open+a+link) to open target page in various ways",d.nameEl)}).then(d=>{this.plugin.requireModKeyForLinkHover(Jn.HOVER_LINK_SOURCE_ID)&&d.setDesc(`You may want to turn this off to avoid conflicts with hover+${_n}`),d.descEl.appendText("Reopen tabs or reload the app after changing this option.")}),this.addToggleSetting("popoverPreviewOnThumbnailHover",()=>this.events.trigger("update")).setName(`Show popover preview by hover(+${_n})`).setDesc("Reopen tabs or reload the app after changing this option."),this.showConditionally(this.addRequireModKeyOnHoverSetting(Jn.HOVER_LINK_SOURCE_ID),()=>this.plugin.settings.popoverPreviewOnThumbnailHover),this.addToggleSetting("recordHistoryOnThumbnailClick").setName("Record to history when clicking a thumbnail").setDesc("Reopen tabs or reload the app after changing this option."),this.addToggleSetting("thumbnailContextMenu").setName("Replace the built-in context menu in thumbnails with a custom one").setDesc("This enables you to copy a page link with a custom display text format specified in the PDF toolbar by right-clicking a thumbnail. Moreover, you will be able to insert, delete, extract pages if PDF modification is enabled."),this.addToggleSetting("thumbnailDrag").setName("Drag & drop PDF thumbnail to insert link to page").then(d=>{this.renderMarkdown(["Grab a thumbnail image and drop it to a markdown file to insert a page link. Changing this option requires reopening the tabs or reloading the app.","","Note: When disabled, drag-and-drop will cause the thumbnail image to be paste as a data url, which is seemingly Obsidian's bug."],d.descEl)}),(this.plugin.settings.thumbnailContextMenu||this.plugin.settings.thumbnailDrag)&&(this.addTextSetting("thumbnailLinkDisplayTextFormat").setName("Display text format").then(d=>{let h=d.components[0];h.inputEl.size=30}),this.addTextAreaSetting("thumbnailLinkCopyFormat").setName("Copy format").then(d=>{let h=d.components[0];h.inputEl.rows=3,h.inputEl.cols=30})),this.addHeading("PDF page composer (experimental)","composer","lucide-blocks").then(d=>{this.renderMarkdown(['Add, insert, delete or extract PDF pages via commands and **automatically update all the related links in the entire vault**. The "Editing PDF files directly" option has to be enabled to use these features.'],d.descEl)}),this.addToggleSetting("warnEveryPageDelete",()=>this.redisplay()).setName("Always warn when deleting a page"),this.plugin.settings.warnEveryPageDelete||this.addToggleSetting("warnBacklinkedPageDelete").setName("Warn when deleting a page with backlinks"),this.addToggleSetting("extractPageInPlace").setName("Remove the extracted pages from the original PDF by default"),this.addToggleSetting("askExtractPageInPlace").setName("Ask whether to remove the extracted pages from the original PDF before extracting"),this.addToggleSetting("openAfterExtractPages",()=>this.redisplay()).setName("Open extracted PDF file").setDesc('If enabled, the newly created PDF file will be opened after running the commands "Extract this page to a new file" or "Divide this PDF into two files at this page".'),this.plugin.settings.openAfterExtractPages&&this.addDropdownSetting("howToOpenExtractedPDF",Ou).setName("How to open"),this.addHeading("Page labels","page-label").then(d=>{this.renderMarkdown(["Each page in a PDF document can be assigned a ***page label***, which can be different from the page indices.",'For example, a book might have a preface numbered as "i", "ii", "iii", ... and the main content numbered as "1", "2", "3", ...',"","PDF++ allows you to choose whether page labels should be kept unchanged or updated when inserting/removing/extracting pages. [Learn more](https://github.com/RyotaUshio/obsidian-pdf-plus/wiki/Page-labels)","",'You can also modify page labels directly using the command "Edit page labels".'],d.descEl)}),this.addDropdownSetting("pageLabelUpdateWhenInsertPage",_c).setName("Insert: default page label processing").setDesc('Applies to the commands "Insert page before/after this page".'),this.addToggleSetting("askPageLabelUpdateWhenInsertPage").setName("Insert: ask whether to update"),this.addDropdownSetting("pageLabelUpdateWhenDeletePage",_c).setName("Delete: default page label processing").setDesc('Applies to the command "Delete this page".'),this.addToggleSetting("askPageLabelUpdateWhenDeletePage").setName("Delete: ask whether to update"),this.addDropdownSetting("pageLabelUpdateWhenExtractPage",_c).setName("Extract: default page label processing").setDesc('Applies to the commands "Extract this page to a new file" and "Divide this PDF into two files at this page".'),this.addToggleSetting("askPageLabelUpdateWhenExtractPage").setName("Extract: ask whether to update"),this.addHeading("Opening links to PDF files","open-link","lucide-book-open"),this.addToggleSetting("alwaysRecordHistory").setName("Always record to history when opening PDF links").setDesc("By default, the history is recorded only when you open a link to a different PDF file. If enabled, the history will be recorded even when you open a link to the same PDF file as the current one, and you will be able to go back and forth the history by clicking the left/right arrow buttons even within a single PDF file."),this.addToggleSetting("singleTabForSinglePDF",()=>this.redisplay()).setName("Don't open a single PDF file in multiple tabs").then(d=>this.renderMarkdown('When opening a link to a PDF file without pressing any [modifier keys](https://help.obsidian.md/User+interface/Use+tabs+in+Obsidian#Open+a+link), a new tab will not be opened if the same file has already been already opened in another tab. Useful for annotating PDFs using a side-by-side view ("Split right"), displaying a PDF in one side and a markdown file in another.',d.descEl)),this.plugin.settings.singleTabForSinglePDF&&(this.addToggleSetting("dontActivateAfterOpenPDF").setName("Don't move focus to PDF viewer after opening a PDF link").setDesc("This option will be ignored when you open a PDF link in a tab in the same split as the PDF viewer."),this.addToggleSetting("highlightExistingTab",()=>this.redisplay()).setName("When opening a link to an already opened PDF file, highlight the tab"),this.plugin.settings.highlightExistingTab&&(this.addSliderSetting("existingTabHighlightOpacity",0,1,.01).setName("Highlight opacity of an existing tab"),this.addSliderSetting("existingTabHighlightDuration",.1,10,.05).setName("Highlight duration of an existing tab (sec)")),this.addToggleSetting("dontFitWidthWhenOpenPDFLink",()=>this.events.trigger("update")).setName("Preserve the current zoom level when opening a link to an already opened PDF file").setDesc("When you open a link to a PDF file that's already opened, Obsidian's default behavior causes the zoom level to be reset to fit the width of the PDF file to the viewer. If enabled, the current zoom level will be preserved. This option will be ignored in PDF embeds."),this.showConditionally(this.addToggleSetting("preserveCurrentLeftOffsetWhenOpenPDFLink").setName("Preserve the current horizontal scroll position").setDesc("This option will be ignored in PDF embeds."),()=>this.plugin.settings.dontFitWidthWhenOpenPDFLink)),this.addDropdownSetting("paneTypeForFirstPDFLeaf",Ou).setName("How to open PDF links when there is no open PDF file").then(d=>{this.renderMarkdown("This option will be ignored when you press [modifier keys](https://help.obsidian.md/User+interface/Use+tabs+in+Obsidian#Open+a+link) to explicitly specify how to open the link.",d.descEl)}),this.addToggleSetting("openLinkNextToExistingPDFTab").setName("Open PDF links next to an existing PDF tab").then(d=>this.renderMarkdown("If there is a PDF file opened in a tab, clicking a PDF link will first create a new tab next to it and then open the target PDF file in the created tab. This is especially useful when you are spliting the workspace vertically or horizontally and want PDF files to be always opened in one side. This option will be ignored when you press [modifier keys](https://help.obsidian.md/User+interface/Use+tabs+in+Obsidian#Open+a+link) to explicitly specify how to open the link.",d.descEl)),this.addToggleSetting("hoverPDFLinkToOpen").setName("Open PDF link instead of showing popover preview when target PDF is already opened").setDesc(`Press ${Bt("Mod").toLowerCase()} while hovering a PDF link to actually open it if the target PDF is already opened in another tab.`),this.addSetting().setName("Open PDF links with an external app").setDesc(createFragment(d=>{d.appendText("See the "),d.appendChild(this.createLinkToHeading("external-app")),d.appendText(" section for the details.")})),this.addSetting().setName("Clear highlights after a certain amount of time").addToggle(d=>{d.setValue(this.plugin.settings.highlightDuration>0).onChange(async h=>{this.plugin.settings.highlightDuration=h?this.plugin.settings.highlightDuration>0?this.plugin.settings.highlightDuration:1:0,await this.plugin.saveSettings(),this.redisplay()})}),this.plugin.settings.highlightDuration>0&&this.addSliderSetting("highlightDuration",.1,10,.05).setName("Highlight duration (sec)"),this.addToggleSetting("ignoreHeightParamInPopoverPreview").setName('Ignore "height" parameter in popover preview').setDesc('Obsidian lets you specify the height of a PDF embed by appending "&height=..." to a link, and this also applies to popover previews. Enable this option if you want to ignore the height parameter in popover previews.'),this.addHeading("Embedding PDF files","embed","picture-in-picture-2"),this.addToggleSetting("dblclickEmbedToOpenLink",()=>this.plugin.loadStyle()).setName("Double click PDF embeds to open links").setDesc("Double-clicking a PDF embed will open the embedded file."),this.addToggleSetting("trimSelectionEmbed",()=>this.redisplay()).setName("Trim selection/annotation embeds").then(d=>{this.renderMarkdown(['<span style="color: var(--text-warning);">(Deprecated in favor of the <a href="https://ryotaushio.github.io/obsidian-pdf-plus/embedding-rectangular-selections.html" class="external-link" target="_blank" rel="noopener">rectangular selection embed feature</a> introduced in PDF++ 0.36.0)</span>',"When embedding a selection or an annotation from a PDF file, only the target selection/annotation and its surroundings are displayed rather than the entire page."],d.descEl)}),this.plugin.settings.trimSelectionEmbed&&this.addSliderSetting("embedMargin",0,200,1).setName("Selection/annotation embeds margin (px)"),this.addToggleSetting("noSidebarInEmbed").setName("Hide sidebar in PDF embeds or PDF popover previews by default"),this.addToggleSetting("noSpreadModeInEmbed").setName(`Don't display PDF embeds or PDF popover previews in "two page" layout`).setDesc('Regardless of the "two page" layout setting in existing PDF viewer, PDF embeds and PDF popover previews will be always displayed in "single page" layout. You can still turn it on for each embed by clicking the "two page" button in the toolbar, if shown.'),this.addToggleSetting("noTextHighlightsInEmbed").setName("Don't highlight text in text selection embeds"),this.addToggleSetting("noAnnotationHighlightsInEmbed").setName("Don't highlight annotations in annotation embeds"),this.addToggleSetting("persistentTextHighlightsInEmbed").setName("Don't clear highlights in text selection embeds"),this.addToggleSetting("persistentAnnotationHighlightsInEmbed").setName("Don't clear highlights in annotation embeds"),this.addToggleSetting("embedUnscrollable").setName("Make PDF embeds with a page specified unscrollable").setDesc("After changing this option, you need to reopen tabs or reload the app."),this.addHeading("Backlinks pane for PDF files","backlink-view","links-coming-in").then(d=>this.renderMarkdown("Improve the built-in [backlinks pane](https://help.obsidian.md/Plugins/Backlinks) for better PDF experience.",d.descEl)),this.addToggleSetting("filterBacklinksByPageDefault").setName("Filter backlinks by page by default").setDesc('You can toggle this on and off with the "Show only backlinks in the current page" button at the top right of the backlinks pane.'),this.addToggleSetting("showBacklinkToPage").setName("Show backlinks to the entire page").setDesc("If turned off, only backlinks to specific text selections, annotations or locations will be shown when filtering the backlinks page by page."),this.addToggleSetting("highlightBacklinksPane").setName("Hover sync (PDF viewer \u2192 Backlinks pane)").setDesc("Hovering your mouse over highlighted text or annotation will also highlight the corresponding item in the backlink pane."),this.addToggleSetting("highlightOnHoverBacklinkPane").setName("Hover sync (Backlinks pane \u2192 PDF viewer)").setDesc("In the backlinks pane, hover your mouse over an backlink item to highlight the corresponding text or annotation in the PDF viewer. This option requires reopening or switching tabs to take effect."),this.plugin.settings.highlightOnHoverBacklinkPane&&this.addDropdownSetting("backlinkHoverColor",["",...Object.keys(this.plugin.settings.colors)],d=>d||"PDF++ default",()=>this.plugin.loadStyle()).setName("Highlight color for hover sync (Backlinks pane \u2192 PDF viewer)").setDesc('To add a new color, click the "+" button in the "highlight colors" setting above.'),this.addHeading("Search from links","search-link","lucide-search").then(d=>{this.renderMarkdown(["You can trigger full-text search by opening a link to a PDF file with a search query appended, e.g. `[[file.pdf#search=keyword]]`."],d.descEl)}),this.addHeading("Search options","search-option").then(d=>{this.renderMarkdown(["The behavior of the search links can be customized globally by the following settings. ","Alternatively, you can specify the behavior for each link by including the following query parameters in the link text: ","","- `&case-sensitive=true` or `&case-sensitive=false`","- `&highlight-all=true` or `&highlight-all=false`","- `&match-diacritics=true` or `&match-diacritics=false`","- `&entire-word=true` or `&entire-word=false`"],d.descEl)});let a={true:"Yes",false:"No",default:"Follow default setting"};this.addDropdownSetting("searchLinkCaseSensitive",a).setName("Case sensitive search"),this.addDropdownSetting("searchLinkHighlightAll",a).setName("Highlight all search results"),this.addDropdownSetting("searchLinkMatchDiacritics",a).setName("Match diacritics"),this.addDropdownSetting("searchLinkEntireWord",a).setName("Match whole word"),this.addHeading("Integration with external apps (desktop-only)","external-app","lucide-share"),this.addToggleSetting("openPDFWithDefaultApp",()=>this.redisplay()).setName("Open PDF links with an external app").setDesc("Open PDF links with the OS-defined default application for PDF files."),this.plugin.settings.openPDFWithDefaultApp&&this.addToggleSetting("openPDFWithDefaultAppAndObsidian").setName("Open PDF links in Obsidian as well").setDesc("Open the same PDF file both in the default app and Obsidian at the same time."),this.addToggleSetting("syncWithDefaultApp").setName("Sync the external app with Obsidian").setDesc("When you focus on a PDF file in Obsidian, the external app will also focus on the same file."),this.addToggleSetting("focusObsidianAfterOpenPDFWithDefaultApp").setName("Focus Obsidian after opening a PDF file with an external app").setDesc("Otherwise, the focus will be moved to the external app."),this.addHeading("View Sync","view-sync","lucide-eye").then(d=>{this.renderMarkdown(["Integrate more seamlessly with the [View Sync](https://github.com/RyotaUshio/obsidian-view-sync) plugin."],d.descEl)}),this.addToggleSetting("viewSyncFollowPageNumber",()=>this.redisplay()).setName("Sync page number"),this.plugin.settings.viewSyncFollowPageNumber&&this.addSliderSetting("viewSyncPageDebounceInterval",.1,1,.05).setName("Minimum update interval of the View Sync file (sec)"),this.addHeading("Dummy PDFs for external files","dummy","lucide-file-symlink").then(d=>{this.renderMarkdown(["Using dummy PDF files, you can seamlessly integrate PDF files located outside your vault as if they were inside. Note that this is an experimental feature.","[Learn more](https://ryotaushio.github.io/obsidian-pdf-plus/external-pdf-files.html)"],d.descEl)}),this.addAttachmentLocationSetting("dummyFileFolderPath","Dummy PDFs",(d,h,u)=>{d.setName("Default location for new dummy PDF files").setDesc(`Where newly created dummy PDF files are placed. If set to "${Rw.obsidian}", dummy files will be saved in the folder specified in Obsidian settings > Files and links > Default location for new attachments.`),h.setName("Dummy file folder path").setDesc("Place newly created dummy PDF files in this folder."),u.setName("Subfolder name").setDesc('If your file is under "vault/folder", and you set subfolder name to "attachments", dummy PDF files will be saved to "vault/folder/attachments".')}),this.addSetting("modifierToDropExternalPDFToCreateDummy").setName("Modifier key to create a dummy PDF file on drag & drop").setDesc("After dragging an external PDF file, drop it on the editor while pressing this modifier key to create a dummy file and insert a link to it. You can drag a URL to a PDF file on the web from within your browser (link, URL bar, bookmark, etc.) or a PDF file on your desktop machine from your file manager ("+(pe.Platform.isMacOS?"Finder":"File Explorer")+" etc.). Note that on mobile, you might need to start pressing the modifier key before starting the drag operation.").addDropdown(d=>{let h=pe.Platform.isMacOS||pe.Platform.isIosApp?"Alt":"Ctrl";for(let u of[[],["Shift"],[h],[h,"Shift"]])d.addOption(u.join("+"),u.length?u.map(Bt).join("+"):"None");d.setValue(this.plugin.settings.modifierToDropExternalPDFToCreateDummy.join("+")).onChange(async u=>{this.plugin.settings.modifierToDropExternalPDFToCreateDummy=u.split("+"),await this.plugin.saveSettings()})}),this.addSetting("externalURIPatterns").setName("URI patterns for PDF files").setDesc("Specify the URI pattens for PDFs in regular expressions. When dragging and dropping a URI/URL from your browser to Obsidian's editor, it will be used to check if the destination file is a PDF file. If you need multiple patterns, separate them with a new line.").addTextArea(d=>{d.inputEl.rows=8,d.inputEl.cols=30,d.setValue(this.plugin.settings.externalURIPatterns.join(`
|
||
`)),this.component.registerDomEvent(d.inputEl,"focusout",async()=>{let h=d.inputEl.value;this.plugin.settings.externalURIPatterns=h.split(`
|
||
`).map(u=>u.trim()).filter(u=>u),await this.plugin.saveSettings()})}),this.addHeading("Vim keybindings","vim","vim").then(d=>this.renderMarkdown("Tracked at [this GitHub issue](https://github.com/RyotaUshio/obsidian-pdf-plus/issues/119).",d.descEl)),this.addSetting().then(d=>{this.renderMarkdown(['The default keybindings are as follows. You can customize them be creating a "vimrc" file and providing its path in the setting below.',"","- `j`/`k`/`h`/`l`: Scroll down/up/left/right","- `J`: Go to next page","- `K`: Go to previous page","- `gg`: Go to first page","- `G`: Go to last page","- `0`/`^`/`H`: Go to top of current page","- `$`/`L`: Go to bottom of current page","- `<C-f>`/`<C-b>`: Scroll down/up as much as the viewer height (`C`=`Ctrl`)","- `<C-d>`/`<C-u>`: Scroll down/up half as much as the viewer height","- `/`/`?`: Search forward/backward","- `n`/`N`: Go to next/previous match","- `gn`/`gN`: Select search result","- `+`/`zi`: Zoom in","- `-`/`zo`: Zoom out","- `=`/`z0`: Reset zoom","- `r`: Rotate pages clockwise","- `R`: Rotate pages counterclockwise","- `y`: Yank (copy) selected text",`- \`c\`: Run the "${this.plugin.lib.commands.stripCommandNamePrefix(this.plugin.lib.commands.getCommand("copy-link-to-selection").name)}" command`,"- `C`: Show context menu at text selection","- `o`: Swap the start and end of the selection","- `:`: Enter command-line mode (experimental)","- `<Tab>`: Toggle outline (table of contents)","- `<S-Tab>`: Toggle thumbnails (`S`=`Shift`)","- `f`: Enter hint mode by running `:hint` (experimental)","- `<Esc>`: Go back to normal mode, abort search, etc","","Many of the commands above can be combined with counts. For example:","- `2j` scrolls down the page twice as much as `j`.","- `2J` advances two pages.","- `10G` takes you to page 10.","- `150=` sets the zoom level to 150%."],d.descEl)}),this.addToggleSetting("vim",()=>this.events.trigger("update")).setName("Enable").setDesc("Reopen the PDF viewers after changing this option."),this.showConditionally([this.addTextSetting("vimrcPath",void 0,()=>this.plugin.vimrc=null).setName("Vimrc file path (optional)").then(async d=>{await this.renderMarkdown(["Only the [Ex commands supported by PDF++](https://github.com/RyotaUshio/obsidian-pdf-plus/blob/main/src/vim/ex-commands.ts) are allowed.","","Example (not necessarily recommendations):","```",'" Use j/k, instead of J/K, to go to the next page',"map j J","map k K","",'" JavaScript commands','" - Hit Ctrl-h in Normal mode to show a message','nmap <C-h> :js alert("Hello, world!")','" - Hit Ctrl-h in Visual mode to run a .js file',"vmap <C-h> :jsfile filename.js","",'" Obsidian commands','" - Open the current PDF in the OS-default app by hitting d, e, and then f',"map def :obcommand open-with-default-app:open",'" - Go back and forth the history with Ctrl-o and Ctrl-i',"map <C-o> :obcommand app:go-back","map <C-i> :obcommand app:go-forward","```","","After changing the path or the file content, you need to reopen the PDF viewer. If the vimrc file is a hidden file or is under a hidden folder, you need to reload PDF++ or the app."],d.descEl);let h=d.components[0].inputEl;new Vc(this.app,h).onSelect(({item:u})=>{this.plugin.settings.vimrcPath=u.path,this.plugin.saveSettings()})}),this.addHeading("Visual mode","vim-visual"),this.addToggleSetting("vimVisualMotion").setName("Use motion keys to adjust text selection").then(d=>{this.renderMarkdown(["When some text is selected, you can modify the range of selection using the `j,` `k`, `h`, `l`, `w`, `e`, `b`, `0`, `^`, `$`, `H`, and `L` keys, similarly to Vim's visual mode (`H`/`L` are mapped to `^`/`$` by default). If disabled, you can use `j`/`k`/`h`/`l`/`0`/`^`/`$`/`H`/`L` keys to scroll the page regardless of text selection. Reload the viewer or the app after changing this option.","","Tips:","- You can use `o` to swap the start and end of the selection.","- As you know, `/` and `?` keys initiate search. Pressing `gn`/`gN` after the search will select the search result. You can also use search to extend the current selection to the search result.","","Note: On mobile, word-wise motions (`w`/`e`/`b`) might not work as expected around punctuations. Contributions to fix this are welcome!"],d.descEl)}),this.addHeading("Outline mode","vim-outline"),this.addToggleSetting("enableVimOutlineMode").setName("Enter outline mode when opening PDF outline view").then(d=>{this.renderMarkdown(["If enabled, you will enter the outline mode by opening the PDF outline view (from the icon in the toolbar or by `<Tab>`), and you can use the following keybindings, similarly to [Zathura](https://pwmt.org/projects/zathura/)'s index mode.","","- `j`: Move down","- `k`: Move up","- `h`: Collapse & move to parent entry","- `l`: Expand entry & move to child entry","- `H`: Collapse all entries","- `L`: Expand all entries","- `<CR>/<Space>`: Open the selected entry (`<CR>`=`Enter`)","- `<Esc>`: Close sidebar and go back to normal mode","","If disabled, you can use j/k/h/l/H/L keys to scroll the page whether the outline view is opened or not. ","This option requires reload to take effect."],d.descEl)}),this.addToggleSetting("vimSmoothOutlineMode").setName("Smooth motion in outline mode"),this.addHeading("Command-line mode (experimental)","vim-command-line"),this.addSetting().then(d=>{this.renderMarkdown(['By pressing `:`, you can enter the command-line mode, where you can execute various commands called "Ex commands"',"","- You can always go back to normal mode by `<Esc>`.","- For some commands, you can run `:help :<command>` or `:h :<command>` to see the help message.","- Use `<Tab>` and `<S-Tab>` to navigate through the suggestions (`S`=`Shift`).","- Use arrow down/up keys to go back and forth the command history.","- `<C-u>` clears the command line, and `<C-w>` deletes the last word (`C`=`Ctrl`).",'- `:<page number>` will take you to the <page number>-th page, where the page number always starts from 1. To go to the page with the page label <page label> (e.g. "i, ii, ..., x, 1, 2, ..."), use `:gotopage <page label>` (or `:go <page label>`/`:goto <page label>` in short).','- `:!<command>` runs the shell command (not supported on mobile). By default, Obsidian does not know the value of the "PATH" environment variable, so you might need to explicitly provide it in the setting below (in the "Misc" section) to run some commands.'],d.descEl)}),this.addHeading("Hint mode (experimental)","vim-hint"),this.addSetting().then(d=>{this.renderMarkdown(["Hitting `f` will enter the hint mode, where you can perform certain actions on links, annotations, and backlink highlighting in the PDF page without using the mouse.",'For example, first press `f` to enter the hint mode, and if the link you want to open gets marked with "HK", then hit `h` and then `k` (without `Shift`) to open it.',"","This is inspired by [Tridactyl](https://github.com/tridactyl/tridactyl)'s hint mode.","","Also check out Style Settings > PDF++ > Vim keybindings > Hint mode."],d.descEl)}),this.addTextSetting("vimHintChars").setName("Characters to use in hint mode").setDesc(`They are used preferentially from left to right, so you might want to put the easier-to-reach keys first. This is the same as Tridactyl's "hintchars" option.`),this.addTextSetting("vimHintArgs").setName('Default arguments for the ":hint" Ex command').setDesc('Space-separated list of "link"/"annot"/"backlink" or "all". Run ":help :hint" for the details.'),this.addHeading("Context menu","vim-context-menu"),this.addToggleSetting("enableVimInContextMenu").setName("Enable Vim keys in PDF context menus").setDesc("If enabled, you can use j/k/h/l keys, instead of the arrow keys, to navigate through context menu items in the PDF viewer."),this.addHeading("Scrolling","vim-scroll"),this.addSliderSetting("vimScrollSize",5,500,5).setName("Scroll size (px) of the jkhl keys").setDesc("The size of scroll when one of the jkhl keys is pressed once."),this.addToggleSetting("vimLargerScrollSizeWhenZoomIn").setName("Increase scroll size when zoomed in"),this.addSliderSetting("vimContinuousScrollSpeed",.1,5,.1).setName("Speed of continuous scroll (px per ms)").setDesc("The speed of scroll when pressing and holding down the jkhl keys."),this.addToggleSetting("vimSmoothScroll").setName("Smooth scroll"),this.addHeading("Search","vim-search"),this.addToggleSetting("vimHlsearch").setName("hlsearch").setDesc("If enabled, all matches will be highlighted."),this.addToggleSetting("vimIncsearch").setName("incsearch").setDesc("Incremental search: while typing the search query, update the search results after every keystroke. If disabled, the results will be shown only after pressing Enter.")],()=>this.plugin.settings.vim),this.addHeading("Misc","misc","lucide-more-horizontal"),this.addToggleSetting("autoCheckForUpdates",()=>{this.plugin.settings.autoCheckForUpdates&&this.plugin.lib.checkForUpdates()}).setName("Automatically check for updates").setDesc("If enabled, PDF++ will automatically check for updates every 24 hours and notify you if a new version is available."),this.addToggleSetting("fixObsidianTextSelectionBug").setName("Fix Obsidian 1.9's text selection bug").then(d=>{this.renderMarkdown(["As of June 10, 2025, Obsidian 1.9 has a bug related to PDF text selection that prevents Obsidian from recognizing text selection ranges properly (see [here](https://github.com/RyotaUshio/obsidian-pdf-plus/discussions/450) for more details). ","This option adds a experimental workaround to mitigate the issue."],d.descEl)}),this.addToggleSetting("showStatusInToolbar").setName("Show status in PDF toolbar").setDesc('For example, when you copy a link to a text selection in a PDF file, the status "Link copied" will be displayed in the PDF toolbar.'),this.addFileLocationSetting("newPDFLocation",d=>d.setName("Default location for new PDFs").setDesc('The "Create new PDF" command will create a new PDF file in the location specified here.'),"newPDFFolderPath",d=>d.setName("Folder to create new PDFs in").setDesc("Newly created PDFs will appear under this folder.")),this.addToggleSetting("hideReplyAnnotation").setName("Hide reply annotations").then(d=>{this.renderMarkdown(["Hide annotations that are replies to other annotations in the PDF viewer.","","This is a temporary fix for the issue that PDF.js (the library Obsidian's PDF viewer is based on) does not fulfill the PDF specification in that it renders reply annotations as if a standalone annotation."],d.descEl)}),this.addToggleSetting("hideStampAnnotation").setName("Disable popups for rubber stamp annotations").setDesc(`A rubber stamp annotation is a type of annotation that displays text or graphics intended to look like a rubber stamp. However, some applications, including iOS/iPadOS's "Markup", use this type of annotation also for handwriting. Often, all pieces of handwriting in a single page are grouped into a single rubber stamp annotation, which tends to be so large that it covers the entire page. In this case, annotation popups can be annoying, so you can disable them here.`),this.addToggleSetting("removeWhitespaceBetweenCJChars").setName("Remove half-width whitespace between two Chinese/Japanese characters when copying text").setDesc("Such whitespace can be introduced as a result of poor post-processing of OCR (optical character recognition). Enable this option to remove it when copying links to text selections."),this.addToggleSetting("copyAsSingleLine").setName("Override the default copy behavior in the PDF viewer").then(d=>{d.descEl.appendText('If enabled, whenever you copy text from the PDF viewer (using Ctrl/Cmd+C or via context menu), the text will go through the same pre-processing as the "'+this.plugin.lib.commands.stripCommandNamePrefix(this.plugin.lib.commands.getCommand("copy-link-to-selection").name)+'" command before written to the clipboard. The pre-processing includes transforming multi-line text into a single line by removing line breaks (if a word is split across lines, it will be concatenated), which is useful because it prevents the copied text from being split into multiple lines unnaturally. If the previous option is enabled, the whitespace removal will also be applied.'),d.descEl.appendText(' Also note that on mobile devices, the action performed by "Copy" depends on the '),d.descEl.appendChild(this.createLinkTo("mobileCopyAction")),d.descEl.appendText(" option.")}),pe.Platform.isDesktopApp&&this.addTextAreaSetting("PATH").then(d=>{let h=d.components[0];h instanceof pe.TextAreaComponent&&(h.inputEl.rows=8,h.inputEl.cols=30)}).setName('"PATH" environment variable').setDesc('Provide the "PATH" environment variable for PDF++ to run shell commands without the full paths specified. In MacOS and Linux, you can run "echo $PATH" in Terminal and then copy & paste the result here. Currently, it will be used only when you run ":!<command>" in Vim mode.'),this.addHeading("Style settings","style-settings","lucide-settings-2").setDesc("You can find more options in Style Settings > PDF++.").addButton(d=>{d.setButtonText("Open style settings").onClick(()=>{let h=this.app.setting.pluginTabs.find(u=>u.id==="obsidian-style-settings");h?this.app.setting.openTab(h):open("obsidian://show-plugin?id=obsidian-style-settings")})}),this.addFundingButton(),await Promise.all(this.promises)}async hide(){this.plugin.settings.colors=Object.fromEntries(Object.entries(this.plugin.settings.colors).filter(([t,i])=>t&&cn(i))),this.plugin.settings.defaultColor&&!(this.plugin.settings.defaultColor in this.plugin.settings.colors)&&(this.plugin.settings.defaultColor=""),this.plugin.settings.backlinkHoverColor&&!(this.plugin.settings.backlinkHoverColor in this.plugin.settings.colors)&&(this.plugin.settings.backlinkHoverColor=""),this.plugin.settings.copyCommands=this.plugin.settings.copyCommands.filter(t=>t.name&&t.template),this.plugin.settings.displayTextFormats=this.plugin.settings.displayTextFormats.filter(t=>t.name),this.plugin.settings.enablePDFEdit&&!this.plugin.settings.author&&(this.plugin.settings.enablePDFEdit=!1,new pe.Notice(`${this.plugin.manifest.name}: Cannot enable writing highlights into PDF files because the "Annotation author" option is empty.`)),this.plugin.validateAutoFocusAndAutoPasteSettings(),await this.plugin.saveSettings(),this.plugin.loadStyle(),this.promises=[],this.component.unload()}};var zw=async(n,e,t)=>{if(e.palette){if(Le.Platform.isDesktopApp){let i=window.electron;i&&t.isTrusted&&(t.stopPropagation(),t.stopImmediatePropagation(),await new Promise(r=>{let o=t.win.setTimeout(()=>r(null),1e3);i.ipcRenderer.once("context-menu",(s,a)=>{t.win.clearTimeout(o),r(a)}),i.ipcRenderer.send("context-menu")}))}t.defaultPrevented||await Gg(n,e,t)}};async function Gg(n,e,t){let i=await Ru.fromMouseEvent(n,e,t);e.clearEphemeralUI(),i.showAtMouseEvent(t),e.pdfViewer.isEmbed&&t.preventDefault()}async function Vu(n,e,t){if(!t||!t.focusNode||t.isCollapsed)return;let i=t.focusNode,r=t.focusOffset,o=i.doc,s=o.createRange();s.setStart(i,r),s.setEnd(i,r);let{x:a,y:c}=s.getBoundingClientRect(),l=new Ru(n,e);await l.addItems(),e.clearEphemeralUI(),n.shownMenus.forEach(d=>d.hide()),l.showAtPosition({x:a,y:c},o)}var Uw=(n,e,t)=>{var o;let{lib:i}=n,r=t.targetNode;if(r&&r.instanceOf(HTMLElement)&&r.hasClass("thumbnail")&&r.dataset.pageNumber!==void 0){let s=parseInt(r.dataset.pageNumber);if(Number.isNaN(s))return;let a=e.getMarkdownLink(`#page=${s}`,e.getPageLinkAlias(s)),l=(o=e.getPage(s).pageLabel)!=null?o:""+s,d=e.pdfViewer.pagesCount,h=""+s===l?`Copy link to page ${s}`:`Copy link to page ${l} (${s}/${d})`,u=new Le.Menu().addItem(p=>{p.setTitle(h).setIcon("lucide-copy").onClick(()=>{var m;((m=t.view)!=null?m:activeWindow).navigator.clipboard.writeText(a);let f=e.file;f&&(n.lastCopiedDestInfo={file:f,destArray:[s-1,"XYZ",null,null,null]})})});i.isEditable(e)&&u.addItem(p=>{p.setTitle("Insert page before this page").setIcon("lucide-plus").onClick(()=>{let f=e.file;if(!f){new Le.Notice(`${n.manifest.name}: Failed to insert the page.`);return}i.commands._insertPage(f,s,s)})}).addItem(p=>{p.setTitle("Insert page after this page").setIcon("lucide-plus").onClick(()=>{let f=e.file;if(!f){new Le.Notice(`${n.manifest.name}: Failed to insert the page.`);return}i.commands._insertPage(f,s+1,s)})}).addItem(p=>{p.setTitle("Delete page").setIcon("lucide-trash").onClick(()=>{let f=e.file;if(!f){new Le.Notice(`${n.manifest.name}: Failed to delete the page.`);return}i.commands._deletePage(f,s)})}).addItem(p=>{p.setTitle("Extract page to new file").setIcon("lucide-file-output").onClick(()=>{let f=e.file;if(!f){new Le.Notice(`${n.manifest.name}: Failed to extract the page.`);return}i.commands._extractPage(f,s)})}).addItem(p=>{p.setTitle("Divide document at this page").setIcon("lucide-split-square-vertical").onClick(()=>{let f=e.file;if(!f){new Le.Notice(`${n.manifest.name}: Failed to divide the document.`);return}i.commands._dividePDF(f,s)})}).addSeparator().addItem(p=>{p.setTitle("Customize...").setIcon("lucide-settings").onClick(()=>{n.openSettingTab().scrollToHeading("thumbnail")})}),u.showAtMouseEvent(t)}},qw=(n,e,t,i,r)=>{let{app:o,lib:s}=n;e.pdfViewer.isEmbed&&r.preventDefault();let a=s.toSingleLine(i.item.title),c=a?`Copy link to "${a.length<=40?a:a.slice(0,39).trim()+"\u2026"}"`:"Copy link to section",l=new Le.Menu().addItem(d=>{d.setTitle(c).setIcon("lucide-copy").onClick(async()=>{var p;let h=await s.copyLink.getTextToCopyForOutlineItem(e,t,i);((p=r.view)!=null?p:activeWindow).navigator.clipboard.writeText(h);let u=i.item.dest;if(typeof u=="string")n.lastCopiedDestInfo={file:t,destName:u};else{let f=await i.getPageNumber(),m=s.normalizePDFJsDestArray(u,f);n.lastCopiedDestInfo={file:t,destArray:m}}})});s.isEditable(e)&&l.addItem(d=>{d.setTitle("Add subitem").setIcon("lucide-plus").onClick(()=>{new qr(n,"Add subitem to outline").ask().then(async({title:h})=>{let u=s.getPDFViewFromChild(e);if(u){let p=u.getState(),f=s.viewStateToDestArray(p,!0);if(f){await Ge.findAndProcessOutlineItem(i,m=>{m.createChild(h,f).updateCountForAllAncestors(),m.sortChildren()},t,n);return}}new Le.Notice(`${n.manifest.name}: Failed to add the subitem.`)})})}).addItem(d=>{d.setTitle("Rename...").setIcon("lucide-pencil").onClick(()=>{new qr(n,"Rename outline item").presetTitle(i.item.title).ask().then(async({title:h})=>{await Ge.findAndProcessOutlineItem(i,u=>{u.title=h},t,n)})})}).addItem(d=>{d.setTitle("Move item to...").setIcon("lucide-folder-tree").onClick(async()=>{let h=await Ge.fromFile(t,n),u=await h.findPDFjsOutlineTreeNode(i);if(!u){new Le.Notice(`${n.manifest.name}: Failed to load the PDF document.`);return}new Pu(h,u).askDestination().then(async p=>{p.appendChild(u),p.sortChildren();let f=await h.doc.save();await o.vault.modifyBinary(t,f)})})}).addItem(d=>{d.setTitle("Delete").setIcon("lucide-trash").onClick(async()=>{await Ge.findAndProcessOutlineItem(i,h=>{h.remove(),h.updateCountForAllAncestors()},t,n)})}).addItem(d=>{d.setTitle("Extract to new file").setIcon("lucide-file-output").onClick(async()=>{let{lib:h,settings:u}=n,p=await Ge.fromFile(t,n),f=await p.findPDFjsOutlineTreeNode(i);if(!f){new Le.Notice(`${n.manifest.name}: Failed to process the outline item.`);return}let{doc:m}=p,x=f.getExplicitDestination(),g=x?x[0]+1:null,b=null,v=f;for(;!v.nextSibling&&v.parent;)v=v.parent;let y=v.nextSibling;if(y){let D=y.getExplicitDestination();D&&(b=D[0]+1)}else b=m.getPageCount()+1;if(g===null||b===null){new Le.Notice(`${n.manifest.name}: Failed to fetch page numbers from the outline item.`);return}if(g>b){new Le.Notice(`${n.manifest.name}: The page numbers are invalid: the beginning of this section is page ${g}, whereas the next section starts at page ${b}.`);return}g===b&&(b=g+1);let F=h.getAvailablePathForCopy(t);new Xn(n,u.askPageLabelUpdateWhenExtractPage,u.pageLabelUpdateWhenExtractPage,u.askExtractPageInPlace,u.extractPageInPlace).ask().then((D,C)=>{h.composer.extractPages(t,{from:g,to:b-1},F,!1,D,C).then(async k=>{if(!k){new Le.Notice(`${n.manifest.name}: Failed to extract section from PDF.`);return}if(u.openAfterExtractPages){let E=h.workspace.getLeaf(u.howToOpenExtractedPDF);await E.openFile(k),await h.workspace.revealLeaf(E)}})})})}).addSeparator().addItem(d=>{d.setTitle("Customize...").setIcon("lucide-settings").onClick(()=>{n.openSettingTab().scrollToHeading("outline")})}),l.showAtMouseEvent(r)},Ww=(n,e,t,i)=>{let{lib:r}=n;r.isEditable(e)&&new Le.Menu().addItem(o=>{o.setTitle("Add top-level item").setIcon("lucide-plus").onClick(()=>{new qr(n,"Add item to outline").ask().then(async({title:s})=>{let a=r.getPDFViewFromChild(e);if(a){let c=a.getState(),l=r.viewStateToDestArray(c,!0);if(l){await Ge.processOutlineRoot(d=>{d.createChild(s,l).updateCountForAllAncestors(),d.sortChildren()},t,n);return}}new Le.Notice(`${n.manifest.name}: Failed to add the item.`)})})}).showAtMouseEvent(i)},Kg=class extends Le.Menu{constructor(e){super(),this.plugin=e}get app(){return this.plugin.app}get settings(){return this.plugin.settings}get lib(){return this.plugin.lib}},Ru=class n extends Kg{constructor(e,t){super(e),this.child=t,this.currentSection=null,this.setUseNativeMenu(!1),this.addSections(Object.keys(Qn.contextMenuConfig)),e.settings.enableVimInContextMenu&&zg(this)}static async fromMouseEvent(e,t,i){let r=new n(e,t);return await r.addItems(i),r}get win(){return this.child.containerEl.win}addItem(e){return this.currentSection?super.addItem(t=>{e(t),t.setSection(this.currentSection)}):super.addItem(e)}async addItems(e){var x,g;let{child:t,plugin:i,lib:r,app:o}=this,s=t.pdfViewer.pdfViewer,a=this.win.getSelection(),c=(x=r.copyLink.getPageAndTextRangeFromSelection(a))!=null?x:s?{page:s.currentPageNumber}:null;if(!c)return;let{page:l,selection:d}=c,h=r.toSingleLine((g=a==null?void 0:a.toString())!=null?g:""),u=b=>{var v;return(v=this.settings.contextMenuConfig.find(y=>y.id===b))==null?void 0:v.visible};Le.Platform.isMacOS&&Le.Platform.isDesktopApp&&this.win.electron&&h&&u("action")&&this.addItem(b=>b.setSection("action").setTitle(`Look up "${h.length<=25?h:h.slice(0,24).trim()+"\u2026"}"`).setIcon("lucide-library").onClick(()=>{this.win.electron.remote.getCurrentWebContents().showDefinitionForSelection()})),h&&h&&d&&t.palette&&(u("selection")&&rd.create(this,t.palette).setSection("selection","Copy link to selection","lucide-copy").addItems(i.settings.selectionProductMenuConfig).onItemClick(({copyFormat:b,displayTextFormat:v,colorName:y})=>{r.copyLink.copyLinkToSelection(!1,{copyFormat:b,displayTextFormat:v},y!=null?y:void 0)}),r.isEditable(t)&&u("write-file")&&rd.create(this,t.palette).setSection("write-file",`Add ${i.settings.selectionBacklinkVisualizeStyle} to file`,"lucide-edit").setShowNoColorButton(!1).addItems(i.settings.writeFileProductMenuConfig).onItemClick(({copyFormat:b,displayTextFormat:v,colorName:y})=>{r.copyLink.writeHighlightAnnotationToSelectionIntoFileAndCopyLink(!1,{copyFormat:b,displayTextFormat:v},y!=null?y:void 0)}));let p=t.getPage(l),f=e&&t.getAnnotationFromEvt(p,e),m=null;if(await(async()=>{var b;if(f){let{id:v}=r.getAnnotationInfoFromAnnotationElement(f);if(m=await t.getAnnotatedText(p,v),t.palette&&u("annotation")&&rd.create(this,t.palette).setSection("annotation","Copy link to annotation","lucide-copy").addItems(i.settings.annotationProductMenuConfig).onItemClick(({copyFormat:y,displayTextFormat:F})=>{r.copyLink.copyLinkToAnnotation(t,!1,{copyFormat:y,displayTextFormat:F},l,v,!1,!0)}),r.isEditable(t)&&u("modify-annotation")){if(i.settings.enableAnnotationContentEdit&&Hr.isSubtypeSupported(f.data.subtype)){let y=f.data.subtype;this.addItem(F=>F.setSection("modify-annotation").setTitle("Edit annotation").setIcon("lucide-pencil").onClick(()=>{t.file&&Hr.forSubtype(y,i,t.file,l,v).open()}))}i.settings.enableAnnotationDeletion&&this.addItem(y=>y.setSection("modify-annotation").setTitle("Delete annotation").setIcon("lucide-trash").onClick(()=>{t.file&&new va(i,t.file,l,v).openIfNeccessary()}))}if(f.data.subtype==="Link"&&u("link")){let y=(b=t.pdfViewer.pdfViewer)==null?void 0:b.pdfDocument;if("dest"in f.data&&typeof f.data.dest=="string"&&y&&t.file){let F=f.data.dest,D=t.file;this.addItem(C=>{C.setSection("link").setTitle("Copy PDF link").setIcon("lucide-copy").onClick(async()=>{let k=await r.destIdToSubpath(F,y);if(typeof k=="string"){let E=m;!E&&f.data.rect&&(E=t.getTextByRect(p,f.data.rect));let B=r.generateMarkdownLink(D,"",k,E!=null?E:void 0).slice(1);navigator.clipboard.writeText(B),i.lastCopiedDestInfo={file:D,destName:F}}})}),i.lib.isCitationId(F)&&this.addItem(C=>{C.setSection("link").setTitle("Search on Google Scholar").setIcon("lucide-search").onClick(()=>{var E;let k=(E=this.child.bib)==null?void 0:E.getGoogleScholarSearchUrlFromDest(F);if(typeof k!="string"){new Le.Notice(`${i.manifest.name}: Failed to find bibliographic information.`);return}window.open(k,"_blank")})})}if("url"in f.data&&typeof f.data.url=="string"){let F=f.data.url;this.currentSection="link",o.workspace.handleExternalLinkContextMenu(this,F),this.currentSection=null}}}})(),h&&d&&r.isEditable(t)&&i.lastCopiedDestInfo&&i.lastCopiedDestInfo.file===t.file&&u("link")){if("destArray"in i.lastCopiedDestInfo){let b=i.lastCopiedDestInfo.destArray;this.addItem(v=>v.setSection("link").setTitle("Paste copied PDF link to selection").setIcon("lucide-clipboard-paste").onClick(()=>{r.highlight.writeFile.addLinkAnnotationToSelection(b)}))}else if("destName"in i.lastCopiedDestInfo){let b=i.lastCopiedDestInfo.destName;this.addItem(v=>v.setSection("link").setTitle("Paste copied link to selection").setIcon("lucide-clipboard-paste").onClick(()=>{r.highlight.writeFile.addLinkAnnotationToSelection(b)}))}}h&&u("text")&&this.addItem(b=>b.setSection("text").setTitle("Copy selected text").setIcon("lucide-copy").onClick(()=>{var v;navigator.clipboard.writeText(this.plugin.settings.copyAsSingleLine?h:(v=a==null?void 0:a.toString())!=null?v:"")})),m&&u("text")&&this.addItem(b=>b.setSection("text").setTitle("Copy annotated text").setIcon("lucide-copy").onClick(()=>{navigator.clipboard.writeText(m)})),h&&d&&u("search")&&this.addItem(b=>{b.setSection("search").setTitle("Copy link to search").setIcon("lucide-search").onClick(()=>{r.copyLink.copyLinkToSearch(!1,t,l,h.trim())})}),r.speech.isEnabled()&&h&&u("speech")&&this.addItem(b=>{b.setSection("speech").setTitle("Read aloud selected text").setIcon("lucide-speech").onClick(()=>{r.speech.speak(h)})}),!this.items.length&&u("page")&&this.addItem(b=>{b.setSection("page").setTitle("Copy link to page").setIcon("lucide-copy").onClick(v=>{let y=t.getMarkdownLink(`#page=${l}`,t.getPageLinkAlias(l));v.win.navigator.clipboard.writeText(y);let F=t.file;F&&(i.lastCopiedDestInfo={file:F,destArray:[l-1,"XYZ",null,null,null]})})}),this.items.length&&u("settings")&&this.addItem(b=>{b.setSection("settings").setIcon("lucide-settings").setTitle("Customize menu...").onClick(()=>{this.plugin.openSettingTab().scrollToHeading("context-menu")})}),o.workspace.trigger("pdf-menu",this,{pageNumber:l,selection:h,annot:f})}},rd=class n extends De{constructor(t,i){super(i.plugin);this.clickItemCallback=null;this.itemToColorName=new Map;this.itemToCopyFormat=new Map;this.itemToDisplayTextFormat=new Map;this.rootMenu=t,this.palette=i,this.showNoColorButton=this.settings.noColorButtonInColorPalette}static create(t,i){return t.addChild(new n(t,i))}then(t){return t(this),this}setShowNoColorButton(t){return this.showNoColorButton=t,this}setSection(t,i,r){return this.section=t,this.sectionTitle=i,this.sectionIcon=r,this}addSectionTitle(){this.section&&this.sectionTitle&&this.rootMenu.addItem(t=>{t.setSection(this.section).setTitle(this.sectionTitle).setDisabled(!0),this.sectionIcon&&t.setIcon(this.sectionIcon)})}addItems(t){return this.addSectionTitle(),Le.Platform.isDesktopApp||(t=t.slice(0,1)),Bw(this.rootMenu,t.map(i=>{switch(i){case"color":return this.addColorItems.bind(this);case"copy-format":return this.addCopyFormatItems.bind(this);case"display":return this.addDisplayTextItems.bind(this)}}),{clickableParentItem:!0,vim:this.settings.enableVimInContextMenu}),this}addColorItems(t){let i=Object.keys(this.settings.colors),r=this.palette.getState().selectedColorName,o=r?i.map(s=>s.toLowerCase()).indexOf(r.toLowerCase()):-1;for(let s=this.showNoColorButton?-1:0;s<i.length;s++)t.addItem(a=>{a.setTitle(s>=0?i[s]:"Don't specify color").onClick(l=>{this.finish({colorName:s>=0?i[s]:null},l)}),t!==this.rootMenu&&a.setChecked(s===o),this.section&&t===this.rootMenu&&a.setSection(this.section),this.itemToColorName.set(a,s>=0?i[s]:null);let c=s>=0?this.settings.colors[i[s]]:"transparent";a.dom.addClass("pdf-plus-color-menu-item"),a.titleEl.before(createDiv("pdf-plus-color-indicator",l=>{l.setCssStyles({backgroundColor:c})}))});Hg(t,100)}addNamedTemplateItems(t,i,r,o,s){for(let a=0;a<i.length;a++)t.addItem(c=>{c.setTitle(i[a].name).onClick(l=>{s(i[a],l)}),t!==this.rootMenu&&c.setChecked(a===r),o.set(c,i[a].template),this.section&&t===this.rootMenu&&c.setSection(this.section)});Hg(t,100)}addDisplayTextItems(t){this.addNamedTemplateItems(t,this.settings.displayTextFormats,this.palette.getState().displayTextFormatIndex,this.itemToDisplayTextFormat,({template:i},r)=>this.finish({displayTextFormat:i},r))}addCopyFormatItems(t){this.addNamedTemplateItems(t,this.settings.copyCommands,this.palette.getState().actionIndex,this.itemToCopyFormat,({template:i},r)=>this.finish({copyFormat:i},r))}getOptionsFromColorPalette(){return{colorName:this.palette.getColorName(),copyFormat:this.palette.getCopyFormat(),displayTextFormat:this.palette.getDisplayTextFormat()}}getOptions(t){let i=this.getOptionsFromColorPalette();if(Le.Platform.isDesktopApp){let{items:r}=Lw(this.rootMenu);for(let o of r)this.itemToColorName.has(o)?i.colorName=this.itemToColorName.get(o):this.itemToCopyFormat.has(o)?i.copyFormat=this.itemToCopyFormat.get(o):this.itemToDisplayTextFormat.has(o)&&(i.displayTextFormat=this.itemToDisplayTextFormat.get(o))}return Object.assign(i,t),i}updateColorPaletteState(t){let i=t.colorName,r=this.settings.copyCommands.findIndex(({template:s})=>s===t.copyFormat),o=this.settings.displayTextFormats.findIndex(({template:s})=>s===t.displayTextFormat);this.palette.setState({selectedColorName:i,actionIndex:r,displayTextFormatIndex:o}),this.settings.syncColorPaletteItem&&this.settings.syncDefaultColorPaletteItem&&(this.settings.defaultColorPaletteItemIndex=i?Object.keys(this.settings.colors).indexOf(i)+1:0),this.settings.syncColorPaletteAction&&this.settings.syncDefaultColorPaletteAction&&(this.settings.defaultColorPaletteActionIndex=r),this.plugin.settings.syncDisplayTextFormat&&this.plugin.settings.syncDefaultDisplayTextFormat&&(this.plugin.settings.defaultDisplayTextFormatIndex=o),this.plugin.trigger("color-palette-state-change",{source:this.palette})}finish(t,i){var o;let r=this.getOptions(t);this.settings.updateColorPaletteStateFromContextMenu&&!Le.Keymap.isModifier(i,"Mod")&&this.updateColorPaletteState(r),(o=this.clickItemCallback)==null||o.call(this,r),this.rootMenu.hide()}onItemClick(t){this.clickItemCallback=t}},jw=(n,e,t)=>{var l;if(n.defaultPrevented||(l=activeWindow.getSelection())!=null&&l.toString())return;let{lib:i,settings:r,child:o}=e;if(t.page){let d=o.getPage(t.page);if(o.getAnnotationFromEvt(d,n))return}let s=t.getColor(),a=(s==null?void 0:s.type)==="name"?s.name:void 0,c=new Le.Menu().addSections(["copy","color","image"]);s&&c.addItem(d=>{d.setSection("color").setTitle("Unset color").setIcon("lucide-palette").onClick(()=>{i.composer.linkUpdater.updateLinkColor(t.refCache,t.sourcePath,null)})});for(let d of Object.keys(r.colors))d.toLowerCase()!==(a==null?void 0:a.toLowerCase())&&c.addItem(h=>{h.setSection("color").setTitle(`Change color to "${d}"`).setIcon("lucide-palette").onClick(()=>{i.composer.linkUpdater.updateLinkColor(t.refCache,t.sourcePath,{type:"name",name:d})})});if(t.page&&t.FitR){let d=o.getPage(t.page).pdfPage,{left:h,bottom:u,right:p,top:f}=t.FitR;c.addItem(m=>{m.setSection("image").setTitle("Copy as image").setIcon("lucide-image").onClick(()=>{let x=i.pdfPageToImageArrayBuffer(d,{type:"image/png",encoderOptions:1,cropRect:[h,u,p,f]}).then(g=>new Blob([g],{type:"image/png"}));navigator.clipboard.write([new ClipboardItem({"image/png":x})])})})}c.showAtMouseEvent(n),n.preventDefault()};var Xg=require("obsidian");var Kw=async(n,e,t,i)=>{let{app:r,lib:o}=n,s=[];for(let a of e.allItems)s.push((async()=>{let c=await o.copyLink.getTextToCopyForOutlineItemDynamic(t,i,a),l=o.toSingleLine(a.item.title),d=l?`${l.length<=40?l:l.slice(0,39).trim()+"\u2026"}`:"PDF section";r.dragManager.handleDrag(a.selfEl,h=>(r.dragManager.updateSource([a.selfEl],"is-being-dragged"),{source:"pdf-plus",type:"pdf-offset",icon:"lucide-heading",title:d,getText:c,item:a})),r.dragManager.handleDrop(a.selfEl,(h,u,p)=>{if(!o.isEditable(t)||!u||u.source!=="pdf-plus"||u.type!=="pdf-offset")return;let f=u.item;if(f&&!Cg(f,a,!0)&&f.parent!==a&&a.owner===f.owner)return p||(async()=>{let m=await Ge.fromFile(i,n),[x,g]=await Promise.all([m.findPDFjsOutlineTreeNode(a),m.findPDFjsOutlineTreeNode(f)]);if(!x||!g){new Xg.Notice(`${n.manifest.name}: Failed to move the outline item.`);return}x.appendChild(g),x.sortChildren();let b=await m.doc.save();await r.vault.modifyBinary(i,b)})(),{action:`Move into "${d}"`,dropEffect:"move",hoverEl:a.el,hoverClass:"is-being-dragged-over"}},!1)})());await Promise.all(s),r.dragManager.handleDrop(e.childrenEl,(a,c,l)=>{if(!o.isEditable(t)||!c||c.source!=="pdf-plus"||c.type!=="pdf-offset"||a.target!==a.currentTarget)return;let d=c.item;if(d&&d.parent&&e===d.owner)return l||(async()=>{let h=await Ge.fromFile(i,n),u=await(h==null?void 0:h.findPDFjsOutlineTreeNode(d));if(!u){new Xg.Notice(`${n.manifest.name}: Failed to move the outline item.`);return}let p=h.ensureRoot();p.appendChild(u),p.sortChildren();let f=await h.doc.save();await r.vault.modifyBinary(i,f)})(),{action:"Move to top level",dropEffect:"move",hoverEl:e.childrenEl,hoverClass:"is-being-dragged-over"}},!1)},Gw=(n,e,t)=>{let{app:i,lib:r}=n;e.pdfViewer.pdfThumbnailViewer.container.querySelectorAll("div.thumbnail[data-page-number]").forEach(o=>{var h;let s=parseInt(o.dataset.pageNumber),c=(h=e.getPage(s).pageLabel)!=null?h:""+s,l=e.pdfViewer.pagesCount,d=""+s===c?`Page ${s}`:`Page ${c} (${s}/${l})`;i.dragManager.handleDrag(o,u=>(i.dragManager.updateSource([o],"is-being-dragged"),{source:"pdf-plus",type:"pdf-page",icon:"lucide-book-open",title:d,getText:p=>r.copyLink.getTextToCopy(e,n.settings.thumbnailLinkCopyFormat,n.settings.thumbnailLinkDisplayTextFormat,t,s,`#page=${s}`,"","",p)}))})},Xw=(n,e,t,i,r,o)=>{let{app:s,lib:a}=n,c=t.getPage(r);t.getAnnotatedText(c,o).then(l=>{s.dragManager.handleDrag(e,d=>{s.dragManager.updateSource([e],"is-being-dragged");let h=a.getColorPaletteFromChild(t);if(!h)return null;let u=n.settings.copyCommands[h.actionIndex].template;return{source:"pdf-plus",type:"pdf-annotation",icon:"lucide-highlighter",title:"PDF annotation",getText:p=>a.copyLink.getTextToCopy(t,u,void 0,i,r,`#page=${r}&annotation=${o}`,l!=null?l:"","",p)}})})};var zu=require("obsidian");var Gr=require("obsidian");var Ca=class extends De{constructor(e,t){super(e),this.file=t,this.events=new Gr.Events}onload(){this.init(),this.registerEvent(this.app.metadataCache.on("changed",(e,t,i)=>{this.update(e.path,i),this.trigger("update")})),this.registerEvent(this.app.metadataCache.on("deleted",e=>{this.deleteCachesForSourcePath(e.path),this.trigger("update")})),this.registerEvent(this.app.vault.on("rename",(e,t)=>{if(e instanceof Gr.TFile){this.deleteCachesForSourcePath(t);let i=this.app.metadataCache.getFileCache(e);i&&this.update(e.path,i),this.trigger("update")}}))}init(){this.pagesMap=new Map,this.sourcePaths=new Qt,this.backlinks=new Set;let e=this.app.metadataCache.getBacklinksForFile(this.file);for(let t of e.keys()){let i=e.get(t);for(let r of i!=null?i:[])this.createCache(r,t)}}update(e,t){var r,o,s;this.deleteCachesForSourcePath(e);let i=[...(r=t.links)!=null?r:[],...(o=t.embeds)!=null?o:[],...(s=t.frontmatterLinks)!=null?s:[]];for(let a of i){let c=a.link;this.app.metadataCache.getFirstLinkpathDest((0,Gr.getLinkpath)(c),e)===this.file&&this.createCache(a,e)}}delete(e){this.backlinks.delete(e),this.sourcePaths.deleteValue(e.sourcePath,e),e.page&&this.getPageIndex(e.page).delete(e)}deleteCachesForSourcePath(e){let t=this.sourcePaths.get(e);for(let i of t)this.delete(i)}getPageIndex(e){return this.pagesMap.has(e)||this.pagesMap.set(e,new kt(this,e)),this.pagesMap.get(e)}createCache(e,t){let i=new Zg(this,e);this.backlinks.add(i),i.sourcePath=t;let{subpath:r}=(0,Gr.parseLinktext)(e.link),o=new URLSearchParams(r.startsWith("#")?r.slice(1):r);if(!o.has("page"))return i;let s=+o.get("page");if(!Number.isInteger(s))return i;if(i.page=s,o.has("selection")){let a=o.get("selection").split(",").map(c=>parseInt(c.trim()));if(a.length===4&&a.every(c=>!isNaN(c))){let[c,l,d,h]=a;i.selection={beginIndex:c,beginOffset:l,endIndex:d,endOffset:h}}}if(o.has("annotation")){let a=o.get("annotation");i.annotation={id:a}}if(o.has("offset")){let a=o.get("offset").split(",").map(h=>parseInt(h)),c=a[0],l=a[1],d=a[2];isNaN(d)?i.FitBH={top:l}:i.XYZ={left:c,top:l,zoom:d}}if(o.has("rect")){let a=o.get("rect").split(",").map(u=>parseFloat(u)),[c,l,d,h]=a;i.FitR={left:c,bottom:l,right:d,top:h}}if(o.has("color")){let a=o.get("color"),c=a.split(",").map(l=>parseInt(l));c.length===3&&c.every(l=>!isNaN(l))?i.setColor({rgb:{r:c[0],g:c[1],b:c[2]}}):i.setColor({name:a})}return i}on(e,t,i){return this.events.on(e,t,i)}trigger(e,...t){this.events.trigger(e,...t)}},kt=class n{constructor(e,t){this.sourcePaths=new Qt;this.backlinks=new Set;this.selections=new Qt;this.annotations=new Qt;this.XYZs=new Qt;this.FitBHs=new Qt;this.FitRs=new Qt;this.index=e,this.pageNumber=t}add(e){this.backlinks.add(e),this.sourcePaths.addValue(e.sourcePath,e),e.selection&&this.selections.addValue(n.selectionId(e.selection),e),e.annotation&&this.annotations.addValue(e.annotation.id,e),e.XYZ&&this.XYZs.addValue(n.XYZId(e.XYZ),e),e.FitBH&&this.FitBHs.addValue(n.FitBHId(e.FitBH),e),e.FitR&&this.FitRs.addValue(n.FitRId(e.FitR),e)}delete(e){this.backlinks.delete(e),this.sourcePaths.deleteValue(e.sourcePath,e),e.selection&&this.selections.deleteValue(n.selectionId(e.selection),e),e.annotation&&this.annotations.deleteValue(e.annotation.id,e),e.XYZ&&this.XYZs.deleteValue(n.XYZId(e.XYZ),e),e.FitBH&&this.FitBHs.deleteValue(n.FitBHId(e.FitBH),e),e.FitR&&this.FitRs.deleteValue(n.FitRId(e.FitR),e)}static selectionId(e){return`${e.beginIndex},${e.beginOffset},${e.endIndex},${e.endOffset}`}static selectionIdToParams(e){let[t,i,r,o]=e.split(",").map(s=>parseInt(s));return{beginIndex:t,beginOffset:i,endIndex:r,endOffset:o}}static XYZId(e){return`${e.left},${e.top},${e.zoom}`}static XYZIdToParams(e){let[t,i,r]=e.split(",").map(o=>parseFloat(o));return{left:t,top:i,zoom:r}}static FitBHId(e){return`${e.top}`}static FitBHIdToParams(e){return{top:parseFloat(e)}}static FitRId(e){return`${e.left},${e.bottom},${e.right},${e.top}`}static FitRIdToParams(e){let[t,i,r,o]=e.split(",").map(s=>parseFloat(s));return{left:t,bottom:i,right:r,top:o}}},Zg=class{constructor(e,t){this._sourcePath="";this._page=null;this._selection=null;this._annotation=null;this._XYZ=null;this._FitBH=null;this._FitR=null;this._color=null;this.index=e,this.refCache=t}getPageIndex(){return this.page?this.index.getPageIndex(this.page):null}get file(){return this.index.file}get sourcePath(){return this._sourcePath}set sourcePath(e){this._sourcePath=e,this.index.sourcePaths.addValue(e,this),this.page&&this.index.getPageIndex(this.page).sourcePaths.addValue(e,this)}get page(){return this._page}set page(e){this.page&&this.index.getPageIndex(this.page).delete(this),e&&this.index.getPageIndex(e).add(this),this._page=e}get selection(){return this._selection}set selection(e){let t=this.getPageIndex();t&&(this.selection&&(t==null||t.selections.deleteValue(kt.selectionId(this.selection),this)),e&&t.selections.addValue(kt.selectionId(e),this)),this._selection=e}get annotation(){return this._annotation}set annotation(e){let t=this.getPageIndex();t&&(this.annotation&&(t==null||t.annotations.deleteValue(this.annotation.id,this)),e&&t.annotations.addValue(e.id,this)),this._annotation=e}get XYZ(){return this._XYZ}set XYZ(e){let t=this.getPageIndex();t&&(this.XYZ&&(t==null||t.XYZs.deleteValue(kt.XYZId(this.XYZ),this)),e&&t.XYZs.addValue(kt.XYZId(e),this)),this._XYZ=e}get FitBH(){return this._FitBH}set FitBH(e){let t=this.getPageIndex();t&&(this.FitBH&&(t==null||t.FitBHs.deleteValue(kt.FitBHId(this.FitBH),this)),e&&t.FitBHs.addValue(kt.FitBHId(e),this)),this._FitBH=e}get FitR(){return this._FitR}set FitR(e){let t=this.getPageIndex();t&&(this.FitR&&(t==null||t.FitRs.deleteValue(kt.FitRId(this.FitR),this)),e&&t.FitRs.addValue(kt.FitRId(e),this)),this._FitR=e}setColor(e){"rgb"in e?this._color={type:"rgb",rgb:e.rgb}:this._color={type:"name",name:e.name}}getColor(){return this._color}};var Yg=class extends De{constructor(e,t){super(e),this.file=t}get index(){var e;return(e=this._index)!=null?e:this._index=this.addChild(new Ca(this.plugin,this.file))}processSelection(e,t,i){}processAnnotation(e,t,i){}processXYZ(e,t,i){}processFitBH(e,t,i){}processFitR(e,t,i){}},Jg=class extends De{constructor(t){super(t.plugin);this.pagewiseCacheToDomsMap=new Map;this.pagewiseStatus=new Map;this.pagewiseOnClearDomCallbacksMap=new Qt;this.visualizer=t}get file(){return this.visualizer.file}getCacheToDomsMap(t){let i=this.pagewiseCacheToDomsMap.get(t);return i||(i=new zc,this.pagewiseCacheToDomsMap.set(t,i)),i}clearDomInPage(t){let i=this.getCacheToDomsMap(t);for(let r of i.values())r.closest(".pdf-plus-backlink-highlight-layer")&&r.remove();this.pagewiseOnClearDomCallbacksMap.get(t).forEach(r=>r()),this.pagewiseCacheToDomsMap.delete(t),this.updateStatus(t,{onPageReady:!1,onTextLayerReady:!1,onAnnotationLayerReady:!1})}clear(){for(let t of this.pagewiseCacheToDomsMap.keys())this.clearDomInPage(t)}getStatus(t){let i=this.pagewiseStatus.get(t);return i||(i={onPageReady:!1,onTextLayerReady:!1,onAnnotationLayerReady:!1},this.pagewiseStatus.set(t,i)),i}isPageProcessed(t){let i=this.getStatus(t);return i.onPageReady&&i.onTextLayerReady&&i.onAnnotationLayerReady}updateStatus(t,i){let r=this.getStatus(t);Object.assign(r,i)}postProcessPageIfReady(t){this.isPageProcessed(t)&&this.postProcessPage(t)}postProcessPage(t){let i=this.getCacheToDomsMap(t);for(let r of i.keys()){let o=r.getColor();for(let s of i.get(r))this.hookBacklinkOpeners(s,r),this.hookBacklinkViewEventHandlers(s,r),this.hookContextMenuHandler(s,r),this.hookClassAdderOnMouseOver(s,r),this.setHighlightColor(s,o)}}hookBacklinkOpeners(t,i){let r="position"in i.refCache?i.refCache.position:void 0,o=r==null?void 0:r.start.line,s={isTriggeredFromBacklinkVisualizer:!0};typeof o=="number"&&(s.scroll=o),this.registerDomEventForCache(i,t,"mouseover",a=>{this.app.workspace.trigger("hover-link",{event:a,source:"pdf-plus",hoverParent:this.visualizer,targetEl:t,linktext:i.sourcePath,sourcePath:this.file.path,state:s})}),this.registerDomEventForCache(i,t,"dblclick",a=>{if(this.plugin.settings.doubleClickHighlightToOpenBacklink){let c=zu.Keymap.isModEvent(a);this.lib.workspace.openMarkdownLinkFromPDF(i.sourcePath,this.file.path,c,r?{pos:r}:void 0)}})}hookBacklinkViewEventHandlers(t,i){this.registerDomEventForCache(i,t,"mouseover",r=>{this.plugin.settings.highlightBacklinksPane&&this.lib.workspace.iterateBacklinkViews(o=>{if(this.file!==o.file||!o.containerEl.isShown()||!o.pdfManager)return;let s=o.pdfManager.findBacklinkItemEl(i);if(s){s.addClass("hovered-backlink");let a=c=>{Pi(c,s)&&(s.removeClass("hovered-backlink"),t.removeEventListener("mouseout",a))};t.addEventListener("mouseout",a)}})})}hookContextMenuHandler(t,i){this.registerDomEventForCache(i,t,"contextmenu",r=>{jw(r,this.visualizer,i)})}hookClassAdderOnMouseOver(t,i){let r=i.page;if(typeof r=="number"){let o="is-hovered";this.registerDomEventForCache(i,t,"mouseover",()=>{for(let a of this.getCacheToDomsMap(r).get(i))a.addClass(o);let s=()=>{for(let a of this.getCacheToDomsMap(r).get(i))a.removeClass(o);t.removeEventListener("mouseout",s)};t.addEventListener("mouseout",s)})}}setHighlightColor(t,i){if((i==null?void 0:i.type)==="name")t.dataset.highlightColor=i.name.toLowerCase();else if((i==null?void 0:i.type)==="rgb"){let{r,g:o,b:s}=i.rgb;t.setCssProps({"--pdf-plus-color":`rgb(${r}, ${o}, ${s})`,"--pdf-plus-backlink-icon-color":`rgb(${r}, ${o}, ${s})`,"--pdf-plus-rect-color":`rgb(${r}, ${o}, ${s})`})}}onClearDomInPage(t,i){this.pagewiseOnClearDomCallbacksMap.addValue(t,i)}registerDomEventForCache(t,i,r,o,s){this.registerDomEvent(i,r,o,s),t.page&&t.annotation&&this.onClearDomInPage(t.page,()=>{i.removeEventListener(r,o)})}},_g=class extends De{constructor(e){super(e.plugin),this.visualizer=e,this.pagewiseIdToRectsMap=new Map}get file(){return this.visualizer.file}get child(){return this.visualizer.child}onload(){this.registerEvent(this.app.vault.on("modify",e=>{e===this.file&&this.pagewiseIdToRectsMap.clear()}))}getIdToRectsMap(e){let t=this.pagewiseIdToRectsMap.get(e);return t||(t=new Map,this.pagewiseIdToRectsMap.set(e,t)),t}getRectsForSelection(e,t){var o;let i=this.getIdToRectsMap(e),r=(o=i.get(t))!=null?o:null;return r||(r=this.computeRectsForSelection(e,t),r?(i.set(t,r),r):null)}computeRectsForSelection(e,t){let i=this.child.getPage(e),{beginIndex:r,beginOffset:o,endIndex:s,endOffset:a}=kt.selectionIdToParams(t),c=i.textLayer;if(!c)return null;let l=Ft(c);return!l||!l.textDivs.length?null:this.lib.highlight.geometry.computeMergedHighlightRects(l,r,o,s,a)}},Hu=class n extends Yg{constructor(e,t,i){super(e,t),this.child=i}static create(e,t,i){return e.addChild(new n(e,t,i))}get hoverPopover(){return this.child.hoverPopover}set hoverPopover(e){this.child.hoverPopover=e,e==null||e.hoverEl.addClass("pdf-plus-backlink-popover")}onload(){this.shouldVisualizeBacklinks()&&(this.domManager=this.addChild(new Jg(this)),this.rectangleCache=this.addChild(new _g(this)),this.visualize(),this.registerEvent(this.index.on("update",()=>{this.visualize()})))}shouldVisualizeBacklinks(){let e=this.child.pdfViewer;return this.settings.highlightBacklinks&&(Gn(e)||this.settings.highlightBacklinksInCanvas&&xa(e)||this.settings.highlightBacklinksInHoverPopover&&ba(e)||this.settings.highlightBacklinksInEmbed&&Qo(e))}visualize(){let e=this.child.pdfViewer;this.lib.onPageReady(e,this,t=>{this.domManager.clearDomInPage(t);let i=this.index.getPageIndex(t);for(let[r,o]of i.XYZs)this.processXYZ(t,r,o);for(let[r,o]of i.FitBHs)this.processFitBH(t,r,o);for(let[r,o]of i.FitRs)this.processFitR(t,r,o);this.domManager.updateStatus(t,{onPageReady:!0}),this.domManager.postProcessPageIfReady(t)}),this.lib.onTextLayerReady(e,this,t=>{let i=this.domManager.getStatus(t);if(!i.onPageReady||i.onTextLayerReady)return;let r=this.index.getPageIndex(t);for(let[o,s]of r.selections)this.processSelection(t,o,s);this.domManager.updateStatus(t,{onTextLayerReady:!0}),this.domManager.postProcessPageIfReady(t)}),this.lib.onAnnotationLayerReady(e,this,t=>{let i=this.domManager.getStatus(t);if(!i.onPageReady||i.onAnnotationLayerReady)return;let r=this.index.getPageIndex(t);for(let[o,s]of r.annotations)this.processAnnotation(t,o,s);this.domManager.updateStatus(t,{onAnnotationLayerReady:!0}),this.domManager.postProcessPageIfReady(t)})}processSelection(e,t,i){var d;if(this.settings.highlightColorSpecifiedOnly&&(i=new Set(Array.from(i).filter(h=>h.getColor())),!i.size))return;super.processSelection(e,t,i);let r=this.child.getPage(e),o=this.domManager.getCacheToDomsMap(e),s=r.textLayer;if(!s)return;let a=Ft(s);if(!a)return;let{textDivs:c}=a;if(!c||!c.length)return;let l=this.rectangleCache.getRectsForSelection(e,t);if(l){for(let{rect:h,indices:u}of l){let p=this.lib.highlight.viewer.placeRectInPage(h,r);p.addClasses(["pdf-plus-backlink","pdf-plus-backlink-selection"]);let f=c[u[0]];p.setCssStyles({fontSize:f.style.fontSize}),p.dataset.backlinkId=t;for(let m of i)o.addValue(m,p)}if(this.settings.showBacklinkIconForSelection){let h=(d=l.last())==null?void 0:d.rect;if(h){let u=this.showIcon(h[2],h[3],r);for(let p of i)o.addValue(p,u)}}}}processAnnotation(e,t,i){var u;super.processAnnotation(e,t,i);let r=this.child.getPage(e),o=(u=r.annotationLayer)==null?void 0:u.annotationLayer;if(!o)return;let s=o.getAnnotation(t);if(!s)return;s.container.addClasses(["pdf-plus-backlink","pdf-plus-backlink-annotation"]);let[,,a,c]=s.data.rect,l;this.settings.showBacklinkIconForAnnotation&&(l=this.showIcon(a,c,r));let d;this.settings.showBoundingRectForBacklinkedAnnot&&(d=this.lib.highlight.viewer.placeRectInPage(s.data.rect,r),d.addClass("pdf-plus-annotation-bounding-rect"));let h=this.domManager.getCacheToDomsMap(e);for(let p of i){h.addValue(p,s.container),l&&h.addValue(p,l),d&&h.addValue(p,d);let[f,m,x]=s.data.color;p.setColor({rgb:{r:f,g:m,b:x}})}}processXYZ(e,t,i){if(super.processXYZ(e,t,i),this.settings.showBacklinkIconForOffset){let r=this.child.getPage(e),{left:o,top:s}=kt.XYZIdToParams(t),a=this.showIcon(o,s,r,"left"),c=this.domManager.getCacheToDomsMap(e);for(let l of i)c.addValue(l,a)}}processFitBH(e,t,i){if(super.processFitBH(e,t,i),this.settings.showBacklinkIconForOffset){let r=this.child.getPage(e),{top:o}=kt.FitBHIdToParams(t),s=this.showIcon(0,o,r),a=this.domManager.getCacheToDomsMap(e);for(let c of i)a.addValue(c,s)}}processFitR(e,t,i){if(i=new Set(Array.from(i).filter(h=>!h.annotation)),!i.size)return;super.processFitR(e,t,i);let r=this.child.getPage(e),{left:o,bottom:s,right:a,top:c}=kt.FitRIdToParams(t),l=this.lib.highlight.viewer.placeRectInPage([o,s,a,c],r);l.addClasses(["pdf-plus-backlink","pdf-plus-backlink-fit-r"]);let d=this.domManager.getCacheToDomsMap(e);for(let h of i)d.addValue(h,l);if(this.settings.showBacklinkIconForRect){let h=this.showIcon(a,c,r);for(let u of i)d.addValue(u,h)}}showIcon(e,t,i,r="right"){var h;let o=Math.min(i.viewport.rawDims.pageWidth,i.viewport.rawDims.pageWidth)*this.settings.backlinkIconSize/2e3,s=[e,t-o,e+o,t],a=[e-o,t-o,e,t],c=r==="left"&&a[0]>=((h=i.viewport.rawDims.pageX)!=null?h:0)?a:s,l=this.lib.highlight.viewer.placeRectInPage(c,i);l.addClass("pdf-plus-backlink-icon"),(0,zu.setIcon)(l,"links-coming-in");let d=l.querySelector("svg");return d==null||d.setAttribute("stroke","var(--pdf-plus-backlink-icon-color)"),l}};var Xr=require("obsidian");var He=require("obsidian");var Ci=class Ci extends De{constructor(e,t,i){super(e),this.child=t,this.toolbarLeftEl=i,this.spacerEl=null,this.paletteEl=null,this.itemEls=[],this.actionMenuEl=null,this.displayTextFormatMenuEl=null,this.writeFileButtonEl=null,this.cropButtonEl=null,this.statusContainerEl=null,this.statusEl=null,this.importButtonEl=null,this.selectedColorName=null,this.actionIndex=e.settings.defaultColorPaletteActionIndex,this.displayTextFormatIndex=e.settings.defaultDisplayTextFormatIndex,this.writeFile=this.lib.isEditable(this.child)&&e.settings.defaultWriteFileToggle}onload(){if(this.toolbarLeftEl.querySelectorAll("."+Ci.CLS).forEach(e=>{var t;(t=Ci.elInstanceMap.get(e))==null||t.unload()}),!(!this.plugin.settings.colorPaletteInEmbedToolbar&&this.toolbarLeftEl.closest(".pdf-embed"))){if(this.spacerEl=this.toolbarLeftEl.createDiv("pdf-toolbar-spacer"),this.paletteEl=this.toolbarLeftEl.createDiv(Ci.CLS),Ci.elInstanceMap.set(this.paletteEl,this),this.plugin.settings.colorPaletteInToolbar){this.addItem(this.paletteEl,null,"transparent");for(let[e,t]of Object.entries(this.plugin.settings.colors))this.addItem(this.paletteEl,e,t);this.setActiveItem([null,...Object.keys(this.plugin.settings.colors)][this.plugin.settings.defaultColorPaletteItemIndex])}this.actionMenuEl=this.addCopyActionDropdown(this.paletteEl),this.displayTextFormatMenuEl=this.addDisplayTextFormatDropdown(this.paletteEl),this.addCropButton(this.paletteEl),this.child.isFileExternal?this.addImportButton(this.paletteEl):this.addWriteFileToggle(this.paletteEl),this.statusContainerEl=this.paletteEl.createDiv("pdf-plus-color-palette-status-container"),this.statusEl=this.statusContainerEl.createSpan("pdf-plus-color-palette-status"),this.registerEvent(this.plugin.on("color-palette-state-change",({source:e})=>{e!==this&&this.syncTo(e)}))}}onunload(){var e;(e=this.spacerEl)==null||e.remove(),this.paletteEl&&(this.paletteEl.remove(),Ci.elInstanceMap.delete(this.paletteEl))}addItem(e,t,i){if(t&&!cn(i)||t===null&&!this.plugin.settings.noColorButtonInColorPalette)return;let r=e.createDiv({cls:[Ci.CLS+"-item","clickable-icon"],attr:t?{"data-highlight-color":t.toLowerCase()}:void 0});this.itemEls.push(r),r.createDiv(Ci.CLS+"-item-inner"),this.setTooltipToActionItem(r,t),r.addEventListener("pointerup",s=>this.onItemPointerUp(r,t,s));let o=!1;r.addEventListener("contextmenu",()=>{if(o)return;let s=new He.Menu().addItem(a=>{a.setIcon("lucide-settings").setTitle("Customize...").onClick(()=>{this.plugin.openSettingTab().scrollTo("colors")})});s.onHide(()=>{o=!1}),jn(s,r),o=!0})}onItemPointerUp(e,t,i){let r=!e.hasClass("is-active");this.setActiveItem(t),this.plugin.settings.syncColorPaletteItem&&this.plugin.settings.syncDefaultColorPaletteItem&&(this.plugin.settings.defaultColorPaletteItemIndex=t?Object.keys(this.plugin.settings.colors).indexOf(t)+1:0),r&&this.plugin.trigger("color-palette-state-change",{source:this});let o=this.plugin.settings.copyCommands[this.actionIndex].template;this.writeFile?this.lib.copyLink.writeHighlightAnnotationToSelectionIntoFileAndCopyLink(!1,{copyFormat:o},t!=null?t:void 0):this.lib.copyLink.copyLinkToSelection(!1,{copyFormat:o},t!=null?t:void 0),i.preventDefault()}setActiveItem(e){this.selectedColorName=e?e.toLowerCase():null,this.itemEls.forEach(t=>{t.toggleClass("is-active",this.selectedColorName===t.dataset.highlightColor||this.selectedColorName===null&&t.dataset.highlightColor===void 0)})}addDropdown(e,t,i,r,o,s){return e.createDiv("clickable-icon",a=>{(0,He.setIcon)(a,"lucide-chevron-down"),(0,He.setTooltip)(a,r),a.dataset.checkedIndex=""+this[i];let c=!1;a.addEventListener("click",()=>{if(c)return;let l=new He.Menu;for(let d=0;d<t.length;d++){let h=t[d];l.addItem(u=>{u.setTitle(h).setChecked(this[i]===d).onClick(()=>{let p=this[i]!==d;this.setCheckedIndex(i,d,a),o==null||o(),p&&this.plugin.trigger("color-palette-state-change",{source:this})})})}s==null||s(l),l.onHide(()=>{c=!1}),jn(l,a),c=!0})})}setCheckedIndex(e,t,i){this[e]=t,i.dataset.checkedIndex=""+t}setActionIndex(e){this.actionMenuEl&&this.setCheckedIndex("actionIndex",e,this.actionMenuEl),this.updateTooltips()}setDisplayTextFormatIndex(e){this.displayTextFormatMenuEl&&this.setCheckedIndex("displayTextFormatIndex",e,this.displayTextFormatMenuEl)}addCopyActionDropdown(e){let t="Link copy format";this.plugin.settings.colorPaletteInToolbar||(t=`${this.plugin.manifest.name}: link copy options (trigger via hotkeys)`);let i=this.addDropdown(e,this.plugin.settings.copyCommands.map(r=>r.name),"actionIndex",t,()=>{this.updateTooltips(),this.plugin.settings.syncColorPaletteAction&&this.plugin.settings.syncDefaultColorPaletteAction&&(this.plugin.settings.defaultColorPaletteActionIndex=this.actionIndex)},r=>{r.addItem(o=>{o.setTitle("Customize...").setIcon("lucide-settings").onClick(()=>{this.plugin.openSettingTab().scrollTo("copyCommands")})})});return i.addClass("pdf-plus-action-menu"),i}addDisplayTextFormatDropdown(e){let t=this.addDropdown(e,this.plugin.settings.displayTextFormats.map(i=>i.name),"displayTextFormatIndex","Display text format",()=>{this.plugin.settings.syncDisplayTextFormat&&this.plugin.settings.syncDefaultDisplayTextFormat&&(this.plugin.settings.defaultDisplayTextFormatIndex=this.displayTextFormatIndex)},i=>{i.addItem(r=>{r.setTitle("Customize...").setIcon("lucide-settings").onClick(()=>{this.plugin.openSettingTab().scrollTo("displayTextFormats")})})});return t.addClass("pdf-plus-display-text-format-menu"),t}addWriteFileToggle(e){this.removeWriteFileToggle(),this.writeFileButtonEl=e.createDiv("clickable-icon",t=>{(0,He.setIcon)(t,"lucide-edit"),(0,He.setTooltip)(t,`Add ${this.plugin.settings.selectionBacklinkVisualizeStyle}s to file directly`),t.toggleClass("is-disabled",!this.lib.isEditable(this.child));let i=!1;t.addEventListener("click",()=>{if(!this.lib.isEditable(this.child)){if(i)return;let r=new He.Menu().addItem(o=>{o.setIcon("lucide-settings").setTitle("Enable PDF editing...").onClick(()=>{this.plugin.openSettingTab().scrollToHeading("edit")})});r.onHide(()=>{i=!1}),jn(r,t),i=!0;return}this.setWriteFile(!this.writeFile),this.plugin.settings.syncWriteFileToggle&&this.plugin.settings.syncDefaultWriteFileToggle&&(this.plugin.settings.defaultWriteFileToggle=this.writeFile),this.plugin.trigger("color-palette-state-change",{source:this})}),t.addEventListener("contextmenu",()=>{if(i)return;let r=new He.Menu;this.lib.isEditable(this.child)&&r.addItem(o=>{o.setIcon("lucide-settings").setTitle("Customize...").onClick(()=>{this.plugin.openSettingTab().scrollToHeading("annot")})}),r.addItem(o=>{o.setIcon("lucide-settings").setTitle(this.lib.isEditable(this.child)?"Disable PDF editing...":"Enable PDF editing...").onClick(()=>{this.plugin.openSettingTab().scrollToHeading("edit")})}),r.onHide(()=>{i=!1}),jn(r,t),i=!0})}),this.cropButtonEl&&e.insertAfter(this.writeFileButtonEl,this.cropButtonEl),this.setWriteFile(this.writeFile)}removeWriteFileToggle(){var e;(e=this.writeFileButtonEl)==null||e.remove(),this.writeFileButtonEl=null}addImportButton(e){this.removeImportButton(),this.importButtonEl=e.createDiv("clickable-icon",t=>{(0,He.setIcon)(t,"lucide-import"),(0,He.setTooltip)(t,"Import external PDF into vault"),t.addEventListener("click",()=>{this.importFile()})}),this.cropButtonEl&&e.insertAfter(this.importButtonEl,this.cropButtonEl)}removeImportButton(){var e;(e=this.importButtonEl)==null||e.remove(),this.importButtonEl=null}async importFile(){let e=this.child.externalFileUrl,t=this.child.file;if(!e||!t)return;if(!He.Platform.isDesktopApp&&e.startsWith(He.Platform.resourcePathPrefix)){new He.Notice(`${this.plugin.manifest.name}: Importing local PDFs outside the vault is supported only on the desktop app.`);return}let i=await fetch(e);if(i.ok){let r=await i.arrayBuffer();await this.app.vault.modifyBinary(t,r),this.removeImportButton(),this.paletteEl&&this.addWriteFileToggle(this.paletteEl),new He.Notice(`${this.plugin.manifest.name}: Successfully imported the PDF file into the vault.`);return}new He.Notice(`${this.plugin.manifest.name}: Import failed. Response status: ${i.status}`)}setWriteFile(e){var t;this.writeFile=e,(t=this.writeFileButtonEl)==null||t.toggleClass("is-active",e)}addCropButton(e){this.cropButtonEl=e.createDiv("clickable-icon pdf-plus-rect-select",t=>{(0,He.setIcon)(t,"lucide-box-select"),(0,He.setTooltip)(t,"Copy embed link to rectangular selection"),t.addEventListener("click",()=>{this.startRectangularSelection(!1)});let i=!1;t.addEventListener("contextmenu",()=>{if(i)return;let r=new He.Menu().addItem(o=>{o.setIcon("lucide-settings").setTitle("Customize...").onClick(()=>{this.plugin.openSettingTab().scrollToHeading("rect")})});r.onHide(()=>{i=!1}),jn(r,t),i=!0})})}startRectangularSelection(e){var l;let t=this.cropButtonEl;if(!t)return;let i=this.child;if(!((l=i.pdfViewer.dom)!=null&&l.viewerEl))return;let r=i.pdfViewer.dom.viewerEl,o={left:0,top:0,width:0,height:0},s=d=>{if(!It(d,d.target))return;let h=d.target.closest("div.page[data-page-number]");if(!h)return;let u=h.dataset.pageNumber;if(!u)return;let p=i.getPage(+u),{x:f,y:m}=pu(d);o.left=f,o.top=m;let x=h.createDiv("pdf-plus-select-box"),g=h.getBoundingClientRect(),b=getComputedStyle(h),v=parseFloat(b.borderTopWidth),y=parseFloat(b.borderLeftWidth),F=parseFloat(b.paddingTop),D=parseFloat(b.paddingLeft);x.setCssStyles({left:o.left-(g.left+y+D)+"px",top:o.top-(g.top+v+F)+"px"});let C=B=>{let{x:S,y:A}=pu(B),L=h.getBoundingClientRect();o.width=S-o.left-(L.left-g.left),o.height=A-o.top-(L.top-g.top),x.setCssStyles({width:o.width+"px",height:o.height+"px"}),B.preventDefault(),B.stopImmediatePropagation()},k=B=>{B.preventDefault(),B.stopImmediatePropagation()},E=()=>{var N;if(h.removeEventListener("pointermove",C),h.removeEventListener("touchmove",k),h.removeEventListener("pointerup",E),h.removeChild(x),o.height<=0||o.width<=0)return;let B=o.left-(g.left+y+D),S=o.top-(g.top+v+F),A=B+o.width,L=S+o.height,I=window.pdfjsLib.Util.normalizeRect([...p.getPagePoint(B,L),...p.getPagePoint(A,S)]);this.lib.copyLink.copyEmbedLinkToRect(!1,i,p.id,I,this.plugin.settings.includeColorWhenCopyingRectLink&&(N=this.selectedColorName)!=null?N:void 0,e),c()};this.registerDomEvent(h,"pointermove",C),this.registerDomEvent(h,"touchmove",k),this.registerDomEvent(h,"pointerup",E)},a=d=>{d.key==="Escape"&&c()},c=()=>{var d;t.toggleClass("is-active",!t.hasClass("is-active")),r.toggleClass("pdf-plus-selecting",t.hasClass("is-active")),this.register(()=>r.removeClass("pdf-plus-selecting")),(d=activeWindow.getSelection())==null||d.empty(),t.hasClass("is-active")?(this.registerDomEvent(r,"pointerdown",s),this.registerDomEvent(r.doc,"keydown",a)):(r.removeEventListener("pointerdown",s),r.doc.removeEventListener("keydown",a))};c()}setStatus(e,t){this.plugin.settings.showStatusInToolbar&&this.statusEl&&(this.statusEl.setText(e),t>0&&setTimeout(()=>{var i;((i=this.statusEl)==null?void 0:i.getText())===e&&this.statusEl.setText("")},t))}setTooltipToActionItem(e,t){let i=e.querySelector(":scope > ."+Ci.CLS+"-item-inner"),r=this.plugin.settings.copyCommands[this.actionIndex].name,o=this.plugin.settings.quietColorPaletteTooltip,s=t!==null?o?t:`Copy link with format "${r}" & add ${t.toLowerCase()} ${this.plugin.settings.selectionBacklinkVisualizeStyle}`:o?"No color specified":`Copy link with "${r}" format without specifying color`;(0,He.setTooltip)(i,s)}updateTooltips(){this.itemEls.forEach(e=>{var t;this.setTooltipToActionItem(e,(t=e.dataset.highlightColor)!=null?t:null)})}getState(){return{selectedColorName:this.selectedColorName,actionIndex:this.actionIndex,displayTextFormatIndex:this.displayTextFormatIndex,writeFile:this.writeFile}}setState(e){typeof e.selectedColorName=="string"&&this.setActiveItem(e.selectedColorName),typeof e.actionIndex=="number"&&this.setActionIndex(e.actionIndex),typeof e.displayTextFormatIndex=="number"&&this.setDisplayTextFormatIndex(e.displayTextFormatIndex),typeof e.writeFile=="boolean"&&this.setWriteFile(e.writeFile)}getColorName(){return this.getState().selectedColorName}getCopyFormat(){let e=this.getState();return this.plugin.settings.copyCommands[e.actionIndex].template}getDisplayTextFormat(){let e=this.getState();return this.plugin.settings.displayTextFormats[e.displayTextFormatIndex].template}syncTo(e){let t=e.getState();this.plugin.settings.syncColorPaletteItem||delete t.selectedColorName,this.plugin.settings.syncColorPaletteAction||delete t.actionIndex,this.plugin.settings.syncDisplayTextFormat||delete t.displayTextFormatIndex,this.plugin.settings.syncWriteFileToggle||delete t.writeFile,this.setState(t)}};Ci.CLS="pdf-plus-color-palette",Ci.elInstanceMap=new Map;var ei=Ci;var Sa=class extends De{constructor(e,t,i){super(e),this.toolbar=t,this.child=i}onload(){this.addColorPalette(),this.replaceDisplayOptionsDropdown(),this.addZoomLevelInputEl(),this.makeDropdownInToolbarHoverable()}onunload(){}addColorPalette(){this.child.palette=this.addChild(new ei(this.plugin,this.child,this.toolbar.toolbarLeftEl))}makeDropdownInToolbarHoverable(){let{toolbar:e,plugin:t}=this;!t.settings.hoverableDropdownMenuInToolbar||Xr.Platform.isPhone||e.toolbarLeftEl.querySelectorAll("div.clickable-icon").forEach(i=>{let r=i.firstElementChild;if(r&&r.matches("svg.lucide-chevron-down")){let o=null;qc({parentEl:i,createChildEl:()=>{if(!i.hasClass("has-active-menu")){i.click();for(let s of t.shownMenus)if(s.parentEl===i)return o=s,s.dom}return o=null},removeChildEl:()=>{o&&(o.hide(),o=null)},component:this.child.component,timeout:200})}})}replaceDisplayOptionsDropdown(){let{app:e,toolbar:t,child:i}=this,r=t.zoomInEl.nextElementSibling;if(!(r!=null&&r.hasClass("clickable-icon")))return;let o=r.firstElementChild;if(!(o!=null&&o.matches("svg.lucide-chevron-down")))return;let s=t.pdfViewer.eventBus,a=t.pdfViewer.pdfViewer;!s||!a||t.zoomInEl.after(createDiv("clickable-icon",c=>{(0,Xr.setIcon)(c,"lucide-chevron-down"),(0,Xr.setTooltip)(c,"Display options");let l=!1;c.addEventListener("click",()=>{if(!l){let d=a.currentScaleValue,h=a.scrollMode,u=a.spreadMode,p=!!e.loadLocalStorage("pdfjs-is-themed"),f=new Xr.Menu().addSections(["zoom","scroll","spread","appearance","settings"]).addItem(m=>{m.setSection("zoom").setIcon("lucide-move-horizontal").setTitle("Fit width").setChecked(d==="page-width").onClick(()=>s.dispatch("scalechanged",{source:t,value:"page-width"}))}).addItem(m=>{m.setSection("zoom").setIcon("lucide-move-vertical").setTitle("Fit height").setChecked(d==="page-height").onClick(()=>s.dispatch("scalechanged",{source:t,value:"page-height"}))}).addItem(m=>{m.setSection("zoom").setIcon("lucide-move").setTitle("Fit page").setChecked(d==="page-fit").onClick(()=>s.dispatch("scalechanged",{source:t,value:"page-fit"}))}).addItem(m=>{m.setSection("scroll").setIcon("lucide-chevrons-up-down").setTitle("Vertical scroll").setChecked(h===0).onClick(()=>{s.dispatch("switchscrollmode",{source:t,mode:0})})}).addItem(m=>{m.setSection("scroll").setIcon("lucide-chevrons-left-right").setTitle("Hotizontal scroll").setChecked(h===1).onClick(()=>{s.dispatch("switchscrollmode",{source:t,mode:1})})}).addItem(m=>{m.setSection("scroll").setIcon("lucide-sticky-note").setTitle("In-page scroll").setChecked(h===3).onClick(()=>{s.dispatch("switchscrollmode",{source:t,mode:3})})}).addItem(m=>{m.setSection("scroll").setIcon("lucide-wrap-text").setTitle("Wrapped scroll").setChecked(h===2).onClick(()=>{s.dispatch("switchscrollmode",{source:t,mode:2})})}).addItem(m=>{m.setSection("spread").setIcon("lucide-rectangle-vertical").setTitle("Single page").setChecked(u===0).onClick(()=>{s.dispatch("switchspreadmode",{source:t,mode:0})})}).addItem(m=>{m.setSection("spread").setIcon("rectangle-vertical-double").setTitle("Two pages (odd)").setChecked(u===1).onClick(()=>{s.dispatch("switchspreadmode",{source:t,mode:1})})}).addItem(m=>{m.setSection("spread").setIcon("rectangle-vertical-double").setTitle("Two pages (even)").setChecked(u===2).onClick(()=>{s.dispatch("switchspreadmode",{source:t,mode:2})})}).addItem(m=>{m.setSection("appearance").setIcon("lucide-palette").setTitle("Adapt to theme").setChecked(p).onClick(()=>{e.saveLocalStorage("pdfjs-is-themed",p?null:"true"),i.onCSSChange(),this.plugin.trigger("adapt-to-theme-change",{adapt:!p})})}).addItem(m=>{m.setSection("settings").setIcon("lucide-settings").setTitle("Customize defaults...").onClick(()=>{this.plugin.openSettingTab().scrollToHeading("viewer-option")})});f.onHide(()=>{l=!1}),jn(f,c),l=!0}}),t.toolbarEl.doc.win.setTimeout(()=>{r.remove(),t.toolbarLeftEl.insertAfter(c,t.zoomInEl)})}))}addZoomLevelInputEl(){if(!this.settings.zoomLevelInputBoxInToolbar)return;let{toolbar:e}=this,t=e.pdfViewer.eventBus,i=e.pdfViewer.pdfViewer;if(!t||!i)return;let r=e.zoomOutEl.nextElementSibling;r!=null&&r.hasClass("pdf-toolbar-divider")&&(r.remove(),this.register(()=>e.zoomOutEl.after(createDiv("pdf-toolbar-divider"))),e.zoomOutEl.after(createEl("input","pdf-zoom-level-input",o=>{this.register(()=>o.remove()),o.type="number",o.addEventListener("click",()=>o.select()),o.addEventListener("change",()=>{let s=o.valueAsNumber/100,a=Math.min(Math.max(s,window.pdfjsViewer.MIN_SCALE),window.pdfjsViewer.MAX_SCALE);i.currentScale=a}),t.on("scalechanging",({scale:s})=>{o.value=Math.round(s*100)+""}),i.currentScale&&(o.value=Math.round(i.currentScale*100)+""),o.doc.win.setTimeout(()=>{o.after(createSpan({cls:"pdf-zoom-level-percent",text:"%"},s=>{this.register(()=>s.remove())}))})})))}};Sa.elInstanceMap=new Map;var Qg=Ki(require("obsidian"));var ts=class extends De{constructor(e,t){super(e),this.child=t}get file(){return this.child.file}get pdf(){return this.file}get folder(){var e,t;return(t=(e=this.file)==null?void 0:e.parent)!=null?t:null}get pdfViewer(){return this.child.pdfViewer}get dom(){return this.child.pdfViewer.dom}get doc(){return this.child.containerEl.doc}get obsidian(){return Qg}get text(){var t;let e=(t=this.doc.getSelection())==null?void 0:t.toString();return e?this.lib.toSingleLine(e):""}get selection(){return this.text}get page(){var t,i,r,o;let e=this.doc.getSelection();return(o=(r=e&&((t=this.lib.copyLink.getPageAndTextRangeFromSelection(e))==null?void 0:t.page))!=null?r:(i=this.pdfViewer.pdfViewer)==null?void 0:i.currentPageNumber)!=null?o:null}get pageLabel(){let e=this.page;return e!==null?this.child.getPage(e).pageLabel:null}get pageCount(){var e,t;return(t=(e=this.pdfViewer.pdfViewer)==null?void 0:e.pagesCount)!=null?t:null}get color(){var e,t,i;return(i=(t=(e=this.child.palette)==null?void 0:e.getColorName())==null?void 0:t.toLowerCase())!=null?i:null}evaluateTemplate(e,t,i){if(!this.file||typeof this.page!="number")return"";let r=this.lib.copyLink.getPageAndTextRangeFromSelection(this.doc.getSelection());if(!r)return"";let{page:o,selection:s}=r;if(!s)return"";let a=Kc({page:o,selection:`${s.beginIndex},${s.beginOffset},${s.endIndex},${s.endOffset}`,color:i?i.toLowerCase():void 0});return this.lib.copyLink.getTextToCopy(this.child,e,t,this.file,this.page,a,this.text,i?i.toLowerCase():"")}writeFile(e,t,i){var r;return this.lib.write(Qg.normalizePath(e),t,(r=i==null?void 0:i.existOk)!=null?r:!1)}async run(e){return Ag("const app=this.app;const api = this;"+e,this)}};var Zw=require("obsidian");var xC=n=>It(n,n.target)&&og(n.target),Uu=class n extends Zw.Scope{constructor(t){super(t);this.modeToKeymaps={};this.currentMode=null;this.currentKeys="";this.searchFrom=0;this.searchTo=-1;this.onEscapeCallbacks=[];this.escapeAliases=[];this.typableModes=[]}registerKeymaps(t,i){let r=(o,s)=>$o(o.keys,s.keys);for(let o of t){if(!this.modeToKeymaps.hasOwnProperty(o)){this.modeToKeymaps[o]=Object.entries(i).map(([s,a])=>({keys:s,func:a})).sort(r);continue}for(let s in i){let a=i[s],c={keys:s,func:a},l=this.modeToKeymaps[o],{found:d,index:h}=hn(l,u=>r(c,u));d?l[h]=c:l.splice(h,0,c)}}}unregisterAllKeymaps(t){for(let i of t)this.modeToKeymaps[i]&&(this.modeToKeymaps[i].length=0)}map(t,i){for(let r of t){let o=Object.fromEntries(Object.entries(i).map(([s,a])=>[s,c=>{let{found:l,index:d}=hn(this.modeToKeymaps[r],h=>$o(a,h.keys));if(l){let h=this.modeToKeymaps[r][d].func;return h(c)}}]));this.registerKeymaps([r],o)}}noremap(t,i){for(let r of t)if(this.modeToKeymaps.hasOwnProperty(r))for(let o in i){let s=i[o],{found:a,index:c}=hn(this.modeToKeymaps[r],l=>$o(s,l.keys));if(a){let l=this.modeToKeymaps[r][c];this.registerKeymaps([r],{[o]:l.func})}}}unmap(t,i){for(let r of t)if(this.modeToKeymaps.hasOwnProperty(r))for(let o of i){let{found:s,index:a}=hn(this.modeToKeymaps[r],c=>$o(o,c.keys));s&&this.modeToKeymaps[r].splice(a,1)}}setMode(t){this.currentMode=t,this.reset()}clearKeys(){this.currentKeys=""}reset(){this.clearKeys(),this.searchFrom=0,this.searchTo=-1}onEscape(t){this.onEscapeCallbacks.push(t)}addEscapeAliases(...t){this.escapeAliases.push(...t)}setTypable(...t){this.typableModes.push(...t)}handleKey(t,i){let r=!0;(()=>{if(this.currentMode===null)return this.reset();if(this.typableModes.includes(this.currentMode)!==xC(t))return;let o=n.canonicalizeKey(i);if(o===null)return this.reset();if(o==="<Esc>"||this.escapeAliases.includes(o))return this.onEscapeCallbacks.forEach(h=>h(o==="<Esc>")),this.reset();this.currentKeys+=o;let s=this.currentKeys.match(/^([1-9]\d*)?([\D0][\d\D]*)?/);if(!s)return this.reset();let a=s[1]?+s[1]:void 0,c=s[2];if(!c)return;let l=this.modeToKeymaps[this.currentMode];if(!l||l.length===0)return this.reset();let d=Sg(l,c,h=>h.keys,{from:(l.length+this.searchFrom)%l.length,to:(l.length+this.searchTo)%l.length});if(!d)return this.reset();if(d.from===d.to){let h=l[d.from];if(h.keys===c){this.reset(),h.func(a),t.preventDefault(),r=!1;return}}this.searchFrom=d.from,this.searchTo=d.to})(),r&&this.parent&&this.parent.handleKey(t,i)}static canonicalizeKey(t){var r;if(t.modifiers===null||t.key===null)return null;let i=n.canonicalizeSpecialKey(t.key);switch(t.modifiers){case"":return i?`<${i}>`:t.key;case"Shift":return t.key.length===1&&t.key!==" "?t.key:`<S-${i!=null?i:t.key}>`;case"Ctrl":return`<C-${i!=null?i:t.key}>`;case"Alt":return`<M-${(r=n.canonicalizeSpecialKey(t.vkey))!=null?r:t.vkey.toLowerCase()}>`;case"Meta":return`<M-${i!=null?i:t.key}>`;default:return null}}static canonicalizeSpecialKey(t){switch(t){case"<":return"lt";case"Backspace":return"BS";case"Tab":return"Tab";case"Enter":return"CR";case"Escape":return"Esc";case" ":return"Space";case"\\":return"Bslash";case"|":return"Bar";case"ArrowUp":return"Up";case"ArrowDown":return"Down";case"ArrowLeft":return"Left";case"ArrowRight":return"Right";default:return null}}};var qu=class{constructor(e){this.lastScroll=0;this.lastScrollInterval=0;this.vim=e}get settings(){return this.vim.settings}get viewerContainerEl(){var e,t;return(t=(e=this.vim.obsidianViewer)==null?void 0:e.dom)==null?void 0:t.viewerContainerEl}getPageDiv(e=0){var i;let t=this.vim.pdfViewer;if(t)return(i=t._pages[t.currentPageNumber-1+e])==null?void 0:i.div}scrollTo(e,t){let i=this.viewerContainerEl;if(!i)return;let r=this.isFirstScrollInAWhile(),o=r?this.settings.vimScrollSize:this.settings.vimContinuousScrollSpeed*this.lastScrollInterval;this.vim.pdfViewer&&this.settings.vimLargerScrollSizeWhenZoomIn&&(o*=Math.max(1,this.vim.pdfViewer.currentScale)),t!=null||(t=1),o*=t;let a={behavior:this.settings.vimSmoothScroll&&r?"smooth":"instant"};switch(e){case"left":a.left=-o;break;case"right":a.left=o;break;case"up":a.top=-o;break;case"down":a.top=o;break}i.scrollBy(a)}isFirstScrollInAWhile(){let e=Date.now();return this.lastScrollInterval=e-this.lastScroll,this.lastScroll=e,this.lastScrollInterval>100}scrollToTop(){if(!this.viewerContainerEl)return;let e=this.getPageDiv();e&&this.viewerContainerEl.scrollTo({top:e.offsetTop,behavior:this.settings.vimSmoothScroll?"smooth":"instant"})}scrollToBottom(){if(!this.viewerContainerEl)return;let e=this.getPageDiv();e&&this.viewerContainerEl.scrollTo({top:e.offsetTop+e.offsetHeight-this.viewerContainerEl.clientHeight,behavior:this.settings.vimSmoothScroll?"smooth":"instant"})}scrollVerticallyByVisualPage(e){if(!this.viewerContainerEl)return;let t=this.viewerContainerEl.clientHeight;t*=e,this.viewerContainerEl.scrollBy({top:t,behavior:this.settings.vimSmoothScroll?"smooth":"instant"})}scrollHorizontallyByVisualPage(e){if(!this.viewerContainerEl)return;let t=this.viewerContainerEl.clientWidth;t*=e,this.viewerContainerEl.scrollBy({left:t,behavior:this.settings.vimSmoothScroll?"smooth":"instant"})}};var Jw=require("obsidian");var Yw=200,Wu=class{constructor(e){this.isActive=!1;this.isForward=!0;this.vim=e}get settings(){return this.vim.settings}get lib(){return this.vim.lib}get incsearch(){return this.settings.vimIncsearch}get hlsearch(){return this.settings.vimHlsearch}get findBar(){var e;return(e=this.vim.obsidianViewer)==null?void 0:e.findBar}findNext(e=1,t=!0){if(this.isActive&&this.findBar){for(this.vim.visualMode.rememberSelection();e-- >0;)this.findBar.dispatchEvent("again",t?!this.isForward:this.isForward);this.restoreSelectionAndExtendToMatch()}}findPrevious(e){this.findNext(e,!1)}restoreSelectionAndExtendToMatch(){setTimeout(()=>{let e=this.vim.doc.getSelection();if((!e||e.isCollapsed)&&this.vim.visualMode.restorePreviousSelection(),e=this.vim.doc.getSelection(),e&&!e.isCollapsed){let t=this.getSelectedMatchEl();t&&this.vim.visualMode.extendSelectionToNode(t)}},Yw)}start(e){let t=this.findBar;if(!t)return;if(this.vim.visualMode.rememberSelection(),t.opened){t.searchComponent.inputEl.select();return}this.isActive=!0,this.isForward=e,t.searchSettings.highlightAll=this.hlsearch,this.lib.updateSearchSettingsUI(t);let i=t.searchComponent.changeCallback;this.incsearch?t.searchComponent.onChange((0,Jw.debounce)(()=>{t.dispatchEvent("again")},250,!0)):t.searchComponent.onChange(()=>{}),t.showSearch();let r=o=>{this.isActive&&(o.isComposing||o.key==="Enter"&&(It(o,o.target)&&o.target.blur(),o.stopPropagation(),this.incsearch?this.restoreSelectionAndExtendToMatch():this.findNext()))};t.searchComponent.inputEl.addEventListener("keypress",r,!0),this.lib.registerPDFEvent("findbarclose",t.eventBus,null,()=>{this.isActive=!1,t.searchComponent.inputEl.removeEventListener("keypress",r,!0),i&&t.searchComponent.onChange(i)})}findAndSelectNextMatch(e,t){this.findNext(e,t),setTimeout(()=>{let i=this.vim.doc.getSelection();if(!i)return;let r=this.getSelectedMatchEl();r&&(i.isCollapsed?i.selectAllChildren(r):this.vim.visualMode.extendSelectionToNode(r,1))},Yw+1)}getSelectedMatchEl(){var i,r;let e=(r=(i=this.vim.obsidianViewer)==null?void 0:i.dom)==null?void 0:r.viewerEl;return e?e.querySelector(".textLayer .textLayerNode > .highlight.selected"):null}};var gn=class extends De{get vimScope(){return this.vim.vimScope}get doc(){return this.vim.doc}get viewer(){return this.vim.viewer}get obsidianViewer(){return this.vim.obsidianViewer}get pdfViewer(){return this.vim.pdfViewer}constructor(e){super(e.plugin),this.vim=e}};var ju=class extends gn{constructor(t){super(t);this.selectionChangedByVisualMotion=!1;this.previousSelection=null;this.defineKeymaps()}get structureParser(){return this.vim.structureParser}onload(){this.registerDomEvent(this.doc,"selectionchange",()=>{let t=this.doc.getSelection();switch(this.vim.vimScope.currentMode){case"visual":(!t||t.isCollapsed)&&(this.selectionChangedByVisualMotion||this.vim.vimScope.setMode("normal"));break;default:if(t&&!t.isCollapsed&&t.rangeCount>0){let i=t.getRangeAt(0);this.vim.viewer.containerEl.contains(i.commonAncestorContainer)&&this.vim.vimScope.setMode("visual")}}this.selectionChangedByVisualMotion=!1})}defineKeymaps(){let t=i=>r=>(i(r),this.selectionChangedByVisualMotion=!0);this.vimScope.registerKeymaps(["visual"],{...this.settings.vimVisualMotion?{j:t(i=>this.extendSelectionByLine(i!=null?i:1)),k:t(i=>this.extendSelectionByLine(-(i!=null?i:1))),h:t(i=>this.extendSelectionByChar(i!=null?i:1,!1)),l:t(i=>this.extendSelectionByChar(i!=null?i:1,!0)),w:t(i=>{let r=this.doc.getSelection();r&&(es(()=>{r.modify("extend","forward","word"),r.modify("extend","forward","word"),r.modify("extend","backward","word"),un(r)&&r.modify("extend","forward","character")},i),this.ensureSelectionHeadAtTextDiv(r,!1))}),e:t(i=>{let r=this.doc.getSelection();r&&(es(()=>{un(r)||r.modify("extend","forward","character"),r.modify("extend","forward","word"),un(r)||r.modify("extend","backward","character")},i),this.ensureSelectionHeadAtTextDiv(r,!1))}),b:t(i=>{let r=this.doc.getSelection();r&&(es(()=>{un(r)&&r.modify("extend","backward","character"),r.modify("extend","backward","word"),un(r)&&r.modify("extend","forward","character")},i),this.ensureSelectionHeadAtTextDiv(r,!0))}),0:t(()=>this.extendSelctionToLineBoundary(!1)),"^":t(()=>this.extendSelctionToLineBoundary(!1)),$:t(()=>this.extendSelctionToLineBoundary(!0))}:{},o:t(()=>{let i=this.doc.getSelection();i&&jc(i)}),y:()=>{let i=this.doc.getSelection();if(i){let r=i.toString();r&&(this.settings.copyAsSingleLine&&(r=this.lib.toSingleLine(r)),navigator.clipboard.writeText(r)),i.empty()}},c:()=>{var i;this.lib.commands.copyLink(!1),(i=this.doc.getSelection())==null||i.empty()},C:()=>{let i=this.doc.getSelection();i&&setTimeout(()=>{this.viewer.then(r=>{Vu(this.plugin,r,i)})})}})}getTextDivContainingNode(t){let i=t.instanceOf(Element)?t:t.parentElement;if(!i)return null;let r=i.closest(".textLayerNode");return r||null}getTextDivAtSelectionHead(t){let{focusNode:i}=t;return i?this.getTextDivContainingNode(i):null}getSelectionPos(t,i){let r=i==="head",o=r?t.focusNode:t.anchorNode;if(!o)return null;let s=this.getTextDivContainingNode(o);if(!s||s.dataset.idx===void 0)return null;let a=+s.dataset.idx,c=(()=>{let d=r?t.focusOffset:t.anchorOffset,h=this.doc.createNodeIterator(s,NodeFilter.SHOW_ALL),u,p=0;for(;u=h.nextNode();){if(u===o)return p+=u.nodeType===Node.TEXT_NODE?d:Array.from(o.childNodes).slice(0,d).map(f=>f.textContent.length).reduce((f,m)=>f+m,0),p;u.nodeType===Node.TEXT_NODE&&(p+=u.textContent.length)}return p})();if(typeof c!="number")return null;un(t)===r&&c--;let l=d=>d.instanceOf(HTMLElement)&&d.hasClass("textLayerNode")&&!!d.textContent;if(c<0){let d=s.previousSibling;for(;d&&!l(d);)d=d.previousSibling;d&&l(d)&&d.dataset.idx!==void 0&&(a=+d.dataset.idx,c=d.textContent.length-1)}else if(s.textContent&&c>=s.textContent.length){let d=s.nextSibling;for(;d&&!l(d);)d=d.nextSibling;d&&l(d)&&d.dataset.idx!==void 0&&(a=+d.dataset.idx,c=0)}return{index:a-this.plugin.textDivFirstIdx,offset:c}}extendSelection(t){var l,d,h;let i=this.doc.getSelection();if(!i)return;let r=this.lib.getPageElFromSelection(i);if(!r||r.dataset.pageNumber===void 0)return;let o=+r.dataset.pageNumber,s=(l=this.structureParser)==null?void 0:l.getPageParser(o);if(!s)return;let a=this.getSelectionPos(i,"head");if(!a)return;let c=t({currentHeadPos:a,pageNumber:o,pageParser:s});if(c){let u=s.divs[c.index],p=c.offset;p<0&&(p+=(h=(d=u.textContent)==null?void 0:d.length)!=null?h:0);let f=Kn(u,p);if(!f)return;this.extendSelectionToNode(f.node,f.offset)}}extendSelectionToNode(t,i){let r=this.doc.getSelection();r&&(r.extend(t,i),un(r)&&r.modify("extend","forward","character"))}extendSelectionByLine(t){this.extendSelection(({currentHeadPos:i,pageParser:r})=>r.getLineShiftPosition(i,t))}extendSelctionToLineBoundary(t){this.extendSelection(({currentHeadPos:i,pageParser:r})=>{let o=r.getBoundIndicesOfLine(i.index,0);return o?t?{index:o.end,offset:-1}:{index:o.start,offset:0}:null})}extendSelectionByChar(t,i){let r=this.doc.getSelection();r&&(es(()=>r.modify("extend",i?"forward":"backward","character"),t),this.ensureSelectionHeadAtTextDiv(r,i))}selectMatch(){var i;let t=this.vim.search.getSelectedMatchEl();t&&((i=this.vim.doc.getSelection())==null||i.selectAllChildren(t))}ensureSelectionHeadAtTextDiv(t,i){let r=this.getTextDivAtSelectionHead(t);for(;!r;)t.modify("extend",i?"forward":"backward","character"),r=this.getTextDivAtSelectionHead(t)}setSelectionByPos(t,i){let r=this.doc.getSelection();if(!r)return;let o=c=>{var m;let{page:l,pos:d}=c,h=(m=this.vim.child)==null?void 0:m.getPage(l).textLayer;if(!h)return;let u=Ft(h);if(!u)return;let p=u.textDivs;if(!p||!p.length)return;let f=p[d.index];return Kn(f,d.offset)},s=o(t),a=o(i);if(s&&a){r.setBaseAndExtent(s.node,s.offset,a.node,a.offset);let c=un(r);c||jc(r),r.modify("extend","forward","character"),c||jc(r)}}rememberSelection(){var i,r;let t=this.doc.getSelection();if(t&&!t.isCollapsed&&t.anchorNode&&t.focusNode){let o=(i=this.lib.getPageElAssociatedWithNode(t.anchorNode))==null?void 0:i.dataset.pageNumber,s=(r=this.lib.getPageElAssociatedWithNode(t.focusNode))==null?void 0:r.dataset.pageNumber;if(o&&s){let a=this.getSelectionPos(t,"anchor"),c=this.getSelectionPos(t,"head");a&&c&&(this.previousSelection={anchor:{page:+o,pos:a},head:{page:+s,pos:c}})}}}restorePreviousSelection(){if(this.vim.doc.getSelection()&&this.vim.visualMode.previousSelection){let{anchor:i,head:r}=this.vim.visualMode.previousSelection;this.setSelectionByPos(i,r)}}forgetPreviousSelection(){this.previousSelection=null}};var Ku=class extends gn{constructor(e){super(e),this.defineKeymaps()}onload(){this.viewer.then(e=>{this.lib.registerPDFEvent("sidebarviewchanged",e.pdfViewer.eventBus,this,({view:t})=>{t===2?this.vim.enterOutlineMode():this.vim.enterNormalMode()}),this.lib.registerPDFEvent("outlineloaded",e.pdfViewer.eventBus,this,({source:t})=>{e.pdfViewer.pdfSidebar.active===2?this.vim.enterOutlineMode():this.vim.enterNormalMode()})})}defineKeymaps(){this.registerOutlineKeymaps({j:(e,t)=>this.navigateOutline(e,!0,t),k:(e,t)=>this.navigateOutline(e,!1,t),h:e=>{let t=e.highlighted;t&&t.parent&&(this.changeActiveItemTo(t.parent),this.collapse(t.parent))},l:e=>{let t=e.highlighted;if(t){this.expand(t);let i=t.children[0];i&&this.changeActiveItemTo(i)}},H:e=>{let t=e.highlighted;if(e.allItems.forEach(i=>{this.collapse(i)}),t){let i=t;for(;i.parent;)i=i.parent;this.changeActiveItemTo(i)}},L:e=>{e.allItems.forEach(t=>{this.expand(t)})},"<CR>":e=>{let t=e.highlighted;t&&t.selfEl.click()}}),this.vimScope.noremap(["outline"],{"<Space>":"<CR>","<Down>":"j","<Up>":"k","<Left>":"h","<Right>":"l","<S-Left>":"H","<S-Right>":"L"})}registerOutlineKeymaps(e){let t={};for(let i in e)t[i]=this.toVimCommand(e[i]);this.vimScope.registerKeymaps(["outline"],t)}toVimCommand(e){return t=>{var r;let i=(r=this.obsidianViewer)==null?void 0:r.pdfOutlineViewer;i&&e(i,t)}}changeActiveItemTo(e){var i;let t=e.owner;(i=t.highlighted)==null||i.setActive(!1),e.setActive(!0),t.highlighted=e,e.selfEl.scrollIntoView({block:"center",behavior:this.settings.vimSmoothOutlineMode?"smooth":"instant"})}collapse(e){e.setCollapsed(!0,this.settings.vimSmoothOutlineMode)}expand(e){e.setCollapsed(!1,this.settings.vimSmoothOutlineMode)}navigateOutline(e,t,i){let r=e.highlighted;if(r){let o=(()=>{i!=null||(i=1);let s=1/0,a=e.children.slice().reverse(),c=[];for(;a.length;){let l=a.pop();if(c.push(l),l===r&&(s=c.length-1+(t?i:-i)),c.length>s)return c[s];!l.children.length||l.collapsed||a.push(...l.children.slice().reverse())}})();o&&this.changeActiveItemTo(o)}}};var is=require("obsidian");var t1=require("obsidian");var $w=require("obsidian");function*Qw(n,e){let t=bC(e),i=Math.max(0,Math.ceil((n-e.length)/(e.length-1)));yield*vC(t,i,n+i)}function*bC(n){for(let e=1;;e++)yield*wC(yC(n,e),t=>t.join(""))}function*yC(n,e){let t=n.length,i=new Array(e).fill(0),r=1;for(let o of $g(Math.pow(t,e))){yield i.map(s=>n[s]);for(let s of $g(i.length))_w(r,Math.pow(t,i.length-1-s))===0&&(i[s]=_w(i[s]+1,t));r++}}function*vC(n,e,t){let i=n[Symbol.iterator]();t===void 0&&(t=e,e=0);for(let r of $g(e))if(i.next().done)return;for(let r=e;r<t;r++){let o=i.next();if(o.done)return;yield o.value}}function*$g(n){if(!(n<0))for(let e=0;e<n;e++)yield e}function*wC(n,e){for(let t of n)yield e(t)}function _w(n,e){return n-e*Math.floor(n/e)}var Gu={0:".annotationLayer > section.linkAnnotation:has(> a)",1:".annotationLayer > section:not(.linkAnnotation)",2:".pdf-plus-backlink-highlight-layer > .pdf-plus-backlink"},Xu=class n extends gn{constructor(){super(...arguments);this.onExitCallbacks=[];this.targets=[]}setTarget(...t){this.targets=t}getTargetSelector(){return this.targets.map(t=>Gu[t]).join(",")}enter(){if(this.targets.length===0&&this.setTarget(0),this.pdfViewer){let t=this.pdfViewer.currentPageNumber;if(this.hintPage(t),this.targets.includes(2)){let i=this.vim.eventBus;if(i){let r=()=>this.hintPage(t);i.on("textlayerrendered",r),this.onExit(()=>i.off("textlayerrendered",r))}}}}exit(){this.vimScope.unregisterAllKeymaps(["hint"]),this.onExitCallbacks.forEach(t=>t())}onExit(t){this.onExitCallbacks.push(t)}hintPage(t){if(!this.pdfViewer)return;let i=this.pdfViewer.getPageView(t-1),r=i.div;if(!r)return;let o={},s="pdf-plus-vim-hint-mode",a="pdfPlusVimHint";r.addClass(s),this.onExit(()=>r.removeClass(s));let c=this.getTargetSelector(),l=r.querySelectorAll(c),d=l.length;if(d===0){new $w.Notice(`${this.plugin.manifest.name} (Vim mode): No hintable element found on this page`),this.exit(),this.vim.enterNormalMode();return}let h=Qw(d,this.settings.vimHintChars),u=null,p=null;l.forEach(f=>{var x;if(n.isLink(f)){let g=f.querySelector(":scope > a");if(u&&u.href===g.href&&FC(u,g))return;u=g}else u=null;if(n.isBacklinkHighlight(f)){let g=(x=f.dataset.backlinkId)!=null?x:null;if(p&&g&&p===g)return;p=g}else p=null;let m=""+h.next().value;f.dataset[a]=m,this.onExit(()=>delete f.dataset[a]),o[m]=()=>{this.openHintableEl(f,i),this.exit(),this.vim.enterNormalMode()}}),this.vimScope.unregisterAllKeymaps(["hint"]),this.vimScope.registerKeymaps(["hint"],o)}openHintableEl(t,i){var r,o;if(n.isLink(t))t.querySelector(":scope > a").click();else if(n.isNonLinkAnnot(t)){gu(t);let s=t.dataset.annotationId,a=s&&((r=i==null?void 0:i.annotationLayer)==null?void 0:r.annotationLayer.getAnnotation(s));a&&((o=this.vim.child)==null||o.renderAnnotationPopup(a))}else n.isBacklinkHighlight(t)&&gu(t)}static isLink(t){return t.matches(Gu[0])}static isNonLinkAnnot(t){return t.matches(Gu[1])}static isBacklinkHighlight(t){return t.matches(Gu[2])}},FC=(n,e)=>{let t=n.getBoundingClientRect(),i=e.getBoundingClientRect(),r=Math.min(i.height,i.width)*.5,o=r*5;return Math.abs((i.top+i.bottom)/2-(t.top+t.bottom)/2)<r&&(Math.abs(i.left-t.right)<o||Math.abs(i.right-t.left)<o)||Math.abs((i.left+i.right)/2-(t.left+t.right)/2)<r&&(Math.abs(i.top-t.bottom)<o||Math.abs(i.bottom-t.top)<o)};var e1=require("obsidian");var Zu=class n extends Ke{constructor(){super(...arguments);this.markdown=""}static renderAsModal(t,i){let r=new n(t);return r.markdown=i,r.open(),r}onOpen(){e1.MarkdownRenderer.render(this.app,this.markdown,this.contentEl.createDiv("markdown-rendered"),"",this.component)}};var i1=n=>[{id:"nextpage",func:()=>{var e;return(e=n.pdfViewer)==null?void 0:e.nextPage()}},{id:"prevpage",func:()=>{var e;return(e=n.pdfViewer)==null?void 0:e.previousPage()}},{id:"0",description:":0 - Go to the first page (same as :1)",func:()=>n.pdfViewer&&(n.pdfViewer.currentPageNumber=1)},{id:"$",description:":$ - Go to the last page.",func:()=>n.pdfViewer&&(n.pdfViewer.currentPageNumber=n.pdfViewer.pagesCount)},{id:"gotopage",pattern:/^go(to(page)?)?$/,description:":go[to[page]] <page> - Go to the specified page. If the PDF has page labels, the argument is treated as a page label. Otherwise, it is treated as a page number.",minNargs:1,func:async e=>{if(n.pdfViewer){let t=await n.pdfViewer.pdfDocument.getPageLabels();if(t){let i=t.indexOf(e);if(i!==-1){let r=i+1;n.pdfViewer.currentPageNumber=r;return}}n.pdfViewer.currentPageNumber=+e}}},{id:"pagetop",func:()=>n.scroll.scrollToTop()},{id:"pagebottom",func:()=>n.scroll.scrollToBottom()},{id:"searchforward",pattern:/^search(f(orward)?)?$/,func:()=>setTimeout(()=>n.search.start(!0))},{id:"searchbackward",pattern:/^searchb(ackward)?$/,func:()=>setTimeout(()=>n.search.start(!1))},{id:"findnext",func:()=>n.search.findNext()},{id:"findprev",func:()=>n.search.findPrevious()},{id:"zoom",description:":zoom <number> - Set the zoom level to <number> percent.",minNargs:1,func:e=>n.pdfViewer&&(n.pdfViewer.currentScale=.01*+e)},{id:"zoomin",func:()=>{var e;return(e=n.obsidianViewer)==null?void 0:e.zoomIn()}},{id:"zoomout",func:()=>{var e;return(e=n.obsidianViewer)==null?void 0:e.zoomOut()}},{id:"zoomreset",func:()=>{var e;return(e=n.obsidianViewer)==null?void 0:e.zoomReset()}},{id:"rotate",func:()=>{var e;return(e=n.obsidianViewer)==null?void 0:e.rotatePages(90)}},{id:"yank",pattern:/^y(ank)?$/,func:()=>{let e=n.doc.getSelection();if(e){let t=e.toString();t&&navigator.clipboard.writeText(t),n.enterNormalMode()}}},{id:"outline",pattern:/^(outline)|(toc)$/,description:":outline or :toc - Show the outline view.",func:()=>n.lib.commands.showOutline(!1)},{id:"thumbnail",pattern:/^thumb(nail)?$/,description:":thumb[nail] - Show the thumbnails view.",func:()=>n.lib.commands.showThumbnail(!1)},{id:"closesidebar",func:()=>n.lib.commands.closeSidebar(!1)},{id:"help",pattern:/^h(elp)?$/,func:e=>{if(e&&e.startsWith(":")){let t=e.slice(1).split(" ")[0],i=n.commandLineMode.findCommand(t);if(i&&i.description){Zu.renderAsModal(n.plugin,DC(i.description));return}}n.plugin.openSettingTab().scrollToHeading("vim")}},{id:"map",minNargs:2,func:(e,...t)=>n.map(["normal","visual","outline"],e,t.join(" ")),description:Zr("map",["normal","visual","outline"])},{id:"noremap",pattern:/^no(remap)$/,minNargs:2,func:(e,...t)=>n.noremap(["normal","visual","outline"],e,t.join(" ")),description:Zr("no[remap]",["normal","visual","outline"],!0)},{id:"nmap",pattern:/^nm(ap)?$/,minNargs:2,func:(e,...t)=>n.map(["normal"],e,t.join(" ")),description:Zr("nm[ap]",["normal"])},{id:"nnoremap",pattern:/^nn(oremap)?$/,minNargs:2,func:(e,...t)=>n.noremap(["normal","visual","outline"],e,t.join(" ")),description:Zr("nn[oremap]",["normal"],!0)},{id:"vmap",pattern:/^vm(ap)?$/,minNargs:2,func:(e,...t)=>n.map(["visual"],e,t.join(" ")),description:Zr("vm[ap]",["visual"])},{id:"vnoremap",pattern:/^vn(oremap)?$/,minNargs:2,func:(e,...t)=>n.noremap(["visual"],e,t.join(" ")),description:Zr("vn[oremap]",["visual"],!0)},{id:"omap",pattern:/^om(ap)?$/,minNargs:2,func:(e,...t)=>n.map(["outline"],e,t.join(" ")),description:Zr("om[ap]",["outline"])},{id:"onoremap",pattern:/^ono(remap)?$/,minNargs:2,func:(e,...t)=>n.noremap(["outline"],e,t.join(" ")),description:Zr("ono[remap]",["outline"],!0)},{id:"unmap",pattern:/^unm(ap)?$/,minNargs:1,func:e=>n.vimScope.unmap(["normal","visual","outline"],[e]),description:":unm[ap] <key> - Unmap <key> in all modes."},{id:"nunmap",pattern:/^nun(map)?$/,minNargs:1,func:e=>n.vimScope.unmap(["normal"],[e]),description:":nun[map] <key> - Unmap <key> in normal mode."},{id:"vunmap",pattern:/^vu(nmap)?$/,minNargs:1,func:e=>n.vimScope.unmap(["visual"],[e]),description:":vu[nmap] <key> - Unmap <key> in visual mode."},{id:"ounmap",pattern:/^ou(nmap)?$/,minNargs:1,func:e=>n.vimScope.unmap(["outline"],[e]),description:":ou[nmap] <key> - Unmap <key> in outline mode."},{id:"js",pattern:/^js(command)?$/,minNargs:1,func:(...e)=>n.evalUserScript(e.join(" ")),description:`:js[command] <code>: Execute the given javascript <code> in a context where "this" points to a "${ts.name}" object.`},{id:"jsfile",minNargs:1,func:async(...e)=>{var r,o;let t=(0,t1.normalizePath)(e.join(" ")),i=await n.app.vault.adapter.read((o=(r=n.app.metadataCache.getFirstLinkpathDest(t,""))==null?void 0:r.path)!=null?o:t);return await n.evalUserScript(i)},description:`:jsfile <path> - Execute the javascript code in the file at <path> (relative to the vault root; can be just the filename if it's unique). It can be any plain text file with arbitrary file extension. The code will be evaluated in a context where "this" points to a "${ts.name}" object.`},{id:"obcommand",description:":obcommand <command-id> - Execute the Obsidian command with the specified ID. Inspired by esm's awesome Vimrc Support plugin.",minNargs:1,func:e=>n.app.commands.executeCommandById(e)},{id:"hint",description:`
|
||
:hint [<target1> <target2> ...] - Enter hint mode and show hint marks for the specified targets in the current page. Inspired by [Tridactyl](https://github.com/tridactyl/tridactyl)'s hint mode.
|
||
|
||
If no target is specified, the default targets (configured in PDF++ settings) will be used.
|
||
The accepted targets are:
|
||
|
||
- \`all\`: all of the followings
|
||
- \`link\`: internal & external links
|
||
- \`annot\`: (non-link) annotations written in the file
|
||
- \`backlink\`: backlink highlighting, i.e., highlights that is not written in the file itself
|
||
`,func:(...e)=>{e.length===0&&(e=n.settings.vimHintArgs.trim().split(/\s+/)),e.includes("all")&&(e=["link","annot","backlink"]),n.hintMode.setTarget(...e.map(t=>{switch(t){case"link":return 0;case"annot":return 1;case"backlink":return 2;default:throw Error(`Unknown hint target: ${t}`)}})),setTimeout(()=>n.enterHintMode())}}],DC=(n,e=12,t=!0)=>(n=n.replace(new RegExp(`^ {${e}}`,"gm"),"").replace(/^\s*/,""),t?n.replace(/([<>])/g,"\\$1"):n),Zr=(n,e,t=!1)=>`:${n} <from> <to> - Map <from> to <to> ${t?"non-recusively ":""}in ${e.length>1?e.slice(0,-1).join(", ")+" and "+e.at(-1)+" modes":e[0]+" mode"}. If <to> is an ex-command, it must be start with ":".`;var Yu=class extends gn{constructor(t){super(t);this.history=[];this.historyIndex=0;this.isActive=!1;this.dom=this.vim.viewer.containerEl.createDiv("pdf-plus-vim-command",i=>{this.register(()=>i.remove()),i.appendText(":"),this.inputEl=i.createEl("input",{cls:"pdf-plus-vim-command-input"},r=>{r.placeholder="type a command or page number...",r.addEventListener("focusout",()=>{setTimeout(()=>{this.isActive&&this.vim.enterNormalMode()})}),r.addEventListener("keydown",o=>{if(!o.isComposing&&o.key==="Enter"){this.submitCommand();return}if(o.key==="Escape"||o.key==="Backspace"&&!r.value){this.vim.enterNormalMode(),o.preventDefault();return}if(o.key==="ArrowUp"||o.key==="ArrowDown"){o.preventDefault(),this.navigateHistory(o.key==="ArrowDown");return}})}),i.hide()}),this.vimScope.registerKeymaps(["command"],{"<C-u>":()=>this.inputEl.value="","<C-w>":()=>this.inputEl.value=this.inputEl.value.replace(/\S+\s*$/,"")}),this.excmds=i1(this.vim),this.suggest=new em(this).onSelect(({item:{minNargs:i}})=>setTimeout(()=>{if(!i){this.submitCommand();return}this.inputEl.value+=" "})),this.settings.vimrcPath&&this.viewer.then(i=>{let r=i.pdfViewer.eventBus;r&&r.on("pagesloaded",()=>setTimeout(()=>{if(this.plugin.vimrc===null){let o=(0,is.normalizePath)(this.settings.vimrcPath);this.app.vault.adapter.read(o).then(s=>this.runScript(this.plugin.vimrc=s))}else this.runScript(this.plugin.vimrc)},{once:!0}))})}async executeCommand(t,i={error:["notice","console.error"],history:!0}){if(i={error:[],history:!0,...i},i.history&&(this.history.push(t),this.history.length>100&&this.history.shift(),this.historyIndex=this.history.length),t.startsWith("!")){if(!is.Platform.isDesktopApp){this.reportError(`${this.plugin.manifest.name} (Vim mode): Shell command is not supported on mobile`,i.error);return}let{exec:a}=require("child_process"),c=process.env;return this.settings.PATH&&(c.PATH=this.settings.PATH),new Promise((l,d)=>a(t.slice(1),{env:c},(h,u,p)=>{h&&d(h),u&&(alert(u),l(u)),p&&console.warn(p)}))}if(/^[1-9]\d*$/.test(t)){let a=+t;this.pdfViewer&&(this.pdfViewer.currentPageNumber=a);return}let[r,...o]=t.split(/\s+/),s=this.findCommand(r);if(s){if(s.minNargs&&o.length<s.minNargs){this.reportError(`${this.plugin.manifest.name} (Vim mode): Expected ${s.minNargs} or more arguments for command "${s.id}" but got ${o.length}`,i.error);return}return s.func(...o)}this.reportError(`${this.plugin.manifest.name} (Vim mode): Unknown command "${t}"`,i.error)}findCommand(t){return this.excmds.find(i=>i.pattern&&i.pattern.test(t)||i.id===t)}submitCommand(){let t=this.inputEl.value.trim();if(t){this.history[this.historyIndex]===t&&this.history.splice(this.historyIndex,1);try{this.executeCommand(t)}catch(r){new is.Notice(`${this.plugin.manifest.name} (Vim mode): Error occurred while executing the command : ${r}`),console.error(r)}}this.vim.enterNormalMode()}runScript(t){this.parseScript(t).forEach(r=>this.executeCommand(r,{error:["console.warn"],history:!1}))}parseScript(t){return t.split(/\r?\n/).filter(i=>i.trim()&&!i.trimStart().startsWith('"')).join(`
|
||
`).replace(/\\\n/g,"").split(`
|
||
`)}enter(){this.inputEl.value="",this.dom.show(),this.inputEl.focus(),this.isActive=!0}exit(){this.isActive=!1,this.inputEl.value="",this.dom.hide()}navigateHistory(t){let i=this.inputEl;if(this.historyIndex<this.history.length||!i.value){let r=this.historyIndex+(t?1:-1);if(r<0)return;r<=this.history.length&&(this.historyIndex=r);let o=this.history[r]||"";i.value=o,i.setSelectionRange(o.length,o.length)}}reportError(t,i){for(let r of i)r==="notice"?new is.Notice(t):r==="console.error"?console.error(t):r==="console.warn"&&console.warn(t)}},em=class extends Mr{constructor(e){super(e.app,e.inputEl,{blurOnSelect:!1}),this.commandLineMode=e;let t=this.scope.keys.find(o=>o.key==="Escape"&&o.modifiers==="");t&&this.scope.unregister(t);let i=this.scope.keys.find(o=>o.key==="ArrowDown"&&o.modifiers===""),r=this.scope.keys.find(o=>o.key==="ArrowUp"&&o.modifiers==="");i&&(this.scope.unregister(i),this.scope.register([],"Tab",i.func)),r&&(this.scope.unregister(r),this.scope.register(["Shift"],"Tab",r.func))}getItems(){return this.commandLineMode.excmds}getItemText(e){return e.id}};var Ju=class extends De{constructor(t,i,r){super(t);this.pages=new Map;this.pdfViewer=i,this.file=r}onload(){this.registerEvent(this.app.vault.on("modify",t=>{t===this.file&&this.pages.clear()}))}getPageParser(t){let i=this.pages.get(t);if(!i){let r=this.pdfViewer.getPageView(t-1);if(r){let o=r.textLayer,s=o&&Ft(o);if(s){let{textContentItems:a,textDivs:c}=s;i=new tm(r,a,c),this.pages.set(t,i)}}}return i}},tm=class{constructor(e,t,i){this.lineStartIndices=null;this.pageView=e,this.items=t,this.divs=i}getBoundIndicesOfLine(e,t){var a;let i=this._getIndexWithinLineStartIndicesForLineContainingItem(e),r=(a=this.lineStartIndices[i+t])!=null?a:null;if(r===null)return null;let o=this.lineStartIndices[i+1+t],s=o===void 0?this.items.length-1:o-1;for(;s>r&&!this.items[s].str.length;)s--;return{start:r,end:s}}getLineShiftPosition(e,t){let i=this.getBoundIndicesOfLine(e.index,t);if(!i)return null;let r=this._getHorizontalRangeOfChar(e);if(!r)return null;let{start:o,end:s}=i,a=o;for(;a<=s;a++){let d=this.items[a],h=this._getHorizontalRangeOfItem(d);if(Eg(r,h))break}for(a>s&&(a=s);a>o&&!this.items[a].str.length;)a--;let c=this.items[a],l=0;for(;;){let d=this._getHorizontalRangeOfChar({index:a,offset:l});if(!d)return null;if(d.from>=r.from||d.to>=r.to)return{index:a,offset:l};if(l+1<c.str.length)l++;else return{index:a,offset:c.str.length-1}}}_getIndexWithinLineStartIndicesForLineContainingItem(e){this.lineStartIndices||this.parse();let{found:t,index:i}=hn(this.lineStartIndices,r=>e-r);return t?i:i-1}parse(){let e=this._findIndexOfFirstNonEmptyItem();if(e===-1){this.lineStartIndices=[0];return}this.lineStartIndices=[e];let t=[this.items[e]];for(let i=e+1;i<this.items.length;i++){let r=this.items[i];if(this.isItemNonEmpty(r)){let o=this._getVerticalRangeOfItem(r),s=this._getMergedRangeOfItems(t.slice(-10));t.push(r),s&&!Tg(o,s)&&this.lineStartIndices.push(i)}}}_findIndexOfFirstNonEmptyItem(){return this.items.findIndex(e=>this.isItemNonEmpty(e))}isItemNonEmpty(e){let t=this._getVerticalRangeOfItem(e);return t.from<t.to}_getVerticalRangeOfItem(e){return{from:e.transform[5],to:e.transform[5]+e.height}}_getMergedRangeOfItems(e,t="vertical"){if(e.length===0)return null;let i=e.map(t==="vertical"?this._getVerticalRangeOfItem.bind(this):this._getHorizontalRangeOfItem.bind(this)),r=Math.min(...i.map(s=>s.from)),o=Math.max(...i.map(s=>s.to));return{from:r,to:o}}_getHorizontalRangeOfItem(e){return{from:e.transform[4],to:e.transform[4]+e.width}}_getHorizontalRangeOfChar(e){let t=e.index,i=e.offset,r=this.items[t];if(r.chars&&r.chars.length>=r.str.length){let p=r.chars[i];return{from:p.r[0],to:p.r[2]}}let o=this.divs[t],s=Kn(o,i);if(!s)return null;let{node:a,offset:c}=s,l=o.doc.createRange();l.setStart(a,c),l.setEnd(a,c+1);let d=l.getBoundingClientRect(),[[h],[u]]=[...bu(this.pageView,[{x:d.left,y:d.bottom},{x:d.right,y:d.top}])];return{from:h,to:u}}};var _u=class n extends De{constructor(t,i){super(t);this._structureParser=null;this.viewer=i,this.vimScope=new Uu(this.viewer.scope),this.vimScope.registerKeymaps(["normal","visual","outline"],{":":()=>this.enterCommandMode(),"<Tab>":()=>{if(this.obsidianViewer){let r=this.obsidianViewer.pdfSidebar;r.isOpen&&r.active===2?r.close():r.switchView(2,!0)}},"<S-Tab>":()=>{if(this.obsidianViewer){let r=this.obsidianViewer.pdfSidebar;r.isOpen&&r.active===1?r.close():r.switchView(1,!0)}},f:()=>this.commandLineMode.executeCommand("hint")}),this.vimScope.registerKeymaps(["normal","visual","outline"],{j:r=>this.scroll.scrollTo("down",r),k:r=>this.scroll.scrollTo("up",r),h:r=>this.scroll.scrollTo("left",r),l:r=>this.scroll.scrollTo("right",r),J:ya(()=>{var r;return(r=this.pdfViewer)==null?void 0:r.nextPage()}),K:ya(()=>{var r;return(r=this.pdfViewer)==null?void 0:r.previousPage()}),gg:()=>this.pdfViewer&&(this.pdfViewer.currentPageNumber=1),G:r=>this.pdfViewer&&(this.pdfViewer.currentPageNumber=r!=null?r:this.pdfViewer.pagesCount),0:()=>this.scroll.scrollToTop(),"^":()=>this.scroll.scrollToTop(),$:()=>this.scroll.scrollToBottom(),"<C-f>":r=>this.scroll.scrollVerticallyByVisualPage(r!=null?r:1),"<C-b>":r=>this.scroll.scrollVerticallyByVisualPage(-(r!=null?r:1)),"<C-d>":r=>this.scroll.scrollVerticallyByVisualPage(.5*(r!=null?r:1)),"<C-u>":r=>this.scroll.scrollVerticallyByVisualPage(-.5*(r!=null?r:1)),"/":()=>this.search.start(!0),"?":()=>this.search.start(!1),n:r=>this.search.findNext(r),N:r=>this.search.findPrevious(r),gn:r=>this.search.findAndSelectNextMatch((r!=null?r:1)-1),gN:r=>this.search.findAndSelectNextMatch((r!=null?r:1)-1,!1),"+":ya(()=>{var r;return(r=this.obsidianViewer)==null?void 0:r.zoomIn()}),"-":ya(()=>{var r;return(r=this.obsidianViewer)==null?void 0:r.zoomOut()}),"=":r=>{var o;if(typeof r=="number"&&this.pdfViewer){this.pdfViewer.currentScaleValue=""+.01*r;return}(o=this.obsidianViewer)==null||o.zoomReset()},r:r=>{var o;return(o=this.obsidianViewer)==null?void 0:o.rotatePages(90*(r!=null?r:1))},R:r=>{var o;return(o=this.obsidianViewer)==null?void 0:o.rotatePages(-90*(r!=null?r:1))}}),this.vimScope.noremap(["normal","visual","outline"],{H:"^",L:"$",zi:"+",zo:"-",z0:"="}),this.vimScope.setMode("normal"),this.vimScope.setTypable("command"),this.vimScope.onEscape(r=>{var o,s,a;this.enterNormalMode(),(o=this.obsidianViewer)==null||o.pdfSidebar.close(),(a=(s=this.child)==null?void 0:s.hoverPopover)==null||a.hide(),r||this.viewer.then(c=>{c.clearEphemeralUI(),c.findBar.close()})}),this.vimScope.addEscapeAliases("<C-[>","<C-c>"),this.scroll=new qu(this),this.search=new Wu(this),this.visualMode=this.addChild(new ju(this)),this.commandLineMode=this.addChild(new Yu(this)),this.outlineMode=this.addChild(new Ku(this)),this.hintMode=this.addChild(new Xu(this))}get child(){return this.viewer.child}get obsidianViewer(){var t;return(t=this.viewer.child)==null?void 0:t.pdfViewer}get pdfViewer(){var t,i;return(i=(t=this.viewer.child)==null?void 0:t.pdfViewer)==null?void 0:i.pdfViewer}get eventBus(){var t;return(t=this.obsidianViewer)==null?void 0:t.eventBus}get file(){var t;return(t=this.viewer.child)==null?void 0:t.file}get structureParser(){var t;return!this._structureParser&&this.pdfViewer&&((t=this.viewer.child)!=null&&t.file)&&(this._structureParser=this.addChild(new Ju(this.plugin,this.pdfViewer,this.viewer.child.file))),this._structureParser}get doc(){return this.viewer.containerEl.doc}onload(){this.lib.workspace.iteratePDFViews(t=>{t.viewer===this.viewer&&(t.scope=this.vimScope)})}onunload(){this.lib.workspace.iteratePDFViews(t=>{t.viewer===this.viewer&&(t.scope=this.viewer.scope)})}static register(t,i){t.settings.vim&&(i.vim=t.addChild(i.addChild(new n(t,i))))}enterNormalMode(){var t;this.vimScope.setMode("normal"),(t=this.doc.getSelection())==null||t.empty(),this.commandLineMode.exit(),this.hintMode.exit(),this.visualMode.forgetPreviousSelection()}enterCommandMode(){this.vimScope.setMode("command"),this.commandLineMode.enter()}enterOutlineMode(){if(this.settings.enableVimOutlineMode&&this.obsidianViewer){this.vimScope.setMode("outline");let t=this.obsidianViewer.pdfOutlineViewer;if(!t.highlighted){let i=t.children[0];i.setActive(!0),t.highlighted=i}}}enterHintMode(){this.vimScope.setMode("hint"),this.hintMode.enter()}mapOrNoremap(t,i,r,o){r.startsWith(":")?this.vimScope.registerKeymaps(t,{[i]:()=>this.commandLineMode.executeCommand(r.slice(1))}):r==="<Nop>"?this.vimScope.registerKeymaps(t,{[i]:()=>{}}):this.vimScope[o?"noremap":"map"](t,{[i]:r})}map(t,i,r){this.mapOrNoremap(t,i,r,!1)}noremap(t,i,r){this.mapOrNoremap(t,i,r,!0)}async evalUserScript(t){return new Promise(i=>{this.viewer.then(async r=>{let o=this.addChild(new ts(this.plugin,r));i(await o.run(t))})})}};var Ea=async(n,e)=>n.patchStatus.pdfInternals?!0:new Promise(t=>{e.then(i=>n.patchStatus.pdfInternals?t(!0):(kC(n,e),!i.toolbar||(CC(n,i),!i.pdfViewer)?t(!1):(SC(n,i.pdfViewer),EC(n),n.patchStatus.pdfInternals=!0,n.classes.PDFViewerComponent=e.constructor,n.classes.PDFViewerChild=i.constructor,PC(n),t(!0))))});function PC(n){let{lib:e}=n;e.workspace.iteratePDFViews(t=>n1(t.viewer,t.file,n.subpathWhenPatched)),e.workspace.iteratePDFEmbeds(t=>n1(t.viewer,t.file,t.subpath))}var n1=(n,e,t)=>{n.unload();let i=n.scope.keys.find(r=>r.modifiers===""&&r.key==="Escape");i&&n.scope.unregister(i),n.load(),e&&n.loadFile(e,t)},kC=(n,e)=>{n.register(it(e.constructor.prototype,{loadFile(t){return async function(i,r){let o=await t.call(this,i,r);return this.then(s=>{var a;(!this.visualizer||this.visualizer.file!==i)&&((a=this.visualizer)==null||a.unload(),this.visualizer=this.addChild(Hu.create(n,i,s)))}),o}},onload(t){return async function(){let i=await t.call(this);return n.settings.usePageUpAndPageDown&&(this.scope.register([],"PageUp",()=>{var r,o,s;return(s=(o=(r=this.child)==null?void 0:r.pdfViewer)==null?void 0:o.pdfViewer)==null||s.previousPage(),!1}),this.scope.register([],"PageDown",()=>{var r,o,s;return(s=(o=(r=this.child)==null?void 0:r.pdfViewer)==null?void 0:o.pdfViewer)==null||s.nextPage(),!1})),_u.register(n,this),i}}}))},CC=(n,e)=>{let{app:t,lib:i}=n;n.register(it(e.constructor.prototype,{load(o){return async function(...s){var p,f,m;this.hoverPopover=null,this.isFileExternal=!1,this.externalFileUrl=null,this.palette=null,this.rectHighlight=null,this.bib=null,this.component||(this.component=n.addChild(new be.Component)),this.component.load();let a=await o.call(this,...s),c=(f=(p=this.pdfViewer)==null?void 0:p.dom)==null?void 0:f.viewerContainerEl;if(c){let x=!1,g=F=>{x||(x=yg(n.settings.showContextMenuOnMouseUpIf)&&be.Keymap.isModifier(F,n.settings.showContextMenuOnMouseUpIf))};this.component.registerDomEvent(c,"pointerdown",F=>{var D;i.highlight.viewer.clearRectHighlight(this),g(F),(D=this.component)==null||D.registerDomEvent(c,"pointerup",y)});let b=c.doc,v=F=>{var B;let D=b.getSelection();if(!D||D.rangeCount===0)return;let C=D.getRangeAt(0),{endContainer:k,endOffset:E}=C;if(D.anchorNode&&D.focusNode===k&&k.instanceOf(HTMLElement)&&k.hasClass("textLayer"))for(let S=E-1;S>=0;S--){let A=k.childNodes[S];if(A.instanceOf(HTMLElement)&&A.hasClass("textLayerNode")&&A.lastChild&&A.lastChild.nodeType===Node.TEXT_NODE){let L=D.anchorNode,I=D.anchorOffset,N=A.lastChild,q=N.textContent.length;(B=b.getSelection())==null||B.setBaseAndExtent(L,I,N,q);break}}},y=F=>{var D;if(g(F),n.obsidianHasTextSelectionBug&&n.settings.fixObsidianTextSelectionBug&&v(F),n.settings.autoCopy){i.commands.copyLink(!1,!1);return}n.settings.replaceContextMenu&&(n.settings.showContextMenuOnMouseUpIf==="always"||x)&&(D=F.win.getSelection())!=null&&D.toString()&&F.win.setTimeout(()=>Gg(n,this,F),80),c.removeEventListener("pointerup",y),x=!1}}let l=()=>{var x,g;try{if(this.toolbar)n.domManager.addChild(new Sa(n,this.toolbar,this));else{let v=window.setInterval(()=>{this.toolbar&&(n.domManager.addChild(new Sa(n,this.toolbar,this)),window.clearInterval(v))},100);window.setTimeout(()=>{window.clearInterval(v)},1e3)}let b=(g=(x=this.pdfViewer)==null?void 0:x.dom)==null?void 0:g.viewerContainerEl;n.settings.autoHidePDFSidebar&&b&&(this.component||(this.component=n.addChild(new be.Component)),this.component.registerDomEvent(b,"click",()=>{this.pdfViewer.pdfSidebar.switchView(0)}))}catch(b){new be.Notice(`${n.manifest.name}: An error occurred while mounting the color palette to the toolbar.`),console.error(b)}};if(l(),n.on("update-dom",l),!be.Platform.isMobile&&this.pdfViewer){let x=this.pdfViewer.eventBus;x&&x.on("textlayerrendered",({source:g})=>{var v;let b=(v=g==null?void 0:g.textLayer)==null?void 0:v.div;b&&b.addEventListener("copy",r)})}let d="1.7.0",h=(m=this.findBar)==null?void 0:m.findNextButtonEl,u=h.firstElementChild;return!(0,be.requireApiVersion)(d)&&u&&u.matches("svg.lucide-arrow-up")&&(0,be.setIcon)(h,"lucide-arrow-down"),a}},unload(o){return function(){var s;return(s=this.component)==null||s.unload(),o.call(this)}},onResize(o){return function(){let s=this.containerEl.querySelector(".pdf-container");return s&&n.pdfViewerChildren.set(s,this),o.call(this)}},loadFile(o){return async function(s,a){var d;if(this.unloaded||!this.pdfViewer)return;this.component||(this.component=n.addChild(new be.Component));let c=!1;if(s.stat.size<300){let h=await i.getExternalPDFUrl(s);if(h){let u=t.vault.getResourcePath(s).replace(/\?\d+$/,"");this.pdfViewer.pdfPlusRedirect={from:u,to:h},await o.call(this,s,a),this.component.register(()=>URL.revokeObjectURL(h)),c=!0,this.isFileExternal=!0,this.externalFileUrl=h,this.palette&&this.palette.paletteEl&&(this.palette.removeWriteFileToggle(),this.palette.addImportButton(this.palette.paletteEl))}}c||(this.isFileExternal=!1,this.externalFileUrl=null,await o.call(this,s,a));let l=this.containerEl.querySelector(".pdf-container");l&&n.pdfViewerChildren.set(l,this),(d=this.bib)==null||d.unload(),this.bib=this.component.addChild(new pn(n,this)),i.registerPDFEvent("annotationlayerrendered",this.pdfViewer.eventBus,this.component,h=>{var p,f;let{source:u}=h;(f=(p=u.annotationLayer)==null?void 0:p.div)==null||f.querySelectorAll("section[data-annotation-id]").forEach(m=>{var b,v;let x=m.dataset.annotationId;if(!x)return;let g=(b=u.annotationLayer)==null?void 0:b.annotationLayer.getAnnotation(x);g&&g.container.dataset.pdfPlusIsAnnotationPostProcessed!=="true"&&(g.data.subtype==="Link"&&typeof g.container.dataset.internalLink=="string"?Zn.registerEvents(n,this,g):g.data.subtype==="Link"&&g.data.url&&Kr.registerEvents(n,this,g),(n.settings.hideReplyAnnotation&&g.data.inReplyTo&&g.data.replyType==="R"||g.data.subtype==="Stamp"&&n.settings.hideStampAnnotation)&&g.container.hide(),!be.Platform.isPhone&&n.settings.showAnnotationPopupOnHover&&((v=g.data.contentsObj)!=null&&v.str)&&qc({parentEl:g.container,createChildEl:()=>(this.destroyAnnotationPopup(),this.renderAnnotationPopup(g),this.activeAnnotationPopupEl),removeChildEl:()=>{var y;((y=this.activeAnnotationPopupEl)==null?void 0:y.dataset.annotationId)===g.data.id&&this.destroyAnnotationPopup()},component:this.component}),g.container.dataset.pdfPlusIsAnnotationPostProcessed="true")})}),i.registerPDFEvent("outlineloaded",this.pdfViewer.eventBus,null,async h=>{let u=h.source;if(!n.patchStatus.pdfOutlineViewer){let f=r1(n,u);n.patchStatus.pdfOutlineViewer=f}if(!h.outlineCount)return;let p=this.file;p&&(n.settings.outlineDrag&&await Kw(n,u,this,p),u.allItems.forEach(f=>Yn.registerEvents(n,this,f)),n.settings.outlineContextMenu&&n.registerDomEvent(u.childrenEl,"contextmenu",f=>{f.target===f.currentTarget&&Ww(n,this,p,f)}))}),i.registerPDFEvent("thumbnailrendered",this.pdfViewer.eventBus,null,()=>{let h=this.file;h&&(n.settings.thumbnailDrag&&Gw(n,this,h),Jn.registerEvents(n,this))}),n.settings.noSpreadModeInEmbed&&!Gn(this.pdfViewer)&&i.registerPDFEvent("pagerendered",this.pdfViewer.eventBus,null,()=>{this.pdfViewer.eventBus.dispatch("switchspreadmode",{mode:0})}),Qo(this.pdfViewer)&&i.registerPDFEvent("documentinit",this.pdfViewer.eventBus,null,()=>{this.pdfViewer.eventBus.dispatch("scalechanged",{source:this.toolbar,value:"page-width"})}),i.registerPDFEvent("sidebarviewchanged",this.pdfViewer.eventBus,null,h=>{let{source:u}=h;n.settings.noSidebarInEmbed&&!Gn(this.pdfViewer)&&u.close(),n.settings.defaultSidebarView===2&&u.haveOutline&&u.switchView(2)}),Gn(this.pdfViewer)&&i.registerPDFEvent("pagechanging",this.pdfViewer.eventBus,this.component,(0,be.debounce)(({pageNumber:h})=>{if(n.settings.viewSyncFollowPageNumber){let u=i.workspace.getActivePDFView();if(u&&u.viewer.child===this){let p={state:{file:this.file.path,page:h}};t.workspace.trigger("view-sync:state-change",u,p)}}},n.settings.viewSyncPageDebounceInterval*1e3)),this.pdfViewer.dom&&this.component&&(this.component.registerDomEvent(this.pdfViewer.dom.viewerEl,"dblclick",dg),this.component.registerDomEvent(this.pdfViewer.dom.viewerEl,"click",hg))}},applySubpath(o){return function(s){let a=l=>{if(!l)return null;let d=parseInt(l);return Number.isNaN(d)?null:d},c=l=>{if(!l)return null;let d=parseFloat(l);return Number.isNaN(d)?null:d};if(s){s=s.startsWith("#")?s.substring(1):s;let l=this.pdfViewer,d=new URLSearchParams(s);if(d.has("search")&&this.findBar){let f=d.get("search"),m={};n.settings.searchLinkHighlightAll!=="default"&&(m.highlightAll=n.settings.searchLinkHighlightAll==="true"),n.settings.searchLinkCaseSensitive!=="default"&&(m.caseSensitive=n.settings.searchLinkCaseSensitive==="true"),n.settings.searchLinkMatchDiacritics!=="default"&&(m.matchDiacritics=n.settings.searchLinkMatchDiacritics==="true"),n.settings.searchLinkEntireWord!=="default"&&(m.entireWord=n.settings.searchLinkEntireWord==="true");let x=g=>{let b=fg(g);if(d.has(b)){let v=d.get(b);(v==="true"||v==="false")&&(m[g]=v==="true")}};x("highlightAll"),x("caseSensitive"),x("matchDiacritics"),x("entireWord"),setTimeout(()=>i.search(this.findBar,f,m));return}let{dest:h,highlight:u}=(f=>{var b,v,y;if(!d.has("page"))return{dest:f,highlight:null};let m=(b=a(d.get("page")))!=null?b:1,x=null;if(n.settings.zoomToFitRect&&d.has("rect")){let F=d.get("rect").split(",").map(c);F.length===4&&F.every(D=>D!==null)&&(x=[m-1,{name:"FitR"},...F])}if(!x)if(d.has("offset")){let F=d.get("offset").split(","),D=c(F[0]),C=c(F[1]),k=c(F[2]);x=k===null?[m-1,{name:"FitBH"},C]:[m-1,{name:"XYZ"},D,C,k]}else if(!this.opts.isEmbed&&n.settings.dontFitWidthWhenOpenPDFLink){let F=(v=this.pdfViewer)==null?void 0:v.pdfViewer,D=F==null?void 0:F._location;n.settings.preserveCurrentLeftOffsetWhenOpenPDFLink?x=[m-1,{name:"XYZ"},(y=D==null?void 0:D.left)!=null?y:null,null,null]:x=[m-1,{name:"XYZ"},null,null,null]}else x=[m-1,{name:"FitBH"},null];let g=null;if(d.has("annotation"))g={type:"annotation",page:m,id:d.get("annotation")};else if(d.has("selection")){let F=d.get("selection").split(",").map(a),[D,C,k,E]=F;D!==null&&C!==null&&k!==null&&E!==null&&(g={type:"text",page:m,range:[[D,C],[k,E]]})}else if(d.has("rect")){let F=d.get("rect").split(",").map(c);F.length===4&&F.every(D=>D!==null)&&(g={type:"rect",page:m,rect:F})}return{dest:JSON.stringify(x),highlight:g}})(s),p=l.pdfLoadingTask;p?p.promise.then(()=>l.applySubpath(h)):l.subpath=h,this.subpathHighlight=u}}},getMarkdownLink(o){return function(s,a,c){if(!this.file)return o.call(this,s,a,c);let l=i.generateMarkdownLink(this.file,"",s,a);return c?l:l.slice(1)}},...be.apiVersion==="1.8.0"?{getTextSelectionRangeStr(){return function(o){let s=o.win.getSelection(),a=s&&s.rangeCount>0?s.getRangeAt(0):null,c=a&&i.copyLink.getTextSelectionRange(o,a);if(c){let{beginIndex:l,beginOffset:d,endIndex:h,endOffset:u}=c;return`${l},${d},${h},${u}`}return null}}}:{},getPageLinkAlias(o){return function(s){var a,c;if(this.file){let l=i.copyLink.getDisplayText(this,void 0,this.file,s,i.toSingleLine((c=(a=activeWindow.getSelection())==null?void 0:a.toString())!=null?c:""));if(l)return l}return o.call(this,s)}},highlightText(o){return function(s,a){var u,p,f;let l=this.getPage(s).textLayer,d=l&&Ft(l),h=null;if(d){let m=d.textDivs,x=a[0][0];if(h=m[x],n.settings.trimSelectionEmbed&&this.pdfViewer.isEmbed&&this.pdfViewer.dom&&!(n.settings.ignoreHeightParamInPopoverPreview&&((u=this.pdfViewer.dom.containerEl.parentElement)!=null&&u.matches(".hover-popover")))){let g=a[1][0],b=m[g];h&&b&&setTimeout(()=>{let v=this.pdfViewer.dom.viewerContainerEl.getBoundingClientRect(),y=h.getBoundingClientRect(),D=b.getBoundingClientRect().bottom-y.top+2*Math.abs(y.top-v.top);this.pdfViewer.setHeight(D)},100)}}n.settings.noTextHighlightsInEmbed&&this.pdfViewer.isEmbed&&!((f=(p=this.pdfViewer.dom)==null?void 0:p.containerEl.parentElement)!=null&&f.matches(".hover-popover"))||o.call(this,s,a),h&&window.pdfjsViewer.scrollIntoView(h,{top:-n.settings.embedMargin},!0),n.trigger("highlight",{type:"selection",source:"obsidian",pageNumber:s,child:this})}},highlightAnnotation(o){return function(s,a){var d,h,u;let c=()=>{var f;return this.annotationHighlight?this.annotationHighlight:(f=this.getPage(s).annotationLayer)==null?void 0:f.div.querySelector(`[data-annotation-id="${a}"]`)};n.settings.trimSelectionEmbed&&this.pdfViewer.isEmbed&&this.pdfViewer.dom&&!(n.settings.ignoreHeightParamInPopoverPreview&&((d=this.pdfViewer.dom.containerEl.parentElement)!=null&&d.matches(".hover-popover")))&&setTimeout(()=>{let p=c();if(p){let f=this.pdfViewer.dom.viewerContainerEl.getBoundingClientRect(),m=p.getBoundingClientRect(),x=m.bottom-m.top+2*Math.abs(m.top-f.top);this.pdfViewer.setHeight(x)}},100),n.settings.noAnnotationHighlightsInEmbed&&this.pdfViewer.isEmbed&&!((u=(h=this.pdfViewer.dom)==null?void 0:h.containerEl.parentElement)!=null&&u.matches(".hover-popover"))||o.call(this,s,a);let l=c();l&&activeWindow.setTimeout(()=>{window.pdfjsViewer.scrollIntoView(l,{top:-n.settings.embedMargin},!0)}),n.trigger("highlight",{type:"annotation",source:"obsidian",pageNumber:s,child:this})}},clearTextHighlight(o){return function(){var s,a;n.settings.persistentTextHighlightsInEmbed&&((a=(s=this.pdfViewer)==null?void 0:s.isEmbed)!=null?a:this.opts.isEmbed)||o.call(this)}},clearAnnotationHighlight(o){return function(){n.settings.persistentAnnotationHighlightsInEmbed&&this.pdfViewer.isEmbed||o.call(this)}},clearEphemeralUI(o){return function(){o.call(this),i.highlight.viewer.clearRectHighlight(this)}},renderAnnotationPopup(o){return function(s,...a){var u,p;if(s.data.subtype==="Link")return;let c=o.call(this,s,...a);n.lastAnnotationPopupChild=this;let{page:l,id:d}=i.getAnnotationInfoFromAnnotationElement(s);if(n.settings.renderMarkdownInStickyNote&&this.file){let f=(u=this.activeAnnotationPopupEl)==null?void 0:u.querySelector(".popupContent");f&&(f.textContent="",i.highlight.writeFile.getAnnotationContents(this.file,l,d).then(async m=>{var x,g;m&&(f.addClass("markdown-rendered"),this.component||(this.component=n.addChild(new be.Component)),await be.MarkdownRenderer.render(t,m,f,"",this.component),Jo(t,f,(g=(x=this.file)==null?void 0:x.path)!=null?g:""))}))}let h=f=>{f.createDiv("pdf-plus-annotation-icon-container",m=>{let x=f==null?void 0:f.querySelector(".clickable-icon:last-child");if(x&&(x.remove(),m.createDiv("clickable-icon pdf-plus-copy-annotation-link",g=>{(0,be.setIcon)(g,"lucide-copy"),(0,be.setTooltip)(g,"Copy link"),g.addEventListener("click",async()=>{let b=i.getColorPaletteAssociatedWithNode(f);if(!b)return;let v=n.settings.copyCommands[b.actionIndex].template;i.copyLink.copyLinkToAnnotation(this,!1,{copyFormat:v},l,d),(0,be.setIcon)(g,"lucide-check")})})),i.isEditable(this)&&n.settings.enableAnnotationContentEdit&&Hr.isSubtypeSupported(s.data.subtype)){let g=s.data.subtype;m.createDiv("clickable-icon pdf-plus-edit-annotation",b=>{(0,be.setIcon)(b,"lucide-pencil"),(0,be.setTooltip)(b,"Edit"),b.addEventListener("click",async()=>{this.file&&Hr.forSubtype(g,n,this.file,l,d).open()})})}i.isEditable(e)&&n.settings.enableAnnotationDeletion&&m.createDiv("clickable-icon pdf-plus-delete-annotation",g=>{(0,be.setIcon)(g,"lucide-trash"),(0,be.setTooltip)(g,"Delete"),g.addEventListener("click",async()=>{this.file&&new va(n,this.file,l,d).openIfNeccessary()})})}),f.addEventListener("contextmenu",m=>{new be.Menu().addItem(x=>{x.setTitle("Customize...").setIcon("lucide-settings").onClick(()=>{n.openSettingTab().scrollToHeading("annot")})}).showAtMouseEvent(m),m.preventDefault()})};if(be.Platform.isPhone){let f=new MutationObserver((m,x)=>{for(let g of m)for(let b of g.addedNodes)if(b.instanceOf(HTMLElement)&&b.matches("div.modal-container.pdf-annotation-modal")){let v=b.querySelector(".popupMeta");if(v){h(v),x.disconnect();return}}});activeWindow.setTimeout(()=>f.observe(activeDocument.body,{childList:!0})),activeWindow.setTimeout(()=>f.disconnect(),1e3)}else{let f=(p=this.activeAnnotationPopupEl)==null?void 0:p.querySelector(".popupMeta");f&&h(f)}if(n.settings.annotationPopupDrag&&this.activeAnnotationPopupEl&&this.file){let f=this.activeAnnotationPopupEl,m=this.file;Xw(n,f,this,m,l,d),f.addClass("pdf-plus-draggable")}return c}},destroyAnnotationPopup(o){return function(){return n.lastAnnotationPopupChild=null,o.call(this)}},onContextMenu(o){return async function(s){if(!be.Platform.isPhone&&!(be.Platform.isTablet&&!n.settings.showContextMenuOnTablet)){if(!n.settings.replaceContextMenu)return await o.call(this,s);zw(n,this,s)}}},onMobileCopy(o){return function(s,a){switch(n.settings.mobileCopyAction){case"text":r(s);return;case"pdf-plus":setTimeout(()=>i.commands.copyLink(!1));return;case"obsidian":return o.call(this,s,a)}}},onThumbnailContextMenu(o){return function(s){if(!n.settings.thumbnailContextMenu)return o.call(this,s);Uw(n,this,s)}},getTextByRect(o){return function(s,a){let c="",l=s.textLayer,d=l&&Ft(l);if(d){let{textContentItems:h,textDivs:u}=d,[p,f,m,x]=a;for(let g=0;g<h.length;g++){let b=h[g];if(b.chars&&b.chars.length)for(let v=0;v<b.chars.length;v++){let y=b.chars[v],F=(y.r[0]+y.r[2])/2,D=(y.r[1]+y.r[3])/2;p<=F&&F<=m&&f<=D&&D<=x&&(c+=y.u)}else if(u&&u[g])for(let{char:v,rect:y}of mg(s,u[g])){let F=(y[0]+y[2])/2,D=(y[1]+y[3])/2;p<=F&&F<=m&&f<=D&&D<=x&&(c+=v)}}}return c}}}));let r=o=>{var c;if(!n.settings.copyAsSingleLine)return;let s=o.clipboardData;if(!s)return;let a=(c=o.target.win.getSelection())==null?void 0:c.toString();a&&(a=i.toSingleLine(a),s.setData("text/plain",a))}},SC=(n,e)=>{let t=Object.getPrototypeOf(e);n.register(it(t,{open(i){return async function(r){if(this.pdfPlusRedirect){let{from:o,to:s}=this.pdfPlusRedirect,a=r.url;typeof a=="string"&&a.startsWith(o)&&(r.url=s)}return delete this.pdfPlusRedirect,await i.call(this,r)}},load(i){return function(r,...o){let s=this.pdfPlusCallbacksOnDocumentLoaded;if(s)for(let a of s)a(r);return delete this.pdfPlusCallbacksOnDocumentLoaded,i.call(this,r,...o)}}}))},EC=n=>{n.register(it(window.pdfjsViewer.AppOptions,{get(e){return function(...t){let i=t[0];return["defaultZoomValue","scrollModeOnLoad","spreadModeOnLoad"].includes(i)?n.settings[i]:e.apply(this,t)}}}))};var o1=n=>{if(n.patchStatus.pdfView&&n.patchStatus.pdfInternals)return!0;let e=n.lib,t=e.getPDFView();return t&&(n.patchStatus.pdfView||(n.register(it(t.constructor.prototype,{getState(i){return function(){var c,l,d,h,u;let r=i.call(this),s=this.viewer.child,a=(c=s==null?void 0:s.pdfViewer)==null?void 0:c.pdfViewer;return a&&(r.page=(d=(l=a._location)==null?void 0:l.pageNumber)!=null?d:a.currentPageNumber,r.left=(h=a._location)==null?void 0:h.left,r.top=(u=a._location)==null?void 0:u.top,r.zoom=a.currentScale),r}},setState(i){return function(r,o){return n.settings.alwaysRecordHistory&&(o.history=!0),i.call(this,r,o).then(()=>{var l;let a=this.viewer.child,c=(l=a==null?void 0:a.pdfViewer)==null?void 0:l.pdfViewer;typeof r.page=="number"&&c&&e.applyPDFViewStateToViewer(c,r)})}},onLoadFile(i){return async function(r){let o=this,s=o.getState(),a=e.viewStateToSubpath(s);return o.viewer.loadFile(r,a!=null?a:void 0)}}})),n.patchStatus.pdfView=!0,n.classes.PDFView=t.constructor),n.patchStatus.pdfInternals||Ea(n,t.viewer)),!1};var s1=n=>{if(n.patchStatus.pdfInternals)return!0;let{lib:e}=n,t=e.getPDFEmbed();return t&&Ea(n,t.viewer),!1};var r1=(n,e)=>(n.register(it(e.constructor.prototype,{onItemContextMenu(t){return async function(i,r){let o=this,s=o.viewer,a=s.file;if(!n.settings.outlineContextMenu||!a)return await t.call(o,i,r);qw(n,s,a,i,r)}}})),!0);var Ta=require("obsidian");var a1=n=>{let e=n.app,t=n.lib;n.register(it(Ta.Workspace.prototype,{openLinkText(i){return function(r,o,s,a){var c;if((n.settings.openPDFWithDefaultApp||n.settings.singleTabForSinglePDF||n.settings.openLinkNextToExistingPDFTab||n.settings.paneTypeForFirstPDFLeaf)&&!s){let{path:l}=(0,Ta.parseLinktext)(r),d=e.metadataCache.getFirstLinkpathDest(l,o);if(d&&d.extension==="pdf"){if(Ta.Platform.isDesktopApp&&n.settings.openPDFWithDefaultApp){if(n.settings.openPDFWithDefaultAppAndObsidian&&n.settings.syncWithDefaultApp)return;let h=e.openWithDefaultApp(d.path);if(n.settings.focusObsidianAfterOpenPDFWithDefaultApp&&Xc(),!n.settings.openPDFWithDefaultAppAndObsidian)return h}if(n.settings.singleTabForSinglePDF){let{exists:h,promise:u}=t.workspace.openPDFLinkTextInExistingLeafForTargetPDF(r,o,a,d);if(h)return u}if(n.settings.openLinkNextToExistingPDFTab||n.settings.paneTypeForFirstPDFLeaf){let h=(c=t.getPDFView())==null?void 0:c.leaf;if(h){if(n.settings.openLinkNextToExistingPDFTab&&h.parentSplit){let u=e.workspace.createLeafInParent(h.parentSplit,-1);return t.workspace.openPDFLinkTextInLeaf(u,r,o,a)}}else if(n.settings.paneTypeForFirstPDFLeaf){let u=t.workspace.getLeaf(n.settings.paneTypeForFirstPDFLeaf);return t.workspace.openPDFLinkTextInLeaf(u,r,o,a)}}}}return i.call(this,r,o,s,a)}}})),n.patchStatus.workspace=!0};var l1=require("obsidian");var c1=n=>{let e=n.app,t=n.lib,i=e.internalPlugins.plugins["page-preview"].instance;return n.register(it(i,{onLinkHover(r){return function(o,s,a,c,l){let{path:d,subpath:h}=(0,l1.parseLinktext)(a),u=e.metadataCache.getFirstLinkpathDest(d,c);if((!c||c.endsWith(".pdf"))&&n.settings.hoverHighlightAction==="open"&&(l!=null&&l.isTriggeredFromBacklinkVisualizer)){t.workspace.openMarkdownLinkFromPDF(a,c,!1,{line:l.scroll});return}if((u==null?void 0:u.extension)==="pdf"&&c.endsWith(".md")){if(n.settings.hoverPDFLinkToOpen){let{exists:p}=t.workspace.openPDFLinkTextInExistingLeafForTargetPDF(a,c,void 0,u);if(p)return}if(n.settings.ignoreHeightParamInPopoverPreview&&h.contains("height=")){let p=new URLSearchParams(h.slice(1));a=d+"#"+Array.from(p.entries()).filter(([f])=>f!=="height").map(([f,m])=>`${f}=${m}`).join("&")}}r.call(this,o,s,a,c,l)}}})),n.patchStatus.pagePreview=!0,!0};var d1=require("obsidian");var Qu=class extends De{constructor(t,i,r){super(t);this.navButtonEl=null;this.renderer=i,this.file=r,this.pageTracker=new im(t,i,r),this.isTrackingPage=t.settings.filterBacklinksByPageDefault}onload(){this.navButtonEl=this.renderer.headerDom.addNavButton("lucide-filter","Show only backlinks in the current page",()=>{this.isTrackingPage=!this.isTrackingPage,this.updatePageTracker()}),this.updatePageTracker(),this.registerDomEvent(this.renderer.backlinkDom.el,"mouseover",t=>{this.processBacklinkVisualizerDomForEvent(t,(i,r,o,s)=>{if(!this.settings.highlightOnHoverBacklinkPane||!Pi(t,i))return;for(let l of r)l.addClass("hovered-highlight");let a=null;if(o.page&&o.annotation){let l=o.page,d=o.annotation.id;s.then(h=>{var f;let u=h.getPage(l),p=(f=u.annotationLayer)==null?void 0:f.annotationLayer.getAnnotation(d);p&&(a=this.lib.highlight.viewer.placeRectInPage(p.data.rect,u),a.addClass("pdf-plus-annotation-bounding-rect"))})}if(o.page&&o.FitR){let l=o.page,{left:d,bottom:h,right:u,top:p}=o.FitR;s.then(f=>{let m=f.getPage(l);a=this.lib.highlight.viewer.placeRectInPage([d,h,u,p],m),a.addClass("rect-highlight")})}let c=l=>{if(Pi(l,i)){for(let d of r)d.removeClass("hovered-highlight");a&&a.remove(),i.removeEventListener("mouseout",c)}};i.addEventListener("mouseout",c)})})}onunload(){var t;(t=this.navButtonEl)==null||t.remove(),this.pageTracker.unload()}setParents(...t){return t.forEach(i=>i.addChild(this)),this.register(()=>t.forEach(i=>i.removeChild(this))),this}updatePageTracker(){this.navButtonEl.toggleClass("is-active",this.isTrackingPage),this.isTrackingPage?this.pageTracker.load():this.pageTracker.unload()}findBacklinkItemEl(t){var l,d;let{refCache:i,sourcePath:r}=t,o=this.renderer.backlinkDom,s=this.app.vault.getAbstractFileByPath(r);if(!(s instanceof d1.TFile))return null;let a=o.getResult(s);if(!a)return null;if(!!a.childrenEl.querySelector(".better-search-views-tree")){let h=this.app.metadataCache.getFileCache(s);if(!(h!=null&&h.sections)||!("position"in i))return null;let u=new Set;for(let[f,m]of a.result.content){let x=h.sections.find(g=>g.position.start.offset<=f&&m<=g.position.end.offset);if(x&&(u.add(x),f===i.position.start.offset&&i.position.end.offset===m))break}let p=u.size-1;return p===-1?null:(d=a==null?void 0:a.childrenEl.querySelectorAll(".search-result-file-match")[p])!=null?d:null}else{let h=a==null?void 0:a.vChildren.children;if(!h)return null;let u=h.find(p=>{if("position"in i)return p.start<=i.position.start.offset&&i.position.end.offset<=p.end;for(let f of p.matches)return"key"in f&&f.key===i.key;return!1});return(l=u==null?void 0:u.el)!=null?l:null}}processBacklinkVisualizerDomForEvent(t,i){let r=t.target;if(!It(t,r))return;let o=this.renderer.backlinkDom.vChildren.children.find(s=>s.el.contains(r));if(o){let s=o.file.path;this.lib.workspace.iteratePDFViewerComponents(a=>{if(a.visualizer){let c=a.visualizer.index.sourcePaths.get(s);for(let l of c){if(l.page===null)continue;let d=this.findBacklinkItemEl(l);if(d!=null&&d.contains(r)){let u=a.visualizer.domManager.getCacheToDomsMap(l.page).get(l);i(d,u,l,a)}}}})}}},im=class extends De{constructor(t,i,r){super(t);this.renderer=i;this.file=r;this.matchCountObserver=new Wc(this.renderer.backlinkDom.el,()=>{if(this.updateBacklinkCountEl(o=>`${o} in this page`),this.renderer.collapseAll)for(let o of this.renderer.backlinkDom.el.querySelectorAll(".tree-item.search-result")){let s=o.querySelector(":scope>.tree-item-self.search-result-file-title>.collapse-icon");s?s.style.visibility==="hidden"&&o.remove():o.remove()}else for(let o of this.renderer.backlinkDom.el.querySelectorAll(".tree-item.search-result:not(:has( .search-result-file-match))"))o.hasClass("is-collapsed")||o.remove()},{childList:!0,subtree:!0})}async onload(){this.renderer.backlinkDom.filter=void 0;let t=this.lib.workspace.getExistingLeafForPDFFile(this.file);if(t){await this.lib.workspace.ensureViewLoaded(t);let i=t.view;this.lib.isPDFView(i)&&i.viewer.then(r=>{this.renderer.backlinkDom.filter=(o,s)=>r.pdfViewer&&r.pdfViewer.pdfViewer?this.filter(r.pdfViewer.pdfViewer.currentPageNumber,s):!0,this.updateBacklinkDom(),this.lib.registerPDFEvent("pagechanging",r.pdfViewer.eventBus,this,o=>{var a;let s=typeof o.pageNumber=="number"?o.pageNumber:(a=r.pdfViewer.pdfViewer)==null?void 0:a.currentPageNumber;s&&(this.renderer.backlinkDom.filter=(c,l)=>this.filter(s,l)),this.updateBacklinkDom()})})}this.addChild(this.matchCountObserver)}onunload(){this.renderer.backlinkDom.filter=void 0,this.updateBacklinkDom()}updateBacklinkDom(){this.renderer.recomputeBacklink(this.file)}updateBacklinkCountEl(t){var r;let i=Array.from(this.renderer.backlinkDom.el.querySelectorAll("div.search-result-file-title span.tree-item-flair")).map(o=>+o.getText()).reduce((o,s)=>o+s,0);(r=this.renderer.backlinkCountEl)==null||r.setText(t?t(i):`${i}`)}filter(t,i){let r=kg(i.link),o=new URLSearchParams(r);return o.has("page")?!this.settings.showBacklinkToPage&&!o.has("selection")&&!o.has("annotation")&&!o.has("offset")&&!o.has("rect")?!1:+o.get("page")===t:!1}};var h1=n=>{var o;let{app:e,lib:t}=n,i=(o=e.workspace.getLeavesOfType("backlink").find(s=>t.isBacklinkView(s.view)))==null?void 0:o.view,r=i==null?void 0:i.backlink;return!i||!r?!1:(n.register(it(Object.getPrototypeOf(i.constructor.prototype),{onLoadFile(s){return async function(a){await s.call(this,a),this.getViewType()==="backlink"&&a.extension==="pdf"&&(this.pdfManager=new Qu(n,this.backlink,a).setParents(n,this))}},onUnloadFile(s){return async function(a){let c=this;a.extension==="pdf"&&c.pdfManager&&c.pdfManager.unload(),await s.call(this,a)}}})),n.register(it(r.backlinkDom.constructor.prototype,{addResult(s){return function(a,c,l,d){var u;let h=this;if(h.filter){let p=e.metadataCache.getFileCache(a);if(p){let f=[];for(let[x,g]of c.content){let b=Dg(p,x,g);b&&h.filter(a,b)&&f.push([x,g])}c.content.length=0,c.content.push(...f);let m=[];for(let x of c.properties){let g=(u=p.frontmatterLinks)==null?void 0:u.find(b=>b.key===x.key);g&&h.filter(a,g)&&m.push(x)}c.properties.length=0,c.properties.push(...m)}}return s.call(this,a,c,l,d)}}})),t.workspace.iterateBacklinkViews(s=>{var a;((a=s.file)==null?void 0:a.extension)==="pdf"&&s.onLoadFile(s.file)}),n.patchStatus.backlink=!0,!0)};var Aa=require("obsidian");var u1=n=>{let e=n.app,t;return e.workspace.iterateAllLeaves(i=>{i.view instanceof Aa.MarkdownView&&(t=i.view.editMode.clipboardManager)}),t?(n.register(it(t.constructor.prototype,{handleDragOver(i){return function(r){let o=e.dragManager.draggable;if(!o||o.source!=="pdf-plus")return i.call(this,r);(Aa.Platform.isMacOS?r.shiftKey:r.altKey)||(AC(r,"link"),e.dragManager.setAction("Insert link here"))}},handleDrop(i){return function(r){let o=e.dragManager.draggable;if(!o||o.source!=="pdf-plus")return i.call(this,r);if(this.info instanceof Aa.MarkdownView&&(Aa.Platform.isMacOS?r.shiftKey:r.altKey))return r.preventDefault(),this.info.handleDrop(r,o,!1),!0;let s=this.info.editor;if(!s)return!1;let a=o.getText(this.getPath()),c=s.cm.posAtCoords({x:r.clientX,y:r.clientY},!1),l=s.offsetToPos(c);return s.setCursor(l),typeof a=="string"?(s.replaceSelection(a),s.focus(),r.preventDefault(),!0):!1}}})),!0):!1},TC={none:[],copy:["copy"],copyLink:["copy","link"],copyMove:["copy","move"],link:["link"],linkMove:["link","move"],move:["move"],all:["copy","link","move"],uninitialized:[]};function AC(n,e){if(!n.dataTransfer||n.dataTransfer.effectAllowed==="none"||n.dataTransfer.effectAllowed==="uninitialized")return;if(e==="none")return n.dataTransfer.dropEffect=e;TC[n.dataTransfer.effectAllowed].contains(e)&&(n.dataTransfer.dropEffect=e)}var f1=require("obsidian");var p1=n=>{n.register(it(f1.Menu.prototype,{showAtPosition(e){return function(...t){var i;return n.settings.hoverableDropdownMenuInToolbar&&((i=this.parentEl)!=null&&i.closest("div.pdf-toolbar"))&&this.setUseNativeMenu(!1),n.shownMenus.add(this),e.call(this,...t)}},hide(e){return function(...t){return n.shownMenus.delete(this),e.call(this,...t)}}}))};var Ce=require("obsidian");var Wi=require("obsidian");var Ie=class{constructor(e){this.app=e.app,this.plugin=e}get lib(){return this.plugin.lib}get settings(){return this.plugin.settings}};var ns=require("obsidian"),IC=Ki(require("obsidian")),od=class{constructor(e,t){this.plugin=e;this.variables=t}setVariable(e,t){this.variables[e]=t}evalPart(e){let t=new Function(...Object.keys(this.variables),`return ${e};`)(...Object.values(this.variables));if(t===void 0)throw Error(`The expression "${e}" cannot be evaluated.`);return t}evalTemplate(e){return e.replace(/{{(.*?)}}/g,(t,i)=>this.evalPart(i))}},sd=class extends od{constructor(e,t){var d,h,u,p,f,m;let{app:i}=e;"colorName"in t&&(t.color=t.colorName),super(e,{...t,app:i,obsidian:IC,pdf:t.file,folder:t.file.parent,selection:t.text}),this.app=i,this.lib=e.lib;let r=this.findMarkdownFileAssociatedToPDF(t.file),o=(h=r&&((d=i.metadataCache.getFileCache(r))==null?void 0:d.frontmatter))!=null?h:{};this.setVariable("md",r),this.setVariable("properties",o);let s=this.findLinkedFile(t.file),a=(p=s&&((u=i.metadataCache.getFileCache(s))==null?void 0:u.frontmatter))!=null?p:{};this.setVariable("linkedFile",s),this.setVariable("linkedFileProperties",a);let c=(f=i.plugins.plugins.dataview)==null?void 0:f.api,l=(m=i.plugins.plugins.quickadd)==null?void 0:m.api;c&&this.setVariable("dv",c),l&&this.setVariable("quickAddApi",l)}findMarkdownFileAssociatedToPDF(e){var o,s,a;let t=this.plugin.app,i=[],r=(o=t.plugins.plugins.dataview)==null?void 0:o.api;if(r)i=r.pages().where(l=>{var d;return r.array((d=l[this.plugin.settings.proxyMDProperty])!=null?d:[]).path.includes(e.path)}).map(l=>t.vault.getAbstractFileByPath(l.file.path)).filter(l=>l instanceof ns.TFile);else{let c=t.metadataCache.getBacklinksForFile(e);for(let l of c.keys()){let d=t.metadataCache.getCache(l);if(d&&((s=d.frontmatterLinks)==null?void 0:s.some(u=>{if(u.key!==this.plugin.settings.proxyMDProperty&&!new RegExp(`${this.plugin.settings.proxyMDProperty}.\\d+`).test(u.key))return!1;let p=(0,ns.getLinkpath)(u.link),f=t.metadataCache.getFirstLinkpathDest(p,l);return f&&f.path===e.path}))){let u=t.vault.getAbstractFileByPath(l);u instanceof ns.TFile&&i.push(u)}}}if(i.length>1){let c=`Multiple markdown files are associated with this PDF file:
|
||
${i.map(l=>"- "+l.path).join(`
|
||
`)}
|
||
Aborting.`;throw Error(c)}return(a=i.first())!=null?a:null}findLinkedFile(e){let t=null,i=this.lib.workspace.getActiveGroupLeaves();if(i){for(let r of i)if(r.view instanceof ns.FileView&&r.view.file&&r.view.file!==e){t=r.view.file;break}}return t}};var $u=class extends Ie{constructor(){super(...arguments);this.statusDurationMs=2e3}getPageAndTextRangeFromSelection(t){if(t=t!=null?t:activeWindow.getSelection(),!t)return null;let i=this.lib.getPageElFromSelection(t);if(!i||i.dataset.pageNumber===void 0)return null;let r=+i.dataset.pageNumber,o=t.rangeCount>0?t.getRangeAt(0):null;if(o){let s=this.getTextSelectionRange(i,o);if(s)return{page:r,selection:s}}return{page:r}}getTextSelectionRange(t,i){if(i&&!i.collapsed){let r=mu(t,i.startContainer),o=mu(t,i.endContainer);if(r&&o){let s=r.dataset.idx,a=o.dataset.idx,c=xu(r,i.startContainer,i.startOffset),l=xu(o,i.endContainer,i.endOffset);if(s!==void 0&&a!==void 0&&c!==null&&l!==null)return{beginIndex:+s-this.plugin.textDivFirstIdx,beginOffset:c,endIndex:+a-this.plugin.textDivFirstIdx,endOffset:l}}}return null}getTemplateVariables(t){var d,h,u;let i=activeWindow.getSelection();if(!i)return null;let r=this.lib.getPageElFromSelection(i);if(!r||r.dataset.pageNumber===void 0)return null;let o=this.lib.getPDFViewerChildAssociatedWithNode(r),s=o==null?void 0:o.file;if(!s)return null;let a=+r.dataset.pageNumber;i.toString()||(a=(h=(d=o.pdfViewer.pdfViewer)==null?void 0:d.currentPageNumber)!=null?h:a);let c=o.getTextSelectionRangeStr(r);if(!c)return null;let l=Kc({page:a,selection:c,...t});return{child:o,file:s,subpath:l,page:a,pageCount:o.pdfViewer.pagesCount,pageLabel:(u=o.getPage(a).pageLabel)!=null?u:""+a,text:this.lib.toSingleLine(i.toString())}}getLinkTemplateVariables(t,i,r,o,s,a,c,l){l=l!=null?l:"";let d=this.app.fileManager.generateMarkdownLink(r,l,o).slice(1),h=this.app.metadataCache.fileToLinktext(r,l)+o;this.app.vault.getConfig("useMarkdownLinks")&&(h=Rr(h));let u=this.getDisplayText(t,i,r,s,a,c),p=this.lib.generateMarkdownLink(r,l,o,u||void 0).slice(1),f=this.app.fileManager.generateMarkdownLink(r,l,`#page=${s}`).slice(1),m=this.lib.generateMarkdownLink(r,l,`#page=${s}`,u||void 0).slice(1);return{link:d,linktext:h,display:u,linkWithDisplay:p,linkToPage:f,linkToPageWithDisplay:m}}getDisplayText(t,i,r,o,s,a){var c;if(!i){let l=this.lib.getColorPaletteFromChild(t);l?i=this.settings.displayTextFormats[l.displayTextFormatIndex].template:i=this.settings.displayTextFormats[this.settings.defaultDisplayTextFormatIndex].template}try{return new sd(this.plugin,{file:r,page:o,pageCount:t.pdfViewer.pagesCount,pageLabel:(c=t.getPage(o).pageLabel)!=null?c:""+o,text:s,comment:a!=null?a:""}).evalTemplate(i).trim()}catch(l){console.error(l),new Wi.Notice(`${this.plugin.manifest.name}: Display text format is invalid. Error: ${l.message}`,3e3)}}getTextToCopy(t,i,r,o,s,a,c,l,d,h){var m,x,g,b,v,y;let u=t.getPage(s);if(typeof h!="string"){let F=ma(a).get("annotation");h=typeof F=="string"&&((v=(b=(g=(x=(m=u==null?void 0:u.annotationLayer)==null?void 0:m.annotationLayer)==null?void 0:x.getAnnotation(F))==null?void 0:g.data)==null?void 0:b.contentsObj)==null?void 0:v.str),h=this.lib.toSingleLine(h||"")}return new sd(this.plugin,{file:o,page:s,pageLabel:(y=u.pageLabel)!=null?y:""+s,pageCount:t.pdfViewer.pagesCount,text:c,comment:h,colorName:l,calloutType:this.settings.calloutType,...this.lib.copyLink.getLinkTemplateVariables(t,r,o,a,s,c,h,d)}).evalTemplate(i)}async getTextToCopyForOutlineItem(t,i,r,o){return(await this.getTextToCopyForOutlineItemDynamic(t,i,r))(o)}async getTextToCopyForOutlineItemDynamic(t,i,r){let o=await r.getExplicitDestination(),s=await r.getPageNumber(),a=this.lib.normalizePDFJsDestArray(o,s),c=this.lib.destArrayToSubpath(a);return l=>this.getTextToCopy(t,this.settings.outlineLinkCopyFormat,this.settings.outlineLinkDisplayTextFormat,i,s,c,r.item.title,"",l)}getSelectionLinkInfo(){var s;let t=this.lib.getColorPaletteAssociatedWithSelection();if(!t)return null;let i=this.settings.copyCommands[t.actionIndex].template,r=(s=t.selectedColorName)!=null?s:void 0,o=t.writeFile;return{template:i,colorName:r,writeFile:o}}getAnnotationLinkInfo(){let t=this.plugin.lastAnnotationPopupChild;if(!t)return null;let i=t.activeAnnotationPopupEl;if(!i)return null;let r=i.querySelector(".popupMeta div.clickable-icon:has(svg.lucide-copy)");if(!r)return null;let o=this.lib.getColorPaletteAssociatedWithNode(r),s;o?s=this.settings.copyCommands[o.actionIndex].template:s=this.settings.copyCommands[this.settings.defaultColorPaletteActionIndex].template;let a=this.lib.getAnnotationInfoFromPopupEl(i);if(!a)return null;let{page:c,id:l}=a;return{child:t,copyButtonEl:r,template:s,page:c,id:l}}copyLinkToSelection(t,i,r,o){let s=this.getTemplateVariables(r?{color:r.toLowerCase()}:{});if(s){let{child:a,file:c,subpath:l,page:d,text:h}=s;if(!h)if(this.settings.useAnotherCopyTemplateWhenNoSelection)i.copyFormat=this.settings.copyTemplateWhenNoSelection;else return!1;return t||(async()=>{var m;let u=this.getTextToCopy(a,i.copyFormat,i.displayTextFormat,c,d,l,h,(m=r==null?void 0:r.toLowerCase())!=null?m:"");await navigator.clipboard.writeText(u),this.onCopyFinish(u);let p=this.lib.getColorPaletteFromChild(a);p==null||p.setStatus("Link copied",this.statusDurationMs),this.autoFocusOrAutoPaste(u,o,p!=null?p:void 0);let f=_o(l);if(f&&"beginIndex"in f){let x=a.getPage(d).textLayer;if(x){let g=Ft(x);if(g){let{textContentItems:b}=g,v=b[f.beginIndex];if(v){let y=v.transform[4],F=v.transform[5]+v.height;typeof y=="number"&&typeof F=="number"&&(this.plugin.lastCopiedDestInfo={file:c,destArray:[d-1,"XYZ",y,F,null]})}}}}})(),!0}return!1}copyLinkToAnnotation(t,i,r,o,s,a,c){let l=t.file;if(!l)return!1;if(!i){let d=t.getPage(o);t.getAnnotatedText(d,s).then(async h=>{var y,F,D,C;let u=(C=(D=(F=(y=d.annotationLayer)==null?void 0:y.annotationLayer)==null?void 0:F.getAnnotation(s))==null?void 0:D.data)!=null?C:(await d.pdfPage.getAnnotations()).find(k=>k.id===s),p=u!=null&&u.color?`${u.color[0]}, ${u.color[1]}, ${u.color[2]}`:"",f=`#page=${o}&annotation=${s}`;if(u.subtype==="Square"){let k=u.rect;f+=`&rect=${k[0]},${k[1]},${k[2]},${k[3]}`}let m=this.getTextToCopy(t,r.copyFormat,r.displayTextFormat,l,o,f,h!=null?h:"",p);await navigator.clipboard.writeText(m),this.onCopyFinish(m);let x=this.lib.getColorPaletteFromChild(t);c&&(x==null||x.setStatus("Link copied",this.statusDurationMs)),this.autoFocusOrAutoPaste(m,a,x!=null?x:void 0);let g=u==null?void 0:u.rect,b=g==null?void 0:g[0],v=g==null?void 0:g[3];typeof b=="number"&&typeof v=="number"&&(this.plugin.lastCopiedDestInfo={file:l,destArray:[o-1,"XYZ",b,v,null]})})}return!0}copyLinkToAnnotationWithGivenTextAndFile(t,i,r,o,s,a,c,l,d){return o||(async()=>{let h=this.getTextToCopy(r,s.copyFormat,s.displayTextFormat,i,a,`#page=${a}&annotation=${c}`,t,l);await navigator.clipboard.writeText(h),this.onCopyFinish(h);let u=this.lib.getColorPaletteFromChild(r);u==null||u.setStatus("Link copied",this.statusDurationMs),this.autoFocusOrAutoPaste(h,d,u!=null?u:void 0)})(),!0}writeHighlightAnnotationToSelectionIntoFileAndCopyLink(t,i,r,o){let s=activeWindow.getSelection();if(!s)return!1;let a=this.lib.toSingleLine(s.toString());if(!a)return!1;if(!t){let c=this.lib.getColorPaletteAssociatedWithSelection();c==null||c.setStatus("Writing highlight annotation into file...",1e4),this.lib.highlight.writeFile.addTextMarkupAnnotationToSelection(this.settings.selectionBacklinkVisualizeStyle==="highlight"?"Highlight":"Underline",r).then(l=>{if(!l)return;let{child:d,file:h,page:u,annotationID:p,rects:f}=l;!p||!h||setTimeout(()=>{let m=this.lib.getColorPaletteFromChild(d);m==null||m.setStatus("Link copied",this.statusDurationMs);let{r:x,g,b}=this.plugin.domManager.getRgb(r);if(this.copyLinkToAnnotationWithGivenTextAndFile(a,h,d,!1,i,u,p,`${x}, ${g}, ${b}`,o),f){let v=Math.min(...f.map(F=>F[0])),y=Math.max(...f.map(F=>F[3]));typeof v=="number"&&typeof y=="number"&&(this.plugin.lastCopiedDestInfo={file:h,destArray:[u-1,"XYZ",v,y,null]})}},300)})}return!0}copyEmbedLinkToRect(t,i,r,o,s,a,c){if(a||(a=this.settings.autoPaste),!i.file)return!1;let l=i.file,d=this.lib.getColorPaletteFromChild(i);if(o.some(h=>isNaN(h)))return d==null||d.setStatus("Invalid selection",this.statusDurationMs),!1;if(!t){let h=this.getDisplayText(i,void 0,l,r,""),u=`#page=${r}&rect=${o.map(f=>Math.round(f)).join(",")}`;s&&(u+=`&color=${s}`);let p=this.lib.generateMarkdownLink(l,c!=null?c:"",u,h);(async()=>{let f=p,m=i.getPage(r).pdfPage,x=this.settings.rectImageExtension;if(!this.settings.rectEmbedStaticImage)await navigator.clipboard.writeText(f),this.onCopyFinish(f);else if(this.settings.rectImageFormat==="file"){let g=await this.app.fileManager.getAvailablePathForAttachment(l.basename+"."+x,"");f=(!this.app.vault.getConfig("useMarkdownLinks")?`![[${g}]]`:`})`)+`
|
||
|
||
`+p.slice(1),await navigator.clipboard.writeText(f);let y=async()=>{(i.containerEl.win!==window||m.destroyed)&&(m=await(await this.lib.loadPDFDocument(l)).getPage(r));let F=await this.lib.pdfPageToImageArrayBuffer(m,{type:`image/${x}`,cropRect:o,renderParams:this.lib.getOptionalRenderParameters()});return await this.app.vault.createBinary(g,F)};a?(await y(),this.onCopyFinish(f)):this.onCopyFinish(f,y)}else f=`})`+`
|
||
|
||
`+p.slice(1),await navigator.clipboard.writeText(f),this.onCopyFinish(f);this.plugin.lastCopiedDestInfo={file:l,destArray:[r-1,"FitR",...o]},d==null||d.setStatus("Link copied",this.statusDurationMs),await this.autoFocusOrAutoPaste(f,a,d!=null?d:void 0)})()}return!0}copyLinkToSearch(t,i,r,o,s,a){if(!i.file)return!1;let c=i.file,l=this.lib.getColorPaletteFromChild(i);if(!t){let d=this.lib.copyLink.getDisplayText(i,void 0,c,r,o),h=this.lib.generateMarkdownLink(c,"",`#search=${o}`,d).slice(1);(async()=>(await navigator.clipboard.writeText(h),this.onCopyFinish(h),l==null||l.setStatus("Link copied",this.statusDurationMs),await this.autoFocusOrAutoPaste(h,s,l!=null?l:void 0)))()}return!0}makeCanvasTextNodeFromSelection(t,i,r,o){var a;let s=this.getTemplateVariables(o?{color:o.toLowerCase()}:{});if(s){let{child:c,file:l,subpath:d,page:h,text:u}=s;if(!u)return!1;if(!t){let p=this.getTextToCopy(c,r,void 0,l,h,d,u,(a=o==null?void 0:o.toLowerCase())!=null?a:"");i.createTextNode({pos:i.posCenter(),position:"center",text:p})}return!0}return!1}makeCanvasTextNodeFromAnnotation(t,i,r,o,s,a){let c=r.file;if(!c)return!1;if(!t){let l=r.getPage(s);r.getAnnotatedText(l,a).then(d=>{let h=this.getTextToCopy(r,o,void 0,c,s,`#page=${s}&annotation=${a}`,d!=null?d:"","");i.createTextNode({pos:i.posCenter(),position:"center",text:h})})}return!0}async autoPaste(t){let i=this.getAutoFocusOrAutoPasteTarget(this.settings.autoPasteTarget);if(i)return await this.pasteTextToFile(t,i),!0;if(!this.settings.executeCommandWhenTargetNotIdentified)return!1;let r=this.app.commands.findCommand(this.settings.commandToExecuteWhenTargetNotIdentified);if(!r)return new Wi.Notice(`${this.plugin.manifest.name}: Command "${this.settings.commandToExecuteWhenTargetNotIdentified}" was not found. Please update the "Command to execute when pasting a link for the first time with auto-focus or auto-paste" setting.`),!1;let o=!1;return new Promise(s=>{let a=this.app.workspace.on("file-open",async l=>{l&&l.extension==="md"&&(this.app.workspace.offref(a),await this.pasteTextToFile(t,l,!0),this.plugin.lastPasteFile=l,s(!0))}),c=this.lib.workspace.hoverEditor;this.plugin.registerOneTimeEvent(this.app.workspace,"active-leaf-change",l=>{l&&c.isHoverEditorLeaf(l)&&c.postProcessHoverEditorLeaf(l)}),this.app.commands.executeCommandById(r.id),activeWindow.setTimeout(()=>{if(!o){let{noticeEl:l}=new Wi.Notice(`${this.plugin.manifest.name}: Could not find the auto-paste target markdown file within ${this.settings.autoPasteTargetDialogTimeoutSec} seconds.`);l.appendText(" Click "),l.createEl("a",{text:"here"},d=>{d.addEventListener("click",()=>{this.plugin.openSettingTab().scrollTo("autoPasteTargetDialogTimeoutSec")})}),l.appendText(" to change the timeout duration."),this.app.workspace.offref(a),s(!1)}},this.settings.autoPasteTargetDialogTimeoutSec*1e3)}).then(s=>(o=!0,s))}async autoFocus(){let t=this.getAutoFocusOrAutoPasteTarget(this.settings.autoFocusTarget);if(t){let{leaf:o,isExistingLeaf:s}=await this.prepareMarkdownLeafForPaste(t);return o&&o.view instanceof Wi.MarkdownView&&await this.updateAndRevealCursorInEditor(o.view,{focus:!0,goEnd:!s}),!0}if(!this.settings.executeCommandWhenTargetNotIdentified)return!1;let i=this.app.commands.findCommand(this.settings.commandToExecuteWhenTargetNotIdentified);if(!i)return new Wi.Notice(`${this.plugin.manifest.name}: Command "${this.settings.commandToExecuteWhenTargetNotIdentified}" was not found. Please update the "Command to execute when pasting a link for the first time with auto-focus or auto-paste" setting.`),!1;let r=this.lib.workspace.hoverEditor;return this.plugin.registerOneTimeEvent(this.app.workspace,"active-leaf-change",o=>{o&&r.isHoverEditorLeaf(o)&&r.postProcessHoverEditorLeaf(o)}),this.app.commands.executeCommandById(i.id)}getAutoFocusOrAutoPasteTarget(t){let i=this.plugin.lastActiveMarkdownFile,r=this.plugin.lastPasteFile,o=!!(i&&this.lib.workspace.isMarkdownFileOpened(i)),s=null;return t==="last-paste"?s=r:t==="last-active"?s=i:t==="last-active-and-open"?o&&(s=i):t==="last-paste-then-last-active"?s=r!=null?r:i:t==="last-paste-then-last-active-and-open"?r?s=r:o&&(s=i):t==="last-active-and-open-then-last-paste"&&(o?s=i:r&&(s=r)),s&&s.extension==="md"?s:null}async prepareMarkdownLeafForPaste(t){let i=this.lib.workspace.getExistingLeafForMarkdownFile(t),r=!!i;if(!i&&this.settings.openAutoFocusTargetIfNotOpened){let o=this.settings.howToOpenAutoFocusTargetIfNotOpened;if(o==="hover-editor"){let s=await this.lib.workspace.hoverEditor.createNewHoverEditorLeaf({hoverPopover:null},null,t.path,"");s&&(i=s)}else i=this.lib.workspace.getLeaf(o),await i.openFile(t,{active:!1});if(i&&this.settings.openAutoFocusTargetInEditingView){await this.lib.workspace.ensureViewLoaded(i);let s=i.view;s instanceof Wi.MarkdownView&&(await s.setState({mode:"source"},{history:!1}),s.setEphemeralState({focus:!1}))}}return i&&(await this.lib.workspace.ensureViewLoaded(i),this.lib.workspace.hoverEditor.postProcessHoverEditorLeaf(i),this.settings.closeSidebarWhenLostFocus&&this.lib.workspace.registerHideSidebar(i)),{leaf:i,isExistingLeaf:r}}async pasteTextToFile(t,i,r=!1){let{leaf:o,isExistingLeaf:s}=await this.prepareMarkdownLeafForPaste(i);if(!r&&o&&s&&o.view instanceof Wi.MarkdownView&&o.view.getMode()==="source"){let a=o.view,c=a.editor;if(this.settings.respectCursorPositionWhenAutoPaste)c.replaceSelection(t);else{let l=c.getValue();l=l.trimEnd(),l&&(l+=this.settings.blankLineAboveAppendedContent?`
|
||
|
||
`:`
|
||
`),l+=t,c.setValue(l)}a.save(),await this.updateAndRevealCursorInEditor(o.view,{focus:this.settings.focusEditorAfterAutoPaste,goEnd:!this.settings.respectCursorPositionWhenAutoPaste})}else await this.app.vault.process(i,a=>(a=a.trimEnd(),a&&(a+=this.settings.blankLineAboveAppendedContent?`
|
||
|
||
`:`
|
||
`),a+=t,a)),o&&activeWindow.setTimeout(async()=>{o.view instanceof Wi.MarkdownView&&await this.updateAndRevealCursorInEditor(o.view,{focus:this.settings.focusEditorAfterAutoPaste,goEnd:!0})})}async updateAndRevealCursorInEditor(t,i){let{focus:r,goEnd:o}=i,s=t.editor;r&&(o&&s.exec("goEnd"),await this.lib.workspace.revealLeaf(t.leaf),this.app.workspace.setActiveLeaf(t.leaf),s.focus());let a=s.coordsAtPos(s.getCursor(),!0);if(a){let c=s.getScrollInfo();if(a.top<c.top||a.top>c.top+c.clientHeight){let l={from:s.getCursor("from"),to:s.getCursor("to")};s.scrollIntoView(l,!0)}}}watchPaste(t,i){this.plugin.registerOneTimeEvent(this.app.workspace,"editor-paste",(r,o,s)=>{var d;if(((d=s.file)==null?void 0:d.extension)!=="md"||!r.clipboardData)return;let c=r.clipboardData.getData("text/plain").replace(/\r\n/g,`
|
||
`),l=t.replace(/\r\n/g,`
|
||
`);c===l&&(this.plugin.lastPasteFile=s.file,i==null||i()),s instanceof Wi.MarkdownView&&setTimeout(()=>s.save())})}onCopyFinish(t,i){this.watchPaste(t,i),this.plugin.lastCopiedDestInfo=null}async autoFocusOrAutoPaste(t,i,r){if(i||this.settings.autoPaste)if(await this.autoPaste(t)){if(r==null||r.setStatus("Link copied & pasted",this.statusDurationMs),!this.settings.focusEditorAfterAutoPaste&&this.settings.clearSelectionAfterAutoPaste){let s=activeWindow.getSelection();s&&this.lib.copyLink.getPageAndTextRangeFromSelection(s)&&s.empty()}}else r==null||r.setStatus("Link copied but paste target not identified",this.statusDurationMs);else this.settings.autoFocus&&(await this.autoFocus()||r==null||r.setStatus("Link copied but paste target not identified",this.statusDurationMs))}};var e0=class extends Ie{computeMergedHighlightRects(e,t,i,r,o){let{textContentItems:s,textDivs:a}=e,c=[],l=null,d=[];o===0&&(r--,o=s[r].str.length);for(let h=t;h<=r;h++){let u=s[h],p=a[h];if(!u.str)continue;let f=this.computeHighlightRectForItem(u,p,h,t,i,r,o);f&&(l?this.areRectanglesMergeable(l,f)?(l=this.mergeRectangles(l,f),d.push(h)):(c.push({rect:l,indices:d}),l=f,d=[h]):(l=f,d=[h]))}return l&&c.push({rect:l,indices:d}),c}computeHighlightRectForItem(e,t,i,r,o,s,a){return e.chars&&e.chars.length>=e.str.length?this.computeHighlightRectForItemFromChars(e,i,r,o,s,a):this.computeHighlightRectForItemFromTextLayer(e,t,i,r,o,s,a)}computeHighlightRectForItemFromChars(e,t,i,r,o,s){let a=e.chars.slice(e.chars.findIndex(u=>u.c===e.str.charAt(0)),e.chars.findLastIndex(u=>u.c===e.str.charAt(e.str.length-1))+1),c=t===i?r:0,l=(t===o?Math.min(s,a.length):a.length)-1;if(c>a.length-1||l<0)return null;let d=a[c],h=a[l];return[Math.min(d.r[0],h.r[0]),Math.min(d.r[1],h.r[1]),Math.max(d.r[2],h.r[2]),Math.max(d.r[3],h.r[3])]}computeHighlightRectForItemFromTextLayer(e,t,i,r,o,s,a){let c=e.transform[4],l=e.transform[5],d=e.transform[4]+e.width,h=e.transform[5]+e.height,u=t.doc.createRange();if(i===r){let m=Kn(t,o);m?u.setStart(m.node,m.offset):u.setStartBefore(t)}else u.setStartBefore(t);if(i===s){let m=Kn(t,a);m?u.setEnd(m.node,m.offset):u.setEndAfter(t)}else u.setEndAfter(t);let p=u.getBoundingClientRect(),f=t.getBoundingClientRect();return[c+(p.left-f.left)/f.width*e.width,l+(p.bottom-f.bottom)/f.height*e.height,d-(f.right-p.right)/f.width*e.width,h-(f.top-p.top)/f.height*e.height]}areRectanglesMergeable(e,t){return this.areRectanglesMergeableHorizontally(e,t)||this.areRectanglesMergeableVertically(e,t)}areRectanglesMergeableHorizontally(e,t){let[i,r,o,s]=e,[a,c,l,d]=t,h=(r+s)/2,u=(c+d)/2,p=Math.abs(s-r),f=Math.abs(d-c),m=Math.max(p,f)*.5;return Math.abs(h-u)<m}areRectanglesMergeableVertically(e,t){let[i,r,o,s]=e,[a,c,l,d]=t,h=Math.abs(o-i),u=Math.abs(l-a),p=Math.abs(s-r),f=Math.abs(d-c),m=Math.max(h,u)*.1;return Math.abs(i-a)<m&&Math.abs(o-l)<m&&p/h>.85&&f/u>.85}mergeRectangles(...e){let t=e.map(s=>s[0]),i=e.map(s=>s[1]),r=e.map(s=>s[2]),o=e.map(s=>s[3]);return[Math.min(...t),Math.min(...i),Math.max(...r),Math.max(...o)]}rectsToQuadPoints(e){return e.flatMap(([t,i,r,o])=>[t,o,r,o,t,i,r,i])}};var t0=require("obsidian");var i0=class extends Ie{getPDFPlusBacklinkHighlightLayer(e){var i;let t=e.div;return(i=t.querySelector("div.pdf-plus-backlink-highlight-layer"))!=null?i:t.createDiv("pdf-plus-backlink-highlight-layer",r=>{window.pdfjsLib.setLayerDimensions(r,e.viewport)})}placeRectInPage(e,t){let i=t.pdfPage.view,r=i[0],o=i[1],s=i[2]-i[0],a=i[3]-i[1],c=window.pdfjsLib.Util.normalizeRect([e[0],i[3]-e[1]+i[1],e[2],i[3]-e[3]+i[1]]),d=this.getPDFPlusBacklinkHighlightLayer(t).createDiv("pdf-plus-backlink");return d.setCssStyles({left:`${100*(c[0]-r)/s}%`,top:`${100*(c[1]-o)/a}%`,width:`${100*(c[2]-c[0])/s}%`,height:`${100*(c[3]-c[1])/a}%`}),d}highlightSubpath(e,t){var i,r,o;if(((i=e.subpathHighlight)==null?void 0:i.type)==="text"){let s=new t0.Component;s.load(),this.lib.onTextLayerReady(e.pdfViewer,s,a=>{var d;if(((d=e.subpathHighlight)==null?void 0:d.type)!=="text")return;let{page:c,range:l}=e.subpathHighlight;c===a&&(e.highlightText(c,l),t>0&&setTimeout(()=>{e.clearTextHighlight()},t*1e3),s.unload())})}else if(((r=e.subpathHighlight)==null?void 0:r.type)==="annotation"){let s=new t0.Component;s.load(),this.lib.onAnnotationLayerReady(e.pdfViewer,s,a=>{var d;if(((d=e.subpathHighlight)==null?void 0:d.type)!=="annotation")return;let{page:c,id:l}=e.subpathHighlight;c===a&&(e.highlightAnnotation(c,l),t>0&&setTimeout(()=>e.clearAnnotationHighlight(),t*1e3),s.unload())})}else if(((o=e.subpathHighlight)==null?void 0:o.type)==="rect"){let s=new t0.Component;s.load(),this.lib.onPageReady(e.pdfViewer,s,a=>{var d;if(((d=e.subpathHighlight)==null?void 0:d.type)!=="rect")return;let{page:c,rect:l}=e.subpathHighlight;c===a&&(this.highlightRect(e,c,l),t>0&&setTimeout(()=>{this.clearRectHighlight(e)},t*1e3),s.unload())})}}highlightRect(e,t,i){if(this.clearRectHighlight(e),1<=t&&t<=e.pdfViewer.pagesCount){let r=e.getPage(t);r!=null&&r.div.dataset.loaded&&(e.rectHighlight=this.placeRectInPage(i,r),e.rectHighlight.addClass("rect-highlight"),this.settings.zoomToFitRect||activeWindow.setTimeout(()=>{window.pdfjsViewer.scrollIntoView(e.rectHighlight,{top:-this.settings.embedMargin})}))}}clearRectHighlight(e){e.rectHighlight&&(e.rectHighlight.detach(),e.rectHighlight=null)}};var g1=require("obsidian");var n0=class extends Ie{async addTextMarkupAnnotation(e,t,i,r,o,s){if(!this.plugin.settings.author)throw new Error(`${this.plugin.manifest.name}: The author name is not set. Please set it in the plugin settings.`);return await this.process(e,a=>{let c=a.getPage(t-1),{r:l,g:d,b:h}=this.plugin.domManager.getRgb(o),u=ng(),p=this.lib.highlight.geometry,f=this.addAnnotation(c,{Subtype:r,Rect:p.mergeRectangles(...i),QuadPoints:p.rectsToQuadPoints(i),Contents:j.fromText(s!=null?s:""),M:ee.fromDate(new Date),T:j.fromText(this.plugin.settings.author),CA:r==="Highlight"?this.plugin.settings.writeHighlightToFileOpacity:1,Border:r==="Highlight"?[u,u,0]:void 0,C:[l/255,d/255,h/255]});return Gc(f.objectNumber,f.generationNumber)})}async addHighlightAnnotation(e,t,i,r,o){return await this.addTextMarkupAnnotation(e,t,i,"Highlight",r,o)}async addLinkAnnotation(e,t,i,r,o,s){return await this.process(e,a=>{let c=a.getPage(t-1),l=Or(this.plugin.settings.pdfLinkColor),{r:d,g:h,b:u}=l!=null?l:{r:0,g:0,b:0},p=this.lib.highlight.geometry,f;typeof r=="string"?f=ee.of(r):f=[a.getPage(r[0]).ref,r[1],...r.slice(2).map(b=>typeof b=="number"?K.of(b):Ve)];let m=this.addAnnotation(c,{Subtype:"Link",Rect:p.mergeRectangles(...i),QuadPoints:p.rectsToQuadPoints(i),Dest:f,M:ee.fromDate(new Date),Border:[0,0,this.plugin.settings.pdfLinkBorder?1:0],C:[d/255,h/255,u/255]});return Gc(m.objectNumber,m.generationNumber)})}async process(e,t){let i=await this.lib.loadPdfLibDocument(e),r=await t(i);return await this.app.vault.modifyBinary(e,await i.save()),r}async read(e,t){let i=await this.lib.loadPdfLibDocument(e);return await t(i)}addAnnotation(e,t){let i=e.doc.context,r=i.register(i.obj({Type:"Annot",...t}));return e.node.addAnnot(r),r}async deleteAnnotation(e,t,i){await this.process(e,r=>{let o=r.getPage(t-1),s=this.findAnnotationRef(o,i);s&&o.node.removeAnnot(s)})}async getAnnotationContents(e,t,i){let r=await this.getAnnotation(e,t,i);if(r){let o=this.getContentsFromAnnotation(r);return o!=null?o:null}return null}async setAnnotationContents(e,t,i,r){await this.processAnnotation(e,t,i,o=>{this.setContentsToAnnotation(o,r)})}async getAnnotationColor(e,t,i){var o;let r=await this.getAnnotation(e,t,i);return r&&(o=this.getColorFromAnnotation(r))!=null?o:null}async setAnnotationColor(e,t,i,r){await this.processAnnotation(e,t,i,async o=>{this.setColorToAnnotation(o,r)})}async getAnnotationOpacity(e,t,i){var o;let r=await this.getAnnotation(e,t,i);return r&&(o=this.getOpacityFromAnnotation(r))!=null?o:null}async setAnnotationOpacity(e,t,i,r){await this.processAnnotation(e,t,i,async o=>{this.setOpacityToAnnotation(o,r)})}findAnnotationRef(e,t){var i;return(i=e.node.Annots())==null?void 0:i.asArray().find(r=>r instanceof Y&&Gc(r.objectNumber,r.generationNumber)===t)}async getAnnotation(e,t,i){return await this.read(e,r=>{let o=r.getPage(t-1),s=this.findAnnotationRef(o,i);return s?o.node.context.lookup(s,G):null})}async processAnnotation(e,t,i,r){return await this.process(e,async o=>{let s=o.getPage(t-1),a=this.findAnnotationRef(s,i);if(a){let c=s.node.context.lookup(a,G);await r(c)}})}getColorFromAnnotation(e){if(!e.get(w.of("AP"))){let i=e.get(w.of("C"));if(i instanceof X){let r=i.asArray();if(r.length===3){let[o,s,a]=r.map(c=>{if(c instanceof K)return Math.round(c.asNumber()*255);throw new Error(`${this.plugin.manifest.name}: Invalid color`)});return{r:o,g:s,b:a}}}}}setColorToAnnotation(e,t){let i=e.get(w.of("C"));i instanceof X&&(i.set(0,K.of(t.r/255)),i.set(1,K.of(t.g/255)),i.set(2,K.of(t.b/255)))}getContentsFromAnnotation(e){let t=e.get(w.of("Contents"));if(t instanceof ee||t instanceof j)return t.decodeText()}setContentsToAnnotation(e,t){e.set(w.of("Contents"),j.fromText(t))}getOpacityFromAnnotation(e){if(!e.get(w.of("AP"))){let i=e.get(w.of("CA"));if(i instanceof K)return i.asNumber()}}setOpacityToAnnotation(e,t){e.set(w.of("CA"),K.of(t))}getAuthorFromAnnotation(e){let t=e.get(w.of("T"));if(t instanceof ee||t instanceof j)return t.decodeText()}setAuthorToAnnotation(e,t){e.set(w.of("T"),j.fromText(t))}getBorderWidthFromAnnotation(e){let t=e.get(w.of("Border"));if(t instanceof X){let i=t.asArray()[2];if(i instanceof K)return i.asNumber()}}setBorderWidthToAnnotation(e,t){let i=e.get(w.of("Border"));i instanceof X&&i.set(2,K.of(t))}};var r0=class extends Ie{constructor(e){super(e),this.pdflib=new n0(e)}getPdfIo(){return this.pdflib}async addTextMarkupAnnotationToSelection(e,t){return this.addAnnotationToSelection(async(i,r,o)=>await this.getPdfIo().addTextMarkupAnnotation(i,r,o,e,t))}async addLinkAnnotationToSelection(e){return this.addAnnotationToSelection(async(t,i,r)=>await this.getPdfIo().addLinkAnnotation(t,i,r,e))}async addAnnotationToSelection(e){let t=activeWindow.getSelection();if(!t)return null;let i=this.lib.copyLink.getPageAndTextRangeFromSelection(t);if(!i||!i.selection)return null;let{page:r,selection:{beginIndex:o,beginOffset:s,endIndex:a,endOffset:c}}=i,l=this.lib.getPDFViewerChildFromSelection(t);return l?{child:l,file:l.file,page:r,...await this.addAnnotationToTextRange(e,l,r,o,s,a,c)}:null}async addAnnotationToTextRange(e,t,i,r,o,s,a){if(t.file&&1<=i&&i<=t.pdfViewer.pagesCount){let c=t.getPage(i);if(c!=null&&c.textLayer&&c.div.dataset.loaded){let l=Ft(c.textLayer);if(l){let h=this.lib.highlight.geometry.computeMergedHighlightRects(l,r,o,s,a).map(({rect:p})=>p),u;try{u=await e(t.file,i,h)}catch(p){new g1.Notice(`${this.plugin.manifest.name}: An error occurred while attemping to add an annotation.`),console.error(p)}return{annotationID:u,rects:h}}}}}async deleteAnnotation(e,t,i){await this.getPdfIo().deleteAnnotation(e,t,i)}async getAnnotationContents(e,t,i){return await this.getPdfIo().getAnnotationContents(e,t,i)}async setAnnotationContents(e,t,i,r){return await this.getPdfIo().setAnnotationContents(e,t,i,r)}};var o0=class extends Ie{async getAnnotatedTextsInDocument(e){let t=new Map;for(let i=1;i<=e.numPages;i++){let r=await e.getPage(i),o=await this.getAnnotatedTextsInPage(r);t.set(i,o)}return t}async getAnnotatedTextsInPage(e){var o;let[{items:t},i]=await Promise.all([e.getTextContent({includeChars:!0}),e.getAnnotations()]),r=[];for(let s of i){if(!["Highlight","Underline","Squiggly","StrikeOut"].includes(s.subtype))continue;let c=ug(s.quadPoints);if(!c.length)continue;let l=c.map(u=>this.getTextByRect(t,u)),d=s.color?{r:s.color[0],g:s.color[1],b:s.color[2]}:null,h=(o=s.contentsObj)==null?void 0:o.str;r.push({id:s.id,textRanges:l,rgb:d,comment:h,left:c[0][0],top:c[0][3]})}return new Map(r.sort((s,a)=>{if(s.textRanges.length&&a.textRanges.length){let c=s.textRanges[0].from,l=a.textRanges[0].from;return c.index-l.index||c.offset-l.offset}return a.top-s.top||s.left-a.left}).map(s=>{let a=s.textRanges.map(c=>c.text).join(`
|
||
`);return a=this.lib.toSingleLine(a),[s.id,{text:a,rgb:s.rgb,comment:s.comment}]}))}getTextByRect(e,t){let[i,r,o,s]=t,a="",c={index:-1,offset:-1},l={index:-1,offset:-1};for(let d=0;d<e.length;d++){let h=e[d];if(h.chars&&h.chars.length)for(let u=0;u<h.chars.length;u++){let p=h.chars[u],f=(p.r[0]+p.r[2])/2,m=(p.r[1]+p.r[3])/2;i<=f&&f<=o&&r<=m&&m<=s&&(a+=p.u,c.index===-1&&c.offset===-1&&(c={index:d,offset:u}),l={index:d,offset:u+1})}}return{text:a,from:c,to:l}}};var s0=class extends Ie{constructor(t){super(t);this.plugin=t;this.geometry=new e0(t),this.viewer=new i0(t),this.writeFile=new r0(t),this.extract=new o0(t)}};var _e=require("obsidian");function BC(n){return["tab","split","window"].contains(n)}function LC(n){return["right","left","down","up"].contains(n)}function m1(n){return["right-sidebar","left-sidebar"].contains(n)}var a0=class extends Ie{constructor(...e){super(...e),this.hoverEditor=new nm(...e)}iteratePDFViews(e){this.app.workspace.iterateAllLeaves(t=>{let i=t.view;this.lib.isPDFView(i)&&e(i)})}iterateBacklinkViews(e){this.app.workspace.getLeavesOfType("backlink").forEach(t=>e(t.view))}iterateCanvasViews(e){this.app.workspace.iterateAllLeaves(t=>{let i=t.view;this.lib.isCanvasView(i)&&e(i)})}iteratePDFEmbeds(e){this.app.workspace.iterateAllLeaves(t=>{let i=t.view;i instanceof _e.MarkdownView?this.lib.getAllPDFEmbedsInMarkdownView(i).forEach(e):this.lib.isCanvasView(i)&&this.lib.getAllPDFEmbedsInCanvasView(i).forEach(e)})}iteratePDFViewerComponents(e){this.app.workspace.iterateAllLeaves(t=>{let i=t.view;this.lib.isPDFView(i)?e(i.viewer,i.file):i instanceof _e.MarkdownView?this.lib.getAllPDFEmbedsInMarkdownView(i).forEach(r=>e(r.viewer,r.file)):this.lib.isCanvasView(i)&&this.lib.getAllPDFEmbedsInCanvasView(i).forEach(r=>e(r.viewer,r.file))})}iteratePDFViewerChild(e){this.iteratePDFViewerComponents(t=>{t.then(i=>e(i))})}getActivePDFView(){var t;if(this.plugin.classes.PDFView)return this.app.workspace.getActiveViewOfType(this.plugin.classes.PDFView);let e=(t=this.app.workspace.activeLeaf)==null?void 0:t.view;return e&&this.lib.isPDFView(e)?e:null}getActiveCanvasView(){var t;let e=(t=this.app.workspace.activeLeaf)==null?void 0:t.view;return e&&this.lib.isCanvasView(e)?e:null}getExistingLeafForPDFFile(e){return this.getExistingLeafForFile(e)}getActiveGroupLeaves(){var t;let e=(t=this.app.workspace.activeLeaf)==null?void 0:t.group;return e?this.app.workspace.getGroupLeaves(e):null}async openMarkdownLinkFromPDF(e,t,i,r){var a;let o;i?o=this.app.workspace.getLeaf(i):m1(this.settings.paneTypeForFirstMDLeaf)&&this.settings.alwaysUseSidebar?o=this.getMarkdownLeafInSidebar(this.settings.paneTypeForFirstMDLeaf):o=this.getMarkdownLeafForLinkFromPDF(e,t);let s={};if(r){if("pos"in r){let{pos:c}=r;s.eState={line:c.start.line,startLoc:c.start,endLoc:c.end}}else{let{line:c}=r;s.eState={line:c}}s.eState.scroll=s.eState.line,s.eState.focus=!this.settings.dontActivateAfterOpenMD}o.parentSplit instanceof _e.WorkspaceTabs&&o.parentSplit===((a=this.app.workspace.activeLeaf)==null?void 0:a.parentSplit)||(s.active=!this.plugin.settings.dontActivateAfterOpenMD),await o.openLinkText(e,t,s),await this.revealLeaf(o)}getMarkdownLeafInSidebar(e){var t;return this.settings.singleMDLeafInSidebar?(t=this.lib.workspace.getExistingMarkdownLeafInSidebar(e))!=null?t:this.lib.workspace.getNewLeafInSidebar(e):this.lib.workspace.getNewLeafInSidebar(e)}getMarkdownLeafForLinkFromPDF(e,t){var a;let{path:i}=(0,_e.parseLinktext)(e),r=this.app.metadataCache.getFirstLinkpathDest(i,t),o,s;return this.app.workspace.iterateAllLeaves(c=>{if(o)return;let l=!0;if(c.view.getViewType()==="markdown"){let d=c.getRoot();for(let h of this.settings.ignoreExistingMarkdownTabIn)if(d===this.app.workspace[h])return;c.parentSplit instanceof _e.WorkspaceTabs&&c.parentSplit.children.some(u=>{if(u instanceof _e.WorkspaceLeaf&&u.view.getViewType()==="pdf")return this.getFilePathFromView(u.view)===t})&&(l=!1),l&&(s=c.parentSplit),r&&this.getFilePathFromView(c.view)===r.path&&(o=c)}}),o||(m1(this.settings.paneTypeForFirstMDLeaf)&&this.settings.singleMDLeafInSidebar&&s&&this.isInSidebar(s)?o=(a=this.getExistingMarkdownLeafInSidebar(this.settings.paneTypeForFirstMDLeaf))!=null?a:this.lib.workspace.getNewLeafInSidebar(this.settings.paneTypeForFirstMDLeaf):o=s?this.app.workspace.createLeafInParent(s,-1):this.getLeaf(this.plugin.settings.paneTypeForFirstMDLeaf)),o}isInSidebar(e){let t=e.getRoot();return t===this.app.workspace.rightSplit||t===this.app.workspace.leftSplit}getLeaf(e){return e===""&&(e=!1),typeof e=="boolean"||BC(e)?this.app.workspace.getLeaf(e):LC(e)?this.getLeafBySplit(e):this.getLeafInSidebar(e)}getLeafBySplit(e){let t=this.app.workspace.getMostRecentLeaf();if(t){if(["right","left"].contains(e))return this.app.workspace.createLeafBySplit(t,"vertical",e==="left");if(["down","up"].contains(e))return this.app.workspace.createLeafBySplit(t,"horizontal",e==="up")}return this.app.workspace.createLeafInParent(this.app.workspace.rootSplit,0)}getLeafInSidebar(e){return this.getNewLeafInSidebar(e)}getExistingMarkdownLeafInSidebar(e){let t,i=e==="right-sidebar"?this.app.workspace.rightSplit:this.app.workspace.leftSplit;return this.app.workspace.iterateAllLeaves(r=>{t||r.getRoot()!==i||r.view.getViewType()==="markdown"&&(t=r)}),t!=null?t:null}getNewLeafInSidebar(e){let t=e==="right-sidebar"?this.app.workspace.getRightLeaf(!1):this.app.workspace.getLeftLeaf(!1);if(!t)throw new Error("No sidebar leaf found");return t}async revealLeaf(e){if((0,_e.requireApiVersion)("1.5.11")){await this.app.workspace.revealLeaf(e);return}if(!_e.Platform.isDesktopApp){this.app.workspace.revealLeaf(e);return}let t=e.getRoot();t instanceof _e.WorkspaceSidedock&&t.collapsed&&t.toggle();let i=e.parent;i instanceof _e.WorkspaceTabs&&i.selectTab(e),e.getContainer().focus()}openPDFLinkTextInLeaf(e,t,i,r){let{subpath:o}=(0,_e.parseLinktext)(t);return this.plugin.patchStatus.pdfInternals||(this.plugin.subpathWhenPatched=o),e.openLinkText(t,i,r).then(async()=>{await this.revealLeaf(e);let s=e.view;this.lib.isPDFView(s)&&s.viewer.then(a=>{let c=this.plugin.settings.highlightDuration;this.lib.highlight.viewer.highlightSubpath(a,c)})})}openPDFLinkTextInExistingLeafForTargetPDF(e,t,i,r){var a,c;if(!r){let{path:l}=(0,_e.parseLinktext)(e);r=(a=this.app.metadataCache.getFirstLinkpathDest(l,t))!=null?a:void 0}if(!r)return{exists:!1,promise:Promise.resolve()};let o=this.getExistingLeafForPDFFile(r);return o?(o.parentSplit instanceof _e.WorkspaceTabs&&o.parentSplit===((c=this.app.workspace.activeLeaf)==null?void 0:c.parentSplit)||(i=i!=null?i:{},i.active=!this.settings.dontActivateAfterOpenPDF),o.isVisible()&&this.settings.highlightExistingTab&&(o.containerEl.addClass("pdf-plus-link-opened","is-highlighted"),setTimeout(()=>o.containerEl.removeClass("pdf-plus-link-opened","is-highlighted"),this.settings.existingTabHighlightDuration*1e3)),{exists:!0,promise:this.openPDFLinkTextInLeaf(o,e,t,i)}):{exists:!1,promise:Promise.resolve()}}getExistingLeafForFile(e){let t=this.app.viewRegistry.getTypeByExtension(e.extension);if(!t)return null;let i=null;return this.app.workspace.iterateAllLeaves(r=>{i||r.view.getViewType()===t&&this.getFilePathFromView(r.view)===e.path&&(i=r)}),i}getExistingLeafForMarkdownFile(e){return this.getExistingLeafForFile(e)}isMarkdownFileOpened(e){return!!this.getExistingLeafForMarkdownFile(e)}registerHideSidebar(e){let t=e.getRoot();if(t===this.app.workspace.leftSplit||t===this.app.workspace.rightSplit){let i=t,r=this.app.workspace.on("active-leaf-change",o=>{o&&o.getRoot()!==i&&(i.collapse(),this.app.workspace.offref(r))})}}getFilePathFromView(e){let t=e.getState().file;return typeof t=="string"?t:null}async ensureViewLoaded(e){(0,_e.requireApiVersion)("1.7.2")&&await e.loadIfDeferred()}},nm=class extends Ie{get hoverEditorPlugin(){var e;return(e=this.app.plugins.plugins["obsidian-hover-editor"])!=null?e:null}get waitTime(){var e;return(e=this.hoverEditorPlugin)==null?void 0:e.settings.triggerDelay}isHoverEditorLeaf(e){return e.containerEl.closest(".popover.hover-popover.hover-editor")!==null}async createNewHoverEditorLeaf(e,t,i,r,o){return this.hoverEditorPlugin?new Promise(s=>{var c;let a=this.app.workspace.on("active-leaf-change",l=>{l&&this.isHoverEditorLeaf(l)&&(this.app.workspace.offref(a),s(l))});this.app.workspace.trigger("link-hover",e,t,i,r,o),window.setTimeout(()=>{this.app.workspace.offref(a),s(null)},((c=this.waitTime)!=null?c:300)+300)}):null}iterateHoverEditorLeaves(e){this.app.workspace.iterateAllLeaves(t=>{this.isHoverEditorLeaf(t)&&e(t)})}getHoverEditorForLeaf(e){var t,i;return(i=(t=this.hoverEditorPlugin)==null?void 0:t.activePopovers.find(r=>r.hoverEl.contains(e.containerEl)))!=null?i:null}postProcessHoverEditorLeaf(e){if(this.isHoverEditorLeaf(e)){let t=this.getHoverEditorForLeaf(e);if(t&&(t.hoverEl.hasClass("is-minimized")&&t.toggleMinimized(),this.settings.closeHoverEditorWhenLostFocus)){let i=this.app.workspace.on("active-leaf-change",r=>{r!==e&&(t.hide(),this.app.workspace.offref(i))})}}}};var ct=require("obsidian");var ad=require("obsidian");var l0=class extends Ke{onOpen(){var e;super.onOpen(),this.containerEl.addClass("pdf-plus-restore-default-modal"),this.titleEl.setText(`${this.plugin.manifest.name}: Restore default settings`),this.contentEl.createEl("p",{text:`This operation will overwrite your PDF++ config file (${((e=this.plugin.manifest.dir)!=null?e:this.app.vault.configDir+"/plugins/"+this.plugin.manifest.id)+"/data.json"}). You may want to back up the file before proceeding.`}),this.contentEl.createDiv("modal-button-container",t=>{new ad.ButtonComponent(t).setButtonText("I understand, restore default settings").setWarning().onClick(async()=>{await this.plugin.restoreDefaultSettings(),this.close(),new ad.Notice(`${this.plugin.manifest.name}: Default setting restored. Note that some options require a restart to take effect.`,6e3)}),new ad.ButtonComponent(t).setButtonText("Cancel").onClick(()=>{this.close()})}),setTimeout(()=>{let t=this.containerEl.doc.activeElement;t&&t.instanceOf(HTMLButtonElement)&&this.containerEl.contains(t)&&t.blur()})}};var Yr=require("obsidian");var OC=(n,e,t)=>{let i=n.key.path,r=Array.isArray(n.value)?n.value:[n.value];r=r.filter(l=>l&&l.hasOwnProperty("path")&&l.hasOwnProperty("subpath"));let o=e.metadataCache.getCache(i);if(!o)return!1;let s=o.frontmatterLinks,a=s?s.filter(l=>l.key===t||l.key.startsWith(t+".")).length:0;return r.length-a>0},rm=(n,e)=>{let t=n.app,i=async()=>{let r=await MC(n);e(r)};t.workspace.onLayoutReady(()=>{let r=t.plugins.plugins.dataview;if(r)if(r.index.initialized)i();else{let o=t.metadataCache.on("dataview:index-ready",()=>{i(),t.metadataCache.offref(o)});n.registerEvent(o)}})},MC=async n=>{let e=n.app,t=e.plugins.plugins.dataview;if(!t)return[];let i=t.api,r=n.settings.proxyMDProperty;try{let o=await i.query(`LIST ${r} WHERE ${r}`);return o.successful?o.value.values.filter(a=>OC(a,e,r)).map(a=>{let c=a.key.path;return e.vault.getFileByPath(c)}).filter(a=>a!==null):[]}catch(o){return console.error(n.manifest.name+": error while checking dataview inline fields"),console.error(o),[]}},Ia=class n extends Ke{constructor(e,t){super(e),this.filesWithInlineFields=t}static async open(e,t=!1){rm(e,i=>{t&&i.length===0||new n(e,i).open()})}onOpen(){super.onOpen(),this.containerEl.setCssProps({"--layer-modal":"calc(var(--layer-popover) - 1)"});let e=this.plugin.settings.proxyMDProperty;this.setTitle(`${this.plugin.manifest.name}: About the "${e}" Dataview inline fields`),this.renderContent(),this.renderButtons()}renderContent(){let e=this.plugin.settings.proxyMDProperty;this.contentEl.createEl("p",{text:createFragment(i=>i.append("For the ",createEl("a",{text:'"Property to associate a markdown file to a PDF file"'},r=>{r.onclick=()=>{this.plugin.openSettingTab().scrollTo("proxyMDProperty")},(0,Yr.setTooltip)(r,"Open in PDF++ settings",{placement:"top"})})," setting, ",createEl("a",{text:"Dataview",href:"obsidian://show-plugin?id=dataview"}),"'s inline field syntax such as ",createEl("code",{text:`${e}:: [[file.pdf]]`})," is supported for the time being, but ",createSpan({text:"it is deprecated and will likely not work in the future"},r=>r.setCssStyles({color:"var(--text-warning)"})),"."))}),this.contentEl.createEl("hr",{},i=>i.setCssStyles({margin:"1rem 0"}));let t=this.filesWithInlineFields;if(t.length===0){this.contentEl.createEl("p",{text:`No "${e}" inline fields detected. You're good to go!`});return}this.contentEl.createEl("p",{text:createFragment(i=>i.append(t.length>=2?"The following files seem to have ":"The following file seems to have ",`"${e}" inline fields.`,createEl("br"),"Please consider moving these inline fields to the ",createEl("a",{text:"properties (YAML frontmatter)",href:"https://help.obsidian.md/properties",cls:"external-link"},r=>{(0,Yr.setTooltip)(r,"https://help.obsidian.md/properties",{placement:"top"})})," instead."))}),this.contentEl.createDiv({},i=>{i.setCssStyles({maxHeight:"200px",overflow:"auto",border:"1px solid var(--background-modifier-border)",borderRadius:"5px",backgroundColor:"var(--background-secondary)",margin:"var(--size-2-2)"}),i.createEl("ul",{},r=>{t.forEach(o=>{r.createEl("li",{},s=>{s.createEl("a",{text:this.app.metadataCache.fileToLinktext(o,""),cls:"internal-link",attr:{href:o.path,"data-href":o.path}})})}),Jo(this.app,r,"")})}),t.length>0?this.contentEl.createEl("p",{text:`To display this modal again, run the "${this.plugin.lib.commands.getCommand("open-dataview-inline-fields-modal").name}" command.`}):this.plugin.requiresDataviewInlineFieldsMigration=!1}renderButtons(){let e=this.filesWithInlineFields;this.contentEl.createDiv("modal-button-container",t=>{e.length>0&&new Yr.ButtonComponent(t).setButtonText(e.length>=2?"Copy links as markdown":"Copy link as markdown").setCta().onClick(async()=>{let i=e.length>=2?e.map(r=>"- "+this.app.fileManager.generateMarkdownLink(r,"")).join(`
|
||
`):this.app.fileManager.generateMarkdownLink(e[0],"");await navigator.clipboard.writeText(i),new Yr.Notice(`${this.plugin.manifest.name}: Copied!`)}),new Yr.ButtonComponent(t).setButtonText("Close").onClick(()=>{this.close()})})}};var c0=class extends Ie{constructor(...e){super(...e);let t=[{id:"copy-link-to-selection",name:"Copy link to selection or annotation",checkCallback:i=>this.copyLink(i,!1)},{id:"rectangular-selection",name:"Start rectangular selection",checkCallback:i=>this.copyEmbedLinkToRectangularSelection(i,!1)},{id:"context-menu",name:"Show context menu at selection",checkCallback:i=>this.showContextMenu(i)},{id:"extract-annotation-and-copy-links",name:"Extract & copy annotations in this PDF",checkCallback:i=>this.extractHighlightedText(i)},{id:"copy-link-to-page-view",name:"Copy link to current page view",checkCallback:i=>this.copyLinkToPageView(i)},{id:"outline",name:"Show outline",checkCallback:i=>this.showOutline(i)},{id:"thumbnail",name:"Show thumbnail",checkCallback:i=>this.showThumbnail(i)},{id:"close-sidebar",name:"Close PDF sidebar",checkCallback:i=>this.closeSidebar(i)},{id:"toggle-sidebar",name:"Toggle PDF sidebar",checkCallback:i=>this.toggleSidebar(i)},{id:"fit-width",name:"Fit width",checkCallback:i=>this.setScaleValue(i,"page-width")},{id:"fit-height",name:"Fit height",checkCallback:i=>this.setScaleValue(i,"page-height")},{id:"zoom-in",name:"Zoom in",checkCallback:i=>this.zoom(i,!0)},{id:"zoom-out",name:"Zoom out",checkCallback:i=>this.zoom(i,!1)},{id:"adapt-to-theme",name:"Adapt to theme",checkCallback:i=>this.toggleAdaptToTheme(i,!0)},{id:"not-adapt-to-theme",name:"Don't adapt to theme",checkCallback:i=>this.toggleAdaptToTheme(i,!1)},{id:"toggle-adapt-to-theme",name:'Toggle "adapt to theme"',checkCallback:i=>this.toggleAdaptToTheme(i)},{id:"go-to-page",name:"Go to page",checkCallback:i=>this.focusAndSelectPageNumberEl(i)},{id:"copy-format-menu",name:"Show copy format menu",checkCallback:i=>this.showCopyFormatMenu(i)},{id:"display-text-format-menu",name:"Show display text format menu",checkCallback:i=>this.showDisplayTextFormatMenu(i)},{id:"enable-pdf-edit",name:"Enable PDF edit",checkCallback:i=>this.setWriteFile(i,!0)},{id:"disable-pdf-edit",name:"Disable PDF edit",checkCallback:i=>this.setWriteFile(i,!1)},{id:"toggle-auto-focus",name:"Toggle auto-focus",callback:()=>this.toggleAutoFocus()},{id:"toggle-auto-paste",name:"Toggle auto-paste",callback:()=>this.toggleAutoPaste()},{id:"toggle-auto-copy",name:"Toggle auto-copy",callback:()=>this.plugin.autoCopyMode.toggle()},{id:"add-page",name:"Add new page at the end",checkCallback:i=>this.addPage(i)},{id:"insert-page-before",name:"Insert page before this page",checkCallback:i=>this.insertPage(i,!0)},{id:"insert-page-after",name:"Insert page after this page",checkCallback:i=>this.insertPage(i,!1)},{id:"delete-page",name:"Delete this page",checkCallback:i=>this.deletePage(i)},{id:"extract-this-page",name:"Extract this page to a new file",checkCallback:i=>this.extractThisPage(i)},{id:"divide",name:"Divide this PDF into two files at this page",checkCallback:i=>this.dividePDF(i)},{id:"edit-page-labels",name:"Edit page labels",checkCallback:i=>this.editPageLabels(i)},{id:"copy-outline-as-list",name:"Copy PDF outline as markdown list",checkCallback:i=>this.copyOutline(i,"list")},{id:"copy-outline-as-headings",name:"Copy PDF outline as markdown headings",checkCallback:i=>this.copyOutline(i,"heading")},{id:"add-outline-item",name:"Add to outline (bookmark)",checkCallback:i=>this.addOutlineItem(i)},{id:"create-new-note",name:"Create new note for auto-focus or auto-paste",callback:()=>this.createNewNote()},{id:"copy-debug-info",name:"Copy debug info",callback:()=>this.copyDebugInfo()},{id:"load-debug-info",name:"Load debug info",checkCallback:i=>this.loadDebugInfo(i)},{id:"create-pdf",name:"Create new PDF",callback:()=>this.createPDF()},{id:"import",name:"Import this PDF into vault",checkCallback:i=>this.importExternalFileIntoVault(i)},{id:"open-external",name:"Open this PDF in the original location",checkCallback:i=>this.openExternalSource(i)},{id:"create-dummy",name:"Create dummy file for external PDF",callback:()=>this.createDummyForExternalPDF()},{id:"restore-default",name:"Restore default settings",callback:()=>new l0(this.plugin).open()},{id:"open-dataview-inline-fields-modal",name:"Check Dataview inline fields",checkCallback:i=>this.plugin.requiresDataviewInlineFieldsMigration?(i||Ia.open(this.plugin),!0):!1}];this.commands={};for(let i of t)this.commands[i.id]=i}registerCommands(){Object.values(this.commands).forEach(e=>{this.plugin.addCommand(this.plugin.obsidianHasFocusBug?this.restorePDFLeafFocus(e):e)})}restorePDFLeafFocus(e){let t=e.checkCallback;if(!t)return e;let i=null;return{...e,checkCallback:r=>{var o,s;return r?(i=(s=(o=this.lib.workspace.getActivePDFView())==null?void 0:o.leaf)!=null?s:null,t(r)):(i&&i!==this.app.workspace.activeLeaf&&(this.app.workspace.setActiveLeaf(i,{focus:!0}),i=null),t(r))}}}getCommand(e){return e.startsWith(this.plugin.manifest.id+":")&&(e=e.slice(this.plugin.manifest.id.length+1)),this.commands[e]}listCommands(){return Object.values(this.commands)}listCommandNames(){return Object.values(this.commands).map(e=>this.stripCommandNamePrefix(e.name))}stripCommandNamePrefix(e){return e.startsWith(this.plugin.manifest.name+": ")?e.slice(this.plugin.manifest.name.length+2):e}copyLink(e,t=!1){return!this.writeHighlightAnnotationToSelectionIntoFileAndCopyLink(e,t)&&!this.copyLinkToAnnotation(e,t)?this.copyLinkToSelection(e,t):!0}createCanvasCard(e){return this.createCanvasCardFromAnnotation(e)?!0:this.createCanvasCardFromSelection(e)}copyLinkToSelection(e,t=!1){let i=this.lib.copyLink.getSelectionLinkInfo();if(!i)return!1;let{template:r,colorName:o}=i;return this.lib.copyLink.copyLinkToSelection(e,{copyFormat:r},o,t)}copyLinkToAnnotation(e,t=!1){let i=this.lib.copyLink.getAnnotationLinkInfo();if(!i)return!1;let{child:r,copyButtonEl:o,template:s,page:a,id:c}=i,l=this.lib.copyLink.copyLinkToAnnotation(r,e,{copyFormat:s},a,c,t);return!e&&l&&(0,ct.setIcon)(o,"lucide-check"),l}writeHighlightAnnotationToSelectionIntoFileAndCopyLink(e,t=!1){var s;let i=this.lib.getColorPaletteAssociatedWithSelection();if(!i||!i.writeFile)return!1;let r=this.settings.copyCommands[i.actionIndex].template,o=(s=i.selectedColorName)!=null?s:void 0;return this.lib.copyLink.writeHighlightAnnotationToSelectionIntoFileAndCopyLink(e,{copyFormat:r},o,t)}copyEmbedLinkToRectangularSelection(e,t){let i=this.lib.getColorPalette();return!i||!i.cropButtonEl?!1:(e||i.startRectangularSelection(t),!0)}createCanvasCardFromSelection(e){var s;let t=(s=this.lib.workspace.getActiveCanvasView())==null?void 0:s.canvas;if(!t)return!1;let i=this.lib.copyLink.getSelectionLinkInfo();if(!i)return!1;let{template:r,colorName:o}=i;return this.lib.copyLink.makeCanvasTextNodeFromSelection(e,t,r,o)}createCanvasCardFromAnnotation(e){var l;let t=(l=this.lib.workspace.getActiveCanvasView())==null?void 0:l.canvas;if(!t)return!1;let i=this.lib.copyLink.getAnnotationLinkInfo();if(!i)return!1;let{child:r,template:o,page:s,id:a}=i;return this.lib.copyLink.makeCanvasTextNodeFromAnnotation(e,t,r,o,s,a)}copyLinkToPageView(e){var r,o,s,a,c;let t=this.lib.getPDFView(!0);if(!t||!t.file)return!1;let i=t.getState();if(typeof i.left!="number"||typeof i.top!="number")return!1;if(!e){let l=`#page=${i.page}`,d;((o=(r=t.viewer.child)==null?void 0:r.pdfViewer.pdfViewer)==null?void 0:o.currentScaleValue)==="page-width"?(l+=`&offset=,${i.top},`,d=[i.page-1,"FitBH",i.top]):(l+=`&offset=${i.left},${i.top},${(s=i.zoom)!=null?s:0}`,d=[i.page-1,"XYZ",i.left,i.top,(a=i.zoom)!=null?a:0]);let u=(c=t.viewer.child)==null?void 0:c.getPageLinkAlias(i.page),p=this.lib.generateMarkdownLink(t.file,"",l,u).slice(1);navigator.clipboard.writeText(p),new ct.Notice(`${this.plugin.manifest.name}: Link copied to clipboard`),this.plugin.lastCopiedDestInfo={file:t.file,destArray:d}}return!0}showOutline(e){var r;let t=this.lib.getObsidianViewer(!0);if(!t)return!1;let i=(r=t.dom)==null?void 0:r.containerEl;if(!t.isEmbed||i&&i.contains(i.doc.activeElement)){let o=t==null?void 0:t.pdfSidebar;if(o)return o.haveOutline?o.isOpen&&o.active===2?this.settings.closeSidebarWithShowCommandIfExist?(e||o.close(),!0):!1:(e||o.switchView(2,!0),!0):!1}return this.settings.executeBuiltinCommandForOutline&&this.app.internalPlugins.plugins.outline.enabled?(e||this.app.commands.executeCommandById("outline:open"),!0):!1}showThumbnail(e){var i;let t=(i=this.lib.getObsidianViewer(!0))==null?void 0:i.pdfSidebar;return t?t.isOpen&&t.active===1?this.settings.closeSidebarWithShowCommandIfExist?(e||t.close(),!0):!1:(e||t.switchView(1,!0),!0):!1}closeSidebar(e){var i;let t=(i=this.lib.getObsidianViewer(!0))==null?void 0:i.pdfSidebar;return!t||!t.isOpen?!1:(e||t.close(),!0)}toggleSidebar(e){var i;let t=(i=this.lib.getObsidianViewer(!0))==null?void 0:i.pdfSidebar;return t?(e||(t.isOpen?t.close():t.open()),!0):!1}setScaleValue(e,t){let i=this.lib.getPDFViewer(!0);return i?(e||(i.currentScaleValue=t),!0):!1}zoom(e,t){var o;let i=this.lib.getObsidianViewer(!0);if(!i)return!1;let r=(o=i.dom)==null?void 0:o.containerEl;if((!i.isEmbed||r&&r.contains(r.doc.activeElement))&&i)return e||(t?i.zoomIn():i.zoomOut()),!0;if(this.settings.executeFontSizeAdjusterCommand){let s=t?"font-size:increment-font-size":"font-size:decrement-font-size";if(this.app.commands.findCommand(s))return e||this.app.commands.executeCommandById(s),!0}if(this.settings.executeBuiltinCommandForZoom){let s=t?"window:zoom-in":"window:zoom-out";return this.app.commands.findCommand(s)?(e||this.app.commands.executeCommandById(s),!0):!1}return!1}toggleAdaptToTheme(e,t){let i=this.lib.getPDFViewerChild(!0);if(!i)return!1;let r=!!this.app.loadLocalStorage("pdfjs-is-themed");return typeof t=="boolean"&&(t&&r||!t&&!r)?!1:(t=t!=null?t:!r,e||(this.app.saveLocalStorage("pdfjs-is-themed",t?"true":null),i.onCSSChange()),!0)}focusAndSelectPageNumberEl(e){let t=this.lib.getToolbar(!0);return t?(e||(t.pageInputEl.focus(),t.pageInputEl.select()),!0):!1}showCopyFormatMenu(e){let t=this.lib.getColorPalette();return!t||!t.actionMenuEl?!1:(e||t.actionMenuEl.click(),!0)}showDisplayTextFormatMenu(e){let t=this.lib.getColorPalette();return!t||!t.displayTextFormatMenuEl?!1:(e||t.displayTextFormatMenuEl.click(),!0)}setWriteFile(e,t){let i=this.lib.getColorPalette();return!i||!this.lib.isEditable(i.child)||i.writeFile===t?!1:(e||i.setWriteFile(t),!0)}toggleAutoFocus(){this.plugin.toggleAutoFocus()}toggleAutoPaste(){this.plugin.toggleAutoPaste()}addPage(e){let t=this.lib.getPDFViewerChild(!0);if(!t||!this.lib.isEditable(t))return!1;let i=t.file;return i?(e||this.lib.composer.addPage(i),!0):!1}insertPage(e,t){let i=this.lib.workspace.getActivePDFView();if(!i||!i.file)return!1;let r=i.file,o=i.viewer.child;if(!o||!this.lib.isEditable(o))return!1;let s=i.getState().page,a=s+(t?0:1);return e||this._insertPage(r,a,s),!0}_insertPage(e,t,i){new Xn(this.plugin,this.settings.askPageLabelUpdateWhenInsertPage,this.settings.pageLabelUpdateWhenInsertPage,!1,!1).ask().then(r=>{this.lib.composer.insertPage(e,t,i,r)})}deletePage(e){let t=this.lib.workspace.getActivePDFView();if(!t||!t.file)return!1;let i=t.file,r=t.viewer.child;if(!r||!this.lib.isEditable(r))return!1;let o=t.getState().page;return e||this._deletePage(i,o),!0}_deletePage(e,t){new Fu(e,t,this.plugin).openIfNeccessary().then(()=>{new Xn(this.plugin,this.settings.askPageLabelUpdateWhenDeletePage,this.settings.pageLabelUpdateWhenDeletePage,!1,!1).ask().then(i=>{this.lib.composer.removePage(e,t,i)})})}extractThisPage(e){let t=this.lib.workspace.getActivePDFView();if(!t)return!1;let i=t.file;if(!i)return!1;let r=t.viewer.child;if(!r||!this.lib.isEditable(r))return!1;if(!e){let o=t.getState().page;this._extractPage(i,o)}return!0}_extractPage(e,t){let i=this.lib.getAvailablePathForCopy(e);new Xn(this.plugin,this.settings.askPageLabelUpdateWhenExtractPage,this.settings.pageLabelUpdateWhenExtractPage,this.settings.askExtractPageInPlace,this.settings.extractPageInPlace).ask().then((r,o)=>{this.lib.composer.extractPages(e,[t],i,!1,r,o).then(async s=>{if(!s){new ct.Notice(`${this.plugin.manifest.name}: Failed to extract page.`);return}if(this.settings.openAfterExtractPages){let a=this.lib.workspace.getLeaf(this.settings.howToOpenExtractedPDF);await a.openFile(s),await this.lib.workspace.revealLeaf(a)}})})}dividePDF(e){let t=this.lib.workspace.getActivePDFView();if(!t)return!1;let i=t.file;if(!i)return!1;let r=t.viewer.child;if(!r||!this.lib.isEditable(r))return!1;if(!e){let o=t.getState().page;this._dividePDF(i,o)}return!0}_dividePDF(e,t){let i=this.lib.getAvailablePathForCopy(e);new Xn(this.plugin,this.settings.askPageLabelUpdateWhenExtractPage,this.settings.pageLabelUpdateWhenExtractPage,this.settings.askExtractPageInPlace,this.settings.extractPageInPlace).ask().then((r,o)=>{this.lib.composer.extractPages(e,{from:t},i,!1,r,o).then(async s=>{if(!s){new ct.Notice(`${this.plugin.manifest.name}: Failed to divide PDF.`);return}if(this.settings.openAfterExtractPages){let a=this.lib.workspace.getLeaf(this.settings.howToOpenExtractedPDF);await a.openFile(s),await this.lib.workspace.revealLeaf(a)}})})}createPDF(){var s,a,c;let e=this.app.workspace.getActiveFile(),t=this.settings.newPDFLocation,i=t==="root"?"/":t=="current"?(a=(s=e==null?void 0:e.parent)==null?void 0:s.path)!=null?a:"":(0,ct.normalizePath)(this.settings.newPDFFolderPath),r=(c=this.app.vault.getAbstractFileByPath(i))!=null?c:this.app.vault.getRoot(),o=this.app.vault.getAvailablePath((0,ct.normalizePath)(r.path+"/Untitled"),"pdf");new Du(this.plugin).askOptions().then(async l=>{let d=await this.app.vault.createBinary(o,await l.save());await this.app.workspace.getLeaf("tab").openFile(d)})}editPageLabels(e){let t=this.lib.workspace.getActivePDFView();if(!t||!t.viewer.child||!this.lib.isEditable(t.viewer.child))return!1;let i=t.file;return i?(e||new Su(this.plugin,i).open(),!0):!1}copyOutline(e,t){let i=this.lib.getPDFViewerChild(!0),r=i==null?void 0:i.file;if(!i||!r||!i.pdfViewer.pdfSidebar.haveOutline)return!1;if(!e){let s=t==="list"?this.settings.copyOutlineAsListFormat:this.settings.copyOutlineAsHeadingsFormat,a=t==="list"?this.settings.copyOutlineAsListDisplayTextFormat:this.settings.copyOutlineAsHeadingsDisplayTextFormat,c=this.settings.copyOutlineAsHeadingsMinLevel;(async()=>{let l=await Ge.fromFile(r,this.plugin),d="",h=this.app.vault.getConfig("useTab"),u=this.app.vault.getConfig("tabSize"),p=h?" ":" ".repeat(u);await l.iterAsync({enter:async f=>{var m;if(!f.isRoot()){let x=null,g=f.getExplicitDestination();g&&(x=await this.lib.destArrayToSubpath(g));let b=x?(m=_o(x))==null?void 0:m.page:void 0,v=x&&b!==void 0?this.lib.copyLink.getTextToCopy(i,s,a,r,b,x,f.title,"",""):f.title;t==="list"?d+=`${p.repeat(f.depth-1)}- ${v}
|
||
`:t==="heading"&&(d+="#".repeat(f.depth+c-1)+` ${v}
|
||
`)}}}),navigator.clipboard.writeText(d),new ct.Notice(`${this.plugin.manifest.name}: Outline copied to clipboard.`)})()}return!0}addOutlineItem(e){let t=this.lib.workspace.getActivePDFView(),i=t==null?void 0:t.file,r=t==null?void 0:t.viewer.child;if(!t||!i||!r||!this.lib.isEditable(r))return!1;let o=t.getState(),s=this.lib.viewStateToDestArray(o,!0);return s?(e||new qr(this.plugin,"Add to outline").ask().then(async({title:a})=>{let c=await Ge.fromFile(i,this.plugin),l=c.doc;c.ensureRoot().createChild(a,s).updateCountForAllAncestors(),c.ensureRoot().sortChildren(),await this.app.vault.modifyBinary(i,await l.save())}),!0):!1}async createNewNote(){var d;let e=this.app.workspace.getActiveFile(),t=(d=e==null?void 0:e.path)!=null?d:"",i=this.app.fileManager.getNewFileParent(t),r="",o="";if(e&&e.extension==="pdf"){let h=new od(this.plugin,{file:e,folder:e.parent,app:this.app}),u=this.settings.newFileNameFormat;u&&(r=h.evalTemplate(u));let p=this.settings.newFileTemplatePath;if(p){let f=this.app.vault.getAbstractFileByPath(p);f instanceof ct.TFile&&(o=await this.app.vault.read(f),o=h.evalTemplate(o))}}let s=await this.app.fileManager.createNewMarkdownFile(i,r,o||void 0),a=async()=>{let{leaf:h,isExistingLeaf:u}=await this.lib.copyLink.prepareMarkdownLeafForPaste(s);if(h){await this.lib.workspace.revealLeaf(h),this.app.workspace.setActiveLeaf(h);let p=h.view;if(p instanceof ct.MarkdownView){let f=p.editor;f.focus(),u||f.exec("goEnd")}}};if(this.settings.howToOpenAutoFocusTargetIfNotOpened!=="hover-editor"){await a();return}let l=this.app.metadataCache.on("resolve",async h=>{h===s&&(this.app.metadataCache.offref(l),setTimeout(()=>a(),100))})}extractHighlightedText(e){let t=this.lib.getPDFViewerChild();if(!t)return!1;let i=t.file;if(!i)return!1;if(!e){let r=this.lib.getColorPaletteFromChild(t),o=r?this.settings.copyCommands[r.actionIndex].template:this.settings.copyCommands[this.settings.defaultColorPaletteActionIndex].template,s="";(async()=>{var l;let a=(l=this.lib.getPDFDocument(!0))!=null?l:await this.lib.loadPDFDocument(i);(await this.lib.highlight.extract.getAnnotatedTextsInDocument(a)).forEach((d,h)=>{d.forEach(({text:u,rgb:p,comment:f},m)=>{s&&(s=s.trimEnd()+`
|
||
|
||
`);let x=p?`${p.r},${p.g},${p.b}`:"";s+=this.lib.copyLink.getTextToCopy(t,o,void 0,i,h,`#page=${h}&annotation=${m}`,u,x,void 0,f)})}),s?(await navigator.clipboard.writeText(s),new ct.Notice(`${this.plugin.manifest.name}: Highlighted text copied to clipboard.`)):new ct.Notice(`${this.plugin.manifest.name}: No highlighted text found.`)})()}return!0}async copyDebugInfo(){let e=await wg(this.app),t=Object.assign({},this.settings,{author:"*".repeat(this.settings.author.length)}),i=Fg(this.app),r=this.plugin.domManager.styleEl.textContent,o=`#### Obsidian debug info
|
||
|
||
`;for(let[s,a]of Object.entries(e)){if(Array.isArray(a)){o+=`- ${s}: ${a.length}
|
||
`,a.forEach(c=>{o+=` - ${c}
|
||
`});continue}o+=`- ${s}: ${a}
|
||
`}o+=`
|
||
#### PDF++ debug info
|
||
|
||
`,o+="```\n"+JSON.stringify({settings:t,styleSettings:i,styleSheet:r})+"\n```\n",await navigator.clipboard.writeText(o),new ct.Notice(`${this.plugin.manifest.name}: Debug info copied to clipboard.`)}loadDebugInfo(e){return this.plugin.isDebugMode?(e||(async()=>{try{let{settings:t,styleSettings:i,styleSheet:r}=JSON.parse(await navigator.clipboard.readText());new ct.Notice(`${this.plugin.manifest.name}: Debug info loaded from clipboard.`),console.debug("Loaded debug info:"),console.debug("- settings:",t),console.debug("- styleSettings:",i),console.debug("- styleSheet:",r),window.pdfPlusDebugInfo={settings:t,styleSettings:i,styleSheet:r},this.plugin.settings=t;let o=this.app.setting.pluginTabs.find(s=>s.id===this.plugin.manifest.id);o&&await o.hide()}catch(t){console.error(t),new ct.Notice(`${this.plugin.manifest.name}: Debug info not found in clipboard.`)}})(),!0):!1}importExternalFileIntoVault(e){let t=this.lib.getPDFViewerChild(!0);return!t||!t.isFileExternal||!t.palette?!1:(e||t.palette.importFile(),!0)}openExternalSource(e){let t=this.lib.getPDFViewerChild(!0),i=t==null?void 0:t.file;return!t||!t.isFileExternal||!i?!1:(e||(async()=>{let r=(await this.app.vault.read(i)).trim();window.open(r,"_blank")})(),!0)}createDummyForExternalPDF(){new Da(this.plugin).open()}showContextMenu(e){let t=this.lib.getPDFViewerChild(!0);if(!t)return!1;let r=t.containerEl.doc.getSelection();return!r||!r.focusNode||r.isCollapsed?!1:(e||Vu(this.plugin,t,r),!0)}};var ti=require("obsidian");var d0=class extends Ie{constructor(...e){super(...e),this.fileOperator=new om(this.plugin),this.linkUpdater=new sm(this.plugin)}isEnabled(){return this.settings.enablePDFEdit}async addPage(e){return await this.linkUpdater.updateLinks(()=>this.fileOperator.addPage(e),[e],(t,i)=>({}))}async insertPage(e,t,i,r){return await this.linkUpdater.updateLinks(()=>this.fileOperator.insertPage(e,t,i,r),[e],(o,s)=>({pageNumber:typeof s=="number"&&s>=t?s+1:s}))}async removePage(e,t,i){return await this.linkUpdater.updateLinks(()=>this.fileOperator.removePage(e,t,i),[e],(r,o)=>({pageNumber:typeof o=="number"&&o>t?o-1:o}))}async mergeFiles(e,t,i){let r=(await this.fileOperator.read(e)).getPageCount();return await this.linkUpdater.updateLinks(()=>this.fileOperator.mergeFiles(e,t,i),[e,t],(o,s)=>o===e?{}:{file:e,pageNumber:typeof s=="number"?s+r:s})}async extractPages(e,t,i,r,o,s){let a;return Array.isArray(t)?a=t:(t.from===void 0&&(t.from=1),t.to===void 0&&(t.to=(await this.fileOperator.read(e)).getPageCount()),a=gg(t.from,t.to+1)),await this.linkUpdater.updateLinks(()=>this.fileOperator.extractPages(e,a,i,r,o,s),[e],(c,l)=>{if(l===void 0)return{};if(a.includes(l))return{file:i,pageNumber:a.filter(d=>d<=l).length};if(s){let d=a.filter(h=>h<l).length;return d>0?{pageNumber:l-d}:{}}return{}})}},om=class extends Ie{constructor(...e){super(...e),this.pageLabelUpdater=new am(this.plugin)}async read(e){return await this.lib.loadPdfLibDocument(e)}async write(e,t,i){let r=await t.save(),o=this.app.vault.getAbstractFileByPath(e);if(o instanceof ti.TFile)return i||new ti.Notice(`${this.plugin.manifest.name}: File already exists: ${e}`),await this.app.vault.modifyBinary(o,r),o;if(o===null){let s=(0,ti.normalizePath)(e.split("/").slice(0,-1).join("/"));return s&&(this.app.vault.getAbstractFileByPath(s)||await this.app.vault.createFolder(s)),await this.app.vault.createBinary(e,r)}return null}async addPage(e){let t=await this.read(e),i=t.getPage(t.getPageCount()-1),{width:r,height:o}=i.getSize();return t.addPage([r,o]),await this.write(e.path,t,!0)}async insertPage(e,t,i,r){let o=await this.read(e);this.pageLabelUpdater.insertPage(o,t,r);let s=o.getPage(i-1),{width:a,height:c}=s.getSize();return o.insertPage(t-1,[a,c]),await this.write(e.path,o,!0)}async removePage(e,t,i){let r=await this.read(e);return this.pageLabelUpdater.removePage(r,t,i),r.removePage(t-1),await(await Ge.fromDocument(r,this.plugin)).prune(),await this.write(e.path,r,!0)}async mergeFiles(e,t,i){let[r,o]=await Promise.all([this.read(e),this.read(t)]);this.pageLabelUpdater.mergeFiles(r,o,i);let s=await r.copyPages(o,o.getPageIndices());for(let c of s)r.addPage(c);let a=await this.write(e.path,r,!0);return a===null?null:(await this.app.fileManager.trashFile(t),a)}async extractPages(e,t,i,r,o,s){if(t.length===0)throw new Error("No pages to extract");return s?await this.extractPagesInPlace(e,t,i,r,o):await this.extractPagesAsNewFile(e,t,i,r,o)}async extractPagesInPlace(e,t,i,r,o){let[s,a]=await Promise.all([this.read(e),this.read(e)]),c=[];for(let h=1;h<=s.getPageCount();h++)t.includes(h)||c.push(h);this.pageLabelUpdater.removePages(s,t,o),this.pageLabelUpdater.removePages(a,c,o);for(let h=s.getPageCount();h>=1;h--)t.includes(h)?s.removePage(h-1):a.removePage(h-1);await Promise.all([s,a].map(async h=>{await(await Ge.fromDocument(h,this.plugin)).prune()}));let[l,d]=await Promise.all([this.write(e.path,s,!0),this.write(i,a,r)]);return d}async extractPagesAsNewFile(e,t,i,r,o){let s=await this.read(e),a=[];for(let l=1;l<=s.getPageCount();l++)t.includes(l)||a.push(l);this.pageLabelUpdater.removePages(s,a,o);for(let l of a.sort((d,h)=>h-d))s.removePage(l-1);return await(await Ge.fromDocument(s,this.plugin)).prune(),await this.write(i,s,r)}},sm=class extends Ie{async updateLinks(e,t,i){await this.lib.metadataCacheUpdatePromise;let r=new Map;for(let c of t){let l=this.app.metadataCache.getBacklinksForFile(c);for(let d of l.keys()){let h=l.get(d);for(let u of h!=null?h:[]){let p=this.getNewLinkText(u.link,d,c,i);if(typeof p!="string")continue;let f=this.getNewLink(u,p),m=u.position;r.has(d)||r.set(d,[]),r.get(d).push({position:m,newLink:f})}}}let o=await e();if(!o)return null;let s=[],a={files:0,links:0};for(let[c,l]of r){let d=this.app.vault.getAbstractFileByPath(c);d instanceof ti.TFile&&(l.sort((h,u)=>u.position.start.offset-h.position.start.offset),s.push(this.app.vault.process(d,h=>{for(let{position:u,newLink:p}of l)h=h.slice(0,u.start.offset)+p+h.slice(u.end.offset),a.links++;return h})),l.length>0&&a.files++)}return await Promise.all(s),a.links&&new ti.Notice(`${this.plugin.manifest.name}: Updated ${a.links} links in ${a.files} files.`),o}getNewLinkText(e,t,i,r){let{path:o,subpath:s}=(0,ti.parseLinktext)(e),a;s.startsWith("#")&&(s=s.slice(1));let c=new URLSearchParams(s),l=c.get("page");l!==null&&(a=+l);let{file:d,pageNumber:h}=r(i,a);if(d===void 0&&h===void 0)return;let u=o;if(d instanceof ti.TFile){let m=!this.app.vault.getConfig("useMarkdownLinks");u=this.app.metadataCache.fileToLinktext(d,t,m)}else typeof d=="string"&&(u=d);let p=s;if(typeof h=="number"){p="",c.set("page",""+h);for(let[m,x]of c)p+=`${m}=${x}&`;p.endsWith("&")&&(p=p.slice(0,-1))}return u+(p?"#"+p:"")}getNewDisplay(e){return e}getNewLink(e,t){let i=e.original,r=e.displayText,o=e.link,s=i.startsWith("!");s&&(i=i.slice(1));let a="";return i.startsWith("[[")&&i.endsWith("]]")?typeof r=="string"&&i===`[[${o}|${r}]]`?a=`[[${t}|${r}]]`:a=`[[${t}]]`:i.startsWith("[")&&i.endsWith(")")&&(a=`[${r!=null?r:""}](${Rr(t)})`),s&&(a="!"+a),a}async updateLinkColor(e,t,i,r){r=Object.assign({linktext:!0,callout:!0},r);let o=this.app.vault.getAbstractFileByPath(t);if(!(o instanceof ti.TFile))return;let s=e.link,{path:a,subpath:c}=(0,ti.parseLinktext)(s),l=new URLSearchParams(c.startsWith("#")?c.slice(1):c);i&&r.linktext?l.set("color",i.type==="name"?i.name.toLowerCase():`${i.rgb.r},${i.rgb.g},${i.rgb.b}`):l.delete("color");let d="";for(let[p,f]of l.entries())d+=d?`&${p}=${f}`:`#${p}=${f}`;let h=a+d,u=this.getNewLink(e,h);if("position"in e){let p=e.position;await this.app.vault.process(o,f=>{var m,x;if(f=f.slice(0,p.start.offset)+u+f.slice(p.end.offset),r.callout){let b=((x=(m=this.app.metadataCache.getFileCache(o))==null?void 0:m.sections)!=null?x:[]).find(v=>v.position.start.offset<=p.start.offset&&p.end.offset<=v.position.end.offset);if(b&&b.type==="callout"){let v=f.split(/\r?\n/),y=b.position.start.line,F=v[y],D=new RegExp(`> *\\[\\! *${this.settings.calloutType} *(\\|(.*?))?\\]`,"i");v[y]=F.replace(D,`> [!${this.settings.calloutType}${i?`|${i.type==="name"?i.name.toLowerCase():`${i.rgb.r},${i.rgb.g},${i.rgb.b}`}`:""}]`),f=v.join(`
|
||
`)}}return f})}else{let p=e.key;await this.app.fileManager.processFrontMatter(o,f=>{f[p]=u})}}},am=class extends Ie{addPage(e){}insertPage(e,t,i){qi.processDocument(e,r=>{if(i){r.divideRangeAtPage(t,!0).shiftRangesAfterPage(t,1).divideRangeAtPage(t,!1,o=>{delete o.prefix,delete o.style});return}r.shiftRangesAfterPage(t,1)})}removePage(e,t,i){this.removePages(e,[t],i)}removePages(e,t,i){qi.processDocument(e,r=>{t.sort((o,s)=>s-o).forEach(o=>{this.removePageFromLabels(r,o,i)})})}removePageFromLabels(e,t,i){if(i){e.divideRangeAtPage(t+1,!0).shiftRangesAfterPage(t+1,-1);return}e.shiftRangesAfterPage(t+1,-1)}mergeFiles(e,t,i){}};var u0=require("obsidian");var lm=class{constructor(e){w0(this,"value");w0(this,"next");this.value=e}},Si,rs,os,ld=class{constructor(){mn(this,Si);mn(this,rs);mn(this,os);this.clear()}enqueue(e){let t=new lm(e);Xe(this,Si)?(Xe(this,rs).next=t,Ot(this,rs,t)):(Ot(this,Si,t),Ot(this,rs,t)),F0(this,os)._++}dequeue(){let e=Xe(this,Si);if(e)return Ot(this,Si,Xe(this,Si).next),F0(this,os)._--,e.value}peek(){if(Xe(this,Si))return Xe(this,Si).value}clear(){Ot(this,Si,void 0),Ot(this,rs,void 0),Ot(this,os,0)}get size(){return Xe(this,os)}*[Symbol.iterator](){let e=Xe(this,Si);for(;e;)yield e.value,e=e.next}*drain(){let e;for(;(e=this.dequeue())!==void 0;)yield e}};Si=new WeakMap,rs=new WeakMap,os=new WeakMap;function cm(n){x1(n);let e=new ld,t=0,i=()=>{t<n&&e.size>0&&(e.dequeue()(),t++)},r=()=>{t--,i()},o=async(c,l,d)=>{let h=(async()=>c(...d))();l(h);try{await h}catch(u){}r()},s=(c,l,d)=>{new Promise(h=>{e.enqueue(h)}).then(o.bind(void 0,c,l,d)),(async()=>(await Promise.resolve(),t<n&&i()))()},a=(c,...l)=>new Promise(d=>{s(c,d,l)});return Object.defineProperties(a,{activeCount:{get:()=>t},pendingCount:{get:()=>e.size},clearQueue:{value(){e.clear()}},concurrency:{get:()=>n,set(c){x1(c),n=c,queueMicrotask(()=>{for(;t<n&&e.size>0;)i()})}}}),a}function x1(n){if(!((Number.isInteger(n)||n===Number.POSITIVE_INFINITY)&&n>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up")}var h0=class h0 extends u0.Component{constructor(t,i,r,o,s,a,c,l){super();this.plugin=t;this.ctx=i;this.file=r;this.subpath=o;this.pageNumber=s;this.rect=a;this.width=c;this.annotationId=l;this.app=i.app,this.containerEl=i.containerEl,this.rect=window.pdfjsLib.Util.normalizeRect(a),this.containerEl.addClass("pdf-cropped-embed"),c&&this.containerEl.setAttribute("width",""+c)}get lib(){return this.plugin.lib}onload(){super.onload(),this.shouldUpdateOnModify()&&this.registerEvent(this.app.vault.on("modify",t=>{t===this.file&&this.loadFile()})),this.plugin.settings.rectFollowAdaptToTheme&&(this.registerEvent(this.app.workspace.on("css-change",()=>{this.loadFile()})),this.registerEvent(this.plugin.on("adapt-to-theme-change",()=>{this.loadFile()})))}shouldUpdateOnModify(){return typeof this.annotationId=="string"}async loadFile(){let t=await h0.limit(this.computeDataUrl.bind(this));await new Promise((i,r)=>{this.containerEl.empty(),this.containerEl.createEl("img",{attr:{src:t}},o=>{o.addEventListener("load",()=>i()),o.addEventListener("error",c=>r(c));let s=this.containerEl.getAttribute("width"),a=this.containerEl.getAttribute("height");s&&o.setAttribute("width",s),a&&o.setAttribute("height",a)}),activeWindow.setTimeout(()=>r(),5e3)})}async computeDataUrl(){let t=await this.lib.loadPDFDocument(this.file),i=await t.getPage(this.pageNumber);if(this.annotationId){let s=(await i.getAnnotations()).find(a=>a.id===this.annotationId);s&&Array.isArray(s.rect)&&(this.rect=window.pdfjsLib.Util.normalizeRect(s.rect))}let r=await this.lib.pdfPageToImageDataUrl(i,{type:"image/png",cropRect:this.rect,renderParams:this.lib.getOptionalRenderParameters()});return await t.destroy(),r}};h0.limit=cm(u0.Platform.isMobile?3:10);var Jr=h0;var f0=class extends Ie{get ttsPlugin(){var e;return(e=this.app.plugins.plugins["obsidian-tts"])!=null?e:null}isEnabled(){return!!this.ttsPlugin}async speak(e){var t;await((t=this.ttsPlugin)==null?void 0:t.say(e))}};var $n=require("obsidian");var p0=class extends Ie{async createDummyFilesInFolder(e,t){if(!!!this.app.vault.getFolderByPath(e))try{await this.app.vault.createFolder(e)}catch(r){return console.error(`${this.plugin.manifest.name}: Failed to create folder "${e}" due to the following error: `,r),[]}return await Promise.all(t.map(async r=>{let o=r.split("/").pop().replace(/%20/g," ");$n.Platform.isWin&&(o=o.replace(/\?/g," "));let s=(0,$n.normalizePath)(e+"/"+o);s.endsWith(".pdf")&&(s=s.slice(0,-4));let a=this.app.vault.getAvailablePath(s,"pdf");try{return await this.app.vault.create(a,r)}catch(c){throw console.error(`${this.plugin.manifest.name}: Failed to create a dummy file "${a}" due to the following error: `,c),c}}))}async createDummyFilesFromObsidianUrl(e){let t=e["create-dummy"].replace(/^.*((https?)|(file):\/\/)/,"$1"),i=new Da(this.plugin);if(i.source=t.startsWith("http")?"web":"file",i.uris=[t],"folder"in e){let r=e.folder;i.folderPath=(0,$n.normalizePath)(r),await i.createDummyFiles();let o=this.lib.workspace.getActivePDFView();o&&o.setEphemeralState({rename:"all"});return}i.open()}async createDummyFilesOnEditorDrop(e,t,i){if(e.defaultPrevented||!cg(e,this.settings.modifierToDropExternalPDFToCreateDummy)||!e.dataTransfer)return;let r=this.getUrisFromDataTransfer(e.dataTransfer);if(r.length){e.preventDefault();let o=this.getFolderPathForDummyFiles(i.file),s=await this.createDummyFilesInFolder(o,r);new $n.Notice(`${this.plugin.manifest.name}: Dummy files created successfully.`),s.forEach((a,c)=>{var d,h;let l=this.app.fileManager.generateMarkdownLink(a,(h=(d=i.file)==null?void 0:d.path)!=null?h:"");c<s.length-1&&(l+=`
|
||
|
||
`),t.replaceSelection(l)})}}getUrisFromDataTransfer(e){if(window.electron){let i=Array.from(e.files);if(i.length&&i.every(r=>r.type==="application/pdf"))return i.map(r=>{let o=window.electron.webUtils.getPathForFile(r);return this.absolutePathToFileUri(o)})}let t=e.getData("text/uri-list").split(`\r
|
||
`).filter(i=>!i.startsWith("#"));return t.length&&t.every(i=>this.isUriPdf(i))?t:[]}getFolderPathForDummyFiles(e){var i;let t=this.settings.dummyFileFolderPath||this.app.vault.getConfig("attachmentFolderPath");return t==="."||t.startsWith("./")?(0,$n.normalizePath)(((i=e==null?void 0:e.parent)!=null?i:this.app.vault.getRoot()).path+"/"+t.slice(1)):(0,$n.normalizePath)(t)}absolutePathToFileUri(e){return e=e.replace(/\\/g,"/").replace(/ /g,"%20"),"file://"+(e.startsWith("/")?"":"/")+e}isUriPdf(e){return this.settings.externalURIPatterns.map(t=>new RegExp(t)).some(t=>t.test(e))}};var g0=class{constructor(e){this.utils=Ig;this.PDFCroppedEmbed=Jr;this.PDFOutlines=Ge;this.NameTree=Fa;this.NumberTree=Wr;this.PDFNamedDestinations=ka;this.PDFPageLabels=qi;this.app=e.app,this.plugin=e,this.commands=new c0(e),this.copyLink=new $u(e),this.highlight=new s0(e),this.workspace=new a0(e),this.composer=new d0(e),this.dummyFileManager=new p0(e),this.speech=new f0(e)}registerPDFEvent(e,t,i,r){let o=async s=>{await r(s),i||t.off(e,o)};i==null||i.register(()=>t.off(e,o)),t.on(e,o)}onPageReady(e,t,i){var r;(r=e.pdfViewer)==null||r._pages.forEach((o,s)=>{i(s+1,o,!1)}),this.registerPDFEvent("pagerendered",e.eventBus,t,o=>{i(o.pageNumber,o.source,!0)})}onTextLayerReady(e,t,i){var r;(r=e.pdfViewer)==null||r._pages.forEach((o,s)=>{o.textLayer&&i(s+1,o,!1)}),this.registerPDFEvent("textlayerrendered",e.eventBus,t,o=>{i(o.pageNumber,o.source,!0)})}onAnnotationLayerReady(e,t,i){var r;(r=e.pdfViewer)==null||r._pages.forEach((o,s)=>{o.annotationLayer&&i(s+1,o,!1)}),this.registerPDFEvent("annotationlayerrendered",e.eventBus,t,o=>{i(o.pageNumber,o.source,!0)})}applyPDFViewStateToViewer(e,t){let i=()=>{typeof t.left=="number"&&typeof t.top=="number"&&typeof t.zoom=="number"?e.scrollPageIntoView({pageNumber:t.page,destArray:[t.page,{name:"XYZ"},t.left,t.top,t.zoom]}):e.currentPageNumber=t.page};e.pagesCount?i():this.registerPDFEvent("pagesloaded",e.eventBus,null,()=>i())}getPageElAssociatedWithNode(e){let t=e.instanceOf(HTMLElement)?e:e.parentElement;if(!t)return null;let i=t.closest(".page");return!i||!i.instanceOf(HTMLElement)?null:i}getPageElFromSelection(e){let t=e.rangeCount>0?e.getRangeAt(0):null;return t?this.getPageElAssociatedWithNode(t.startContainer):null}getPageElFromEvent(e){return Uc(e,e.target)?this.getPageElAssociatedWithNode(e.target):null}getPageNumberFromEvent(e){let t=this.getPageElFromEvent(e),i=t==null?void 0:t.dataset.pageNumber;return i===void 0?null:+i}getToolbarAssociatedWithNode(e){let t=e.instanceOf(HTMLElement)?e:e.parentElement;if(!t)return null;let i=t.closest(".pdf-container"),r=i==null?void 0:i.previousElementSibling;return r&&r.hasClass("pdf-toolbar")?r:null}getToolbarAssociatedWithSelection(){let e=activeWindow.getSelection();if(e&&e.rangeCount>0){let t=e.getRangeAt(0);return this.getToolbarAssociatedWithNode(t.startContainer)}return null}getColorPalette(){var t;let e=(t=this.getPDFViewerChild(!0))!=null?t:this.plugin.lastAnnotationPopupChild;return e?this.getColorPaletteFromChild(e):this.getColorPaletteAssociatedWithSelection()}getColorPaletteOptions(){let e=this.getColorPalette();if(e)return e.getState();let t=this.plugin.settings;return{selectedColorName:[null,...Object.keys(t.colors)][t.defaultColorPaletteItemIndex],actionIndex:t.defaultColorPaletteActionIndex,displayTextFormatIndex:t.defaultDisplayTextFormatIndex,writeFile:t.defaultWriteFileToggle}}getColorPaletteAssociatedWithNode(e){var r;let t=this.getToolbarAssociatedWithNode(e);if(!t)return null;let i=t.querySelector("."+ei.CLS);return i&&(r=ei.elInstanceMap.get(i))!=null?r:null}getColorPaletteAssociatedWithSelection(){let e=activeWindow.getSelection();if(e&&e.rangeCount>0){let t=e.getRangeAt(0);return this.getColorPaletteAssociatedWithNode(t.startContainer)}return null}getColorPaletteFromChild(e){var i;let t=(i=e.pdfViewer.dom)==null?void 0:i.viewerEl;return t?this.getColorPaletteAssociatedWithNode(t):null}getColorPaletteContainedIn(e){for(let[t,i]of ei.elInstanceMap)if(e.contains(t))return i;return null}getPDFViewerChildAssociatedWithNode(e){let t,i=e.instanceOf(HTMLElement)?e:e.parentElement;if(i){let r=i.closest(".pdf-container");r&&(t=this.plugin.pdfViewerChildren.get(r))}return t||this.workspace.iteratePDFViewerChild(r=>{!t&&r.containerEl.contains(e)&&(t=r)}),t!=null?t:null}getPDFViewerChildFromSelection(e){let t=e.rangeCount>0?e.getRangeAt(0):null;return t?this.getPDFViewerChildAssociatedWithNode(t.startContainer):null}async destIdToSubpath(e,t){let i=await t.getDestination(e);return i?this.pdfJsDestArrayToSubpath(i,t):null}async pdfJsDestArrayToSubpath(e,t){let i=await t.getPageIndex(e[0]);return this.destArrayToSubpath(this.normalizePDFJsDestArray(e,i+1))}normalizePDFJsDestArray(e,t){return[t-1,e[1].name,...e.slice(2)]}normalizePdfLibDestArray(e,t){let i=e.get(0);if(!(i instanceof Y))return null;let r=t.getPages().findIndex(s=>s.ref===i);if(r===-1)return null;let o=e.get(1);return o instanceof w?[r,o.decodeText(),...e.asArray().slice(2).map(s=>s instanceof K?s.asNumber():null)]:null}async ensureDestArray(e,t){if(typeof e=="string"){let i=await t.getDestination(e);if(!i)return null;e=this.normalizePDFJsDestArray(i,await t.getPageIndex(i[0])+1)}return e}async destToPageNumber(e,t){if(typeof e=="string"){let i=await t.getDestination(e);return i?await t.getPageIndex(i[0])+1:null}return e[0]+1}destArrayToSubpath(e){var a;let t=e[0],i="",r="",o="";return e[1]==="XYZ"?(typeof e[2]=="number"&&(r+=Math.round(e[2])),typeof e[3]=="number"&&(i+=Math.round(e[3])),o=""+Math.round(((a=e[4])!=null?a:0)*100)/100):e[1]==="FitBH"&&typeof e[2]=="number"&&(i+=e[2]),`#page=${t+1}&offset=${r},${i},${o}`}viewStateToSubpath(e,t=!1){var i;if(typeof e.left=="number"&&typeof e.top=="number"){let r=`#page=${e.page}`;return t?r+=`&offset=,${e.top},`:r+=`&offset=${e.left},${e.top},${(i=e.zoom)!=null?i:0}`,r}return null}viewStateToDestArray(e,t=!1){var i;return typeof e.left=="number"&&typeof e.top=="number"?t?[e.page-1,"FitBH",e.top]:[e.page-1,"XYZ",e.left,e.top,(i=e.zoom)!=null?i:0]:null}getPageLabelTree(e){let t=lt(e.catalog,"PageLabels");return t instanceof G?new Wr(t):null}getAnnotationInfoFromAnnotationElement(e){return{page:e.parent.page.pageNumber,id:e.data.id}}getAnnotationInfoFromPopupEl(e){if(!e.matches(".popupWrapper[data-annotation-id]"))return null;let t=e.closest("div.page");if(!t||t.dataset.pageNumber===void 0)return null;let i=+t.dataset.pageNumber,r=e.dataset.annotationId;return r===void 0?null:{page:i,id:r}}registerGlobalDomEvent(e,t,i,r){e.registerDomEvent(document,t,i,r),this.app.workspace.onLayoutReady(()=>{let o=new Set;this.app.workspace.iterateAllLeaves(s=>{let a=s.getContainer().win;a!==window&&o.add(a)}),o.forEach(s=>{e.registerDomEvent(s.document,t,i,r)}),e.registerEvent(this.app.workspace.on("window-open",(s,a)=>{e.registerDomEvent(a.document,t,i,r)}))})}generateMarkdownLink(e,t,i,r){let o=this.app,s=o.vault.getConfig("useMarkdownLinks"),a=!s,l=o.metadataCache.fileToLinktext(e,t,a)+(i||"");e.path===t&&i&&(l=i);let d;return s?d="[".concat(r||e.basename,"](").concat(Rr(l),")"):(r&&r.toLowerCase()===l.toLowerCase()&&(l=r,r=void 0),d=r?"[[".concat(l,"|").concat(r,"]]"):"[[".concat(l,"]]")),e.extension!=="md"?"!"+d:d}getBacklinkIndexForFile(e){return new Ca(this.plugin,e)}async getLatestBacklinkIndexForFile(e){let t=this.getBacklinkIndexForFile(e);return await this.metadataCacheUpdatePromise,t.init(),t}async getLatestBacklinksForAnnotation(e,t,i){return(await this.getLatestBacklinkIndexForFile(e)).getPageIndex(t).annotations.get(i)}isBacklinked(e,t){if(t){let{page:c,selection:l,annotation:d}=t;if(isNaN(c)||c<1)throw new Error("Invalid page number");if(l&&(l.length!==4||l.some(h=>isNaN(h))))throw new Error("Invalid selection");if(l&&typeof d=="string")throw new Error("Selection and annotation cannot be used together")}let i=!t,r=t&&!t.selection&&!t.annotation,o=t&&!!t.selection,s=typeof(t==null?void 0:t.annotation)=="string",a=this.app.metadataCache.getBacklinksForFile(e);if(i)return a.count()>0;for(let c of a.keys()){let l=a.get(c);if(l)for(let d of l){let{subpath:h}=(0,Ce.parseLinktext)(d.link),u=_o(h);if(u&&(r&&u.page===t.page||o&&"beginIndex"in u&&u.page===t.page&&u.beginIndex===t.selection[0]&&u.beginOffset===t.selection[1]&&u.endIndex===t.selection[2]&&u.endOffset===t.selection[3]||s&&"annotation"in u&&u.page===t.page&&u.annotation===t.annotation))return!0}}return!1}getPDFView(e=!1){let t=this.workspace.getActivePDFView();if(t)return t;if(!e){let i;if(this.app.workspace.iterateAllLeaves(r=>{this.isPDFView(r.view)&&(i=r.view)}),i)return i}return null}getPDFEmbedsInComponent(e,t){let i=[];return vu(e,r=>{if(t&&i.length)return!1;if(this.isPDFEmbed(r))return i.push(r),!1}),i}getPDFEmbedInMarkdownView(e){var t;return(t=this.getPDFEmbedsInComponent(e.currentMode,!0).first())!=null?t:null}getAllPDFEmbedsInMarkdownView(e){return this.getPDFEmbedsInComponent(e.currentMode,!1)}getPDFEmbedInCanvasView(e){let t=Array.from(e.canvas.nodes.values());for(let i of t)if("child"in i&&i.child instanceof Ce.Component){let r=this.getPDFEmbedsInComponent(i.child,!0);if(r.length)return r[0]}return null}getAllPDFEmbedsInCanvasView(e){return Array.from(e.canvas.nodes.values()).flatMap(t=>"child"in t&&t.child instanceof Ce.Component?this.getPDFEmbedsInComponent(t.child,!1):[])}getPDFEmbedInActiveView(){let e=this.app.workspace.getActiveViewOfType(Ce.MarkdownView);if(e){let i=this.getPDFEmbedInMarkdownView(e);if(i)return i}let t=this.workspace.getActiveCanvasView();if(t){let i=this.getPDFEmbedInCanvasView(t);if(i)return i}return null}getPDFEmbed(e=!1){let t=this.getPDFEmbedInActiveView();if(t)return t;if(!e){let i=null;if(this.app.workspace.iterateAllLeaves(r=>{if(i)return;let o=r.view;o instanceof Ce.MarkdownView?i=this.getPDFEmbedInMarkdownView(o):this.isCanvasView(o)&&(i=this.getPDFEmbedInCanvasView(o))}),i)return i}return null}getPDFViewerComponent(e=!1){var t,i;return(i=(t=this.getPDFView(e))!=null?t:this.getPDFEmbed())==null?void 0:i.viewer}getPDFViewerChild(e=!1){var t;return(t=this.getPDFViewerComponent(e))==null?void 0:t.child}getObsidianViewer(e=!1){var t;return(t=this.getPDFViewerChild(e))==null?void 0:t.pdfViewer}getPDFViewer(e=!1){var t;return(t=this.getObsidianViewer(e))==null?void 0:t.pdfViewer}getToolbar(e=!1){var t;return(t=this.getPDFViewerChild(e))==null?void 0:t.toolbar}getPage(e=!1){let t=this.getPDFViewer(e);return t?t.getPageView(t.currentPageNumber-1):null}getAnnotation(e){var t,i;return(i=(t=this.getPage(!0))==null?void 0:t.annotationLayer)==null?void 0:i.annotationLayer.getAnnotation(e)}getTextContentItems(){var t,i;let e=(t=this.getPage(!0))==null?void 0:t.textLayer;if(e)return(i=Ft(e))==null?void 0:i.textContentItems}getPDFDocument(e=!1){var t;return(t=this.getPDFViewer(e))==null?void 0:t.pdfDocument}getBacklinkVisualizer(e=!1){var t;return(t=this.getPDFViewerComponent(e))==null?void 0:t.visualizer}getBibliographyManager(e=!1){var t;return(t=this.getPDFViewerChild(e))==null?void 0:t.bib}getVim(e=!1){var t;return(t=this.getPDFViewerComponent(e))==null?void 0:t.vim}search(e,t,i,r){e.showSearch(),e.searchComponent.setValue(t),Object.assign(e.searchSettings,i),e.dispatchEvent("",r),this.updateSearchSettingsUI(e)}updateSearchSettingsUI(e){let t=e.settingsEl.querySelectorAll("div.checkbox-container"),i=t[0],r=t[1],o=t[2],s=e.searchComponent.containerEl.querySelector(".input-right-decorator.clickable-icon");i&&i.toggleClass("is-enabled",e.searchSettings.highlightAll),r&&r.toggleClass("is-enabled",e.searchSettings.matchDiacritics),o&&o.toggleClass("is-enabled",e.searchSettings.entireWord),s&&s.toggleClass("is-active",e.searchSettings.caseSensitive)}async getExternalPDFUrl(e){if(e.stat.size>300)return null;let t=(await this.app.vault.read(e)).trim();if(t.startsWith("https://")||t.startsWith("http://")){let i=await(0,Ce.requestUrl)(t);if(i.status===200)return URL.createObjectURL(new Blob([i.arrayBuffer],{type:"application/pdf"}))}else if(t.startsWith("file:///"))return Ce.Platform.resourcePathPrefix+t.substring(8);return null}async loadPDFDocument(e){let t=await this.getExternalPDFUrl(e);if(t)return await this.loadPDFDocumentFromArrayBufferOrUrl({url:t});let i=await this.app.vault.readBinary(e);return await this.loadPDFDocumentFromArrayBufferOrUrl({data:i})}async loadPDFDocumentFromArrayBuffer(e){return await this.loadPDFDocumentFromArrayBufferOrUrl({data:e})}async loadPDFDocumentFromArrayBufferOrUrl(e){return await window.pdfjsLib.getDocument({...e,cMapPacked:!0,cMapUrl:"/lib/pdfjs/cmaps/",standardFontDataUrl:"/lib/pdfjs/standard_fonts/"}).promise}async loadPdfLibDocument(e,t=!1){let i=await this.app.vault.readBinary(e);return await this.loadPdfLibDocumentFromArrayBuffer(i)}async loadPdfLibDocumentFromArrayBuffer(e,t=!1){try{return await je.load(e,{ignoreEncryption:t})}catch(i){throw i instanceof Ko&&new Ce.Notice(`${this.plugin.manifest.name}: The PDF file is encrypted. This plugin currently does not support editing encrypted PDF files.`,8),i}}async getPdfLibDocument(e=!1){let t=this.getPDFDocument(e);if(t)return await this.loadPdfLibDocumentFromArrayBuffer(await t.getData())}async getPdfLibPage(e=!1){let t=this.getPDFViewer(e);if(!t)return;let i=t.currentPageNumber;if(i===void 0)return;let r=await this.loadPdfLibDocumentFromArrayBuffer(await t.pdfDocument.getData());if(r)return r.getPage(i-1)}async getPDFOutlines(){let e=await this.getPdfLibDocument();if(e)return new Ge(this.plugin,e)}getPDFViewFromChild(e){let t=null;return this.workspace.iteratePDFViews(i=>{i.viewer.child===e&&(t=i)}),t}isPDFView(e){return this.plugin.classes.PDFView?e instanceof this.plugin.classes.PDFView:e instanceof Ce.EditableFileView&&e.getViewType()==="pdf"}isPDFEmbed(e){var t;return"loadFile"in e&&"file"in e&&"containerEl"in e&&e.file instanceof Ce.TFile&&e.file.extension==="pdf"&&e.containerEl.instanceOf(HTMLElement)&&((t=e.containerEl)==null?void 0:t.matches(".pdf-embed"))&&e instanceof Ce.Component&&!(e instanceof Jr)}isCanvasView(e){return e instanceof Ce.TextFileView&&e.getViewType()==="canvas"&&"canvas"in e}isCanvasPDFNode(e){let t=e.getData();return t.type==="file"?t.file.endsWith(".pdf"):!1}isBacklinkView(e){return e instanceof Ce.FileView&&e.getViewType()==="backlink"}getAvailablePathForCopy(e){return this.app.vault.getAvailablePath(Pg(e.path),e.extension)}get metadataCacheUpdatePromise(){return new Promise(e=>this.app.metadataCache.onCleanCache(e))}async renderPDFPageToCanvas(e,t,i={}){var l;let r=createEl("canvas"),o=r.getContext("2d"),s=e.getViewport({scale:1}),a=(l=t!=null?t:window.devicePixelRatio)!=null?l:1;r.width=Math.floor(s.width*a),r.height=Math.floor(s.height*a),r.setCssStyles({width:Math.floor(s.width)+"px",height:Math.floor(s.height)+"px"});let c=[a,0,0,a,0,0];return await e.render({canvasContext:o,transform:c,viewport:s,...i}).promise,r}async pdfPageToImageDataUrl(e,t){let[i,r,o,s]=e.view,a=o-i,c=s-r,l=t==null?void 0:t.type,d=t==null?void 0:t.encoderOptions,h=t==null?void 0:t.resolution;typeof h!="number"&&(h=(Ce.Platform.isDesktop?7:Ce.Platform.isTablet?4:window.devicePixelRatio||1)*(this.plugin.settings.rectEmbedResolution/100));let u=t==null?void 0:t.cropRect,p=t==null?void 0:t.renderParams,f=await this.renderPDFPageToCanvas(e,h,p);if(!u)return f.toDataURL(l,d);let m=fu(f,360-e.rotate),x=m.width/a,g=m.height/c,b={left:(u[0]-i)*x,top:(r+c-u[3])*g,width:(u[2]-u[0])*x,height:(u[3]-u[1])*g};return fu(rg(m,b),e.rotate).toDataURL(l,d)}async pdfPageToImageArrayBuffer(e,t){var o;let r=(o=(await this.pdfPageToImageDataUrl(e,t)).match(/^data:image\/\w+;base64,(.*)/))==null?void 0:o[1];if(!r)throw new Error("Failed to convert data URL to base64");return(0,Ce.base64ToArrayBuffer)(r)}getOptionalRenderParameters(){return this.plugin.settings.rectFollowAdaptToTheme&&this.app.loadLocalStorage("pdfjs-is-themed")?{background:document.body.getCssPropertyValue("--pdf-page-background"),invert:document.body.hasClass("theme-dark")}:{}}getSelectedText(e,t,i,r,o){if(t===r)return this.toSingleLine(e[t].str.slice(i,o));let s=[];s.push(e[t].str.slice(i));for(let a=t+1;a<r;a++)s.push(e[a].str);return s.push(e[r].str.slice(0,o)),this.toSingleLine(s.join(`
|
||
`))}isEditable(e){return this.plugin.settings.enablePDFEdit&&!e.isFileExternal}requirePluginVersion(e,t){let i=this.app.plugins.plugins[e];if(!i)return!1;let r=i.manifest.version;return r===t||ga(r,t)}requirePluginNewerThan(e,t){let i=this.app.plugins.plugins[e];if(!i)return!1;let r=i.manifest.version;return ga(r,t)}onDocumentReady(e,t){if(e.pdfLoadingTask){e.pdfLoadingTask.promise.then(i=>t(i));return}e.pdfPlusCallbacksOnDocumentLoaded||(e.pdfPlusCallbacksOnDocumentLoaded=[]),e.pdfPlusCallbacksOnDocumentLoaded.push(t)}toSingleLine(e){return Zc(e,this.plugin.settings.removeWhitespaceBetweenCJChars)}async write(e,t,i){let r=this.app.vault.getAbstractFileByPath(e);if(r instanceof Ce.TFile)return i||new Ce.Notice(`${this.plugin.manifest.name}: File already exists: ${e}`),typeof t=="string"?await this.app.vault.modify(r,t):await this.app.vault.modifyBinary(r,t),r;if(r===null){let o=(0,Ce.normalizePath)(e.split("/").slice(0,-1).join("/"));return o&&(this.app.vault.getAbstractFileByPath(o)||await this.app.vault.createFolder(o)),typeof t=="string"?await this.app.vault.create(e,t):await this.app.vault.createBinary(e,t)}return null}isCitationId(e){return typeof e=="string"&&this.plugin.citationIdRegex.test(e)}async checkForUpdates(e){var u,p;let{result:t,error:i}=await RC((0,Ce.requestUrl)({url:"https://api.github.com/repos/ryotaushio/obsidian-pdf-plus/releases?per_page=10&page=1",headers:{accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}}));if(i||t.status!==200)return i&&console.error(i),{success:!1,shouldUpdate:!1,detail:"Failed to connect to GitHub to check for updates."};let{result:r,error:o}=NC(()=>t.json);if(o)return console.error(o),{success:!1,shouldUpdate:!1,detail:"Failed to parse JSON releases from GitHub."};if(!Array.isArray(r)||r.length===0)return{success:!1,shouldUpdate:!1,detail:"No releases found on GitHub."};r.sort((f,m)=>new Date(m.published_at).getTime()-new Date(f.published_at).getTime());let s=(u=e==null?void 0:e.currentVersion)!=null?u:this.plugin.manifest.version,a=r.filter(f=>!f.prerelease&&!f.draft&&ga(f.tag_name,s));if(a.length===0)return{success:!0,shouldUpdate:!1,detail:"Already up-to-date."};if(a.some(f=>{let m=f.body.split(`
|
||
`)[0];return/^\s*<!--\s*important\s*-->\s*$/.test(m)}))return{success:!0,shouldUpdate:!0,detail:"There is a newer version that should be updated to immediately."};let l=a.last(),d=(new Date().getTime()-new Date(l.published_at).getTime())/(1e3*60*60),h=(p=e==null?void 0:e.minHoursSinceRelease)!=null?p:24;return d<h?{success:!0,shouldUpdate:!1,detail:`There is a newer version, but it was released less than ${h} hours ago.`}:{success:!0,shouldUpdate:!0,detail:`There is a newer version released ${d.toFixed(1)} hours ago.`}}};function NC(n){try{return{result:n(),error:null}}catch(e){return{result:null,error:e}}}async function RC(n){try{return{result:await n,error:null}}catch(e){return{result:null,error:e}}}var b1=require("obsidian");var m0=class extends De{constructor(e){if(super(e),this.settings.autoCopyToggleRibbonIcon){let t=!1;this.iconEl=e.settings.autoCopyToggleRibbonIcon?e.addRibbonIcon(this.settings.autoCopyIconName,`${e.manifest.name}: Toggle auto-copy`,()=>{t||this.toggle()}):null,this.iconEl&&this.registerDomEvent(this.iconEl,"contextmenu",i=>{if(t)return;let r=new b1.Menu;r.addItem(o=>{o.setIcon("lucide-settings").setTitle("Customize...").onClick(()=>{this.plugin.openSettingTab().scrollToHeading("auto-copy")})}),r.onHide(()=>{t=!1}),r.showAtMouseEvent(i),t=!0})}}toggle(e){e=e!=null?e:!this.settings.autoCopy,e?this.enable():this.disable()}enable(){this.settings.autoCopy=!0,this.plugin.saveSettings(),this.load()}disable(){this.settings.autoCopy=!1,this.plugin.saveSettings(),this.unload()}onload(){var e;(e=this.iconEl)==null||e.addClass("is-active")}onunload(){var e;(e=this.iconEl)==null||e.removeClass("is-active")}};var y1=require("obsidian");var x0=class extends De{constructor(e){super(e),this.styleEl=e.registerEl(createEl("style",{attr:{id:"pdf-plus-style"}})),document.head.append(this.styleEl)}update(){this.unload(),this.plugin.removeChild(this),this.plugin.addChild(this)}registerEl(e){return this.register(()=>e.remove()),e}onload(){this.plugin.trigger("update-dom"),this.updateStyleEl(),this.updateClass("pdf-plus-click-embed-to-open-link",this.settings.dblclickEmbedToOpenLink),this.updateClass("pdf-plus-backlink-selection-highlight",this.settings.selectionBacklinkVisualizeStyle==="highlight"),this.updateClass("pdf-plus-backlink-selection-underline",this.settings.selectionBacklinkVisualizeStyle==="underline"),this.app.workspace.trigger("css-change")}updateClass(e,t){document.body.toggleClass(e,t),this.register(()=>document.body.removeClass(e))}updateStyleEl(){let e=this.plugin.settings;this.styleEl.textContent=Object.entries(e.colors).map(([r,o])=>cn(o)?[`.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight)[data-highlight-color="${r.toLowerCase()}"],`,`.pdf-embed[data-highlight-color="${r.toLowerCase()}"] .textLayer .mod-focused {`,` --pdf-plus-color: ${o};`,` --pdf-plus-backlink-icon-color: ${o};`,` --pdf-plus-rect-color: ${o};`,"}"].join(`
|
||
`):"").join(`
|
||
`);let t=e.colors[e.defaultColor];(!t||!cn(t))&&(t="rgb(var(--text-highlight-bg-rgb))"),this.styleEl.textContent+=[`
|
||
.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight) {`,` --pdf-plus-color: ${t};`,` --pdf-plus-backlink-icon-color: ${t};`,` --pdf-plus-rect-color: ${t};`,"}"].join(`
|
||
`);let i=e.colors[e.backlinkHoverColor];(!i||!cn(i))&&(i=Hw),this.styleEl.textContent+=[`
|
||
.pdf-plus-backlink-highlight-layer .pdf-plus-backlink.hovered-highlight {`,` --pdf-plus-color: ${i};`,` --pdf-plus-backlink-icon-color: ${i};`,` --pdf-plus-rect-color: ${i};`,"}"].join(`
|
||
`);for(let[r,o]of Object.entries(e.colors))cn(o)&&(this.styleEl.textContent+=[`
|
||
.${ei.CLS}-item[data-highlight-color="${r.toLowerCase()}"] > .${ei.CLS}-item-inner {`,` background-color: ${o};`,"}"].join(`
|
||
`));this.styleEl.textContent+=[`
|
||
.${ei.CLS}-item:not([data-highlight-color]) > .${ei.CLS}-item-inner {`," background-color: transparent;","}"].join(`
|
||
`),this.styleEl.textContent+=[`
|
||
.workspace-leaf.pdf-plus-link-opened.is-highlighted::before {`,` opacity: ${e.existingTabHighlightOpacity};`,"}"].join(`
|
||
`),this.setCSSColorVariables(),this.updateCalloutStyle()}updateCalloutStyle(){var i;if(!this.plugin.settings.useCallout)return;let e=this.plugin.settings.calloutType.toLowerCase();for(let r of Object.keys(this.plugin.settings.colors)){let o=(i=this.toCSSVariableName(r))!=null?i:"--pdf-plus-default-color-rgb";this.styleEl.textContent+=[`
|
||
.callout[data-callout="${e}"][data-callout-metadata="${r.toLowerCase()}"] {`,` --callout-color: var(${o});`," background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))","}"].join(`
|
||
`)}this.styleEl.textContent+=[`
|
||
.callout[data-callout="${e}"] {`," --callout-color: var(--pdf-plus-default-color-rgb);"," background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))","}"].join(`
|
||
`);let t=this.plugin.settings.calloutIcon;t?this.styleEl.textContent+=[`
|
||
.callout[data-callout="${e}"] {`,` --callout-icon: lucide-${t};`,"}"].join(`
|
||
`):this.styleEl.textContent+=[`
|
||
.callout[data-callout="${e}"] .callout-icon {`," display: none;","}"].join(`
|
||
`)}registerCalloutRenderer(){let e=this.plugin.settings.calloutType.toLowerCase();this.plugin.registerMarkdownPostProcessor((t,i)=>{for(let r of t.querySelectorAll(`.callout[data-callout="${e}"][data-callout-metadata*=","]`))i.addChild(new dm(r))})}setCSSColorVariables(){let e=this.plugin.settings;for(let[i,r]of Object.entries(e.colors)){let o=this.toCSSVariableName(i),s=Or(r);if(o!==null&&s!==null){let{r:a,g:c,b:l}=s;this.styleEl.textContent+=[`
|
||
body {`,` ${o}: ${a}, ${c}, ${l}`,"}"].join(`
|
||
`)}}let t=!1;if(e.defaultColor in e.colors){let i=this.toCSSVariableName(e.defaultColor);i!==null&&(this.styleEl.textContent+=[`
|
||
body {`,` --pdf-plus-default-color-rgb: var(${i})`,"}"].join(`
|
||
`),t=!0)}t||(this.styleEl.textContent+=[`
|
||
body {`," --pdf-plus-default-color-rgb: var(--text-highlight-bg-rgb)","}"].join(`
|
||
`))}toCSSVariableName(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,"-");return t=t.replace(/^-+|-+$/g,""),t?"--pdf-plus-"+t+"-rgb":null}getRgb(e){let t="--pdf-plus-default-color-rgb";if(e){let o=this.toCSSVariableName(e);o&&(t=o)}let i=getComputedStyle(document.body).getPropertyValue(t);return ig(i)}},dm=class extends y1.MarkdownRenderChild{onload(){let e=this.containerEl.dataset.calloutMetadata;if(e){let t=e.split(",").map(r=>parseInt(r));t.length===3&&t.every(r=>0<=r&&r<=255)&&this.containerEl.style.setProperty("--callout-color",t.join(", "))}}};var b0=class extends ye.Plugin{constructor(){super(...arguments);this.lib=new g0(this);this.events=new ye.Events;this.autoFocusToggleIconEl=null;this.autoPasteToggleIconEl=null;this.patchStatus={workspace:!1,pagePreview:!1,pdfView:!1,pdfInternals:!1,pdfOutlineViewer:!1,backlink:!1};this.classes={};this.lastPasteFile=null;this.lastActiveMarkdownFile=null;this.lastAnnotationPopupChild=null;this.lastCopiedDestInfo=null;this.vimrc=null;this.pdfViewerChildren=new Map;this.shownMenus=new Set;this.requiresDataviewInlineFieldsMigration=!1;this.isDebugMode=!1}async onload(){this.checkVersion(),this.addIcons(),await(0,ye.loadPdfJs)(),await this.loadSettings(),await this.saveSettings(),this.domManager=this.addChild(new x0(this)),this.domManager.registerCalloutRenderer(),this.registerRibbonIcons(),this.patchObsidian(),this.registerPDFEmbedCreator(),this.registerHoverLinkSources(),this.registerCommands(),this.registerGlobalVariables(),this.registerEvents(),this.startTrackingActiveMarkdownFile(),this.registerObsidianProtocolHandler("pdf-plus",this.obsidianProtocolHandler.bind(this)),this.addSettingTab(this.settingTab=new Mu(this)),this.registerStyleSettings(),this.checkDeprecatedSettings(),this.checkDataviewInlineFields(),this.registerAutoCheckForUpdates()}async onunload(){await this.cleanUpResources()}async cleanUpResources(){await this.cleanUpAnystyleFiles()}async cleanUpAnystyleFiles(){let t=this.app.vault.adapter;if(ye.Platform.isDesktopApp&&t instanceof ye.FileSystemAdapter){let i=this.getAnyStyleInputDir();if(i)try{await t.rmdir(i,!0)}catch(r){if(r.code!=="ENOENT")throw r}}}checkVersion(){this.textDivFirstIdx=ye.apiVersion==="1.8.0"?1:0,this.obsidianHasFocusBug=!(0,ye.requireApiVersion)("1.9.0"),this.obsidianHasTextSelectionBug=(0,ye.requireApiVersion)("1.9.0"),Pa.openIfNecessary(this)}addIcons(){(0,ye.addIcon)("vim",'<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" font-family="Arial" font-size="48" fill="currentColor" style="letter-spacing:2; font-weight:bold;">VIM</text>')}getDefaultSettings(){return structuredClone(Qn)}async restoreDefaultSettings(){this.settings=this.getDefaultSettings(),await this.saveSettings()}async loadSettings(){if(this.settings=Object.assign(this.getDefaultSettings(),await this.loadData()),this.setCitationIdRegex(),!this.settings.anystylePath){let t=this.loadLocalStorage("anystylePath");typeof t=="string"&&(this.settings.anystylePath=t)}(this.settings.defaultDisplayTextFormatIndex<0||this.settings.defaultDisplayTextFormatIndex>=this.settings.displayTextFormats.length)&&(this.settings.defaultDisplayTextFormatIndex=0),(this.settings.defaultColorPaletteActionIndex<0||this.settings.defaultColorPaletteActionIndex>=this.settings.copyCommands.length)&&(this.settings.defaultColorPaletteActionIndex=0),this.validateAutoFocusAndAutoPasteSettings();for(let[t,i]of Object.entries(this.settings.colors))this.settings.colors[t]=i.toLowerCase();this.settings.paneTypeForFirstMDLeaf==="split"&&(this.settings.paneTypeForFirstMDLeaf="right");for(let t of this.settings.copyCommands)t.hasOwnProperty("format")&&(t.template=t.format,delete t.format);if(this.settings.hasOwnProperty("aliasFormat")&&(this.settings.displayTextFormats.push({name:"Custom",template:this.settings.aliasFormat}),delete this.settings.aliasFormat),this.settings.hasOwnProperty("showCopyLinkToSearchInContextMenu")){let t=this.settings.contextMenuConfig.find(({id:i})=>i==="search");t&&t.visible&&(t.visible=this.settings.showCopyLinkToSearchInContextMenu),delete this.settings.showCopyLinkToSearchInContextMenu}this.settings.showContextMenuOnMouseUpIf==="mod"&&(this.settings.showContextMenuOnMouseUpIf="Mod"),this.settings.enableEditEncryptedPDF=!1,this.renameSetting("enalbeWriteHighlightToFile","enablePDFEdit"),this.renameSetting("selectToCopyToggleRibbonIcon","autoCopyToggleRibbonIcon"),this.renameCommand("pdf-plus:toggle-select-to-copy",`${this.manifest.id}:toggle-auto-copy`),this.renameSetting("removeWhitespaceBetweenCJKChars","removeWhitespaceBetweenCJChars"),this.loadContextMenuConfig()}renameSetting(t,i){this.settings.hasOwnProperty(t)&&(this.settings[i]=this.settings[t],delete this.settings[t])}renameCommand(t,i){let{hotkeyManager:r}=this.app,o=r.getHotkeys(t);o&&(r.removeHotkeys(t),r.setHotkeys(i,o))}loadContextMenuConfig(){let t=this.getDefaultSettings().contextMenuConfig,i=[];for(let r of t){let o=this.settings.contextMenuConfig.find(({id:s})=>s===r.id);i.push(o!=null?o:r)}this.settings.contextMenuConfig.length=0,this.settings.contextMenuConfig.push(...i)}validateAutoFocusAndAutoPasteSettings(){this.settings.autoFocus&&this.settings.autoPaste&&(this.settings.autoFocus=!1)}checkDeprecatedSettings(){if(document.querySelectorAll(".pdf-plus-deprecated-setting-notice").length>0)return;let t=(a,c)=>{let l=new ye.Notice("",0).setMessage(createFragment(d=>{let h=createEl("a",{href:"obsidian://pdf-plus?setting="+a});d.append("PDF++: "),c(d,h)}));l.containerEl.addClass("pdf-plus-deprecated-setting-notice"),l.messageEl.setCssStyles({color:"var(--text-warning)"})};this.settings.trimSelectionEmbed&&t("trimSelectionEmbed",(a,c)=>{a.append("The option "),c.textContent="Trim selection/annotation embeds",a.append(c),a.append(" is deprecated and will be removed in the near future. It is recommended to disable it and use the rectangular selection tool instead.")});let i=(a,c)=>new RegExp(`\\b${c}\\b`).test(a),r=(a,c)=>{for(let l of a.matchAll(/{{(.*?)}}/g))if(i(l[1],c))return!0;return!1},o=a=>{let c=this.settings[a],l=!1;typeof c=="string"?l=r(c,"linkedFile")||r(c,"linkedFileProperties"):Array.isArray(c)&&(l=c.some(({template:d})=>r(d,"linkedFile")||r(d,"linkedFileProperties"))),l&&t(a,(d,h)=>{d.append("The template variables "),d.createEl("code",{text:"linkedFile"}),d.append(" and "),d.createEl("code",{text:"linkedFileProperties"}),d.append(" are deprecated and will be removed in the near future. Please "),h.textContent="remove them from your templates",d.append(h),d.append(".")})};["displayTextFormats","copyCommands","outlineLinkDisplayTextFormat","outlineLinkCopyFormat","thumbnailLinkDisplayTextFormat","thumbnailLinkCopyFormat","copyOutlineAsHeadingsDisplayTextFormat","copyOutlineAsListDisplayTextFormat","copyOutlineAsListFormat","copyOutlineAsHeadingsFormat"].forEach(o)}async checkDataviewInlineFields(){rm(this,t=>{if(t.length===0){this.requiresDataviewInlineFieldsMigration=!1;return}this.requiresDataviewInlineFieldsMigration=!0;let i=new ye.Notice(createFragment(r=>r.append(`PDF++: Please consider moving the "${this.settings.proxyMDProperty}" Dataview inline fields to the properties (YAML frontmatter).`,createEl("br"),"Click ",createEl("a",{text:"here"},o=>{o.onclick=()=>{new Ia(this,t).open()}})," for more details.")),0);i.containerEl.addClass("pdf-plus-deprecated-setting-notice"),i.messageEl.setCssStyles({color:"var(--text-warning)"})})}async saveSettings(){let t=Object.assign({},this.settings);this.saveLocalStorage("anystylePath",t.anystylePath),delete t.anystylePath,await this.saveData(t)}loadLocalStorage(t){return this.app.loadLocalStorage(this.manifest.id+"-"+t)}saveLocalStorage(t,i){this.app.saveLocalStorage(this.manifest.id+"-"+t,i)}setCitationIdRegex(){let t=this.settings.citationIdPatterns.split(/\r?\n/).filter(i=>i.trim());this.citationIdRegex=new RegExp(t.join("|"))}registerStyleSettings(){this.app.workspace.trigger("parse-style-settings"),this.register(()=>this.app.workspace.trigger("parse-style-settings"))}registerRibbonIcons(){if(this.autoCopyMode=new m0(this),this.autoCopyMode.toggle(this.settings.autoCopy),this.register(()=>this.autoCopyMode.unload()),this.settings.autoFocusToggleRibbonIcon){let t=!1;this.autoFocusToggleIconEl=this.addRibbonIcon(this.settings.autoFocusIconName,`${this.manifest.name}: Toggle auto-focus`,()=>{t||this.toggleAutoFocus()}),this.autoFocusToggleIconEl.toggleClass("is-active",this.settings.autoFocus),this.registerDomEvent(this.autoFocusToggleIconEl,"contextmenu",i=>{if(t)return;let r=new ye.Menu;r.addItem(o=>{o.setIcon("lucide-settings").setTitle("Customize...").onClick(()=>{this.openSettingTab().scrollToHeading("auto-focus")})}),r.onHide(()=>{t=!1}),r.showAtMouseEvent(i),t=!0})}if(this.settings.autoPasteToggleRibbonIcon){let t=!1;this.autoPasteToggleIconEl=this.addRibbonIcon(this.settings.autoPasteIconName,`${this.manifest.name}: Toggle auto-paste`,()=>{t||this.toggleAutoPaste()}),this.autoPasteToggleIconEl.toggleClass("is-active",this.settings.autoPaste),this.registerDomEvent(this.autoPasteToggleIconEl,"contextmenu",i=>{if(t)return;let r=new ye.Menu;r.addItem(o=>{o.setIcon("lucide-settings").setTitle("Customize...").onClick(()=>{this.openSettingTab().scrollToHeading("auto-paste")})}),r.onHide(()=>{t=!1}),r.showAtMouseEvent(i),t=!0})}}toggleAutoFocusRibbonIcon(t){let i=this.autoFocusToggleIconEl;i&&(t=t!=null?t:!i.hasClass("is-active"),i.toggleClass("is-active",t))}toggleAutoPasteRibbonIcon(t){let i=this.autoPasteToggleIconEl;i&&(t=t!=null?t:!i.hasClass("is-active"),i.toggleClass("is-active",t))}async toggleAutoFocus(t,i){t=t!=null?t:!this.settings.autoFocus,this.toggleAutoFocusRibbonIcon(t),this.settings.autoFocus=t,this.settings.autoFocus&&this.settings.autoPaste&&this.toggleAutoPaste(!1,!1),(i==null||i)&&await this.saveSettings()}async toggleAutoPaste(t,i){t=t!=null?t:!this.settings.autoPaste,this.toggleAutoPasteRibbonIcon(t),this.settings.autoPaste=t,this.settings.autoPaste&&this.settings.autoFocus&&this.toggleAutoFocus(!1,!1),(i==null||i)&&await this.saveSettings()}patchObsidian(){this.app.workspace.onLayoutReady(()=>{a1(this),c1(this),p1(this)}),this.tryPatchUntilSuccess(o1),this.tryPatchUntilSuccess(s1),this.tryPatchUntilSuccess(h1),this.tryPatchUntilSuccess(u1)}tryPatchUntilSuccess(t,i){this.app.workspace.onLayoutReady(()=>{if(!t(this)){let o=i==null?void 0:i(),s=this.app.workspace.on("layout-change",()=>{t(this)&&(this.app.workspace.offref(s),o==null||o.hide())});this.registerEvent(s)}})}registerEl(t){return this.register(()=>t.remove()),t}loadStyle(){this.domManager.update()}registerPDFEmbedCreator(){let t=this.app.embedRegistry.embedByExtension.pdf;this.register(()=>{this.app.embedRegistry.unregisterExtension("pdf"),this.app.embedRegistry.registerExtension("pdf",t)}),this.app.embedRegistry.unregisterExtension("pdf"),this.app.embedRegistry.registerExtension("pdf",(i,r,o)=>{var c;let s=ma(o),a=null;if(s.has("rect")&&s.has("page")){let l=parseInt(s.get("page")),d=s.get("rect").split(",").map(p=>parseFloat(p)),h=s.has("width")?parseFloat(s.get("width")):void 0,u=(c=s.get("annotation"))!=null?c:void 0;Number.isInteger(l)&&d.length===4&&(a=new Jr(this,i,r,o,l,d,h,u))}if(a||(a=t(i,r,o),this.classes.PDFEmbed||(this.classes.PDFEmbed=a.constructor),this.patchStatus.pdfInternals||Ea(this,a.viewer)),this.registerDomEvent(a.containerEl,"dblclick",l=>{if(this.settings.dblclickEmbedToOpenLink&&It(l,l.target)&&(l.target.closest(".pdf-embed[src] > .pdf-container")||l.target.closest(".pdf-cropped-embed"))){let d=r.path+o;this.app.workspace.openLinkText(d,"",ye.Keymap.isModEvent(l)),l.preventDefault()}}),this.settings.embedUnscrollable)for(let l of["wheel","touchmove"])this.registerDomEvent(a.containerEl,l,d=>{It(d,d.target)&&d.target.closest('.pdf-embed[src*="#"] .pdf-viewer-container')&&d.preventDefault()},{passive:!1});return a instanceof Jr&&this.registerDomEvent(a.containerEl,"click",l=>{It(l,l.target)&&l.target.closest(".cm-editor")&&l.preventDefault()}),s.has("color")?a.containerEl.dataset.highlightColor=s.get("color").toLowerCase():this.settings.defaultColor&&(a.containerEl.dataset.highlightColor=this.settings.defaultColor.toLowerCase()),a})}registerGlobalVariable(t,i,r=!0){if(t in window){if(r)throw new Error(`${this.manifest.name}: Global variable "${t}" already exists.`);return}window[t]=i,this.register(()=>delete window[t])}registerGlobalVariables(){this.registerGlobalVariable("pdfPlus",this,!1),this.registerGlobalVariable("pdflib",eg,!1)}registerEvents(){this.registerEvent(this.app.workspace.on("layout-change",()=>{for(let t of this.pdfViewerChildren.keys())t!=null&&t.isShown()||this.pdfViewerChildren.delete(t)})),ye.Platform.isDesktopApp&&this.registerEvent(this.app.workspace.on("active-leaf-change",t=>{if(this.settings.syncWithDefaultApp&&t&&this.lib.isPDFView(t.view)){let i=t.view.file;i&&(this.app.openWithDefaultApp(i.path),this.settings.focusObsidianAfterOpenPDFWithDefaultApp&&Xc())}})),this.registerEvent(this.app.vault.on("delete",t=>{t instanceof ye.TFile&&t===this.lastPasteFile&&(this.lastPasteFile=null)})),this.registerEvent(this.app.vault.on("rename",(t,i)=>{t instanceof ye.TFile&&this.settings.newFileTemplatePath===i&&(this.settings.newFileTemplatePath=t.path,this.saveSettings())})),this.registerEvent(this.app.vault.on("delete",t=>{t instanceof ye.TFile&&this.settings.newFileTemplatePath===t.path&&(this.settings.newFileTemplatePath="",this.saveSettings())})),this.registerEvent(this.app.vault.on("modify",async t=>{t instanceof ye.TFile&&t.path===this.settings.vimrcPath&&(this.vimrc=await this.app.vault.read(t))})),this.registerEvent(this.app.workspace.on("quit",async()=>{await this.cleanUpResources()})),this.registerEvent(this.app.workspace.on("editor-drop",(t,i,r)=>this.lib.dummyFileManager.createDummyFilesOnEditorDrop(t,i,r)))}registerOneTimeEvent(t,...[i,r,o]){let s=t.on(i,(...a)=>{r.call(o,...a),t.offref(s)},o);this.registerEvent(s)}registerAutoCheckForUpdates(){let t=async()=>{if(!this.settings.autoCheckForUpdates)return;(await this.lib.checkForUpdates({minHoursSinceRelease:24})).shouldUpdate&&new ye.Notice(createFragment(r=>{r.append("PDF++: There is a newer version available! ",createEl("a",{text:"Update now",href:"obsidian://show-plugin?id=pdf-plus"}))}))};t(),this.registerInterval(window.setInterval(t,1e3*60*60*24))}registerHoverLinkSources(){this.registerHoverLinkSource("pdf-plus",{defaultMod:!0,display:"PDF++: backlink highlights"}),this.registerHoverLinkSource(Zn.HOVER_LINK_SOURCE_ID,{defaultMod:!0,display:"PDF++: internal links in PDF (except for citations)"}),this.registerHoverLinkSource(pn.HOVER_LINK_SOURCE_ID,{defaultMod:!1,display:"PDF++: citation links in PDF"}),this.registerHoverLinkSource(Kr.HOVER_LINK_SOURCE_ID,{defaultMod:!0,display:"PDF++: external links in PDF"}),this.registerHoverLinkSource(Yn.HOVER_LINK_SOURCE_ID,{defaultMod:!0,display:"PDF++: outlines (bookmarks)"}),this.registerHoverLinkSource(Jn.HOVER_LINK_SOURCE_ID,{defaultMod:!0,display:"PDF++: thumbnails"})}registerCommands(){this.lib.commands.registerCommands()}startTrackingActiveMarkdownFile(){let{workspace:t,vault:i}=this.app;t.onLayoutReady(()=>{let r=t.getActiveFile();if(r&&r.extension==="md")this.lastActiveMarkdownFile=r;else{let o=t.recentFileTracker.getRecentFiles({showMarkdown:!0,showCanvas:!1,showNonImageAttachments:!1,showImages:!1,maxCount:1}).first();if(o){let s=i.getAbstractFileByPath(o);s instanceof ye.TFile&&s.extension==="md"&&(this.lastActiveMarkdownFile=s)}}this.registerEvent(t.on("file-open",o=>{o instanceof ye.TFile&&o.extension==="md"&&(this.lastActiveMarkdownFile=o)})),this.registerEvent(i.on("delete",o=>{o instanceof ye.TFile&&o===this.lastActiveMarkdownFile&&(this.lastActiveMarkdownFile=null)}))})}obsidianProtocolHandler(t){if("create-dummy"in t)return this.lib.dummyFileManager.createDummyFilesFromObsidianUrl(t);if("setting"in t)return this.settingTab.openFromObsidianUrl(t)}on(t,i,r){return this.events.on(t,i,r)}off(t,i){this.events.off(t,i)}offref(t){this.events.offref(t)}trigger(t,...i){this.events.trigger(t,...i)}requireModKeyForLinkHover(t="pdf-plus"){var i,r,o;return(o=(r=this.app.internalPlugins.plugins["page-preview"].instance.overrides[t])!=null?r:(i=this.app.workspace.hoverLinkSources[t])==null?void 0:i.defaultMod)!=null?o:!1}openSettingTab(){return this.app.setting.open(),this.app.setting.activeTab!==this.settingTab&&this.app.setting.openTabById(this.manifest.id),this.settingTab}openHotkeySettingTab(t){this.app.setting.open();let i=this.app.setting.openTabById("hotkeys");return i.setQuery(t!=null?t:this.manifest.id),i}getAnyStyleInputDir(){let t=this.manifest.dir;return t?t+"/anystyle":null}};
|
||
/*! Bundled license information:
|
||
|
||
crypto-js/ripemd160.js:
|
||
(** @preserve
|
||
(c) 2012 by Cédric Mesnil. All rights reserved.
|
||
|
||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||
|
||
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||
|
||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
*)
|
||
|
||
crypto-js/mode-ctr-gladman.js:
|
||
(** @preserve
|
||
* Counter block mode compatible with Dr Brian Gladman fileenc.c
|
||
* derived from CryptoJS.mode.CTR
|
||
* Jan Hruby jhruby.web@gmail.com
|
||
*)
|
||
*/
|
||
|
||
/* nosourcemap */ |