@freereportjs/core 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/freereport.esm.js +44 -44
- package/dist/cdn/freereport.min.js +46 -46
- package/dist/index.d.ts +17 -2
- package/dist/index.js +46 -9
- package/package.json +1 -1
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
var $e=.35277777777777775,Hi=25.4/96,yn="'Malgun Gothic', 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif",Er=(e,t=e.size*(96/72))=>`${e.italic?"italic ":""}${e.bold?"bold ":""}${t}px ${wn(e.family)}, ${yn}`,wn=e=>/^[\w-]+$/.test(e)?e:`'${e.replace(/'/g,"")}'`,ms=e=>e>=4352&&e<=4447||e>=11904&&e<=42191||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65072&&e<=65103||e>=65280&&e<=65376||e>=65504&&e<=65510,
|
|
2
|
-
FreeReport\uB294 \uAC1C\uC778\uC5D0\uAC8C \uBB34\uB8CC\uC785\uB2C8\uB2E4. \uD68C\uC0AC\uC5D0\uC11C \uC4F0\uB824\uBA74 \uB3C4\uBA54\uC778 \uB77C\uC774\uC120\uC2A4(\uB3C4\uBA54\uC778\uB2F9 \uC5F0 50\uB9CC \uC6D0, \uC601\uAD6C 90\uB9CC \uC6D0)\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4: ${En}`,format:"FreeReport: the license key is not in the right format. / \uB77C\uC774\uC120\uC2A4 \uD0A4 \uD615\uC2DD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",signature:"FreeReport: the license key could not be verified. / \uB77C\uC774\uC120\uC2A4 \uD0A4\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",expired:"FreeReport: the license key has expired. / \uB77C\uC774\uC120\uC2A4 \uAE30\uAC04\uC774 \uB05D\uB0AC\uC2B5\uB2C8\uB2E4.",domain:"FreeReport: the license key is for a different domain. / \uB2E4\uB978 \uB3C4\uBA54\uC778\uC6A9 \uB77C\uC774\uC120\uC2A4 \uD0A4\uC785\uB2C8\uB2E4.",updates:"FreeReport: this version was released after the update period of your perpetual license. / \uC601\uAD6C \uB77C\uC774\uC120\uC2A4\uC758 \uC5C5\uB370\uC774\uD2B8 \uAE30\uAC04 \uB4A4\uC5D0 \uB098\uC628 \uBC84\uC804\uC785\uB2C8\uB2E4."};function Nr(e,t=typeof location<"u"?location.hostname:""){try{if(
|
|
3
|
-
${En}`),!1},()=>!1):(console.info(Br.missing),Nr({version:_t,licensed:!1},t),o=Promise.resolve(!1)),Ir.set(r,o),o)}function ks(e=typeof location<"u"?location.hostname:""){if(
|
|
4
|
-
`:
|
|
5
|
-
`),l=r*$e*1.2,i
|
|
6
|
-
`).map(
|
|
7
|
-
`),
|
|
8
|
-
`).map(
|
|
1
|
+
var $e=.35277777777777775,Hi=25.4/96,yn="'Malgun Gothic', 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif",Er=(e,t=e.size*(96/72))=>`${e.italic?"italic ":""}${e.bold?"bold ":""}${t}px ${wn(e.family)}, ${yn}`,wn=e=>/^[\w-]+$/.test(e)?e:`'${e.replace(/'/g,"")}'`,ms=e=>e>=4352&&e<=4447||e>=11904&&e<=42191||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65072&&e<=65103||e>=65280&&e<=65376||e>=65504&&e<=65510,Rr={width(e,t){let n=0;for(let r of e){let o=r.codePointAt(0);ms(o)?n+=.92:r===" "?n+=.28:/[il.,:;'|!]/.test(r)?n+=.25:/[mwMW@]/.test(r)?n+=.82:/[A-Z]/.test(r)?n+=.64:n+=.53}return n*t.size*$e*(t.bold?1.04:1)}};function Tr(){let e=null;try{e=typeof document<"u"?document.createElement("canvas").getContext("2d"):null}catch{e=null}if(!e)return Rr;let t=e,n=new Map,r=100;return{width(o,s){let i=`${s.family}|${s.bold?1:0}|${s.italic?1:0}`,l=n.get(i);if(l||(l=new Map,n.set(i,l)),o.length>64)return t.font=Er(s,r),t.measureText(o).width/r*s.size*$e;let a=l.get(o);return a===void 0&&(t.font=Er(s,r),a=t.measureText(o).width/r,l.size>2e4&&l.clear(),l.set(o,a)),a*s.size*$e}}}var Pr=null;function kt(){return Pr??(Pr=Tr())}function xn(){Pr=null}var hs=/^[)\]}.,:;!?%、。,.)」』】〕〉》’”]/;function kn(e,t,n,r,o=0){let s=[],i=l=>r.width(l,n)+o*[...l].length;for(let l of e.split(/\r?\n/)){if(l===""){s.push("");continue}if(i(l)<=t){s.push(l);continue}let a=l.match(/[A-Za-z0-9À-ɏ_@#&*+=/\\'"`~^$€₩.,:;!?%()[\]{}<>|-]+|\s+|./gu)??[],f="";for(let d of a){let g=f+d;if(i(g.trimEnd())<=t||f===""){if(f===""&&i(d)>t&&!/^\s+$/.test(d)){let u="";for(let c of d)u&&i(u+c)>t&&(s.push(u),u=""),u+=c;f=u}else f=g;continue}if(/^\s+$/.test(d)){s.push(f.trimEnd()),f="";continue}if(hs.test(d)&&f.length>1){let u=[...f],c=u.pop();s.push(u.join("").trimEnd()),f=c+d;continue}s.push(f.trimEnd()),f=d}s.push(f.trimEnd())}return s}var $n="https://cdn.jsdelivr.net/gh/fonts-archive",Cr=new Map,Ar=e=>e.toLowerCase().replace(/[\s'"_-]/g,"");function vn(e,t){Cr.set(Ar(e),t)}function pt(e){return Cr.get(Ar(e))}vn("Nanum Gothic",{css:"https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@400;700&display=swap",normal:`${$n}/NanumGothic/NanumGothic.ttf`,bold:`${$n}/NanumGothic/NanumGothicBold.ttf`});vn("Nanum Myeongjo",{css:"https://fonts.googleapis.com/css2?family=Nanum+Myeongjo:wght@400;700&display=swap",normal:`${$n}/NanumMyeongjo/NanumMyeongjo.ttf`});function Mn(e){let t=new Set(["Nanum Gothic"]);e.font?.family&&t.add(e.font.family);for(let r of Object.values(e.styles??{}))r.fontFamily&&t.add(r.fontFamily);let n=[e.bands.title,e.bands.pageHeader,e.bands.columnHeader,e.bands.detail,e.bands.summary,e.bands.pageFooter,e.bands.noData,...(e.bands.groups??[]).flatMap(r=>[r.header,r.footer])];for(let r of n)for(let o of r?.elements??[])o.style?.fontFamily&&t.add(o.style.fontFamily);return[...t]}var jr=new Set;function $t(e,t=document){for(let n of e){let r=pt(n)?.css;if(!r||t===document&&jr.has(r)||t.querySelector(`link[data-fr-font="${CSS.escape(r)}"]`))continue;let o=t.createElement("link");o.rel="stylesheet",o.href=r,o.dataset.frFont=r,t.head.appendChild(o),t===document&&jr.add(r)}}async function nt(e,t=4e3){if(typeof document>"u"||!document.fonts)return;let n=Mn(e);$t(n);let r="\uAC00\uB098\uB2E4ABC123",o=n.flatMap(l=>[`400 12px '${l}'`,`700 12px '${l}'`].map(a=>document.fonts.load(a,r).catch(()=>[]))),s=n.map(l=>document.fonts.check(`12px '${l}'`,r)).join();await Promise.race([Promise.all(o),new Promise(l=>setTimeout(l,t))]);let i=n.map(l=>document.fonts.check(`12px '${l}'`,r)).join();s!==i&&xn()}function Sn(e){let t=new Set;for(let o of e)for(let s of o.items)s.kind==="text"&&t.add(s.font.family);let n={},r=pt("Nanum Gothic");n.default={normal:r.normal,bold:r.bold};for(let o of t){let s=pt(o);s?.normal&&(n[o]={normal:s.normal,bold:s.bold})}return n}var _t="0.9.0",Lr="2026-10-16";var gs={kty:"EC",crv:"P-256",x:"MiJXJR8TZJ_-0VKk0wIQ-5mzRsyQ6ruGsbcRRdw9jrw",y:"MTdklYSzCM2pganffz7PPMfxSclQkBLqU_9se_VDznM"},En="https://freereport.app/pricing/",Fr="https://freereport.app/api/usage",bs="https://freereport.app/api/domain-status",Dr=e=>{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-e.length%4)%4));return Uint8Array.from(t,n=>n.charCodeAt(0))};function Tn(e){let t=e.toLowerCase().replace(/^\[|\]$/g,"");return!t||t==="localhost"||t==="127.0.0.1"||t==="::1"||t==="0.0.0.0"||t.endsWith(".localhost")||t.endsWith(".test")||t.endsWith(".local")||/^(10\.\d+|192\.168|172\.(1[6-9]|2\d|3[01]))\.\d+\.\d+$/.test(t)}function ys(e,t){let n=e.toLowerCase().replace(/\.$/,"");return t.some(r=>{let o=r.toLowerCase().replace(/\.$/,""),s=o.startsWith("*."),i=s?o.slice(2):o;return i?n===i||n===`www.${i}`?!0:s&&n.endsWith(`.${i}`):!1})}var ws=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`;async function Hr(e,t,n={}){let r=typeof e=="string"?e.trim().split("."):[];if(r.length!==3||r[0]!=="FR1")return{ok:!1,reason:"format"};let o;try{if(o=JSON.parse(new TextDecoder().decode(Dr(r[1]))),!Array.isArray(o.domains)||typeof o.expires!="string")return{ok:!1,reason:"format"}}catch{return{ok:!1,reason:"format"}}let s=typeof crypto<"u"?crypto.subtle:void 0;if(!s)return{ok:!1,reason:"unsupported",info:o};try{let i=await s.importKey("jwk",n.publicKey??gs,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]),l=new TextEncoder().encode(`${r[0]}.${r[1]}`);if(!await s.verify({name:"ECDSA",hash:"SHA-256"},i,Dr(r[2]),l))return{ok:!1,reason:"signature",info:o}}catch{return{ok:!1,reason:"signature",info:o}}return ws(n.now??new Date)>o.expires?{ok:!1,reason:"expired",info:o}:ys(t,o.domains)?o.updates&&(n.released??Lr)>o.updates?{ok:!1,reason:"updates",info:o}:{ok:!0,info:o}:{ok:!1,reason:"domain",info:o}}var Rn,Ir=new Map,vt=null;function xs(e){Rn=e}var Br={missing:`FreeReport is free for personal use. Company use needs a domain license (\u20A9500,000 per domain per year, or \u20A9900,000 perpetual): ${En}
|
|
2
|
+
FreeReport\uB294 \uAC1C\uC778\uC5D0\uAC8C \uBB34\uB8CC\uC785\uB2C8\uB2E4. \uD68C\uC0AC\uC5D0\uC11C \uC4F0\uB824\uBA74 \uB3C4\uBA54\uC778 \uB77C\uC774\uC120\uC2A4(\uB3C4\uBA54\uC778\uB2F9 \uC5F0 50\uB9CC \uC6D0, \uC601\uAD6C 90\uB9CC \uC6D0)\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4: ${En}`,format:"FreeReport: the license key is not in the right format. / \uB77C\uC774\uC120\uC2A4 \uD0A4 \uD615\uC2DD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",signature:"FreeReport: the license key could not be verified. / \uB77C\uC774\uC120\uC2A4 \uD0A4\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",expired:"FreeReport: the license key has expired. / \uB77C\uC774\uC120\uC2A4 \uAE30\uAC04\uC774 \uB05D\uB0AC\uC2B5\uB2C8\uB2E4.",domain:"FreeReport: the license key is for a different domain. / \uB2E4\uB978 \uB3C4\uBA54\uC778\uC6A9 \uB77C\uC774\uC120\uC2A4 \uD0A4\uC785\uB2C8\uB2E4.",updates:"FreeReport: this version was released after the update period of your perpetual license. / \uC601\uAD6C \uB77C\uC774\uC120\uC2A4\uC758 \uC5C5\uB370\uC774\uD2B8 \uAE30\uAC04 \uB4A4\uC5D0 \uB098\uC628 \uBC84\uC804\uC785\uB2C8\uB2E4."};function Nr(e,t=typeof location<"u"?location.hostname:""){try{if(Tn(t)||typeof navigator>"u")return;let n=new Date().toISOString().slice(0,10),r=`${t}|${n}|${e.licensed?1:0}`,o=typeof localStorage<"u"?localStorage:null;if(o?.getItem("freereport:usage")===r)return;o?.setItem("freereport:usage",r);let s=JSON.stringify({version:e.version,licensed:e.licensed,company:e.company,url:`${location.origin}${location.pathname}`});typeof navigator.sendBeacon=="function"?navigator.sendBeacon(Fr,s):typeof fetch=="function"&&fetch(Fr,{method:"POST",body:s,mode:"no-cors",keepalive:!0}).catch(()=>{})}catch{}}function Pn(e=Rn,t=typeof location<"u"?location.hostname:""){if(Tn(t))return Promise.resolve(!0);let n=e??Rn,r=`${n??""}@${t}`,o=Ir.get(r);return o||(n?o=Hr(n,t).then(s=>{if(Nr({version:_t,licensed:s.ok,company:s.ok?s.info.company:void 0},t),s.ok||s.reason==="unsupported")return s.ok||s.reason==="unsupported";let i=s.info?` (${s.info.domains.join(", ")}, ${s.info.expires})`:"";return console.warn(`${Br[s.reason]}${i}
|
|
3
|
+
${En}`),!1},()=>!1):(console.info(Br.missing),Nr({version:_t,licensed:!1},t),o=Promise.resolve(!1)),Ir.set(r,o),o)}function ks(e=typeof location<"u"?location.hostname:""){if(Tn(e)||typeof fetch!="function")return Promise.resolve(!1);if(vt)return vt;let t=new Date().toISOString().slice(0,10),n=null;try{n=typeof localStorage<"u"?localStorage:null;let r=JSON.parse(n?.getItem("freereport:badge")??"null");if(r&&r.host===e&&r.day===t)return vt=Promise.resolve(r.show)}catch{}return vt=fetch(bs,{mode:"cors",credentials:"omit"}).then(r=>r.ok?r.json():{badge:!1}).then(r=>{let o=r.badge===!0;try{n?.setItem("freereport:badge",JSON.stringify({host:e,day:t,show:o}))}catch{}return o},()=>!1),vt}async function Or(e,t=typeof location<"u"?location.hostname:""){return await Pn(e,t)?!1:ks(t)}var $s=["","\uC77C","\uC774","\uC0BC","\uC0AC","\uC624","\uC721","\uCE60","\uD314","\uAD6C"],vs=["","\uC2ED","\uBC31","\uCC9C"],qr=["","\uB9CC","\uC5B5","\uC870","\uACBD"];function Cn(e){if(!Number.isFinite(e))return"";let t=Math.floor(Math.abs(e));if(t===0)return"\uC601";let n=[];for(let r=0;t>0&&r<qr.length;r++){let o=t%1e4;if(t=Math.floor(t/1e4),!o)continue;let s="",i=String(o).padStart(4,"0");for(let l=0;l<4;l++){let a=Number(i[l]);a&&(s+=$s[a]+vs[3-l])}n.unshift(s+qr[r])}return(e<0?"\uB9C8\uC774\uB108\uC2A4 ":"")+n.join("")}function Mt(e){return Number.isFinite(e)?`\uC77C\uAE08 ${Cn(e).replace(/(^|[만억조경 ])([십백천])/g,"$1\uC77C$2")}\uC6D0\uC815`:""}var zr=["\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0"],Ms=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Ss=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Es=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],rt=(e,t=2)=>String(e).padStart(t,"0"),Xt=new Map,An=e=>{let t=Xt.get(e);return t===void 0&&(t=Rs(e),Xt.size>500&&Xt.clear(),Xt.set(e,t)),t},Rs=e=>/(yy|M{1,4}|d{1,4}|H{1,2}|h{1,2}|m{2}|s{2})/.test(e.replace(/"[^"]*"|\[[^\]]*\]/g,""))&&!/[#0]/.test(e.replace(/"[^"]*"/g,"").replace(/(yy+|M+|d+|H+|h+|m+|s+)/g,""));function Ts(e){if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number"&&Number.isFinite(e))return new Date(e);if(typeof e=="string"&&e.trim()){let t=/^(\d{4})[-./](\d{1,2})[-./](\d{1,2})(?:[ T](\d{1,2}):(\d{2})(?::(\d{2}))?)?$/.exec(e.trim());if(t)return new Date(+t[1],+t[2]-1,+t[3],+(t[4]??0),+(t[5]??0),+(t[6]??0));let n=new Date(e);return Number.isNaN(n.getTime())?null:n}return null}function jn(e,t,n="ko"){let r=n.startsWith("ko");return t.replace(/"([^"]*)"|yyyy|yy|MMMM|MMM|MM|M|dddd|ddd|dd|d|HH|H|hh|h|mm|m|ss|s|a|tt/g,(o,s)=>{if(s!==void 0)return s;let i=e.getHours();switch(o){case"yyyy":return String(e.getFullYear());case"yy":return rt(e.getFullYear()%100);case"MMMM":return r?`${e.getMonth()+1}\uC6D4`:new Date(2e3,e.getMonth(),1).toLocaleString("en",{month:"long"});case"MMM":return r?`${e.getMonth()+1}\uC6D4`:Es[e.getMonth()];case"MM":return rt(e.getMonth()+1);case"M":return String(e.getMonth()+1);case"dddd":return r?`${zr[e.getDay()]}\uC694\uC77C`:Ss[e.getDay()];case"ddd":return r?zr[e.getDay()]:Ms[e.getDay()];case"dd":return rt(e.getDate());case"d":return String(e.getDate());case"HH":return rt(i);case"H":return String(i);case"hh":return rt(i%12||12);case"h":return String(i%12||12);case"mm":return rt(e.getMinutes());case"m":return String(e.getMinutes());case"ss":return rt(e.getSeconds());case"s":return String(e.getSeconds());case"a":case"tt":return r?i<12?"\uC624\uC804":"\uC624\uD6C4":i<12?"AM":"PM"}return o})}function Ps(e){let t=[],n="",r=!1;for(let o of e)o==='"'&&(r=!r),o===";"&&!r?(t.push(n),n=""):n+=o;return t.push(n),t}function Ur(e,t){let n=Ps(t),r=n[0],o=e;e<0&&n[1]!==void 0?(r=n[1],o=-e):e===0&&n[2]!==void 0&&(r=n[2]);let s=/[#0][#0,]*(?:\.[#0]+)?|\.[#0]+/.exec(r.replace(/"[^"]*"/g,j=>"\0".repeat(j.length)));if(!s)return r.replace(/"/g,"");let i=s[0],l=r.slice(0,s.index).replace(/"/g,""),a=r.slice(s.index+i.length);(a.includes("%")||l.includes("%"))&&(o*=100);let d=0,g=i;for(;g.endsWith(",");)d++,g=g.slice(0,-1);o/=1e3**d;let[u,c=""]=g.split("."),p=(c.match(/0/g)??[]).length,b=c.length,S=Math.min(b,20),M=Math.abs(o)<1e15?+`${Math.round(+`${Math.abs(o)}e${S}`)}e-${S}`:Math.abs(o),$=(Number.isFinite(M)?M:Math.abs(o)).toFixed(S);b>p&&($=$.replace(new RegExp(`0{1,${b-p}}$`),"").replace(/\.$/,""));let[v,T]=$.split("."),x=(u.match(/0/g)??[]).length;return v==="0"&&x===0&&(v=""),v=v.padStart(x,"0"),u.includes(",")&&(v=v.replace(/\B(?=(\d{3})+(?!\d))/g,",")),a=a.replace(/"/g,""),`${o<0&&n[1]===void 0&&Math.abs(o)>=.5*10**-b?"-":""}${l}${v}${T?`.${T}`:""}${a}`}function ve(e,t,n="ko"){if(e==null)return"";let r=t?.trim();if(r){if(r==="korean")return Mt(Number(e));if(r==="koreanNumber")return Cn(Number(e));if(r==="bizNo")return String(e).replace(/\D/g,"").replace(/^(\d{3})(\d{2})(\d{5})$/,"$1-$2-$3");if(r==="upper")return String(e).toUpperCase();if(r==="lower")return String(e).toLowerCase();if(An(r)){let s=Ts(e);if(s)return jn(s,r,n)}let o=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e.replace(/,/g,"")):NaN;if(Number.isFinite(o))return Ur(o,r)}return e instanceof Date?jn(e,"yyyy-MM-dd",n):typeof e=="number"?Number.isInteger(e)?String(e):String(Math.round(e*1e10)/1e10):typeof e=="boolean"?e?"true":"false":Array.isArray(e)?e.map(o=>ve(o,t,n)).join(", "):typeof e=="object"?"":String(e)}var js=["===","!==","==","!=","<=",">=","&&","||","??","<",">","+","-","*","/","%","!","?",":","(",")",",",".","[","]"];function Cs(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(/\s/.test(r)){n++;continue}if(/[0-9]/.test(r)||r==="."&&/[0-9]/.test(e[n+1]??"")){let s=/^(\d*\.?\d+(?:[eE][+-]?\d+)?)/.exec(e.slice(n));t.push({t:"num",v:Number(s[1])}),n+=s[1].length;continue}if(r==='"'||r==="'"){let s="";for(n++;n<e.length&&e[n]!==r;){if(e[n]==="\\"&&n+1<e.length){let i=e[++n];s+=i==="n"?`
|
|
4
|
+
`:i==="t"?" ":i}else s+=e[n];n++}if(e[n]!==r)throw new SyntaxError("Unclosed string");n++,t.push({t:"str",v:s});continue}if(/[A-Za-z_$\u0080-]/.test(r)){let s=/^[A-Za-z_$\u0080-][\w$\u0080-]*/.exec(e.slice(n));t.push({t:"id",v:s[0]}),n+=s[0].length;continue}let o=js.find(s=>e.startsWith(s,n));if(!o)throw new SyntaxError(`Unexpected "${r}"`);t.push({t:"op",v:o}),n+=o.length}return t.push({t:"end"}),t}var ge=e=>{if(typeof e=="number")return e;if(typeof e=="string"){let t=Number(e.replace(/,/g,""));return Number.isFinite(t)?t:NaN}return typeof e=="boolean"?e?1:0:e instanceof Date?e.getTime():e==null?0:Number(e)},Pe=e=>{if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(typeof e=="number")return new Date(e);if(typeof e=="string"&&e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e),n=t?new Date(+t[1],+t[2]-1,+t[3]):new Date(e);return Number.isNaN(n.getTime())?null:n}return null},As=new Set(["__proto__","prototype","constructor"]);function Gr(e,t){if(e==null)return;let n=String(t);if(!As.has(n)){if(typeof e=="string")return n==="length"?e.length:void 0;if(typeof e=="object")return Array.isArray(e)&&n==="length"?e.length:Object.prototype.hasOwnProperty.call(e,n)?e[n]:void 0}}function Kr(e,t){return t==="report"||t==="all"?e.allRows:t==="group"?e.groupRows??e.allRows:t==="page"?e.pageRows??e.rows:e.rows}function Ls(e,t,n){return n?t.map((r,o)=>n({...e,row:r,vars:{...e.vars,rowNum:o+1}})):t}var Wr={sum:e=>e.reduce((t,n)=>t+(Number.isFinite(ge(n))?ge(n):0),0),avg:e=>{let t=e.map(ge).filter(Number.isFinite);return t.length?t.reduce((n,r)=>n+r,0)/t.length:0},min:e=>{let t=e.filter(n=>n!=null&&n!=="").map(ge).filter(Number.isFinite);return t.length?t.reduce((n,r)=>r<n?r:n):null},max:e=>{let t=e.filter(n=>n!=null&&n!=="").map(ge).filter(Number.isFinite);return t.length?t.reduce((n,r)=>r>n?r:n):null},count:e=>e.filter(t=>t!=null&&t!==""&&t!==!1).length,distinct:e=>new Set(e.map(t=>t instanceof Date?t.getTime():t)).size,first:e=>e[0],last:e=>e[e.length-1]},_r=e=>String(e).padStart(2,"0"),Ln={format:(e,t)=>ve(e,typeof t=="string"?t:void 0),korean:e=>Mt(ge(e)),koreanAmount:e=>Mt(ge(e)),round:(e,t)=>{let n=10**(Number(t)||0);return Math.round(ge(e)*n)/n},floor:(e,t)=>{let n=10**(Number(t)||0);return Math.floor(ge(e)*n)/n},ceil:(e,t)=>{let n=10**(Number(t)||0);return Math.ceil(ge(e)*n)/n},abs:e=>Math.abs(ge(e)),number:e=>ge(e),string:e=>e==null?"":String(e),upper:e=>String(e??"").toUpperCase(),lower:e=>String(e??"").toLowerCase(),trim:e=>String(e??"").trim(),len:e=>Array.isArray(e)?e.length:String(e??"").length,left:(e,t)=>String(e??"").slice(0,Number(t)),right:(e,t)=>{let n=String(e??"");return n.slice(Math.max(0,n.length-Number(t)))},substr:(e,t,n)=>String(e??"").substr(Number(t),n===void 0?void 0:Number(n)),replace:(e,t,n)=>String(e??"").split(String(t)).join(String(n??"")),concat:(...e)=>e.map(t=>t==null?"":String(t)).join(""),join:(e,t)=>Array.isArray(e)?e.join(t===void 0?", ":String(t)):"",padStart:(e,t,n)=>String(e??"").padStart(Math.min(1e3,Number(t)||0),n===void 0?" ":String(n)),iif:(e,t,n)=>e?t:n,coalesce:(...e)=>e.find(t=>t!=null&&t!==""),isEmpty:e=>e==null||e===""||Array.isArray(e)&&!e.length,date:e=>Pe(e),today:()=>{let e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate())},now:()=>new Date,year:e=>Pe(e)?.getFullYear()??null,month:e=>Pe(e)?Pe(e).getMonth()+1:null,day:e=>Pe(e)?.getDate()??null,addDays:(e,t)=>{let n=Pe(e);return n?new Date(n.getFullYear(),n.getMonth(),n.getDate()+Number(t)):null},dateDiff:(e,t)=>{let n=Pe(e),r=Pe(t);return n&&r?Math.round((r.getTime()-n.getTime())/864e5):null},ymd:e=>{let t=Pe(e);return t?`${t.getFullYear()}-${_r(t.getMonth()+1)}-${_r(t.getDate())}`:""},bizNo:e=>String(e??"").replace(/\D/g,"").replace(/^(\d{3})(\d{2})(\d{5})$/,"$1-$2-$3"),phone:e=>{let t=String(e??"").replace(/\D/g,"");return t.startsWith("02")?t.replace(/^(02)(\d{3,4})(\d{4})$/,"$1-$2-$3"):t.replace(/^(\d{3})(\d{3,4})(\d{4})$/,"$1-$2-$3")},groupSum:(e,t,n)=>{if(!Array.isArray(e))return[];let r=String(t),o=String(n),s=new Map;for(let i of e)s.set(i?.[r],(s.get(i?.[r])??0)+(Number.isFinite(ge(i?.[o]))?ge(i?.[o]):0));return[...s].map(([i,l])=>({[r]:i,[o]:l}))},groupCount:(e,t)=>{if(!Array.isArray(e))return[];let n=String(t),r=new Map;for(let o of e)r.set(o?.[n],(r.get(o?.[n])??0)+1);return[...r].map(([o,s])=>({[n]:o,count:s}))},min2:(e,t)=>Math.min(ge(e),ge(t)),max2:(e,t)=>Math.max(ge(e),ge(t))},St=0;function Vr(){St++}var Et=class Et{constructor(t){this.toks=t;this.i=0}peek(){return this.toks[this.i]}next(){return this.toks[this.i++]}isOp(t){let n=this.peek();return n.t==="op"&&n.v===t}expect(t){if(!this.isOp(t))throw new SyntaxError(`Expected "${t}"`);this.i++}parse(){let t=this.ternary();if(this.peek().t!=="end")throw new SyntaxError("Unexpected input after expression");return t}ternary(){let t=this.binary(0);if(!this.isOp("?"))return t;this.i++;let n=this.ternary();this.expect(":");let r=this.ternary();return o=>t(o)?n(o):r(o)}binary(t){if(t>=Et.LEVELS.length)return this.unary();let n=this.binary(t+1);for(;;){let r=this.peek();if(r.t!=="op"||!Et.LEVELS[t].includes(r.v))return n;this.i++;let o=this.binary(t+1),s=n;n=Ds(r.v,s,o)}}unary(){if(this.isOp("!")){this.i++;let t=this.unary();return n=>!t(n)}if(this.isOp("-")){this.i++;let t=this.unary();return n=>-ge(t(n))}if(this.isOp("+")){this.i++;let t=this.unary();return n=>ge(t(n))}return this.postfix()}postfix(){let t=this.primary();for(;;)if(this.isOp(".")){this.i++;let n=this.next();if(n.t!=="id")throw new SyntaxError('Expected a name after "."');let r=t;t=o=>Gr(r(o),n.v)}else if(this.isOp("[")){this.i++;let n=this.ternary();this.expect("]");let r=t;t=o=>Gr(r(o),n(o))}else return t}args(){let t=[];if(this.expect("("),!this.isOp(")"))do t.push(this.ternary());while(this.isOp(",")&&this.next());return this.expect(")"),t}primary(){let t=this.next();if(t.t==="num"||t.t==="str"){let r=t.v;return()=>r}if(t.t==="op"&&t.v==="("){let r=this.ternary();return this.expect(")"),r}if(t.t!=="id")throw new SyntaxError("Unexpected end of expression");let n=t.v;if(n==="true")return()=>!0;if(n==="false")return()=>!1;if(n==="null"||n==="undefined")return()=>null;if(this.isOp("(")){let r=this.args();if(Object.prototype.hasOwnProperty.call(Wr,n)){let s=Wr[n],[i,l]=r,a=new WeakMap;return f=>{let d=Kr(f,l?.(f)),g=a.get(d);if(g&&g.gen===St&&g.len===d.length)return g.value;let u=s(Ls(f,d,i));return a.set(d,{gen:St,len:d.length,value:u}),u}}if(n==="runningSum"){let[s,i]=r,l=new WeakMap;return a=>{let f=Kr(a,i?.(a)??"report"),d=l.get(f);if(!d||d.gen!==St||d.len!==f.length){let g=new Map,u=0;f.forEach((c,p)=>{let b=ge(s?s({...a,row:c,vars:{...a.vars,rowNum:p+1}}):0);u+=Number.isFinite(b)?b:0,g.set(c,u)}),d={gen:St,len:f.length,sums:g,total:u},l.set(f,d)}return a.row&&d.sums.has(a.row)?d.sums.get(a.row):d.total}}let o=Object.prototype.hasOwnProperty.call(Ln,n)?Ln[n]:void 0;if(!o)throw new SyntaxError(`Unknown function ${n}()`);return s=>o(...r.map(i=>i(s)))}return r=>Fs(r,n)}};Et.LEVELS=[["??"],["||"],["&&"],["==","!=","===","!=="],["<","<=",">",">="],["+","-"],["*","/","%"]];var Fn=Et;function Fs(e,t){if(t==="row")return e.row;if(t==="rows")return e.rows;if(t==="allRows")return e.allRows;if(t==="params")return e.params;if(t==="data")return e.data;if(Object.prototype.hasOwnProperty.call(e.vars,t))return e.vars[t];if(e.row&&Object.prototype.hasOwnProperty.call(e.row,t))return e.row[t];if(Object.prototype.hasOwnProperty.call(e.data,t))return e.data[t]}function Ds(e,t,n){switch(e){case"??":return r=>t(r)??n(r);case"||":return r=>t(r)||n(r);case"&&":return r=>t(r)&&n(r);case"==":case"===":return r=>Xr(t(r),n(r));case"!=":case"!==":return r=>!Xr(t(r),n(r));case"<":return r=>Vt(t(r),n(r))<0;case"<=":return r=>Vt(t(r),n(r))<=0;case">":return r=>Vt(t(r),n(r))>0;case">=":return r=>Vt(t(r),n(r))>=0;case"+":return r=>{let o=t(r),s=n(r);return typeof o=="string"||typeof s=="string"?`${o??""}${s??""}`:ge(o)+ge(s)};case"-":return r=>ge(t(r))-ge(n(r));case"*":return r=>ge(t(r))*ge(n(r));case"/":return r=>{let o=ge(n(r));return o===0?0:ge(t(r))/o};case"%":return r=>ge(t(r))%ge(n(r))}throw new SyntaxError(e)}function Xr(e,t){return e instanceof Date||t instanceof Date?Pe(e)?.getTime()===Pe(t)?.getTime():typeof e=="number"||typeof t=="number"?e!=null&&t!=null&&ge(e)===ge(t):(e??null)===(t??null)}function Vt(e,t){return e instanceof Date||t instanceof Date?(Pe(e)?.getTime()??0)-(Pe(t)?.getTime()??0):typeof e=="string"&&typeof t=="string"?e<t?-1:e>t?1:0:ge(e)-ge(t)}var Yt=new Map;function Be(e){let t=Yt.get(e);return t||(t=new Fn(Cs(e)).parse(),Yt.size>5e3&&Yt.clear(),Yt.set(e,t)),t}function Me(e,t){try{return Be(e)(t)}catch(n){return`#ERR ${n.message}`}}function Dn(e){try{return Be(e),null}catch(t){return t.message}}function Ue(e,t){if(!e.includes("{"))return e.replace(/}}/g,"}");let n="",r=0;for(;r<e.length;){let o=e[r];if(o==="{"&&e[r+1]==="{"){n+="{",r+=2;continue}if(o==="}"&&e[r+1]==="}"){n+="}",r+=2;continue}if(o!=="{"){n+=o,r++;continue}let s=Is(e,r+1);if(s<0){n+=e.slice(r);break}let{expr:i,format:l}=Bs(e.slice(r+1,s)),a=Me(i,t);n+=ve(a,l),r=s+1}return n}function Is(e,t){let n=null,r=0;for(let o=t;o<e.length;o++){let s=e[o];if(n){s==="\\"?o++:s===n&&(n=null);continue}if(s==='"'||s==="'")n=s;else if(s==="{")r++;else if(s==="}"){if(r===0)return o;r--}}return-1}function Bs(e){let t=null,n=0,r=0;for(let o=0;o<e.length;o++){let s=e[o];if(t){s==="\\"?o++:s===t&&(t=null);continue}if(s==='"'||s==="'")t=s;else if(s==="("||s==="[")n++;else if(s===")"||s==="]")n--;else if(s==="?"&&n===0&&e[o+1]!=="?"&&e[o-1]!=="?")r++;else if(s===":"&&n===0){if(r>0){r--;continue}return{expr:e.slice(0,o).trim(),format:e.slice(o+1)}}}return{expr:e.trim()}}var Yr=(e,t,n)=>!e||e==="all"||e==="first"&&t===0||e==="last"&&t===n-1||e==="odd"&&t%2===0||e==="even"&&t%2===1,Qr="Nanum Gothic";function In(e,t,n,r,o){let s={family:Qr,size:r,bold:o.bold,italic:!1},i=e.split(`
|
|
5
|
+
`),l=r*$e*1.2,a=i.map(c=>o.measure.width(c,s)),f=Math.max(...a,1),d=i.length*l,g=t-f/2,u=n-d/2;return{kind:"text",x:g,y:u,w:f,h:d,font:s,color:o.color,align:"center",valign:"middle",text:e,lines:i.map((c,p)=>({text:c,x:t-a[p]/2,y:u+p*l+l*.78,width:a[p]})),rotate:o.angle,opacity:o.opacity,source:{band:"watermark"}}}function Ns(e,t,n,r){let o=e.text?Ue(e.text,n):"",s=e.opacity??.12,i=e.angle??-35,l=e.color??"#808080",a=[];if(e.repeat){let g=Math.max(5,Number(e.gap)||45),u=e.fontSize??14,c=e.imageWidth??30,p=0;for(let b=g/2;b<t.height+g/2;b+=g*.7,p++)for(let S=(p%2?g/2:0)+g/4;S<t.width+g/2;S+=g)e.image&&a.push({kind:"image",x:S-c/2,y:b-c/2,w:c,h:c,src:e.image,fit:"contain",opacity:s,rotate:i,source:{band:"watermark"}}),o&&a.push(In(o,S,b+(e.image?c/2+u*$e:0),u,{color:l,opacity:s,angle:i,bold:!!e.bold,measure:r}));return a}let f=t.width/2,d=t.height/2;if(e.image){let g=e.imageWidth??80;a.push({kind:"image",x:f-g/2,y:d-g/2,w:g,h:g,src:e.image,fit:"contain",opacity:s,rotate:i,source:{band:"watermark"}})}if(o){let g=e.fontSize??60,u=Math.hypot(t.width,t.height)*.75,c={family:Qr,size:g,bold:e.bold??!0,italic:!1},p=Math.max(...o.split(`
|
|
6
|
+
`).map(b=>r.width(b,c)));p>u&&(g*=u/p),a.push(In(o,f,d,g,{color:l,opacity:s,angle:i,bold:e.bold??!0,measure:r}))}return a}function Hs(e,t,n){let r=.5523*n;return["M",e+n,t,"C",e+n,t+r,e+r,t+n,e,t+n,"C",e-r,t+n,e-n,t+r,e-n,t,"C",e-n,t-r,e-r,t-n,e,t-n,"C",e+r,t-n,e+n,t-r,e+n,t,"Z"]}function Jr(e,t,n,r){let o=n-r,s=.5523*o;return[...Hs(e,t,n),"M",e+o,t,"C",e+o,t-s,e+s,t-o,e,t-o,"C",e-s,t-o,e-o,t-s,e-o,t,"C",e-o,t+s,e-s,t+o,e,t+o,"C",e+s,t+o,e+o,t+s,e+o,t,"Z"]}function Os(e,t,n,r,o){return["M",e,t,"L",e+n,t,"L",e+n,t+r,"L",e,t+r,"Z","M",e+o,t+o,"L",e+o,t+r-o,"L",e+n-o,t+r-o,"L",e+n-o,t+o,"Z"]}var qs=(e,t,n)=>{let r=[],o=0;for(let s of e){if(typeof s=="string"){r.push(s),o=0;continue}r.push(s+(o++%2===0?t:n))}return r};function zs(e,t,n,r){let o=e.w??32,s=e.h??(e.shape==="rect"?20:o),i=e.x??t.width-t.margins[1]-o-4,l=e.y??t.height-t.margins[2]-s-12,a=e.depth??.3,f=e.color??"#e8e8e8",d=e.opacity??.9,g="#ffffff",u="#9a9a9a",c=[],p=[],b=i+o/2,S=l+s/2,M=e.shape??"circle";if(M==="circle"){let P=Math.min(o,s)/2;c.push(Jr(b,S,P,Math.max(.6,P*.06))),c.push(Jr(b,S,P*.68,Math.max(.35,P*.03)))}else M==="rect"&&c.push(Os(i,l,o,s,Math.max(.6,Math.min(o,s)*.05)));let $=e.text?Ue(e.text,n):"",v=e.centerText?Ue(e.centerText,n):"";if(M==="circle"&&$){let P=Math.min(o,s)/2,j=e.fontSize??Math.max(5,P*.62),F=P*.84,Z=[...$],te=Math.min(Math.PI*1.7,Z.length*(j*$e*1.05/F));Z.forEach((U,re)=>{let be=-Math.PI/2-te/2+te*(re+.5)/Z.length;p.push({text:U,cx:b+F*Math.cos(be),cy:S+F*Math.sin(be),size:j,angle:be*180/Math.PI+90})}),v&&p.push({text:v,cx:b,cy:S,size:e.fontSize?e.fontSize*1.3:Math.max(6,P*.75)})}else if($||v){let P=[$,v].filter(Boolean).join(`
|
|
7
|
+
`),j=e.fontSize??Math.max(6,Math.min(s*.45,o*.8/Math.max(1,Math.max(...P.split(`
|
|
8
|
+
`).map(F=>[...F].length)))/$e));p.push({text:P,cx:b,cy:S,size:j})}let T=[],x=(P,j,F,Z)=>{for(let te of c)T.push({kind:"path",d:qs(te,P,j),fill:F,opacity:Z,source:{band:"watermark"}});for(let te of p)T.push(In(te.text,te.cx+P,te.cy+j,te.size,{color:F,opacity:Z,angle:te.angle??0,bold:!0,measure:r}))};return e.image&&T.push({kind:"image",x:M==="none"?i:i+o*.2,y:M==="none"?l:l+s*.2,w:M==="none"?o:o*.6,h:M==="none"?s:s*.6,src:e.image,fit:"contain",emboss:!0,opacity:d,source:{band:"watermark"}}),x(-a,-a,g,d),x(a,a,u,d*.55),x(0,0,f,d),T}function eo(e,t,n,r,o){let s=t.watermark===void 0?[]:(Array.isArray(t.watermark)?t.watermark:[t.watermark]).map(l=>typeof l=="string"?{text:l}:l),i=t.emboss===void 0?[]:Array.isArray(t.emboss)?t.emboss:[t.emboss];!s.length&&!i.length||e.forEach((l,a)=>{let f=r(l,a),d=[],g=[];for(let u of s)!Yr(u.pages,a,e.length)||!u.text&&!u.image||(u.layer==="front"?g:d).push(...Ns(u,l,f,o));for(let u of i)Yr(u.pages,a,e.length)&&g.push(...zs(u,{...l,margins:n.margins},f,o));l.items=[...d,...l.items,...g]})}var Zr=new Map;function Rt(e){let t=Zr.get(e);return t||(t=(async()=>{if(typeof document>"u"||typeof Image>"u")return e;let n=new Image;n.crossOrigin="anonymous",n.src=e,await n.decode();let o=Math.min(1,600/Math.max(n.naturalWidth,n.naturalHeight)),s=Math.max(1,Math.round(n.naturalWidth*o)),i=Math.max(1,Math.round(n.naturalHeight*o)),l=document.createElement("canvas");l.width=s,l.height=i;let a=l.getContext("2d");if(!a)return e;a.drawImage(n,0,0,s,i);let{data:f}=a.getImageData(0,0,s,i),d=new Float32Array(s*i);for(let c=0;c<s*i;c++){let p=(f[c*4]*.299+f[c*4+1]*.587+f[c*4+2]*.114)/255;d[c]=(1-p)*(f[c*4+3]/255)}let g=a.createImageData(s,i),u=Math.max(1,Math.round(Math.max(s,i)/200));for(let c=0;c<i;c++)for(let p=0;p<s;p++){let b=c*s+p,S=d[Math.max(0,c-u)*s+Math.max(0,p-u)],$=(d[Math.min(i-1,c+u)*s+Math.min(s-1,p+u)]-S)*2.2,v=d[b]>.15,T=Math.max(0,Math.min(255,232+$*110)),x=Math.min(1,Math.abs($)*1.6+(v?.35:0));g.data[b*4]=g.data[b*4+1]=g.data[b*4+2]=T,g.data[b*4+3]=Math.round(x*255)}return a.putImageData(g,0,0),l.toDataURL("image/png")})().catch(()=>e),Zr.set(e,t),t)}var Re=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),ee=e=>(Math.round(e*1e3)/1e3).toString();function Bn(e,t){return e==="dashed"?` stroke-dasharray="${ee(t*3)} ${ee(t*2)}"`:e==="dotted"?` stroke-dasharray="0 ${ee(t*2)}" stroke-linecap="round"`:""}function Jt(e,t,n,r,o,s){if(o.style==="double"){let i=o.width/3,l=o.width/2-i/2,[a,f]=s?[0,l]:[l,0];return`<line x1="${ee(e-a)}" y1="${ee(t-f)}" x2="${ee(n-a)}" y2="${ee(r-f)}" stroke="${Re(o.color)}" stroke-width="${ee(i)}"/><line x1="${ee(e+a)}" y1="${ee(t+f)}" x2="${ee(n+a)}" y2="${ee(r+f)}" stroke="${Re(o.color)}" stroke-width="${ee(i)}"/>`}return`<line x1="${ee(e)}" y1="${ee(t)}" x2="${ee(n)}" y2="${ee(r)}" stroke="${Re(o.color)}" stroke-width="${ee(o.width)}"${Bn(o.style,o.width)}/>`}function Us(e,t,n,r,o){let s="";return o.top&&(s+=Jt(e,t,e+n,t,o.top,!0)),o.bottom&&(s+=Jt(e,t+r,e+n,t+r,o.bottom,!0)),o.left&&(s+=Jt(e,t,e,t+r,o.left,!1)),o.right&&(s+=Jt(e+n,t,e+n,t+r,o.right,!1)),s}function Gs(e){return e.map(t=>typeof t=="number"?ee(t):t).join(" ")}var mt=e=>e!==void 0&&e<1?` opacity="${ee(e)}"`:"";function Ks(e,t){let n=e.font.size*$e,r=`${wn(e.font.family)}, ${yn}`.replace(/"/g,"'"),o=`font-family="${Re(r)}" font-size="${ee(n)}"${e.font.bold?' font-weight="bold"':""}${e.font.italic?' font-style="italic"':""} fill="${Re(e.color)}"`+(e.letterSpacing?` letter-spacing="${ee(e.letterSpacing)}"`:""),s="";for(let f of e.lines)f.text&&(s+=`<text x="${ee(f.x)}" y="${ee(f.y)}" xml:space="preserve">${Re(f.text)}</text>`,e.underline&&(s+=`<line x1="${ee(f.x)}" y1="${ee(f.y+n*.12)}" x2="${ee(f.x+f.width)}" y2="${ee(f.y+n*.12)}" stroke="${Re(e.color)}" stroke-width="${ee(n*.06)}"/>`),e.strike&&(s+=`<line x1="${ee(f.x)}" y1="${ee(f.y-n*.3)}" x2="${ee(f.x+f.width)}" y2="${ee(f.y-n*.3)}" stroke="${Re(e.color)}" stroke-width="${ee(n*.06)}"/>`));let i=e.source?.band!=="watermark"&&e.lines.some(f=>f.x<e.x-.05||f.x+f.width>e.x+e.w+.05||f.y-n*.8<e.y-.05||f.y+n*.2>e.y+e.h+.05),l=e.rotate?` transform="rotate(${ee(e.rotate)} ${ee(e.x+e.w/2)} ${ee(e.y+e.h/2)})"`:"";if(!i)return{defs:"",body:`<g ${o}${l}${mt(e.opacity)}>${s}</g>`};let a=t();return{defs:`<clipPath id="${a}"><rect x="${ee(e.x)}" y="${ee(e.y)}" width="${ee(e.w)}" height="${ee(e.h)}"/></clipPath>`,body:`<g ${o} clip-path="url(#${a})"${l}${mt(e.opacity)}>${s}</g>`}}function Ws(e,t){switch(e.kind){case"box":{let n="",r=mt(e.opacity);if(e.radius||e.stroke){let o=e.stroke?.width??0;n+=`<rect x="${ee(e.x)}" y="${ee(e.y)}" width="${ee(e.w)}" height="${ee(e.h)}"${e.radius?` rx="${ee(e.radius)}"`:""} fill="${e.fill?Re(e.fill):"none"}"`+(o?` stroke="${Re(e.stroke.color)}" stroke-width="${ee(o)}"${Bn(e.stroke.dash,o)}`:"")+`${r}/>`}else e.fill&&(n+=`<rect x="${ee(e.x)}" y="${ee(e.y)}" width="${ee(e.w)}" height="${ee(e.h)}" fill="${Re(e.fill)}"${r}/>`);return e.border&&(n+=Us(e.x,e.y,e.w,e.h,e.border)),{defs:"",body:n}}case"line":return{defs:"",body:`<line x1="${ee(e.x1)}" y1="${ee(e.y1)}" x2="${ee(e.x2)}" y2="${ee(e.y2)}" stroke="${Re(e.color)}" stroke-width="${ee(e.width)}"${Bn(e.dash,e.width)}${mt(e.opacity)}/>`};case"path":return{defs:"",body:`<path d="${Gs(e.d)}" fill="${e.fill?Re(e.fill):"none"}"${e.stroke?` stroke="${Re(e.stroke)}" stroke-width="${ee(e.strokeWidth??.2)}" stroke-linejoin="round"`:""}${mt(e.opacity)}/>`};case"image":{let n=e.fit==="fill"?"none":e.fit==="cover"?"xMidYMid slice":"xMidYMid meet",r=e.rotate?` transform="rotate(${ee(e.rotate)} ${ee(e.x+e.w/2)} ${ee(e.y+e.h/2)})"`:"",o="",s="";if(e.fit==="cover"){let i=t();o=`<clipPath id="${i}"><rect x="${ee(e.x)}" y="${ee(e.y)}" width="${ee(e.w)}" height="${ee(e.h)}"/></clipPath>`,s=` clip-path="url(#${i})"`}return{defs:o,body:`<image x="${ee(e.x)}" y="${ee(e.y)}" width="${ee(e.w)}" height="${ee(e.h)}" preserveAspectRatio="${n}" href="${Re(e.src)}"${e.emboss?' data-emboss="1"':""}${s}${r}${mt(e.opacity)}/>`}}case"text":return Ks(e,t)}}var _s=0;function We(e,t={}){let n=`fr${(_s++).toString(36)}-`,r=0,o=()=>`${n}${r++}`,s="",i="";for(let a of e.items){let f=Ws(a,o);s+=f.defs,i+=f.body}return`<svg xmlns="http://www.w3.org/2000/svg" ${t.scale?`width="${ee(e.width*t.scale)}" height="${ee(e.height*t.scale)}"`:`width="${ee(e.width)}mm" height="${ee(e.height)}mm"`} viewBox="0 0 ${ee(e.width)} ${ee(e.height)}"${t.className?` class="${t.className}"`:""} text-rendering="geometricPrecision">${s?`<defs>${s}</defs>`:""}<rect width="100%" height="100%" fill="#fff"/>${i}</svg>`}function ht(e){e.querySelectorAll("image[data-emboss]").forEach(t=>{let n=t.getAttribute("href");n&&(t.removeAttribute("data-emboss"),t.setAttribute("visibility","hidden"),Rt(n).then(r=>{t.setAttribute("href",r),t.removeAttribute("visibility")}))})}function Xs(e,t,n={}){e.innerHTML=We(t,{...n,className:"fr-page-svg"}),ht(e)}var Vs=new Uint32Array([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 to(e){let t=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),n=e.length*8,r=new Uint8Array(e.length+9+63>>6<<6);r.set(e),r[e.length]=128;let o=new DataView(r.buffer);o.setUint32(r.length-8,Math.floor(n/4294967296)),o.setUint32(r.length-4,n>>>0);let s=new Uint32Array(64);for(let i=0;i<r.length;i+=64){for(let b=0;b<16;b++)s[b]=o.getUint32(i+b*4);for(let b=16;b<64;b++){let S=s[b-15],M=s[b-2],$=(S>>>7|S<<25)^(S>>>18|S<<14)^S>>>3,v=(M>>>17|M<<15)^(M>>>19|M<<13)^M>>>10;s[b]=s[b-16]+$+s[b-7]+v>>>0}let[l,a,f,d,g,u,c,p]=t;for(let b=0;b<64;b++){let S=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7),M=g&u^~g&c,$=p+S+M+Vs[b]+s[b]>>>0,v=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),T=l&a^l&f^a&f,x=v+T>>>0;p=c,c=u,u=g,g=d+$>>>0,d=f,f=a,a=l,l=$+x>>>0}t[0]+=l,t[1]+=a,t[2]+=f,t[3]+=d,t[4]+=g,t[5]+=u,t[6]+=c,t[7]+=p}return[...t].map(i=>i.toString(16).padStart(8,"0")).join("")}function no(e){return e.map(t=>t.items.filter(n=>n.kind==="text"&&n.source?.band!=="watermark"&&!n.source?.fingerprint).map(n=>n.kind==="text"?n.text.replace(/\s+/g," ").trim():"").filter(Boolean).join(`
|
|
9
9
|
`)).join(`
|
|
10
10
|
\f
|
|
11
|
-
`)}function Rt(e){return to(new TextEncoder().encode(no(e)))}var Ys="212222 222122 222221 121223 121322 131222 122213 122312 132212 221213 221312 231212 112232 122132 122231 113222 123122 123221 223211 221132 221231 213212 223112 312131 311222 321122 321221 312212 322112 322211 212123 212321 232121 111323 131123 131321 112313 132113 132311 211313 231113 231311 112133 112331 132131 113123 113321 133121 313121 211331 231131 213113 213311 213131 311123 311321 331121 312113 312311 332111 314111 221411 431111 111224 111422 121124 121421 141122 141221 112214 112412 122114 122411 142112 142211 241211 221114 413111 241112 134111 111242 121142 121241 114212 124112 124211 411212 421112 421211 212141 214121 412121 111143 111341 131141 114113 114311 411113 411311 113141 114131 311141 411131 211412 211214 211232 2331112".split(" "),Js=103,ro=104,Zs=105,Qs=106,ea=99,ta=100,na=101;function Hn(e,t){let n=0;for(;t+n<e.length&&e.charCodeAt(t+n)>=48&&e.charCodeAt(t+n)<=57;)n++;return n}function oo(e,t){for(;t<e.length;t++){let n=e.charCodeAt(t);if(n<32)return"A";if(n>=96)return"B"}return"B"}function Un(e){for(let l=0;l<e.length;l++)if(e.charCodeAt(l)>127)throw new Error(`Code128: unsupported character at ${l}`);let t=[],n=null,r=l=>{n!==l&&(n===null?t.push(l==="A"?Js:l==="B"?ro:Zs):t.push(l==="A"?na:l==="B"?ta:ea),n=l)},o=0;for(;o<e.length;){let l=Hn(e,o);if(l>=4){l%2&&((n===null||n==="C")&&r(oo(e,o)),t.push(e.charCodeAt(o++)-32)),r("C");let f=o+(l-l%2);for(;o<f;o+=2)t.push(+e.substr(o,2));continue}let i=e.charCodeAt(o);n===null||n==="C"?r(oo(e,o)):i<32&&n==="B"?r("A"):i>=96&&n==="A"&&r("B"),t.push(n==="A"&&i<32?i+64:i-32),o++}n===null&&t.push(ro);let s=t[0];for(let l=1;l<t.length;l++)s+=t[l]*l;t.push(s%103,Qs);let a=[];for(let l of t)for(let i of Ys[l])a.push(+i);return a}var so=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],ra=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLL","LGLGGL","LGGLGL"],ao=e=>e.replace(/./g,t=>t==="0"?"1":"0");function oa(e){if(!/^\d{12}$/.test(e))throw new Error("EAN-13: expected 12 digits");let t=0;for(let n=0;n<12;n++)t+=+e[n]*(n%2?3:1);return(10-t%10)%10}function Gn(e){if(!/^\d{12,13}$/.test(e))throw new Error("EAN-13: expected 12 or 13 digits");let t=oa(e.slice(0,12));if(e.length===13&&+e[12]!==t)throw new Error("EAN-13: invalid check digit");let n=e.slice(0,12)+t,r="101",o=ra[+n[0]];for(let l=1;l<=6;l++){let i=so[+n[l]];r+=o[l-1]==="L"?i:ao(i).split("").reverse().join("")}r+="01010";for(let l=7;l<=12;l++)r+=ao(so[+n[l]]);r+="101";let s=[],a=1;for(let l=1;l<=r.length;l++)r[l]===r[l-1]?a++:(s.push(a),a=1);return s}var sa={L:1,M:0,Q:3,H:2},fo={L:[0,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],M:[0,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],Q:[0,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],H:[0,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]},po={L:[0,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],M:[0,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],Q:[0,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],H:[0,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]},Zt="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";function aa(e){if(e===1)return[];let t=Math.floor(e/7)+2,n=e*4+17,r=Math.floor((e*8+t*3+5)/(t*4-4))*2,o=[6];for(let s=n-7;o.length<t;s-=r)o.splice(1,0,s);return o}function mo(e){let t=(16*e+128)*e+64;if(e>=2){let n=Math.floor(e/7)+2;t-=(25*n-10)*n-55,e>=7&&(t-=36)}return t}function io(e,t){return Math.floor(mo(e)/8)-fo[t][e]*po[t][e]}var en=new Uint8Array(512),On=new Uint8Array(256);(()=>{let e=1;for(let t=0;t<255;t++)en[t]=e,On[e]=t,e<<=1,e&256&&(e^=285);for(let t=255;t<512;t++)en[t]=en[t-255]})();var qn=(e,t)=>e&&t?en[On[e]+On[t]]:0;function ia(e){let t=new Array(e).fill(0);t[e-1]=1;let n=1;for(let r=0;r<e;r++){for(let o=0;o<e;o++)t[o]=qn(t[o],n),o+1<e&&(t[o]^=t[o+1]);n=qn(n,2)}return t}function la(e,t){let n=new Array(t.length).fill(0);for(let r of e){let o=r^n.shift();n.push(0);for(let s=0;s<t.length;s++)n[s]^=qn(t[s],o)}return n}var tn=class{constructor(){this.bits=[]}put(t,n){for(let r=n-1;r>=0;r--)this.bits.push(t>>>r&1)}};function ca(e){let t=new tn;if(/^\d*$/.test(e)){for(let r=0;r<e.length;r+=3){let o=e.substr(r,3);t.put(+o,o.length*3+1)}return{mode:1,count:e.length,data:t,ccBits:[10,12,14]}}if([...e].every(r=>Zt.includes(r))){for(let r=0;r<e.length;r+=2)r+1<e.length?t.put(Zt.indexOf(e[r])*45+Zt.indexOf(e[r+1]),11):t.put(Zt.indexOf(e[r]),6);return{mode:2,count:e.length,data:t,ccBits:[9,11,13]}}let n=new TextEncoder().encode(e);for(let r of n)t.put(r,8);return{mode:4,count:n.length,data:t,ccBits:[8,16,16]}}var lo=(e,t)=>e.ccBits[t<=9?0:t<=26?1:2];function ua(e,t,n){let r=po[n][t],o=fo[n][t],s=Math.floor(mo(t)/8),a=r-s%r,l=Math.floor(s/r),i=ia(o),f=[];for(let u=0,c=0;u<r;u++){let p=l-o+(u<a?0:1),g=e.slice(c,c+p);c+=p,f.push({data:g,ec:la(g,i)})}let d=[],h=l-o+1;for(let u=0;u<h;u++)for(let c of f)u<c.data.length&&d.push(c.data[u]);for(let u=0;u<o;u++)for(let c of f)d.push(c.ec[u]);return d}function fa(e,t,n){switch(e){case 0:return(t+n)%2===0;case 1:return n%2===0;case 2:return t%3===0;case 3:return(t+n)%3===0;case 4:return(Math.floor(t/3)+Math.floor(n/2))%2===0;case 5:return t*n%2+t*n%3===0;case 6:return(t*n%2+t*n%3)%2===0;default:return((t+n)%2+t*n%3)%2===0}}function da(e){let t=e.length,n=0,r=[1,0,1,1,1,0,1,0,0,0,0],o=[0,0,0,0,1,0,1,1,1,0,1];for(let l=0;l<2;l++){let i=(f,d)=>l?e[d][f]:e[f][d];for(let f=0;f<t;f++){let d=1;for(let u=1;u<=t;u++)u<t&&i(f,u)===i(f,u-1)?d++:(d>=5&&(n+=d-2),d=1);let h=u=>u>=0&&u<t&&i(f,u)?1:0;for(let u=-4;u+11<=t+4;u++){let c=!0,p=!0;for(let g=0;g<11&&(c||p);g++){let E=h(u+g);E!==r[g]&&(c=!1),E!==o[g]&&(p=!1)}c&&(n+=40),p&&(n+=40)}}}for(let l=0;l<t-1;l++)for(let i=0;i<t-1;i++){let f=e[l][i];f===e[l][i+1]&&f===e[l+1][i]&&f===e[l+1][i+1]&&(n+=3)}let s=0;for(let l of e)for(let i of l)i&&s++;let a=t*t;return n+=(Math.ceil(Math.abs(s*20-a*10)/a)-1)*10,n}function pa(e,t){let n=sa[e]<<3|t,r=n;for(let o=0;o<10;o++)r=r<<1^(r>>>9)*1335;return(n<<10|r)^21522}function ma(e){let t=e;for(let n=0;n<12;n++)t=t<<1^(t>>>11)*7973;return e<<12|t}function Kn(e,t="M"){let n=ca(e),r=1;for(;r<=40;r++){let v=lo(n,r);if(n.count<1<<v&&4+v+n.data.bits.length<=io(r,t)*8)break}if(r>40)throw new Error("QR: data too long");let o=io(r,t)*8,s=new tn;s.put(n.mode,4),s.put(n.count,lo(n,r)),s.bits.push(...n.data.bits),s.put(0,Math.min(4,o-s.bits.length)),s.put(0,(8-s.bits.length%8)%8);for(let v=236;s.bits.length<o;v^=253)s.put(v,8);let a=[];for(let v=0;v<s.bits.length;v+=8){let j=0;for(let w=0;w<8;w++)j=j<<1|s.bits[v+w];a.push(j)}let l=ua(a,r,t),i=r*4+17,f=Array.from({length:i},()=>new Array(i).fill(!1)),d=Array.from({length:i},()=>new Array(i).fill(!1)),h=(v,j,w)=>{f[j][v]=w,d[j][v]=!0};for(let v=0;v<i;v++)h(6,v,v%2===0),h(v,6,v%2===0);for(let[v,j]of[[3,3],[i-4,3],[3,i-4]])for(let w=-4;w<=4;w++)for(let C=-4;C<=4;C++){let A=v+C,I=j+w;if(A<0||I<0||A>=i||I>=i)continue;let Q=Math.max(Math.abs(C),Math.abs(w));h(A,I,Q!==2&&Q!==4)}let u=aa(r);for(let v=0;v<u.length;v++)for(let j=0;j<u.length;j++)if(!(v===0&&j===0||v===0&&j===u.length-1||v===u.length-1&&j===0))for(let w=-2;w<=2;w++)for(let C=-2;C<=2;C++)h(u[v]+C,u[j]+w,Math.max(Math.abs(C),Math.abs(w))!==1);let c=v=>{let j=pa(t,v),w=C=>(j>>>C&1)===1;for(let C=0;C<=5;C++)h(8,C,w(C));h(8,7,w(6)),h(8,8,w(7)),h(7,8,w(8));for(let C=9;C<15;C++)h(14-C,8,w(C));for(let C=0;C<8;C++)h(i-1-C,8,w(C));for(let C=8;C<15;C++)h(8,i-15+C,w(C));h(8,i-8,!0)};if(c(0),r>=7){let v=ma(r);for(let j=0;j<18;j++){let w=(v>>>j&1)===1,C=i-11+j%3,A=Math.floor(j/3);h(C,A,w),h(A,C,w)}}let p=0,g=l.length*8;for(let v=i-1;v>=1;v-=2){v===6&&(v=5);let j=(v+1&2)===0;for(let w=0;w<i;w++){let C=j?i-1-w:w;for(let A=0;A<2;A++){let I=v-A;d[C][I]||p>=g||(f[C][I]=(l[p>>>3]>>>7-(p&7)&1)===1,p++)}}}let E=v=>{for(let j=0;j<i;j++)for(let w=0;w<i;w++)!d[j][w]&&fa(v,w,j)&&(f[j][w]=!f[j][w])},M=0,$=1/0;for(let v=0;v<8;v++){E(v),c(v);let j=da(f);j<$&&($=j,M=v),E(v)}return E(M),c(M),f}var ha=["qn0tbouluqjgt9sukvl30qhol1ga10l0oa0gln0qrotduljgqpstcvb30lhob1gbn0lroqtubjglpsqsvbholoubroltubpslsvbtuuntqbgt5suivkj0q9ot4ukhgq8s910kgoq8e90gkgc908krgqdst6v9j0kpoqcu9hgkosqcf9gokoe9rgktsqev9poksu9osksf9tskuv9su9sfkb0q5ot2uk9gq4st2f8h0k8oq4e8ggk8c8g88g48r0kdoq6u8pgkcsq6f8ookce8oc8o68tokeu8sskef8se8uuk5gq2st1f890k4oq2e88gk4cq27888k46884k438dgk6sq3f8cok6e8cck678c68c3k7f8e7850k2oq1e84gk2cq17848k26844k2384286o86c86682gq0nk16k13821pbgslsuavij0p9oskuihgp8sskf510igo50girgpdssmv5j0ipopcu5hgios5go5gc5rgitspev5poisu5os5oe5tsiuv5su5uvrb0tlouqur9gtksuqfmh0r8otkemggr8ctk7mg8r86ib0p5osiumr0i9gp4ssifmpgrcstmfdh04ggi8cp47dggmocdg84r0idop6udr04pgicsp6fdpgmssrefdoo4ocdoc4toieudto4ssiefdssmufdse4uuduu4ufdufr5gtisupfm90r4otiem8gr4cti7m88r46m84m82i5gp2sshfmdgi4op2ecp048gr6ep27cog488i46co8mc6i434824dgi6sp3fctg4coi6ecsomeei67csc4c64c34esi7fcus4eecue4e7cu7cvfm50r2othem4gr2cth7m48r26m44r23m42m41450i2op1ecd044gi2cp17ccgm6cr37cc8444i23cc4m63cc246oi3eceo46ci37cecm77ce6463ce3cfecf7m2gr1ctgnm28r16m24r13m22m2142gi1cp0nc6g428i16c68m36i13c64422c6242143cc7cc76c73r0mr0jm11i0m414c34c32c31hb0olosauh9goks2h0h8ooke2ggh8c2g82g42r0hdoomu2pghcsomf2oohce2oc2o62toheu2sshef2se2uu2ufplgsqsudfj90pkosqej8gpkcsq7j88pk6j84pk3h5goiss9fjdgh4ooie6p028gpmeoi76ogjcch466o82846o42dgh6sojf6tg2copnf6sojeeh676sc2c66s62esh7f6us2ee6ue2e72ff6vfrl0tqouterkgtqcut7rk8tq6rk4tq3rk2j50piospend0j4gtresp7ncgrmctr7nc8j44pi3nc4rm3j41250h2oohe6d024gh2coh7et06cgj6cpj7esgnecrn7h23es86c4j63es424126oh3e6eo26ch37euo6ecj77eucnf72636e327e6fe277eve6f7rigtpcusnri8tp6ri4tp3ri2ri1j2gphcsonn6gj28tpnn68rj6ph3n64j22n62j21n6122gh1cogn66g228h16eeg668j36h13ee8n76222ee466222166123ch1n67c236efc676233ef667323nefnrh8tomrh4tojrh2rh1j18pgmn38j14pgjn34rhjn32j11n31218h0m638214h0je78634j1je74n3j211e72631e7163me7me7jtobrghpgbj0ij0h20k61ke3k20h61hglg190gko18ggkcoa7188gk6184gk31dggmsobf1cogme1ccgm71c61c31esgnf1ee1e71ffhl0oqosdehkgoqchk8oq6hk4oq3hk2150gioo9e3d014goreo973cghmcor73c8144gi33c4hm314116ogje3eo16cgj73echn73e616317e3fe1773f7pqgstcuenpq8st6pq4st3pq2pq1higopcjmghi8op6jm8pr6op3jm4hi2jm2hi1jm112gghc36g128opn7eg368hj6gh37e8jn61227e436212136113cghn37c1367fc3761337f637313n37n7fntt8uumtt4uujtt2tt1pp8ssmrr8ttmssjrr4ttjrr2pp1rr1hh8oomjj8hh4oojnn8jj4ppjnn4rrjhh1nn2jj1nn1118ggm338114ggj778334hhjff8774jjj111ff4nnj331ff211m33m11j77m33jffm77jffjtskuubtsitshpokssbrpktsrrpipohrphhgkoobjhkhginjkjhihghnjijhhnjh10kggb31khgr73k31i10hf7k73i31hf7i73hf7h31rf7rts9roqropjgqnhqnhp30q71qf3qf3p0l00kggac0k80k40k20mo0mc0m60m30ne0n7gqggq8od6gq4od3gq2gq10igg9c1mggrcg961m8gr61m4gr31m20i11m10jcg9n1ncgrn1n60j31n30jn1nnot8ot4ot2ot1gp8hr8otmocjhr4otjhr2gp1hr10h81j80h4g8j3n81j40h23n41j20h13n21j10hm1jm0hj3nm1jj3njsuksuisuhoskptksurptioshpthgokocbhpkosrjrkhpigohjrihphjrh0gkg8b1hkgor3jk1hi0gh7nk3ji1hh7ni3jh0gr1hr3jr7nruvauv9suatuqsu9tuposapsqos9rtqpsprtpgoahoqgo9jpqhopnrq","ulgvast90ukovaet8gukcva7t88uk6t84uk3t82tdgumsvbfqp0tcoumeqogtccum7qo8tc6qo4tc3qo2qtgtesunflp0qsoteelogqscte7lo8qs6lo4qs3lo2ltgqustffbp0lsoqueboglscqu7bo8ls6bo4ls3btglusqvfbsoluebsclu7bs6buslvfbuebu7t50uiov9et4guicv97t48ui6t44ui3t42t41qd0t6oujeqcgt6cuj7qc8t66qc4t63qc2qc1kt0qeot7eksgqect77ks8qe6ks4qe3ks2ks19t0kuoqfe9sgkucqf79s8ku69s4ku39s29uokve9uckv79u69u39ve9v7t2guhcv8nt28uh6t24uh3t22t21q6gt3cuhnq68t36q64t33q62q61kegq7ct3nke8q76ke4q73ke2ke18ugkfcq7n8u8kf68u4kf38u28u18vckfn8v68v38vnt18ugmt14ugjt12t11q38t1mq34t1jq32q31k78q3mk74q3jk72k718f8k7m8f4k7j8f28f18fm8fjt0kugbt0it0hq1kt0rq1iq1hk3kq1rk3ik3h87kk3r87i87ht0at09q0qq0pk1qk1psl0uaov5eskguacv57sk8ua6sk4ua3sk2sk1pd0smoubepcgsmcub7pc8sm6pc4sm3pc2pc1it0peosneisgpecsn7is8pe6is4pe3is2is15t0iuopfe5sgiucpf75s8iu65s4iu35s25uoive5uciv75u65u35ve5v7uqgvdcdfouq8vd6d7suq4vd3d3uuq2uq1sigu9cv4ntmgsi8vdntm8ur6u93tm4si2tm2si1tm1p6gsjcu9nregp68sj6re8tn6sj3re4p62re2p61re1iegp7csjnmugie8p76mu8rf6p73mu4ie2mu2ie1mu14ugifcp7ndug4u8if6du8mv6if3du44u2du24u14vcifndvc4v6dv64v3dv34vnup8vcmcnsup4vcjcjuup2chvup1sh8u8mtj8sh4u8jtj4upjtj2sh1tj1p38shmr78p34shjr74tjjr72p31r71i78p3mmf8i74p3jmf4r7jmf2i71mf14f8i7mcv84f4i7jcv4mfjcv24f1cv14fmcvm4fjcvjuokvcbcbuuoic9vuohsgku8bthkuorthisghthhp1ksgrr3kp1ir3ip1hr3hi3kp1rm7kr3rm7ii3hm7h47ki3rcfk47icfi47hcfh47rcfruoac5vuo9sgatgqsg9tgpp0qr1qp0pr1pi1qm3qi1pm3p43qc7q43pc7puo5sg5tgdp0dr0ti0tm1tsagu5cv2nsa8u56sa4u53sa2sa1omgsbcu5nom8sb6om4sb3om2om1hegoncsbnhe8on6he4on3he2he12ughfconn2u8hf62u4hf32u22u12vchfn2v62v32vnud8v6m6nsud4v6j6juud26hvud1s98u4msr8s94u4jsr4udjsr2s91sr1oj8s9mpn8oj4s9jpn4srjpn2oj1pn1h78ojmjf8h74ojjjf4pnjjf2h71jf12f8h7m6v82f4h7j6v4jfj6v22f16v12fm6vm2fj6vjvekenonbuveiejsn9vvehehuegvuckv6b6buutkvereru69vutiuchepvuths8ku4bspks8itrkutrs8htrisphtrhohks8rpjkohirnkpjiohhrnipjhrnhh3kohrj7kh3infkj7ih3hnfij7hnfh27kh3r6fk27ievk6fi27hevi6fhevh27r6frveaebsn5vve9e9ue8vuca65vusquc9edvusps8asoqs89tpqsoptppogqphqogprjqphprjph1qj3qh1pn7qj3pn7p23q67q23pefq67pefpve5e5ue4vuc5usds85sodtotogdpgtrhth0tj1tn3t21t63te7te2vs58u2ms54u2js52s51ob8s5mob4s5job2ob1gn8obmgn4objgn2gn11f8gnm1f4gnj1f21f11fm1fju6kv3b3buu6i39vu6hs4ku2bsdks4isdis4hsdho9ks4rorko9iorio9horhgjko9rhnkgjihnigjhhnh17kgjr3fk17i3fi17h3fh17r3frv7a7bsjlvv7979u78vu6a35vuequ697dvueps4ascqs49stqscpstpo8qopqo8pprqoppprpghqhjqghpjnqhjpjnp13q37q13p7fq37p7fpfbonluf9snkvf8uf8fv7575uvfdfdu74vfcvu65ueduuts45scdsstttto8dootpptrrtggthhtjjtnnt11t33t77tf5snivf4uf4f72vf6vf2uf2ff1fs2ks2is2ho5ks2ro5io5hgbko5rgbigbh0nkgbr0ni0nh0nru3a1lvu39s2as6qs29s6po4qodqo4podpg9qgrqg9pgrp0jq1nq0jp1npv3l3lu3kvu35u7ds25s6dseto4doctottg8tgpthrt0ht1jt3nt7lsjqv7ku7kf3iv7mvflonqufksnqffkefk77iufmu7iffmffisnpffiefi77hffjffhefh7fgno2qo2pg5qg5p0bq0bps3do2do6tg4tgdt09t0rt1qv3qu3qf7qsjtf7qe7q73pf7rffqontefqcnt7fq6fq37pefre7p7fr7fpcnsnfp6fp37onfpnfomfoj1tf3te3t77tcjun7t67t33sn7tn7sm7sj","lfgqnsaf0l7oqjua7gl3sqhva3ol1ua1svb8bfglnsvb4b7oljuvb2b3slhvvb1b1uun8vbmbnsun4vbjbjuun2bhvun1tf8unmtf4unjtf2tf1qv8tfmqv4tfjqv2qv1lv8qvmlv4qvjlv29f0knoqbu97gkjsq9v93okhu91skgv90uv9k9nokruv9i9jskpvv9h9hu9gvujkv9r9ruuji9pvujht7kujrt7it7hqfkt7rqfiqfhkvkqfrkvikvh8ngkbsq5v8jok9u8hsk8v8gu8gfv8q8rskdvv8p8pu8ovuhq8tvuhpt3qt3pq7qq7pkfqkfp8bok5u89sk4v88u88fv8d8du8cvugtt1tq3t85sk2v84u84f86v82u82f5f0inopbu57gijsp9v53oihu51sigv50uv5k5noiruv5i5jsipvv5h5hu5gvubkv5r5ruubi5pvubhsnkubrsnisnhpfksnrpfipfhivkpfriviivhmngrbstlvd70mjor9ud3gmhsr8vd1omgud0smgfd0e4ngibsp5vdng4joi9udjompui8vdhs4gudgu4gfdgfv4q4rsidvvdqv4pdrs4puvdpdpu4ovdovu9q4tvurqu9pdtvurpsjqtnqsjptnpp7qrfqp7prfpifqifpcn0mbor5ucjgm9sr4vchom8ucgsm8fcgecg74boi5ucro49si4vcpsmcvcou48fcofv4d4duvctctu4cvcsvu8tuptshttjtp3tr7ti7tcbgm5sr2vc9om4uc8sm4fc8ec8745si2vcds44uccu44fccf46vcevc5om2uc4sm2fc4ec4742uc6u42fc6fc2sm1fc2ec2741fc3fc1ec172nghbsolv2joh9u2hsh8v2gu2gfv2q2rshdvv2p2pu2ovu5q2tvu5psbqsbponqonphfqhfp6n0jboplu6jgj9spkv6hoj8u6gsj8f6ge6g72boh5u6ro29sh4v6psjcv6ou28f6ofv2d2duv6t6tu2cv6svu4tudts9tsrtojtpnth7tnbgrlstqvej0n9orkuehgn8srkfegon8eegcn87eg66bgj5spiverg69oj4ueponcuj4feos68eeoe687eo725sh2v6ds24uets6cu24fesu6cfesf26v6eveuveb0n5oriue9gn4srife8on4ee8cn47e86e8365oj2uedo64sj2fecsn6fece647ec722u66u22feeu66feefe5gn2srhfe4on2ee4cn27e46e4362sj1fe6s62ee6e627e6721f63fe7fe2on1ee2cn17e26e2361ee3e617e37e1cn0ne16e1360ne1ne0me0j1boglu19sgkv18u18f1du1cvu2ts5tobtgnt3bghlsoqv39ohku38shkf38e38715sgiv3ds14u3cu14f3cf16v3ev7b0jlopqu79gjkspqf78ojke78cjk778678335ohiu7do34shif7cs34e7ce3477c712u36u12f7eu36f7efnlgrqsttff90nkorqef8gnkcrq7f88nk6f84nk3f8275gjisppffdg74ojiefconmeji7fcc746fc6743fc332shhf76s32efes76e327fee767fe711f33f77fffff50niorpef4gnicrp7f48ni6f44ni3f42f4172ojhef6o72cjh7f6cnj7f66723f6331e73e317f7e737f77f2gnhcronf28nh6f24nh3f22f2171cjgnf3c716f36713f3330n71nf3nf18ngmf14ngjf12f1170mf1m70jf1jf0kngbf0if0h70bf0r0lsgav0ku0kf0mv1logqu1ksgqf1ke1k70iu1mu0if1mf3lghqsotf3kohqe3kchq73k63k31isgpf3ms1ie3me1i73m70hf1jf3nf7l0jqopte7kgjqcpt77k8jq67k4jq37k27k13iohpe7mo3ichp77mcjr77m63i37m31he3je1h77ne3j77n7nqgrtctunnq8rt6nq4rt3nq2nq17igjpcpsnfmg7i8jp6fm8nr6jp3fm47i2fm27i1fm13hchon7jc3h6fnc7j63h3fn67j3fn31gn3hn7jnfnnnp8rsmnp4rsjnp2np17h8jomfj87h4jojfj4npjfj27h1fj13gm7hm3gjfjm7hjfjjnokrsbnoinoh7gkjobfhk7gifhi7ghfhh3gb7grfhrnoano97gafgq7g9fgp0au0af0qsgdf0qe0q709f0rf1qogte1qcgt71q61q30pe1re0p71r73qghtcoun3q8ht63q4ht33q23q11pcgsn3rchtn3r61p33r30on1pn3rnjt8pumjt4pujjt2jt13p8hsm7r8jtmhsj7r43p27r23p17r11om3pm1oj7rm3pj7rjruktvbruiruhjskpubntkjsintijshnth3okhsb7pk3oifrk7pi3ohfri7phfrh1ob3or7prfrrruaru9jsansqjs9nsp3oa7oq3o9fpq7opfppru5js5nsd3o57odfot0de0d70tcgen0t60t30cn0tn1t8gum1t4guj1t21t10sm1tm0sj1tjhukovbhuihuh1skgub3tkhur3ti1sh3th0sb1sr3trpvapv9huajuqhu9jup1sa3sq1s97tq3sp7tppv5hu5jud1s53sd7st0em0ej0ukgfb0ui0uh0eb0urgvagv90ua1uq0u91upovl"],Qt=null;function ga(){return Qt||(Qt=ha.map(e=>{let t=new Array(929);for(let n=0;n<929;n++)t[n]=65536|parseInt(e.substr(n*3,3),32)<<1;return t}),Qt)}var ba=130728,ya=260649;function wa(e,t){if(!(t>=0&&t<=8)||t%1)throw new Error("PDF417: ecc level must be 0..8");let n=2<<t,r=new Array(n+1).fill(0);r[0]=1;let o=1;for(let l=1;l<=n;l++){o=o*3%929;for(let i=l;i>=0;i--)r[i]=((i>0?r[i-1]:0)+929-r[i]*o%929)%929}let s=new Array(n).fill(0);for(let l of e){let i=(l+s[n-1])%929;for(let f=n-1;f>=1;f--)s[f]=(s[f-1]+929-i*r[f]%929)%929;s[0]=(929-i*r[0]%929)%929}let a=[];for(let l=n-1;l>=0;l--)a.push((929-s[l])%929);return a}var co="0123456789&\r ,:#-.$/+%*=^",Pt=`;<>@[\\]_\`~!\r ,:
|
|
12
|
-
-.$/"|*()?{}'`,Nn=e=>e===9||e===10||e===13||e>=32&&e<=126;function xa(e){let t=[],n=i=>i>=65&&i<=90,r=i=>i>=97&&i<=122,o=i=>co.includes(i),s=i=>!o(i)&&Pt.includes(i),a=0;for(let i=0;i<e.length;){let f=e[i],d=e.charCodeAt(i);if(a===0)n(d)||d===32?(t.push(d===32?26:d-65),i++):r(d)?(t.push(27),a=1):o(f)?(t.push(28),a=2):(t.push(29,Pt.indexOf(f)),i++);else if(a===1)r(d)||d===32?(t.push(d===32?26:d-97),i++):n(d)?(t.push(27,d-65),i++):o(f)?(t.push(28),a=2):(t.push(29,Pt.indexOf(f)),i++);else if(a===2)o(f)||d===32?(t.push(d===32?26:co.indexOf(f)),i++):n(d)?(t.push(28),a=0):r(d)?(t.push(27),a=1):i+1<e.length&&s(e[i+1])?(t.push(25),a=3):(t.push(29,Pt.indexOf(f)),i++);else{let h=Pt.indexOf(f);h>=0?(t.push(h),i++):(t.push(29),a=0)}}t.length%2&&t.push(29);let l=[];for(let i=0;i<t.length;i+=2)l.push(t[i]*30+t[i+1]);return l}function ka(e){let t=[];for(let n=0;n<e.length;n+=44){let r=("1"+e.substr(n,44)).split("").map(Number),o=[];for(;r.length;){let s=[],a=0;for(let l of r){a=a*10+l;let i=Math.floor(a/900);a-=i*900,(s.length||i)&&s.push(i)}o.unshift(a),r=s}t.push(...o)}return t}function $a(e){let t=[e.length%6===0?924:901],n=0;for(;n+6<=e.length;n+=6){let r=0;for(let s=0;s<6;s++)r=r*256+e[n+s];let o=[];for(let s=0;s<5;s++)o.unshift(r%900),r=Math.floor(r/900);t.push(...o)}for(;n<e.length;n++)t.push(e[n]);return t}function va(e){let t=[];/[^\x00-\x7f]/.test(e)&&t.push(927,26);let n=new TextEncoder,r="text",o=0;for(;o<e.length;){let s=Hn(e,o);if(s>=13){t.push(902,...ka(e.substr(o,s))),r="num",o+=s;continue}let a=o;if(Nn(e.charCodeAt(o))){for(;a<e.length&&Nn(e.charCodeAt(a))&&Hn(e,a)<13;)a++;r!=="text"&&t.push(900),t.push(...xa(e.slice(o,a))),r="text"}else{for(;a<e.length&&!Nn(e.charCodeAt(a));)a++;t.push(...$a(n.encode(e.slice(o,a)))),r="byte"}o=a}return t}var Ma=e=>e<=40?2:e<=160?3:e<=320?4:5;function Wn(e,t={}){let n=va(e),r=t.ecc??Ma(n.length+1);if(!(r>=0&&r<=8)||r%1)throw new Error("PDF417: ecc level must be 0..8");let o=2<<r,s=1+n.length+o,a=M=>{let $=Math.max(3,Math.ceil(s/M));return $<=90&&$*M<=928?$:0},l=0;if(t.columns!==void 0){if(!(t.columns>=1&&t.columns<=30)||t.columns%1)throw new Error("PDF417: columns must be 1..30");if(!a(t.columns))throw new Error("PDF417: data does not fit with the requested columns");l=t.columns}else{let M=1/0;for(let $=1;$<=30;$++){let v=a($);if(!v)continue;let j=Math.abs(Math.log((17*($+4)+1)/(v*3)/3));j<M&&(M=j,l=$)}if(!l)throw new Error("PDF417: data too long")}let i=a(l),f=[0,...n];for(;f.length<i*l-o;)f.push(900);f[0]=f.length;let d=f.concat(wa(f,r)),h=ga(),u=(M,$,v)=>{for(let j=v-1;j>=0;j--)M.push(($>>>j&1)===1)},c=Math.floor((i-1)/3),p=r*3+(i-1)%3,g=l-1,E=[];for(let M=0;M<i;M++){let $=M%3,v=30*Math.floor(M/3),j=v+($===0?c:$===1?p:g),w=v+($===0?g:$===1?c:p),C=h[$],A=[];u(A,ba,17),u(A,C[j],17);for(let I=0;I<l;I++)u(A,C[d[M*l+I]],17);u(A,C[w],17),u(A,ya,18),E.push(A)}return{rows:i,cols:l,matrix:E}}var jt=new Uint8Array(512),zn=new Uint8Array(256);(()=>{let e=1;for(let t=0;t<255;t++)jt[t]=e,zn[e]=t,e<<=1,e&256&&(e^=301);for(let t=255;t<512;t++)jt[t]=jt[t-255]})();var uo=(e,t)=>e&&t?jt[zn[e]+zn[t]]:0;function Sa(e,t){let n=[1];for(let s=1;s<=t;s++){let a=new Array(n.length+1).fill(0),l=jt[s];for(let i=0;i<n.length;i++)a[i]^=n[i],a[i+1]^=uo(n[i],l);n=a}let r=n.slice(1),o=new Array(t).fill(0);for(let s of e){let a=s^o.shift();o.push(0);for(let l=0;l<t;l++)o[l]^=uo(r[l],a)}return o}var Ea=[[10,3,5,1],[12,5,7,1],[14,8,10,1],[16,12,12,1],[18,18,14,1],[20,22,18,1],[22,30,20,1],[24,36,24,1],[26,44,28,1],[32,62,36,1],[36,86,42,1],[40,114,48,1],[44,144,56,1],[48,174,68,1],[52,204,84,2],[64,280,112,2],[72,368,144,4],[80,456,192,4],[88,576,224,4],[96,696,272,4],[104,816,336,6],[120,1050,408,6],[132,1304,496,8],[144,1558,620,10]],Ta=e=>e<32?1:e<64?2:e<120?4:6;function Ra(e){let t=new TextEncoder().encode(e),n=[],r=a=>a<t.length&&t[a]>=128,o=a=>a<t.length&&t[a]>=48&&t[a]<=57;t.some(a=>a>=128)&&n.push(241,27);let s=0;for(;s<t.length;)if(r(s)){let a=s;for(;;){for(;r(a);)a++;let f=a;for(;f<t.length&&!r(f)&&f-a<4;)f++;if(f>a&&f-a<4&&r(f))a=f;else break}let l=a-s;n.push(231);let i=l<=249?[l]:[Math.floor(l/250)+249,l%250];for(let f of[...i,...t.subarray(s,a)]){let d=n.length+1,h=f+149*d%255+1;n.push(h<=255?h:h-256)}s=a}else o(s)&&o(s+1)?(n.push(130+(t[s]-48)*10+(t[s+1]-48)),s+=2):(n.push(t[s]+1),s++);return n}function Pa(e,t){let n=new Int32Array(e*t),r=(f,d,h,u)=>{f<0&&(f+=e,d+=4-(e+4)%8),d<0&&(d+=t,f+=4-(t+4)%8),n[f*t+d]=10*h+u},o=(f,d,h)=>{r(f-2,d-2,h,1),r(f-2,d-1,h,2),r(f-1,d-2,h,3),r(f-1,d-1,h,4),r(f-1,d,h,5),r(f,d-2,h,6),r(f,d-1,h,7),r(f,d,h,8)},s=(f,d)=>d.forEach(([h,u],c)=>r(h,u,f,c+1)),a=1,l=4,i=0;do{l===e&&i===0&&s(a++,[[e-1,0],[e-1,1],[e-1,2],[0,t-2],[0,t-1],[1,t-1],[2,t-1],[3,t-1]]),l===e-2&&i===0&&t%4&&s(a++,[[e-3,0],[e-2,0],[e-1,0],[0,t-4],[0,t-3],[0,t-2],[0,t-1],[1,t-1]]),l===e-2&&i===0&&t%8===4&&s(a++,[[e-3,0],[e-2,0],[e-1,0],[0,t-2],[0,t-1],[1,t-1],[2,t-1],[3,t-1]]),l===e+4&&i===2&&!(t%8)&&s(a++,[[e-1,0],[e-1,t-1],[0,t-3],[0,t-2],[0,t-1],[1,t-3],[1,t-2],[1,t-1]]);do l<e&&i>=0&&!n[l*t+i]&&o(l,i,a++),l-=2,i+=2;while(l>=0&&i<t);l+=1,i+=3;do l>=0&&i<t&&!n[l*t+i]&&o(l,i,a++),l+=2,i-=2;while(l<e&&i>=0);l+=3,i+=1}while(l<e||i<t);return n[e*t-1]||(n[e*t-1]=n[e*t-t-2]=1),n}function ja(e){let t=Ra(e),n=Ea.find(f=>f[1]>=t.length);if(!n)throw new Error("DataMatrix: data too long");let[r,o,s,a]=n;for(t.length<o&&t.push(129);t.length<o;){let f=129+149*(t.length+1)%253+1;t.push(f<=254?f:f-254)}let l=s/a,i=t.slice();for(let f=0;f<a;f++){let d=[];for(let u=f;u<o;u+=a)d.push(t[u]);let h=Sa(d,l);for(let u=0;u<l;u++)i[o+u*a+f]=h[u]}return{size:r,data:t,codewords:i}}function _n(e){let{size:t,codewords:n}=ja(e),r=Ta(t),o=(t-2*r)/r,s=o*r,a=Pa(s,s),l=Array.from({length:t},()=>new Array(t).fill(!1)),i=o+2;for(let f=0;f<r;f++)for(let d=0;d<r;d++){let h=f*i,u=d*i;for(let c=0;c<i;c++)l[h+i-1][u+c]=!0,l[h+c][u]=!0,c%2===0&&(l[h][u+c]=!0),c%2===1&&(l[h+c][u+i-1]=!0)}for(let f=0;f<s;f++)for(let d=0;d<s;d++){let h=a[f*s+d],u=h===1||h>=10&&(n[Math.floor(h/10)-1]>>8-h%10&1)===1;l[f+2*Math.floor(f/o)+1][d+2*Math.floor(d/o)+1]=u}return l}var ot={A3:[297,420],A4:[210,297],A5:[148,210],B4:[257,364],B5:[182,257],Letter:[215.9,279.4],Legal:[215.9,355.6]};function _e(e={}){let[t,n]=Array.isArray(e.size)?e.size:ot[e.size??"A4"]??ot.A4;(e.orientation==="landscape"?t<n:e.orientation==="portrait"&&t>n)&&([t,n]=[n,t]);let r=e.margins??15,o=typeof r=="number"?[r,r,r,r]:[r[0],r[1],r[2],r[3]];return{width:t,height:n,margins:o}}function Xe(e){let t=_e(e.page);return t.width-t.margins[1]-t.margins[3]}var Xn={width:.2,style:"solid",color:"#000000"};function ho(e){if(!e)return;if(e===!0)return{...Xn};if(typeof e=="string"){if(e==="none"||e==="0")return;let n={...Xn};for(let r of e.trim().split(/\s+/))/^[\d.]+(mm)?$/.test(r)?n.width=parseFloat(r):/^(solid|dashed|dotted|double)$/.test(r)?n.style=r:n.color=r;return n.width>0?n:void 0}let t={...Xn,...e};return t.width>0?t:void 0}function Ct(e){if(!e)return{};if(e===!0||typeof e=="string"||"width"in e||"style"in e||"color"in e){let r=ho(e);return r?{top:r,right:r,bottom:r,left:r}:{}}let t=e,n={};for(let r of["top","right","bottom","left"]){let o=ho(t[r]);o&&(n[r]=o)}return n}var Ca=(e,t)=>e===void 0?t:typeof e=="number"?[e,e,e,e]:e,Aa="Nanum Gothic",go=new WeakMap;function Fe(e,t){let n=t.styleName?e.styles?.[t.styleName]:void 0,r=go.get(t);if(r&&r.style===t.style&&r.named===n&&r.font===e.font)return r.result;let o=La(e,t,n);return go.set(t,{style:t.style,named:n,font:e.font,result:o}),o}function La(e,t,n){let r={...n,...t.style};return{fontFamily:r.fontFamily??e.font?.family??Aa,fontSize:r.fontSize??e.font?.size??9,bold:r.bold??!1,italic:r.italic??!1,underline:r.underline??!1,strike:r.strike??!1,color:r.color??e.font?.color??"#000000",background:r.background,align:r.align??"left",valign:r.valign??"middle",padding:Ca(r.padding,[.5,1,.5,1]),border:Ct(r.border),lineHeight:r.lineHeight??1.25,wrap:r.wrap??!0,shrinkToFit:r.shrinkToFit??!1,letterSpacing:r.letterSpacing??0}}var Fa={black:"#000000",white:"#ffffff",red:"#ff0000",green:"#008000",blue:"#0000ff",gray:"#808080",grey:"#808080",silver:"#c0c0c0",navy:"#000080",yellow:"#ffff00",orange:"#ffa500",purple:"#800080",maroon:"#800000",teal:"#008080"};function nn(e){if(!e)return null;let t=e.trim().toLowerCase();if(t==="transparent"||t==="none")return null;let n=Fa[t]??t,r=/^#([0-9a-f]{3,8})$/.exec(n);if(r){let o=r[1];return(o.length===3||o.length===4)&&(o=[...o].map(s=>s+s).join("")),o.length!==6&&o.length!==8?null:[parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16),o.length===8?parseInt(o.slice(6,8),16)/255:1]}if(r=/^rgba?\(([^)]+)\)$/.exec(t),r){let o=r[1].split(/[\s,/]+/).filter(Boolean).map(parseFloat);return o.length<3?null:[o[0],o[1],o[2],o[3]??1]}return null}var gt=["#2F5BEA","#F2A900","#16A34A","#DC2626","#7C3AED","#0891B2","#DB2777","#65A30D","#EA580C","#475569"],Da=(e,t)=>{let n=e/Math.max(1,t),r=10**Math.floor(Math.log10(n||1)),o=n/r;return(o<=1?1:o<=2?2:o<=2.5?2.5:o<=5?5:10)*r};function bo(e,t,n,r,o,s=0){let a=[],l=(i,f,d,h)=>{let u=Math.max(1,Math.ceil(Math.abs(d-f)/(Math.PI/2))),c=(d-f)/u,p=4/3*Math.tan(c/4),g=f;h?a.push("M",e+i*Math.cos(g),t+i*Math.sin(g)):a.push("L",e+i*Math.cos(g),t+i*Math.sin(g));for(let E=0;E<u;E++){let M=g+c;a.push("C",e+i*(Math.cos(g)-p*Math.sin(g)),t+i*(Math.sin(g)+p*Math.cos(g)),e+i*(Math.cos(M)+p*Math.sin(M)),t+i*(Math.sin(M)-p*Math.cos(M)),e+i*Math.cos(M),t+i*Math.sin(M)),g=M}};return l(n,r,o,!0),s>0?l(s,o,r,!1):a.push("L",e,t),a.push("Z"),a}var Vn=(e,t,n,r)=>["M",e,t,"L",e+n,t,"L",e+n,t+r,"L",e,t+r,"Z"];function yo(e,t,n,r){let o=Fe(r.def,e),s=e.source?Me(e.source,t):t.rows,a=Array.isArray(s)?s:[],l=e.series?.length?e.series:[],i=a.map((J,X)=>ve(Me(e.category,{...t,row:J,vars:{...t.vars,rowNum:X+1}})??"")),f=l.map(J=>a.map((X,ce)=>{let ie=Number(Me(J.expr,{...t,row:X,vars:{...t.vars,rowNum:ce+1}}));return Number.isFinite(ie)?ie:0})),d=J=>l[J]?.color??gt[J%gt.length],h=Math.min(o.fontSize,8),u={family:o.fontFamily,size:h,bold:!1,italic:!1},c={...o,padding:[0,0,0,0],letterSpacing:0,border:{}},p=h*$e*1.3,g=[],E=(J,X,ce,ie,de,le=!1,T="#444444")=>g.push({...st(X,ce,ie,p,[J],{...u,bold:le},{...c,align:de,valign:"middle",color:T},r.measure),source:{band:r.kind,elementId:e.id}}),{x:M,y:$,w:v,h:j}=n;if(e.title&&(E(e.title,M,$,v,"center",!0,o.color),$+=p*1.3,j-=p*1.3),e.legend??(l.length>1||e.chartType==="pie"||e.chartType==="doughnut")){let J=e.chartType==="pie"||e.chartType==="doughnut"?i:l.map((O,F)=>O.label??`Series ${F+1}`),X=h*$e,ce=M,ie=$+j-p,de=[];J.forEach((O,F)=>{let L=r.measure.width(O,u)+X+3;ce+L>M+v&&ce>M&&(ce=M,ie-=p),de.push({text:O,color:e.chartType==="pie"||e.chartType==="doughnut"?gt[F%gt.length]:d(F),x:ce,y:ie}),ce+=L+2});let le=$+j-Math.min(...de.map(O=>O.y),$+j),T=new Map;for(let O of de)T.set(O.y,[...T.get(O.y)??[],O]);for(let O of T.values()){let F=O[O.length-1],L=F.x+r.measure.width(F.text,u)+X+1-O[0].x,k=(v-L)/2;for(let P of O)g.push({kind:"path",d:Vn(P.x+k,P.y+(p-X)/2,X,X),fill:P.color}),E(P.text,P.x+k+X+1,P.y,r.measure.width(P.text,u)+1,"left")}j-=le+1}if(!a.length||!l.length||j<5)return g;if(e.chartType==="pie"||e.chartType==="doughnut"){let J=f[0].map(T=>Math.max(0,T)),X=J.reduce((T,O)=>T+O,0)||1,ce=Math.min(v,j)/2-1,ie=M+v/2,de=$+j/2,le=-Math.PI/2;return J.forEach((T,O)=>{let F=le+T/X*Math.PI*2;if(T>0&&g.push({kind:"path",d:bo(ie,de,ce,le,F,e.chartType==="doughnut"?ce*.55:0),fill:gt[O%gt.length],stroke:"#ffffff",strokeWidth:.3}),e.showValues!==!1&&T/X>=.04){let L=(le+F)/2,k=e.chartType==="doughnut"?ce*.78:ce*.62,P=e.format?ve(T,e.format):`${Math.round(T/X*100)}%`;E(P,ie+k*Math.cos(L)-10,de+k*Math.sin(L)-p/2,20,"center",!0,"#ffffff")}le=F}),g}let C=e.chartType==="hbar",A=!!e.stacked&&(e.chartType==="bar"||e.chartType==="hbar"||e.chartType==="area"),I=i.map((J,X)=>f.reduce((ce,ie)=>ce+Math.max(0,ie[X]),0)),Q=i.map((J,X)=>f.reduce((ce,ie)=>ce+Math.min(0,ie[X]),0)),ne=Math.max(...A?I:f.flat()),U=A?Math.min(0,...Q):Math.min(0,...f.flat());ne===U&&(ne=U+1);let re=Da(ne-U,5);ne=Math.ceil(ne/re)*re,U=Math.floor(U/re)*re;let be=[];for(let J=U;J<=ne+re/1e6;J+=re)be.push(Math.round(J*1e9)/1e9);let V=J=>ve(J,e.format??(Math.abs(ne)>=1e3?"#,##0":void 0)),fe=Math.max(...be.map(J=>r.measure.width(V(J),u)))+1.5,pe=C?Math.min(v*.3,Math.max(...i.map(J=>r.measure.width(J,u)))+1.5):0,K=C?{x:M+pe,y:$,w:v-pe-2,h:j-p}:{x:M+fe,y:$+p/2,w:v-fe-1,h:j-p-p/2},se="#999999",Y="#e3e3e3",N=J=>C?K.x+(J-U)/(ne-U)*K.w:K.y+K.h-(J-U)/(ne-U)*K.h;for(let J of be){let X=N(J);C?(g.push({kind:"line",x1:X,y1:K.y,x2:X,y2:K.y+K.h,width:.15,color:J===0?se:Y}),E(V(J),X-10,K.y+K.h+.3,20,"center")):(g.push({kind:"line",x1:K.x,y1:X,x2:K.x+K.w,y2:X,width:.15,color:J===0?se:Y}),E(V(J),M,X-p/2,fe-1,"right"))}let q=i.length,ee=(C?K.h:K.w)/q,ae=Math.max(1,Math.ceil(q*r.measure.width("0000",u)/(C?K.h*3:K.w)));if(i.forEach((J,X)=>{X%ae||(C?E(J,M,K.y+X*ee+ee/2-p/2,pe-1,"right"):E(J,K.x+X*ee,K.y+K.h+.3,ee*ae,ae>1?"left":"center"))}),e.chartType==="bar"||e.chartType==="hbar"){let J=ee*.7,X=A?J:J/l.length,ce=N(0);return i.forEach((ie,de)=>{let le=0,T=0;l.forEach((O,F)=>{let L=f[F][de],k=0,P=L;A&&(L>=0?(k=le,P=le+L,le=P):(k=T,P=T+L,T=P));let H=A?N(k):ce,x=N(P),W=(C?K.y:K.x)+de*ee+(ee-J)/2+(A?0:F*X),Z=C?Vn(Math.min(H,x),W,Math.abs(x-H),X*.92):Vn(W,Math.min(H,x),X*.92,Math.abs(x-H));g.push({kind:"path",d:Z,fill:d(F),source:{band:r.kind,elementId:e.id,value:L}}),e.showValues&&L!==0&&(C?E(V(L),x+.5,W+X*.46-p/2,fe+4,"left"):E(V(L),W-5,Math.min(H,x)-p,X+10,"center"))})}),g}let he=i.map((J,X)=>K.x+X*ee+ee/2),we=i.map(()=>0);return l.forEach((J,X)=>{let ce=f[X].map((de,le)=>N(A?we[le]+=de:de)),ie=[];if(he.forEach((de,le)=>ie.push(le?"L":"M",de,ce[le])),e.chartType==="area"){let de=A&&X>0?f.slice(0,X).reduce((T,O)=>T.map((F,L)=>F+O[L]),i.map(()=>0)).map(N):he.map(()=>N(Math.max(U,0))),le=[...ie];for(let T=he.length-1;T>=0;T--)le.push("L",he[T],de[T]);le.push("Z"),g.push({kind:"path",d:le,fill:d(X),opacity:.25})}g.push({kind:"path",d:ie,stroke:d(X),strokeWidth:.5,source:{band:r.kind,elementId:e.id}}),he.forEach((de,le)=>{q<=40&&g.push({kind:"path",d:bo(de,ce[le],.7,0,Math.PI*2).slice(0,-4).concat(["Z"]),fill:d(X)}),e.showValues&&E(V(f[X][le]),de-8,ce[le]-p-.3,16,"center")})}),g}var wo="0.15 solid #9aa3b2",xo="#eef1f6";function Ve(e,t,n){return{...e,...t?.bold!==void 0?{bold:t.bold}:{},...t?.color?{color:t.color}:{},...t?.fontSize?{fontSize:t.fontSize}:{},background:t?.background??e.background,border:t?.border!==void 0?Ct(t.border):e.border,align:n,valign:"middle",wrap:!1}}function Ce(e,t,n,r,o,s,a,l,i,f){let d=a.border.top||a.border.right||a.border.bottom||a.border.left;if((a.background||d)&&e.push({kind:"box",x:t,y:n,w:r,h:o,fill:a.background,border:a.border,source:{band:l.kind}}),!s)return;let h={family:a.fontFamily,size:a.fontSize,bold:a.bold,italic:a.italic},u=st(t,n,r,o,[s],h,a,l.measure);u.source={band:l.kind,value:i,format:f},e.push(u)}function rn(e){try{return Be(e)}catch(t){let n=`#ERR ${t.message}`;return()=>n}}var Yn=e=>Array.isArray(e)?e:[];function Ia(e){let t=e.columns.reduce((o,s)=>o+(s.width??0),0),n=e.columns.filter(o=>!o.width).length,r=Math.max(0,e.w-t);return e.columns.map(o=>o.width??(n?r/n:0))}function ko(e,t){let n=Yn(Me(e.source,t)),r=e.rowHeight??6,o=e.showHeader===!1?0:r,s=e.columns.some(a=>a.sum)?r:0;return Math.max(e.h,o+n.length*r+s)}function $o(e,t,n,r,o){let s=Yn(Me(e.source,t)),a=Fe(o.def,e),l={...a,border:a.border.top||a.border.left?a.border:Ct(wo),padding:[.3,1,.3,1]},i=Ve(l,{bold:!0,background:xo,...e.headerStyle},"center"),f=Ia(e),d=e.rowHeight??6,h=[],u=r;if(e.showHeader!==!1){let g=n;e.columns.forEach((E,M)=>{Ce(h,g,u,f[M],d,E.header,i,o),g+=f[M]}),u+=d}let c=e.columns.map(g=>rn(g.expr)),p=e.columns.map(()=>0);if(s.forEach((g,E)=>{let M=n,$={...t,row:g,vars:{...t.vars,rowNum:E+1}};e.columns.forEach((v,j)=>{let w;try{w=c[j]($)}catch(A){w=`#ERR ${A.message}`}v.sum&&typeof w=="number"&&(p[j]+=w);let C=Ve(l,e.altBackground&&E%2?{background:e.altBackground}:void 0,v.align??(typeof w=="number"?"right":"left"));Ce(h,M,u,f[j],d,ve(w,v.format,o.locale),C,o,w,v.format),M+=f[j]}),u+=d}),e.columns.some(g=>g.sum)){let g=n,E=Ve(l,{bold:!0,background:"#f7f8fb"},"right");e.columns.forEach((M,$)=>{let v=M.sum?ve(p[$],M.format,o.locale):$===0?e.footerLabel??"\uD569\uACC4":"";Ce(h,g,u,f[$],d,v,{...E,align:M.sum?"right":"center"},o,M.sum?p[$]:void 0,M.format),g+=f[$]})}return h}function vo(e,t){let n=e.source?Yn(Me(e.source,t)):t.rows,r=rn(e.rowKey),o=rn(e.columnKey),s=rn(e.value),a=e.aggregate??"sum",l=new Map,i=[],f=[],d=new Set,h=new Set;n.forEach((p,g)=>{let E={...t,row:p,vars:{...t.vars,rowNum:g+1}},M=ve(r(E)),$=ve(o(E)),v=Number(s(E));d.has(M)||(d.add(M),i.push(M)),h.has($)||(h.add($),f.push($));for(let j of[`${M}\0${$}`,`${M}\0*`,`*\0${$}`,"*\0*"]){let w=l.get(j);w||l.set(j,w=[]),w.push(Number.isFinite(v)?v:0)}});let u=new Intl.Collator("ko",{numeric:!0});i.sort(u.compare),f.sort(u.compare);let c=p=>{if(!p?.length)return null;switch(a){case"count":return p.length;case"avg":return p.reduce((g,E)=>g+E,0)/p.length;case"min":return p.reduce((g,E)=>E<g?E:g);case"max":return p.reduce((g,E)=>E>g?E:g);default:return p.reduce((g,E)=>g+E,0)}};return{rowKeys:i,colKeys:f,cell:(p,g)=>c(l.get(`${p}\0${g}`)),rowTotal:p=>c(l.get(`${p}\0*`)),colTotal:p=>c(l.get(`*\0${p}`)),total:c(l.get("*\0*"))}}function Mo(e,t){let n=vo(e,t),r=e.cellHeight??6;return Math.max(e.h,(n.rowKeys.length+1+(e.totals!==!1?1:0))*r)}function So(e,t,n,r,o){let s=vo(e,t),a=e.totals!==!1,l=e.cellHeight??6,i=Fe(o.def,e),f={...i,border:i.border.top||i.border.left?i.border:Ct(wo),padding:[.3,1,.3,1]},d=Ve(f,{bold:!0,background:xo,...e.headerStyle},"center"),h=Ve(f,{bold:!0,background:"#f7f8fb"},"right"),u=Math.min(e.rowHeaderWidth??25,e.w*.4),c=s.colKeys.length+(a?1:0),p=c?(e.w-u)/c:0,g=f.fontSize,E=Math.max(1,...s.colKeys.map(w=>o.measure.width(w,{family:f.fontFamily,size:g,bold:!0,italic:!1})));E>p-2&&(g=Math.max(5,g*((p-2)/E)));let M=w=>({...w,fontSize:Math.min(w.fontSize,g)}),$=[],v=e.totals!==!1?o.locale.startsWith("ko")?"\uD569\uACC4":"Total":"";Ce($,n,r,u,l,e.corner??"",d,o),s.colKeys.forEach((w,C)=>Ce($,n+u+C*p,r,p,l,w,M(d),o)),a&&Ce($,n+u+s.colKeys.length*p,r,p,l,v,M(d),o);let j=e.format??"#,##0";if(s.rowKeys.forEach((w,C)=>{let A=r+(C+1)*l;if(Ce($,n,A,u,l,w,Ve(f,{bold:!0,background:"#f7f8fb"},"left"),o),s.colKeys.forEach((I,Q)=>{let ne=s.cell(w,I);Ce($,n+u+Q*p,A,p,l,ne===null?"":ve(ne,j,o.locale),M(Ve(f,void 0,"right")),o,ne??void 0,j)}),a){let I=s.rowTotal(w);Ce($,n+u+s.colKeys.length*p,A,p,l,I===null?"":ve(I,j,o.locale),M(h),o,I??void 0,j)}}),a){let w=r+(s.rowKeys.length+1)*l;Ce($,n,w,u,l,v,Ve(f,{bold:!0,background:"#f7f8fb"},"center"),o),s.colKeys.forEach((C,A)=>{let I=s.colTotal(C);Ce($,n+u+A*p,w,p,l,I===null?"":ve(I,j,o.locale),M(h),o,I??void 0,j)}),Ce($,n+u+s.colKeys.length*p,w,p,l,s.total===null?"":ve(s.total,j,o.locale),M(h),o,s.total??void 0,j)}return $}var Ba=.8,Na=e=>!!e&&!(typeof e=="string"&&e.startsWith("#ERR"));function Ha(e,t=e.fontSize){return{family:e.fontFamily,size:t,bold:e.bold,italic:e.italic}}function Oa(e,t,n,r){let o=Fe(n.def,e);if(e.type==="table"||e.type==="crosstab")return n.blank||e.canGrow===!1?{el:e,style:o,needed:e.h}:{el:e,style:o,needed:e.type==="table"?ko(e,t):Mo(e,t)};if(e.type!=="text"&&e.type!=="field")return{el:e,style:o,needed:e.h};let s="",a;if(!n.blank){if(e.type==="text")s=Ue(e.text??"",t);else if(a=Me(e.expr,t),s=a==null||a===""?e.nullText??"":ve(a,e.format,n.locale),e.suppressRepeated&&n.previous){let M=n.previous.get(e);n.previous.set(e,s),M===s&&(s="")}}let[l,i,f,d]=o.padding,h=Math.max(1,e.w-d-i),u=Ha(o);if(o.shrinkToFit&&s){let M=o.fontSize;for(;M>4&&n.measure.width(s,{...u,size:M})+o.letterSpacing*s.length>h;)M-=.25;u={...u,size:M}}let c=o.wrap&&!o.shrinkToFit?kn(s,h,u,n.measure,o.letterSpacing):s.split(/\r?\n/),p=u.size*$e*o.lineHeight,E=e.canGrow??r?Math.max(e.h,c.length*p+l+f):e.h;return{el:e,style:o,text:s,value:a,font:u,lines:c,needed:E}}function qa(e,t,n,r,o,s,a){let l=o.border.top||o.border.right||o.border.bottom||o.border.left;return!o.background&&!l?null:{kind:"box",x:e,y:t,w:n,h:r,fill:o.background,border:o.border,source:{band:s.kind,elementId:a,row:s.rowIndex}}}function st(e,t,n,r,o,s,a,l){let[i,f,d,h]=a.padding,u=s.size*$e*a.lineHeight,c=o.length*u,p=r-i-d,g=t+i;a.valign==="middle"?g+=(p-c)/2:a.valign==="bottom"&&(g+=p-c);let E=o.map((M,$)=>{let v=l.width(M,s)+a.letterSpacing*[...M].length,j=e+h;return a.align==="center"?j=e+h+(n-h-f-v)/2:a.align==="right"&&(j=e+n-f-v),{text:M,x:j,y:g+$*u+(u-s.size*$e)/2+s.size*$e*Ba,width:v}});return{kind:"text",x:e,y:t,w:n,h:r,lines:E,font:s,color:a.color,align:a.align,valign:a.valign,underline:a.underline||void 0,strike:a.strike||void 0,letterSpacing:a.letterSpacing||void 0,text:o.join(`
|
|
13
|
-
`)}}function za(e,t,n,r,o){let s=e.reduce((f,d)=>f+d,0),a=r/s,l=[],i=t;return e.forEach((f,d)=>{d%2===0&&l.push("M",i,n,"L",i+f*a,n,"L",i+f*a,n+o,"L",i,n+o,"Z"),i+=f*a}),l}function Ua(e,t,n,r,o,s,a){let l=String(Me(e.expr,s)??"");if(!l||l.startsWith("#ERR")||a.blank)return[];let i=e.color??"#000000",f={band:a.kind,elementId:e.id,row:a.rowIndex,value:l};try{if(e.format==="qr"||e.format==="datamatrix"||e.format==="pdf417"){let E,M,$,v,j;if(e.format==="pdf417"){E=Wn(l).matrix;let A=E[0].length+4,I=E.length*3+4,Q=Math.min(r/A,o/I);M=Q,$=Q*3,v=t+(r-A*Q)/2+2*Q,j=n+(o-I*Q)/2+2*Q}else{E=e.format==="qr"?Kn(l,e.ecc??"M"):_n(l);let A=e.format==="qr"?4:1,I=E.length+A*2,Q=Math.min(r,o);M=$=Q/I,v=t+(r-Q)/2+A*M,j=n+(o-Q)/2+A*$}let w=M,C=[];return E.forEach((A,I)=>{for(let Q=0;Q<A.length;Q++){if(!A[Q])continue;let ne=Q;for(;ne+1<A.length&&A[ne+1];)ne++;C.push("M",v+Q*w,j+I*$,"L",v+(ne+1)*w,j+I*$,"L",v+(ne+1)*w,j+(I+1)*$,"L",v+Q*w,j+(I+1)*$,"Z"),Q=ne}}),[{kind:"path",d:C,fill:i,source:f}]}let d=e.format==="ean13"?Gn(l):Un(l),h=e.showText!==!1,u=Fe(a.def,e),c=Math.min(u.fontSize,9),p=h?c*$e*1.3:0,g=[{kind:"path",d:za(d,t,n,r,Math.max(1,o-p)),fill:i,source:f}];if(h){let E={family:u.fontFamily,size:c,bold:!1,italic:!1};g.push(st(t,n+o-p,r,p,[l],E,{...u,align:"center",valign:"middle",padding:[0,0,0,0],letterSpacing:0},a.measure))}return g}catch{return[st(t,n,r,o,["(barcode?)"],{family:"sans-serif",size:7,bold:!1,italic:!1},{...Fe(a.def,e),color:"#cc0000"},a.measure)]}}function Ye(e,t,n,r,o,s=0){let a=e.canGrow??(n.kind==="detail"||n.kind==="groupHeader"||n.kind==="groupFooter"||n.kind==="summary"||n.kind==="title"),l=[];for(let u of e.elements)u.visible&&!n.blank&&!Na(Me(u.visible,t))||l.push(Oa(u,t,n,a));let i=Math.max(e.height,s);for(let u of l)i=Math.max(i,u.el.y+u.needed);let f=[],d=n.background??e.background;d&&f.push({kind:"box",x:r,y:o,w:n.width,h:i,fill:d,source:{band:n.kind,row:n.rowIndex}});let h=i-e.height;for(let u of l){let c=u.el,p=c.y+c.h>=e.height-.01,g=u.needed;(c.stretch??p)&&c.type!=="line"&&c.type!=="table"&&c.type!=="crosstab"&&(g=Math.max(g,c.h+h,i-c.y));let E=r+c.x,M=o+c.y;switch(c.type){case"text":case"field":{let $=qa(E,M,c.w,g,u.style,n,c.id);if($&&f.push($),u.text){let v=st(E,M,c.w,g,u.lines,u.font,u.style,n.measure);v.source={band:n.kind,elementId:c.id,row:n.rowIndex,value:c.type==="field"?u.value:void 0,format:c.type==="field"?c.format:void 0},/docHash/.test(c.type==="text"?c.text:c.expr)&&(v.source.fingerprint=!0),f.push(v)}break}case"line":{let $=c.h===0?0:c.y+c.h>=e.height-.01?c.h+h:c.h;f.push({kind:"line",x1:E,y1:M,x2:E+c.w,y2:M+$,width:c.width??.2,color:c.color??"#000000",dash:c.dash,source:{band:n.kind,elementId:c.id}});break}case"rect":{let $=c.width??.2;f.push({kind:"box",x:E,y:M,w:c.w,h:g,fill:c.fill,radius:c.radius,stroke:$>0?{width:$,color:c.color??"#000000"}:void 0,source:{band:n.kind,elementId:c.id}});break}case"image":{let $=c.expr?String(Me(c.expr,t)??""):c.src??"";$&&!$.startsWith("#ERR")&&!n.blank&&f.push({kind:"image",x:E,y:M,w:c.w,h:g,src:$,fit:c.fit??"contain",source:{band:n.kind,elementId:c.id}});break}case"barcode":f.push(...Ua(c,E,M,c.w,g,t,n));break;case"chart":n.blank||f.push(...yo(c,t,{x:E,y:M,w:c.w,h:g},n));break;case"table":n.blank||f.push(...$o(c,t,E,M,n));break;case"crosstab":n.blank||f.push(...So(c,t,E,M,n));break}}return{height:i,items:f}}var Jn=e=>!!e&&!(typeof e=="string"&&e.startsWith("#ERR"));function Eo(e){return e instanceof Date?e.getTime():typeof e=="number"?e:typeof e=="boolean"?e?1:0:e==null?"":String(e)}var Ga=new Intl.Collator("ko",{numeric:!0});function Ro(e,t){let n=Eo(e),r=Eo(t);return typeof n=="number"&&typeof r=="number"?n-r:n===r?0:Ga.compare(String(n),String(r))}function Ka(e,t){if(!t)return e;for(let n of e)if(n.kind==="line")n.y1+=t,n.y2+=t;else if(n.kind==="path"){let r=0;for(let o=0;o<n.d.length;o++){let s=n.d[o];if(typeof s=="string"){r=0;continue}r++%2===1&&(n.d[o]=s+t)}}else if(n.y+=t,n.kind==="text")for(let r of n.lines)r.y+=t;return e}var To=new WeakMap;function Wa(e){let t=To.get(e);return t===void 0&&(t=/\bpages?\b|pageRows|pageIndex/.test(JSON.stringify(e.elements)),To.set(e,t)),t}function Ne(e,t){if(Array.isArray(t))return{rows:t,root:{rows:t}};let n=t??{},r=n[e.dataSource??"rows"];return{rows:Array.isArray(r)?r:[],root:n}}function at(e,t={}){let n={};for(let[r,o]of Object.entries(e.params??{}))n[r]=o.default;return{...n,...t}}function Po(e,t,n,r){if(n>=t.length)return null;let o=t[n],s=Be(o.by),a=[],l=null;e.forEach(i=>{let f=s({...r,row:i});(!l||Ro(l.key,f)!==0)&&(l={def:o,level:n,key:f,rows:[],children:null},a.push(l)),l.rows.push(i)});for(let i of a)i.children=Po(i.rows,t,n+1,r);return a}function At(e,t={},n={}){let r=typeof performance<"u"?performance.now():Date.now(),o=Zn(e,t,n,void 0,void 0),s=/\bpages\b/.test(JSON.stringify([e.bands.title,e.bands.columnHeader,e.bands.detail,e.bands.summary,e.bands.groups])),a=s&&o.pages.length>1?Zn(e,t,n,o.pages.length,void 0):o;if(e.fingerprint){let l=Rt(a.pages);a=Zn(e,t,n,s?a.pages.length:void 0,l),a.fingerprint=l}return a.ms=Math.round(((typeof performance<"u"?performance.now():Date.now())-r)*10)/10,a}function Zn(e,t,n,r,o){Vr();let s=n.measure??kt(),a=n.locale??"ko",l=n.maxPages??1e4,i=_e(e.page),[f,,d,h]=i.margins,u=Xe(e),c=at(e,n.params),{rows:p,root:g}=Ne(e,t),E=new Date,M=o?{docHash:o,docHashShort:o.slice(0,12)}:{docHash:"",docHashShort:""},$={rows:p,allRows:p,params:c,data:g,vars:{now:E,...M}},v=p;if(e.filter){let F=Be(e.filter);v=v.filter(L=>Jn(F({...$,row:L})))}let j=e.bands.groups??[],w=[...j.filter(F=>F.sort).map(F=>({fn:Be(F.by),dir:F.sort==="desc"?-1:1})),...(e.sort??[]).map(F=>({fn:Be(F.replace(/^[-+]/,"")),dir:F.startsWith("-")?-1:1}))];if(w.length){let F=v.map((L,k)=>({row:L,i:k,keys:w.map(P=>P.fn({...$,row:L}))}));F.sort((L,k)=>{for(let P=0;P<w.length;P++){let H=Ro(L.keys[P],k.keys[P])*w[P].dir;if(H)return H}return L.i-k.i}),v=F.map(L=>L.row)}let C={...$,rows:v,allRows:v},A=[],I=e.bands;I.title&&A.push({kind:"title",band:I.title,scopeRows:v,groups:[]});let Q=0,ne=(F,L,k)=>{if(!F){let P=Math.max(1,Math.floor(I.detail?.columns??1));if(I.detail&&P>1){for(let H=0;H<k.length;H+=P){let x=k.slice(H,H+P);A.push({kind:"detail",band:I.detail,row:x[0],rowIndex:Q,localIndex:H,chunk:x,scopeRows:k,groupRows:L.length?k:void 0,groups:L}),Q+=x.length}return}k.forEach((H,x)=>{I.detail&&A.push({kind:"detail",band:I.detail,row:H,rowIndex:Q,localIndex:x,scopeRows:k,groupRows:L.length?k:void 0,groups:L}),Q++});return}for(let P of F){let H=[...L,P];P.def.header&&A.push({kind:"groupHeader",band:P.def.header,row:P.rows[0],scopeRows:P.rows,groupRows:P.rows,groups:H,group:P}),ne(P.children,H,P.rows),P.def.footer&&A.push({kind:"groupFooter",band:P.def.footer,row:P.rows[P.rows.length-1],scopeRows:P.rows,groupRows:P.rows,groups:H,group:P})}};!v.length&&I.noData?A.push({kind:"noData",band:I.noData,scopeRows:v,groups:[]}):ne(Po(v,j,0,C),[],v),I.summary&&A.push({kind:"summary",band:I.summary,row:v[v.length-1],scopeRows:v,groups:[]});let U=[],re=[],be=[],V,fe=0,pe=0,K=!1,se=!1,Y=new Map,N=I.pageFooter?.height??0,q=null,ee=(F,L)=>({...C,row:F.row,rows:F.kind==="groupHeader"||F.kind==="groupFooter"||F.kind==="detail"?F.scopeRows:v,groupRows:F.groupRows,pageRows:re[U.length-1],vars:{now:E,...M,page:L,pages:r??L,rowNum:F.localIndex!==void 0?F.localIndex+1:void 0,rowIndex:F.rowIndex!==void 0?F.rowIndex+1:void 0,groupKey:F.group?.key??F.groups[F.groups.length-1]?.key,groupLevel:F.group?.level}}),ae=(F,L={})=>({def:e,measure:s,locale:a,kind:F,width:u,previous:Y,...L}),he=()=>{if(U.length>=l)throw new Error(`Report stopped at ${l} pages (maxPages)`);V={number:U.length+1,total:0,width:i.width,height:i.height,items:[]},U.push(V),re.push([]),be.push(q),fe=f,I.pageHeader&&!(e.pageHeaderSkipFirst&&U.length===1)&&(fe+=I.pageHeader.height),pe=i.height-d-N,K=!1,se=!1,Y.clear()},we=(F,L,k,P={},H)=>{let x=H?{height:H.height,items:Ka(H.items,fe)}:Ye(F,k,ae(L,P),h,fe);for(let W of x.items)V.items.push(W);return fe+=x.height,se=!0,x.height},J=(F,L,k,P={})=>Ye(F,k,ae(L,{...P,previous:void 0}),0,0).height,X=(F,L,k)=>{let P=F.band,H=Math.max(1,Math.floor(P.columns??1)),x=P.columnGap??0,W=(u-x*(H-1))/H,Z=F.chunk.map((m,b)=>Ye(P,{...L,row:m,vars:{...L.vars,rowNum:(F.localIndex??0)+b+1,rowIndex:(F.rowIndex??0)+b+1}},ae(F.kind,{...k,rowIndex:(F.rowIndex??0)+b,previous:void 0,width:W}),h+b*(W+x),0));return{height:Math.max(...Z.map(m=>m.height)),items:Z.flatMap(m=>m.items)}},ce=F=>F.kind==="detail"||F.kind==="groupHeader"||F.kind==="groupFooter",ie=F=>{!I.columnHeader||K||!ce(F)||(K=!0,we(I.columnHeader,"columnHeader",ee(F,V.number)))},de=F=>{for(let L of F.groups){if(L===F.group&&F.kind==="groupHeader")break;L.def.repeatHeader&&L.def.header&&we(L.def.header,"groupHeader",{...ee(F,V.number),rows:L.rows,groupRows:L.rows,row:L.rows[0]})}},le=F=>{if(!e.fillEmptyRows||!I.detail)return;let L=I.detail.height;if(L>.5)for(;fe+L<=F+.01&&!(we(I.detail,"detail",{...C,rows:v},{blank:!0})<=0););};he();let T=new Set;for(let F=0;F<A.length;F++){let L=A[F],k=ee(L,V.number);if(L.band.visible&&!Jn(Me(L.band.visible,k)))continue;L.kind==="groupHeader"&&L.group?.def.resetPageNumber&&(q&&se?(le(pe),q=L.group,he()):(q=L.group,be[U.length-1]=q));let P=L.band.pageBreakBefore&&se||L.kind==="groupHeader"&&L.group?.def.newPage&&se&&!L.group.def.resetPageNumber&&T.has(L.group.level);L.kind==="groupHeader"&&L.group&&T.add(L.group.level),P&&(le(pe),he());let H={rowIndex:L.rowIndex};L.kind==="detail"&&I.detail?.altBackground&&(L.localIndex??0)%2===1&&(H.background=I.detail.altBackground);let x=!Wa(L.band)&&!L.band.elements.some(b=>b.type==="field"&&b.suppressRepeated),W=L.chunk?X(L,k,H):Ye(L.band,k,ae(L.kind,{...H,previous:void 0}),h,0),Z=W.height;if(!K&&I.columnHeader&&ce(L)&&(Z+=I.columnHeader.height),L.kind==="groupHeader"){let b=L.group?.def.keepWithRows??1;for(let S=F+1,y=0;S<A.length&&y<b&&!(A[S].kind!=="detail"&&A[S].kind!=="groupHeader");S++)Z+=J(A[S].band,A[S].kind,ee(A[S],V.number)),A[S].kind==="detail"&&y++}fe+Z>pe+.01&&se?(le(pe),he(),ie(L),de(L)):ie(L);let m=ee(L,V.number);if(we(L.band,L.kind,m,H,x||L.chunk?W:void 0),L.chunk?re[U.length-1].push(...L.chunk):L.kind==="detail"&&L.row&&re[U.length-1].push(L.row),e.fillEmptyRows&&L.kind==="detail"&&A[F+1]?.kind!=="detail"){let S=A.slice(F+1).filter(y=>y.kind==="groupFooter"||y.kind==="summary").reduce((y,R)=>y+J(R.band,R.kind,ee(R,V.number)),0);A.slice(F+1).some(y=>y.kind==="detail")||le(pe-S)}L.band.pageBreakAfter&&F<A.length-1&&he()}!A.length&&e.fillEmptyRows&&le(pe);let O=new Map;be.forEach((F,L)=>O.set(F,[...O.get(F)??[],L]));for(let F of O.values())F.forEach((L,k)=>{U[L].number=k+1,U[L].total=F.length});return U.forEach((F,L)=>{let k=be[L],P={...C,row:re[L][0],rows:re[L],pageRows:re[L],groupRows:k?.rows,vars:{now:E,...M,page:F.number,pages:F.total,pageIndex:L+1,pageCount:U.length,groupKey:k?.key,lastPage:L===U.length-1,firstPage:L===0}},H=[],x=(W,Z,m)=>{W&&(W.visible&&!Jn(Me(W.visible,P))||H.push(...Ye(W,P,ae(Z,{previous:void 0}),h,m,0).items))};e.pageHeaderSkipFirst&&L===0||x(I.pageHeader,"pageHeader",f),x(I.pageFooter,"pageFooter",i.height-d-N),F.items.push(...H)}),eo(U,{watermark:e.watermark,emboss:e.emboss},i,(F,L)=>({...C,rows:re[L],pageRows:re[L],vars:{now:E,...M,page:F.number,pages:F.total,pageIndex:L+1,pageCount:U.length}}),s),{pages:U,width:i.width,height:i.height,rowCount:v.length,ms:0}}var _a=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function Xa(e){let t=4294967295;for(let n=0;n<e.length;n++)t=_a[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var jo=new TextEncoder;function on(e){let t=e.map(d=>{let h=jo.encode(d.name),u=typeof d.data=="string"?jo.encode(d.data):d.data;return{name:h,data:u,crc:Xa(u),offset:0}}),n=t.reduce((d,h)=>d+30+h.name.length+h.data.length,0),r=t.reduce((d,h)=>d+46+h.name.length,0),o=new Uint8Array(n+r+22),s=new DataView(o.buffer),a=0,l=0,i=33;for(let d of t)d.offset=a,s.setUint32(a,67324752,!0),s.setUint16(a+4,20,!0),s.setUint16(a+6,2048,!0),s.setUint16(a+8,0,!0),s.setUint16(a+10,l,!0),s.setUint16(a+12,i,!0),s.setUint32(a+14,d.crc,!0),s.setUint32(a+18,d.data.length,!0),s.setUint32(a+22,d.data.length,!0),s.setUint16(a+26,d.name.length,!0),s.setUint16(a+28,0,!0),o.set(d.name,a+30),o.set(d.data,a+30+d.name.length),a+=30+d.name.length+d.data.length;let f=a;for(let d of t)s.setUint32(a,33639248,!0),s.setUint16(a+4,20,!0),s.setUint16(a+6,20,!0),s.setUint16(a+8,2048,!0),s.setUint16(a+10,0,!0),s.setUint16(a+12,l,!0),s.setUint16(a+14,i,!0),s.setUint32(a+16,d.crc,!0),s.setUint32(a+20,d.data.length,!0),s.setUint32(a+24,d.data.length,!0),s.setUint16(a+28,d.name.length,!0),s.setUint16(a+30,0,!0),s.setUint16(a+32,0,!0),s.setUint16(a+34,0,!0),s.setUint16(a+36,0,!0),s.setUint32(a+38,0,!0),s.setUint32(a+42,d.offset,!0),o.set(d.name,a+46),a+=46+d.name.length;return s.setUint32(a,101010256,!0),s.setUint16(a+8,t.length,!0),s.setUint16(a+10,t.length,!0),s.setUint32(a+12,a-f,!0),s.setUint32(a+16,f,!0),o}function Lt(e){let t="";for(let n=e+1;n>0;n=Math.floor((n-1)/26))t=String.fromCharCode(65+(n-1)%26)+t;return t}var Va=Date.UTC(1899,11,30),Ya=e=>(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())-Va)/864e5,Ja=/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g,Dt=e=>e.replace(Ja,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Ft=e=>{if(!e)return"";let t=e.replace("#","");return/^[0-9a-f]{6}$/i.test(t)?`FF${t.toUpperCase()}`:/^[0-9a-f]{3}$/i.test(t)?`FF${[...t].map(n=>n+n).join("").toUpperCase()}`:/^[0-9a-f]{8}$/i.test(t)?t.toUpperCase():""},Za={Letter:1,Legal:5,A3:8,A4:9,A5:11,B4:12,B5:13},it=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
14
|
-
`,Qn="http://schemas.openxmlformats.org/spreadsheetml/2006/main",Co="http://schemas.openxmlformats.org/officeDocument/2006/relationships",er=class{constructor(){this.fonts=['<font><sz val="10"/><name val="\uB9D1\uC740 \uACE0\uB515"/><family val="3"/></font>'];this.fills=['<fill><patternFill patternType="none"/></fill>','<fill><patternFill patternType="gray125"/></fill>'];this.borders=["<border><left/><right/><top/><bottom/><diagonal/></border>"];this.numFmts=[];this.xfs=['<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>'];this.idx=new Map;this.fmtIds=new Map}intern(t,n){let r=`${t.length===0,""}${n}`,o=t.indexOf(r);return o>=0?o:(t.push(n),t.length-1)}id(t){if(!t)return 0;let n=JSON.stringify(t),r=this.idx.get(n);if(r!==void 0)return r;let o=t.font??{},s=this.intern(this.fonts,`<font>${o.bold?"<b/>":""}${o.italic?"<i/>":""}${o.strike?"<strike/>":""}${o.underline?"<u/>":""}<sz val="${o.size??10}"/>${Ft(o.color)?`<color rgb="${Ft(o.color)}"/>`:""}<name val="${Dt(o.name??"\uB9D1\uC740 \uACE0\uB515")}"/><family val="3"/></font>`),a=t.fill&&Ft(t.fill)?this.intern(this.fills,`<fill><patternFill patternType="solid"><fgColor rgb="${Ft(t.fill)}"/><bgColor indexed="64"/></patternFill></fill>`):0,l=(p,g)=>g?`<${p} style="${g.style}"><color rgb="${Ft(g.color)||"FF000000"}"/></${p}>`:`<${p}/>`,i=t.border??{},f=t.border?this.intern(this.borders,`<border>${l("left",i.left)}${l("right",i.right)}${l("top",i.top)}${l("bottom",i.bottom)}<diagonal/></border>`):0,d=0;t.fmt&&t.fmt!=="General"&&(d={0:1,"0.00":2,"#,##0":3,"#,##0.00":4,"0%":9,"0.00%":10,"yyyy-mm-dd":14}[t.fmt]??this.fmtIds.get(t.fmt)??0,d||(d=164+this.numFmts.length,this.numFmts.push(`<numFmt numFmtId="${d}" formatCode="${Dt(t.fmt)}"/>`),this.fmtIds.set(t.fmt,d)));let h=t.align||t.valign||t.wrap?`<alignment${t.align?` horizontal="${t.align}"`:""}${t.valign?` vertical="${t.valign}"`:""}${t.wrap?' wrapText="1"':""}/>`:"",u=`numFmtId="${d}" fontId="${s}" fillId="${a}" borderId="${f}" xfId="0"`+(d?' applyNumberFormat="1"':"")+(s?' applyFont="1"':"")+(a?' applyFill="1"':"")+(f?' applyBorder="1"':"")+(h?' applyAlignment="1"':"");this.xfs.push(h?`<xf ${u}>${h}</xf>`:`<xf ${u}/>`);let c=this.xfs.length-1;return this.idx.set(n,c),c}xml(){return it+`<styleSheet xmlns="${Qn}">`+(this.numFmts.length?`<numFmts count="${this.numFmts.length}">${this.numFmts.join("")}</numFmts>`:"")+`<fonts count="${this.fonts.length}">${this.fonts.join("")}</fonts><fills count="${this.fills.length}">${this.fills.join("")}</fills><borders count="${this.borders.length}">${this.borders.join("")}</borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="${this.xfs.length}">${this.xfs.join("")}</cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles></styleSheet>`}};function Qa(e){let t=new Set;return e.map((n,r)=>{let o=(n.name??`Sheet${r+1}`).replace(/[[\]:*?/\\]/g," ").slice(0,31).trim()||`Sheet${r+1}`,s=o;for(let a=2;t.has(s.toLowerCase());a++)s=`${o.slice(0,27)} (${a})`;return t.add(s.toLowerCase()),s})}function sn(e,t={}){let n=new er,r=Qa(e),o=e.map(a=>{let l=[],i=0;for(let j=0;j<a.rows.length;j++)i=Math.max(i,a.rows[j]?.length??0);a.widths&&(i=Math.max(i,a.widths.length));let f=Math.max(a.rows.length,a.heights?.length??0);for(let j=0;j<f;j++){let w=a.rows[j]??[],C=a.heights?.[j],A="";for(let I=0;I<w.length;I++){let Q=w[I];if(!Q)continue;let ne=`${Lt(I)}${j+1}`,U=Q.v,re=Q.s;U instanceof Date&&(Number.isNaN(U.getTime())?U=null:(U=Ya(U),re={...re,fmt:re?.fmt??"yyyy-mm-dd"}));let be=n.id(re),V=be?` s="${be}"`:"";U==null||U===""?A+=`<c r="${ne}"${V}/>`:typeof U=="number"?A+=Number.isFinite(U)?`<c r="${ne}"${V}><v>${U}</v></c>`:`<c r="${ne}"${V}/>`:typeof U=="boolean"?A+=`<c r="${ne}"${V} t="b"><v>${U?1:0}</v></c>`:A+=`<c r="${ne}"${V} t="inlineStr"><is><t xml:space="preserve">${Dt(String(U))}</t></is></c>`}(A||C)&&l.push(`<row r="${j+1}"${C?` ht="${Math.round(C*100)/100}" customHeight="1"`:""}>${A}</row>`)}let d=`A1:${Lt(Math.max(0,i-1))}${Math.max(1,f)}`,h=`<sheetViews><sheetView workbookViewId="0"${a.showGrid===!1?' showGridLines="0"':""}>${a.freezeRows?`<pane ySplit="${a.freezeRows}" topLeftCell="A${a.freezeRows+1}" activePane="bottomLeft" state="frozen"/>`:""}</sheetView></sheetViews>`,u=a.widths?.length?`<cols>${a.widths.map((j,w)=>`<col min="${w+1}" max="${w+1}" width="${Math.round(j*100)/100}" customWidth="1"/>`).join("")}</cols>`:"",c=a.merges?.length?`<mergeCells count="${a.merges.length}">${a.merges.map(([j,w,C,A])=>`<mergeCell ref="${Lt(w)}${j+1}:${Lt(A)}${C+1}"/>`).join("")}</mergeCells>`:"",p=a.autoFilter&&i?`<autoFilter ref="A${a.freezeRows||1}:${Lt(i-1)}${Math.max(1,f)}"/>`:"",g=a.page,E=g?.margins?`<pageMargins left="${(g.margins[3]/25.4).toFixed(3)}" right="${(g.margins[1]/25.4).toFixed(3)}" top="${(g.margins[0]/25.4).toFixed(3)}" bottom="${(g.margins[2]/25.4).toFixed(3)}" header="0" footer="0"/>`:"",M=g?`<pageSetup paperSize="${Za[g.paper??"A4"]??9}" orientation="${g.landscape?"landscape":"portrait"}"${g.fitWidth?` fitToWidth="1" fitToHeight="${g.fitHeight??0}"`:""}/>`:"",$=a.breaks?.length?`<rowBreaks count="${a.breaks.length}" manualBreakCount="${a.breaks.length}">${a.breaks.map(j=>`<brk id="${j}" max="16383" man="1"/>`).join("")}</rowBreaks>`:"",v=g?.fitWidth?'<sheetPr><pageSetUpPr fitToPage="1"/></sheetPr>':"";return it+`<worksheet xmlns="${Qn}" xmlns:r="${Co}">${v}<dimension ref="${d}"/>${h}<sheetFormatPr defaultRowHeight="15"/>${u}<sheetData>${l.join("")}</sheetData>${p}${c}${E}${M}${$}</worksheet>`}),s=[{name:"[Content_Types].xml",data:it+'<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>'+e.map((a,l)=>`<Override PartName="/xl/worksheets/sheet${l+1}.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>`).join("")+'<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/></Types>'},{name:"_rels/.rels",data:it+'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/></Relationships>'},{name:"docProps/core.xml",data:it+`<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:creator>${Dt(t.creator??"FreeReport")}</dc:creator><dcterms:created xsi:type="dcterms:W3CDTF">${new Date().toISOString().slice(0,19)}Z</dcterms:created></cp:coreProperties>`},{name:"xl/workbook.xml",data:it+`<workbook xmlns="${Qn}" xmlns:r="${Co}"><sheets>${r.map((a,l)=>`<sheet name="${Dt(a)}" sheetId="${l+1}" r:id="rId${l+1}"/>`).join("")}</sheets></workbook>`},{name:"xl/_rels/workbook.xml.rels",data:it+`<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">${e.map((a,l)=>`<Relationship Id="rId${l+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet${l+1}.xml"/>`).join("")}<Relationship Id="rId${e.length+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>`},...o.map((a,l)=>({name:`xl/worksheets/sheet${l+1}.xml`,data:a}))];return s.push({name:"xl/styles.xml",data:n.xml()}),on(s)}var Lo=1.9,ei=72/25.4,Je=e=>{if(e)return e.style==="double"?{style:"double",color:e.color}:e.style==="dashed"?{style:"dashed",color:e.color}:e.style==="dotted"?{style:"dotted",color:e.color}:{style:e.width>=.6?"thick":e.width>=.35?"medium":e.width<.12?"hair":"thin",color:e.color}};function Fo(e){if(!(!e||e==="korean"||e==="koreanNumber"||e==="bizNo"||e==="upper"||e==="lower"))return An(e)?e.replace(/dddd/g,"aaaa").replace(/ddd/g,"aaa").replace(/\ba\b|tt/g,"AM/PM").replace(/H/g,"h"):e.replace(/([^"\\#0,.%;()₩$€\-\s])/gu,(t,n,r,o)=>/"/.test(o.slice(0,r).replace(/[^"]/g,"").length%2?'"':"")?t:`"${t}"`).replace(/""/g,"")}function Ao(e,t){let n=[...new Set(e.map(o=>Math.round(o*10)/10))].sort((o,s)=>o-s),r=[];for(let o of n)(!r.length||o-r[r.length-1]>t)&&r.push(o);return r}var He=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n};function It(e,t,n={}){let r=_e(t.page),o=u=>u.source?.band!=="watermark",s=[];for(let u of e.pages)for(let c of u.items)o(c)&&(c.kind==="text"||c.kind==="box"?s.push(c.x,c.x+c.w):c.kind==="line"&&Math.abs(c.x1-c.x2)<.01&&s.push(c.x1));let a=Ao(s.length?s:[r.margins[3],r.width-r.margins[1]],1.2),l=a.slice(1).map((u,c)=>Math.max(.5,(u-a[c])/Lo)),i=u=>({name:u,rows:[],widths:l,heights:[],merges:[],breaks:[],showGrid:!1,page:{paper:typeof t.page?.size=="string"?t.page.size:"A4",landscape:t.page?.orientation==="landscape",margins:r.margins,fitWidth:!0,fitHeight:n.onePerPage?1:e.pages.length}}),f=[],d=i(n.sheetName??t.name??"Report");f.push(d);let h=0;return e.pages.forEach((u,c)=>{n.onePerPage&&c>0&&(d=i(`${c+1}`),f.push(d),h=0);let p=u.items.filter(o),g=[];for(let w of p)w.kind==="text"||w.kind==="box"?g.push(w.y,w.y+w.h):w.kind==="line"&&Math.abs(w.y1-w.y2)<.01&&g.push(w.y1);if(!g.length)return;let E=Ao(g,.8);c>0&&!n.onePerPage&&d.breaks.push(h),E.slice(1).forEach((w,C)=>{d.heights[h+C]=Math.max(2,(w-E[C])*ei)});let M=(w,C)=>{var I,Q;let A=(I=d.rows)[Q=h+w]??(I[Q]=[]);return A[C]??(A[C]={v:null,s:{}})},$=(w,C,A,I)=>{let Q=He(a,w),ne=Math.max(Q+1,He(a,w+A)),U=He(E,C),re=Math.max(U+1,He(E,C+I));return{r1:U,c1:Q,r2:re-1,c2:ne-1}},v=(w,C)=>{for(let A=w.c1;A<=w.c2;A++){if(C.top){let I=M(w.r1,A).s;I.border={...I.border,top:Je(C.top)}}if(C.bottom){let I=M(w.r2,A).s;I.border={...I.border,bottom:Je(C.bottom)}}}for(let A=w.r1;A<=w.r2;A++){if(C.left){let I=M(A,w.c1).s;I.border={...I.border,left:Je(C.left)}}if(C.right){let I=M(A,w.c2).s;I.border={...I.border,right:Je(C.right)}}}},j=new Set;for(let w of p)if(w.kind==="box"){let C=$(w.x,w.y,w.w,w.h);if(w.fill)for(let A=C.r1;A<=C.r2;A++)for(let I=C.c1;I<=C.c2;I++)M(A,I).s.fill=w.fill;if(w.border&&v(C,w.border),w.stroke&&w.stroke.width>0){let A={width:w.stroke.width,style:w.stroke.dash??"solid",color:w.stroke.color};v(C,{top:A,right:A,bottom:A,left:A})}}else if(w.kind==="line"){let C={width:w.width,style:w.dash??"solid",color:w.color};if(Math.abs(w.y1-w.y2)<.01){let A=He(E,w.y1),I=He(a,Math.min(w.x1,w.x2)),Q=He(a,Math.max(w.x1,w.x2));for(let ne=I;ne<Q;ne++)if(A<E.length-1){let U=M(A,ne).s;U.border={...U.border,top:Je(C)}}else{let U=M(A-1,ne).s;U.border={...U.border,bottom:Je(C)}}}else if(Math.abs(w.x1-w.x2)<.01){let A=He(a,w.x1),I=He(E,Math.min(w.y1,w.y2)),Q=He(E,Math.max(w.y1,w.y2));for(let ne=I;ne<Q;ne++)if(A<a.length-1){let U=M(ne,A).s;U.border={...U.border,left:Je(C)}}else{let U=M(ne,A-1).s;U.border={...U.border,right:Je(C)}}}}else if(w.kind==="text"){let C=$(w.x,w.y,w.w,w.h),A=`${C.r1}:${C.c1}`,I=M(C.r1,C.c1),Q=w.source?.value,ne=Fo(w.source?.format),U=typeof Q=="number"&&Number.isFinite(Q)&&w.source?.format!=="korean"&&w.source?.format!=="koreanNumber";j.has(A)&&I.v!==null?I.v=`${I.v}
|
|
15
|
-
${
|
|
16
|
-
`)}var De=e=>Math.round(e*7200/25.4),ti=25.4/72,Do=e=>e.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),or=e=>{let t=nn(e);return t&&t[3]>0?"#"+t.slice(0,3).map(n=>Math.round(n).toString(16).padStart(2,"0")).join("").toUpperCase():null},nr='xmlns:ha="http://www.hancom.co.kr/hwpml/2011/app" xmlns:hp="http://www.hancom.co.kr/hwpml/2011/paragraph" xmlns:hp10="http://www.hancom.co.kr/hwpml/2016/paragraph" xmlns:hs="http://www.hancom.co.kr/hwpml/2011/section" xmlns:hc="http://www.hancom.co.kr/hwpml/2011/core" xmlns:hh="http://www.hancom.co.kr/hwpml/2011/head" xmlns:hhs="http://www.hancom.co.kr/hwpml/2011/history" xmlns:hm="http://www.hancom.co.kr/hwpml/2011/master-page" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf/" xmlns:ooxmlchart="http://www.hancom.co.kr/hwpml/2016/ooxmlchart" xmlns:hwpunitchar="http://www.hancom.co.kr/hwpml/2016/HwpUnitChar" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"',lt='<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>',Io=["\uB9D1\uC740 \uACE0\uB515","\uB098\uB214\uACE0\uB515"],ni=e=>/nanum\s*gothic|나눔고딕/i.test(e)?1:0,sr=["HANGUL","LATIN","HANJA","JAPANESE","OTHER","SYMBOL","USER"],ri=["0.1","0.12","0.15","0.2","0.25","0.3","0.4","0.5","0.6","0.7","1.0","1.5","2.0","3.0","4.0","5.0"],Nt=class{constructor(t){this.first=t;this.list=[];this.ids=new Map}id(t){let n=JSON.stringify(t),r=this.ids.get(n);return r===void 0&&(r=this.first+this.list.length,this.ids.set(n,r),this.list.push(t)),r}};function an(e,t){if(!t||t.width<=0)return`<hh:${e} type="NONE" width="0.1 mm" color="#000000"/>`;let n=t.style==="dashed"?"DASH":t.style==="dotted"?"DOT":t.style==="double"?"DOUBLE_SLIM":"SOLID",r=ri.reduce((o,s)=>Math.abs(+s-t.width)<Math.abs(+o-t.width)?s:o);return`<hh:${e} type="${n}" width="${r} mm" color="${or(t.color)??"#000000"}"/>`}function rr(e,t){let n=t.fill?`<hc:fillBrush><hc:winBrush faceColor="${t.fill}" hatchColor="#000000" alpha="0"/></hc:fillBrush>`:"";return`<hh:borderFill id="${e}" threeD="0" shadow="0" centerLine="NONE" breakCellSeparateLine="0"><hh:slash type="NONE" Crooked="0" isCounter="0"/><hh:backSlash type="NONE" Crooked="0" isCounter="0"/>`+an("leftBorder",t.left)+an("rightBorder",t.right)+an("topBorder",t.top)+an("bottomBorder",t.bottom)+`<hh:diagonal type="SOLID" width="0.1 mm" color="#000000"/>${n}</hh:borderFill>`}function oi(e,t){let n=r=>sr.map(o=>`${o.toLowerCase()}="${r}"`).join(" ");return`<hh:charPr id="${e}" height="${t.size}" textColor="${t.color}" shadeColor="none" useFontSpace="0" useKerning="0" symMark="NONE" borderFillIDRef="2"><hh:fontRef ${n(t.font)}/><hh:ratio ${n(100)}/><hh:spacing ${n(t.spacing)}/><hh:relSz ${n(100)}/><hh:offset ${n(0)}/>`+(t.italic?"<hh:italic/>":"")+(t.bold?"<hh:bold/>":"")+`<hh:underline type="${t.underline?"BOTTOM":"NONE"}" shape="SOLID" color="${t.color}"/><hh:strikeout shape="${t.strike?"SOLID":"NONE"}" color="${t.color}"/><hh:outline type="NONE"/><hh:shadow type="NONE" color="#B2B2B2" offsetX="10" offsetY="10"/></hh:charPr>`}function si(e,t){return`<hh:paraPr id="${e}" tabPrIDRef="0" condense="0" fontLineHeight="0" snapToGrid="0" suppressLineNumbers="0" checked="0"><hh:align horizontal="${t.align}" vertical="BASELINE"/><hh:heading type="NONE" idRef="0" level="0"/><hh:breakSetting breakLatinWord="KEEP_WORD" breakNonLatinWord="BREAK_WORD" widowOrphan="0" keepWithNext="0" keepLines="0" pageBreakBefore="0" lineWrap="SQUEEZE"/><hh:autoSpacing eAsianEng="0" eAsianNum="0"/><hh:margin><hc:intent value="0" unit="HWPUNIT"/><hc:left value="0" unit="HWPUNIT"/><hc:right value="0" unit="HWPUNIT"/><hc:prev value="0" unit="HWPUNIT"/><hc:next value="0" unit="HWPUNIT"/></hh:margin><hh:lineSpacing type="PERCENT" value="${t.spacing}" unit="HWPUNIT"/><hh:border borderFillIDRef="2" offsetLeft="0" offsetRight="0" offsetTop="0" offsetBottom="0" connect="0" ignoreMargin="0"/></hh:paraPr>`}function Bo(e,t){let n=[...new Set(e.map(o=>Math.round(o*10)/10))].sort((o,s)=>o-s),r=[];for(let o of n)(!r.length||o-r[r.length-1]>t)&&r.push(o);return r}var Ze=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n};function ai(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(e.length>24&&e[0]===137&&e[1]===80)return[t.getUint32(16),t.getUint32(20)];if(e.length>4&&e[0]===255&&e[1]===216)for(let n=2;n+9<e.length;){if(e[n]!==255)return null;let r=e[n+1],o=t.getUint16(n+2);if(r>=192&&r<=207&&r!==196&&r!==200&&r!==204)return[t.getUint16(n+7),t.getUint16(n+5)];n+=2+o}return null}function ii(e){let t=/^data:image\/(png|jpe?g);base64,(.*)$/is.exec(e.trim());if(!t||typeof atob!="function")return null;try{let n=atob(t[2].replace(/\s+/g,"")),r=new Uint8Array(n.length);for(let o=0;o<n.length;o++)r[o]=n.charCodeAt(o);return{bytes:r,ext:t[1].toLowerCase()==="png"?"png":"jpg"}}catch{return null}}function ar(e,t){let n=_e(t.page),r=e.width||n.width,o=e.height||n.height,s=new Nt(0),a=new Nt(0),l=new Nt(3),i={top:void 0,right:void 0,bottom:void 0,left:void 0,fill:null};s.id({font:0,size:1e3,color:"#000000",bold:!1,italic:!1,underline:!1,strike:!1,spacing:0});let f=s.id({font:0,size:100,color:"#000000",bold:!1,italic:!1,underline:!1,strike:!1,spacing:0});a.id({align:"LEFT",spacing:160});let d=a.id({align:"LEFT",spacing:100}),h=l.id(i),u=[],c=new Map,p=1e3,g=0,E=[],M=()=>`<hp:p id="${g++}" paraPrIDRef="${d}" styleIDRef="0" pageBreak="0" columnBreak="0" merged="0"><hp:run charPrIDRef="${f}"/></hp:p>`,$=Y=>Y.flatMap(N=>{let q=N.font.size*ti,ee=N.lines.length>1?(N.lines[N.lines.length-1].y-N.lines[0].y)/(N.lines.length-1):q*1.25,ae=s.id({font:ni(N.font.family),size:Math.max(100,Math.round(N.font.size*100)),color:or(N.color)??"#000000",bold:N.font.bold,italic:N.font.italic,underline:!!N.underline,strike:!!N.strike,spacing:Math.max(-50,Math.min(50,Math.round((N.letterSpacing??0)/q*100)))}),he=a.id({align:{left:"LEFT",center:"CENTER",right:"RIGHT",justify:"JUSTIFY"}[N.align]??"LEFT",spacing:Math.max(80,Math.min(300,Math.round(ee/q*100)))});return N.lines.filter((J,X)=>X===0||J.y<=N.y+N.h+.5).map(J=>`<hp:p id="${g++}" paraPrIDRef="${he}" styleIDRef="0" pageBreak="0" columnBreak="0" merged="0"><hp:run charPrIDRef="${ae}"><hp:t>${Do(J.text.replace(/\t/g," "))}</hp:t></hp:run></hp:p>`)}),v=(Y,N)=>{let q=c.get(Y.src);if(!q){let T=ii(Y.src),O=T&&ai(T.bytes);if(!T||!O||!O[0]||!O[1])return"";q={id:`image${u.length+1}`,px:O},u.push({name:`${q.id}.${T.ext}`,bytes:T.bytes}),c.set(Y.src,q)}let{x:ee,y:ae,w:he,h:we}=Y;if(Y.fit==="contain"){let T=Math.min(he/q.px[0],we/q.px[1]),O=q.px[0]*T,F=q.px[1]*T;ee+=(he-O)/2,ae+=(we-F)/2,he=O,we=F}let J=De(he),X=De(we),ce=q.px[0]*75,ie=q.px[1]*75,de=p++,le=(T,O)=>`e1="${T}" e2="0" e3="0" e4="0" e5="${O}" e6="0"`;return`<hp:pic id="${de}" zOrder="${N}" numberingType="PICTURE" textWrap="IN_FRONT_OF_TEXT" textFlow="BOTH_SIDES" lock="0" dropcapstyle="None" href="" groupLevel="0" instid="${de}" reverse="0"><hp:offset x="0" y="0"/><hp:orgSz width="${J}" height="${X}"/><hp:curSz width="${J}" height="${X}"/><hp:flip horizontal="0" vertical="0"/><hp:rotationInfo angle="0" centerX="${J>>1}" centerY="${X>>1}" rotateimage="1"/><hp:renderingInfo><hc:transMatrix ${le(1,1)}/><hc:scaMatrix ${le(1,1)}/><hc:rotMatrix ${le(1,1)}/></hp:renderingInfo><hp:imgRect><hc:pt0 x="0" y="0"/><hc:pt1 x="${J}" y="0"/><hc:pt2 x="${J}" y="${X}"/><hc:pt3 x="0" y="${X}"/></hp:imgRect><hp:imgClip left="0" right="${ce}" top="0" bottom="${ie}"/><hp:inMargin left="0" right="0" top="0" bottom="0"/><hp:imgDim dimwidth="${ce}" dimheight="${ie}"/><hc:img binaryItemIDRef="${q.id}" bright="0" contrast="0" effect="REAL_PIC" alpha="0"/><hp:sz width="${J}" widthRelTo="ABSOLUTE" height="${X}" heightRelTo="ABSOLUTE" protect="0"/><hp:pos treatAsChar="0" affectLSpacing="0" flowWithText="0" allowOverlap="1" holdAnchorAndSO="0" vertRelTo="PAPER" horzRelTo="PAPER" vertAlign="TOP" horzAlign="LEFT" vertOffset="${De(ae)}" horzOffset="${De(ee)}"/><hp:outMargin left="0" right="0" top="0" bottom="0"/></hp:pic>`},j=Y=>{let N=[],q=[];for(let x of Y)x.kind==="text"||x.kind==="box"&&(x.fill||x.border||x.stroke)?(N.push(x.x,x.x+x.w),q.push(x.y,x.y+x.h)):x.kind==="line"&&Math.abs(x.y1-x.y2)<.01?(q.push(x.y1),N.push(x.x1,x.x2)):x.kind==="line"&&Math.abs(x.x1-x.x2)<.01&&(N.push(x.x1),q.push(x.y1,x.y2));let ee=Bo(N,1.2),ae=Bo(q,.8);if(ee.length<2||ae.length<2)return"";let he=Y.filter(x=>x.kind==="text"&&!x.rotate&&x.text.trim()!==""),we=[];for(let x=0;x<200;x++){let W=ae.length-1,Z=ee.length-1,m=Array.from({length:W},()=>Array(Z).fill(null));we=[];for(let y of he){let R=Math.min(Ze(ee,y.x),Z-1),D=Math.min(Ze(ae,y.y),W-1),B=Math.max(R+1,Ze(ee,y.x+y.w)),G=Math.max(D+1,Ze(ae,y.y+y.h)),oe=m[D][R];if(oe){oe.texts.push(y);continue}let z=!0;for(let me=D;me<G&&z;me++)for(let ke=R;ke<B;ke++)if(m[me][ke]){z=!1;break}let ue=z?{r:D,c:R,rs:G-D,cs:B-R,texts:[y]}:{r:D,c:R,rs:1,cs:1,texts:[y]};for(let me=ue.r;me<ue.r+ue.rs;me++)for(let ke=ue.c;ke<ue.c+ue.cs;ke++)m[me][ke]=ue;we.push(ue)}for(let y=0;y<W;y++)for(let R=0;R<Z;R++)if(!m[y][R]){let D={r:y,c:R,rs:1,cs:1,texts:[]};m[y][R]=D,we.push(D)}let b=ae.slice(1,-1).findIndex((y,R)=>!we.some(D=>D.r===R+1)),S=ee.slice(1,-1).findIndex((y,R)=>!we.some(D=>D.c===R+1));if(b<0&&S<0)break;b>=0&&(ae=ae.filter((y,R)=>R!==b+1)),S>=0&&(ee=ee.filter((y,R)=>R!==S+1))}let J=ae.length-1,X=ee.length-1,ce=Array.from({length:J+1},()=>Array(X).fill(void 0)),ie=Array.from({length:J},()=>Array(X+1).fill(void 0)),de=Array.from({length:J},()=>Array(X).fill(null)),le=(x,W,Z)=>{let m=Ze(Z,x);return[m,Math.max(m,Ze(Z,W))]};for(let x of Y)if(x.kind==="box"){let[W,Z]=le(x.x,x.x+x.w,ee),[m,b]=le(x.y,x.y+x.h,ae);if(Z===W||b===m)continue;let S=or(x.fill);if(S&&(x.opacity??1)>.05)for(let D=m;D<b;D++)for(let B=W;B<Z;B++)de[D][B]=S;let y=x.stroke&&x.stroke.width>0?{width:x.stroke.width,style:x.stroke.dash??"solid",color:x.stroke.color}:void 0,R={top:x.border?.top??y,bottom:x.border?.bottom??y,left:x.border?.left??y,right:x.border?.right??y};for(let D=W;D<Z;D++)R.top&&(ce[m][D]=R.top),R.bottom&&(ce[b][D]=R.bottom);for(let D=m;D<b;D++)R.left&&(ie[D][W]=R.left),R.right&&(ie[D][Z]=R.right)}else if(x.kind==="line"){let W={width:x.width,style:x.dash??"solid",color:x.color};if(Math.abs(x.y1-x.y2)<.01){let Z=Ze(ae,x.y1),[m,b]=le(Math.min(x.x1,x.x2),Math.max(x.x1,x.x2),ee);for(let S=m;S<b;S++)ce[Z][S]=W}else if(Math.abs(x.x1-x.x2)<.01){let Z=Ze(ee,x.x1),[m,b]=le(Math.min(x.y1,x.y2),Math.max(x.y1,x.y2),ae);for(let S=m;S<b;S++)ie[S][Z]=W}}let T=ee.map(De),O=ae.map(De),F=x=>x.find(W=>W!==void 0),L={top:"TOP",middle:"CENTER",bottom:"BOTTOM"},k=Array.from({length:J},()=>[]);for(let x of we.sort((W,Z)=>W.r-Z.r||W.c-Z.c)){let W=l.id({top:F(ce[x.r].slice(x.c,x.c+x.cs)),bottom:F(ce[x.r+x.rs].slice(x.c,x.c+x.cs)),left:F(ie.slice(x.r,x.r+x.rs).map(D=>D[x.c])),right:F(ie.slice(x.r,x.r+x.rs).map(D=>D[x.c+x.cs])),fill:de[x.r][x.c]}),Z=T[x.c+x.cs]-T[x.c],m=O[x.r+x.rs]-O[x.r],b=0,S=0,y=x.texts[0];if(y?.lines.length){let D=ee[x.c],B=ee[x.c+x.cs],G=Math.min(...y.lines.map(ke=>ke.x)),oe=Math.max(...y.lines.map(ke=>ke.x+ke.width)),z=ke=>Math.max(0,Math.min(5,ke)),ue=z(G-D),me=z(B-oe);y.align==="right"?(S=me,b=Math.min(ue,.5)):y.align==="center"?b=S=Math.min(ue,me,1):(b=ue,S=Math.min(me,.5))}let R=x.texts.length?$(x.texts).join(""):M();x.texts.length&&E.push(x.texts.map(D=>D.text).join(" ")),k[x.r].push(`<hp:tc name="" header="0" hasMargin="1" protect="0" editable="0" dirty="0" borderFillIDRef="${W}"><hp:subList id="" textDirection="HORIZONTAL" lineWrap="BREAK" vertAlign="${y?L[y.valign]??"TOP":"CENTER"}" linkListIDRef="0" linkListNextIDRef="0" textWidth="0" textHeight="0" hasTextRef="0" hasNumRef="0">${R}</hp:subList><hp:cellAddr colAddr="${x.c}" rowAddr="${x.r}"/><hp:cellSpan colSpan="${x.cs}" rowSpan="${x.rs}"/><hp:cellSz width="${Z}" height="${m}"/><hp:cellMargin left="${De(b)}" right="${De(S)}" top="0" bottom="0"/></hp:tc>`)}let P=T[X]-T[0],H=O[J]-O[0];return`<hp:tbl id="${p++}" zOrder="0" numberingType="TABLE" textWrap="IN_FRONT_OF_TEXT" textFlow="BOTH_SIDES" lock="0" dropcapstyle="None" pageBreak="NONE" repeatHeader="0" rowCnt="${J}" colCnt="${X}" cellSpacing="0" borderFillIDRef="${h}" noAdjust="1"><hp:sz width="${P}" widthRelTo="ABSOLUTE" height="${H}" heightRelTo="ABSOLUTE" protect="0"/><hp:pos treatAsChar="0" affectLSpacing="0" flowWithText="0" allowOverlap="1" holdAnchorAndSO="0" vertRelTo="PAPER" horzRelTo="PAPER" vertAlign="TOP" horzAlign="LEFT" vertOffset="${O[0]}" horzOffset="${T[0]}"/><hp:outMargin left="0" right="0" top="0" bottom="0"/><hp:inMargin left="0" right="0" top="0" bottom="0"/>`+k.map(x=>`<hp:tr>${x.join("")}</hp:tr>`).join("")+"</hp:tbl>"},[w,C,A,I]=n.margins.map(De),Q=`<hp:secPr id="" textDirection="HORIZONTAL" spaceColumns="1134" tabStop="8000" tabStopVal="4000" tabStopUnit="HWPUNIT" outlineShapeIDRef="1" memoShapeIDRef="0" textVerticalWidthHead="0" masterPageCnt="0"><hp:grid lineGrid="0" charGrid="0" wonggojiFormat="0"/><hp:startNum pageStartsOn="BOTH" page="0" pic="0" tbl="0" equation="0"/><hp:visibility hideFirstHeader="0" hideFirstFooter="0" hideFirstMasterPage="0" border="SHOW_ALL" fill="SHOW_ALL" hideFirstPageNum="0" hideFirstEmptyLine="0" showLineNumber="0"/><hp:lineNumberShape restartType="0" countBy="0" distance="0" startNumber="0"/><hp:pagePr landscape="${r>o?"NARROWLY":"WIDELY"}" width="${De(Math.min(r,o))}" height="${De(Math.max(r,o))}" gutterType="LEFT_ONLY"><hp:margin header="0" footer="0" gutter="0" left="${I}" right="${C}" top="${w}" bottom="${A}"/></hp:pagePr><hp:footNotePr><hp:autoNumFormat type="DIGIT" userChar="" prefixChar="" suffixChar=")" supscript="0"/><hp:noteLine length="-1" type="SOLID" width="0.12 mm" color="#000000"/><hp:noteSpacing betweenNotes="283" belowLine="567" aboveLine="850"/><hp:numbering type="CONTINUOUS" newNum="1"/><hp:placement place="EACH_COLUMN" beneathText="0"/></hp:footNotePr><hp:endNotePr><hp:autoNumFormat type="DIGIT" userChar="" prefixChar="" suffixChar=")" supscript="0"/><hp:noteLine length="14692344" type="SOLID" width="0.12 mm" color="#000000"/><hp:noteSpacing betweenNotes="0" belowLine="567" aboveLine="850"/><hp:numbering type="CONTINUOUS" newNum="1"/><hp:placement place="END_OF_DOCUMENT" beneathText="0"/></hp:endNotePr>`+["BOTH","EVEN","ODD"].map(Y=>`<hp:pageBorderFill type="${Y}" borderFillIDRef="1" textBorder="PAPER" headerInside="0" footerInside="0" fillArea="PAPER"><hp:offset left="1417" right="1417" top="1417" bottom="1417"/></hp:pageBorderFill>`).join("")+'</hp:secPr><hp:ctrl><hp:colPr id="" type="NEWSPAPER" layout="LEFT" colCount="1" sameSz="1" sameGap="0"/></hp:ctrl>',U=(e.pages.length?e.pages:[{items:[]}]).map((Y,N)=>{let q=Y.items.filter(ae=>ae.source?.band!=="watermark"),ee=j(q)+q.filter(ae=>ae.kind==="image"&&!ae.emboss).map((ae,he)=>v(ae,he+1)).join("");return`<hp:p id="${g++}" paraPrIDRef="${d}" styleIDRef="0" pageBreak="${N>0?1:0}" columnBreak="0" merged="0"><hp:run charPrIDRef="${f}">${N===0?Q:""}${ee}<hp:t/></hp:run></hp:p>`}).join(""),re=`${lt}<hs:sec ${nr}>${U}</hs:sec>`,be=sr.map(Y=>`<hh:fontface lang="${Y}" fontCnt="${Io.length}">`+Io.map((N,q)=>`<hh:font id="${q}" face="${N}" type="TTF" isEmbedded="0"><hh:typeInfo familyType="FCAT_GOTHIC" weight="6" proportion="4" contrast="0" strokeVariation="1" armStyle="1" letterform="1" midline="1" xHeight="1"/></hh:font>`).join("")+"</hh:fontface>").join(""),V=rr(1,i)+rr(2,i).replace("</hh:borderFill>",'<hc:fillBrush><hc:winBrush faceColor="none" hatchColor="#FF000000" alpha="0"/></hc:fillBrush></hh:borderFill>'),fe=`${lt}<hh:head ${nr} version="1.4" secCnt="1"><hh:beginNum page="1" footnote="1" endnote="1" pic="1" tbl="1" equation="1"/><hh:refList><hh:fontfaces itemCnt="${sr.length}">${be}</hh:fontfaces><hh:borderFills itemCnt="${l.list.length+2}">${V}${l.list.map((Y,N)=>rr(N+3,Y)).join("")}</hh:borderFills><hh:charProperties itemCnt="${s.list.length}">${s.list.map((Y,N)=>oi(N,Y)).join("")}</hh:charProperties><hh:tabProperties itemCnt="1"><hh:tabPr id="0" autoTabLeft="0" autoTabRight="0"/></hh:tabProperties><hh:numberings itemCnt="1"><hh:numbering id="1" start="0">`+["^1.","^2.","^3)","^4)","(^5)","(^6)","^7"].map((Y,N)=>`<hh:paraHead start="1" level="${N+1}" align="LEFT" useInstWidth="1" autoIndent="1" widthAdjust="0" textOffsetType="PERCENT" textOffset="50" numFormat="${N===6?"CIRCLED_DIGIT":N%2?"HANGUL_SYLLABLE":"DIGIT"}" charPrIDRef="4294967295" checkable="${N===6?1:0}">${Y}</hh:paraHead>`).join("")+`</hh:numbering></hh:numberings><hh:paraProperties itemCnt="${a.list.length}">${a.list.map((Y,N)=>si(N,Y)).join("")}</hh:paraProperties><hh:styles itemCnt="1"><hh:style id="0" type="PARA" name="\uBC14\uD0D5\uAE00" engName="Normal" paraPrIDRef="0" charPrIDRef="0" nextStyleIDRef="0" langID="1042" lockForm="0"/></hh:styles></hh:refList><hh:compatibleDocument targetProgram="HWP201X"><hh:layoutCompatibility/></hh:compatibleDocument><hh:docOption><hh:linkinfo path="" pageInherit="0" footnoteInherit="0"/></hh:docOption><hh:trackchageConfig flags="56"/></hh:head>`,pe=new Date().toISOString().replace(/\.\d+Z$/,"Z"),K=Do(t.name??""),se=`${lt}<opf:package ${nr} version="" unique-identifier="" id=""><opf:metadata><opf:title>${K}</opf:title><opf:language>ko</opf:language><opf:meta name="creator" content="text">FreeReport</opf:meta><opf:meta name="CreatedDate" content="text">${pe}</opf:meta><opf:meta name="ModifiedDate" content="text">${pe}</opf:meta></opf:metadata><opf:manifest><opf:item id="header" href="Contents/header.xml" media-type="application/xml"/>`+u.map(Y=>`<opf:item id="${Y.name.replace(/\..*$/,"")}" href="BinData/${Y.name}" media-type="image/${Y.name.endsWith("png")?"png":"jpg"}" isEmbeded="1"/>`).join("")+'<opf:item id="section0" href="Contents/section0.xml" media-type="application/xml"/><opf:item id="settings" href="settings.xml" media-type="application/xml"/></opf:manifest><opf:spine><opf:itemref idref="header" linear="yes"/><opf:itemref idref="section0" linear="yes"/></opf:spine></opf:package>';return on([{name:"mimetype",data:"application/hwp+zip"},{name:"version.xml",data:`${lt}<hv:HCFVersion xmlns:hv="http://www.hancom.co.kr/hwpml/2011/version" tagetApplication="WORDPROCESSOR" major="5" minor="0" micro="5" buildNumber="0" os="1" xmlVersion="1.4" application="FreeReport" appVersion="1.0"/>`},{name:"Contents/header.xml",data:fe},{name:"Contents/section0.xml",data:re},{name:"Preview/PrvText.txt",data:E.join(`\r
|
|
17
|
-
`).slice(0,1024)},{name:"settings.xml",data:`${lt}<ha:HWPApplicationSetting xmlns:ha="http://www.hancom.co.kr/hwpml/2011/app" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"><ha:CaretPosition listIDRef="0" paraIDRef="0" pos="0"/></ha:HWPApplicationSetting>`},...u.map(
|
|
11
|
+
`)}function Tt(e){return to(new TextEncoder().encode(no(e)))}var Ys="212222 222122 222221 121223 121322 131222 122213 122312 132212 221213 221312 231212 112232 122132 122231 113222 123122 123221 223211 221132 221231 213212 223112 312131 311222 321122 321221 312212 322112 322211 212123 212321 232121 111323 131123 131321 112313 132113 132311 211313 231113 231311 112133 112331 132131 113123 113321 133121 313121 211331 231131 213113 213311 213131 311123 311321 331121 312113 312311 332111 314111 221411 431111 111224 111422 121124 121421 141122 141221 112214 112412 122114 122411 142112 142211 241211 221114 413111 241112 134111 111242 121142 121241 114212 124112 124211 411212 421112 421211 212141 214121 412121 111143 111341 131141 114113 114311 411113 411311 113141 114131 311141 411131 211412 211214 211232 2331112".split(" "),Js=103,ro=104,Zs=105,Qs=106,ea=99,ta=100,na=101;function Hn(e,t){let n=0;for(;t+n<e.length&&e.charCodeAt(t+n)>=48&&e.charCodeAt(t+n)<=57;)n++;return n}function oo(e,t){for(;t<e.length;t++){let n=e.charCodeAt(t);if(n<32)return"A";if(n>=96)return"B"}return"B"}function Un(e){for(let l=0;l<e.length;l++)if(e.charCodeAt(l)>127)throw new Error(`Code128: unsupported character at ${l}`);let t=[],n=null,r=l=>{n!==l&&(n===null?t.push(l==="A"?Js:l==="B"?ro:Zs):t.push(l==="A"?na:l==="B"?ta:ea),n=l)},o=0;for(;o<e.length;){let l=Hn(e,o);if(l>=4){l%2&&((n===null||n==="C")&&r(oo(e,o)),t.push(e.charCodeAt(o++)-32)),r("C");let f=o+(l-l%2);for(;o<f;o+=2)t.push(+e.substr(o,2));continue}let a=e.charCodeAt(o);n===null||n==="C"?r(oo(e,o)):a<32&&n==="B"?r("A"):a>=96&&n==="A"&&r("B"),t.push(n==="A"&&a<32?a+64:a-32),o++}n===null&&t.push(ro);let s=t[0];for(let l=1;l<t.length;l++)s+=t[l]*l;t.push(s%103,Qs);let i=[];for(let l of t)for(let a of Ys[l])i.push(+a);return i}var so=["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],ra=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLL","LGLGGL","LGGLGL"],ao=e=>e.replace(/./g,t=>t==="0"?"1":"0");function oa(e){if(!/^\d{12}$/.test(e))throw new Error("EAN-13: expected 12 digits");let t=0;for(let n=0;n<12;n++)t+=+e[n]*(n%2?3:1);return(10-t%10)%10}function Gn(e){if(!/^\d{12,13}$/.test(e))throw new Error("EAN-13: expected 12 or 13 digits");let t=oa(e.slice(0,12));if(e.length===13&&+e[12]!==t)throw new Error("EAN-13: invalid check digit");let n=e.slice(0,12)+t,r="101",o=ra[+n[0]];for(let l=1;l<=6;l++){let a=so[+n[l]];r+=o[l-1]==="L"?a:ao(a).split("").reverse().join("")}r+="01010";for(let l=7;l<=12;l++)r+=ao(so[+n[l]]);r+="101";let s=[],i=1;for(let l=1;l<=r.length;l++)r[l]===r[l-1]?i++:(s.push(i),i=1);return s}var sa={L:1,M:0,Q:3,H:2},fo={L:[0,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],M:[0,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],Q:[0,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],H:[0,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]},po={L:[0,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],M:[0,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],Q:[0,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],H:[0,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]},Zt="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";function aa(e){if(e===1)return[];let t=Math.floor(e/7)+2,n=e*4+17,r=Math.floor((e*8+t*3+5)/(t*4-4))*2,o=[6];for(let s=n-7;o.length<t;s-=r)o.splice(1,0,s);return o}function mo(e){let t=(16*e+128)*e+64;if(e>=2){let n=Math.floor(e/7)+2;t-=(25*n-10)*n-55,e>=7&&(t-=36)}return t}function io(e,t){return Math.floor(mo(e)/8)-fo[t][e]*po[t][e]}var en=new Uint8Array(512),On=new Uint8Array(256);(()=>{let e=1;for(let t=0;t<255;t++)en[t]=e,On[e]=t,e<<=1,e&256&&(e^=285);for(let t=255;t<512;t++)en[t]=en[t-255]})();var qn=(e,t)=>e&&t?en[On[e]+On[t]]:0;function ia(e){let t=new Array(e).fill(0);t[e-1]=1;let n=1;for(let r=0;r<e;r++){for(let o=0;o<e;o++)t[o]=qn(t[o],n),o+1<e&&(t[o]^=t[o+1]);n=qn(n,2)}return t}function la(e,t){let n=new Array(t.length).fill(0);for(let r of e){let o=r^n.shift();n.push(0);for(let s=0;s<t.length;s++)n[s]^=qn(t[s],o)}return n}var tn=class{constructor(){this.bits=[]}put(t,n){for(let r=n-1;r>=0;r--)this.bits.push(t>>>r&1)}};function ca(e){let t=new tn;if(/^\d*$/.test(e)){for(let r=0;r<e.length;r+=3){let o=e.substr(r,3);t.put(+o,o.length*3+1)}return{mode:1,count:e.length,data:t,ccBits:[10,12,14]}}if([...e].every(r=>Zt.includes(r))){for(let r=0;r<e.length;r+=2)r+1<e.length?t.put(Zt.indexOf(e[r])*45+Zt.indexOf(e[r+1]),11):t.put(Zt.indexOf(e[r]),6);return{mode:2,count:e.length,data:t,ccBits:[9,11,13]}}let n=new TextEncoder().encode(e);for(let r of n)t.put(r,8);return{mode:4,count:n.length,data:t,ccBits:[8,16,16]}}var lo=(e,t)=>e.ccBits[t<=9?0:t<=26?1:2];function ua(e,t,n){let r=po[n][t],o=fo[n][t],s=Math.floor(mo(t)/8),i=r-s%r,l=Math.floor(s/r),a=ia(o),f=[];for(let u=0,c=0;u<r;u++){let p=l-o+(u<i?0:1),b=e.slice(c,c+p);c+=p,f.push({data:b,ec:la(b,a)})}let d=[],g=l-o+1;for(let u=0;u<g;u++)for(let c of f)u<c.data.length&&d.push(c.data[u]);for(let u=0;u<o;u++)for(let c of f)d.push(c.ec[u]);return d}function fa(e,t,n){switch(e){case 0:return(t+n)%2===0;case 1:return n%2===0;case 2:return t%3===0;case 3:return(t+n)%3===0;case 4:return(Math.floor(t/3)+Math.floor(n/2))%2===0;case 5:return t*n%2+t*n%3===0;case 6:return(t*n%2+t*n%3)%2===0;default:return((t+n)%2+t*n%3)%2===0}}function da(e){let t=e.length,n=0,r=[1,0,1,1,1,0,1,0,0,0,0],o=[0,0,0,0,1,0,1,1,1,0,1];for(let l=0;l<2;l++){let a=(f,d)=>l?e[d][f]:e[f][d];for(let f=0;f<t;f++){let d=1;for(let u=1;u<=t;u++)u<t&&a(f,u)===a(f,u-1)?d++:(d>=5&&(n+=d-2),d=1);let g=u=>u>=0&&u<t&&a(f,u)?1:0;for(let u=-4;u+11<=t+4;u++){let c=!0,p=!0;for(let b=0;b<11&&(c||p);b++){let S=g(u+b);S!==r[b]&&(c=!1),S!==o[b]&&(p=!1)}c&&(n+=40),p&&(n+=40)}}}for(let l=0;l<t-1;l++)for(let a=0;a<t-1;a++){let f=e[l][a];f===e[l][a+1]&&f===e[l+1][a]&&f===e[l+1][a+1]&&(n+=3)}let s=0;for(let l of e)for(let a of l)a&&s++;let i=t*t;return n+=(Math.ceil(Math.abs(s*20-i*10)/i)-1)*10,n}function pa(e,t){let n=sa[e]<<3|t,r=n;for(let o=0;o<10;o++)r=r<<1^(r>>>9)*1335;return(n<<10|r)^21522}function ma(e){let t=e;for(let n=0;n<12;n++)t=t<<1^(t>>>11)*7973;return e<<12|t}function Kn(e,t="M"){let n=ca(e),r=1;for(;r<=40;r++){let v=lo(n,r);if(n.count<1<<v&&4+v+n.data.bits.length<=io(r,t)*8)break}if(r>40)throw new Error("QR: data too long");let o=io(r,t)*8,s=new tn;s.put(n.mode,4),s.put(n.count,lo(n,r)),s.bits.push(...n.data.bits),s.put(0,Math.min(4,o-s.bits.length)),s.put(0,(8-s.bits.length%8)%8);for(let v=236;s.bits.length<o;v^=253)s.put(v,8);let i=[];for(let v=0;v<s.bits.length;v+=8){let T=0;for(let x=0;x<8;x++)T=T<<1|s.bits[v+x];i.push(T)}let l=ua(i,r,t),a=r*4+17,f=Array.from({length:a},()=>new Array(a).fill(!1)),d=Array.from({length:a},()=>new Array(a).fill(!1)),g=(v,T,x)=>{f[T][v]=x,d[T][v]=!0};for(let v=0;v<a;v++)g(6,v,v%2===0),g(v,6,v%2===0);for(let[v,T]of[[3,3],[a-4,3],[3,a-4]])for(let x=-4;x<=4;x++)for(let P=-4;P<=4;P++){let j=v+P,F=T+x;if(j<0||F<0||j>=a||F>=a)continue;let Z=Math.max(Math.abs(P),Math.abs(x));g(j,F,Z!==2&&Z!==4)}let u=aa(r);for(let v=0;v<u.length;v++)for(let T=0;T<u.length;T++)if(!(v===0&&T===0||v===0&&T===u.length-1||v===u.length-1&&T===0))for(let x=-2;x<=2;x++)for(let P=-2;P<=2;P++)g(u[v]+P,u[T]+x,Math.max(Math.abs(P),Math.abs(x))!==1);let c=v=>{let T=pa(t,v),x=P=>(T>>>P&1)===1;for(let P=0;P<=5;P++)g(8,P,x(P));g(8,7,x(6)),g(8,8,x(7)),g(7,8,x(8));for(let P=9;P<15;P++)g(14-P,8,x(P));for(let P=0;P<8;P++)g(a-1-P,8,x(P));for(let P=8;P<15;P++)g(8,a-15+P,x(P));g(8,a-8,!0)};if(c(0),r>=7){let v=ma(r);for(let T=0;T<18;T++){let x=(v>>>T&1)===1,P=a-11+T%3,j=Math.floor(T/3);g(P,j,x),g(j,P,x)}}let p=0,b=l.length*8;for(let v=a-1;v>=1;v-=2){v===6&&(v=5);let T=(v+1&2)===0;for(let x=0;x<a;x++){let P=T?a-1-x:x;for(let j=0;j<2;j++){let F=v-j;d[P][F]||p>=b||(f[P][F]=(l[p>>>3]>>>7-(p&7)&1)===1,p++)}}}let S=v=>{for(let T=0;T<a;T++)for(let x=0;x<a;x++)!d[T][x]&&fa(v,x,T)&&(f[T][x]=!f[T][x])},M=0,$=1/0;for(let v=0;v<8;v++){S(v),c(v);let T=da(f);T<$&&($=T,M=v),S(v)}return S(M),c(M),f}var ha=["qn0tbouluqjgt9sukvl30qhol1ga10l0oa0gln0qrotduljgqpstcvb30lhob1gbn0lroqtubjglpsqsvbholoubroltubpslsvbtuuntqbgt5suivkj0q9ot4ukhgq8s910kgoq8e90gkgc908krgqdst6v9j0kpoqcu9hgkosqcf9gokoe9rgktsqev9poksu9osksf9tskuv9su9sfkb0q5ot2uk9gq4st2f8h0k8oq4e8ggk8c8g88g48r0kdoq6u8pgkcsq6f8ookce8oc8o68tokeu8sskef8se8uuk5gq2st1f890k4oq2e88gk4cq27888k46884k438dgk6sq3f8cok6e8cck678c68c3k7f8e7850k2oq1e84gk2cq17848k26844k2384286o86c86682gq0nk16k13821pbgslsuavij0p9oskuihgp8sskf510igo50girgpdssmv5j0ipopcu5hgios5go5gc5rgitspev5poisu5os5oe5tsiuv5su5uvrb0tlouqur9gtksuqfmh0r8otkemggr8ctk7mg8r86ib0p5osiumr0i9gp4ssifmpgrcstmfdh04ggi8cp47dggmocdg84r0idop6udr04pgicsp6fdpgmssrefdoo4ocdoc4toieudto4ssiefdssmufdse4uuduu4ufdufr5gtisupfm90r4otiem8gr4cti7m88r46m84m82i5gp2sshfmdgi4op2ecp048gr6ep27cog488i46co8mc6i434824dgi6sp3fctg4coi6ecsomeei67csc4c64c34esi7fcus4eecue4e7cu7cvfm50r2othem4gr2cth7m48r26m44r23m42m41450i2op1ecd044gi2cp17ccgm6cr37cc8444i23cc4m63cc246oi3eceo46ci37cecm77ce6463ce3cfecf7m2gr1ctgnm28r16m24r13m22m2142gi1cp0nc6g428i16c68m36i13c64422c6242143cc7cc76c73r0mr0jm11i0m414c34c32c31hb0olosauh9goks2h0h8ooke2ggh8c2g82g42r0hdoomu2pghcsomf2oohce2oc2o62toheu2sshef2se2uu2ufplgsqsudfj90pkosqej8gpkcsq7j88pk6j84pk3h5goiss9fjdgh4ooie6p028gpmeoi76ogjcch466o82846o42dgh6sojf6tg2copnf6sojeeh676sc2c66s62esh7f6us2ee6ue2e72ff6vfrl0tqouterkgtqcut7rk8tq6rk4tq3rk2j50piospend0j4gtresp7ncgrmctr7nc8j44pi3nc4rm3j41250h2oohe6d024gh2coh7et06cgj6cpj7esgnecrn7h23es86c4j63es424126oh3e6eo26ch37euo6ecj77eucnf72636e327e6fe277eve6f7rigtpcusnri8tp6ri4tp3ri2ri1j2gphcsonn6gj28tpnn68rj6ph3n64j22n62j21n6122gh1cogn66g228h16eeg668j36h13ee8n76222ee466222166123ch1n67c236efc676233ef667323nefnrh8tomrh4tojrh2rh1j18pgmn38j14pgjn34rhjn32j11n31218h0m638214h0je78634j1je74n3j211e72631e7163me7me7jtobrghpgbj0ij0h20k61ke3k20h61hglg190gko18ggkcoa7188gk6184gk31dggmsobf1cogme1ccgm71c61c31esgnf1ee1e71ffhl0oqosdehkgoqchk8oq6hk4oq3hk2150gioo9e3d014goreo973cghmcor73c8144gi33c4hm314116ogje3eo16cgj73echn73e616317e3fe1773f7pqgstcuenpq8st6pq4st3pq2pq1higopcjmghi8op6jm8pr6op3jm4hi2jm2hi1jm112gghc36g128opn7eg368hj6gh37e8jn61227e436212136113cghn37c1367fc3761337f637313n37n7fntt8uumtt4uujtt2tt1pp8ssmrr8ttmssjrr4ttjrr2pp1rr1hh8oomjj8hh4oojnn8jj4ppjnn4rrjhh1nn2jj1nn1118ggm338114ggj778334hhjff8774jjj111ff4nnj331ff211m33m11j77m33jffm77jffjtskuubtsitshpokssbrpktsrrpipohrphhgkoobjhkhginjkjhihghnjijhhnjh10kggb31khgr73k31i10hf7k73i31hf7i73hf7h31rf7rts9roqropjgqnhqnhp30q71qf3qf3p0l00kggac0k80k40k20mo0mc0m60m30ne0n7gqggq8od6gq4od3gq2gq10igg9c1mggrcg961m8gr61m4gr31m20i11m10jcg9n1ncgrn1n60j31n30jn1nnot8ot4ot2ot1gp8hr8otmocjhr4otjhr2gp1hr10h81j80h4g8j3n81j40h23n41j20h13n21j10hm1jm0hj3nm1jj3njsuksuisuhoskptksurptioshpthgokocbhpkosrjrkhpigohjrihphjrh0gkg8b1hkgor3jk1hi0gh7nk3ji1hh7ni3jh0gr1hr3jr7nruvauv9suatuqsu9tuposapsqos9rtqpsprtpgoahoqgo9jpqhopnrq","ulgvast90ukovaet8gukcva7t88uk6t84uk3t82tdgumsvbfqp0tcoumeqogtccum7qo8tc6qo4tc3qo2qtgtesunflp0qsoteelogqscte7lo8qs6lo4qs3lo2ltgqustffbp0lsoqueboglscqu7bo8ls6bo4ls3btglusqvfbsoluebsclu7bs6buslvfbuebu7t50uiov9et4guicv97t48ui6t44ui3t42t41qd0t6oujeqcgt6cuj7qc8t66qc4t63qc2qc1kt0qeot7eksgqect77ks8qe6ks4qe3ks2ks19t0kuoqfe9sgkucqf79s8ku69s4ku39s29uokve9uckv79u69u39ve9v7t2guhcv8nt28uh6t24uh3t22t21q6gt3cuhnq68t36q64t33q62q61kegq7ct3nke8q76ke4q73ke2ke18ugkfcq7n8u8kf68u4kf38u28u18vckfn8v68v38vnt18ugmt14ugjt12t11q38t1mq34t1jq32q31k78q3mk74q3jk72k718f8k7m8f4k7j8f28f18fm8fjt0kugbt0it0hq1kt0rq1iq1hk3kq1rk3ik3h87kk3r87i87ht0at09q0qq0pk1qk1psl0uaov5eskguacv57sk8ua6sk4ua3sk2sk1pd0smoubepcgsmcub7pc8sm6pc4sm3pc2pc1it0peosneisgpecsn7is8pe6is4pe3is2is15t0iuopfe5sgiucpf75s8iu65s4iu35s25uoive5uciv75u65u35ve5v7uqgvdcdfouq8vd6d7suq4vd3d3uuq2uq1sigu9cv4ntmgsi8vdntm8ur6u93tm4si2tm2si1tm1p6gsjcu9nregp68sj6re8tn6sj3re4p62re2p61re1iegp7csjnmugie8p76mu8rf6p73mu4ie2mu2ie1mu14ugifcp7ndug4u8if6du8mv6if3du44u2du24u14vcifndvc4v6dv64v3dv34vnup8vcmcnsup4vcjcjuup2chvup1sh8u8mtj8sh4u8jtj4upjtj2sh1tj1p38shmr78p34shjr74tjjr72p31r71i78p3mmf8i74p3jmf4r7jmf2i71mf14f8i7mcv84f4i7jcv4mfjcv24f1cv14fmcvm4fjcvjuokvcbcbuuoic9vuohsgku8bthkuorthisghthhp1ksgrr3kp1ir3ip1hr3hi3kp1rm7kr3rm7ii3hm7h47ki3rcfk47icfi47hcfh47rcfruoac5vuo9sgatgqsg9tgpp0qr1qp0pr1pi1qm3qi1pm3p43qc7q43pc7puo5sg5tgdp0dr0ti0tm1tsagu5cv2nsa8u56sa4u53sa2sa1omgsbcu5nom8sb6om4sb3om2om1hegoncsbnhe8on6he4on3he2he12ughfconn2u8hf62u4hf32u22u12vchfn2v62v32vnud8v6m6nsud4v6j6juud26hvud1s98u4msr8s94u4jsr4udjsr2s91sr1oj8s9mpn8oj4s9jpn4srjpn2oj1pn1h78ojmjf8h74ojjjf4pnjjf2h71jf12f8h7m6v82f4h7j6v4jfj6v22f16v12fm6vm2fj6vjvekenonbuveiejsn9vvehehuegvuckv6b6buutkvereru69vutiuchepvuths8ku4bspks8itrkutrs8htrisphtrhohks8rpjkohirnkpjiohhrnipjhrnhh3kohrj7kh3infkj7ih3hnfij7hnfh27kh3r6fk27ievk6fi27hevi6fhevh27r6frveaebsn5vve9e9ue8vuca65vusquc9edvusps8asoqs89tpqsoptppogqphqogprjqphprjph1qj3qh1pn7qj3pn7p23q67q23pefq67pefpve5e5ue4vuc5usds85sodtotogdpgtrhth0tj1tn3t21t63te7te2vs58u2ms54u2js52s51ob8s5mob4s5job2ob1gn8obmgn4objgn2gn11f8gnm1f4gnj1f21f11fm1fju6kv3b3buu6i39vu6hs4ku2bsdks4isdis4hsdho9ks4rorko9iorio9horhgjko9rhnkgjihnigjhhnh17kgjr3fk17i3fi17h3fh17r3frv7a7bsjlvv7979u78vu6a35vuequ697dvueps4ascqs49stqscpstpo8qopqo8pprqoppprpghqhjqghpjnqhjpjnp13q37q13p7fq37p7fpfbonluf9snkvf8uf8fv7575uvfdfdu74vfcvu65ueduuts45scdsstttto8dootpptrrtggthhtjjtnnt11t33t77tf5snivf4uf4f72vf6vf2uf2ff1fs2ks2is2ho5ks2ro5io5hgbko5rgbigbh0nkgbr0ni0nh0nru3a1lvu39s2as6qs29s6po4qodqo4podpg9qgrqg9pgrp0jq1nq0jp1npv3l3lu3kvu35u7ds25s6dseto4doctottg8tgpthrt0ht1jt3nt7lsjqv7ku7kf3iv7mvflonqufksnqffkefk77iufmu7iffmffisnpffiefi77hffjffhefh7fgno2qo2pg5qg5p0bq0bps3do2do6tg4tgdt09t0rt1qv3qu3qf7qsjtf7qe7q73pf7rffqontefqcnt7fq6fq37pefre7p7fr7fpcnsnfp6fp37onfpnfomfoj1tf3te3t77tcjun7t67t33sn7tn7sm7sj","lfgqnsaf0l7oqjua7gl3sqhva3ol1ua1svb8bfglnsvb4b7oljuvb2b3slhvvb1b1uun8vbmbnsun4vbjbjuun2bhvun1tf8unmtf4unjtf2tf1qv8tfmqv4tfjqv2qv1lv8qvmlv4qvjlv29f0knoqbu97gkjsq9v93okhu91skgv90uv9k9nokruv9i9jskpvv9h9hu9gvujkv9r9ruuji9pvujht7kujrt7it7hqfkt7rqfiqfhkvkqfrkvikvh8ngkbsq5v8jok9u8hsk8v8gu8gfv8q8rskdvv8p8pu8ovuhq8tvuhpt3qt3pq7qq7pkfqkfp8bok5u89sk4v88u88fv8d8du8cvugtt1tq3t85sk2v84u84f86v82u82f5f0inopbu57gijsp9v53oihu51sigv50uv5k5noiruv5i5jsipvv5h5hu5gvubkv5r5ruubi5pvubhsnkubrsnisnhpfksnrpfipfhivkpfriviivhmngrbstlvd70mjor9ud3gmhsr8vd1omgud0smgfd0e4ngibsp5vdng4joi9udjompui8vdhs4gudgu4gfdgfv4q4rsidvvdqv4pdrs4puvdpdpu4ovdovu9q4tvurqu9pdtvurpsjqtnqsjptnpp7qrfqp7prfpifqifpcn0mbor5ucjgm9sr4vchom8ucgsm8fcgecg74boi5ucro49si4vcpsmcvcou48fcofv4d4duvctctu4cvcsvu8tuptshttjtp3tr7ti7tcbgm5sr2vc9om4uc8sm4fc8ec8745si2vcds44uccu44fccf46vcevc5om2uc4sm2fc4ec4742uc6u42fc6fc2sm1fc2ec2741fc3fc1ec172nghbsolv2joh9u2hsh8v2gu2gfv2q2rshdvv2p2pu2ovu5q2tvu5psbqsbponqonphfqhfp6n0jboplu6jgj9spkv6hoj8u6gsj8f6ge6g72boh5u6ro29sh4v6psjcv6ou28f6ofv2d2duv6t6tu2cv6svu4tudts9tsrtojtpnth7tnbgrlstqvej0n9orkuehgn8srkfegon8eegcn87eg66bgj5spiverg69oj4ueponcuj4feos68eeoe687eo725sh2v6ds24uets6cu24fesu6cfesf26v6eveuveb0n5oriue9gn4srife8on4ee8cn47e86e8365oj2uedo64sj2fecsn6fece647ec722u66u22feeu66feefe5gn2srhfe4on2ee4cn27e46e4362sj1fe6s62ee6e627e6721f63fe7fe2on1ee2cn17e26e2361ee3e617e37e1cn0ne16e1360ne1ne0me0j1boglu19sgkv18u18f1du1cvu2ts5tobtgnt3bghlsoqv39ohku38shkf38e38715sgiv3ds14u3cu14f3cf16v3ev7b0jlopqu79gjkspqf78ojke78cjk778678335ohiu7do34shif7cs34e7ce3477c712u36u12f7eu36f7efnlgrqsttff90nkorqef8gnkcrq7f88nk6f84nk3f8275gjisppffdg74ojiefconmeji7fcc746fc6743fc332shhf76s32efes76e327fee767fe711f33f77fffff50niorpef4gnicrp7f48ni6f44ni3f42f4172ojhef6o72cjh7f6cnj7f66723f6331e73e317f7e737f77f2gnhcronf28nh6f24nh3f22f2171cjgnf3c716f36713f3330n71nf3nf18ngmf14ngjf12f1170mf1m70jf1jf0kngbf0if0h70bf0r0lsgav0ku0kf0mv1logqu1ksgqf1ke1k70iu1mu0if1mf3lghqsotf3kohqe3kchq73k63k31isgpf3ms1ie3me1i73m70hf1jf3nf7l0jqopte7kgjqcpt77k8jq67k4jq37k27k13iohpe7mo3ichp77mcjr77m63i37m31he3je1h77ne3j77n7nqgrtctunnq8rt6nq4rt3nq2nq17igjpcpsnfmg7i8jp6fm8nr6jp3fm47i2fm27i1fm13hchon7jc3h6fnc7j63h3fn67j3fn31gn3hn7jnfnnnp8rsmnp4rsjnp2np17h8jomfj87h4jojfj4npjfj27h1fj13gm7hm3gjfjm7hjfjjnokrsbnoinoh7gkjobfhk7gifhi7ghfhh3gb7grfhrnoano97gafgq7g9fgp0au0af0qsgdf0qe0q709f0rf1qogte1qcgt71q61q30pe1re0p71r73qghtcoun3q8ht63q4ht33q23q11pcgsn3rchtn3r61p33r30on1pn3rnjt8pumjt4pujjt2jt13p8hsm7r8jtmhsj7r43p27r23p17r11om3pm1oj7rm3pj7rjruktvbruiruhjskpubntkjsintijshnth3okhsb7pk3oifrk7pi3ohfri7phfrh1ob3or7prfrrruaru9jsansqjs9nsp3oa7oq3o9fpq7opfppru5js5nsd3o57odfot0de0d70tcgen0t60t30cn0tn1t8gum1t4guj1t21t10sm1tm0sj1tjhukovbhuihuh1skgub3tkhur3ti1sh3th0sb1sr3trpvapv9huajuqhu9jup1sa3sq1s97tq3sp7tppv5hu5jud1s53sd7st0em0ej0ukgfb0ui0uh0eb0urgvagv90ua1uq0u91upovl"],Qt=null;function ga(){return Qt||(Qt=ha.map(e=>{let t=new Array(929);for(let n=0;n<929;n++)t[n]=65536|parseInt(e.substr(n*3,3),32)<<1;return t}),Qt)}var ba=130728,ya=260649;function wa(e,t){if(!(t>=0&&t<=8)||t%1)throw new Error("PDF417: ecc level must be 0..8");let n=2<<t,r=new Array(n+1).fill(0);r[0]=1;let o=1;for(let l=1;l<=n;l++){o=o*3%929;for(let a=l;a>=0;a--)r[a]=((a>0?r[a-1]:0)+929-r[a]*o%929)%929}let s=new Array(n).fill(0);for(let l of e){let a=(l+s[n-1])%929;for(let f=n-1;f>=1;f--)s[f]=(s[f-1]+929-a*r[f]%929)%929;s[0]=(929-a*r[0]%929)%929}let i=[];for(let l=n-1;l>=0;l--)i.push((929-s[l])%929);return i}var co="0123456789&\r ,:#-.$/+%*=^",Pt=`;<>@[\\]_\`~!\r ,:
|
|
12
|
+
-.$/"|*()?{}'`,Nn=e=>e===9||e===10||e===13||e>=32&&e<=126;function xa(e){let t=[],n=a=>a>=65&&a<=90,r=a=>a>=97&&a<=122,o=a=>co.includes(a),s=a=>!o(a)&&Pt.includes(a),i=0;for(let a=0;a<e.length;){let f=e[a],d=e.charCodeAt(a);if(i===0)n(d)||d===32?(t.push(d===32?26:d-65),a++):r(d)?(t.push(27),i=1):o(f)?(t.push(28),i=2):(t.push(29,Pt.indexOf(f)),a++);else if(i===1)r(d)||d===32?(t.push(d===32?26:d-97),a++):n(d)?(t.push(27,d-65),a++):o(f)?(t.push(28),i=2):(t.push(29,Pt.indexOf(f)),a++);else if(i===2)o(f)||d===32?(t.push(d===32?26:co.indexOf(f)),a++):n(d)?(t.push(28),i=0):r(d)?(t.push(27),i=1):a+1<e.length&&s(e[a+1])?(t.push(25),i=3):(t.push(29,Pt.indexOf(f)),a++);else{let g=Pt.indexOf(f);g>=0?(t.push(g),a++):(t.push(29),i=0)}}t.length%2&&t.push(29);let l=[];for(let a=0;a<t.length;a+=2)l.push(t[a]*30+t[a+1]);return l}function ka(e){let t=[];for(let n=0;n<e.length;n+=44){let r=("1"+e.substr(n,44)).split("").map(Number),o=[];for(;r.length;){let s=[],i=0;for(let l of r){i=i*10+l;let a=Math.floor(i/900);i-=a*900,(s.length||a)&&s.push(a)}o.unshift(i),r=s}t.push(...o)}return t}function $a(e){let t=[e.length%6===0?924:901],n=0;for(;n+6<=e.length;n+=6){let r=0;for(let s=0;s<6;s++)r=r*256+e[n+s];let o=[];for(let s=0;s<5;s++)o.unshift(r%900),r=Math.floor(r/900);t.push(...o)}for(;n<e.length;n++)t.push(e[n]);return t}function va(e){let t=[];/[^\x00-\x7f]/.test(e)&&t.push(927,26);let n=new TextEncoder,r="text",o=0;for(;o<e.length;){let s=Hn(e,o);if(s>=13){t.push(902,...ka(e.substr(o,s))),r="num",o+=s;continue}let i=o;if(Nn(e.charCodeAt(o))){for(;i<e.length&&Nn(e.charCodeAt(i))&&Hn(e,i)<13;)i++;r!=="text"&&t.push(900),t.push(...xa(e.slice(o,i))),r="text"}else{for(;i<e.length&&!Nn(e.charCodeAt(i));)i++;t.push(...$a(n.encode(e.slice(o,i)))),r="byte"}o=i}return t}var Ma=e=>e<=40?2:e<=160?3:e<=320?4:5;function Wn(e,t={}){let n=va(e),r=t.ecc??Ma(n.length+1);if(!(r>=0&&r<=8)||r%1)throw new Error("PDF417: ecc level must be 0..8");let o=2<<r,s=1+n.length+o,i=M=>{let $=Math.max(3,Math.ceil(s/M));return $<=90&&$*M<=928?$:0},l=0;if(t.columns!==void 0){if(!(t.columns>=1&&t.columns<=30)||t.columns%1)throw new Error("PDF417: columns must be 1..30");if(!i(t.columns))throw new Error("PDF417: data does not fit with the requested columns");l=t.columns}else{let M=1/0;for(let $=1;$<=30;$++){let v=i($);if(!v)continue;let T=Math.abs(Math.log((17*($+4)+1)/(v*3)/3));T<M&&(M=T,l=$)}if(!l)throw new Error("PDF417: data too long")}let a=i(l),f=[0,...n];for(;f.length<a*l-o;)f.push(900);f[0]=f.length;let d=f.concat(wa(f,r)),g=ga(),u=(M,$,v)=>{for(let T=v-1;T>=0;T--)M.push(($>>>T&1)===1)},c=Math.floor((a-1)/3),p=r*3+(a-1)%3,b=l-1,S=[];for(let M=0;M<a;M++){let $=M%3,v=30*Math.floor(M/3),T=v+($===0?c:$===1?p:b),x=v+($===0?b:$===1?c:p),P=g[$],j=[];u(j,ba,17),u(j,P[T],17);for(let F=0;F<l;F++)u(j,P[d[M*l+F]],17);u(j,P[x],17),u(j,ya,18),S.push(j)}return{rows:a,cols:l,matrix:S}}var jt=new Uint8Array(512),zn=new Uint8Array(256);(()=>{let e=1;for(let t=0;t<255;t++)jt[t]=e,zn[e]=t,e<<=1,e&256&&(e^=301);for(let t=255;t<512;t++)jt[t]=jt[t-255]})();var uo=(e,t)=>e&&t?jt[zn[e]+zn[t]]:0;function Sa(e,t){let n=[1];for(let s=1;s<=t;s++){let i=new Array(n.length+1).fill(0),l=jt[s];for(let a=0;a<n.length;a++)i[a]^=n[a],i[a+1]^=uo(n[a],l);n=i}let r=n.slice(1),o=new Array(t).fill(0);for(let s of e){let i=s^o.shift();o.push(0);for(let l=0;l<t;l++)o[l]^=uo(r[l],i)}return o}var Ea=[[10,3,5,1],[12,5,7,1],[14,8,10,1],[16,12,12,1],[18,18,14,1],[20,22,18,1],[22,30,20,1],[24,36,24,1],[26,44,28,1],[32,62,36,1],[36,86,42,1],[40,114,48,1],[44,144,56,1],[48,174,68,1],[52,204,84,2],[64,280,112,2],[72,368,144,4],[80,456,192,4],[88,576,224,4],[96,696,272,4],[104,816,336,6],[120,1050,408,6],[132,1304,496,8],[144,1558,620,10]],Ra=e=>e<32?1:e<64?2:e<120?4:6;function Ta(e){let t=new TextEncoder().encode(e),n=[],r=i=>i<t.length&&t[i]>=128,o=i=>i<t.length&&t[i]>=48&&t[i]<=57;t.some(i=>i>=128)&&n.push(241,27);let s=0;for(;s<t.length;)if(r(s)){let i=s;for(;;){for(;r(i);)i++;let f=i;for(;f<t.length&&!r(f)&&f-i<4;)f++;if(f>i&&f-i<4&&r(f))i=f;else break}let l=i-s;n.push(231);let a=l<=249?[l]:[Math.floor(l/250)+249,l%250];for(let f of[...a,...t.subarray(s,i)]){let d=n.length+1,g=f+149*d%255+1;n.push(g<=255?g:g-256)}s=i}else o(s)&&o(s+1)?(n.push(130+(t[s]-48)*10+(t[s+1]-48)),s+=2):(n.push(t[s]+1),s++);return n}function Pa(e,t){let n=new Int32Array(e*t),r=(f,d,g,u)=>{f<0&&(f+=e,d+=4-(e+4)%8),d<0&&(d+=t,f+=4-(t+4)%8),n[f*t+d]=10*g+u},o=(f,d,g)=>{r(f-2,d-2,g,1),r(f-2,d-1,g,2),r(f-1,d-2,g,3),r(f-1,d-1,g,4),r(f-1,d,g,5),r(f,d-2,g,6),r(f,d-1,g,7),r(f,d,g,8)},s=(f,d)=>d.forEach(([g,u],c)=>r(g,u,f,c+1)),i=1,l=4,a=0;do{l===e&&a===0&&s(i++,[[e-1,0],[e-1,1],[e-1,2],[0,t-2],[0,t-1],[1,t-1],[2,t-1],[3,t-1]]),l===e-2&&a===0&&t%4&&s(i++,[[e-3,0],[e-2,0],[e-1,0],[0,t-4],[0,t-3],[0,t-2],[0,t-1],[1,t-1]]),l===e-2&&a===0&&t%8===4&&s(i++,[[e-3,0],[e-2,0],[e-1,0],[0,t-2],[0,t-1],[1,t-1],[2,t-1],[3,t-1]]),l===e+4&&a===2&&!(t%8)&&s(i++,[[e-1,0],[e-1,t-1],[0,t-3],[0,t-2],[0,t-1],[1,t-3],[1,t-2],[1,t-1]]);do l<e&&a>=0&&!n[l*t+a]&&o(l,a,i++),l-=2,a+=2;while(l>=0&&a<t);l+=1,a+=3;do l>=0&&a<t&&!n[l*t+a]&&o(l,a,i++),l+=2,a-=2;while(l<e&&a>=0);l+=3,a+=1}while(l<e||a<t);return n[e*t-1]||(n[e*t-1]=n[e*t-t-2]=1),n}function ja(e){let t=Ta(e),n=Ea.find(f=>f[1]>=t.length);if(!n)throw new Error("DataMatrix: data too long");let[r,o,s,i]=n;for(t.length<o&&t.push(129);t.length<o;){let f=129+149*(t.length+1)%253+1;t.push(f<=254?f:f-254)}let l=s/i,a=t.slice();for(let f=0;f<i;f++){let d=[];for(let u=f;u<o;u+=i)d.push(t[u]);let g=Sa(d,l);for(let u=0;u<l;u++)a[o+u*i+f]=g[u]}return{size:r,data:t,codewords:a}}function _n(e){let{size:t,codewords:n}=ja(e),r=Ra(t),o=(t-2*r)/r,s=o*r,i=Pa(s,s),l=Array.from({length:t},()=>new Array(t).fill(!1)),a=o+2;for(let f=0;f<r;f++)for(let d=0;d<r;d++){let g=f*a,u=d*a;for(let c=0;c<a;c++)l[g+a-1][u+c]=!0,l[g+c][u]=!0,c%2===0&&(l[g][u+c]=!0),c%2===1&&(l[g+c][u+a-1]=!0)}for(let f=0;f<s;f++)for(let d=0;d<s;d++){let g=i[f*s+d],u=g===1||g>=10&&(n[Math.floor(g/10)-1]>>8-g%10&1)===1;l[f+2*Math.floor(f/o)+1][d+2*Math.floor(d/o)+1]=u}return l}var ot={A3:[297,420],A4:[210,297],A5:[148,210],B4:[257,364],B5:[182,257],Letter:[215.9,279.4],Legal:[215.9,355.6]};function _e(e={}){let[t,n]=Array.isArray(e.size)?e.size:ot[e.size??"A4"]??ot.A4;(e.orientation==="landscape"?t<n:e.orientation==="portrait"&&t>n)&&([t,n]=[n,t]);let r=e.margins??15,o=typeof r=="number"?[r,r,r,r]:[r[0],r[1],r[2],r[3]];return{width:t,height:n,margins:o}}function Xe(e){let t=_e(e.page);return t.width-t.margins[1]-t.margins[3]}var Xn={width:.2,style:"solid",color:"#000000"};function ho(e){if(!e)return;if(e===!0)return{...Xn};if(typeof e=="string"){if(e==="none"||e==="0")return;let n={...Xn};for(let r of e.trim().split(/\s+/))/^[\d.]+(mm)?$/.test(r)?n.width=parseFloat(r):/^(solid|dashed|dotted|double)$/.test(r)?n.style=r:n.color=r;return n.width>0?n:void 0}let t={...Xn,...e};return t.width>0?t:void 0}function Ct(e){if(!e)return{};if(e===!0||typeof e=="string"||"width"in e||"style"in e||"color"in e){let r=ho(e);return r?{top:r,right:r,bottom:r,left:r}:{}}let t=e,n={};for(let r of["top","right","bottom","left"]){let o=ho(t[r]);o&&(n[r]=o)}return n}var Ca=(e,t)=>e===void 0?t:typeof e=="number"?[e,e,e,e]:e,Aa="Nanum Gothic",go=new WeakMap;function Fe(e,t){let n=t.styleName?e.styles?.[t.styleName]:void 0,r=go.get(t);if(r&&r.style===t.style&&r.named===n&&r.font===e.font)return r.result;let o=La(e,t,n);return go.set(t,{style:t.style,named:n,font:e.font,result:o}),o}function La(e,t,n){let r={...n,...t.style};return{fontFamily:r.fontFamily??e.font?.family??Aa,fontSize:r.fontSize??e.font?.size??9,bold:r.bold??!1,italic:r.italic??!1,underline:r.underline??!1,strike:r.strike??!1,color:r.color??e.font?.color??"#000000",background:r.background,align:r.align??"left",valign:r.valign??"middle",padding:Ca(r.padding,[.5,1,.5,1]),border:Ct(r.border),lineHeight:r.lineHeight??1.25,wrap:r.wrap??!0,shrinkToFit:r.shrinkToFit??!1,letterSpacing:r.letterSpacing??0}}var Fa={black:"#000000",white:"#ffffff",red:"#ff0000",green:"#008000",blue:"#0000ff",gray:"#808080",grey:"#808080",silver:"#c0c0c0",navy:"#000080",yellow:"#ffff00",orange:"#ffa500",purple:"#800080",maroon:"#800000",teal:"#008080"};function nn(e){if(!e)return null;let t=e.trim().toLowerCase();if(t==="transparent"||t==="none")return null;let n=Fa[t]??t,r=/^#([0-9a-f]{3,8})$/.exec(n);if(r){let o=r[1];return(o.length===3||o.length===4)&&(o=[...o].map(s=>s+s).join("")),o.length!==6&&o.length!==8?null:[parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16),o.length===8?parseInt(o.slice(6,8),16)/255:1]}if(r=/^rgba?\(([^)]+)\)$/.exec(t),r){let o=r[1].split(/[\s,/]+/).filter(Boolean).map(parseFloat);return o.length<3?null:[o[0],o[1],o[2],o[3]??1]}return null}var gt=["#2F5BEA","#F2A900","#16A34A","#DC2626","#7C3AED","#0891B2","#DB2777","#65A30D","#EA580C","#475569"],Da=(e,t)=>{let n=e/Math.max(1,t),r=10**Math.floor(Math.log10(n||1)),o=n/r;return(o<=1?1:o<=2?2:o<=2.5?2.5:o<=5?5:10)*r};function bo(e,t,n,r,o,s=0){let i=[],l=(a,f,d,g)=>{let u=Math.max(1,Math.ceil(Math.abs(d-f)/(Math.PI/2))),c=(d-f)/u,p=4/3*Math.tan(c/4),b=f;g?i.push("M",e+a*Math.cos(b),t+a*Math.sin(b)):i.push("L",e+a*Math.cos(b),t+a*Math.sin(b));for(let S=0;S<u;S++){let M=b+c;i.push("C",e+a*(Math.cos(b)-p*Math.sin(b)),t+a*(Math.sin(b)+p*Math.cos(b)),e+a*(Math.cos(M)+p*Math.sin(M)),t+a*(Math.sin(M)-p*Math.cos(M)),e+a*Math.cos(M),t+a*Math.sin(M)),b=M}};return l(n,r,o,!0),s>0?l(s,o,r,!1):i.push("L",e,t),i.push("Z"),i}var Vn=(e,t,n,r)=>["M",e,t,"L",e+n,t,"L",e+n,t+r,"L",e,t+r,"Z"];function yo(e,t,n,r){let o=Fe(r.def,e),s=e.source?Me(e.source,t):t.rows,i=Array.isArray(s)?s:[],l=e.series?.length?e.series:[],a=i.map((Y,J)=>ve(Me(e.category,{...t,row:Y,vars:{...t.vars,rowNum:J+1}})??"")),f=l.map(Y=>i.map((J,le)=>{let de=Number(Me(Y.expr,{...t,row:J,vars:{...t.vars,rowNum:le+1}}));return Number.isFinite(de)?de:0})),d=Y=>l[Y]?.color??gt[Y%gt.length],g=Math.min(o.fontSize,8),u={family:o.fontFamily,size:g,bold:!1,italic:!1},c={...o,padding:[0,0,0,0],letterSpacing:0,border:{}},p=g*$e*1.3,b=[],S=(Y,J,le,de,ue,ae=!1,E="#444444")=>b.push({...st(J,le,de,p,[Y],{...u,bold:ae},{...c,align:ue,valign:"middle",color:E},r.measure),source:{band:r.kind,elementId:e.id}}),{x:M,y:$,w:v,h:T}=n;if(e.title&&(S(e.title,M,$,v,"center",!0,o.color),$+=p*1.3,T-=p*1.3),e.legend??(l.length>1||e.chartType==="pie"||e.chartType==="doughnut")){let Y=e.chartType==="pie"||e.chartType==="doughnut"?a:l.map((N,A)=>N.label??`Series ${A+1}`),J=g*$e,le=M,de=$+T-p,ue=[];Y.forEach((N,A)=>{let C=r.measure.width(N,u)+J+3;le+C>M+v&&le>M&&(le=M,de-=p),ue.push({text:N,color:e.chartType==="pie"||e.chartType==="doughnut"?gt[A%gt.length]:d(A),x:le,y:de}),le+=C+2});let ae=$+T-Math.min(...ue.map(N=>N.y),$+T),E=new Map;for(let N of ue)E.set(N.y,[...E.get(N.y)??[],N]);for(let N of E.values()){let A=N[N.length-1],C=A.x+r.measure.width(A.text,u)+J+1-N[0].x,ne=(v-C)/2;for(let H of N)b.push({kind:"path",d:Vn(H.x+ne,H.y+(p-J)/2,J,J),fill:H.color}),S(H.text,H.x+ne+J+1,H.y,r.measure.width(H.text,u)+1,"left")}T-=ae+1}if(!i.length||!l.length||T<5)return b;if(e.chartType==="pie"||e.chartType==="doughnut"){let Y=f[0].map(E=>Math.max(0,E)),J=Y.reduce((E,N)=>E+N,0)||1,le=Math.min(v,T)/2-1,de=M+v/2,ue=$+T/2,ae=-Math.PI/2;return Y.forEach((E,N)=>{let A=ae+E/J*Math.PI*2;if(E>0&&b.push({kind:"path",d:bo(de,ue,le,ae,A,e.chartType==="doughnut"?le*.55:0),fill:gt[N%gt.length],stroke:"#ffffff",strokeWidth:.3}),e.showValues!==!1&&E/J>=.04){let C=(ae+A)/2,ne=e.chartType==="doughnut"?le*.78:le*.62,H=e.format?ve(E,e.format):`${Math.round(E/J*100)}%`;S(H,de+ne*Math.cos(C)-10,ue+ne*Math.sin(C)-p/2,20,"center",!0,"#ffffff")}ae=A}),b}let P=e.chartType==="hbar",j=!!e.stacked&&(e.chartType==="bar"||e.chartType==="hbar"||e.chartType==="area"),F=a.map((Y,J)=>f.reduce((le,de)=>le+Math.max(0,de[J]),0)),Z=a.map((Y,J)=>f.reduce((le,de)=>le+Math.min(0,de[J]),0)),te=Math.max(...j?F:f.flat()),U=j?Math.min(0,...Z):Math.min(0,...f.flat());te===U&&(te=U+1);let re=Da(te-U,5);te=Math.ceil(te/re)*re,U=Math.floor(U/re)*re;let be=[];for(let Y=U;Y<=te+re/1e6;Y+=re)be.push(Math.round(Y*1e9)/1e9);let V=Y=>ve(Y,e.format??(Math.abs(te)>=1e3?"#,##0":void 0)),fe=Math.max(...be.map(Y=>r.measure.width(V(Y),u)))+1.5,me=P?Math.min(v*.3,Math.max(...a.map(Y=>r.measure.width(Y,u)))+1.5):0,_=P?{x:M+me,y:$,w:v-me-2,h:T-p}:{x:M+fe,y:$+p/2,w:v-fe-1,h:T-p-p/2},ce="#999999",X="#e3e3e3",B=Y=>P?_.x+(Y-U)/(te-U)*_.w:_.y+_.h-(Y-U)/(te-U)*_.h;for(let Y of be){let J=B(Y);P?(b.push({kind:"line",x1:J,y1:_.y,x2:J,y2:_.y+_.h,width:.15,color:Y===0?ce:X}),S(V(Y),J-10,_.y+_.h+.3,20,"center")):(b.push({kind:"line",x1:_.x,y1:J,x2:_.x+_.w,y2:J,width:.15,color:Y===0?ce:X}),S(V(Y),M,J-p/2,fe-1,"right"))}let O=a.length,Q=(P?_.h:_.w)/O,oe=Math.max(1,Math.ceil(O*r.measure.width("0000",u)/(P?_.h*3:_.w)));if(a.forEach((Y,J)=>{J%oe||(P?S(Y,M,_.y+J*Q+Q/2-p/2,me-1,"right"):S(Y,_.x+J*Q,_.y+_.h+.3,Q*oe,oe>1?"left":"center"))}),e.chartType==="bar"||e.chartType==="hbar"){let Y=Q*.7,J=j?Y:Y/l.length,le=B(0);return a.forEach((de,ue)=>{let ae=0,E=0;l.forEach((N,A)=>{let C=f[A][ue],ne=0,H=C;j&&(C>=0?(ne=ae,H=ae+C,ae=H):(ne=E,H=E+C,E=H));let K=j?B(ne):le,h=B(H),D=(P?_.y:_.x)+ue*Q+(Q-Y)/2+(j?0:A*J),q=P?Vn(Math.min(K,h),D,Math.abs(h-K),J*.92):Vn(D,Math.min(K,h),J*.92,Math.abs(h-K));b.push({kind:"path",d:q,fill:d(A),source:{band:r.kind,elementId:e.id,value:C}}),e.showValues&&C!==0&&(P?S(V(C),h+.5,D+J*.46-p/2,fe+4,"left"):S(V(C),D-5,Math.min(K,h)-p,J+10,"center"))})}),b}let pe=a.map((Y,J)=>_.x+J*Q+Q/2),we=a.map(()=>0);return l.forEach((Y,J)=>{let le=f[J].map((ue,ae)=>B(j?we[ae]+=ue:ue)),de=[];if(pe.forEach((ue,ae)=>de.push(ae?"L":"M",ue,le[ae])),e.chartType==="area"){let ue=j&&J>0?f.slice(0,J).reduce((E,N)=>E.map((A,C)=>A+N[C]),a.map(()=>0)).map(B):pe.map(()=>B(Math.max(U,0))),ae=[...de];for(let E=pe.length-1;E>=0;E--)ae.push("L",pe[E],ue[E]);ae.push("Z"),b.push({kind:"path",d:ae,fill:d(J),opacity:.25})}b.push({kind:"path",d:de,stroke:d(J),strokeWidth:.5,source:{band:r.kind,elementId:e.id}}),pe.forEach((ue,ae)=>{O<=40&&b.push({kind:"path",d:bo(ue,le[ae],.7,0,Math.PI*2).slice(0,-4).concat(["Z"]),fill:d(J)}),e.showValues&&S(V(f[J][ae]),ue-8,le[ae]-p-.3,16,"center")})}),b}var wo="0.15 solid #9aa3b2",xo="#eef1f6";function Ve(e,t,n){return{...e,...t?.bold!==void 0?{bold:t.bold}:{},...t?.color?{color:t.color}:{},...t?.fontSize?{fontSize:t.fontSize}:{},background:t?.background??e.background,border:t?.border!==void 0?Ct(t.border):e.border,align:n,valign:"middle",wrap:!1}}function Ce(e,t,n,r,o,s,i,l,a,f){let d=i.border.top||i.border.right||i.border.bottom||i.border.left;if((i.background||d)&&e.push({kind:"box",x:t,y:n,w:r,h:o,fill:i.background,border:i.border,source:{band:l.kind}}),!s)return;let g={family:i.fontFamily,size:i.fontSize,bold:i.bold,italic:i.italic},u=st(t,n,r,o,[s],g,i,l.measure);u.source={band:l.kind,value:a,format:f},e.push(u)}function rn(e){try{return Be(e)}catch(t){let n=`#ERR ${t.message}`;return()=>n}}var Yn=e=>Array.isArray(e)?e:[];function Ia(e){let t=e.columns.reduce((o,s)=>o+(s.width??0),0),n=e.columns.filter(o=>!o.width).length,r=Math.max(0,e.w-t);return e.columns.map(o=>o.width??(n?r/n:0))}function ko(e,t){let n=Yn(Me(e.source,t)),r=e.rowHeight??6,o=e.showHeader===!1?0:r,s=e.columns.some(i=>i.sum)?r:0;return Math.max(e.h,o+n.length*r+s)}function $o(e,t,n,r,o){let s=Yn(Me(e.source,t)),i=Fe(o.def,e),l={...i,border:i.border.top||i.border.left?i.border:Ct(wo),padding:[.3,1,.3,1]},a=Ve(l,{bold:!0,background:xo,...e.headerStyle},"center"),f=Ia(e),d=e.rowHeight??6,g=[],u=r;if(e.showHeader!==!1){let b=n;e.columns.forEach((S,M)=>{Ce(g,b,u,f[M],d,S.header,a,o),b+=f[M]}),u+=d}let c=e.columns.map(b=>rn(b.expr)),p=e.columns.map(()=>0);if(s.forEach((b,S)=>{let M=n,$={...t,row:b,vars:{...t.vars,rowNum:S+1}};e.columns.forEach((v,T)=>{let x;try{x=c[T]($)}catch(j){x=`#ERR ${j.message}`}v.sum&&typeof x=="number"&&(p[T]+=x);let P=Ve(l,e.altBackground&&S%2?{background:e.altBackground}:void 0,v.align??(typeof x=="number"?"right":"left"));Ce(g,M,u,f[T],d,ve(x,v.format,o.locale),P,o,x,v.format),M+=f[T]}),u+=d}),e.columns.some(b=>b.sum)){let b=n,S=Ve(l,{bold:!0,background:"#f7f8fb"},"right");e.columns.forEach((M,$)=>{let v=M.sum?ve(p[$],M.format,o.locale):$===0?e.footerLabel??"\uD569\uACC4":"";Ce(g,b,u,f[$],d,v,{...S,align:M.sum?"right":"center"},o,M.sum?p[$]:void 0,M.format),b+=f[$]})}return g}function vo(e,t){let n=e.source?Yn(Me(e.source,t)):t.rows,r=rn(e.rowKey),o=rn(e.columnKey),s=rn(e.value),i=e.aggregate??"sum",l=new Map,a=[],f=[],d=new Set,g=new Set;n.forEach((p,b)=>{let S={...t,row:p,vars:{...t.vars,rowNum:b+1}},M=ve(r(S)),$=ve(o(S)),v=Number(s(S));d.has(M)||(d.add(M),a.push(M)),g.has($)||(g.add($),f.push($));for(let T of[`${M}\0${$}`,`${M}\0*`,`*\0${$}`,"*\0*"]){let x=l.get(T);x||l.set(T,x=[]),x.push(Number.isFinite(v)?v:0)}});let u=new Intl.Collator("ko",{numeric:!0});a.sort(u.compare),f.sort(u.compare);let c=p=>{if(!p?.length)return null;switch(i){case"count":return p.length;case"avg":return p.reduce((b,S)=>b+S,0)/p.length;case"min":return p.reduce((b,S)=>S<b?S:b);case"max":return p.reduce((b,S)=>S>b?S:b);default:return p.reduce((b,S)=>b+S,0)}};return{rowKeys:a,colKeys:f,cell:(p,b)=>c(l.get(`${p}\0${b}`)),rowTotal:p=>c(l.get(`${p}\0*`)),colTotal:p=>c(l.get(`*\0${p}`)),total:c(l.get("*\0*"))}}function Mo(e,t){let n=vo(e,t),r=e.cellHeight??6;return Math.max(e.h,(n.rowKeys.length+1+(e.totals!==!1?1:0))*r)}function So(e,t,n,r,o){let s=vo(e,t),i=e.totals!==!1,l=e.cellHeight??6,a=Fe(o.def,e),f={...a,border:a.border.top||a.border.left?a.border:Ct(wo),padding:[.3,1,.3,1]},d=Ve(f,{bold:!0,background:xo,...e.headerStyle},"center"),g=Ve(f,{bold:!0,background:"#f7f8fb"},"right"),u=Math.min(e.rowHeaderWidth??25,e.w*.4),c=s.colKeys.length+(i?1:0),p=c?(e.w-u)/c:0,b=f.fontSize,S=Math.max(1,...s.colKeys.map(x=>o.measure.width(x,{family:f.fontFamily,size:b,bold:!0,italic:!1})));S>p-2&&(b=Math.max(5,b*((p-2)/S)));let M=x=>({...x,fontSize:Math.min(x.fontSize,b)}),$=[],v=e.totals!==!1?o.locale.startsWith("ko")?"\uD569\uACC4":"Total":"";Ce($,n,r,u,l,e.corner??"",d,o),s.colKeys.forEach((x,P)=>Ce($,n+u+P*p,r,p,l,x,M(d),o)),i&&Ce($,n+u+s.colKeys.length*p,r,p,l,v,M(d),o);let T=e.format??"#,##0";if(s.rowKeys.forEach((x,P)=>{let j=r+(P+1)*l;if(Ce($,n,j,u,l,x,Ve(f,{bold:!0,background:"#f7f8fb"},"left"),o),s.colKeys.forEach((F,Z)=>{let te=s.cell(x,F);Ce($,n+u+Z*p,j,p,l,te===null?"":ve(te,T,o.locale),M(Ve(f,void 0,"right")),o,te??void 0,T)}),i){let F=s.rowTotal(x);Ce($,n+u+s.colKeys.length*p,j,p,l,F===null?"":ve(F,T,o.locale),M(g),o,F??void 0,T)}}),i){let x=r+(s.rowKeys.length+1)*l;Ce($,n,x,u,l,v,Ve(f,{bold:!0,background:"#f7f8fb"},"center"),o),s.colKeys.forEach((P,j)=>{let F=s.colTotal(P);Ce($,n+u+j*p,x,p,l,F===null?"":ve(F,T,o.locale),M(g),o,F??void 0,T)}),Ce($,n+u+s.colKeys.length*p,x,p,l,s.total===null?"":ve(s.total,T,o.locale),M(g),o,s.total??void 0,T)}return $}var Ba=.8,Na=e=>!!e&&!(typeof e=="string"&&e.startsWith("#ERR"));function Ha(e,t=e.fontSize){return{family:e.fontFamily,size:t,bold:e.bold,italic:e.italic}}function Oa(e,t,n,r){let o=Fe(n.def,e);if(e.type==="table"||e.type==="crosstab")return n.blank||e.canGrow===!1?{el:e,style:o,needed:e.h}:{el:e,style:o,needed:e.type==="table"?ko(e,t):Mo(e,t)};if(e.type!=="text"&&e.type!=="field")return{el:e,style:o,needed:e.h};let s="",i;if(!n.blank){if(e.type==="text")s=Ue(e.text??"",t);else if(i=Me(e.expr,t),s=i==null||i===""?e.nullText??"":ve(i,e.format,n.locale),e.suppressRepeated&&n.previous){let M=n.previous.get(e);n.previous.set(e,s),M===s&&(s="")}}let[l,a,f,d]=o.padding,g=Math.max(1,e.w-d-a),u=Ha(o);if(o.shrinkToFit&&s){let M=o.fontSize;for(;M>4&&n.measure.width(s,{...u,size:M})+o.letterSpacing*s.length>g;)M-=.25;u={...u,size:M}}let c=o.wrap&&!o.shrinkToFit?kn(s,g,u,n.measure,o.letterSpacing):s.split(/\r?\n/),p=u.size*$e*o.lineHeight,S=e.canGrow??r?Math.max(e.h,c.length*p+l+f):e.h;return{el:e,style:o,text:s,value:i,font:u,lines:c,needed:S}}function qa(e,t,n,r,o,s,i){let l=o.border.top||o.border.right||o.border.bottom||o.border.left;return!o.background&&!l?null:{kind:"box",x:e,y:t,w:n,h:r,fill:o.background,border:o.border,source:{band:s.kind,elementId:i,row:s.rowIndex}}}function st(e,t,n,r,o,s,i,l){let[a,f,d,g]=i.padding,u=s.size*$e*i.lineHeight,c=o.length*u,p=r-a-d,b=t+a;i.valign==="middle"?b+=(p-c)/2:i.valign==="bottom"&&(b+=p-c);let S=o.map((M,$)=>{let v=l.width(M,s)+i.letterSpacing*[...M].length,T=e+g;return i.align==="center"?T=e+g+(n-g-f-v)/2:i.align==="right"&&(T=e+n-f-v),{text:M,x:T,y:b+$*u+(u-s.size*$e)/2+s.size*$e*Ba,width:v}});return{kind:"text",x:e,y:t,w:n,h:r,lines:S,font:s,color:i.color,align:i.align,valign:i.valign,underline:i.underline||void 0,strike:i.strike||void 0,letterSpacing:i.letterSpacing||void 0,text:o.join(`
|
|
13
|
+
`)}}function za(e,t,n,r,o){let s=e.reduce((f,d)=>f+d,0),i=r/s,l=[],a=t;return e.forEach((f,d)=>{d%2===0&&l.push("M",a,n,"L",a+f*i,n,"L",a+f*i,n+o,"L",a,n+o,"Z"),a+=f*i}),l}function Ua(e,t,n,r,o,s,i){let l=String(Me(e.expr,s)??"");if(!l||l.startsWith("#ERR")||i.blank)return[];let a=e.color??"#000000",f={band:i.kind,elementId:e.id,row:i.rowIndex,value:l};try{if(e.format==="qr"||e.format==="datamatrix"||e.format==="pdf417"){let S,M,$,v,T;if(e.format==="pdf417"){S=Wn(l).matrix;let j=S[0].length+4,F=S.length*3+4,Z=Math.min(r/j,o/F);M=Z,$=Z*3,v=t+(r-j*Z)/2+2*Z,T=n+(o-F*Z)/2+2*Z}else{S=e.format==="qr"?Kn(l,e.ecc??"M"):_n(l);let j=e.format==="qr"?4:1,F=S.length+j*2,Z=Math.min(r,o);M=$=Z/F,v=t+(r-Z)/2+j*M,T=n+(o-Z)/2+j*$}let x=M,P=[];return S.forEach((j,F)=>{for(let Z=0;Z<j.length;Z++){if(!j[Z])continue;let te=Z;for(;te+1<j.length&&j[te+1];)te++;P.push("M",v+Z*x,T+F*$,"L",v+(te+1)*x,T+F*$,"L",v+(te+1)*x,T+(F+1)*$,"L",v+Z*x,T+(F+1)*$,"Z"),Z=te}}),[{kind:"path",d:P,fill:a,source:f}]}let d=e.format==="ean13"?Gn(l):Un(l),g=e.showText!==!1,u=Fe(i.def,e),c=Math.min(u.fontSize,9),p=g?c*$e*1.3:0,b=[{kind:"path",d:za(d,t,n,r,Math.max(1,o-p)),fill:a,source:f}];if(g){let S={family:u.fontFamily,size:c,bold:!1,italic:!1};b.push(st(t,n+o-p,r,p,[l],S,{...u,align:"center",valign:"middle",padding:[0,0,0,0],letterSpacing:0},i.measure))}return b}catch{return[st(t,n,r,o,["(barcode?)"],{family:"sans-serif",size:7,bold:!1,italic:!1},{...Fe(i.def,e),color:"#cc0000"},i.measure)]}}function Ye(e,t,n,r,o,s=0){let i=e.canGrow??(n.kind==="detail"||n.kind==="groupHeader"||n.kind==="groupFooter"||n.kind==="summary"||n.kind==="title"),l=[];for(let u of e.elements)u.visible&&!n.blank&&!Na(Me(u.visible,t))||l.push(Oa(u,t,n,i));let a=Math.max(e.height,s);for(let u of l)a=Math.max(a,u.el.y+u.needed);let f=[],d=n.background??e.background;d&&f.push({kind:"box",x:r,y:o,w:n.width,h:a,fill:d,source:{band:n.kind,row:n.rowIndex}});let g=a-e.height;for(let u of l){let c=u.el,p=c.y+c.h>=e.height-.01,b=u.needed;(c.stretch??p)&&c.type!=="line"&&c.type!=="table"&&c.type!=="crosstab"&&(b=Math.max(b,c.h+g,a-c.y));let S=r+c.x,M=o+c.y;switch(c.type){case"text":case"field":{let $=qa(S,M,c.w,b,u.style,n,c.id);if($&&f.push($),u.text){let v=st(S,M,c.w,b,u.lines,u.font,u.style,n.measure);v.source={band:n.kind,elementId:c.id,row:n.rowIndex,value:c.type==="field"?u.value:void 0,format:c.type==="field"?c.format:void 0},/docHash/.test(c.type==="text"?c.text:c.expr)&&(v.source.fingerprint=!0),f.push(v)}break}case"line":{let $=c.h===0?0:c.y+c.h>=e.height-.01?c.h+g:c.h;f.push({kind:"line",x1:S,y1:M,x2:S+c.w,y2:M+$,width:c.width??.2,color:c.color??"#000000",dash:c.dash,source:{band:n.kind,elementId:c.id}});break}case"rect":{let $=c.width??.2;f.push({kind:"box",x:S,y:M,w:c.w,h:b,fill:c.fill,radius:c.radius,stroke:$>0?{width:$,color:c.color??"#000000"}:void 0,source:{band:n.kind,elementId:c.id}});break}case"image":{let $=c.expr?String(Me(c.expr,t)??""):c.src??"";$&&!$.startsWith("#ERR")&&!n.blank&&f.push({kind:"image",x:S,y:M,w:c.w,h:b,src:$,fit:c.fit??"contain",source:{band:n.kind,elementId:c.id}});break}case"barcode":f.push(...Ua(c,S,M,c.w,b,t,n));break;case"chart":n.blank||f.push(...yo(c,t,{x:S,y:M,w:c.w,h:b},n));break;case"table":n.blank||f.push(...$o(c,t,S,M,n));break;case"crosstab":n.blank||f.push(...So(c,t,S,M,n));break}}return{height:a,items:f}}var Jn=e=>!!e&&!(typeof e=="string"&&e.startsWith("#ERR"));function Eo(e){return e instanceof Date?e.getTime():typeof e=="number"?e:typeof e=="boolean"?e?1:0:e==null?"":String(e)}var Ga=new Intl.Collator("ko",{numeric:!0});function To(e,t){let n=Eo(e),r=Eo(t);return typeof n=="number"&&typeof r=="number"?n-r:n===r?0:Ga.compare(String(n),String(r))}function Ka(e,t){if(!t)return e;for(let n of e)if(n.kind==="line")n.y1+=t,n.y2+=t;else if(n.kind==="path"){let r=0;for(let o=0;o<n.d.length;o++){let s=n.d[o];if(typeof s=="string"){r=0;continue}r++%2===1&&(n.d[o]=s+t)}}else if(n.y+=t,n.kind==="text")for(let r of n.lines)r.y+=t;return e}var Ro=new WeakMap;function Wa(e){let t=Ro.get(e);return t===void 0&&(t=/\bpages?\b|pageRows|pageIndex/.test(JSON.stringify(e.elements)),Ro.set(e,t)),t}function Ne(e,t){if(Array.isArray(t))return{rows:t,root:{rows:t}};let n=t??{},r=n[e.dataSource??"rows"];return{rows:Array.isArray(r)?r:[],root:n}}function at(e,t={}){let n={};for(let[r,o]of Object.entries(e.params??{}))n[r]=o.default;return{...n,...t}}function Po(e,t,n,r){if(n>=t.length)return null;let o=t[n],s=Be(o.by),i=[],l=null;e.forEach(a=>{let f=s({...r,row:a});(!l||To(l.key,f)!==0)&&(l={def:o,level:n,key:f,rows:[],children:null},i.push(l)),l.rows.push(a)});for(let a of i)a.children=Po(a.rows,t,n+1,r);return i}function At(e,t={},n={}){let r=typeof performance<"u"?performance.now():Date.now(),o=Zn(e,t,n,void 0,void 0),s=/\bpages\b/.test(JSON.stringify([e.bands.title,e.bands.columnHeader,e.bands.detail,e.bands.summary,e.bands.groups])),i=s&&o.pages.length>1?Zn(e,t,n,o.pages.length,void 0):o;if(e.fingerprint){let l=Tt(i.pages);i=Zn(e,t,n,s?i.pages.length:void 0,l),i.fingerprint=l}return i.ms=Math.round(((typeof performance<"u"?performance.now():Date.now())-r)*10)/10,i}function Zn(e,t,n,r,o){Vr();let s=n.measure??kt(),i=n.locale??"ko",l=n.maxPages??1e4,a=_e(e.page),[f,,d,g]=a.margins,u=Xe(e),c=at(e,n.params),{rows:p,root:b}=Ne(e,t),S=new Date,M=o?{docHash:o,docHashShort:o.slice(0,12)}:{docHash:"",docHashShort:""},$={rows:p,allRows:p,params:c,data:b,vars:{now:S,...M}},v=p;if(e.filter){let A=Be(e.filter);v=v.filter(C=>Jn(A({...$,row:C})))}let T=e.bands.groups??[],x=[...T.filter(A=>A.sort).map(A=>({fn:Be(A.by),dir:A.sort==="desc"?-1:1})),...(e.sort??[]).map(A=>({fn:Be(A.replace(/^[-+]/,"")),dir:A.startsWith("-")?-1:1}))];if(x.length){let A=v.map((C,ne)=>({row:C,i:ne,keys:x.map(H=>H.fn({...$,row:C}))}));A.sort((C,ne)=>{for(let H=0;H<x.length;H++){let K=To(C.keys[H],ne.keys[H])*x[H].dir;if(K)return K}return C.i-ne.i}),v=A.map(C=>C.row)}let P={...$,rows:v,allRows:v},j=[],F=e.bands;F.title&&j.push({kind:"title",band:F.title,scopeRows:v,groups:[]});let Z=0,te=(A,C,ne)=>{if(!A){let H=Math.max(1,Math.floor(F.detail?.columns??1));if(F.detail&&H>1){for(let K=0;K<ne.length;K+=H){let h=ne.slice(K,K+H);j.push({kind:"detail",band:F.detail,row:h[0],rowIndex:Z,localIndex:K,chunk:h,scopeRows:ne,groupRows:C.length?ne:void 0,groups:C}),Z+=h.length}return}ne.forEach((K,h)=>{F.detail&&j.push({kind:"detail",band:F.detail,row:K,rowIndex:Z,localIndex:h,scopeRows:ne,groupRows:C.length?ne:void 0,groups:C}),Z++});return}for(let H of A){let K=[...C,H];H.def.header&&j.push({kind:"groupHeader",band:H.def.header,row:H.rows[0],scopeRows:H.rows,groupRows:H.rows,groups:K,group:H}),te(H.children,K,H.rows),H.def.footer&&j.push({kind:"groupFooter",band:H.def.footer,row:H.rows[H.rows.length-1],scopeRows:H.rows,groupRows:H.rows,groups:K,group:H})}};!v.length&&F.noData?j.push({kind:"noData",band:F.noData,scopeRows:v,groups:[]}):te(Po(v,T,0,P),[],v),F.summary&&j.push({kind:"summary",band:F.summary,row:v[v.length-1],scopeRows:v,groups:[]});let U=[],re=[],be=[],V,fe=0,me=0,_=!1,ce=!1,X=new Map,B=F.pageFooter?.height??0,O=null,Q=(A,C)=>({...P,row:A.row,rows:A.kind==="groupHeader"||A.kind==="groupFooter"||A.kind==="detail"?A.scopeRows:v,groupRows:A.groupRows,pageRows:re[U.length-1],vars:{now:S,...M,page:C,pages:r??C,rowNum:A.localIndex!==void 0?A.localIndex+1:void 0,rowIndex:A.rowIndex!==void 0?A.rowIndex+1:void 0,groupKey:A.group?.key??A.groups[A.groups.length-1]?.key,groupLevel:A.group?.level}}),oe=(A,C={})=>({def:e,measure:s,locale:i,kind:A,width:u,previous:X,...C}),pe=()=>{if(U.length>=l)throw new Error(`Report stopped at ${l} pages (maxPages)`);V={number:U.length+1,total:0,width:a.width,height:a.height,items:[]},U.push(V),re.push([]),be.push(O),fe=f,F.pageHeader&&!(e.pageHeaderSkipFirst&&U.length===1)&&(fe+=F.pageHeader.height),me=a.height-d-B,_=!1,ce=!1,X.clear()},we=(A,C,ne,H={},K)=>{let h=K?{height:K.height,items:Ka(K.items,fe)}:Ye(A,ne,oe(C,H),g,fe);for(let D of h.items)V.items.push(D);return fe+=h.height,ce=!0,h.height},Y=(A,C,ne,H={})=>Ye(A,ne,oe(C,{...H,previous:void 0}),0,0).height,J=(A,C,ne)=>{let H=A.band,K=Math.max(1,Math.floor(H.columns??1)),h=H.columnGap??0,D=(u-h*(K-1))/K,q=A.chunk.map((m,y)=>Ye(H,{...C,row:m,vars:{...C.vars,rowNum:(A.localIndex??0)+y+1,rowIndex:(A.rowIndex??0)+y+1}},oe(A.kind,{...ne,rowIndex:(A.rowIndex??0)+y,previous:void 0,width:D}),g+y*(D+h),0));return{height:Math.max(...q.map(m=>m.height)),items:q.flatMap(m=>m.items)}},le=A=>A.kind==="detail"||A.kind==="groupHeader"||A.kind==="groupFooter",de=A=>{!F.columnHeader||_||!le(A)||(_=!0,we(F.columnHeader,"columnHeader",Q(A,V.number)))},ue=A=>{for(let C of A.groups){if(C===A.group&&A.kind==="groupHeader")break;C.def.repeatHeader&&C.def.header&&we(C.def.header,"groupHeader",{...Q(A,V.number),rows:C.rows,groupRows:C.rows,row:C.rows[0]})}},ae=A=>{if(!e.fillEmptyRows||!F.detail)return;let C=F.detail.height;if(C>.5)for(;fe+C<=A+.01&&!(we(F.detail,"detail",{...P,rows:v},{blank:!0})<=0););};pe();let E=new Set;for(let A=0;A<j.length;A++){let C=j[A],ne=Q(C,V.number);if(C.band.visible&&!Jn(Me(C.band.visible,ne)))continue;C.kind==="groupHeader"&&C.group?.def.resetPageNumber&&(O&&ce?(ae(me),O=C.group,pe()):(O=C.group,be[U.length-1]=O));let H=C.band.pageBreakBefore&&ce||C.kind==="groupHeader"&&C.group?.def.newPage&&ce&&!C.group.def.resetPageNumber&&E.has(C.group.level);C.kind==="groupHeader"&&C.group&&E.add(C.group.level),H&&(ae(me),pe());let K={rowIndex:C.rowIndex};C.kind==="detail"&&F.detail?.altBackground&&(C.localIndex??0)%2===1&&(K.background=F.detail.altBackground);let h=!Wa(C.band)&&!C.band.elements.some(y=>y.type==="field"&&y.suppressRepeated),D=C.chunk?J(C,ne,K):Ye(C.band,ne,oe(C.kind,{...K,previous:void 0}),g,0),q=D.height;if(!_&&F.columnHeader&&le(C)&&(q+=F.columnHeader.height),C.kind==="groupHeader"){let y=C.group?.def.keepWithRows??1;for(let k=A+1,w=0;k<j.length&&w<y&&!(j[k].kind!=="detail"&&j[k].kind!=="groupHeader");k++)q+=Y(j[k].band,j[k].kind,Q(j[k],V.number)),j[k].kind==="detail"&&w++}fe+q>me+.01&&ce?(ae(me),pe(),de(C),ue(C)):de(C);let m=Q(C,V.number);if(we(C.band,C.kind,m,K,h||C.chunk?D:void 0),C.chunk?re[U.length-1].push(...C.chunk):C.kind==="detail"&&C.row&&re[U.length-1].push(C.row),e.fillEmptyRows&&C.kind==="detail"&&j[A+1]?.kind!=="detail"){let k=j.slice(A+1).filter(w=>w.kind==="groupFooter"||w.kind==="summary").reduce((w,R)=>w+Y(R.band,R.kind,Q(R,V.number)),0);j.slice(A+1).some(w=>w.kind==="detail")||ae(me-k)}C.band.pageBreakAfter&&A<j.length-1&&pe()}!j.length&&e.fillEmptyRows&&ae(me);let N=new Map;be.forEach((A,C)=>N.set(A,[...N.get(A)??[],C]));for(let A of N.values())A.forEach((C,ne)=>{U[C].number=ne+1,U[C].total=A.length});return U.forEach((A,C)=>{let ne=be[C],H={...P,row:re[C][0],rows:re[C],pageRows:re[C],groupRows:ne?.rows,vars:{now:S,...M,page:A.number,pages:A.total,pageIndex:C+1,pageCount:U.length,groupKey:ne?.key,lastPage:C===U.length-1,firstPage:C===0}},K=[],h=(D,q,m)=>{D&&(D.visible&&!Jn(Me(D.visible,H))||K.push(...Ye(D,H,oe(q,{previous:void 0}),g,m,0).items))};e.pageHeaderSkipFirst&&C===0||h(F.pageHeader,"pageHeader",f),h(F.pageFooter,"pageFooter",a.height-d-B),A.items.push(...K)}),eo(U,{watermark:e.watermark,emboss:e.emboss},a,(A,C)=>({...P,rows:re[C],pageRows:re[C],vars:{now:S,...M,page:A.number,pages:A.total,pageIndex:C+1,pageCount:U.length}}),s),{pages:U,width:a.width,height:a.height,rowCount:v.length,ms:0}}var _a=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function Xa(e){let t=4294967295;for(let n=0;n<e.length;n++)t=_a[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var jo=new TextEncoder;function on(e){let t=e.map(d=>{let g=jo.encode(d.name),u=typeof d.data=="string"?jo.encode(d.data):d.data;return{name:g,data:u,crc:Xa(u),offset:0}}),n=t.reduce((d,g)=>d+30+g.name.length+g.data.length,0),r=t.reduce((d,g)=>d+46+g.name.length,0),o=new Uint8Array(n+r+22),s=new DataView(o.buffer),i=0,l=0,a=33;for(let d of t)d.offset=i,s.setUint32(i,67324752,!0),s.setUint16(i+4,20,!0),s.setUint16(i+6,2048,!0),s.setUint16(i+8,0,!0),s.setUint16(i+10,l,!0),s.setUint16(i+12,a,!0),s.setUint32(i+14,d.crc,!0),s.setUint32(i+18,d.data.length,!0),s.setUint32(i+22,d.data.length,!0),s.setUint16(i+26,d.name.length,!0),s.setUint16(i+28,0,!0),o.set(d.name,i+30),o.set(d.data,i+30+d.name.length),i+=30+d.name.length+d.data.length;let f=i;for(let d of t)s.setUint32(i,33639248,!0),s.setUint16(i+4,20,!0),s.setUint16(i+6,20,!0),s.setUint16(i+8,2048,!0),s.setUint16(i+10,0,!0),s.setUint16(i+12,l,!0),s.setUint16(i+14,a,!0),s.setUint32(i+16,d.crc,!0),s.setUint32(i+20,d.data.length,!0),s.setUint32(i+24,d.data.length,!0),s.setUint16(i+28,d.name.length,!0),s.setUint16(i+30,0,!0),s.setUint16(i+32,0,!0),s.setUint16(i+34,0,!0),s.setUint16(i+36,0,!0),s.setUint32(i+38,0,!0),s.setUint32(i+42,d.offset,!0),o.set(d.name,i+46),i+=46+d.name.length;return s.setUint32(i,101010256,!0),s.setUint16(i+8,t.length,!0),s.setUint16(i+10,t.length,!0),s.setUint32(i+12,i-f,!0),s.setUint32(i+16,f,!0),o}function Lt(e){let t="";for(let n=e+1;n>0;n=Math.floor((n-1)/26))t=String.fromCharCode(65+(n-1)%26)+t;return t}var Va=Date.UTC(1899,11,30),Ya=e=>(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())-Va)/864e5,Ja=/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g,Dt=e=>e.replace(Ja,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),Ft=e=>{if(!e)return"";let t=e.replace("#","");return/^[0-9a-f]{6}$/i.test(t)?`FF${t.toUpperCase()}`:/^[0-9a-f]{3}$/i.test(t)?`FF${[...t].map(n=>n+n).join("").toUpperCase()}`:/^[0-9a-f]{8}$/i.test(t)?t.toUpperCase():""},Za={Letter:1,Legal:5,A3:8,A4:9,A5:11,B4:12,B5:13},it=`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
14
|
+
`,Qn="http://schemas.openxmlformats.org/spreadsheetml/2006/main",Co="http://schemas.openxmlformats.org/officeDocument/2006/relationships",er=class{constructor(){this.fonts=['<font><sz val="10"/><name val="\uB9D1\uC740 \uACE0\uB515"/><family val="3"/></font>'];this.fills=['<fill><patternFill patternType="none"/></fill>','<fill><patternFill patternType="gray125"/></fill>'];this.borders=["<border><left/><right/><top/><bottom/><diagonal/></border>"];this.numFmts=[];this.xfs=['<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>'];this.idx=new Map;this.fmtIds=new Map}intern(t,n){let r=`${t.length===0,""}${n}`,o=t.indexOf(r);return o>=0?o:(t.push(n),t.length-1)}id(t){if(!t)return 0;let n=JSON.stringify(t),r=this.idx.get(n);if(r!==void 0)return r;let o=t.font??{},s=this.intern(this.fonts,`<font>${o.bold?"<b/>":""}${o.italic?"<i/>":""}${o.strike?"<strike/>":""}${o.underline?"<u/>":""}<sz val="${o.size??10}"/>${Ft(o.color)?`<color rgb="${Ft(o.color)}"/>`:""}<name val="${Dt(o.name??"\uB9D1\uC740 \uACE0\uB515")}"/><family val="3"/></font>`),i=t.fill&&Ft(t.fill)?this.intern(this.fills,`<fill><patternFill patternType="solid"><fgColor rgb="${Ft(t.fill)}"/><bgColor indexed="64"/></patternFill></fill>`):0,l=(p,b)=>b?`<${p} style="${b.style}"><color rgb="${Ft(b.color)||"FF000000"}"/></${p}>`:`<${p}/>`,a=t.border??{},f=t.border?this.intern(this.borders,`<border>${l("left",a.left)}${l("right",a.right)}${l("top",a.top)}${l("bottom",a.bottom)}<diagonal/></border>`):0,d=0;t.fmt&&t.fmt!=="General"&&(d={0:1,"0.00":2,"#,##0":3,"#,##0.00":4,"0%":9,"0.00%":10,"yyyy-mm-dd":14}[t.fmt]??this.fmtIds.get(t.fmt)??0,d||(d=164+this.numFmts.length,this.numFmts.push(`<numFmt numFmtId="${d}" formatCode="${Dt(t.fmt)}"/>`),this.fmtIds.set(t.fmt,d)));let g=t.align||t.valign||t.wrap?`<alignment${t.align?` horizontal="${t.align}"`:""}${t.valign?` vertical="${t.valign}"`:""}${t.wrap?' wrapText="1"':""}/>`:"",u=`numFmtId="${d}" fontId="${s}" fillId="${i}" borderId="${f}" xfId="0"`+(d?' applyNumberFormat="1"':"")+(s?' applyFont="1"':"")+(i?' applyFill="1"':"")+(f?' applyBorder="1"':"")+(g?' applyAlignment="1"':"");this.xfs.push(g?`<xf ${u}>${g}</xf>`:`<xf ${u}/>`);let c=this.xfs.length-1;return this.idx.set(n,c),c}xml(){return it+`<styleSheet xmlns="${Qn}">`+(this.numFmts.length?`<numFmts count="${this.numFmts.length}">${this.numFmts.join("")}</numFmts>`:"")+`<fonts count="${this.fonts.length}">${this.fonts.join("")}</fonts><fills count="${this.fills.length}">${this.fills.join("")}</fills><borders count="${this.borders.length}">${this.borders.join("")}</borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="${this.xfs.length}">${this.xfs.join("")}</cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles></styleSheet>`}};function Qa(e){let t=new Set;return e.map((n,r)=>{let o=(n.name??`Sheet${r+1}`).replace(/[[\]:*?/\\]/g," ").slice(0,31).trim()||`Sheet${r+1}`,s=o;for(let i=2;t.has(s.toLowerCase());i++)s=`${o.slice(0,27)} (${i})`;return t.add(s.toLowerCase()),s})}function sn(e,t={}){let n=new er,r=Qa(e),o=e.map(i=>{let l=[],a=0;for(let T=0;T<i.rows.length;T++)a=Math.max(a,i.rows[T]?.length??0);i.widths&&(a=Math.max(a,i.widths.length));let f=Math.max(i.rows.length,i.heights?.length??0);for(let T=0;T<f;T++){let x=i.rows[T]??[],P=i.heights?.[T],j="";for(let F=0;F<x.length;F++){let Z=x[F];if(!Z)continue;let te=`${Lt(F)}${T+1}`,U=Z.v,re=Z.s;U instanceof Date&&(Number.isNaN(U.getTime())?U=null:(U=Ya(U),re={...re,fmt:re?.fmt??"yyyy-mm-dd"}));let be=n.id(re),V=be?` s="${be}"`:"";U==null||U===""?j+=`<c r="${te}"${V}/>`:typeof U=="number"?j+=Number.isFinite(U)?`<c r="${te}"${V}><v>${U}</v></c>`:`<c r="${te}"${V}/>`:typeof U=="boolean"?j+=`<c r="${te}"${V} t="b"><v>${U?1:0}</v></c>`:j+=`<c r="${te}"${V} t="inlineStr"><is><t xml:space="preserve">${Dt(String(U))}</t></is></c>`}(j||P)&&l.push(`<row r="${T+1}"${P?` ht="${Math.round(P*100)/100}" customHeight="1"`:""}>${j}</row>`)}let d=`A1:${Lt(Math.max(0,a-1))}${Math.max(1,f)}`,g=`<sheetViews><sheetView workbookViewId="0"${i.showGrid===!1?' showGridLines="0"':""}>${i.freezeRows?`<pane ySplit="${i.freezeRows}" topLeftCell="A${i.freezeRows+1}" activePane="bottomLeft" state="frozen"/>`:""}</sheetView></sheetViews>`,u=i.widths?.length?`<cols>${i.widths.map((T,x)=>`<col min="${x+1}" max="${x+1}" width="${Math.round(T*100)/100}" customWidth="1"/>`).join("")}</cols>`:"",c=i.merges?.length?`<mergeCells count="${i.merges.length}">${i.merges.map(([T,x,P,j])=>`<mergeCell ref="${Lt(x)}${T+1}:${Lt(j)}${P+1}"/>`).join("")}</mergeCells>`:"",p=i.autoFilter&&a?`<autoFilter ref="A${i.freezeRows||1}:${Lt(a-1)}${Math.max(1,f)}"/>`:"",b=i.page,S=b?.margins?`<pageMargins left="${(b.margins[3]/25.4).toFixed(3)}" right="${(b.margins[1]/25.4).toFixed(3)}" top="${(b.margins[0]/25.4).toFixed(3)}" bottom="${(b.margins[2]/25.4).toFixed(3)}" header="0" footer="0"/>`:"",M=b?`<pageSetup paperSize="${Za[b.paper??"A4"]??9}" orientation="${b.landscape?"landscape":"portrait"}"${b.fitWidth?` fitToWidth="1" fitToHeight="${b.fitHeight??0}"`:""}/>`:"",$=i.breaks?.length?`<rowBreaks count="${i.breaks.length}" manualBreakCount="${i.breaks.length}">${i.breaks.map(T=>`<brk id="${T}" max="16383" man="1"/>`).join("")}</rowBreaks>`:"",v=b?.fitWidth?'<sheetPr><pageSetUpPr fitToPage="1"/></sheetPr>':"";return it+`<worksheet xmlns="${Qn}" xmlns:r="${Co}">${v}<dimension ref="${d}"/>${g}<sheetFormatPr defaultRowHeight="15"/>${u}<sheetData>${l.join("")}</sheetData>${p}${c}${S}${M}${$}</worksheet>`}),s=[{name:"[Content_Types].xml",data:it+'<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>'+e.map((i,l)=>`<Override PartName="/xl/worksheets/sheet${l+1}.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>`).join("")+'<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/></Types>'},{name:"_rels/.rels",data:it+'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/></Relationships>'},{name:"docProps/core.xml",data:it+`<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:creator>${Dt(t.creator??"FreeReport")}</dc:creator><dcterms:created xsi:type="dcterms:W3CDTF">${new Date().toISOString().slice(0,19)}Z</dcterms:created></cp:coreProperties>`},{name:"xl/workbook.xml",data:it+`<workbook xmlns="${Qn}" xmlns:r="${Co}"><sheets>${r.map((i,l)=>`<sheet name="${Dt(i)}" sheetId="${l+1}" r:id="rId${l+1}"/>`).join("")}</sheets></workbook>`},{name:"xl/_rels/workbook.xml.rels",data:it+`<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">${e.map((i,l)=>`<Relationship Id="rId${l+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet${l+1}.xml"/>`).join("")}<Relationship Id="rId${e.length+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>`},...o.map((i,l)=>({name:`xl/worksheets/sheet${l+1}.xml`,data:i}))];return s.push({name:"xl/styles.xml",data:n.xml()}),on(s)}var Lo=1.9,ei=72/25.4,Je=e=>{if(e)return e.style==="double"?{style:"double",color:e.color}:e.style==="dashed"?{style:"dashed",color:e.color}:e.style==="dotted"?{style:"dotted",color:e.color}:{style:e.width>=.6?"thick":e.width>=.35?"medium":e.width<.12?"hair":"thin",color:e.color}};function Fo(e){if(!(!e||e==="korean"||e==="koreanNumber"||e==="bizNo"||e==="upper"||e==="lower"))return An(e)?e.replace(/dddd/g,"aaaa").replace(/ddd/g,"aaa").replace(/\ba\b|tt/g,"AM/PM").replace(/H/g,"h"):e.replace(/([^"\\#0,.%;()₩$€\-\s])/gu,(t,n,r,o)=>/"/.test(o.slice(0,r).replace(/[^"]/g,"").length%2?'"':"")?t:`"${t}"`).replace(/""/g,"")}function Ao(e,t){let n=[...new Set(e.map(o=>Math.round(o*10)/10))].sort((o,s)=>o-s),r=[];for(let o of n)(!r.length||o-r[r.length-1]>t)&&r.push(o);return r}var He=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n};function It(e,t,n={}){let r=_e(t.page),o=u=>u.source?.band!=="watermark",s=[];for(let u of e.pages)for(let c of u.items)o(c)&&(c.kind==="text"||c.kind==="box"?s.push(c.x,c.x+c.w):c.kind==="line"&&Math.abs(c.x1-c.x2)<.01&&s.push(c.x1));let i=Ao(s.length?s:[r.margins[3],r.width-r.margins[1]],1.2),l=i.slice(1).map((u,c)=>Math.max(.5,(u-i[c])/Lo)),a=u=>({name:u,rows:[],widths:l,heights:[],merges:[],breaks:[],showGrid:!1,page:{paper:typeof t.page?.size=="string"?t.page.size:"A4",landscape:t.page?.orientation==="landscape",margins:r.margins,fitWidth:!0,fitHeight:n.onePerPage?1:e.pages.length}}),f=[],d=a(n.sheetName??t.name??"Report");f.push(d);let g=0;return e.pages.forEach((u,c)=>{n.onePerPage&&c>0&&(d=a(`${c+1}`),f.push(d),g=0);let p=u.items.filter(o),b=[];for(let x of p)x.kind==="text"||x.kind==="box"?b.push(x.y,x.y+x.h):x.kind==="line"&&Math.abs(x.y1-x.y2)<.01&&b.push(x.y1);if(!b.length)return;let S=Ao(b,.8);c>0&&!n.onePerPage&&d.breaks.push(g),S.slice(1).forEach((x,P)=>{d.heights[g+P]=Math.max(2,(x-S[P])*ei)});let M=(x,P)=>{var F,Z;let j=(F=d.rows)[Z=g+x]??(F[Z]=[]);return j[P]??(j[P]={v:null,s:{}})},$=(x,P,j,F)=>{let Z=He(i,x),te=Math.max(Z+1,He(i,x+j)),U=He(S,P),re=Math.max(U+1,He(S,P+F));return{r1:U,c1:Z,r2:re-1,c2:te-1}},v=(x,P)=>{for(let j=x.c1;j<=x.c2;j++){if(P.top){let F=M(x.r1,j).s;F.border={...F.border,top:Je(P.top)}}if(P.bottom){let F=M(x.r2,j).s;F.border={...F.border,bottom:Je(P.bottom)}}}for(let j=x.r1;j<=x.r2;j++){if(P.left){let F=M(j,x.c1).s;F.border={...F.border,left:Je(P.left)}}if(P.right){let F=M(j,x.c2).s;F.border={...F.border,right:Je(P.right)}}}},T=new Set;for(let x of p)if(x.kind==="box"){let P=$(x.x,x.y,x.w,x.h);if(x.fill)for(let j=P.r1;j<=P.r2;j++)for(let F=P.c1;F<=P.c2;F++)M(j,F).s.fill=x.fill;if(x.border&&v(P,x.border),x.stroke&&x.stroke.width>0){let j={width:x.stroke.width,style:x.stroke.dash??"solid",color:x.stroke.color};v(P,{top:j,right:j,bottom:j,left:j})}}else if(x.kind==="line"){let P={width:x.width,style:x.dash??"solid",color:x.color};if(Math.abs(x.y1-x.y2)<.01){let j=He(S,x.y1),F=He(i,Math.min(x.x1,x.x2)),Z=He(i,Math.max(x.x1,x.x2));for(let te=F;te<Z;te++)if(j<S.length-1){let U=M(j,te).s;U.border={...U.border,top:Je(P)}}else{let U=M(j-1,te).s;U.border={...U.border,bottom:Je(P)}}}else if(Math.abs(x.x1-x.x2)<.01){let j=He(i,x.x1),F=He(S,Math.min(x.y1,x.y2)),Z=He(S,Math.max(x.y1,x.y2));for(let te=F;te<Z;te++)if(j<i.length-1){let U=M(te,j).s;U.border={...U.border,left:Je(P)}}else{let U=M(te,j-1).s;U.border={...U.border,right:Je(P)}}}}else if(x.kind==="text"){let P=$(x.x,x.y,x.w,x.h),j=`${P.r1}:${P.c1}`,F=M(P.r1,P.c1),Z=x.source?.value,te=Fo(x.source?.format),U=typeof Z=="number"&&Number.isFinite(Z)&&x.source?.format!=="korean"&&x.source?.format!=="koreanNumber";T.has(j)&&F.v!==null?F.v=`${F.v}
|
|
15
|
+
${x.text}`:F.v=U||Z instanceof Date?Z:x.text,T.add(j),Object.assign(F.s,{font:{size:Math.round(x.font.size*2)/2,bold:x.font.bold||void 0,italic:x.font.italic||void 0,underline:x.underline,strike:x.strike,color:x.color},align:x.align==="justify"?"left":x.align,valign:x.valign==="middle"?"center":x.valign,wrap:x.lines.length>1||void 0,fmt:U||Z instanceof Date?te:void 0}),(P.r2>P.r1||P.c2>P.c1)&&(d.merges.some(([be,V,fe,me])=>!(g+P.r2<be||g+P.r1>fe||P.c2<V||P.c1>me))||d.merges.push([g+P.r1,P.c1,g+P.r2,P.c2]))}g+=S.length-1}),sn(f)}function Bt(e,t,n={}){let{rows:r,root:o}=Ne(e,t),s=at(e,n.params),l=[...e.bands.detail?.elements.filter(p=>p.type==="field"||p.type==="text")??[]].sort((p,b)=>p.y-b.y||p.x-b.x),a=e.bands.columnHeader?.elements.filter(p=>p.type==="text")??[],f=p=>{if(p.name)return p.name;let b=p.x+p.w/2,S=a.find(M=>M.x<=b&&M.x+M.w>=b);return S?S.text.replace(/\{[^}]*\}/g,"").trim():p.type==="field"?p.expr:p.text},d=l.map(p=>({v:f(p),s:{font:{bold:!0},fill:"F2F4F7",border:{bottom:{style:"thin"}},align:"center"}})),g=[d],u={rows:r,allRows:r,params:s,data:o,vars:{now:new Date}};r.forEach((p,b)=>{let S={...u,row:p,vars:{...u.vars,rowNum:b+1,rowIndex:b+1}};g.push(l.map(M=>{if(M.type==="text")return{v:Ue(M.text,S)};let $=Me(M.expr,S);return typeof $=="number"||$ instanceof Date?{v:$,s:{fmt:Fo(M.format)}}:{v:$==null?"":ve($,M.format)}}))});let c=l.map((p,b)=>Math.min(60,Math.max(6,String(d[b].v??"").length*2,p.w/Lo)));return sn([{name:n.sheetName??e.name??"Data",rows:g,widths:c,freezeRows:1,autoFilter:!0}])}function tr(e,t,n={}){let{rows:r,root:o}=Ne(e,t),s=at(e,n.params),i=(e.bands.detail?.elements.filter(d=>d.type==="field")??[]).sort((d,g)=>d.y-g.y||d.x-g.x),l=(d,g=!1)=>{let u=!g&&/^[=+\-@\t\r]/.test(d)?`'${d}`:d;return/[",\n\r]/.test(u)?`"${u.replace(/"/g,'""')}"`:u},a=[i.map(d=>l(d.name??d.expr)).join(",")],f={rows:r,allRows:r,params:s,data:o,vars:{now:new Date}};return r.forEach((d,g)=>{let u={...f,row:d,vars:{...f.vars,rowNum:g+1}};a.push(i.map(c=>{let p=Me(c.expr,u);return typeof p=="number"?l(String(p),!0):l(ve(p,c.format))}).join(","))}),"\uFEFF"+a.join(`\r
|
|
16
|
+
`)}var De=e=>Math.round(e*7200/25.4),ti=25.4/72,Do=e=>e.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),or=e=>{let t=nn(e);return t&&t[3]>0?"#"+t.slice(0,3).map(n=>Math.round(n).toString(16).padStart(2,"0")).join("").toUpperCase():null},nr='xmlns:ha="http://www.hancom.co.kr/hwpml/2011/app" xmlns:hp="http://www.hancom.co.kr/hwpml/2011/paragraph" xmlns:hp10="http://www.hancom.co.kr/hwpml/2016/paragraph" xmlns:hs="http://www.hancom.co.kr/hwpml/2011/section" xmlns:hc="http://www.hancom.co.kr/hwpml/2011/core" xmlns:hh="http://www.hancom.co.kr/hwpml/2011/head" xmlns:hhs="http://www.hancom.co.kr/hwpml/2011/history" xmlns:hm="http://www.hancom.co.kr/hwpml/2011/master-page" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf/" xmlns:ooxmlchart="http://www.hancom.co.kr/hwpml/2016/ooxmlchart" xmlns:hwpunitchar="http://www.hancom.co.kr/hwpml/2016/HwpUnitChar" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"',lt='<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>',Io=["\uB9D1\uC740 \uACE0\uB515","\uB098\uB214\uACE0\uB515"],ni=e=>/nanum\s*gothic|나눔고딕/i.test(e)?1:0,sr=["HANGUL","LATIN","HANJA","JAPANESE","OTHER","SYMBOL","USER"],ri=["0.1","0.12","0.15","0.2","0.25","0.3","0.4","0.5","0.6","0.7","1.0","1.5","2.0","3.0","4.0","5.0"],Nt=class{constructor(t){this.first=t;this.list=[];this.ids=new Map}id(t){let n=JSON.stringify(t),r=this.ids.get(n);return r===void 0&&(r=this.first+this.list.length,this.ids.set(n,r),this.list.push(t)),r}};function an(e,t){if(!t||t.width<=0)return`<hh:${e} type="NONE" width="0.1 mm" color="#000000"/>`;let n=t.style==="dashed"?"DASH":t.style==="dotted"?"DOT":t.style==="double"?"DOUBLE_SLIM":"SOLID",r=ri.reduce((o,s)=>Math.abs(+s-t.width)<Math.abs(+o-t.width)?s:o);return`<hh:${e} type="${n}" width="${r} mm" color="${or(t.color)??"#000000"}"/>`}function rr(e,t){let n=t.fill?`<hc:fillBrush><hc:winBrush faceColor="${t.fill}" hatchColor="#000000" alpha="0"/></hc:fillBrush>`:"";return`<hh:borderFill id="${e}" threeD="0" shadow="0" centerLine="NONE" breakCellSeparateLine="0"><hh:slash type="NONE" Crooked="0" isCounter="0"/><hh:backSlash type="NONE" Crooked="0" isCounter="0"/>`+an("leftBorder",t.left)+an("rightBorder",t.right)+an("topBorder",t.top)+an("bottomBorder",t.bottom)+`<hh:diagonal type="SOLID" width="0.1 mm" color="#000000"/>${n}</hh:borderFill>`}function oi(e,t){let n=r=>sr.map(o=>`${o.toLowerCase()}="${r}"`).join(" ");return`<hh:charPr id="${e}" height="${t.size}" textColor="${t.color}" shadeColor="none" useFontSpace="0" useKerning="0" symMark="NONE" borderFillIDRef="2"><hh:fontRef ${n(t.font)}/><hh:ratio ${n(100)}/><hh:spacing ${n(t.spacing)}/><hh:relSz ${n(100)}/><hh:offset ${n(0)}/>`+(t.italic?"<hh:italic/>":"")+(t.bold?"<hh:bold/>":"")+`<hh:underline type="${t.underline?"BOTTOM":"NONE"}" shape="SOLID" color="${t.color}"/><hh:strikeout shape="${t.strike?"SOLID":"NONE"}" color="${t.color}"/><hh:outline type="NONE"/><hh:shadow type="NONE" color="#B2B2B2" offsetX="10" offsetY="10"/></hh:charPr>`}function si(e,t){return`<hh:paraPr id="${e}" tabPrIDRef="0" condense="0" fontLineHeight="0" snapToGrid="0" suppressLineNumbers="0" checked="0"><hh:align horizontal="${t.align}" vertical="BASELINE"/><hh:heading type="NONE" idRef="0" level="0"/><hh:breakSetting breakLatinWord="KEEP_WORD" breakNonLatinWord="BREAK_WORD" widowOrphan="0" keepWithNext="0" keepLines="0" pageBreakBefore="0" lineWrap="SQUEEZE"/><hh:autoSpacing eAsianEng="0" eAsianNum="0"/><hh:margin><hc:intent value="0" unit="HWPUNIT"/><hc:left value="0" unit="HWPUNIT"/><hc:right value="0" unit="HWPUNIT"/><hc:prev value="0" unit="HWPUNIT"/><hc:next value="0" unit="HWPUNIT"/></hh:margin><hh:lineSpacing type="PERCENT" value="${t.spacing}" unit="HWPUNIT"/><hh:border borderFillIDRef="2" offsetLeft="0" offsetRight="0" offsetTop="0" offsetBottom="0" connect="0" ignoreMargin="0"/></hh:paraPr>`}function Bo(e,t){let n=[...new Set(e.map(o=>Math.round(o*10)/10))].sort((o,s)=>o-s),r=[];for(let o of n)(!r.length||o-r[r.length-1]>t)&&r.push(o);return r}var Ze=(e,t)=>{let n=0;for(let r=1;r<e.length;r++)Math.abs(e[r]-t)<Math.abs(e[n]-t)&&(n=r);return n};function ai(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(e.length>24&&e[0]===137&&e[1]===80)return[t.getUint32(16),t.getUint32(20)];if(e.length>4&&e[0]===255&&e[1]===216)for(let n=2;n+9<e.length;){if(e[n]!==255)return null;let r=e[n+1],o=t.getUint16(n+2);if(r>=192&&r<=207&&r!==196&&r!==200&&r!==204)return[t.getUint16(n+7),t.getUint16(n+5)];n+=2+o}return null}function ii(e){let t=/^data:image\/(png|jpe?g);base64,(.*)$/is.exec(e.trim());if(!t||typeof atob!="function")return null;try{let n=atob(t[2].replace(/\s+/g,"")),r=new Uint8Array(n.length);for(let o=0;o<n.length;o++)r[o]=n.charCodeAt(o);return{bytes:r,ext:t[1].toLowerCase()==="png"?"png":"jpg"}}catch{return null}}function ar(e,t){let n=_e(t.page),r=e.width||n.width,o=e.height||n.height,s=new Nt(0),i=new Nt(0),l=new Nt(3),a={top:void 0,right:void 0,bottom:void 0,left:void 0,fill:null};s.id({font:0,size:1e3,color:"#000000",bold:!1,italic:!1,underline:!1,strike:!1,spacing:0});let f=s.id({font:0,size:100,color:"#000000",bold:!1,italic:!1,underline:!1,strike:!1,spacing:0});i.id({align:"LEFT",spacing:160});let d=i.id({align:"LEFT",spacing:100}),g=l.id(a),u=[],c=new Map,p=1e3,b=0,S=[],M=()=>`<hp:p id="${b++}" paraPrIDRef="${d}" styleIDRef="0" pageBreak="0" columnBreak="0" merged="0"><hp:run charPrIDRef="${f}"/></hp:p>`,$=X=>X.flatMap(B=>{let O=B.font.size*ti,Q=B.lines.length>1?(B.lines[B.lines.length-1].y-B.lines[0].y)/(B.lines.length-1):O*1.25,oe=s.id({font:ni(B.font.family),size:Math.max(100,Math.round(B.font.size*100)),color:or(B.color)??"#000000",bold:B.font.bold,italic:B.font.italic,underline:!!B.underline,strike:!!B.strike,spacing:Math.max(-50,Math.min(50,Math.round((B.letterSpacing??0)/O*100)))}),pe=i.id({align:{left:"LEFT",center:"CENTER",right:"RIGHT",justify:"JUSTIFY"}[B.align]??"LEFT",spacing:Math.max(80,Math.min(300,Math.round(Q/O*100)))});return B.lines.filter((Y,J)=>J===0||Y.y<=B.y+B.h+.5).map(Y=>`<hp:p id="${b++}" paraPrIDRef="${pe}" styleIDRef="0" pageBreak="0" columnBreak="0" merged="0"><hp:run charPrIDRef="${oe}"><hp:t>${Do(Y.text.replace(/\t/g," "))}</hp:t></hp:run></hp:p>`)}),v=(X,B)=>{let O=c.get(X.src);if(!O){let E=ii(X.src),N=E&&ai(E.bytes);if(!E||!N||!N[0]||!N[1])return"";O={id:`image${u.length+1}`,px:N},u.push({name:`${O.id}.${E.ext}`,bytes:E.bytes}),c.set(X.src,O)}let{x:Q,y:oe,w:pe,h:we}=X;if(X.fit==="contain"){let E=Math.min(pe/O.px[0],we/O.px[1]),N=O.px[0]*E,A=O.px[1]*E;Q+=(pe-N)/2,oe+=(we-A)/2,pe=N,we=A}let Y=De(pe),J=De(we),le=O.px[0]*75,de=O.px[1]*75,ue=p++,ae=(E,N)=>`e1="${E}" e2="0" e3="0" e4="0" e5="${N}" e6="0"`;return`<hp:pic id="${ue}" zOrder="${B}" numberingType="PICTURE" textWrap="IN_FRONT_OF_TEXT" textFlow="BOTH_SIDES" lock="0" dropcapstyle="None" href="" groupLevel="0" instid="${ue}" reverse="0"><hp:offset x="0" y="0"/><hp:orgSz width="${Y}" height="${J}"/><hp:curSz width="${Y}" height="${J}"/><hp:flip horizontal="0" vertical="0"/><hp:rotationInfo angle="0" centerX="${Y>>1}" centerY="${J>>1}" rotateimage="1"/><hp:renderingInfo><hc:transMatrix ${ae(1,1)}/><hc:scaMatrix ${ae(1,1)}/><hc:rotMatrix ${ae(1,1)}/></hp:renderingInfo><hp:imgRect><hc:pt0 x="0" y="0"/><hc:pt1 x="${Y}" y="0"/><hc:pt2 x="${Y}" y="${J}"/><hc:pt3 x="0" y="${J}"/></hp:imgRect><hp:imgClip left="0" right="${le}" top="0" bottom="${de}"/><hp:inMargin left="0" right="0" top="0" bottom="0"/><hp:imgDim dimwidth="${le}" dimheight="${de}"/><hc:img binaryItemIDRef="${O.id}" bright="0" contrast="0" effect="REAL_PIC" alpha="0"/><hp:sz width="${Y}" widthRelTo="ABSOLUTE" height="${J}" heightRelTo="ABSOLUTE" protect="0"/><hp:pos treatAsChar="0" affectLSpacing="0" flowWithText="0" allowOverlap="1" holdAnchorAndSO="0" vertRelTo="PAPER" horzRelTo="PAPER" vertAlign="TOP" horzAlign="LEFT" vertOffset="${De(oe)}" horzOffset="${De(Q)}"/><hp:outMargin left="0" right="0" top="0" bottom="0"/></hp:pic>`},T=X=>{let B=[],O=[];for(let h of X)h.kind==="text"||h.kind==="box"&&(h.fill||h.border||h.stroke)?(B.push(h.x,h.x+h.w),O.push(h.y,h.y+h.h)):h.kind==="line"&&Math.abs(h.y1-h.y2)<.01?(O.push(h.y1),B.push(h.x1,h.x2)):h.kind==="line"&&Math.abs(h.x1-h.x2)<.01&&(B.push(h.x1),O.push(h.y1,h.y2));let Q=Bo(B,1.2),oe=Bo(O,.8);if(Q.length<2||oe.length<2)return"";let pe=X.filter(h=>h.kind==="text"&&!h.rotate&&h.text.trim()!==""),we=[];for(let h=0;h<200;h++){let D=oe.length-1,q=Q.length-1,m=Array.from({length:D},()=>Array(q).fill(null));we=[];for(let w of pe){let R=Math.min(Ze(Q,w.x),q-1),L=Math.min(Ze(oe,w.y),D-1),I=Math.max(R+1,Ze(Q,w.x+w.w)),G=Math.max(L+1,Ze(oe,w.y+w.h)),se=m[L][R];if(se){se.texts.push(w);continue}let z=!0;for(let he=L;he<G&&z;he++)for(let ke=R;ke<I;ke++)if(m[he][ke]){z=!1;break}let ie=z?{r:L,c:R,rs:G-L,cs:I-R,texts:[w]}:{r:L,c:R,rs:1,cs:1,texts:[w]};for(let he=ie.r;he<ie.r+ie.rs;he++)for(let ke=ie.c;ke<ie.c+ie.cs;ke++)m[he][ke]=ie;we.push(ie)}for(let w=0;w<D;w++)for(let R=0;R<q;R++)if(!m[w][R]){let L={r:w,c:R,rs:1,cs:1,texts:[]};m[w][R]=L,we.push(L)}let y=oe.slice(1,-1).findIndex((w,R)=>!we.some(L=>L.r===R+1)),k=Q.slice(1,-1).findIndex((w,R)=>!we.some(L=>L.c===R+1));if(y<0&&k<0)break;y>=0&&(oe=oe.filter((w,R)=>R!==y+1)),k>=0&&(Q=Q.filter((w,R)=>R!==k+1))}let Y=oe.length-1,J=Q.length-1,le=Array.from({length:Y+1},()=>Array(J).fill(void 0)),de=Array.from({length:Y},()=>Array(J+1).fill(void 0)),ue=Array.from({length:Y},()=>Array(J).fill(null)),ae=(h,D,q)=>{let m=Ze(q,h);return[m,Math.max(m,Ze(q,D))]};for(let h of X)if(h.kind==="box"){let[D,q]=ae(h.x,h.x+h.w,Q),[m,y]=ae(h.y,h.y+h.h,oe);if(q===D||y===m)continue;let k=or(h.fill);if(k&&(h.opacity??1)>.05)for(let L=m;L<y;L++)for(let I=D;I<q;I++)ue[L][I]=k;let w=h.stroke&&h.stroke.width>0?{width:h.stroke.width,style:h.stroke.dash??"solid",color:h.stroke.color}:void 0,R={top:h.border?.top??w,bottom:h.border?.bottom??w,left:h.border?.left??w,right:h.border?.right??w};for(let L=D;L<q;L++)R.top&&(le[m][L]=R.top),R.bottom&&(le[y][L]=R.bottom);for(let L=m;L<y;L++)R.left&&(de[L][D]=R.left),R.right&&(de[L][q]=R.right)}else if(h.kind==="line"){let D={width:h.width,style:h.dash??"solid",color:h.color};if(Math.abs(h.y1-h.y2)<.01){let q=Ze(oe,h.y1),[m,y]=ae(Math.min(h.x1,h.x2),Math.max(h.x1,h.x2),Q);for(let k=m;k<y;k++)le[q][k]=D}else if(Math.abs(h.x1-h.x2)<.01){let q=Ze(Q,h.x1),[m,y]=ae(Math.min(h.y1,h.y2),Math.max(h.y1,h.y2),oe);for(let k=m;k<y;k++)de[k][q]=D}}let E=Q.map(De),N=oe.map(De),A=h=>h.find(D=>D!==void 0),C={top:"TOP",middle:"CENTER",bottom:"BOTTOM"},ne=Array.from({length:Y},()=>[]);for(let h of we.sort((D,q)=>D.r-q.r||D.c-q.c)){let D=l.id({top:A(le[h.r].slice(h.c,h.c+h.cs)),bottom:A(le[h.r+h.rs].slice(h.c,h.c+h.cs)),left:A(de.slice(h.r,h.r+h.rs).map(L=>L[h.c])),right:A(de.slice(h.r,h.r+h.rs).map(L=>L[h.c+h.cs])),fill:ue[h.r][h.c]}),q=E[h.c+h.cs]-E[h.c],m=N[h.r+h.rs]-N[h.r],y=0,k=0,w=h.texts[0];if(w?.lines.length){let L=Q[h.c],I=Q[h.c+h.cs],G=Math.min(...w.lines.map(ke=>ke.x)),se=Math.max(...w.lines.map(ke=>ke.x+ke.width)),z=ke=>Math.max(0,Math.min(5,ke)),ie=z(G-L),he=z(I-se);w.align==="right"?(k=he,y=Math.min(ie,.5)):w.align==="center"?y=k=Math.min(ie,he,1):(y=ie,k=Math.min(he,.5))}let R=h.texts.length?$(h.texts).join(""):M();h.texts.length&&S.push(h.texts.map(L=>L.text).join(" ")),ne[h.r].push(`<hp:tc name="" header="0" hasMargin="1" protect="0" editable="0" dirty="0" borderFillIDRef="${D}"><hp:subList id="" textDirection="HORIZONTAL" lineWrap="BREAK" vertAlign="${w?C[w.valign]??"TOP":"CENTER"}" linkListIDRef="0" linkListNextIDRef="0" textWidth="0" textHeight="0" hasTextRef="0" hasNumRef="0">${R}</hp:subList><hp:cellAddr colAddr="${h.c}" rowAddr="${h.r}"/><hp:cellSpan colSpan="${h.cs}" rowSpan="${h.rs}"/><hp:cellSz width="${q}" height="${m}"/><hp:cellMargin left="${De(y)}" right="${De(k)}" top="0" bottom="0"/></hp:tc>`)}let H=E[J]-E[0],K=N[Y]-N[0];return`<hp:tbl id="${p++}" zOrder="0" numberingType="TABLE" textWrap="IN_FRONT_OF_TEXT" textFlow="BOTH_SIDES" lock="0" dropcapstyle="None" pageBreak="NONE" repeatHeader="0" rowCnt="${Y}" colCnt="${J}" cellSpacing="0" borderFillIDRef="${g}" noAdjust="1"><hp:sz width="${H}" widthRelTo="ABSOLUTE" height="${K}" heightRelTo="ABSOLUTE" protect="0"/><hp:pos treatAsChar="0" affectLSpacing="0" flowWithText="0" allowOverlap="1" holdAnchorAndSO="0" vertRelTo="PAPER" horzRelTo="PAPER" vertAlign="TOP" horzAlign="LEFT" vertOffset="${N[0]}" horzOffset="${E[0]}"/><hp:outMargin left="0" right="0" top="0" bottom="0"/><hp:inMargin left="0" right="0" top="0" bottom="0"/>`+ne.map(h=>`<hp:tr>${h.join("")}</hp:tr>`).join("")+"</hp:tbl>"},[x,P,j,F]=n.margins.map(De),Z=`<hp:secPr id="" textDirection="HORIZONTAL" spaceColumns="1134" tabStop="8000" tabStopVal="4000" tabStopUnit="HWPUNIT" outlineShapeIDRef="1" memoShapeIDRef="0" textVerticalWidthHead="0" masterPageCnt="0"><hp:grid lineGrid="0" charGrid="0" wonggojiFormat="0"/><hp:startNum pageStartsOn="BOTH" page="0" pic="0" tbl="0" equation="0"/><hp:visibility hideFirstHeader="0" hideFirstFooter="0" hideFirstMasterPage="0" border="SHOW_ALL" fill="SHOW_ALL" hideFirstPageNum="0" hideFirstEmptyLine="0" showLineNumber="0"/><hp:lineNumberShape restartType="0" countBy="0" distance="0" startNumber="0"/><hp:pagePr landscape="${r>o?"NARROWLY":"WIDELY"}" width="${De(Math.min(r,o))}" height="${De(Math.max(r,o))}" gutterType="LEFT_ONLY"><hp:margin header="0" footer="0" gutter="0" left="${F}" right="${P}" top="${x}" bottom="${j}"/></hp:pagePr><hp:footNotePr><hp:autoNumFormat type="DIGIT" userChar="" prefixChar="" suffixChar=")" supscript="0"/><hp:noteLine length="-1" type="SOLID" width="0.12 mm" color="#000000"/><hp:noteSpacing betweenNotes="283" belowLine="567" aboveLine="850"/><hp:numbering type="CONTINUOUS" newNum="1"/><hp:placement place="EACH_COLUMN" beneathText="0"/></hp:footNotePr><hp:endNotePr><hp:autoNumFormat type="DIGIT" userChar="" prefixChar="" suffixChar=")" supscript="0"/><hp:noteLine length="14692344" type="SOLID" width="0.12 mm" color="#000000"/><hp:noteSpacing betweenNotes="0" belowLine="567" aboveLine="850"/><hp:numbering type="CONTINUOUS" newNum="1"/><hp:placement place="END_OF_DOCUMENT" beneathText="0"/></hp:endNotePr>`+["BOTH","EVEN","ODD"].map(X=>`<hp:pageBorderFill type="${X}" borderFillIDRef="1" textBorder="PAPER" headerInside="0" footerInside="0" fillArea="PAPER"><hp:offset left="1417" right="1417" top="1417" bottom="1417"/></hp:pageBorderFill>`).join("")+'</hp:secPr><hp:ctrl><hp:colPr id="" type="NEWSPAPER" layout="LEFT" colCount="1" sameSz="1" sameGap="0"/></hp:ctrl>',U=(e.pages.length?e.pages:[{items:[]}]).map((X,B)=>{let O=X.items.filter(oe=>oe.source?.band!=="watermark"),Q=T(O)+O.filter(oe=>oe.kind==="image"&&!oe.emboss).map((oe,pe)=>v(oe,pe+1)).join("");return`<hp:p id="${b++}" paraPrIDRef="${d}" styleIDRef="0" pageBreak="${B>0?1:0}" columnBreak="0" merged="0"><hp:run charPrIDRef="${f}">${B===0?Z:""}${Q}<hp:t/></hp:run></hp:p>`}).join(""),re=`${lt}<hs:sec ${nr}>${U}</hs:sec>`,be=sr.map(X=>`<hh:fontface lang="${X}" fontCnt="${Io.length}">`+Io.map((B,O)=>`<hh:font id="${O}" face="${B}" type="TTF" isEmbedded="0"><hh:typeInfo familyType="FCAT_GOTHIC" weight="6" proportion="4" contrast="0" strokeVariation="1" armStyle="1" letterform="1" midline="1" xHeight="1"/></hh:font>`).join("")+"</hh:fontface>").join(""),V=rr(1,a)+rr(2,a).replace("</hh:borderFill>",'<hc:fillBrush><hc:winBrush faceColor="none" hatchColor="#FF000000" alpha="0"/></hc:fillBrush></hh:borderFill>'),fe=`${lt}<hh:head ${nr} version="1.4" secCnt="1"><hh:beginNum page="1" footnote="1" endnote="1" pic="1" tbl="1" equation="1"/><hh:refList><hh:fontfaces itemCnt="${sr.length}">${be}</hh:fontfaces><hh:borderFills itemCnt="${l.list.length+2}">${V}${l.list.map((X,B)=>rr(B+3,X)).join("")}</hh:borderFills><hh:charProperties itemCnt="${s.list.length}">${s.list.map((X,B)=>oi(B,X)).join("")}</hh:charProperties><hh:tabProperties itemCnt="1"><hh:tabPr id="0" autoTabLeft="0" autoTabRight="0"/></hh:tabProperties><hh:numberings itemCnt="1"><hh:numbering id="1" start="0">`+["^1.","^2.","^3)","^4)","(^5)","(^6)","^7"].map((X,B)=>`<hh:paraHead start="1" level="${B+1}" align="LEFT" useInstWidth="1" autoIndent="1" widthAdjust="0" textOffsetType="PERCENT" textOffset="50" numFormat="${B===6?"CIRCLED_DIGIT":B%2?"HANGUL_SYLLABLE":"DIGIT"}" charPrIDRef="4294967295" checkable="${B===6?1:0}">${X}</hh:paraHead>`).join("")+`</hh:numbering></hh:numberings><hh:paraProperties itemCnt="${i.list.length}">${i.list.map((X,B)=>si(B,X)).join("")}</hh:paraProperties><hh:styles itemCnt="1"><hh:style id="0" type="PARA" name="\uBC14\uD0D5\uAE00" engName="Normal" paraPrIDRef="0" charPrIDRef="0" nextStyleIDRef="0" langID="1042" lockForm="0"/></hh:styles></hh:refList><hh:compatibleDocument targetProgram="HWP201X"><hh:layoutCompatibility/></hh:compatibleDocument><hh:docOption><hh:linkinfo path="" pageInherit="0" footnoteInherit="0"/></hh:docOption><hh:trackchageConfig flags="56"/></hh:head>`,me=new Date().toISOString().replace(/\.\d+Z$/,"Z"),_=Do(t.name??""),ce=`${lt}<opf:package ${nr} version="" unique-identifier="" id=""><opf:metadata><opf:title>${_}</opf:title><opf:language>ko</opf:language><opf:meta name="creator" content="text">FreeReport</opf:meta><opf:meta name="CreatedDate" content="text">${me}</opf:meta><opf:meta name="ModifiedDate" content="text">${me}</opf:meta></opf:metadata><opf:manifest><opf:item id="header" href="Contents/header.xml" media-type="application/xml"/>`+u.map(X=>`<opf:item id="${X.name.replace(/\..*$/,"")}" href="BinData/${X.name}" media-type="image/${X.name.endsWith("png")?"png":"jpg"}" isEmbeded="1"/>`).join("")+'<opf:item id="section0" href="Contents/section0.xml" media-type="application/xml"/><opf:item id="settings" href="settings.xml" media-type="application/xml"/></opf:manifest><opf:spine><opf:itemref idref="header" linear="yes"/><opf:itemref idref="section0" linear="yes"/></opf:spine></opf:package>';return on([{name:"mimetype",data:"application/hwp+zip"},{name:"version.xml",data:`${lt}<hv:HCFVersion xmlns:hv="http://www.hancom.co.kr/hwpml/2011/version" tagetApplication="WORDPROCESSOR" major="5" minor="0" micro="5" buildNumber="0" os="1" xmlVersion="1.4" application="FreeReport" appVersion="1.0"/>`},{name:"Contents/header.xml",data:fe},{name:"Contents/section0.xml",data:re},{name:"Preview/PrvText.txt",data:S.join(`\r
|
|
17
|
+
`).slice(0,1024)},{name:"settings.xml",data:`${lt}<ha:HWPApplicationSetting xmlns:ha="http://www.hancom.co.kr/hwpml/2011/app" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"><ha:CaretPosition listIDRef="0" paraIDRef="0" pos="0"/></ha:HWPApplicationSetting>`},...u.map(X=>({name:`BinData/${X.name}`,data:X.bytes})),{name:"META-INF/container.xml",data:`${lt}<ocf:container xmlns:ocf="urn:oasis:names:tc:opendocument:xmlns:container" xmlns:hpf="http://www.hancom.co.kr/schema/2011/hpf"><ocf:rootfiles><ocf:rootfile full-path="Contents/content.hpf" media-type="application/hwpml-package+xml"/><ocf:rootfile full-path="Preview/PrvText.txt" media-type="text/plain"/></ocf:rootfiles></ocf:container>`},{name:"Contents/content.hpf",data:ce},{name:"META-INF/manifest.xml",data:`${lt}<odf:manifest xmlns:odf="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"/>`}])}var ir=(e,t)=>String.fromCharCode(e[t],e[t+1],e[t+2],e[t+3]);function Ht(e){if(e.length<12)throw new Error("FreeReport PDF: font data is too short to be a TrueType font");let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=ir(e,0);if(n==="OTTO")throw new Error("FreeReport PDF: CFF-based OpenType (.otf) fonts are not supported; a TrueType .ttf font is required");if(n==="wOFF"||n==="wOF2")throw new Error("FreeReport PDF: WOFF/WOFF2 fonts are not supported; a TrueType .ttf font is required");if(n==="ttcf")throw new Error("FreeReport PDF: TrueType collections (.ttc) are not supported; a single .ttf font is required");if(t.getUint32(0)!==65536&&n!=="true")throw new Error("FreeReport PDF: unrecognised font format; a TrueType .ttf font is required");let r=new Map,o=t.getUint16(4);for(let j=0;j<o;j++){let F=12+j*16;r.set(ir(e,F),{offset:t.getUint32(F+8),length:t.getUint32(F+12)})}let s=j=>{let F=r.get(j);if(!F)throw new Error(`FreeReport PDF: font has no '${j}' table`+(j==="glyf"?" (only TrueType outlines are supported)":""));return F},i=s("head"),l=s("hhea"),a=s("maxp"),f=s("hmtx");s("loca"),s("glyf");let d=t.getUint16(i.offset+18)||1e3,g=[t.getInt16(i.offset+36),t.getInt16(i.offset+38),t.getInt16(i.offset+40),t.getInt16(i.offset+42)],u=t.getUint16(a.offset+4),c=t.getInt16(l.offset+4),p=t.getInt16(l.offset+6),b=Math.max(1,t.getUint16(l.offset+34)),S=Math.round(c*.7),M=r.get("OS/2");M&&M.length>=78&&(c||(c=t.getInt16(M.offset+68)),p||(p=t.getInt16(M.offset+70)),t.getUint16(M.offset)>=2&&M.length>=90&&(S=t.getInt16(M.offset+88)||S));let $=0,v=!1,T=r.get("post");T&&T.length>=16&&($=t.getInt32(T.offset+4)/65536,v=t.getUint32(T.offset+12)!==0);let x=32|($!==0?64:0)|(v?1:0),P=j=>{(j<0||j>=u)&&(j=0);let F=j<b?j:b-1;return t.getUint16(f.offset+F*4)};return{data:e,unitsPerEm:d,ascent:c,descent:p,capHeight:S,bbox:g,italicAngle:$,numGlyphs:u,flags:x,postscriptName:li(e,t,r.get("name")),glyphId:ci(t,r.get("cmap"),u),advance:P}}function li(e,t,n){let r="FreeReportFont";if(!n)return r;let o=t.getUint16(n.offset+2),s=n.offset+t.getUint16(n.offset+4),i=null;for(let a=0;a<o;a++){let f=n.offset+6+a*12,d=t.getUint16(f);if(t.getUint16(f+6)!==6)continue;let u=t.getUint16(f+8),c=s+t.getUint16(f+10),p="";if(d===3||d===0)for(let b=0;b+1<u;b+=2)p+=String.fromCharCode(t.getUint16(c+b));else for(let b=0;b<u;b++)p+=String.fromCharCode(e[c+b]);if(i=p,d===3)break}return(i||"").replace(/[^\x21-\x7e]|[()<>[\]{}/%#]/g,"")||r}function ci(e,t,n){if(!t)return()=>0;let r=e.getUint16(t.offset+2),o=-1,s=99;for(let b=0;b<r;b++){let S=t.offset+4+b*8,M=e.getUint16(S),$=e.getUint16(S+2),v=t.offset+e.getUint32(S+4),T=e.getUint16(v);if(T!==4&&T!==12)continue;let x=M===3&&$===10?0:M===3&&$===1?1:M===0?2+(T===12?0:1):99;x<s&&(s=x,o=v)}if(o<0)return()=>0;let i=new Map,l=b=>b>0&&b<n?b:0;if(e.getUint16(o)===12){let b=e.getUint32(o+12),S=M=>{let $=0,v=b-1;for(;$<=v;){let T=$+v>>1,x=o+16+T*12,P=e.getUint32(x),j=e.getUint32(x+4);if(M<P)v=T-1;else if(M>j)$=T+1;else return l(e.getUint32(x+8)+M-P)}return 0};return M=>{let $=i.get(M);return $===void 0&&i.set(M,$=S(M)),$}}let a=e.getUint16(o+6),f=a/2,d=o+14,g=d+a+2,u=g+a,c=u+a,p=b=>{if(b>65535)return 0;let S=0,M=f-1;for(;S<=M;){let $=S+M>>1,v=e.getUint16(d+$*2),T=e.getUint16(g+$*2);if(b>v)S=$+1;else if(b<T)M=$-1;else{let x=e.getInt16(u+$*2),P=e.getUint16(c+$*2);if(P===0)return l(b+x&65535);let j=c+$*2+P+(b-T)*2,F=e.getUint16(j);return F===0?0:l(F+x&65535)}}return 0};return b=>{let S=i.get(b);return S===void 0&&i.set(b,S=p(b)),S}}var ui=["OS/2","cvt ","fpgm","glyf","head","hhea","hmtx","loca","maxp","prep"];function fi(e){let t=e.data,n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=new Map;for(let o=0,s=n.getUint16(4);o<s;o++){let i=12+o*16;r.set(ir(t,i),{offset:n.getUint32(i+8),length:n.getUint32(i+12)})}return r}function No(e,t,n){let r=0,o=t+n;for(let s=t;s<o;s+=4){let i=(e[s]<<24|(s+1<o?e[s+1]:0)<<16|(s+2<o?e[s+2]:0)<<8|(s+3<o?e[s+3]:0))>>>0;r=r+i>>>0}return r}function Ho(e,t){let n=e.data,r=new DataView(n.buffer,n.byteOffset,n.byteLength),o=fi(e),s=o.get("head"),i=o.get("loca"),l=o.get("glyf"),a=r.getInt16(s.offset+50)===1,f=e.numGlyphs,d=V=>a?r.getUint32(i.offset+V*4):r.getUint16(i.offset+V*2)*2,g=V=>{let fe=d(V),me=d(V+1);return me>fe?[l.offset+fe,me-fe]:[0,0]},u=new Set([0]),c=[...t].filter(V=>V>=0&&V<f);for(;c.length;){let V=c.pop();if(u.has(V)&&V!==0)continue;u.add(V);let[fe,me]=g(V);if(me<10||r.getInt16(fe)>=0)continue;let _=fe+10;for(;;){let ce=r.getUint16(_),X=r.getUint16(_+2);if(X<f&&!u.has(X)&&c.push(X),_+=4+(ce&1?4:2),ce&8?_+=2:ce&64?_+=4:ce&128&&(_+=8),!(ce&32))break}}let p=0;for(let V of u){let fe=g(V)[1];p+=fe+3&-4}let b=new Uint8Array(p),S=new Uint8Array((f+1)*4),M=new DataView(S.buffer),$=0;for(let V=0;V<f;V++){if(M.setUint32(V*4,$),!u.has(V))continue;let[fe,me]=g(V);b.set(n.subarray(fe,fe+me),$),$+=me+3&-4}M.setUint32(f*4,$);let v=n.slice(s.offset,s.offset+s.length),T=new DataView(v.buffer);T.setUint32(8,0),T.setInt16(50,1);let x=[];for(let V of ui)if(V==="glyf")x.push({tag:V,data:b});else if(V==="loca")x.push({tag:V,data:S});else if(V==="head")x.push({tag:V,data:v});else{let fe=o.get(V);fe&&x.push({tag:V,data:n.subarray(fe.offset,fe.offset+fe.length)})}let P=x.length,j=0;for(;1<<j+1<=P;)j++;let F=(1<<j)*16,Z=12+P*16;for(let V of x)Z+=V.data.length+3&-4;let te=new Uint8Array(Z),U=new DataView(te.buffer);U.setUint32(0,65536),U.setUint16(4,P),U.setUint16(6,F),U.setUint16(8,j),U.setUint16(10,P*16-F);let re=12+P*16,be=0;return x.forEach((V,fe)=>{let me=12+fe*16;for(let _=0;_<4;_++)te[me+_]=V.tag.charCodeAt(_);te.set(V.data,re),U.setUint32(me+4,No(te,re,V.data.length)),U.setUint32(me+8,re),U.setUint32(me+12,V.data.length),V.tag==="head"&&(be=re),re+=V.data.length+3&-4}),U.setUint32(be+8,2981146554-No(te,0,te.length)>>>0),te}function fn(){let e=globalThis.crypto;if(!e||!e.subtle||!e.getRandomValues)throw new Error("FreeReport PDF: encryption needs WebCrypto (crypto.subtle)");return e}function Oe(e){let t=new Uint8Array(e);return fn().getRandomValues(t),t}var Ot=(...e)=>{let t=0;for(let o of e)t+=o.length;let n=new Uint8Array(t),r=0;for(let o of e)n.set(o,r),r+=o.length;return n},cn=e=>e;async function Oo(e,t){return new Uint8Array(await fn().subtle.digest(e,cn(t)))}var qo=new WeakMap;function di(e){let t=qo.get(e);return t||qo.set(e,t=fn().subtle.importKey("raw",cn(e),{name:"AES-CBC"},!1,["encrypt"])),t}async function cr(e,t,n){return new Uint8Array(await fn().subtle.encrypt({name:"AES-CBC",iv:cn(t)},await di(e),cn(n)))}async function lr(e,t,n){return(await cr(e,t,n)).subarray(0,n.length)}async function un(e,t){let n=Oe(16);return Ot(n,await cr(e,n,t))}function zo(e){return new TextEncoder().encode(e.normalize("NFKC")).subarray(0,127)}async function ln(e,t,n){let r=await Oo("SHA-256",Ot(e,t,n));for(let o=0;;o++){let s=Ot(e,r,n),i=new Uint8Array(s.length*64);for(let d=0;d<64;d++)i.set(s,d*s.length);let l=await lr(r.subarray(0,16),r.subarray(16,32),i),a=0;for(let d=0;d<16;d++)a+=l[d];let f=a%3;if(r=await Oo(f===0?"SHA-256":f===1?"SHA-384":"SHA-512",l),o>=63&&l[l.length-1]<=o+1-32)break}return r.subarray(0,32)}function pi(e={}){let t=r=>r!==!1,n=4294963392;return t(e.print)&&(n|=4),t(e.modify)&&(n|=8),t(e.copy)&&(n|=16),t(e.annotate)&&(n|=32),t(e.fillForms)&&(n|=256),t(e.extract)&&(n|=512),t(e.assemble)&&(n|=1024),t(e.printHighQuality)&&(n|=2048),n|0}var ct=e=>{let t="";for(let n of e)t+=n.toString(16).padStart(2,"0");return t};async function Go(e){let t=Oe(32),n=new Uint8Array(16),r=zo(e.userPassword??""),o=e.ownerPassword?zo(e.ownerPassword):Oe(32).map(M=>33+M%94),s=Oe(8),i=Oe(8),l=Ot(await ln(r,s,new Uint8Array(0)),s,i),a=await lr(await ln(r,i,new Uint8Array(0)),n,t),f=Oe(8),d=Oe(8),g=Ot(await ln(o,f,l),f,d),u=await lr(await ln(o,d,l),n,t),c=pi(e.permissions),p=new Uint8Array(16);p[0]=c&255,p[1]=c>>>8&255,p[2]=c>>>16&255,p[3]=c>>>24&255,p.fill(255,4,8),p.set([84,97,100,98],8),p.set(Oe(4),12);let b=(await cr(t,n,p)).subarray(0,16),S=`<< /Filter /Standard /V 5 /R 6 /Length 256 /CF << /StdCF << /AuthEvent /DocOpen /CFM /AESV3 /Length 32 >> >> /StmF /StdCF /StrF /StdCF /O <${ct(g)}> /U <${ct(l)}> /OE <${ct(u)}> /UE <${ct(a)}> /P ${c} /Perms <${ct(b)}> /EncryptMetadata true >>`;return{fileKey:t,dict:S,p:c}}var Uo={n:10,r:13,t:9,b:8,f:12};function mi(e){let t=[];for(let n=0;n<e.length;n++){if(e[n]!=="\\"){t.push(e.charCodeAt(n)&255);continue}let o=e[++n];if(o===void 0)break;if(o in Uo)t.push(Uo[o]);else if(o>="0"&&o<="7"){let s=o;for(;s.length<3&&e[n+1]>="0"&&e[n+1]<="7";)s+=e[++n];t.push(parseInt(s,8)&255)}else o==="\r"?e[n+1]===`
|
|
18
18
|
`&&n++:o===`
|
|
19
|
-
`||t.push(o.charCodeAt(0)&255)}return new Uint8Array(t)}function hi(e){let t=e.replace(/[^0-9a-fA-F]/g,""),n=t.length%2?t+"0":t,r=new Uint8Array(n.length/2);for(let o=0;o<r.length;o++)r[o]=parseInt(n.slice(o*2,o*2+2),16);return r}async function Ko(e,t){if(!/[(<]/.test(t))return t;let n="";for(let r=0;r<t.length;){let o=t[r];if(o==="<"&&t[r+1]==="<"){n+="<<",r+=2;continue}if(o==="<"){let s=t.indexOf(">",r);n+="<"+ct(await un(e,hi(t.slice(r+1,s))))+">",r=s+1;continue}if(o==="("){let s=1,
|
|
19
|
+
`||t.push(o.charCodeAt(0)&255)}return new Uint8Array(t)}function hi(e){let t=e.replace(/[^0-9a-fA-F]/g,""),n=t.length%2?t+"0":t,r=new Uint8Array(n.length/2);for(let o=0;o<r.length;o++)r[o]=parseInt(n.slice(o*2,o*2+2),16);return r}async function Ko(e,t){if(!/[(<]/.test(t))return t;let n="";for(let r=0;r<t.length;){let o=t[r];if(o==="<"&&t[r+1]==="<"){n+="<<",r+=2;continue}if(o==="<"){let s=t.indexOf(">",r);n+="<"+ct(await un(e,hi(t.slice(r+1,s))))+">",r=s+1;continue}if(o==="("){let s=1,i=r+1;for(;i<t.length&&s;i++)t[i]==="\\"?i++:t[i]==="("?s++:t[i]===")"&&s--;n+="<"+ct(await un(e,mi(t.slice(r+1,i-1))))+">",r=i;continue}n+=o,r++}return n}var ur=new Map,Wo=new WeakMap;function qt(e){if(typeof e!="string")return Promise.resolve(e);let t=ur.get(e);return t||(t=fetch(e).then(async n=>{if(!n.ok)throw new Error(`FreeReport PDF: font ${e} could not be loaded (HTTP ${n.status})`);return new Uint8Array(await n.arrayBuffer())}),t.catch(()=>ur.delete(e)),ur.set(e,t)),t}function gi(e){let t=Wo.get(e);return t||Wo.set(e,t=Ht(e)),t}var Ee=72/25.4,qe=e=>{let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n)&255;return t},W=e=>Math.abs(e)<5e-4?"0":e.toFixed(3).replace(/\.?0+$/,""),pr=e=>e.toString(16).toUpperCase().padStart(4,"0");function Vo(e){let t="";for(let n=0;n<e.length;n++)t+=pr(e.charCodeAt(n));return t}function dn(e){return/^[\x20-\x7e]*$/.test(e)?"("+e.replace(/[\\()]/g,t=>"\\"+t)+")":"<FEFF"+Vo(e)+">"}var _o={black:"000000",white:"ffffff",red:"ff0000",green:"008000",blue:"0000ff",gray:"808080",grey:"808080",silver:"c0c0c0",maroon:"800000",navy:"000080",yellow:"ffff00",orange:"ffa500",purple:"800080",teal:"008080",olive:"808000",lime:"00ff00",aqua:"00ffff",cyan:"00ffff",magenta:"ff00ff",fuchsia:"ff00ff",lightgray:"d3d3d3",lightgrey:"d3d3d3",darkgray:"a9a9a9",darkgrey:"a9a9a9",pink:"ffc0cb",brown:"a52a2a"};function ut(e){if(!e)return null;let t=e.trim().toLowerCase();if(t==="transparent"||t==="none")return null;_o[t]&&(t="#"+_o[t]);let n,r,o,s=1,i;if(i=t.match(/^#([0-9a-f]{3,8})$/)){let a=i[1];if((a.length===3||a.length===4)&&(a=a.split("").map(f=>f+f).join("")),a.length!==6&&a.length!==8)return;n=parseInt(a.slice(0,2),16),r=parseInt(a.slice(2,4),16),o=parseInt(a.slice(4,6),16),a.length===8&&(s=parseInt(a.slice(6,8),16)/255)}else if(i=t.match(/^rgba?\(([^)]*)\)$/)){let a=i[1].split(/[\s,/]+/).filter(Boolean).map(f=>f.endsWith("%")?parseFloat(f)*2.55:parseFloat(f));if(a.length<3||a.slice(0,3).some(isNaN))return;[n,r,o]=a,a.length>3&&(s=i[1].split(/[\s,/]+/).filter(Boolean)[3].endsWith("%")?a[3]/255:a[3])}else return;if(s<=0)return null;let l=a=>W(Math.min(255,Math.max(0,a))/255);return`${l(n)} ${l(r)} ${l(o)}`}async function bi(e){let t=new CompressionStream("deflate"),n=t.writable.getWriter();n.write(e).then(()=>n.close());let r=t.readable.getReader(),o=[],s=0;for(;;){let{done:a,value:f}=await r.read();if(a)break;o.push(f),s+=f.length}let i=new Uint8Array(s),l=0;for(let a of o)i.set(a,l),l+=a.length;return i}var fr=class{constructor(t){this.compress=t;this.objects=[void 0]}alloc(){return this.objects.push(void 0),this.objects.length-1}set(t,n,r=!1){this.objects[t]={body:n,raw:r}}async stream(t,n,r,o=!0){this.compress&&o&&(r=await bi(r),n+=" /Filter /FlateDecode"),this.objects[t]={body:n,data:r}}async build(t,n,r){let o=[qe(`%PDF-1.7
|
|
20
20
|
%\xE2\xE3\xCF\xD3
|
|
21
|
-
`)],s=o[0].length,
|
|
21
|
+
`)],s=o[0].length,i=[0];for(let p=1;p<this.objects.length;p++){let b=this.objects[p],S;if(!b)S=[qe("null")];else{let $=b.body,v=b.data;r&&!b.raw&&($=await Ko(r.fileKey,$),v&&(v=await un(r.fileKey,v))),S=v?[qe(`<< ${$} /Length ${v.length} >>
|
|
22
22
|
stream
|
|
23
23
|
`),v,qe(`
|
|
24
|
-
endstream`)]:[qe($)]}
|
|
25
|
-
`),...
|
|
24
|
+
endstream`)]:[qe($)]}i[p]=s;let M=[qe(`${p} 0 obj
|
|
25
|
+
`),...S,qe(`
|
|
26
26
|
endobj
|
|
27
|
-
`)];for(let $ of M)o.push($),s+=$.length}let l=this.objects.length,
|
|
27
|
+
`)];for(let $ of M)o.push($),s+=$.length}let l=this.objects.length,a=`xref
|
|
28
28
|
0 ${l}
|
|
29
29
|
0000000000 65535 f
|
|
30
|
-
`;for(let p=1;p<l;p++)
|
|
31
|
-
`;let f="",d=r?Oe(16):Array.from({length:16},()=>Math.random()*256|0);for(let p of d)f+=p.toString(16).padStart(2,"0");let
|
|
32
|
-
<< /Size ${l} /Root ${t} 0 R /Info ${n} 0 R${
|
|
30
|
+
`;for(let p=1;p<l;p++)a+=String(i[p]).padStart(10,"0")+` 00000 n
|
|
31
|
+
`;let f="",d=r?Oe(16):Array.from({length:16},()=>Math.random()*256|0);for(let p of d)f+=p.toString(16).padStart(2,"0");let g=r?` /Encrypt ${r.encryptId} 0 R`:"";a+=`trailer
|
|
32
|
+
<< /Size ${l} /Root ${t} 0 R /Info ${n} 0 R${g} /ID [<${f}> <${f}>] >>
|
|
33
33
|
startxref
|
|
34
34
|
${s}
|
|
35
35
|
%%EOF
|
|
36
|
-
`,o.push(qe(
|
|
37
|
-
`))),r.set(
|
|
38
|
-
`+v.map(
|
|
36
|
+
`,o.push(qe(a));let u=new Uint8Array(s+o[o.length-1].length),c=0;for(let p of o)u.set(p,c),c+=p.length;return u}},dr=class{constructor(){this.parts=[];this.st={font:"",tc:0,tr:0,fill:"0 0 0",stroke:"0 0 0",lw:1};this.stack=[]}op(t){this.parts.push(t)}save(){this.parts.push("q"),this.stack.push({...this.st})}restore(){this.parts.push("Q"),this.st=this.stack.pop()}fill(t){t!==this.st.fill&&(this.st.fill=t,this.parts.push(t+" rg"))}stroke(t){t!==this.st.stroke&&(this.st.stroke=t,this.parts.push(t+" RG"))}lineWidth(t){t!==this.st.lw&&(this.st.lw=t,this.parts.push(W(t)+" w"))}font(t,n){let r=`/${t} ${W(n)} Tf`;r!==this.st.font&&(this.st.font=r,this.parts.push(r))}charSpace(t){t!==this.st.tc&&(this.st.tc=t,this.parts.push(W(t)+" Tc"))}render(t){t!==this.st.tr&&(this.st.tr=t,this.parts.push(t+" Tr"))}};function Xo(e,t){let n=new Map(Object.keys(e).map(r=>[r.toLowerCase(),r]));for(let r of(t||"").split(",")){let o=n.get(r.trim().replace(/^['"]|['"]$/g,"").toLowerCase());if(o)return o}return n.get("default")??Object.keys(e)[0]??null}function yi(e){if(e[0]!==255||e[1]!==216)return null;let t=2;for(;t+9<e.length;){if(e[t]!==255){t++;continue}let n=e[t+1];if(n===216||n===1||n>=208&&n<=215||n===255){t+=n===255?1:2;continue}let r=e[t+2]<<8|e[t+3];if(n>=192&&n<=207&&n!==196&&n!==200&&n!==204)return{height:e[t+5]<<8|e[t+6],width:e[t+7]<<8|e[t+8],comps:e[t+9]};t+=2+r}return null}async function wi(e){try{if(typeof fetch>"u")return null;let t=await fetch(e);if(!t.ok)return null;let n=new Uint8Array(await t.arrayBuffer()),r=yi(n);if(r&&(r.comps===1||r.comps===3))return{kind:"jpeg",data:n,width:r.width,height:r.height,gray:r.comps===1};let o,s,i,l=new TextDecoder().decode(n.subarray(0,512)).trimStart(),a=l.startsWith("<svg")||l.startsWith("<?xml")&&l.includes("<svg"),f=new Blob([n],a?{type:"image/svg+xml"}:void 0);if(a&&typeof document<"u"){let c=URL.createObjectURL(f);try{let p=new Image;await new Promise(($,v)=>{p.onload=()=>$(),p.onerror=()=>v(new Error("image")),p.src=c});let b=(p.naturalWidth||1)/(p.naturalHeight||1);o=b>=1?800:Math.round(800*b),s=b>=1?Math.round(800/b):800;let S=document.createElement("canvas");S.width=o,S.height=s;let M=S.getContext("2d");M.drawImage(p,0,0,o,s),i=M.getImageData(0,0,o,s).data}finally{URL.revokeObjectURL(c)}}else if(typeof createImageBitmap=="function"&&typeof OffscreenCanvas<"u"){let c=await createImageBitmap(f);o=c.width,s=c.height;let p=new OffscreenCanvas(o,s).getContext("2d");p.drawImage(c,0,0),i=p.getImageData(0,0,o,s).data}else if(typeof document<"u"){let c=URL.createObjectURL(f);try{let p=new Image;await new Promise((M,$)=>{p.onload=()=>M(),p.onerror=()=>$(new Error("image")),p.src=c}),o=p.naturalWidth,s=p.naturalHeight;let b=document.createElement("canvas");b.width=o,b.height=s;let S=b.getContext("2d");S.drawImage(p,0,0),i=S.getImageData(0,0,o,s).data}finally{URL.revokeObjectURL(c)}}else return null;if(!o||!s)return null;let d=new Uint8Array(o*s*3),g=new Uint8Array(o*s),u=!0;for(let c=0,p=0;c<o*s;c++,p+=4)d[c*3]=i[p],d[c*3+1]=i[p+1],d[c*3+2]=i[p+2],g[c]=i[p+3],i[p+3]!==255&&(u=!1);return{kind:"raw",rgb:d,alpha:u?void 0:g,width:o,height:s}}catch{return null}}async function bt(e,t){let n=t.compress??typeof CompressionStream<"u",r=new fr(n),o=r.alloc(),s=r.alloc(),i=r.alloc(),l=r.alloc(),a=t.fonts||{},f=new Map,d=[],g=(_,ce)=>{let X=`${_}\0${ce}`;if(f.has(X)||!a[_])return;let B=a[_],O=ce&&B.bold!=null;f.set(X,null),d.push(qt(O?B.bold:B.normal).then(Q=>{f.set(X,{bytes:Q,fakeBold:ce&&!O})}))},u=Object.keys(a).find(_=>_.toLowerCase()==="default");for(let _ of e)for(let ce of _.items){if(ce.kind!=="text"||!ce.lines.some(B=>B.text))continue;let X=Xo(a,ce.font.family);if(!X)throw new Error('FreeReport PDF: no fonts configured; pass opts.fonts with at least a "default" TrueType font');g(X,ce.font.bold),u&&g(u,ce.font.bold)}await Promise.all(d);let c=new Map,p=new Map,b=(_,ce)=>{if(!_)return null;let X=f.get(`${_}\0${ce}`);if(!X)return null;let B=p.get(X.bytes);B===void 0&&p.set(X.bytes,B=p.size);let O=`${B}|${X.fakeBold}`,Q=c.get(O);return Q||(Q={font:gi(X.bytes),fakeBold:X.fakeBold,name:"F"+(c.size+1),id:r.alloc(),used:new Map},c.set(O,Q)),Q},S=new Map,M=_=>{let ce=W(Math.max(0,Math.min(1,_))),X=S.get(ce);return X||S.set(ce,X="GS"+(S.size+1)),X},$=new Map,v=[],T=t.loadImage??wi,x=(_,ce)=>{let X=(ce?"emboss:":"")+_,B=$.get(X);return B||(B=(async()=>{try{let O=_;ce&&(O=await Rt(_));let Q=await T(O);if(!Q||!Q.width||!Q.height)return null;let oe=r.alloc(),pe="Im"+(v.length+1);v.push(`/${pe} ${oe} 0 R`);let we=`/Type /XObject /Subtype /Image /Width ${Q.width} /Height ${Q.height} /BitsPerComponent 8`;if(Q.kind==="jpeg")await r.stream(oe,`${we} /ColorSpace /Device${Q.gray?"Gray":"RGB"} /Filter /DCTDecode`,Q.data,!1);else{let Y="";if(Q.alpha){let J=r.alloc();await r.stream(J,`/Type /XObject /Subtype /Image /Width ${Q.width} /Height ${Q.height} /BitsPerComponent 8 /ColorSpace /DeviceGray`,Q.alpha),Y=` /SMask ${J} 0 R`}await r.stream(oe,`${we} /ColorSpace /DeviceRGB${Y}`,Q.rgb)}return{name:pe,width:Q.width,height:Q.height}}catch{return null}})(),$.set(X,B)),B},P=[];for(let _ of e){let ce=_.height*Ee,X=E=>E*Ee,B=E=>ce-E*Ee,O=new dr,Q=(E,N,A)=>{let C=E!=null&&E<1,ne=!!N&&!!A;if(!C&&!ne)return!1;if(O.save(),C&&O.op(`/${M(E)} gs`),ne){let H=X(A.x+A.w/2),K=B(A.y+A.h/2),h=-N*Math.PI/180,D=Math.cos(h),q=Math.sin(h);O.op(`${W(D)} ${W(q)} ${W(-q)} ${W(D)} ${W(H-D*H+q*K)} ${W(K-q*H-D*K)} cm`)}return!0},oe=(E,N,A,C,ne,H,K)=>{let h=ne*Ee;if(h<=0)return;let D=K==="dashed"||K==="dotted";D&&O.save(),O.lineWidth(h),O.stroke(H),K==="dashed"?O.op(`[${W(3*h)} ${W(2*h)}] 0 d`):K==="dotted"&&O.op(`1 J [0 ${W(2*h)}] 0 d`),O.op(`${W(X(E))} ${W(B(N))} m ${W(X(A))} ${W(B(C))} l S`),D&&O.restore()},pe=(E,N,A,C,ne=0)=>{let H=X(E),K=B(N+C),h=A*Ee,D=C*Ee,q=Math.min(ne*Ee,h/2,D/2);if(q<=0){O.op(`${W(H)} ${W(K)} ${W(h)} ${W(D)} re`);return}let m=.5523*q,y=H+h,k=K+D;O.op(`${W(H+q)} ${W(K)} m ${W(y-q)} ${W(K)} l ${W(y-q+m)} ${W(K)} ${W(y)} ${W(K+q-m)} ${W(y)} ${W(K+q)} c ${W(y)} ${W(k-q)} l ${W(y)} ${W(k-q+m)} ${W(y-q+m)} ${W(k)} ${W(y-q)} ${W(k)} c ${W(H+q)} ${W(k)} l ${W(H+q-m)} ${W(k)} ${W(H)} ${W(k-q+m)} ${W(H)} ${W(k-q)} c ${W(H)} ${W(K+q)} l ${W(H)} ${W(K+q-m)} ${W(H+q-m)} ${W(K)} ${W(H+q)} ${W(K)} c h`)},we=E=>{let N=Q(E.opacity,void 0),A=ut(E.fill);if(A&&(O.fill(A),pe(E.x,E.y,E.w,E.h,E.radius),O.op("f")),E.stroke&&E.stroke.width>0){let ne=ut(E.stroke.color);if(ne){let H=E.stroke.width*Ee,K=E.stroke.dash==="dashed"||E.stroke.dash==="dotted";K&&O.save(),O.lineWidth(H),O.stroke(ne),E.stroke.dash==="dashed"?O.op(`[${W(3*H)} ${W(2*H)}] 0 d`):E.stroke.dash==="dotted"&&O.op(`1 J [0 ${W(2*H)}] 0 d`),pe(E.x,E.y,E.w,E.h,E.radius),O.op("S"),K&&O.restore()}}let C=E.border;if(C){let ne=E.x+E.w,H=E.y+E.h,K=[[C.top,E.x,E.y,ne,E.y,!0],[C.right,ne,E.y,ne,H,!1],[C.bottom,E.x,H,ne,H,!0],[C.left,E.x,E.y,E.x,H,!1]];for(let[h,D,q,m,y,k]of K){if(!h||!(h.width>0))continue;let w=ut(h.color);if(w)if(h.style==="double"){let R=h.width/3,L=k?0:R,I=k?R:0;oe(D-L,q-I,m-L,y-I,R,w),oe(D+L,q+I,m+L,y+I,R,w)}else oe(D,q,m,y,h.width,w,h.style)}}N&&O.restore()},Y=E=>{let N=ut(E.color);if(!N)return;let A=Q(E.opacity,void 0);oe(E.x1,E.y1,E.x2,E.y2,E.width,N,E.dash),A&&O.restore()},J=E=>{let N=ut(E.fill),A=ut(E.stroke);if(!N&&!A)return;let C=E.d,ne=[],H=h=>Number(C[h]);for(let h=0;h<C.length;){let D=String(C[h++]).toUpperCase();D==="M"||D==="L"?(ne.push(`${W(X(H(h)))} ${W(B(H(h+1)))} ${D==="M"?"m":"l"}`),h+=2):D==="C"?(ne.push(`${W(X(H(h)))} ${W(B(H(h+1)))} ${W(X(H(h+2)))} ${W(B(H(h+3)))} ${W(X(H(h+4)))} ${W(B(H(h+5)))} c`),h+=6):D==="Z"&&ne.push("h")}if(!ne.length)return;let K=Q(E.opacity,void 0);N&&O.fill(N),A&&(O.stroke(A),O.lineWidth((E.strokeWidth??.2)*Ee)),O.op(ne.join(" ")),O.op(N&&A?"B":N?"f":"S"),K&&O.restore()},le=E=>{if(!E.lines.length)return;let N=Xo(a,E.font.family),A=b(N??void 0,E.font.bold);if(!A)return;let C=b(u,E.font.bold),ne=ut(E.color);if(ne===null)return;let H=ne??"0 0 0",K=E.font.size,h=(E.letterSpacing||0)*Ee,D=E.lines.filter(z=>z.text).map(z=>{let ie=[],he=0,ke=0,Ke=null;for(let Wt of z.text){let Mr=Wt.codePointAt(0),tt=A,dt=A.font.glyphId(Mr);if(dt===0&&C&&C!==A){let Sr=C.font.glyphId(Mr);Sr&&(tt=C,dt=Sr)}tt.used.has(dt)||tt.used.set(dt,Wt),he+=tt.font.advance(dt)*K/tt.font.unitsPerEm,ke++,(!Ke||Ke.e!==tt)&&ie.push(Ke={e:tt,hex:""}),Ke.hex+=pr(dt)}he+=h*ke;let Kt=E.align==="right"?z.x*Ee+z.width*Ee-he:E.align==="center"?z.x*Ee+(z.width*Ee-he)/2:z.x*Ee;return{runs:ie,width:he,x:Kt,y:B(z.y)}});if(!D.length)return;let q=X(E.x),m=E.w*Ee,y=B(E.y),k=B(E.y+E.h),w=A.font.ascent/A.font.unitsPerEm*K,R=-A.font.descent/A.font.unitsPerEm*K,L=.5,I=D.some(z=>z.x<q-L||z.x+z.width>q+m+L||z.y+w>y+L||z.y-R<k-L),G=Q(E.opacity,E.rotate,E);I&&(G||(O.save(),G=!0),O.op(`${W(q)} ${W(k)} ${W(m)} ${W(y-k)} re W n`));let se=E.font.italic?"0.2":"0";O.op("BT"),O.fill(H),O.charSpace(h);for(let z of D){O.op(`1 0 ${se} 1 ${W(z.x)} ${W(z.y)} Tm`);for(let ie of z.runs)O.font(ie.e.name,K),ie.e.fakeBold?(O.render(2),O.stroke(H),O.lineWidth(K*.03)):O.render(0),O.op(`<${ie.hex}> Tj`)}if(O.op("ET"),E.underline||E.strike)for(let z of D){if(E.underline){let ie=z.y-.1*K;O.lineWidth(K*.05),O.stroke(H),O.op(`${W(z.x)} ${W(ie)} m ${W(z.x+z.width)} ${W(ie)} l S`)}if(E.strike){let ie=z.y+.3*K;O.lineWidth(K*.05),O.stroke(H),O.op(`${W(z.x)} ${W(ie)} m ${W(z.x+z.width)} ${W(ie)} l S`)}}G&&O.restore()},de=async E=>{if(!E.src||E.w<=0||E.h<=0)return;let N=await x(E.src,!!E.emboss);if(!N)return;let A=E.x,C=E.y,ne=E.w,H=E.h;if(E.fit!=="fill"){let K=(E.fit==="cover"?Math.max:Math.min)(E.w/N.width,E.h/N.height);ne=N.width*K,H=N.height*K,A=E.x+(E.w-ne)/2,C=E.y+(E.h-H)/2}Q(E.opacity,E.rotate,E)||O.save(),E.fit==="cover"&&(pe(E.x,E.y,E.w,E.h),O.op("W n")),O.op(`${W(ne*Ee)} 0 0 ${W(H*Ee)} ${W(X(A))} ${W(B(C+H))} cm /${N.name} Do`),O.restore()};for(let E of _.items)switch(E.kind){case"box":we(E);break;case"line":Y(E);break;case"path":J(E);break;case"text":le(E);break;case"image":await de(E);break}let ue=r.alloc(),ae=r.alloc();await r.stream(ue,"",qe(O.parts.join(`
|
|
37
|
+
`))),r.set(ae,`<< /Type /Page /Parent ${s} 0 R /MediaBox [0 0 ${W(_.width*Ee)} ${W(ce)}] /Resources ${l} 0 R /Contents ${ue} 0 R >>`),P.push(ae)}let j=0;for(let _ of c.values())await ki(r,_,j++);let F=[...c.values()].map(_=>`/${_.name} ${_.id} 0 R`).join(" "),Z=[...S].map(([_,ce])=>`/${ce} << /Type /ExtGState /ca ${_} /CA ${_} >>`).join(" ");r.set(l,"<< /ProcSet [/PDF /Text /ImageB /ImageC]"+(F?` /Font << ${F} >>`:"")+(v.length?` /XObject << ${v.join(" ")} >>`:"")+(Z?` /ExtGState << ${Z} >>`:"")+" >>"),r.set(s,`<< /Type /Pages /Kids [${P.map(_=>`${_} 0 R`).join(" ")}] /Count ${P.length} >>`);let te=t.security?" /Extensions << /ADBE << /BaseVersion /1.7 /ExtensionLevel 8 >> >>":"";r.set(o,`<< /Type /Catalog /Pages ${s} 0 R${te} >>`);let U=new Date,re=_=>String(_).padStart(2,"0"),V=`<< /Producer (FreeReport) /CreationDate (${`D:${U.getUTCFullYear()}${re(U.getUTCMonth()+1)}${re(U.getUTCDate())}${re(U.getUTCHours())}${re(U.getUTCMinutes())}${re(U.getUTCSeconds())}Z`})`;if(t.title&&(V+=` /Title ${dn(t.title)}`),t.author&&(V+=` /Author ${dn(t.author)}`),t.subject&&(V+=` /Subject ${dn(t.subject)}`),V+=` /Creator ${dn(t.creator||"FreeReport")} >>`,r.set(i,V),!t.security)return r.build(o,i);let fe=await Go(t.security),me=r.alloc();return r.set(me,fe.dict,!0),r.build(o,i,{fileKey:fe.fileKey,encryptId:me})}function xi(e,t){let n=2166136261;for(let o of e+":"+t)n=Math.imul(n^o.charCodeAt(0),16777619)>>>0;let r="";for(let o=0;o<6;o++)r+=String.fromCharCode(65+n%26),n=Math.floor(n/26)+o*7;return r}async function ki(e,t,n){let r=t.font,o=1e3/r.unitsPerEm,s=$=>Math.round($*o),i=e.alloc(),l=e.alloc(),a=e.alloc(),f=e.alloc(),d=[...t.used.keys()].sort(($,v)=>$-v),g=`${xi(r.postscriptName,n)}+${r.postscriptName}${t.fakeBold?",Bold":""}`,u="";for(let $=0;$<d.length;){let v=$,T=[s(r.advance(d[$]))];for(;v+1<d.length&&d[v+1]===d[v]+1;)v++,T.push(s(r.advance(d[v])));u+=`${d[$]} [${T.join(" ")}] `,$=v+1}let c=Ho(r,new Set(d));await e.stream(a,`/Length1 ${c.length}`,c);let p=r.bbox.map(s);e.set(l,`<< /Type /FontDescriptor /FontName /${g} /Flags ${r.flags} /FontBBox [${p.join(" ")}] /ItalicAngle ${W(r.italicAngle)} /Ascent ${s(r.ascent)} /Descent ${s(r.descent)} /CapHeight ${s(r.capHeight)} /StemV ${t.fakeBold?120:80} /FontFile2 ${a} 0 R >>`),e.set(i,`<< /Type /Font /Subtype /CIDFontType2 /BaseFont /${g} /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> /FontDescriptor ${l} 0 R /DW ${s(r.advance(0))} /W [${u.trim()}] /CIDToGIDMap /Identity >>`);let b=d.filter($=>$!==0),S="";for(let $=0;$<b.length;$+=100){let v=b.slice($,$+100);S+=`${v.length} beginbfchar
|
|
38
|
+
`+v.map(T=>`<${pr(T)}> <${Vo(t.used.get(T))}>`).join(`
|
|
39
39
|
`)+`
|
|
40
40
|
endbfchar
|
|
41
41
|
`}let M=`/CIDInit /ProcSet findresource begin
|
|
@@ -47,17 +47,17 @@ begincmap
|
|
|
47
47
|
1 begincodespacerange
|
|
48
48
|
<0000> <FFFF>
|
|
49
49
|
endcodespacerange
|
|
50
|
-
`+
|
|
50
|
+
`+S+`endcmap
|
|
51
51
|
CMapName currentdict /CMap defineresource pop
|
|
52
52
|
end
|
|
53
|
-
end`;await e.stream(f,"",qe(M)),e.set(t.id,`<< /Type /Font /Subtype /Type0 /BaseFont /${
|
|
53
|
+
end`;await e.stream(f,"",qe(M)),e.set(t.id,`<< /Type /Font /Subtype /Type0 /BaseFont /${g} /Encoding /Identity-H /DescendantFonts [${i} 0 R] /ToUnicode ${f} 0 R >>`)}async function mr(e,t={}){if(!e.length)return;let n=t.pages?t.pages.map(a=>e[a]).filter(Boolean):e,{width:r,height:o}=n[0],s=document.createElement("iframe");s.setAttribute("aria-hidden","true"),s.style.cssText="position:fixed;right:0;bottom:0;width:1px;height:1px;border:0;opacity:0;pointer-events:none",document.body.appendChild(s);let i=s.contentDocument;i.open(),i.write(`<!doctype html><html><head><meta charset="utf-8"><title>${(t.title??"Report").replace(/</g,"<")}</title><style>
|
|
54
54
|
@page { size: ${r}mm ${o}mm; margin: 0; }
|
|
55
55
|
html, body { margin: 0; padding: 0; background: #fff; }
|
|
56
56
|
.p { width: ${r}mm; height: ${o}mm; overflow: hidden; break-after: page; page-break-after: always; }
|
|
57
57
|
.p:last-child { break-after: auto; page-break-after: auto; }
|
|
58
58
|
.p svg { display: block; width: ${r}mm; height: ${o}mm; }
|
|
59
59
|
* { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
|
60
|
-
</style></head><body>${n.map(
|
|
60
|
+
</style></head><body>${n.map(a=>`<div class="p">${We(a)}</div>`).join("")}</body></html>`),i.close(),$t(t.families??["Nanum Gothic"],i),ht(i);let l=s.contentWindow;await new Promise(a=>setTimeout(a,50));try{await Promise.race([i.fonts?.ready,new Promise(f=>setTimeout(f,3e3))]);let a=[...i.querySelectorAll("image")].map(f=>{let d=f.getAttribute("href");if(!d)return Promise.resolve();let g=new Image;return g.src=d,g.decode().catch(()=>{})});await Promise.race([Promise.all(a),new Promise(f=>setTimeout(f,4e3))]),await new Promise(f=>setTimeout(f,300))}catch{}await new Promise(a=>{let f=!1,d=()=>{f||(f=!0,setTimeout(()=>s.remove(),500),a())};l.addEventListener("afterprint",d,{once:!0}),l.focus(),l.print(),setTimeout(a,1e3),setTimeout(d,10*6e4)})}function Jo(e){return{...e,updateAvailable:typeof e.updateAvailable=="string"?e.updateAvailable:null,latestVersion:typeof e.latestVersion=="string"?e.latestVersion:null,outdated:e.outdated===!0}}var Qe=class extends Error{constructor(n,r,o){super(n);this.code=r;this.status=o;this.name="AgentError"}},Yo=[18731,18732,18733,18734,18735],hr="freereport:agent-token",Zo=600,$i="FreeReport Print Agent",ft=null;function vi(){try{return globalThis.localStorage?.getItem(hr)??null}catch{return null}}function gr(e){try{e?globalThis.localStorage?.setItem(hr,e):globalThis.localStorage?.removeItem(hr)}catch{}}var mn=null,Qo=()=>vi()??mn;async function zt(e,t={}){let n=new AbortController,r=t.timeout?setTimeout(()=>n.abort(),t.timeout):void 0;try{let o={...t.headers},s=Qo();s&&(o["x-freereport-token"]=s);let i=await fetch(e,{...t,headers:o,signal:n.signal,cache:"no-store"}),l=await i.json().catch(()=>({}));if(!i.ok)throw new Qe(l.message??`HTTP ${i.status}`,l.error??"http_error",i.status);return l}finally{r&&clearTimeout(r)}}async function Mi(e){let t=await zt(`http://127.0.0.1:${e}/v1/status`,{timeout:Zo});if(t?.name!==$i)throw new Error("not the agent");return Jo(t)}async function es(){if(ft||await et.detect())return ft;throw new Qe("FreeReport Print Agent is not running on this PC.","not_running",0)}async function pn(e,t={}){let n=await es();if(!Qo()&&!await et.pair())throw new Qe("The user did not allow printing from this site.","denied",403);try{return await zt(n+e,t)}catch(r){if(r instanceof Qe&&r.code==="not_paired"&&(gr(null),mn=null,await et.pair()))return zt(n+e,t);throw r}}function Si(e){let t="";for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode.apply(null,e.subarray(n,n+32768));return btoa(t)}var et={async detect(){if(typeof fetch>"u")return null;if(ft)try{return Jo(await zt(`${ft}/v1/status`,{timeout:Zo}))}catch{ft=null}let e=async t=>({port:t,status:await Mi(t)});try{let t=await e(Yo[0]).catch(()=>Promise.any(Yo.slice(1).map(e)));return ft=`http://127.0.0.1:${t.port}`,t.status}catch{return null}},async pair(){let e=await es(),t=globalThis.location?.origin;try{let n=await zt(`${e}/v1/pair`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({origin:t}),timeout:7e4});return mn=n.token,gr(n.token),!0}catch(n){if(n instanceof Qe&&(n.code==="denied"||n.code==="busy"))return!1;throw n}},printers(){return pn("/v1/printers",{timeout:15e3})},async print(e,t={}){let n=e instanceof Uint8Array?e:new Uint8Array(e instanceof Blob?await e.arrayBuffer():e);return pn("/v1/print",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({...t,pdf:Si(n)}),timeout:18e4})},job(e){return pn(`/v1/jobs/${encodeURIComponent(e)}`,{timeout:5e3})},logs(e=50){return pn(`/v1/logs?limit=${e}`,{timeout:5e3})},forget(){gr(null),mn=null}};var hn={pdf:"application/pdf",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",csv:"text/csv;charset=utf-8",hwpx:"application/hwp+zip"};function ts(e,t){let n=URL.createObjectURL(e),r=document.createElement("a");r.href=n,r.download=t,r.style.display="none",document.body.appendChild(r),r.click(),setTimeout(()=>{URL.revokeObjectURL(n),r.remove()},1e3)}var Ei=e=>e.replace(/[\\/:*?"<>|]+/g,"_").trim()||"report";function br(e,t={},n={}){let r=e,o=t,s={...n.params},i=null;Pn(n.licenseKey);let l=()=>i??(i=At(r,o,{...n,params:s})),a=async(d,g)=>{if(!n.onOutput)return!0;let u=l();return await n.onOutput({kind:d,report:r.name??"report",pages:u.pages.length,rows:u.rowCount,params:s,fileName:g})!==!1},f={get definition(){return r},layout:l,async ready(){return await nt(r),i=null,l()},setData(d){o=d,i=null},fingerprint(){let d=l();return d.fingerprint??Tt(d.pages)},setParams(d){s={...d},i=null},setDefinition(d){r=d,i=null},async print(d={}){if(!await a("print"))return!1;if(n.directPrint&&typeof window<"u"){let g=await et.detect();if(g&&(g.paired||await et.pair())){let u=l().pages,c=d.pages?d.pages.map(S=>u[S]).filter(Boolean):u,p=await bt(c,{fonts:Sn(c),title:r.name,creator:"FreeReport"}),b=typeof n.directPrint=="object"?n.directPrint:{};return await et.print(p,{report:r.name,jobName:r.name,...b}),!0}}return await mr(l().pages,{families:Mn(r),pages:d.pages,title:r.name}),!0},async toPdf(){if(!await a("pdf"))return null;let d=l().pages,g=await bt(d,{fonts:Sn(d),title:r.name,author:n.author,creator:"FreeReport",security:n.pdfSecurity});return new Blob([g],{type:hn.pdf})},async toXlsx(d="form"){if(!await a(d==="data"?"xlsx-data":"xlsx"))return null;let g=d==="data"?Bt(r,o,{params:s}):It(l(),r);return new Blob([g],{type:hn.xlsx})},async toHwpx(){return await a("hwpx")?new Blob([ar(l(),r)],{type:hn.hwpx}):null},async toCsv(){return await a("csv")?new Blob([tr(r,o,{params:s})],{type:hn.csv}):null},async download(d,g){let u=Ei(g??r.name??"report"),c=d==="pdf"?await f.toPdf():d==="csv"?await f.toCsv():d==="hwpx"?await f.toHwpx():await f.toXlsx(d==="xlsx-data"?"data":"form");if(!c)return!1;let p=d==="pdf"?"pdf":d==="csv"?"csv":d==="hwpx"?"hwpx":"xlsx";return ts(c,/\.\w+$/.test(u)?u:`${u}.${p}`),!0}};return f}var Ri={ko:{find:"\uCC3E\uAE30",findNone:"\uCC3E\uB294 \uB0B4\uC6A9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",findCount:(e,t)=>`${e} / ${t}`,first:"\uCCAB \uD398\uC774\uC9C0",prev:"\uC774\uC804 \uD398\uC774\uC9C0",next:"\uB2E4\uC74C \uD398\uC774\uC9C0",last:"\uB9C8\uC9C0\uB9C9 \uD398\uC774\uC9C0",zoomIn:"\uD655\uB300",zoomOut:"\uCD95\uC18C",fitWidth:"\uD3ED \uB9DE\uCDA4",fitPage:"\uCABD \uB9DE\uCDA4",print:"\uC778\uC1C4",pdf:"PDF",xlsx:"\uC5D1\uC140",xlsxForm:"\uC5D1\uC140 (\uC591\uC2DD \uADF8\uB300\uB85C)",xlsxData:"\uC5D1\uC140 (\uB370\uC774\uD130)",hwpx:"\uD55C\uAE00 (HWPX)",save:"\uC800\uC7A5",csv:"CSV",params:"\uC870\uD68C \uC870\uAC74",search:"\uC870\uD68C",loading:"\uBCF4\uACE0\uC11C\uB97C \uB9CC\uB4DC\uB294 \uC911\u2026",exporting:"\uD30C\uC77C\uC744 \uB9CC\uB4DC\uB294 \uC911\u2026",pages:e=>`${e}\uCABD`,rows:e=>`${e.toLocaleString("ko")}\uAC74`,empty:"\uD45C\uC2DC\uD560 \uD398\uC774\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4",error:"\uBCF4\uACE0\uC11C\uB97C \uB9CC\uB4E4\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4",page:"\uD398\uC774\uC9C0",required:"\uD544\uC218 \uD56D\uBAA9\uC785\uB2C8\uB2E4",yes:"\uC608",no:"\uC544\uB2C8\uC694"},en:{find:"Find",findNone:"No matches",findCount:(e,t)=>`${e} of ${t}`,first:"First page",prev:"Previous page",next:"Next page",last:"Last page",zoomIn:"Zoom in",zoomOut:"Zoom out",fitWidth:"Fit width",fitPage:"Fit page",print:"Print",pdf:"PDF",xlsx:"Excel",xlsxForm:"Excel (as printed)",xlsxData:"Excel (data)",hwpx:"Hangul (HWPX)",save:"Save",csv:"CSV",params:"Parameters",search:"Run",loading:"Building the report\u2026",exporting:"Creating the file\u2026",pages:e=>`${e} pages`,rows:e=>`${e.toLocaleString("en")} rows`,empty:"No pages to show",error:"The report could not be built",page:"Page",required:"Required",yes:"Yes",no:"No"}},Ti={first:"M18 6l-6 6 6 6M7 6v12",prev:"M15 6l-6 6 6 6",next:"M9 6l6 6-6 6",last:"M6 6l6 6-6 6M17 6v12",search:"M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14zM20 20l-4-4",minus:"M6 12h12",plus:"M12 6v12M6 12h12",print:"M7 9V4h10v5M7 17H5a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-2M7 14h10v6H7z",file:"M14 3H7a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7zM14 3v4h4",filter:"M4 5h16l-6 8v5l-4 2v-7z",caret:"M7 10l5 5 5-5"},Ae=e=>`<svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="${Ti[e]}"/></svg>`,yt=96/25.4,Pi=16;function ns(e,t,n,r){let o=`fr-p-${e.replace(/[^\w-]/g,"_")}`,s=`<label for="${o}">${Ge(t.label??e)}${t.required?' <b aria-hidden="true">*</b>':""}</label>`,i=n==null?"":n instanceof Date?n.toISOString().slice(0,10):String(n),l=t.required?" required":"";if(t.type==="select"||t.options)return`<div class="fr-param">${s}<select id="${o}" name="${Ge(e)}"${l}>${(t.options??[]).map(f=>`<option value="${Ge(String(f.value))}"${String(f.value)===i?" selected":""}>${Ge(String(f.label??f.value))}</option>`).join("")}</select></div>`;if(t.type==="boolean")return`<div class="fr-param">${s}<select id="${o}" name="${Ge(e)}" data-type="boolean"><option value="true"${n===!0?" selected":""}>${r.yes}</option><option value="false"${n!==!0?" selected":""}>${r.no}</option></select></div>`;let a=t.type==="number"?"number":t.type==="date"?"date":"text";return`<div class="fr-param">${s}<input id="${o}" name="${Ge(e)}" type="${a}" value="${Ge(i)}" data-type="${Ge(String(t.type??"string"))}"${l}></div>`}var Ge=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");function yr(e,t){let n=Ri[t.lang??"ko"],r={pages:!0,zoom:!0,search:!0,print:!0,pdf:!0,xlsx:!0,xlsxData:!0,csv:!1,hwpx:!0,params:!0,...t.toolbar},o=t.definition,s=!!o.params&&Object.keys(o.params).length>0,i={};for(let[h,D]of Object.entries(o.params??{}))i[h]=D.default;i={...i,...t.params};let l=br(o,t.data??{},{...t,params:i}),a=null,f=t.zoom??"width",d=1,g=0,u=!1;e.classList.add("fr-viewer"),e.innerHTML=`
|
|
61
61
|
<div class="fr-toolbar" role="toolbar">
|
|
62
62
|
${r.params&&s?`<button type="button" class="fr-btn fr-params-toggle" aria-expanded="false">${Ae("filter")}<span>${n.params}</span></button><span class="fr-sep"></span>`:""}
|
|
63
63
|
${r.pages?`<button type="button" class="fr-btn fr-icon" data-act="first" title="${n.first}" aria-label="${n.first}">${Ae("first")}</button>
|
|
@@ -66,7 +66,7 @@ html, body { margin: 0; padding: 0; background: #fff; }
|
|
|
66
66
|
<button type="button" class="fr-btn fr-icon" data-act="next" title="${n.next}" aria-label="${n.next}">${Ae("next")}</button>
|
|
67
67
|
<button type="button" class="fr-btn fr-icon" data-act="last" title="${n.last}" aria-label="${n.last}">${Ae("last")}</button><span class="fr-sep"></span>`:""}
|
|
68
68
|
${r.zoom?`<button type="button" class="fr-btn fr-icon" data-act="zoomOut" title="${n.zoomOut}" aria-label="${n.zoomOut}">${Ae("minus")}</button>
|
|
69
|
-
<select class="fr-zoom" aria-label="Zoom"><option value="width">${n.fitWidth}</option><option value="page">${n.fitPage}</option>${[.5,.75,1,1.25,1.5,2].map(
|
|
69
|
+
<select class="fr-zoom" aria-label="Zoom"><option value="width">${n.fitWidth}</option><option value="page">${n.fitPage}</option>${[.5,.75,1,1.25,1.5,2].map(h=>`<option value="${h}">${Math.round(h*100)}%</option>`).join("")}<option value="custom" hidden></option></select>
|
|
70
70
|
<button type="button" class="fr-btn fr-icon" data-act="zoomIn" title="${n.zoomIn}" aria-label="${n.zoomIn}">${Ae("plus")}</button>`:""}
|
|
71
71
|
${r.search?`<span class="fr-sep"></span><span class="fr-search">${Ae("search")}<input type="search" aria-label="${n.find}" placeholder="${n.find}"><span class="fr-search-count" aria-live="polite"></span></span>`:""}
|
|
72
72
|
<span class="fr-spacer"></span>
|
|
@@ -80,9 +80,9 @@ html, body { margin: 0; padding: 0; background: #fff; }
|
|
|
80
80
|
${r.csv?`<button type="button" role="menuitem" data-act="csv">${n.csv}</button>`:""}
|
|
81
81
|
</span></span>`:""}
|
|
82
82
|
</div>
|
|
83
|
-
${s?`<form class="fr-params" hidden>${Object.entries(o.params).map(([
|
|
83
|
+
${s?`<form class="fr-params" hidden>${Object.entries(o.params).map(([h,D])=>ns(h,D,i[h],n)).join("")}<button type="submit" class="fr-btn fr-primary">${n.search}</button></form>`:""}
|
|
84
84
|
<div class="fr-body" tabindex="0"><div class="fr-pages"></div><div class="fr-overlay" hidden><span class="fr-spinner"></span><span class="fr-overlay-text"></span></div></div>
|
|
85
|
-
<div class="fr-status" aria-live="polite"><span class="fr-status-text"></span><a class="fr-badge" href="https://freereport.app/pricing/" target="_blank" rel="noopener" hidden>FreeReport \xB7 \uBB34\uB8CC \uC0AC\uC6A9</a></div>`;let c=k=>e.querySelector(k),p=c(".fr-body"),g=c(".fr-pages"),E=c(".fr-overlay"),M=c(".fr-status-text"),$=c(".fr-pageno input"),v=c(".fr-total"),j=c(".fr-zoom"),w=c(".fr-params"),C=c(".fr-params-toggle"),A=c('[data-act="menu"]'),I=c(".fr-menu-list"),Q=k=>{E.hidden=k===null,c(".fr-overlay-text").textContent=k??""},ne=k=>{!w||!C||(w.hidden=!k,C.setAttribute("aria-expanded",String(k)))};ne(t.paramsOpen??Object.entries(o.params??{}).some(([,k])=>k.required&&k.default===void 0));let U=null,re=()=>{if(!i)return 1;let k=Math.max(100,p.clientWidth-48),P=Math.max(100,p.clientHeight-32);return f==="width"?Math.min(1.25,k/(i.width*yt)):f==="page"?Math.min(k/(i.width*yt),P/(i.height*yt)):f},be=k=>{if(!i||k.dataset.drawn)return;let P=Number(k.dataset.index);k.innerHTML=We(i.pages[P],{className:"fr-page-svg"}),k.dataset.drawn="1",ht(k)},V=()=>{if(!i)return;d=re();let k=i.width*yt*d,P=i.height*yt*d;if(g.style.setProperty("--fr-page-w",`${k}px`),g.style.setProperty("--fr-page-h",`${P}px`),j){let H=typeof f=="number"?String(f):f,x=[...j.options].some(Z=>Z.value===H),W=j.querySelector('option[value="custom"]');W.hidden=x,W.textContent=`${Math.round(d*100)}%`,j.value=x?H:"custom"}},fe=()=>{if(U?.disconnect(),g.innerHTML="",!i)return;if(!i.pages.length){g.innerHTML=`<p class="fr-empty">${n.empty}</p>`;return}let k=document.createDocumentFragment();i.pages.forEach((P,H)=>{let x=document.createElement("div");x.className="fr-page",x.dataset.index=String(H),x.setAttribute("aria-label",`${n.page} ${H+1}`),k.appendChild(x)}),g.appendChild(k),V(),U=typeof IntersectionObserver<"u"?new IntersectionObserver(P=>{for(let H of P)H.isIntersecting&&be(H.target);pe()},{root:p,rootMargin:"600px 0px"}):null,g.querySelectorAll(".fr-page").forEach((P,H)=>U?U.observe(P):H<3&&be(P)),v&&(v.textContent=`/ ${i.pages.length}`),le="",ie=[],M.textContent=`${n.pages(i.pages.length)} \xB7 ${n.rows(i.rowCount)} \xB7 ${i.ms}ms`,pe()},pe=()=>{if(!i)return;let k=i.height*yt*d+Pi;h=Math.min(i.pages.length-1,Math.max(0,Math.round(p.scrollTop/k))),$&&document.activeElement!==$&&($.value=String(h+1))},K=k=>{if(!i)return;let P=Math.min(i.pages.length-1,Math.max(0,k)),H=g.children[P];H&&(p.scrollTop=H.offsetTop-g.offsetTop),h=P,$&&($.value=String(P+1))},se=k=>{let P=i?p.scrollTop/Math.max(1,p.scrollHeight):0;f=typeof k=="number"?Math.min(4,Math.max(.25,k)):k,V(),p.scrollTop=P*p.scrollHeight},Y=0,N=async()=>{let k=++Y;Q(n.loading);try{if(t.fetchData){let P=await t.fetchData(a);if(k!==Y)return;l.setData(P)}if(l.setParams(a),await nt(l.definition),u)return;i=l.layout(),fe()}catch(P){console.error(P),g.innerHTML=`<p class="fr-empty">${n.error}: ${Ge(String(P.message??P))}</p>`}finally{Q(null)}},q=async k=>{Q(n.exporting);try{await l.download(k,t.fileName)}catch(P){console.error(P),ee(`${n.error}: ${P.message}`)}finally{Q(null)}},ee=k=>{M.textContent=k},ae=()=>{!I||!A||(I.hidden=!0,A.setAttribute("aria-expanded","false"))},he=new AbortController;e.addEventListener("click",k=>{let P=k.target.closest("[data-act]");if(!P||!e.contains(P)){k.target.closest(".fr-menu")||ae();return}let H=P.dataset.act;switch(H!=="menu"&&ae(),H){case"first":K(0);break;case"prev":K(h-1);break;case"next":K(h+1);break;case"last":K((i?.pages.length??1)-1);break;case"zoomIn":se(Math.round((d+.1)*10)/10);break;case"zoomOut":se(Math.round((d-.1)*10)/10);break;case"print":l.print().catch(x=>ee(`${n.error}: ${x.message}`));break;case"pdf":q("pdf");break;case"xlsx":q("xlsx");break;case"xlsxData":q("xlsx-data");break;case"csv":q("csv");break;case"hwpx":q("hwpx");break;case"findNext":L(1);break;case"menu":{let x=I.hidden;I.hidden=!x,A.setAttribute("aria-expanded",String(x));break}}},{signal:he.signal});let we=k=>{e.contains(k.target)||ae()};document.addEventListener("click",we),C?.addEventListener("click",()=>ne(w.hidden)),j?.addEventListener("change",()=>{let k=j.value;k!=="custom"&&se(k==="width"||k==="page"?k:Number(k))}),$?.addEventListener("change",()=>K(Number($.value)-1)),$?.addEventListener("keydown",k=>{k.key==="Enter"&&K(Number($.value)-1)}),p.addEventListener("scroll",()=>pe(),{passive:!0}),p.addEventListener("keydown",k=>{k.key==="PageDown"||k.key==="ArrowRight"&&!k.altKey?(k.preventDefault(),K(h+1)):k.key==="PageUp"||k.key==="ArrowLeft"?(k.preventDefault(),K(h-1)):k.key==="Home"&&k.ctrlKey?(k.preventDefault(),K(0)):k.key==="End"&&k.ctrlKey?(k.preventDefault(),K((i?.pages.length??1)-1)):(k.ctrlKey||k.metaKey)&&k.key.toLowerCase()==="p"?(k.preventDefault(),l.print()):(k.ctrlKey||k.metaKey)&&k.key.toLowerCase()==="f"&&X?(k.preventDefault(),X.focus(),X.select()):(k.ctrlKey||k.metaKey)&&(k.key==="+"||k.key==="=")?(k.preventDefault(),se(d+.1)):(k.ctrlKey||k.metaKey)&&k.key==="-"&&(k.preventDefault(),se(d-.1))}),p.addEventListener("wheel",k=>{k.ctrlKey&&(k.preventDefault(),se(Math.round(d*(k.deltaY<0?1.1:1/1.1)*100)/100))},{passive:!1}),w?.addEventListener("submit",k=>{k.preventDefault();let P={...a};w.querySelectorAll("input, select").forEach(H=>{let x=H.dataset.type,W=H.value;P[H.name]=x==="number"?W===""?null:Number(W):x==="boolean"?W==="true":W}),a=P,N()});let J=typeof ResizeObserver<"u"?new ResizeObserver(()=>{typeof f!="number"&&V()}):null;J?.observe(p);let X=c(".fr-search input"),ce=c(".fr-search-count"),ie=[],de=-1,le="",T=1,O=k=>{if(ie=[],!i||!k)return;let P=k.toLowerCase();i.pages.forEach((H,x)=>{for(let W of H.items)if(!(W.kind!=="text"||W.source?.band==="watermark"))for(let Z of W.lines){let m=Z.text.toLowerCase().indexOf(P);if(m<0)continue;let b=[...Z.text].length||1,S=W.font.size*(25.4/72);ie.push({page:x,x:Z.x+Z.width*m/b,y:Z.y-S*.85,w:Math.max(1,Z.width*[...k].length/b),h:S*1.1*T})}})},F=()=>{if(g.querySelectorAll(".fr-hit").forEach(Z=>Z.remove()),!i||de<0||!ie[de])return;let k=ie[de];K(k.page);let P=g.children[k.page];be(P);let H=document.createElement("div");H.className="fr-hit";let x=P.clientWidth/i.width,W=P.clientHeight/i.height;Object.assign(H.style,{left:`${k.x*x}px`,top:`${k.y*W}px`,width:`${k.w*x}px`,height:`${k.h*W}px`}),P.appendChild(H),p.scrollTop=P.offsetTop-g.offsetTop+k.y*W-p.clientHeight/3},L=k=>{let P=X?.value.trim()??"";if(P!==le&&(le=P,O(P),de=-1),!ie.length){ce&&(ce.textContent=P?n.findNone:""),F();return}de=(de+k+ie.length)%ie.length,ce&&(ce.textContent=n.findCount(de+1,ie.length)),F()};return X?.addEventListener("keydown",k=>{k.key==="Enter"?(k.preventDefault(),L(k.shiftKey?-1:1)):k.key==="Escape"&&(X.value="",L(1),p.focus())}),X?.addEventListener("input",()=>{X.value||L(1)}),Or(t.licenseKey).then(k=>{let P=c(".fr-badge");P&&k&&(P.hidden=!1)}),N(),{report:l,refresh:N,async setData(k){l.setData(k),await N()},async setParams(k){a={...a,...k},await N()},async setDefinition(k){l.setDefinition(k);let P=c(".fr-params");if(P){let H={};for(let[x,W]of Object.entries(k.params??{}))H[x]=a[x]??W.default;a=H,P.innerHTML=`${Object.entries(k.params??{}).map(([x,W])=>ns(x,W,a[x],n)).join("")}<button type="submit" class="fr-btn fr-primary">${n.search}</button>`}await N()},goTo:k=>K(k-1),setZoom:se,print:()=>l.print(),destroy(){u=!0,U?.disconnect(),J?.disconnect(),document.removeEventListener("click",we),he.abort(),e.innerHTML="",e.classList.remove("fr-viewer")}}}function ze(e){let t=e.bands,n=[],r=(o,s,a,l)=>{s&&n.push({key:o,band:s,group:a,groupIndex:l})};return r("title",t.title),r("pageHeader",t.pageHeader),r("columnHeader",t.columnHeader),(t.groups??[]).forEach((o,s)=>r(`groupHeader:${s}`,o.header,o,s)),r("detail",t.detail),[...t.groups??[]].map((o,s)=>[o,s]).reverse().forEach(([o,s])=>r(`groupFooter:${s}`,o.footer,o,s)),r("summary",t.summary),r("noData",t.noData),r("pageFooter",t.pageFooter),n}function Re(e,t){let[n,r]=t.split(":");return n==="groupHeader"?e.bands.groups?.[Number(r)]?.header:n==="groupFooter"?e.bands.groups?.[Number(r)]?.footer:e.bands[n]}function wr(e,t,n){let[r,o]=t.split(":");if(r==="groupHeader"||r==="groupFooter"){let a=e.bands.groups?.[Number(o)];if(!a)return;r==="groupHeader"?a.header=n:a.footer=n;return}let s=r;n?e.bands[s]=n:delete e.bands[s]}var rs=0;function wt(e){let t=new Set;for(let r of ze(e))for(let o of r.band.elements)o.id&&t.add(o.id);let n=new Set;for(let r of ze(e))for(let o of r.band.elements){if(o.id&&/^[\w-]{1,64}$/.test(String(o.id))&&!n.has(o.id)){n.add(o.id);continue}let s;do s=`e${++rs}`;while(t.has(s));t.add(s),n.add(s),o.id=s}}function xt(e){let t=new Set(ze(e).flatMap(r=>r.band.elements.map(o=>o.id))),n;do n=`e${++rs}`;while(t.has(n));return n}function je(e,t){for(let n of ze(e)){let r=n.band.elements.findIndex(o=>o.id===t);if(r>=0)return{slot:n,el:n.band.elements[r],index:r}}return null}function os(e,t,n,r,o,s){let a=Math.min(Math.max(o,5),8);switch(e){case"field":return{id:t,type:"field",x:n,y:r,w:30,h:a,expr:s??"field",style:void 0};case"line":return{id:t,type:"line",x:n,y:r,w:40,h:0,width:.2};case"rect":return{id:t,type:"rect",x:n,y:r,w:30,h:15,width:.2};case"image":return{id:t,type:"image",x:n,y:r,w:25,h:15,src:"",fit:"contain"};case"barcode":return{id:t,type:"barcode",x:n,y:r,w:45,h:12,expr:"'ABC-12345'",format:"code128"};case"qr":return{id:t,type:"barcode",x:n,y:r,w:18,h:18,expr:"'https://freereport.app'",format:"qr"};case"chart":return{id:t,type:"chart",x:n,y:r,w:90,h:50,chartType:"bar",category:s??"name",series:[{expr:"value"}]};case"table":return{id:t,type:"table",x:n,y:r,w:120,h:18,source:"items",columns:[{header:"\uD488\uBAA9",expr:"name"},{header:"\uC218\uB7C9",expr:"qty",width:20,format:"#,##0"},{header:"\uAE08\uC561",expr:"amount",width:30,format:"#,##0",sum:!0}]};case"crosstab":return{id:t,type:"crosstab",x:n,y:r,w:150,h:30,rowKey:s??"region",columnKey:"category",value:"amount",corner:""};case"pageNumber":return{id:t,type:"text",x:n,y:r,w:30,h:a,text:"{page} / {pages}",style:{align:"center"}};case"today":return{id:t,type:"text",x:n,y:r,w:30,h:a,text:"{format(today(), 'yyyy-MM-dd')}"};default:return{id:t,type:"text",x:n,y:r,w:30,h:a,text:"\uD14D\uC2A4\uD2B8"}}}var Ie=e=>{if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}return JSON.parse(JSON.stringify(e))};function gn(){return{version:1,name:"\uC0C8 \uBCF4\uACE0\uC11C",page:{size:"A4",orientation:"portrait",margins:15},font:{family:"Nanum Gothic",size:9},bands:{title:{height:14,elements:[{id:"e1",type:"text",x:0,y:0,w:180,h:12,text:"\uBCF4\uACE0\uC11C \uC81C\uBAA9",style:{fontSize:16,bold:!0,align:"center"}}]},columnHeader:{height:7,elements:[]},detail:{height:6,elements:[]},summary:{height:8,elements:[]},pageFooter:{height:8,elements:[{id:"e2",type:"text",x:0,y:1,w:180,h:6,text:"{page} / {pages}",style:{align:"center",fontSize:8}}]}}}}var ss={ko:{report:"\uBCF4\uACE0\uC11C",name:"\uC774\uB984",page:"\uC6A9\uC9C0",size:"\uD06C\uAE30",orientation:"\uBC29\uD5A5",portrait:"\uC138\uB85C",landscape:"\uAC00\uB85C",margins:"\uC5EC\uBC31 (\uC0C1 \uC6B0 \uD558 \uC88C, mm)",font:"\uAE30\uBCF8 \uAE00\uAF34",fontSize:"\uAE00\uC790 \uD06C\uAE30 (pt)",dataSource:"\uB370\uC774\uD130 \uBC30\uC5F4 \uC774\uB984",sort:"\uC815\uB82C (\uC27C\uD45C\uB85C \uAD6C\uBD84, -\uB294 \uB0B4\uB9BC\uCC28\uC21C)",filter:"\uD544\uD130 \uC2DD",fillEmpty:"\uBE48 \uD589\uC73C\uB85C \uD398\uC774\uC9C0 \uCC44\uC6B0\uAE30",skipHeader:"\uCCAB \uD398\uC774\uC9C0\uC5D0 \uBA38\uB9AC\uAE00 \uC228\uAE30\uAE30",watermark:"\uC6CC\uD130\uB9C8\uD06C \uBB38\uAD6C",wmRepeat:"\uC804\uBA74 \uBC18\uBCF5 (\uBCF4\uC548 \uD328\uD134)",wmOpacity:"\uC6CC\uD130\uB9C8\uD06C \uBD88\uD22C\uBA85\uB3C4",emboss:"\uC5E0\uBCF4\uC2F1 \uBB38\uAD6C",embossCenter:"\uC5E0\uBCF4\uC2F1 \uAC00\uC6B4\uB370 \uAE00\uC790",params:"\uD30C\uB77C\uBBF8\uD130 (JSON)",position:"\uC704\uCE58\uC640 \uD06C\uAE30 (mm)",x:"X",y:"Y",w:"\uB108\uBE44",h:"\uB192\uC774",text:"\uD14D\uC2A4\uD2B8 (\uC911\uAD04\uD638 \uC548\uC740 \uC2DD: {amount:#,##0})",expr:"\uC2DD",format:"\uC11C\uC2DD (#,##0 \xB7 yyyy-MM-dd \xB7 korean)",nullText:"\uAC12\uC774 \uC5C6\uC744 \uB54C",suppress:"\uAC19\uC740 \uAC12 \uBC18\uBCF5 \uC228\uAE30\uAE30",visible:"\uD45C\uC2DC \uC870\uAC74 (\uC2DD)",canGrow:"\uB0B4\uC6A9\uC5D0 \uB9DE\uCDB0 \uB298\uB9AC\uAE30",stretch:"\uBC34\uB4DC \uB192\uC774 \uB530\uB77C\uAC00\uAE30",style:"\uC2A4\uD0C0\uC77C",bold:"\uAD75\uAC8C",italic:"\uAE30\uC6B8\uC784",underline:"\uBC11\uC904",strike:"\uCDE8\uC18C\uC120",color:"\uAE00\uC790\uC0C9",background:"\uBC30\uACBD\uC0C9",align:"\uAC00\uB85C \uC815\uB82C",valign:"\uC138\uB85C \uC815\uB82C",left:"\uC67C\uCABD",center:"\uAC00\uC6B4\uB370",right:"\uC624\uB978\uCABD",justify:"\uC591\uCABD",top:"\uC704",middle:"\uAC00\uC6B4\uB370",bottom:"\uC544\uB798",border:"\uD14C\uB450\uB9AC",none:"\uC5C6\uC74C",all:"\uBAA8\uB450",borderWidth:"\uD14C\uB450\uB9AC \uB450\uAED8 (mm)",borderColor:"\uD14C\uB450\uB9AC \uC0C9",padding:"\uC548\uCABD \uC5EC\uBC31 (mm)",wrap:"\uC904\uBC14\uAFC8",shrink:"\uAE00\uC790 \uC904\uC5EC \uB9DE\uCD94\uAE30",lineColor:"\uC120 \uC0C9",lineWidth:"\uC120 \uB450\uAED8 (mm)",dash:"\uC120 \uBAA8\uC591",solid:"\uC2E4\uC120",dashed:"\uD30C\uC120",dotted:"\uC810\uC120",fill:"\uCC44\uC6B0\uAE30",radius:"\uBAA8\uC11C\uB9AC \uB465\uAE00\uAE30",src:"\uC774\uBBF8\uC9C0 \uC8FC\uC18C",fit:"\uB9DE\uCDA4",contain:"\uBE44\uC728 \uC720\uC9C0",cover:"\uCC44\uC6B0\uAE30(\uC798\uB9BC)",stretchFit:"\uB298\uC774\uAE30",barcode:"\uBC14\uCF54\uB4DC \uC885\uB958",showText:"\uAC12 \uD45C\uC2DC",ecc:"\uC624\uB958 \uC815\uC815",chartType:"\uCC28\uD2B8 \uC885\uB958",source:"\uB370\uC774\uD130 (\uC2DD, \uBE44\uC6B0\uBA74 \uD604\uC7AC \uBC94\uC704)",category:"\uD56D\uBAA9 \uC2DD",series:"\uAC12 \uC2DD (\uC27C\uD45C\uB85C \uC5EC\uB7EC \uAC1C)",title:"\uC81C\uBAA9",legend:"\uBC94\uB840",showValues:"\uAC12 \uD45C\uC2DC",stacked:"\uB204\uC801",band:"\uBC34\uB4DC",height:"\uB192\uC774 (mm)",bandGrow:"\uB0B4\uC6A9\uC5D0 \uB9DE\uCDB0 \uB298\uB9AC\uAE30",bandBg:"\uBC30\uACBD\uC0C9",altBg:"\uC904\uBB34\uB2AC \uBC30\uACBD\uC0C9",breakBefore:"\uC55E\uC5D0\uC11C \uD398\uC774\uC9C0 \uB098\uB204\uAE30",breakAfter:"\uB4A4\uC5D0\uC11C \uD398\uC774\uC9C0 \uB098\uB204\uAE30",group:"\uADF8\uB8F9",by:"\uADF8\uB8F9 \uAE30\uC900 \uC2DD",groupSort:"\uADF8\uB8F9 \uC815\uB82C",asc:"\uC624\uB984\uCC28\uC21C",desc:"\uB0B4\uB9BC\uCC28\uC21C",keep:"\uC5C6\uC74C",newPage:"\uADF8\uB8F9\uB9C8\uB2E4 \uC0C8 \uD398\uC774\uC9C0",repeatHeader:"\uB2E4\uC74C \uD398\uC774\uC9C0\uC5D0 \uBA38\uB9AC\uAE00 \uBC18\uBCF5",resetPage:"\uADF8\uB8F9\uB9C8\uB2E4 \uCABD \uBC88\uD638 \uC0C8\uB85C",multi:e=>`${e}\uAC1C \uC120\uD0DD\uB428`,errorExpr:"\uC2DD \uC624\uB958",id:"ID",rowHeight:"\uD589 \uB192\uC774 (mm)",showHeader:"\uBA38\uB9AC\uAE00 \uD45C\uC2DC",tableColumns:"\uC5F4 (JSON: header, expr, width, format, align, sum)",rowKey:"\uD589 \uAE30\uC900 \uC2DD",columnKey:"\uC5F4 \uAE30\uC900 \uC2DD",valueExpr:"\uAC12 \uC2DD",aggregate:"\uC9D1\uACC4",corner:"\uC67C\uCABD \uC704 \uC81C\uBAA9",totals:"\uD569\uACC4 \uD589\xB7\uC5F4",columns:"\uB2E4\uB2E8 (\uC5F4 \uC218, \uB77C\uBCA8 \uCD9C\uB825)",columnGap:"\uB2E8 \uC0AC\uC774 \uAC04\uACA9 (mm)"},en:{report:"Report",name:"Name",page:"Paper",size:"Size",orientation:"Orientation",portrait:"Portrait",landscape:"Landscape",margins:"Margins (top right bottom left, mm)",font:"Default font",fontSize:"Font size (pt)",dataSource:"Data array name",sort:"Sort (comma separated, - for descending)",filter:"Filter expression",fillEmpty:"Fill pages with blank rows",skipHeader:"Hide page header on first page",watermark:"Watermark text",wmRepeat:"Repeat over the page (security pattern)",wmOpacity:"Watermark opacity",emboss:"Emboss text",embossCenter:"Emboss centre text",params:"Parameters (JSON)",position:"Position and size (mm)",x:"X",y:"Y",w:"Width",h:"Height",text:"Text (expressions in braces: {amount:#,##0})",expr:"Expression",format:"Format (#,##0 \xB7 yyyy-MM-dd \xB7 korean)",nullText:"Text when empty",suppress:"Hide repeated values",visible:"Visible when (expression)",canGrow:"Grow to fit content",stretch:"Follow band height",style:"Style",bold:"Bold",italic:"Italic",underline:"Underline",strike:"Strikethrough",color:"Text color",background:"Background",align:"Horizontal align",valign:"Vertical align",left:"Left",center:"Center",right:"Right",justify:"Justify",top:"Top",middle:"Middle",bottom:"Bottom",border:"Border",none:"None",all:"All",borderWidth:"Border width (mm)",borderColor:"Border color",padding:"Padding (mm)",wrap:"Wrap text",shrink:"Shrink to fit",lineColor:"Line color",lineWidth:"Line width (mm)",dash:"Line style",solid:"Solid",dashed:"Dashed",dotted:"Dotted",fill:"Fill",radius:"Corner radius",src:"Image URL",fit:"Fit",contain:"Contain",cover:"Cover",stretchFit:"Stretch",barcode:"Barcode type",showText:"Show value",ecc:"Error correction",chartType:"Chart type",source:"Rows (expression, empty = current scope)",category:"Category expression",series:"Value expressions (comma separated)",title:"Title",legend:"Legend",showValues:"Show values",stacked:"Stacked",band:"Band",height:"Height (mm)",bandGrow:"Grow to fit content",bandBg:"Background",altBg:"Alternate row background",breakBefore:"Page break before",breakAfter:"Page break after",group:"Group",by:"Group by expression",groupSort:"Sort groups",asc:"Ascending",desc:"Descending",keep:"None",newPage:"New page per group",repeatHeader:"Repeat header on next page",resetPage:"Restart page numbers per group",multi:e=>`${e} selected`,errorExpr:"Expression error",id:"ID",rowHeight:"Row height (mm)",showHeader:"Show header",tableColumns:"Columns (JSON: header, expr, width, format, align, sum)",rowKey:"Row expression",columnKey:"Column expression",valueExpr:"Value expression",aggregate:"Aggregate",corner:"Corner title",totals:"Totals",columns:"Columns (labels)",columnGap:"Column gap (mm)"}},as=["Nanum Gothic","Nanum Myeongjo","Malgun Gothic","Arial","Times New Roman","Courier New"],Se=e=>{let t=Number(e);return Number.isFinite(t)?t:0},Gt=e=>Math.round(e*100)/100;function bn(e){let t=e?.border;if(!t)return{mode:"none",width:.2,color:"#000000"};if(t===!0)return{mode:"all",width:.2,color:"#000000"};if(typeof t=="string"){let n=t.split(/\s+/);return{mode:"all",width:parseFloat(n.find(r=>/^[\d.]+$/.test(r))??"0.2"),color:n.find(r=>r.startsWith("#"))??"#000000"}}return"width"in t||"color"in t||"style"in t?{mode:"all",width:t.width??.2,color:t.color??"#000000"}:{mode:"mixed",width:.2,color:"#000000"}}function xr(e){let t=e?.border;if(!t)return{};if(t===!0||typeof t=="string"||"width"in t||"color"in t||"style"in t)return{top:!0,right:!0,bottom:!0,left:!0};let n=t;return{top:!!n.top,right:!!n.right,bottom:!!n.bottom,left:!!n.left}}function Ut(e,t,n){for(let r of e){let o=bn(r.style),s=xr(r.style);s[t]=n;let a=`${o.width} solid ${o.color}`,l=s.top&&s.right&&s.bottom&&s.left,i=s.top||s.right||s.bottom||s.left;r.style={...r.style,border:l?a:i?Object.fromEntries(Object.entries(s).filter(([,f])=>f).map(([f])=>[f,a])):void 0},r.style.border||delete r.style.border}}function is(e,t,n){let r=e[0],o=u=>{let c=u(r);return e.every(p=>u(p)===c)?c:void 0},s=u=>e.forEach(u),a=u=>()=>o(c=>c.style?.[u]),l=u=>c=>s(p=>{let g={...p.style};c===""||c===void 0||c===null||c===!1?delete g[u]:g[u]=c,p.style=Object.keys(g).length?g:void 0,p.style||delete p.style}),i=[];i.push({label:e.length>1?t.multi(e.length):`${r.type}${r.id?` \xB7 ${r.id}`:""}`,kind:"section"}),i.push({label:t.x,kind:"number",step:.5,get:()=>o(u=>u.x),set:u=>s(c=>c.x=Gt(Se(u)))},{label:t.y,kind:"number",step:.5,get:()=>o(u=>u.y),set:u=>s(c=>c.y=Gt(Se(u)))},{label:t.w,kind:"number",step:.5,get:()=>o(u=>u.w),set:u=>s(c=>c.w=Gt(Se(u)))},{label:t.h,kind:"number",step:.5,get:()=>o(u=>u.h),set:u=>s(c=>c.h=Gt(Se(u)))});let f=new Set(e.map(u=>u.type)),d=f.size===1?r.type:null;if(e.length===1){let u=r;u.type==="text"&&i.push({label:t.text,kind:"textarea",wide:!0,get:()=>u.text,set:c=>u.text=String(c)}),u.type==="field"&&(i.push({label:t.expr,kind:"expr",wide:!0,get:()=>u.expr,set:c=>u.expr=String(c)}),i.push({label:t.format,kind:"text",wide:!0,placeholder:"#,##0",get:()=>u.format??"",set:c=>c?u.format=String(c):delete u.format}),i.push({label:t.nullText,kind:"text",get:()=>u.nullText??"",set:c=>c?u.nullText=String(c):delete u.nullText}),i.push({label:t.suppress,kind:"check",get:()=>!!u.suppressRepeated,set:c=>c?u.suppressRepeated=!0:delete u.suppressRepeated})),u.type==="image"&&(i.push({label:t.src,kind:"text",wide:!0,get:()=>u.src??"",set:c=>u.src=String(c)}),i.push({label:t.expr,kind:"expr",wide:!0,get:()=>u.expr??"",set:c=>c?u.expr=String(c):delete u.expr}),i.push({label:t.fit,kind:"select",options:[{value:"contain",label:t.contain},{value:"cover",label:t.cover},{value:"fill",label:t.stretchFit}],get:()=>u.fit??"contain",set:c=>u.fit=c})),u.type==="barcode"&&(i.push({label:t.barcode,kind:"select",options:["code128","ean13","qr","datamatrix","pdf417"].map(c=>({value:c,label:c.toUpperCase()})),get:()=>u.format??"code128",set:c=>u.format=c}),i.push({label:t.expr,kind:"expr",wide:!0,get:()=>u.expr,set:c=>u.expr=String(c)}),i.push({label:t.showText,kind:"check",get:()=>u.showText!==!1,set:c=>c?delete u.showText:u.showText=!1}),i.push({label:t.ecc,kind:"select",options:["L","M","Q","H"].map(c=>({value:c,label:c})),get:()=>u.ecc??"M",set:c=>u.ecc=c})),u.type==="table"&&(i.push({label:t.source,kind:"expr",wide:!0,get:()=>u.source,set:c=>u.source=String(c)}),i.push({label:t.rowHeight,kind:"number",step:.5,get:()=>u.rowHeight??6,set:c=>u.rowHeight=Se(c)||6}),i.push({label:t.showHeader,kind:"check",get:()=>u.showHeader!==!1,set:c=>c?delete u.showHeader:u.showHeader=!1}),i.push({label:t.altBg,kind:"color",get:()=>u.altBackground??"",set:c=>c?u.altBackground=String(c):delete u.altBackground}),i.push({label:t.tableColumns,kind:"json",wide:!0,get:()=>JSON.stringify(u.columns,null,1),set:c=>{let p=JSON.parse(String(c));if(!Array.isArray(p))throw new Error("array");u.columns=p}})),u.type==="crosstab"&&(i.push({label:t.source,kind:"expr",wide:!0,get:()=>u.source??"",set:c=>c?u.source=String(c):delete u.source}),i.push({label:t.rowKey,kind:"expr",wide:!0,get:()=>u.rowKey,set:c=>u.rowKey=String(c)}),i.push({label:t.columnKey,kind:"expr",wide:!0,get:()=>u.columnKey,set:c=>u.columnKey=String(c)}),i.push({label:t.valueExpr,kind:"expr",wide:!0,get:()=>u.value,set:c=>u.value=String(c)}),i.push({label:t.aggregate,kind:"select",options:["sum","count","avg","min","max"].map(c=>({value:c,label:c})),get:()=>u.aggregate??"sum",set:c=>u.aggregate=c}),i.push({label:t.format,kind:"text",get:()=>u.format??"",set:c=>c?u.format=String(c):delete u.format}),i.push({label:t.corner,kind:"text",get:()=>u.corner??"",set:c=>u.corner=String(c)}),i.push({label:t.totals,kind:"check",get:()=>u.totals!==!1,set:c=>c?delete u.totals:u.totals=!1})),u.type==="chart"&&(i.push({label:t.chartType,kind:"select",options:["bar","hbar","line","area","pie","doughnut"].map(c=>({value:c,label:c})),get:()=>u.chartType,set:c=>u.chartType=c}),i.push({label:t.title,kind:"text",wide:!0,get:()=>u.title??"",set:c=>c?u.title=String(c):delete u.title}),i.push({label:t.source,kind:"expr",wide:!0,get:()=>u.source??"",set:c=>c?u.source=String(c):delete u.source}),i.push({label:t.category,kind:"expr",wide:!0,get:()=>u.category,set:c=>u.category=String(c)}),i.push({label:t.series,kind:"text",wide:!0,get:()=>u.series.map(c=>c.expr).join(", "),set:c=>u.series=String(c).split(",").map(p=>p.trim()).filter(Boolean).map((p,g)=>({...u.series[g],expr:p}))}),i.push({label:t.format,kind:"text",get:()=>u.format??"",set:c=>c?u.format=String(c):delete u.format}),i.push({label:t.legend,kind:"check",get:()=>u.legend??!1,set:c=>u.legend=!!c}),i.push({label:t.showValues,kind:"check",get:()=>!!u.showValues,set:c=>u.showValues=!!c}),i.push({label:t.stacked,kind:"check",get:()=>!!u.stacked,set:c=>u.stacked=!!c}))}if(d==="line"){let u=e;i.push({label:t.lineColor,kind:"color",get:()=>o(c=>c.color)??"#000000",set:c=>u.forEach(p=>p.color=String(c))}),i.push({label:t.lineWidth,kind:"number",step:.05,get:()=>o(c=>c.width)??.2,set:c=>u.forEach(p=>p.width=Se(c))}),i.push({label:t.dash,kind:"select",options:[{value:"solid",label:t.solid},{value:"dashed",label:t.dashed},{value:"dotted",label:t.dotted}],get:()=>o(c=>c.dash)??"solid",set:c=>u.forEach(p=>c==="solid"?delete p.dash:p.dash=c)})}if(d==="rect"){let u=e;i.push({label:t.fill,kind:"color",get:()=>o(c=>c.fill)??"",set:c=>u.forEach(p=>c?p.fill=String(c):delete p.fill)}),i.push({label:t.lineColor,kind:"color",get:()=>o(c=>c.color)??"#000000",set:c=>u.forEach(p=>p.color=String(c))}),i.push({label:t.lineWidth,kind:"number",step:.05,get:()=>o(c=>c.width)??.2,set:c=>u.forEach(p=>p.width=Se(c))}),i.push({label:t.radius,kind:"number",step:.5,get:()=>o(c=>c.radius)??0,set:c=>u.forEach(p=>Se(c)?p.radius=Se(c):delete p.radius)})}let h=[...f].every(u=>u==="text"||u==="field");if((h||d==="barcode"||d==="chart")&&(i.push({label:t.style,kind:"section"}),i.push({label:t.font,kind:"select",options:[{value:"",label:n.font?.family??"Nanum Gothic"},...as.map(u=>({value:u,label:u}))],get:a("fontFamily"),set:l("fontFamily")}),i.push({label:t.fontSize,kind:"number",step:.5,min:4,get:()=>o(u=>u.style?.fontSize)??n.font?.size??9,set:u=>l("fontSize")(Se(u)||void 0)})),h){i.push({label:"",kind:"toggles",toggles:[{label:"B",title:t.bold,get:()=>!!o(p=>!!p.style?.bold),set:p=>l("bold")(p)},{label:"I",title:t.italic,get:()=>!!o(p=>!!p.style?.italic),set:p=>l("italic")(p)},{label:"U",title:t.underline,get:()=>!!o(p=>!!p.style?.underline),set:p=>l("underline")(p)},{label:"S",title:t.strike,get:()=>!!o(p=>!!p.style?.strike),set:p=>l("strike")(p)}]}),i.push({label:t.align,kind:"select",options:[{value:"left",label:t.left},{value:"center",label:t.center},{value:"right",label:t.right},{value:"justify",label:t.justify}],get:()=>o(p=>p.style?.align)??"left",set:p=>l("align")(p==="left"?void 0:p)}),i.push({label:t.valign,kind:"select",options:[{value:"top",label:t.top},{value:"middle",label:t.middle},{value:"bottom",label:t.bottom}],get:()=>o(p=>p.style?.valign)??"middle",set:p=>l("valign")(p==="middle"?void 0:p)}),i.push({label:t.color,kind:"color",get:()=>o(p=>p.style?.color)??"#000000",set:p=>l("color")(p==="#000000"?void 0:p)}),i.push({label:t.background,kind:"color",get:()=>o(p=>p.style?.background)??"",set:l("background")});let u=xr(r.style);i.push({label:t.border,kind:"toggles",toggles:[{label:"\u25A3",title:t.all,get:()=>!!(u.top&&u.right&&u.bottom&&u.left),set:p=>["top","right","bottom","left"].forEach(g=>Ut(e,g,p))},{label:"\u2594",title:t.top,get:()=>!!u.top,set:p=>Ut(e,"top",p)},{label:"\u2581",title:t.bottom,get:()=>!!u.bottom,set:p=>Ut(e,"bottom",p)},{label:"\u258F",title:t.left,get:()=>!!u.left,set:p=>Ut(e,"left",p)},{label:"\u2595",title:t.right,get:()=>!!u.right,set:p=>Ut(e,"right",p)}]});let c=(p,g)=>s(E=>{let M=bn(E.style),$=xr(E.style);if(M.mode==="none")return;let v=`${p??M.width} solid ${g??M.color}`,j=$.top&&$.right&&$.bottom&&$.left;E.style={...E.style,border:j?v:Object.fromEntries(Object.entries($).filter(([,w])=>w).map(([w])=>[w,v]))}});i.push({label:t.borderWidth,kind:"number",step:.05,get:()=>bn(r.style).width,set:p=>c(Se(p))}),i.push({label:t.borderColor,kind:"color",get:()=>bn(r.style).color,set:p=>c(void 0,String(p))}),i.push({label:t.padding,kind:"number",step:.5,get:()=>{let p=r.style?.padding;return typeof p=="number"?p:p?p[1]:1},set:p=>l("padding")(Se(p)===1?void 0:Se(p))}),i.push({label:t.wrap,kind:"check",get:()=>o(p=>p.style?.wrap!==!1),set:p=>l("wrap")(p?void 0:!1)}),i.push({label:t.shrink,kind:"check",get:()=>!!o(p=>!!p.style?.shrinkToFit),set:p=>l("shrinkToFit")(p)}),i.push({label:t.canGrow,kind:"check",get:()=>o(p=>p.canGrow!==!1),set:p=>s(g=>p?delete g.canGrow:g.canGrow=!1)})}return i.push({label:t.visible,kind:"expr",wide:!0,get:()=>o(u=>u.visible??"")??"",set:u=>s(c=>u?c.visible=String(u):delete c.visible)}),i}function ls(e,t,n,r,o){let s=[{label:`${n.band}: ${t}`,kind:"section"},{label:n.height,kind:"number",step:.5,min:1,get:()=>e.height,set:a=>e.height=Math.max(1,Gt(Se(a)))},{label:n.bandGrow,kind:"check",get:()=>e.canGrow!==!1,set:a=>a?delete e.canGrow:e.canGrow=!1},{label:n.bandBg,kind:"color",get:()=>e.background??"",set:a=>a?e.background=String(a):delete e.background}];return o&&(s.push({label:n.altBg,kind:"color",get:()=>e.altBackground??"",set:a=>a?e.altBackground=String(a):delete e.altBackground}),s.push({label:n.columns,kind:"number",step:1,min:1,get:()=>e.columns??1,set:a=>Se(a)>1?e.columns=Math.floor(Se(a)):delete e.columns}),s.push({label:n.columnGap,kind:"number",step:.5,min:0,get:()=>e.columnGap??0,set:a=>Se(a)?e.columnGap=Se(a):delete e.columnGap})),s.push({label:n.breakBefore,kind:"check",get:()=>!!e.pageBreakBefore,set:a=>a?e.pageBreakBefore=!0:delete e.pageBreakBefore},{label:n.breakAfter,kind:"check",get:()=>!!e.pageBreakAfter,set:a=>a?e.pageBreakAfter=!0:delete e.pageBreakAfter},{label:n.visible,kind:"expr",wide:!0,get:()=>e.visible??"",set:a=>a?e.visible=String(a):delete e.visible}),r&&s.push({label:n.group,kind:"section"},{label:n.by,kind:"expr",wide:!0,get:()=>r.by,set:a=>r.by=String(a)},{label:n.groupSort,kind:"select",options:[{value:"",label:n.keep},{value:"asc",label:n.asc},{value:"desc",label:n.desc}],get:()=>r.sort??"",set:a=>a?r.sort=a:delete r.sort},{label:n.newPage,kind:"check",get:()=>!!r.newPage,set:a=>a?r.newPage=!0:delete r.newPage},{label:n.repeatHeader,kind:"check",get:()=>!!r.repeatHeader,set:a=>a?r.repeatHeader=!0:delete r.repeatHeader},{label:n.resetPage,kind:"check",get:()=>!!r.resetPageNumber,set:a=>a?r.resetPageNumber=!0:delete r.resetPageNumber}),s}function cs(e,t){let n=e.page??(e.page={}),r=()=>{let i=n.margins??15;return typeof i=="number"?`${i}`:i.join(" ")},o=()=>typeof e.watermark=="string"?{text:e.watermark}:Array.isArray(e.watermark)?e.watermark[0]??{}:e.watermark??{},s=i=>{let f={...o(),...i};for(let d of Object.keys(f))(f[d]===void 0||f[d]===""||f[d]===!1)&&delete f[d];!f.text&&!f.image?delete e.watermark:e.watermark=Object.keys(f).length===1?String(f.text):f},a=()=>Array.isArray(e.emboss)?e.emboss[0]??{}:e.emboss??{},l=i=>{let f={...a(),...i};for(let d of Object.keys(f))(f[d]===void 0||f[d]==="")&&delete f[d];!f.text&&!f.centerText&&!f.image?delete e.emboss:e.emboss=f};return[{label:t.report,kind:"section"},{label:t.name,kind:"text",wide:!0,get:()=>e.name??"",set:i=>e.name=String(i)},{label:t.size,kind:"select",options:Object.keys(ot).map(i=>({value:i,label:`${i} (${ot[i][0]}\xD7${ot[i][1]})`})),get:()=>Array.isArray(n.size)?"A4":n.size??"A4",set:i=>n.size=i},{label:t.orientation,kind:"select",options:[{value:"portrait",label:t.portrait},{value:"landscape",label:t.landscape}],get:()=>n.orientation??"portrait",set:i=>n.orientation=i},{label:t.margins,kind:"text",wide:!0,get:r,set:i=>{let f=String(i).trim().split(/[\s,]+/).map(Number).filter(Number.isFinite);n.margins=f.length>=4?[f[0],f[1],f[2],f[3]]:f.length?f[0]:15}},{label:t.font,kind:"select",options:as.map(i=>({value:i,label:i})),get:()=>e.font?.family??"Nanum Gothic",set:i=>e.font={...e.font,family:String(i)}},{label:t.fontSize,kind:"number",step:.5,get:()=>e.font?.size??9,set:i=>e.font={...e.font,size:Se(i)||9}},{label:t.dataSource,kind:"text",placeholder:"rows",get:()=>e.dataSource??"",set:i=>i?e.dataSource=String(i):delete e.dataSource},{label:t.sort,kind:"text",wide:!0,get:()=>(e.sort??[]).join(", "),set:i=>{let f=String(i).split(",").map(d=>d.trim()).filter(Boolean);f.length?e.sort=f:delete e.sort}},{label:t.filter,kind:"expr",wide:!0,get:()=>e.filter??"",set:i=>i?e.filter=String(i):delete e.filter},{label:t.fillEmpty,kind:"check",get:()=>!!e.fillEmptyRows,set:i=>i?e.fillEmptyRows=!0:delete e.fillEmptyRows},{label:t.skipHeader,kind:"check",get:()=>!!e.pageHeaderSkipFirst,set:i=>i?e.pageHeaderSkipFirst=!0:delete e.pageHeaderSkipFirst},{label:t.watermark,kind:"text",wide:!0,placeholder:'\uC0AC\uBCF8 / {params.user} {format(now(), "yyyy-MM-dd HH:mm")}',get:()=>o().text??"",set:i=>s({text:String(i)})},{label:t.wmRepeat,kind:"check",get:()=>!!o().repeat,set:i=>s({repeat:!!i||void 0})},{label:t.wmOpacity,kind:"number",step:.02,min:0,get:()=>o().opacity??.12,set:i=>s({opacity:Se(i)})},{label:t.emboss,kind:"text",wide:!0,placeholder:"(\uC8FC)\uD68C\uC0AC\uBA85 \xB7 COMPANY \xB7",get:()=>a().text??"",set:i=>l({text:String(i)})},{label:t.embossCenter,kind:"text",get:()=>a().centerText??"",set:i=>l({centerText:String(i)})},{label:t.params,kind:"json",wide:!0,get:()=>e.params?JSON.stringify(e.params,null,2):"",set:i=>{let f=String(i).trim();if(!f){delete e.params;return}e.params=JSON.parse(f)}}]}function kr(e,t){if(!e.trim())return"";let n=Dn(e);return n?`${t.errorExpr}: ${n}`:""}var ji=96/25.4,vr={ko:{title:"\uC81C\uBAA9",pageHeader:"\uD398\uC774\uC9C0 \uBA38\uB9AC\uAE00",columnHeader:"\uC5F4 \uBA38\uB9AC\uAE00",groupHeader:"\uADF8\uB8F9 \uBA38\uB9AC\uAE00",detail:"\uC0C1\uC138",groupFooter:"\uADF8\uB8F9 \uBC14\uB2E5\uAE00",summary:"\uC694\uC57D (\uD569\uACC4)",pageFooter:"\uD398\uC774\uC9C0 \uBC14\uB2E5\uAE00",noData:"\uC790\uB8CC \uC5C6\uC74C"},en:{title:"Title",pageHeader:"Page header",columnHeader:"Column header",groupHeader:"Group header",detail:"Detail",groupFooter:"Group footer",summary:"Summary",pageFooter:"Page footer",noData:"No data"}},Ci={ko:{design:"\uB514\uC790\uC778",preview:"\uBBF8\uB9AC\uBCF4\uAE30",json:"JSON",newReport:"\uC0C8\uB85C \uB9CC\uB4E4\uAE30",open:"\uC5F4\uAE30",save:"\uC800\uC7A5",undo:"\uC2E4\uD589 \uCDE8\uC18C",redo:"\uB2E4\uC2DC \uC2E4\uD589",cut:"\uC798\uB77C\uB0B4\uAE30",copy:"\uBCF5\uC0AC",paste:"\uBD99\uC5EC\uB123\uAE30",del:"\uC0AD\uC81C",dup:"\uBCF5\uC81C",alignL:"\uC67C\uCABD \uB9DE\uCDA4",alignC:"\uAC00\uC6B4\uB370 \uB9DE\uCDA4",alignR:"\uC624\uB978\uCABD \uB9DE\uCDA4",alignT:"\uC704 \uB9DE\uCDA4",alignM:"\uC911\uAC04 \uB9DE\uCDA4",alignB:"\uC544\uB798 \uB9DE\uCDA4",sameW:"\uAC19\uC740 \uB108\uBE44",sameH:"\uAC19\uC740 \uB192\uC774",grid:"\uACA9\uC790\uC5D0 \uB9DE\uCDA4",toolbox:"\uB3C4\uAD6C",fields:"\uB370\uC774\uD130 \uD544\uB4DC",bands:"\uBC34\uB4DC",addGroup:"\uADF8\uB8F9 \uCD94\uAC00",apply:"\uC801\uC6A9",props:"\uC18D\uC131",tools:{text:"\uD14D\uC2A4\uD2B8",field:"\uD544\uB4DC",line:"\uC120",rect:"\uC0AC\uAC01\uD615",image:"\uC774\uBBF8\uC9C0",barcode:"\uBC14\uCF54\uB4DC",qr:"QR \uCF54\uB4DC",chart:"\uCC28\uD2B8",table:"\uD45C (\uBAA9\uB85D)",crosstab:"\uD06C\uB85C\uC2A4\uD0ED",pageNumber:"\uCABD \uBC88\uD638",today:"\uC624\uB298 \uB0A0\uC9DC"},noFields:"\uB370\uC774\uD130\uB97C \uC5F0\uACB0\uD558\uBA74 \uD544\uB4DC\uAC00 \uB098\uC635\uB2C8\uB2E4",confirmNew:"\uD604\uC7AC \uBCF4\uACE0\uC11C\uB97C \uC9C0\uC6B0\uACE0 \uC0C8\uB85C \uB9CC\uB4E4\uAE4C\uC694?",jsonError:"JSON \uC624\uB958",add:"\uCD94\uAC00",remove:"\uC0AD\uC81C",params:"\uD30C\uB77C\uBBF8\uD130",dropHint:"\uB3C4\uAD6C\uB098 \uD544\uB4DC\uB97C \uB04C\uC5B4\uB2E4 \uB193\uC73C\uC138\uC694"},en:{design:"Design",preview:"Preview",json:"JSON",newReport:"New",open:"Open",save:"Save",undo:"Undo",redo:"Redo",cut:"Cut",copy:"Copy",paste:"Paste",del:"Delete",dup:"Duplicate",alignL:"Align left",alignC:"Align center",alignR:"Align right",alignT:"Align top",alignM:"Align middle",alignB:"Align bottom",sameW:"Same width",sameH:"Same height",grid:"Snap to grid",toolbox:"Toolbox",fields:"Data fields",bands:"Bands",addGroup:"Add group",apply:"Apply",props:"Properties",tools:{text:"Text",field:"Field",line:"Line",rect:"Rectangle",image:"Image",barcode:"Barcode",qr:"QR code",chart:"Chart",table:"Table",crosstab:"Crosstab",pageNumber:"Page number",today:"Today"},noFields:"Connect data to list its fields",confirmNew:"Discard this report and start a new one?",jsonError:"JSON error",add:"Add",remove:"Remove",params:"Parameters",dropHint:"Drop tools or fields here"}},Ai={new:"M14 3H7a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7zM14 3v4h4M12 11v6M9 14h6",open:"M3 7a1 1 0 0 1 1-1h5l2 2h8a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z",save:"M5 4h11l3 3v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1zM8 4v5h7V4M8 20v-6h8v6",undo:"M9 14L4 9l5-5M4 9h10a6 6 0 0 1 0 12h-3",redo:"M15 14l5-5-5-5M20 9H10a6 6 0 0 0 0 12h3",cut:"M6 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM20 4L8.1 15.9M14.5 14.5L20 20M8.1 8.1L12 12",copy:"M9 9h10v12H9zM5 15V3h10",paste:"M9 4h6v3H9zM7 5H5v16h14V5h-2",del:"M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3",alignL:"M4 3v18M8 7h12M8 15h7",alignC:"M12 3v18M6 7h12M8.5 15h7",alignR:"M20 3v18M4 7h12M9 15h7",alignT:"M3 4h18M7 8v12M15 8v7",alignM:"M3 12h18M7 6v12M15 8.5v7",alignB:"M3 20h18M7 4v12M15 9v7",sameW:"M4 8h16M4 16h16M4 5v6M20 5v6M4 13v6M20 13v6",sameH:"M8 4v16M16 4v16M5 4h6M5 20h6M13 4h6M13 20h6",grid:"M4 4h16v16H4zM4 9.3h16M4 14.6h16M9.3 4v16M14.6 4v16",text:"M5 6V4h14v2M12 4v16M9 20h6",field:"M4 7h16v10H4zM8 11h8",line:"M4 20L20 4",rect:"M4 6h16v12H4z",image:"M4 5h16v14H4zM4 15l4-4 4 4 3-3 5 5M15 9.5a1.5 1.5 0 1 0 0-.01",barcode:"M4 5v14M7 5v14M9 5v14M12 5v14M15 5v14M17 5v14M20 5v14",qr:"M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h2v2h-2zM18 18h2v2h-2zM14 18h2M18 14h2",chart:"M4 20V10M10 20V4M16 20v-7M2 20h20",pageNumber:"M7 3h7l4 4v14H7zM10 14h1v4M13 14h2v4h-2",table:"M4 5h16v14H4zM4 10h16M4 14.5h16M10 5v14",crosstab:"M4 4h16v16H4zM4 9h16M9 4v16M14 9v11M9 14.5h11",today:"M4 6h16v14H4zM4 10h16M8 3v5M16 3v5",plus:"M12 5v14M5 12h14",minus:"M5 12h14",x:"M6 6l12 12M18 6L6 18"},Le=e=>`<svg viewBox="0 0 24 24" width="17" height="17" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="${Ai[e]}"/></svg>`,$r=e=>typeof e=="string"&&nn(e)?e.replace(/[^#\w(),.\s%]/g,""):"transparent",Li=e=>String(e??"").replace(/[^\p{L}\p{N} _-]/gu,""),ye=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),xe=(e,t=.01)=>Math.round(e/t)*t,Fi=["text","field","line","rect","image","barcode","qr","chart","table","crosstab","pageNumber","today"];function us(e,t){let[n]=e.key.split(":"),r=vr[t][n];return e.group?`${r} \xB7 ${e.group.by}`:r}function Di(e){return e.split(":")[0]}function Ii(e,t={}){let n=t.lang??"ko",r=ss[n],o=Ci[n],s=Ie(t.definition??gn());wt(s);let a=t.data??{},l=t.zoom??1,i=1,f="design",d=new Set,h=null,u=[],c=[JSON.stringify(s)],p=[],g=null,E,M=kt();e.classList.add("fr-designer"),e.tabIndex=-1,e.innerHTML=`
|
|
85
|
+
<div class="fr-status" aria-live="polite"><span class="fr-status-text"></span><a class="fr-badge" href="https://freereport.app/pricing/" target="_blank" rel="noopener" hidden>FreeReport \xB7 \uBB34\uB8CC \uC0AC\uC6A9</a></div>`;let c=h=>e.querySelector(h),p=c(".fr-body"),b=c(".fr-pages"),S=c(".fr-overlay"),M=c(".fr-status-text"),$=c(".fr-pageno input"),v=c(".fr-total"),T=c(".fr-zoom"),x=c(".fr-params"),P=c(".fr-params-toggle"),j=c('[data-act="menu"]'),F=c(".fr-menu-list"),Z=h=>{S.hidden=h===null,c(".fr-overlay-text").textContent=h??""},te=h=>{!x||!P||(x.hidden=!h,P.setAttribute("aria-expanded",String(h)))};te(t.paramsOpen??Object.entries(o.params??{}).some(([,h])=>h.required&&h.default===void 0));let U=null,re=()=>{if(!a)return 1;let h=Math.max(100,p.clientWidth-48),D=Math.max(100,p.clientHeight-32);return f==="width"?Math.min(1.25,h/(a.width*yt)):f==="page"?Math.min(h/(a.width*yt),D/(a.height*yt)):f},be=h=>{if(!a||h.dataset.drawn)return;let D=Number(h.dataset.index);h.innerHTML=We(a.pages[D],{className:"fr-page-svg"}),h.dataset.drawn="1",ht(h)},V=()=>{if(!a)return;d=re();let h=a.width*yt*d,D=a.height*yt*d;if(b.style.setProperty("--fr-page-w",`${h}px`),b.style.setProperty("--fr-page-h",`${D}px`),T){let q=typeof f=="number"?String(f):f,m=[...T.options].some(k=>k.value===q),y=T.querySelector('option[value="custom"]');y.hidden=m,y.textContent=`${Math.round(d*100)}%`,T.value=m?q:"custom"}},fe=()=>{if(U?.disconnect(),b.innerHTML="",!a)return;if(!a.pages.length){b.innerHTML=`<p class="fr-empty">${n.empty}</p>`;return}let h=document.createDocumentFragment();a.pages.forEach((D,q)=>{let m=document.createElement("div");m.className="fr-page",m.dataset.index=String(q),m.setAttribute("aria-label",`${n.page} ${q+1}`),h.appendChild(m)}),b.appendChild(h),V(),U=typeof IntersectionObserver<"u"?new IntersectionObserver(D=>{for(let q of D)q.isIntersecting&&be(q.target);me()},{root:p,rootMargin:"600px 0px"}):null,b.querySelectorAll(".fr-page").forEach((D,q)=>U?U.observe(D):q<3&&be(D)),v&&(v.textContent=`/ ${a.pages.length}`),A="",E=[],M.textContent=`${n.pages(a.pages.length)} \xB7 ${n.rows(a.rowCount)} \xB7 ${a.ms}ms`,me()},me=()=>{if(!a)return;let h=a.height*yt*d+Pi;g=Math.min(a.pages.length-1,Math.max(0,Math.round(p.scrollTop/h))),$&&document.activeElement!==$&&($.value=String(g+1)),ce()},_=-1,ce=()=>{if(!(!a?.pages.length||g===_)){_=g;try{t.onPageChange?.(g+1,a.pages.length)}catch(h){console.error(h)}}},X=(h,D)=>{let q=h instanceof Error?h:new Error(String(h));console.error(q);try{t.onError?.(q,D)}catch(m){console.error(m)}return q},B=h=>{if(!a)return;let D=Math.min(a.pages.length-1,Math.max(0,h)),q=b.children[D];q&&(p.scrollTop=q.offsetTop-b.offsetTop),g=D,$&&($.value=String(D+1)),ce()},O=h=>{let D=a?p.scrollTop/Math.max(1,p.scrollHeight):0;f=typeof h=="number"?Math.min(4,Math.max(.25,h)):h,V(),p.scrollTop=D*p.scrollHeight},Q=0,oe=async()=>{let h=++Q;Z(n.loading);let D="data";try{if(t.fetchData){let q=await t.fetchData(i);if(h!==Q)return;l.setData(q)}if(D="layout",l.setParams(i),await nt(l.definition),u)return;a=l.layout(),_=-1,fe();try{t.onReady?.({pages:a.pages.length,rows:a.rowCount,ms:a.ms,params:{...i}})}catch(q){console.error(q)}}catch(q){let m=X(q,D);b.innerHTML=`<p class="fr-empty">${n.error}: ${Ge(m.message)}</p>`}finally{Z(null)}},pe=async h=>{Z(n.exporting);try{await l.download(h,t.fileName)}catch(D){we(`${n.error}: ${X(D,"output").message}`)}finally{Z(null)}},we=h=>{M.textContent=h},Y=()=>{!F||!j||(F.hidden=!0,j.setAttribute("aria-expanded","false"))},J=new AbortController;e.addEventListener("click",h=>{let D=h.target.closest("[data-act]");if(!D||!e.contains(D)){h.target.closest(".fr-menu")||Y();return}let q=D.dataset.act;switch(q!=="menu"&&Y(),q){case"first":B(0);break;case"prev":B(g-1);break;case"next":B(g+1);break;case"last":B((a?.pages.length??1)-1);break;case"zoomIn":O(Math.round((d+.1)*10)/10);break;case"zoomOut":O(Math.round((d-.1)*10)/10);break;case"print":l.print().catch(m=>we(`${n.error}: ${X(m,"output").message}`));break;case"pdf":pe("pdf");break;case"xlsx":pe("xlsx");break;case"xlsxData":pe("xlsx-data");break;case"csv":pe("csv");break;case"hwpx":pe("hwpx");break;case"findNext":K(1);break;case"menu":{let m=F.hidden;F.hidden=!m,j.setAttribute("aria-expanded",String(m));break}}},{signal:J.signal});let le=h=>{e.contains(h.target)||Y()};document.addEventListener("click",le),P?.addEventListener("click",()=>te(x.hidden)),T?.addEventListener("change",()=>{let h=T.value;h!=="custom"&&O(h==="width"||h==="page"?h:Number(h))}),$?.addEventListener("change",()=>B(Number($.value)-1)),$?.addEventListener("keydown",h=>{h.key==="Enter"&&B(Number($.value)-1)}),p.addEventListener("scroll",()=>me(),{passive:!0}),p.addEventListener("keydown",h=>{h.key==="PageDown"||h.key==="ArrowRight"&&!h.altKey?(h.preventDefault(),B(g+1)):h.key==="PageUp"||h.key==="ArrowLeft"?(h.preventDefault(),B(g-1)):h.key==="Home"&&h.ctrlKey?(h.preventDefault(),B(0)):h.key==="End"&&h.ctrlKey?(h.preventDefault(),B((a?.pages.length??1)-1)):(h.ctrlKey||h.metaKey)&&h.key.toLowerCase()==="p"?(h.preventDefault(),l.print()):(h.ctrlKey||h.metaKey)&&h.key.toLowerCase()==="f"&&ue?(h.preventDefault(),ue.focus(),ue.select()):(h.ctrlKey||h.metaKey)&&(h.key==="+"||h.key==="=")?(h.preventDefault(),O(d+.1)):(h.ctrlKey||h.metaKey)&&h.key==="-"&&(h.preventDefault(),O(d-.1))}),p.addEventListener("wheel",h=>{h.ctrlKey&&(h.preventDefault(),O(Math.round(d*(h.deltaY<0?1.1:1/1.1)*100)/100))},{passive:!1}),x?.addEventListener("submit",async h=>{h.preventDefault();let D={...i};x.querySelectorAll("input, select").forEach(m=>{let y=m.dataset.type,k=m.value;D[m.name]=y==="number"?k===""?null:Number(k):y==="boolean"?k==="true":k});let q;try{q=await t.onParamsSubmit?.({...D})}catch(m){X(m,"data");return}q!==!1&&(i=q&&typeof q=="object"?{...D,...q}:D,oe())});let de=typeof ResizeObserver<"u"?new ResizeObserver(()=>{typeof f!="number"&&V()}):null;de?.observe(p);let ue=c(".fr-search input"),ae=c(".fr-search-count"),E=[],N=-1,A="",C=1,ne=h=>{if(E=[],!a||!h)return;let D=h.toLowerCase();a.pages.forEach((q,m)=>{for(let y of q.items)if(!(y.kind!=="text"||y.source?.band==="watermark"))for(let k of y.lines){let w=k.text.toLowerCase().indexOf(D);if(w<0)continue;let R=[...k.text].length||1,L=y.font.size*(25.4/72);E.push({page:m,x:k.x+k.width*w/R,y:k.y-L*.85,w:Math.max(1,k.width*[...h].length/R),h:L*1.1*C})}})},H=()=>{if(b.querySelectorAll(".fr-hit").forEach(k=>k.remove()),!a||N<0||!E[N])return;let h=E[N];B(h.page);let D=b.children[h.page];be(D);let q=document.createElement("div");q.className="fr-hit";let m=D.clientWidth/a.width,y=D.clientHeight/a.height;Object.assign(q.style,{left:`${h.x*m}px`,top:`${h.y*y}px`,width:`${h.w*m}px`,height:`${h.h*y}px`}),D.appendChild(q),p.scrollTop=D.offsetTop-b.offsetTop+h.y*y-p.clientHeight/3},K=h=>{let D=ue?.value.trim()??"";if(D!==A&&(A=D,ne(D),N=-1),!E.length){ae&&(ae.textContent=D?n.findNone:""),H();return}N=(N+h+E.length)%E.length,ae&&(ae.textContent=n.findCount(N+1,E.length)),H()};return ue?.addEventListener("keydown",h=>{h.key==="Enter"?(h.preventDefault(),K(h.shiftKey?-1:1)):h.key==="Escape"&&(ue.value="",K(1),p.focus())}),ue?.addEventListener("input",()=>{ue.value||K(1)}),Or(t.licenseKey).then(h=>{let D=c(".fr-badge");D&&h&&(D.hidden=!1)}),oe(),{report:l,refresh:oe,async setData(h){l.setData(h),await oe()},async setParams(h){i={...i,...h},await oe()},async setDefinition(h){l.setDefinition(h);let D=c(".fr-params");if(D){let q={};for(let[m,y]of Object.entries(h.params??{}))q[m]=i[m]??y.default;i=q,D.innerHTML=`${Object.entries(h.params??{}).map(([m,y])=>ns(m,y,i[m],n)).join("")}<button type="submit" class="fr-btn fr-primary">${n.search}</button>`}await oe()},goTo:h=>B(h-1),setZoom:O,print:()=>l.print(),destroy(){u=!0,U?.disconnect(),de?.disconnect(),document.removeEventListener("click",le),J.abort(),e.innerHTML="",e.classList.remove("fr-viewer")}}}function ze(e){let t=e.bands,n=[],r=(o,s,i,l)=>{s&&n.push({key:o,band:s,group:i,groupIndex:l})};return r("title",t.title),r("pageHeader",t.pageHeader),r("columnHeader",t.columnHeader),(t.groups??[]).forEach((o,s)=>r(`groupHeader:${s}`,o.header,o,s)),r("detail",t.detail),[...t.groups??[]].map((o,s)=>[o,s]).reverse().forEach(([o,s])=>r(`groupFooter:${s}`,o.footer,o,s)),r("summary",t.summary),r("noData",t.noData),r("pageFooter",t.pageFooter),n}function Te(e,t){let[n,r]=t.split(":");return n==="groupHeader"?e.bands.groups?.[Number(r)]?.header:n==="groupFooter"?e.bands.groups?.[Number(r)]?.footer:e.bands[n]}function wr(e,t,n){let[r,o]=t.split(":");if(r==="groupHeader"||r==="groupFooter"){let i=e.bands.groups?.[Number(o)];if(!i)return;r==="groupHeader"?i.header=n:i.footer=n;return}let s=r;n?e.bands[s]=n:delete e.bands[s]}var rs=0;function wt(e){let t=new Set;for(let r of ze(e))for(let o of r.band.elements)o.id&&t.add(o.id);let n=new Set;for(let r of ze(e))for(let o of r.band.elements){if(o.id&&/^[\w-]{1,64}$/.test(String(o.id))&&!n.has(o.id)){n.add(o.id);continue}let s;do s=`e${++rs}`;while(t.has(s));t.add(s),n.add(s),o.id=s}}function xt(e){let t=new Set(ze(e).flatMap(r=>r.band.elements.map(o=>o.id))),n;do n=`e${++rs}`;while(t.has(n));return n}function je(e,t){for(let n of ze(e)){let r=n.band.elements.findIndex(o=>o.id===t);if(r>=0)return{slot:n,el:n.band.elements[r],index:r}}return null}function os(e,t,n,r,o,s){let i=Math.min(Math.max(o,5),8);switch(e){case"field":return{id:t,type:"field",x:n,y:r,w:30,h:i,expr:s??"field",style:void 0};case"line":return{id:t,type:"line",x:n,y:r,w:40,h:0,width:.2};case"rect":return{id:t,type:"rect",x:n,y:r,w:30,h:15,width:.2};case"image":return{id:t,type:"image",x:n,y:r,w:25,h:15,src:"",fit:"contain"};case"barcode":return{id:t,type:"barcode",x:n,y:r,w:45,h:12,expr:"'ABC-12345'",format:"code128"};case"qr":return{id:t,type:"barcode",x:n,y:r,w:18,h:18,expr:"'https://freereport.app'",format:"qr"};case"chart":return{id:t,type:"chart",x:n,y:r,w:90,h:50,chartType:"bar",category:s??"name",series:[{expr:"value"}]};case"table":return{id:t,type:"table",x:n,y:r,w:120,h:18,source:"items",columns:[{header:"\uD488\uBAA9",expr:"name"},{header:"\uC218\uB7C9",expr:"qty",width:20,format:"#,##0"},{header:"\uAE08\uC561",expr:"amount",width:30,format:"#,##0",sum:!0}]};case"crosstab":return{id:t,type:"crosstab",x:n,y:r,w:150,h:30,rowKey:s??"region",columnKey:"category",value:"amount",corner:""};case"pageNumber":return{id:t,type:"text",x:n,y:r,w:30,h:i,text:"{page} / {pages}",style:{align:"center"}};case"today":return{id:t,type:"text",x:n,y:r,w:30,h:i,text:"{format(today(), 'yyyy-MM-dd')}"};default:return{id:t,type:"text",x:n,y:r,w:30,h:i,text:"\uD14D\uC2A4\uD2B8"}}}var Ie=e=>{if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}return JSON.parse(JSON.stringify(e))};function gn(){return{version:1,name:"\uC0C8 \uBCF4\uACE0\uC11C",page:{size:"A4",orientation:"portrait",margins:15},font:{family:"Nanum Gothic",size:9},bands:{title:{height:14,elements:[{id:"e1",type:"text",x:0,y:0,w:180,h:12,text:"\uBCF4\uACE0\uC11C \uC81C\uBAA9",style:{fontSize:16,bold:!0,align:"center"}}]},columnHeader:{height:7,elements:[]},detail:{height:6,elements:[]},summary:{height:8,elements:[]},pageFooter:{height:8,elements:[{id:"e2",type:"text",x:0,y:1,w:180,h:6,text:"{page} / {pages}",style:{align:"center",fontSize:8}}]}}}}var ss={ko:{report:"\uBCF4\uACE0\uC11C",name:"\uC774\uB984",page:"\uC6A9\uC9C0",size:"\uD06C\uAE30",orientation:"\uBC29\uD5A5",portrait:"\uC138\uB85C",landscape:"\uAC00\uB85C",margins:"\uC5EC\uBC31 (\uC0C1 \uC6B0 \uD558 \uC88C, mm)",font:"\uAE30\uBCF8 \uAE00\uAF34",fontSize:"\uAE00\uC790 \uD06C\uAE30 (pt)",dataSource:"\uB370\uC774\uD130 \uBC30\uC5F4 \uC774\uB984",sort:"\uC815\uB82C (\uC27C\uD45C\uB85C \uAD6C\uBD84, -\uB294 \uB0B4\uB9BC\uCC28\uC21C)",filter:"\uD544\uD130 \uC2DD",fillEmpty:"\uBE48 \uD589\uC73C\uB85C \uD398\uC774\uC9C0 \uCC44\uC6B0\uAE30",skipHeader:"\uCCAB \uD398\uC774\uC9C0\uC5D0 \uBA38\uB9AC\uAE00 \uC228\uAE30\uAE30",watermark:"\uC6CC\uD130\uB9C8\uD06C \uBB38\uAD6C",wmRepeat:"\uC804\uBA74 \uBC18\uBCF5 (\uBCF4\uC548 \uD328\uD134)",wmOpacity:"\uC6CC\uD130\uB9C8\uD06C \uBD88\uD22C\uBA85\uB3C4",emboss:"\uC5E0\uBCF4\uC2F1 \uBB38\uAD6C",embossCenter:"\uC5E0\uBCF4\uC2F1 \uAC00\uC6B4\uB370 \uAE00\uC790",params:"\uD30C\uB77C\uBBF8\uD130 (JSON)",position:"\uC704\uCE58\uC640 \uD06C\uAE30 (mm)",x:"X",y:"Y",w:"\uB108\uBE44",h:"\uB192\uC774",text:"\uD14D\uC2A4\uD2B8 (\uC911\uAD04\uD638 \uC548\uC740 \uC2DD: {amount:#,##0})",expr:"\uC2DD",format:"\uC11C\uC2DD (#,##0 \xB7 yyyy-MM-dd \xB7 korean)",nullText:"\uAC12\uC774 \uC5C6\uC744 \uB54C",suppress:"\uAC19\uC740 \uAC12 \uBC18\uBCF5 \uC228\uAE30\uAE30",visible:"\uD45C\uC2DC \uC870\uAC74 (\uC2DD)",canGrow:"\uB0B4\uC6A9\uC5D0 \uB9DE\uCDB0 \uB298\uB9AC\uAE30",stretch:"\uBC34\uB4DC \uB192\uC774 \uB530\uB77C\uAC00\uAE30",style:"\uC2A4\uD0C0\uC77C",bold:"\uAD75\uAC8C",italic:"\uAE30\uC6B8\uC784",underline:"\uBC11\uC904",strike:"\uCDE8\uC18C\uC120",color:"\uAE00\uC790\uC0C9",background:"\uBC30\uACBD\uC0C9",align:"\uAC00\uB85C \uC815\uB82C",valign:"\uC138\uB85C \uC815\uB82C",left:"\uC67C\uCABD",center:"\uAC00\uC6B4\uB370",right:"\uC624\uB978\uCABD",justify:"\uC591\uCABD",top:"\uC704",middle:"\uAC00\uC6B4\uB370",bottom:"\uC544\uB798",border:"\uD14C\uB450\uB9AC",none:"\uC5C6\uC74C",all:"\uBAA8\uB450",borderWidth:"\uD14C\uB450\uB9AC \uB450\uAED8 (mm)",borderColor:"\uD14C\uB450\uB9AC \uC0C9",padding:"\uC548\uCABD \uC5EC\uBC31 (mm)",wrap:"\uC904\uBC14\uAFC8",shrink:"\uAE00\uC790 \uC904\uC5EC \uB9DE\uCD94\uAE30",lineColor:"\uC120 \uC0C9",lineWidth:"\uC120 \uB450\uAED8 (mm)",dash:"\uC120 \uBAA8\uC591",solid:"\uC2E4\uC120",dashed:"\uD30C\uC120",dotted:"\uC810\uC120",fill:"\uCC44\uC6B0\uAE30",radius:"\uBAA8\uC11C\uB9AC \uB465\uAE00\uAE30",src:"\uC774\uBBF8\uC9C0 \uC8FC\uC18C",fit:"\uB9DE\uCDA4",contain:"\uBE44\uC728 \uC720\uC9C0",cover:"\uCC44\uC6B0\uAE30(\uC798\uB9BC)",stretchFit:"\uB298\uC774\uAE30",barcode:"\uBC14\uCF54\uB4DC \uC885\uB958",showText:"\uAC12 \uD45C\uC2DC",ecc:"\uC624\uB958 \uC815\uC815",chartType:"\uCC28\uD2B8 \uC885\uB958",source:"\uB370\uC774\uD130 (\uC2DD, \uBE44\uC6B0\uBA74 \uD604\uC7AC \uBC94\uC704)",category:"\uD56D\uBAA9 \uC2DD",series:"\uAC12 \uC2DD (\uC27C\uD45C\uB85C \uC5EC\uB7EC \uAC1C)",title:"\uC81C\uBAA9",legend:"\uBC94\uB840",showValues:"\uAC12 \uD45C\uC2DC",stacked:"\uB204\uC801",band:"\uBC34\uB4DC",height:"\uB192\uC774 (mm)",bandGrow:"\uB0B4\uC6A9\uC5D0 \uB9DE\uCDB0 \uB298\uB9AC\uAE30",bandBg:"\uBC30\uACBD\uC0C9",altBg:"\uC904\uBB34\uB2AC \uBC30\uACBD\uC0C9",breakBefore:"\uC55E\uC5D0\uC11C \uD398\uC774\uC9C0 \uB098\uB204\uAE30",breakAfter:"\uB4A4\uC5D0\uC11C \uD398\uC774\uC9C0 \uB098\uB204\uAE30",group:"\uADF8\uB8F9",by:"\uADF8\uB8F9 \uAE30\uC900 \uC2DD",groupSort:"\uADF8\uB8F9 \uC815\uB82C",asc:"\uC624\uB984\uCC28\uC21C",desc:"\uB0B4\uB9BC\uCC28\uC21C",keep:"\uC5C6\uC74C",newPage:"\uADF8\uB8F9\uB9C8\uB2E4 \uC0C8 \uD398\uC774\uC9C0",repeatHeader:"\uB2E4\uC74C \uD398\uC774\uC9C0\uC5D0 \uBA38\uB9AC\uAE00 \uBC18\uBCF5",resetPage:"\uADF8\uB8F9\uB9C8\uB2E4 \uCABD \uBC88\uD638 \uC0C8\uB85C",multi:e=>`${e}\uAC1C \uC120\uD0DD\uB428`,errorExpr:"\uC2DD \uC624\uB958",id:"ID",rowHeight:"\uD589 \uB192\uC774 (mm)",showHeader:"\uBA38\uB9AC\uAE00 \uD45C\uC2DC",tableColumns:"\uC5F4 (JSON: header, expr, width, format, align, sum)",rowKey:"\uD589 \uAE30\uC900 \uC2DD",columnKey:"\uC5F4 \uAE30\uC900 \uC2DD",valueExpr:"\uAC12 \uC2DD",aggregate:"\uC9D1\uACC4",corner:"\uC67C\uCABD \uC704 \uC81C\uBAA9",totals:"\uD569\uACC4 \uD589\xB7\uC5F4",columns:"\uB2E4\uB2E8 (\uC5F4 \uC218, \uB77C\uBCA8 \uCD9C\uB825)",columnGap:"\uB2E8 \uC0AC\uC774 \uAC04\uACA9 (mm)"},en:{report:"Report",name:"Name",page:"Paper",size:"Size",orientation:"Orientation",portrait:"Portrait",landscape:"Landscape",margins:"Margins (top right bottom left, mm)",font:"Default font",fontSize:"Font size (pt)",dataSource:"Data array name",sort:"Sort (comma separated, - for descending)",filter:"Filter expression",fillEmpty:"Fill pages with blank rows",skipHeader:"Hide page header on first page",watermark:"Watermark text",wmRepeat:"Repeat over the page (security pattern)",wmOpacity:"Watermark opacity",emboss:"Emboss text",embossCenter:"Emboss centre text",params:"Parameters (JSON)",position:"Position and size (mm)",x:"X",y:"Y",w:"Width",h:"Height",text:"Text (expressions in braces: {amount:#,##0})",expr:"Expression",format:"Format (#,##0 \xB7 yyyy-MM-dd \xB7 korean)",nullText:"Text when empty",suppress:"Hide repeated values",visible:"Visible when (expression)",canGrow:"Grow to fit content",stretch:"Follow band height",style:"Style",bold:"Bold",italic:"Italic",underline:"Underline",strike:"Strikethrough",color:"Text color",background:"Background",align:"Horizontal align",valign:"Vertical align",left:"Left",center:"Center",right:"Right",justify:"Justify",top:"Top",middle:"Middle",bottom:"Bottom",border:"Border",none:"None",all:"All",borderWidth:"Border width (mm)",borderColor:"Border color",padding:"Padding (mm)",wrap:"Wrap text",shrink:"Shrink to fit",lineColor:"Line color",lineWidth:"Line width (mm)",dash:"Line style",solid:"Solid",dashed:"Dashed",dotted:"Dotted",fill:"Fill",radius:"Corner radius",src:"Image URL",fit:"Fit",contain:"Contain",cover:"Cover",stretchFit:"Stretch",barcode:"Barcode type",showText:"Show value",ecc:"Error correction",chartType:"Chart type",source:"Rows (expression, empty = current scope)",category:"Category expression",series:"Value expressions (comma separated)",title:"Title",legend:"Legend",showValues:"Show values",stacked:"Stacked",band:"Band",height:"Height (mm)",bandGrow:"Grow to fit content",bandBg:"Background",altBg:"Alternate row background",breakBefore:"Page break before",breakAfter:"Page break after",group:"Group",by:"Group by expression",groupSort:"Sort groups",asc:"Ascending",desc:"Descending",keep:"None",newPage:"New page per group",repeatHeader:"Repeat header on next page",resetPage:"Restart page numbers per group",multi:e=>`${e} selected`,errorExpr:"Expression error",id:"ID",rowHeight:"Row height (mm)",showHeader:"Show header",tableColumns:"Columns (JSON: header, expr, width, format, align, sum)",rowKey:"Row expression",columnKey:"Column expression",valueExpr:"Value expression",aggregate:"Aggregate",corner:"Corner title",totals:"Totals",columns:"Columns (labels)",columnGap:"Column gap (mm)"}},as=["Nanum Gothic","Nanum Myeongjo","Malgun Gothic","Arial","Times New Roman","Courier New"],Se=e=>{let t=Number(e);return Number.isFinite(t)?t:0},Gt=e=>Math.round(e*100)/100;function bn(e){let t=e?.border;if(!t)return{mode:"none",width:.2,color:"#000000"};if(t===!0)return{mode:"all",width:.2,color:"#000000"};if(typeof t=="string"){let n=t.split(/\s+/);return{mode:"all",width:parseFloat(n.find(r=>/^[\d.]+$/.test(r))??"0.2"),color:n.find(r=>r.startsWith("#"))??"#000000"}}return"width"in t||"color"in t||"style"in t?{mode:"all",width:t.width??.2,color:t.color??"#000000"}:{mode:"mixed",width:.2,color:"#000000"}}function xr(e){let t=e?.border;if(!t)return{};if(t===!0||typeof t=="string"||"width"in t||"color"in t||"style"in t)return{top:!0,right:!0,bottom:!0,left:!0};let n=t;return{top:!!n.top,right:!!n.right,bottom:!!n.bottom,left:!!n.left}}function Ut(e,t,n){for(let r of e){let o=bn(r.style),s=xr(r.style);s[t]=n;let i=`${o.width} solid ${o.color}`,l=s.top&&s.right&&s.bottom&&s.left,a=s.top||s.right||s.bottom||s.left;r.style={...r.style,border:l?i:a?Object.fromEntries(Object.entries(s).filter(([,f])=>f).map(([f])=>[f,i])):void 0},r.style.border||delete r.style.border}}function is(e,t,n){let r=e[0],o=u=>{let c=u(r);return e.every(p=>u(p)===c)?c:void 0},s=u=>e.forEach(u),i=u=>()=>o(c=>c.style?.[u]),l=u=>c=>s(p=>{let b={...p.style};c===""||c===void 0||c===null||c===!1?delete b[u]:b[u]=c,p.style=Object.keys(b).length?b:void 0,p.style||delete p.style}),a=[];a.push({label:e.length>1?t.multi(e.length):`${r.type}${r.id?` \xB7 ${r.id}`:""}`,kind:"section"}),a.push({label:t.x,kind:"number",step:.5,get:()=>o(u=>u.x),set:u=>s(c=>c.x=Gt(Se(u)))},{label:t.y,kind:"number",step:.5,get:()=>o(u=>u.y),set:u=>s(c=>c.y=Gt(Se(u)))},{label:t.w,kind:"number",step:.5,get:()=>o(u=>u.w),set:u=>s(c=>c.w=Gt(Se(u)))},{label:t.h,kind:"number",step:.5,get:()=>o(u=>u.h),set:u=>s(c=>c.h=Gt(Se(u)))});let f=new Set(e.map(u=>u.type)),d=f.size===1?r.type:null;if(e.length===1){let u=r;u.type==="text"&&a.push({label:t.text,kind:"textarea",wide:!0,get:()=>u.text,set:c=>u.text=String(c)}),u.type==="field"&&(a.push({label:t.expr,kind:"expr",wide:!0,get:()=>u.expr,set:c=>u.expr=String(c)}),a.push({label:t.format,kind:"text",wide:!0,placeholder:"#,##0",get:()=>u.format??"",set:c=>c?u.format=String(c):delete u.format}),a.push({label:t.nullText,kind:"text",get:()=>u.nullText??"",set:c=>c?u.nullText=String(c):delete u.nullText}),a.push({label:t.suppress,kind:"check",get:()=>!!u.suppressRepeated,set:c=>c?u.suppressRepeated=!0:delete u.suppressRepeated})),u.type==="image"&&(a.push({label:t.src,kind:"text",wide:!0,get:()=>u.src??"",set:c=>u.src=String(c)}),a.push({label:t.expr,kind:"expr",wide:!0,get:()=>u.expr??"",set:c=>c?u.expr=String(c):delete u.expr}),a.push({label:t.fit,kind:"select",options:[{value:"contain",label:t.contain},{value:"cover",label:t.cover},{value:"fill",label:t.stretchFit}],get:()=>u.fit??"contain",set:c=>u.fit=c})),u.type==="barcode"&&(a.push({label:t.barcode,kind:"select",options:["code128","ean13","qr","datamatrix","pdf417"].map(c=>({value:c,label:c.toUpperCase()})),get:()=>u.format??"code128",set:c=>u.format=c}),a.push({label:t.expr,kind:"expr",wide:!0,get:()=>u.expr,set:c=>u.expr=String(c)}),a.push({label:t.showText,kind:"check",get:()=>u.showText!==!1,set:c=>c?delete u.showText:u.showText=!1}),a.push({label:t.ecc,kind:"select",options:["L","M","Q","H"].map(c=>({value:c,label:c})),get:()=>u.ecc??"M",set:c=>u.ecc=c})),u.type==="table"&&(a.push({label:t.source,kind:"expr",wide:!0,get:()=>u.source,set:c=>u.source=String(c)}),a.push({label:t.rowHeight,kind:"number",step:.5,get:()=>u.rowHeight??6,set:c=>u.rowHeight=Se(c)||6}),a.push({label:t.showHeader,kind:"check",get:()=>u.showHeader!==!1,set:c=>c?delete u.showHeader:u.showHeader=!1}),a.push({label:t.altBg,kind:"color",get:()=>u.altBackground??"",set:c=>c?u.altBackground=String(c):delete u.altBackground}),a.push({label:t.tableColumns,kind:"json",wide:!0,get:()=>JSON.stringify(u.columns,null,1),set:c=>{let p=JSON.parse(String(c));if(!Array.isArray(p))throw new Error("array");u.columns=p}})),u.type==="crosstab"&&(a.push({label:t.source,kind:"expr",wide:!0,get:()=>u.source??"",set:c=>c?u.source=String(c):delete u.source}),a.push({label:t.rowKey,kind:"expr",wide:!0,get:()=>u.rowKey,set:c=>u.rowKey=String(c)}),a.push({label:t.columnKey,kind:"expr",wide:!0,get:()=>u.columnKey,set:c=>u.columnKey=String(c)}),a.push({label:t.valueExpr,kind:"expr",wide:!0,get:()=>u.value,set:c=>u.value=String(c)}),a.push({label:t.aggregate,kind:"select",options:["sum","count","avg","min","max"].map(c=>({value:c,label:c})),get:()=>u.aggregate??"sum",set:c=>u.aggregate=c}),a.push({label:t.format,kind:"text",get:()=>u.format??"",set:c=>c?u.format=String(c):delete u.format}),a.push({label:t.corner,kind:"text",get:()=>u.corner??"",set:c=>u.corner=String(c)}),a.push({label:t.totals,kind:"check",get:()=>u.totals!==!1,set:c=>c?delete u.totals:u.totals=!1})),u.type==="chart"&&(a.push({label:t.chartType,kind:"select",options:["bar","hbar","line","area","pie","doughnut"].map(c=>({value:c,label:c})),get:()=>u.chartType,set:c=>u.chartType=c}),a.push({label:t.title,kind:"text",wide:!0,get:()=>u.title??"",set:c=>c?u.title=String(c):delete u.title}),a.push({label:t.source,kind:"expr",wide:!0,get:()=>u.source??"",set:c=>c?u.source=String(c):delete u.source}),a.push({label:t.category,kind:"expr",wide:!0,get:()=>u.category,set:c=>u.category=String(c)}),a.push({label:t.series,kind:"text",wide:!0,get:()=>u.series.map(c=>c.expr).join(", "),set:c=>u.series=String(c).split(",").map(p=>p.trim()).filter(Boolean).map((p,b)=>({...u.series[b],expr:p}))}),a.push({label:t.format,kind:"text",get:()=>u.format??"",set:c=>c?u.format=String(c):delete u.format}),a.push({label:t.legend,kind:"check",get:()=>u.legend??!1,set:c=>u.legend=!!c}),a.push({label:t.showValues,kind:"check",get:()=>!!u.showValues,set:c=>u.showValues=!!c}),a.push({label:t.stacked,kind:"check",get:()=>!!u.stacked,set:c=>u.stacked=!!c}))}if(d==="line"){let u=e;a.push({label:t.lineColor,kind:"color",get:()=>o(c=>c.color)??"#000000",set:c=>u.forEach(p=>p.color=String(c))}),a.push({label:t.lineWidth,kind:"number",step:.05,get:()=>o(c=>c.width)??.2,set:c=>u.forEach(p=>p.width=Se(c))}),a.push({label:t.dash,kind:"select",options:[{value:"solid",label:t.solid},{value:"dashed",label:t.dashed},{value:"dotted",label:t.dotted}],get:()=>o(c=>c.dash)??"solid",set:c=>u.forEach(p=>c==="solid"?delete p.dash:p.dash=c)})}if(d==="rect"){let u=e;a.push({label:t.fill,kind:"color",get:()=>o(c=>c.fill)??"",set:c=>u.forEach(p=>c?p.fill=String(c):delete p.fill)}),a.push({label:t.lineColor,kind:"color",get:()=>o(c=>c.color)??"#000000",set:c=>u.forEach(p=>p.color=String(c))}),a.push({label:t.lineWidth,kind:"number",step:.05,get:()=>o(c=>c.width)??.2,set:c=>u.forEach(p=>p.width=Se(c))}),a.push({label:t.radius,kind:"number",step:.5,get:()=>o(c=>c.radius)??0,set:c=>u.forEach(p=>Se(c)?p.radius=Se(c):delete p.radius)})}let g=[...f].every(u=>u==="text"||u==="field");if((g||d==="barcode"||d==="chart")&&(a.push({label:t.style,kind:"section"}),a.push({label:t.font,kind:"select",options:[{value:"",label:n.font?.family??"Nanum Gothic"},...as.map(u=>({value:u,label:u}))],get:i("fontFamily"),set:l("fontFamily")}),a.push({label:t.fontSize,kind:"number",step:.5,min:4,get:()=>o(u=>u.style?.fontSize)??n.font?.size??9,set:u=>l("fontSize")(Se(u)||void 0)})),g){a.push({label:"",kind:"toggles",toggles:[{label:"B",title:t.bold,get:()=>!!o(p=>!!p.style?.bold),set:p=>l("bold")(p)},{label:"I",title:t.italic,get:()=>!!o(p=>!!p.style?.italic),set:p=>l("italic")(p)},{label:"U",title:t.underline,get:()=>!!o(p=>!!p.style?.underline),set:p=>l("underline")(p)},{label:"S",title:t.strike,get:()=>!!o(p=>!!p.style?.strike),set:p=>l("strike")(p)}]}),a.push({label:t.align,kind:"select",options:[{value:"left",label:t.left},{value:"center",label:t.center},{value:"right",label:t.right},{value:"justify",label:t.justify}],get:()=>o(p=>p.style?.align)??"left",set:p=>l("align")(p==="left"?void 0:p)}),a.push({label:t.valign,kind:"select",options:[{value:"top",label:t.top},{value:"middle",label:t.middle},{value:"bottom",label:t.bottom}],get:()=>o(p=>p.style?.valign)??"middle",set:p=>l("valign")(p==="middle"?void 0:p)}),a.push({label:t.color,kind:"color",get:()=>o(p=>p.style?.color)??"#000000",set:p=>l("color")(p==="#000000"?void 0:p)}),a.push({label:t.background,kind:"color",get:()=>o(p=>p.style?.background)??"",set:l("background")});let u=xr(r.style);a.push({label:t.border,kind:"toggles",toggles:[{label:"\u25A3",title:t.all,get:()=>!!(u.top&&u.right&&u.bottom&&u.left),set:p=>["top","right","bottom","left"].forEach(b=>Ut(e,b,p))},{label:"\u2594",title:t.top,get:()=>!!u.top,set:p=>Ut(e,"top",p)},{label:"\u2581",title:t.bottom,get:()=>!!u.bottom,set:p=>Ut(e,"bottom",p)},{label:"\u258F",title:t.left,get:()=>!!u.left,set:p=>Ut(e,"left",p)},{label:"\u2595",title:t.right,get:()=>!!u.right,set:p=>Ut(e,"right",p)}]});let c=(p,b)=>s(S=>{let M=bn(S.style),$=xr(S.style);if(M.mode==="none")return;let v=`${p??M.width} solid ${b??M.color}`,T=$.top&&$.right&&$.bottom&&$.left;S.style={...S.style,border:T?v:Object.fromEntries(Object.entries($).filter(([,x])=>x).map(([x])=>[x,v]))}});a.push({label:t.borderWidth,kind:"number",step:.05,get:()=>bn(r.style).width,set:p=>c(Se(p))}),a.push({label:t.borderColor,kind:"color",get:()=>bn(r.style).color,set:p=>c(void 0,String(p))}),a.push({label:t.padding,kind:"number",step:.5,get:()=>{let p=r.style?.padding;return typeof p=="number"?p:p?p[1]:1},set:p=>l("padding")(Se(p)===1?void 0:Se(p))}),a.push({label:t.wrap,kind:"check",get:()=>o(p=>p.style?.wrap!==!1),set:p=>l("wrap")(p?void 0:!1)}),a.push({label:t.shrink,kind:"check",get:()=>!!o(p=>!!p.style?.shrinkToFit),set:p=>l("shrinkToFit")(p)}),a.push({label:t.canGrow,kind:"check",get:()=>o(p=>p.canGrow!==!1),set:p=>s(b=>p?delete b.canGrow:b.canGrow=!1)})}return a.push({label:t.visible,kind:"expr",wide:!0,get:()=>o(u=>u.visible??"")??"",set:u=>s(c=>u?c.visible=String(u):delete c.visible)}),a}function ls(e,t,n,r,o){let s=[{label:`${n.band}: ${t}`,kind:"section"},{label:n.height,kind:"number",step:.5,min:1,get:()=>e.height,set:i=>e.height=Math.max(1,Gt(Se(i)))},{label:n.bandGrow,kind:"check",get:()=>e.canGrow!==!1,set:i=>i?delete e.canGrow:e.canGrow=!1},{label:n.bandBg,kind:"color",get:()=>e.background??"",set:i=>i?e.background=String(i):delete e.background}];return o&&(s.push({label:n.altBg,kind:"color",get:()=>e.altBackground??"",set:i=>i?e.altBackground=String(i):delete e.altBackground}),s.push({label:n.columns,kind:"number",step:1,min:1,get:()=>e.columns??1,set:i=>Se(i)>1?e.columns=Math.floor(Se(i)):delete e.columns}),s.push({label:n.columnGap,kind:"number",step:.5,min:0,get:()=>e.columnGap??0,set:i=>Se(i)?e.columnGap=Se(i):delete e.columnGap})),s.push({label:n.breakBefore,kind:"check",get:()=>!!e.pageBreakBefore,set:i=>i?e.pageBreakBefore=!0:delete e.pageBreakBefore},{label:n.breakAfter,kind:"check",get:()=>!!e.pageBreakAfter,set:i=>i?e.pageBreakAfter=!0:delete e.pageBreakAfter},{label:n.visible,kind:"expr",wide:!0,get:()=>e.visible??"",set:i=>i?e.visible=String(i):delete e.visible}),r&&s.push({label:n.group,kind:"section"},{label:n.by,kind:"expr",wide:!0,get:()=>r.by,set:i=>r.by=String(i)},{label:n.groupSort,kind:"select",options:[{value:"",label:n.keep},{value:"asc",label:n.asc},{value:"desc",label:n.desc}],get:()=>r.sort??"",set:i=>i?r.sort=i:delete r.sort},{label:n.newPage,kind:"check",get:()=>!!r.newPage,set:i=>i?r.newPage=!0:delete r.newPage},{label:n.repeatHeader,kind:"check",get:()=>!!r.repeatHeader,set:i=>i?r.repeatHeader=!0:delete r.repeatHeader},{label:n.resetPage,kind:"check",get:()=>!!r.resetPageNumber,set:i=>i?r.resetPageNumber=!0:delete r.resetPageNumber}),s}function cs(e,t){let n=e.page??(e.page={}),r=()=>{let a=n.margins??15;return typeof a=="number"?`${a}`:a.join(" ")},o=()=>typeof e.watermark=="string"?{text:e.watermark}:Array.isArray(e.watermark)?e.watermark[0]??{}:e.watermark??{},s=a=>{let f={...o(),...a};for(let d of Object.keys(f))(f[d]===void 0||f[d]===""||f[d]===!1)&&delete f[d];!f.text&&!f.image?delete e.watermark:e.watermark=Object.keys(f).length===1?String(f.text):f},i=()=>Array.isArray(e.emboss)?e.emboss[0]??{}:e.emboss??{},l=a=>{let f={...i(),...a};for(let d of Object.keys(f))(f[d]===void 0||f[d]==="")&&delete f[d];!f.text&&!f.centerText&&!f.image?delete e.emboss:e.emboss=f};return[{label:t.report,kind:"section"},{label:t.name,kind:"text",wide:!0,get:()=>e.name??"",set:a=>e.name=String(a)},{label:t.size,kind:"select",options:Object.keys(ot).map(a=>({value:a,label:`${a} (${ot[a][0]}\xD7${ot[a][1]})`})),get:()=>Array.isArray(n.size)?"A4":n.size??"A4",set:a=>n.size=a},{label:t.orientation,kind:"select",options:[{value:"portrait",label:t.portrait},{value:"landscape",label:t.landscape}],get:()=>n.orientation??"portrait",set:a=>n.orientation=a},{label:t.margins,kind:"text",wide:!0,get:r,set:a=>{let f=String(a).trim().split(/[\s,]+/).map(Number).filter(Number.isFinite);n.margins=f.length>=4?[f[0],f[1],f[2],f[3]]:f.length?f[0]:15}},{label:t.font,kind:"select",options:as.map(a=>({value:a,label:a})),get:()=>e.font?.family??"Nanum Gothic",set:a=>e.font={...e.font,family:String(a)}},{label:t.fontSize,kind:"number",step:.5,get:()=>e.font?.size??9,set:a=>e.font={...e.font,size:Se(a)||9}},{label:t.dataSource,kind:"text",placeholder:"rows",get:()=>e.dataSource??"",set:a=>a?e.dataSource=String(a):delete e.dataSource},{label:t.sort,kind:"text",wide:!0,get:()=>(e.sort??[]).join(", "),set:a=>{let f=String(a).split(",").map(d=>d.trim()).filter(Boolean);f.length?e.sort=f:delete e.sort}},{label:t.filter,kind:"expr",wide:!0,get:()=>e.filter??"",set:a=>a?e.filter=String(a):delete e.filter},{label:t.fillEmpty,kind:"check",get:()=>!!e.fillEmptyRows,set:a=>a?e.fillEmptyRows=!0:delete e.fillEmptyRows},{label:t.skipHeader,kind:"check",get:()=>!!e.pageHeaderSkipFirst,set:a=>a?e.pageHeaderSkipFirst=!0:delete e.pageHeaderSkipFirst},{label:t.watermark,kind:"text",wide:!0,placeholder:'\uC0AC\uBCF8 / {params.user} {format(now(), "yyyy-MM-dd HH:mm")}',get:()=>o().text??"",set:a=>s({text:String(a)})},{label:t.wmRepeat,kind:"check",get:()=>!!o().repeat,set:a=>s({repeat:!!a||void 0})},{label:t.wmOpacity,kind:"number",step:.02,min:0,get:()=>o().opacity??.12,set:a=>s({opacity:Se(a)})},{label:t.emboss,kind:"text",wide:!0,placeholder:"(\uC8FC)\uD68C\uC0AC\uBA85 \xB7 COMPANY \xB7",get:()=>i().text??"",set:a=>l({text:String(a)})},{label:t.embossCenter,kind:"text",get:()=>i().centerText??"",set:a=>l({centerText:String(a)})},{label:t.params,kind:"json",wide:!0,get:()=>e.params?JSON.stringify(e.params,null,2):"",set:a=>{let f=String(a).trim();if(!f){delete e.params;return}e.params=JSON.parse(f)}}]}function kr(e,t){if(!e.trim())return"";let n=Dn(e);return n?`${t.errorExpr}: ${n}`:""}var ji=96/25.4,vr={ko:{title:"\uC81C\uBAA9",pageHeader:"\uD398\uC774\uC9C0 \uBA38\uB9AC\uAE00",columnHeader:"\uC5F4 \uBA38\uB9AC\uAE00",groupHeader:"\uADF8\uB8F9 \uBA38\uB9AC\uAE00",detail:"\uC0C1\uC138",groupFooter:"\uADF8\uB8F9 \uBC14\uB2E5\uAE00",summary:"\uC694\uC57D (\uD569\uACC4)",pageFooter:"\uD398\uC774\uC9C0 \uBC14\uB2E5\uAE00",noData:"\uC790\uB8CC \uC5C6\uC74C"},en:{title:"Title",pageHeader:"Page header",columnHeader:"Column header",groupHeader:"Group header",detail:"Detail",groupFooter:"Group footer",summary:"Summary",pageFooter:"Page footer",noData:"No data"}},Ci={ko:{design:"\uB514\uC790\uC778",preview:"\uBBF8\uB9AC\uBCF4\uAE30",json:"JSON",newReport:"\uC0C8\uB85C \uB9CC\uB4E4\uAE30",open:"\uC5F4\uAE30",save:"\uC800\uC7A5",undo:"\uC2E4\uD589 \uCDE8\uC18C",redo:"\uB2E4\uC2DC \uC2E4\uD589",cut:"\uC798\uB77C\uB0B4\uAE30",copy:"\uBCF5\uC0AC",paste:"\uBD99\uC5EC\uB123\uAE30",del:"\uC0AD\uC81C",dup:"\uBCF5\uC81C",alignL:"\uC67C\uCABD \uB9DE\uCDA4",alignC:"\uAC00\uC6B4\uB370 \uB9DE\uCDA4",alignR:"\uC624\uB978\uCABD \uB9DE\uCDA4",alignT:"\uC704 \uB9DE\uCDA4",alignM:"\uC911\uAC04 \uB9DE\uCDA4",alignB:"\uC544\uB798 \uB9DE\uCDA4",sameW:"\uAC19\uC740 \uB108\uBE44",sameH:"\uAC19\uC740 \uB192\uC774",grid:"\uACA9\uC790\uC5D0 \uB9DE\uCDA4",toolbox:"\uB3C4\uAD6C",fields:"\uB370\uC774\uD130 \uD544\uB4DC",bands:"\uBC34\uB4DC",addGroup:"\uADF8\uB8F9 \uCD94\uAC00",apply:"\uC801\uC6A9",props:"\uC18D\uC131",tools:{text:"\uD14D\uC2A4\uD2B8",field:"\uD544\uB4DC",line:"\uC120",rect:"\uC0AC\uAC01\uD615",image:"\uC774\uBBF8\uC9C0",barcode:"\uBC14\uCF54\uB4DC",qr:"QR \uCF54\uB4DC",chart:"\uCC28\uD2B8",table:"\uD45C (\uBAA9\uB85D)",crosstab:"\uD06C\uB85C\uC2A4\uD0ED",pageNumber:"\uCABD \uBC88\uD638",today:"\uC624\uB298 \uB0A0\uC9DC"},noFields:"\uB370\uC774\uD130\uB97C \uC5F0\uACB0\uD558\uBA74 \uD544\uB4DC\uAC00 \uB098\uC635\uB2C8\uB2E4",confirmNew:"\uD604\uC7AC \uBCF4\uACE0\uC11C\uB97C \uC9C0\uC6B0\uACE0 \uC0C8\uB85C \uB9CC\uB4E4\uAE4C\uC694?",jsonError:"JSON \uC624\uB958",add:"\uCD94\uAC00",remove:"\uC0AD\uC81C",params:"\uD30C\uB77C\uBBF8\uD130",dropHint:"\uB3C4\uAD6C\uB098 \uD544\uB4DC\uB97C \uB04C\uC5B4\uB2E4 \uB193\uC73C\uC138\uC694"},en:{design:"Design",preview:"Preview",json:"JSON",newReport:"New",open:"Open",save:"Save",undo:"Undo",redo:"Redo",cut:"Cut",copy:"Copy",paste:"Paste",del:"Delete",dup:"Duplicate",alignL:"Align left",alignC:"Align center",alignR:"Align right",alignT:"Align top",alignM:"Align middle",alignB:"Align bottom",sameW:"Same width",sameH:"Same height",grid:"Snap to grid",toolbox:"Toolbox",fields:"Data fields",bands:"Bands",addGroup:"Add group",apply:"Apply",props:"Properties",tools:{text:"Text",field:"Field",line:"Line",rect:"Rectangle",image:"Image",barcode:"Barcode",qr:"QR code",chart:"Chart",table:"Table",crosstab:"Crosstab",pageNumber:"Page number",today:"Today"},noFields:"Connect data to list its fields",confirmNew:"Discard this report and start a new one?",jsonError:"JSON error",add:"Add",remove:"Remove",params:"Parameters",dropHint:"Drop tools or fields here"}},Ai={new:"M14 3H7a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7zM14 3v4h4M12 11v6M9 14h6",open:"M3 7a1 1 0 0 1 1-1h5l2 2h8a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z",save:"M5 4h11l3 3v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1zM8 4v5h7V4M8 20v-6h8v6",undo:"M9 14L4 9l5-5M4 9h10a6 6 0 0 1 0 12h-3",redo:"M15 14l5-5-5-5M20 9H10a6 6 0 0 0 0 12h3",cut:"M6 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM20 4L8.1 15.9M14.5 14.5L20 20M8.1 8.1L12 12",copy:"M9 9h10v12H9zM5 15V3h10",paste:"M9 4h6v3H9zM7 5H5v16h14V5h-2",del:"M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3",alignL:"M4 3v18M8 7h12M8 15h7",alignC:"M12 3v18M6 7h12M8.5 15h7",alignR:"M20 3v18M4 7h12M9 15h7",alignT:"M3 4h18M7 8v12M15 8v7",alignM:"M3 12h18M7 6v12M15 8.5v7",alignB:"M3 20h18M7 4v12M15 9v7",sameW:"M4 8h16M4 16h16M4 5v6M20 5v6M4 13v6M20 13v6",sameH:"M8 4v16M16 4v16M5 4h6M5 20h6M13 4h6M13 20h6",grid:"M4 4h16v16H4zM4 9.3h16M4 14.6h16M9.3 4v16M14.6 4v16",text:"M5 6V4h14v2M12 4v16M9 20h6",field:"M4 7h16v10H4zM8 11h8",line:"M4 20L20 4",rect:"M4 6h16v12H4z",image:"M4 5h16v14H4zM4 15l4-4 4 4 3-3 5 5M15 9.5a1.5 1.5 0 1 0 0-.01",barcode:"M4 5v14M7 5v14M9 5v14M12 5v14M15 5v14M17 5v14M20 5v14",qr:"M4 4h6v6H4zM14 4h6v6h-6zM4 14h6v6H4zM14 14h2v2h-2zM18 18h2v2h-2zM14 18h2M18 14h2",chart:"M4 20V10M10 20V4M16 20v-7M2 20h20",pageNumber:"M7 3h7l4 4v14H7zM10 14h1v4M13 14h2v4h-2",table:"M4 5h16v14H4zM4 10h16M4 14.5h16M10 5v14",crosstab:"M4 4h16v16H4zM4 9h16M9 4v16M14 9v11M9 14.5h11",today:"M4 6h16v14H4zM4 10h16M8 3v5M16 3v5",plus:"M12 5v14M5 12h14",minus:"M5 12h14",x:"M6 6l12 12M18 6L6 18"},Le=e=>`<svg viewBox="0 0 24 24" width="17" height="17" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="${Ai[e]}"/></svg>`,$r=e=>typeof e=="string"&&nn(e)?e.replace(/[^#\w(),.\s%]/g,""):"transparent",Li=e=>String(e??"").replace(/[^\p{L}\p{N} _-]/gu,""),ye=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),xe=(e,t=.01)=>Math.round(e/t)*t,Fi=["text","field","line","rect","image","barcode","qr","chart","table","crosstab","pageNumber","today"];function us(e,t){let[n]=e.key.split(":"),r=vr[t][n];return e.group?`${r} \xB7 ${e.group.by}`:r}function Di(e){return e.split(":")[0]}function Ii(e,t={}){let n=t.lang??"ko",r=ss[n],o=Ci[n],s=Ie(t.definition??gn());wt(s);let i=t.data??{},l=t.zoom??1,a=1,f="design",d=new Set,g=null,u=[],c=[JSON.stringify(s)],p=[],b=null,S,M=kt();e.classList.add("fr-designer"),e.tabIndex=-1,e.innerHTML=`
|
|
86
86
|
<div class="fr-toolbar" role="toolbar">
|
|
87
87
|
<span class="fr-tabs" role="tablist">
|
|
88
88
|
<button type="button" role="tab" class="fr-tab" data-mode="design" aria-selected="true">${o.design}</button>
|
|
@@ -90,14 +90,14 @@ html, body { margin: 0; padding: 0; background: #fff; }
|
|
|
90
90
|
<button type="button" role="tab" class="fr-tab" data-mode="json" aria-selected="false">${o.json}</button>
|
|
91
91
|
</span>
|
|
92
92
|
<span class="fr-sep"></span>
|
|
93
|
-
${[["new",o.newReport],["open",o.open],["save",o.save]].map(([m,
|
|
93
|
+
${[["new",o.newReport],["open",o.open],["save",o.save]].map(([m,y])=>`<button type="button" class="fr-btn fr-icon" data-act="${m}" title="${y}" aria-label="${y}">${Le(m)}</button>`).join("")}
|
|
94
94
|
<span class="fr-sep"></span>
|
|
95
|
-
${[["undo",o.undo],["redo",o.redo]].map(([m,
|
|
95
|
+
${[["undo",o.undo],["redo",o.redo]].map(([m,y])=>`<button type="button" class="fr-btn fr-icon" data-act="${m}" title="${y} (Ctrl+${m==="undo"?"Z":"Y"})" aria-label="${y}">${Le(m)}</button>`).join("")}
|
|
96
96
|
<span class="fr-sep fr-design-only"></span>
|
|
97
97
|
<span class="fr-design-only fr-group">
|
|
98
|
-
${[["cut",o.cut],["copy",o.copy],["paste",o.paste],["del",o.del]].map(([m,
|
|
98
|
+
${[["cut",o.cut],["copy",o.copy],["paste",o.paste],["del",o.del]].map(([m,y])=>`<button type="button" class="fr-btn fr-icon" data-act="${m}" title="${y}" aria-label="${y}">${Le(m)}</button>`).join("")}
|
|
99
99
|
<span class="fr-sep"></span>
|
|
100
|
-
${[["alignL",o.alignL],["alignC",o.alignC],["alignR",o.alignR],["alignT",o.alignT],["alignM",o.alignM],["alignB",o.alignB],["sameW",o.sameW],["sameH",o.sameH]].map(([m,
|
|
100
|
+
${[["alignL",o.alignL],["alignC",o.alignC],["alignR",o.alignR],["alignT",o.alignT],["alignM",o.alignM],["alignB",o.alignB],["sameW",o.sameW],["sameH",o.sameH]].map(([m,y])=>`<button type="button" class="fr-btn fr-icon" data-act="${m}" title="${y}" aria-label="${y}">${Le(m)}</button>`).join("")}
|
|
101
101
|
<span class="fr-sep"></span>
|
|
102
102
|
<button type="button" class="fr-btn fr-icon" data-act="grid" title="${o.grid}" aria-label="${o.grid}" aria-pressed="true">${Le("grid")}</button>
|
|
103
103
|
<button type="button" class="fr-btn fr-icon" data-act="zoomOut" aria-label="-">${Le("minus")}</button>
|
|
@@ -121,12 +121,12 @@ html, body { margin: 0; padding: 0; background: #fff; }
|
|
|
121
121
|
<div class="fr-dz-json" hidden><textarea spellcheck="false" aria-label="JSON"></textarea><div class="fr-dz-json-bar"><span class="fr-dz-json-err" role="alert"></span><button type="button" class="fr-btn fr-primary" data-act="applyJson">${o.apply}</button></div></div>
|
|
122
122
|
</div>
|
|
123
123
|
<aside class="fr-dz-right" aria-label="${o.props}"><form class="fr-dz-props" autocomplete="off"></form></aside>
|
|
124
|
-
</div>`;let $=m=>e.querySelector(m),v=$(".fr-dz-canvas"),
|
|
125
|
-
<section class="fr-dz-band${
|
|
126
|
-
<header class="fr-dz-band-head" data-band-head="${
|
|
127
|
-
<div class="fr-dz-band-area" data-band-area="${
|
|
128
|
-
${
|
|
129
|
-
${
|
|
124
|
+
</div>`;let $=m=>e.querySelector(m),v=$(".fr-dz-canvas"),T=$(".fr-dz-page"),x=$(".fr-dz-props"),P=$(".fr-dz-fields"),j=$(".fr-dz-bandlist"),F=$(".fr-dz-preview"),Z=$(".fr-dz-json"),te=$(".fr-file");$t(["Nanum Gothic","Nanum Myeongjo"]);let U=()=>l*ji,re=()=>{let m=JSON.stringify(s);m!==c[c.length-1]&&(c.push(m),c.length>200&&c.shift(),p=[],clearTimeout(S),S=setTimeout(()=>t.onChange?.(Ie(s)),250))},be=m=>{s=JSON.parse(m),d=new Set([...d].filter(y=>je(s,y))),B(),clearTimeout(S),S=setTimeout(()=>t.onChange?.(Ie(s)),250)},V=()=>{c.length<2||(p.push(c.pop()),be(c[c.length-1]))},fe=()=>{let m=p.pop();m&&(c.push(m),be(m))},me=()=>{let{rows:m,root:y}=Ne(s,i);return{row:m[0],rows:m,allRows:m,params:at(s),data:y,vars:{page:1,pages:1,rowNum:1,now:new Date}}},_=()=>{let{rows:m}=Ne(s,i),y=new Set;for(let k of m.slice(0,20))k&&typeof k=="object"&&Object.keys(k).forEach(w=>y.add(w));if(!m.length&&i&&typeof i=="object"&&!Array.isArray(i))for(let[k,w]of Object.entries(i))w&&typeof w=="object"&&!Array.isArray(w)?Object.keys(w).forEach(R=>y.add(`${k}.${R}`)):Array.isArray(w)||y.add(k);return[...y]},ce=(m,y)=>{let k=U();if(m.type==="text"||m.type==="field"){let w=Fe(s,m),[R,L,I,G]=w.padding,se=[`font-family:'${Li(w.fontFamily)}', 'Malgun Gothic', sans-serif`,`font-size:${Number(w.fontSize)*(96/72)*l}px`,w.bold?"font-weight:700":"",w.italic?"font-style:italic":"",`color:${$r(w.color)}`,w.underline||w.strike?`text-decoration:${[w.underline?"underline":"",w.strike?"line-through":""].join(" ")}`:"",`padding:${R*k}px ${L*k}px ${I*k}px ${G*k}px`,`text-align:${w.align}`,`justify-content:${w.valign==="top"?"flex-start":w.valign==="bottom"?"flex-end":"center"}`,`line-height:${Number(w.lineHeight)||1.25}`,w.background?`background:${$r(w.background)}`:"",w.letterSpacing?`letter-spacing:${w.letterSpacing*k}px`:""],z=w.border,ie=ke=>ke?`${Math.max(1,Number(ke.width)*k)}px ${ke.style==="double"||ke.style==="dashed"||ke.style==="dotted"?ke.style:"solid"} ${$r(ke.color)}`:"";z.top&&se.push(`border-top:${ie(z.top)}`),z.right&&se.push(`border-right:${ie(z.right)}`),z.bottom&&se.push(`border-bottom:${ie(z.bottom)}`),z.left&&se.push(`border-left:${ie(z.left)}`);let he=m.type==="text"?ye(m.text||" "):`<span class="fr-dz-expr">[${ye(m.expr)}]</span>`;return`<div class="fr-dz-text" style="${se.filter(Boolean).join(";")}"><span>${he}</span></div>`}if(m.type==="line"){let w=Math.max(1,(m.width??.2)*k),R=m.w<0?-m.w*k:0,L=m.h<0?-m.h*k:0;return`<svg class="fr-dz-svg" overflow="visible"><line x1="${R}" y1="${L}" x2="${R+m.w*k}" y2="${L+m.h*k}" stroke="${ye(m.color??"#000")}" stroke-width="${w}"${m.dash==="dashed"?` stroke-dasharray="${w*3} ${w*2}"`:m.dash==="dotted"?` stroke-dasharray="${w} ${w}"`:""}/></svg>`}if(m.type==="rect")return`<div class="fr-dz-rect" style="border:${Math.max(m.width??.2,0)*k}px solid ${ye(m.color??"#000")};${m.fill?`background:${ye(m.fill)};`:""}${m.radius?`border-radius:${m.radius*k}px;`:""}"></div>`;if(m.type==="image"&&!m.expr)return m.src?`<img src="${ye(m.src)}" alt="" style="object-fit:${m.fit==="fill"?"fill":m.fit==="cover"?"cover":"contain"}">`:`<div class="fr-dz-ph">${Le("image")}</div>`;try{let w={height:m.y+m.h,elements:[{...m,x:0,y:0}],canGrow:!1},R=Ye(w,me(),{def:s,measure:M,locale:"ko",kind:Di(y.key),width:m.w},0,0);return We({number:1,total:1,width:Math.max(m.w,1),height:Math.max(m.h,1),items:R.items},{className:"fr-dz-svg"}).replace('<rect width="100%" height="100%" fill="#fff"/>',"")}catch{return`<div class="fr-dz-ph">${Le(m.type==="chart"?"chart":"barcode")}</div>`}},X=(m,y)=>{let k=U(),w=d.has(m.id),R=m.type==="line",L=Math.min(m.x,m.x+(R?m.w:0)),I=Math.min(m.y,m.y+(R?m.h:0)),G=Math.abs(m.w),se=Math.abs(m.h),z=w&&d.size===1?(R?["nw","se"]:["nw","n","ne","e","se","s","sw","w"]).map(ie=>`<span class="fr-dz-h fr-dz-h-${ie}" data-h="${ie}"></span>`).join(""):"";return`<div class="fr-dz-el${w?" is-selected":""}${R?" is-line":""}" data-id="${ye(String(m.id))}" style="left:${L*k}px;top:${I*k}px;width:${Math.max(G*k,R?1:4)}px;height:${Math.max(se*k,R?1:4)}px" title="${ye(m.type==="field"?m.expr:m.type==="text"?m.text:m.type)}">${ce(m,y)}${z}</div>`},B=()=>{let m=U(),y=Xe(s);$(".fr-zoom-label").textContent=`${Math.round(l*100)}%`,T.style.width=`${y*m}px`;let k=ze(s);T.innerHTML=k.map(L=>`
|
|
125
|
+
<section class="fr-dz-band${g===L.key&&!d.size?" is-selected":""}" data-band="${L.key}">
|
|
126
|
+
<header class="fr-dz-band-head" data-band-head="${L.key}"><span>${ye(us(L,n))}</span><small>${Number(L.band.height)}mm</small></header>
|
|
127
|
+
<div class="fr-dz-band-area" data-band-area="${L.key}" style="height:${L.band.height*m}px;background-size:${5*m}px ${5*m}px${L.band.background?`;background-color:${ye(L.band.background)}`:""}">
|
|
128
|
+
${L.band.elements.map(I=>X(I,L)).join("")}
|
|
129
|
+
${L.band.elements.length?"":`<span class="fr-dz-hint">${o.dropHint}</span>`}
|
|
130
130
|
</div>
|
|
131
|
-
<div class="fr-dz-band-resize" data-band-resize="${
|
|
132
|
-
</section>`).join(""),ae(),q(),e.querySelectorAll('[data-act="undo"]').forEach(D=>D.disabled=c.length<2),e.querySelectorAll('[data-act="redo"]').forEach(D=>D.disabled=!p.length);let y=d.size>0,R=d.size>1;for(let D of["cut","copy","del"])e.querySelector(`[data-act="${D}"]`).disabled=!y;for(let D of["alignL","alignC","alignR","alignT","alignM","alignB","sameW","sameH"])e.querySelector(`[data-act="${D}"]`).disabled=!R;e.querySelector('[data-act="paste"]').disabled=!u.length},q=()=>{let m=K();C.innerHTML=m.length?m.map(R=>`<button type="button" class="fr-dz-field" draggable="true" data-field="${ye(R)}" title="${ye(R)}">${ye(R)}</button>`).join(""):`<p class="fr-dz-empty">${o.noFields}</p>`;let b=new Set(ze(s).map(R=>R.key)),S=["title","pageHeader","columnHeader","detail","summary","pageFooter","noData"],y=s.bands.groups??[];A.innerHTML=S.map(R=>`<label class="fr-dz-bandopt"><input type="checkbox" data-band-toggle="${R}"${b.has(R)?" checked":""}> ${vr[n][R]}</label>`).join("")+y.map((R,D)=>`<div class="fr-dz-groupopt"><span>${vr[n].groupHeader.replace(/ .*/,"")} ${D+1}: <code>${ye(R.by)}</code></span><button type="button" class="fr-btn fr-icon" data-group-remove="${D}" title="${o.remove}" aria-label="${o.remove}">${Le("x")}</button></div>`).join("")+`<div class="fr-dz-addgroup"><select aria-label="${o.addGroup}">${m.map(R=>`<option>${ye(R)}</option>`).join("")}</select><button type="button" class="fr-btn" data-act="addGroup">${Le("plus")}<span>${o.addGroup}</span></button></div>`},ee=[],ae=()=>{let m=[...d].map(b=>je(s,b)?.el).filter(b=>!!b);if(m.length)ee=is(m,r,s);else if(h&&Re(s,h)){let b=ze(s).find(S=>S.key===h);ee=ls(b.band,us(b,n),r,b.group,b.key==="detail")}else ee=cs(s,r);w.innerHTML=ee.map((b,S)=>{if(b.kind==="section")return`<h3 class="fr-dz-sec">${ye(b.label)}</h3>`;let y=b.get?.(),R=`fr-f-${S}`,D=`fr-dz-prop${b.wide||b.kind==="textarea"||b.kind==="json"||b.kind==="expr"||b.kind==="toggles"?" is-wide":""}${b.kind==="check"?" is-check":""}`;if(b.kind==="check")return`<label class="${D}"><input type="checkbox" data-f="${S}"${y?" checked":""}> ${ye(b.label)}</label>`;if(b.kind==="toggles")return`<div class="${D}">${b.label?`<span class="fr-dz-plabel">${ye(b.label)}</span>`:""}<span class="fr-dz-toggles">${b.toggles.map((z,ue)=>`<button type="button" class="fr-btn fr-dz-toggle" data-f="${S}" data-k="${ue}" title="${ye(z.title)}" aria-label="${ye(z.title)}" aria-pressed="${z.get()}">${ye(z.label)}</button>`).join("")}</span></div>`;let B=`<label for="${R}" class="fr-dz-plabel">${ye(b.label)}</label>`,G=y==null?"":String(y);if(b.kind==="select")return`<div class="${D}">${B}<select id="${R}" data-f="${S}">${y===void 0?'<option value="" selected>\u2014</option>':""}${b.options.map(z=>`<option value="${ye(z.value)}"${z.value===G?" selected":""}>${ye(z.label)}</option>`).join("")}</select></div>`;if(b.kind==="textarea"||b.kind==="json")return`<div class="${D}">${B}<textarea id="${R}" data-f="${S}" rows="${b.kind==="json"?6:3}" spellcheck="false">${ye(G)}</textarea><small class="fr-dz-err" data-err="${S}"></small></div>`;if(b.kind==="color")return`<div class="${D}">${B}<span class="fr-dz-color"><input type="color" data-f="${S}" data-color value="${/^#[0-9a-f]{6}$/i.test(G)?G:"#ffffff"}" aria-label="${ye(b.label)}"><input type="text" id="${R}" data-f="${S}" value="${ye(G)}" placeholder="\u2014"></span></div>`;let oe=b.kind==="number"?"number":"text";return`<div class="${D}">${B}<input id="${R}" type="${oe}" data-f="${S}" value="${ye(G)}"${b.step?` step="${b.step}"`:""}${b.min!==void 0?` min="${b.min}"`:""}${b.placeholder?` placeholder="${ye(b.placeholder)}"`:""}${b.kind==="expr"?' spellcheck="false" class="is-expr"':""}>${b.kind==="expr"?`<small class="fr-dz-err" data-err="${S}">${ye(kr(G,r))}</small>`:""}</div>`}).join("")},he=(m,b)=>{let S=Number(m.dataset.f),y=ee[S];if(y){if(y.kind==="toggles"){let R=y.toggles[Number(m.dataset.k)];R.set(!R.get())}else if(y.kind==="check")y.set?.(m.checked);else{let R=m.value;if(y.kind==="expr"){let D=kr(R,r),B=w.querySelector(`[data-err="${S}"]`);B&&(B.textContent=D)}if(y.kind==="json")try{y.set?.(R);let D=w.querySelector(`[data-err="${S}"]`);D&&(D.textContent="")}catch(D){let B=w.querySelector(`[data-err="${S}"]`);B&&(B.textContent=`${o.jsonError}: ${D.message}`);return}else if(y.kind==="number"){if(R===""||!Number.isFinite(Number(R)))return;y.set?.(Number(R))}else y.set?.(R)}if(b){re();let R=document.activeElement?.id;N(),R&&y.kind!=="toggles"&&y.kind!=="check"&&document.getElementById(R)?.focus()}else we()}},we=()=>{let m=w.innerHTML,b=document.activeElement?.id,S=document.activeElement,y=S&&"selectionStart"in S?S.selectionStart:null;if(N(),b){let R=document.getElementById(b);if(R&&(R.focus(),y!==null&&"setSelectionRange"in R))try{R.setSelectionRange(y,y)}catch{}}};w.addEventListener("input",m=>{let b=m.target;if(!b.dataset.f)return;let S=ee[Number(b.dataset.f)];if(b.dataset.color!==void 0){let y=b.parentElement.querySelector("input[type=text]");y.value=b.value}S&&(S.kind==="text"||S.kind==="textarea"||S.kind==="expr"||S.kind==="number")&&he(b,!1)}),w.addEventListener("change",m=>{let b=m.target;b.dataset.f&&he(b,!0)}),w.addEventListener("click",m=>{let b=m.target.closest(".fr-dz-toggle");b&&he(b,!0)}),w.addEventListener("submit",m=>m.preventDefault());let J=()=>[...d].map(m=>je(s,m)).filter(m=>!!m),X=(m,b=!1)=>{b||(d=new Set);for(let y of m)b&&d.has(y)?d.delete(y):d.add(y);let S=m.length?je(s,m[0]):null;S&&(h=S.slot.key),N()},ce=()=>{for(let{slot:m,el:b}of J())m.band.elements=m.band.elements.filter(S=>S!==b);d.clear(),re(),N()},ie=()=>{u=J().map(m=>Ie(m.el))},de=()=>{if(!u.length)return;let m=h&&Re(s,h)?h:ze(s).find(y=>y.key==="detail")?.key??ze(s)[0]?.key;if(!m)return;let b=Re(s,m),S=[];for(let y of u){let R=Ie(y);R.id=xt(s),R.x=xe(R.x+2,.5),R.y=xe(Math.min(R.y+2,Math.max(0,b.height-Math.max(1,R.h))),.5),b.elements.push(R),S.push(R.id)}u=u.map(y=>({...Ie(y),x:y.x+2,y:y.y+2})),re(),X(S)},le=m=>{let b=J().map(G=>G.el);if(b.length<2)return;let S=Math.min(...b.map(G=>G.x)),y=Math.max(...b.map(G=>G.x+G.w)),R=Math.min(...b.map(G=>G.y)),D=Math.max(...b.map(G=>G.y+G.h)),B=b[0];for(let G of b)m==="alignL"?G.x=S:m==="alignR"?G.x=xe(y-G.w):m==="alignC"?G.x=xe((S+y)/2-G.w/2):m==="alignT"?G.y=R:m==="alignB"?G.y=xe(D-G.h):m==="alignM"?G.y=xe((R+D)/2-G.h/2):m==="sameW"?G.w=B.w:m==="sameH"&&(G.h=B.h);re(),N()},T=(m,b,S,y,R)=>{let D=Re(s,b);if(!D)return;let B=os(m,xt(s),xe(S,i||.01),xe(y,i||.01),D.height,R);if(B.x=Math.max(0,Math.min(B.x,Xe(s)-Math.min(B.w,5))),B.y=Math.max(0,Math.min(B.y,Math.max(0,D.height-(B.h||0)))),B.y+B.h>D.height&&(D.height=xe(B.y+B.h,.5)),D.elements.push(B),m==="field"&&R&&b==="detail"&&s.bands.columnHeader){let G=s.bands.columnHeader;G.elements.some(z=>z.x<B.x+B.w&&z.x+z.w>B.x)||G.elements.push({id:xt(s),type:"text",x:B.x,y:0,w:B.w,h:G.height,text:R,style:{bold:!0,align:"center",background:"#eef1f6",border:"0.2 solid #8a94a6"}}),B.style={border:"0.15 solid #b9c1cd",...typeof(Ne(s,a).rows[0]??{})[R]=="number"?{align:"right"}:{}},typeof(Ne(s,a).rows[0]??{})[R]=="number"&&(B.format="#,##0"),B.h=D.height,B.y=0}re(),X([B.id])},O=null,F=(m,b)=>{let S=m.getBoundingClientRect();return{x:(b.clientX-S.left)/U(),y:(b.clientY-S.top)/U()}};v.addEventListener("pointerdown",m=>{if(m.button!==0)return;let b=m.target;v.focus({preventScroll:!0});let S=b.closest(".fr-dz-h"),y=b.closest(".fr-dz-el"),R=b.closest("[data-band-resize]"),D=b.closest("[data-band-head]"),B=b.closest("[data-band-area]");if(R){let G=R.dataset.bandResize;O={kind:"band",key:G,startY:m.clientY,orig:Re(s,G).height}}else if(S&&y){let G=je(s,y.dataset.id);O={kind:"resize",id:G.el.id,handle:S.dataset.h,startX:m.clientX,startY:m.clientY,orig:{x:G.el.x,y:G.el.y,w:G.el.w,h:G.el.h}}}else if(y){let G=y.dataset.id;if(m.shiftKey||m.ctrlKey||m.metaKey){X([G],!0);return}d.has(G)||X([G]),O={kind:"move",startX:m.clientX,startY:m.clientY,moved:!1,items:J().map(oe=>({id:oe.el.id,x:oe.el.x,y:oe.el.y,key:oe.slot.key}))}}else if(D){d.clear(),h=D.dataset.bandHead,N();return}else if(B){let G=B.dataset.bandArea,oe=document.createElement("div");oe.className="fr-dz-marquee",B.appendChild(oe);let z=F(B,m);O={kind:"marquee",key:G,area:B,startX:z.x,startY:z.y,box:oe,additive:m.shiftKey||m.ctrlKey},O.additive||(d.clear(),h=G)}else{d.clear(),h=null,N();return}v.setPointerCapture(m.pointerId),m.preventDefault()}),v.addEventListener("pointermove",m=>{if(!O)return;let b=U();if(O.kind==="move"){let S=(m.clientX-O.startX)/b,y=(m.clientY-O.startY)/b;if(!O.moved&&Math.hypot(S,y)*b<3)return;if(O.moved=!0,i&&!m.altKey){let R=O.items[0];S=xe(R.x+S,i)-R.x,y=xe(R.y+y,i)-R.y}for(let R of O.items){let D=j.querySelector(`.fr-dz-el[data-id="${R.id}"]`),B=je(s,R.id);if(!D||!B)continue;let G=B.el.type==="line";D.style.left=`${Math.min(R.x+S,R.x+S+(G?B.el.w:0))*b}px`,D.style.top=`${Math.min(R.y+y,R.y+y+(G?B.el.h:0))*b}px`}}else if(O.kind==="resize"){let S=je(s,O.id);if(!S)return;let y=S.el,R=(m.clientX-O.startX)/b,D=(m.clientY-O.startY)/b,B=O.orig,G=z=>i&&!m.altKey?xe(z,i):xe(z);if(y.type==="line")O.handle==="nw"?(y.x=G(B.x+R),y.y=G(B.y+D),y.w=xe(B.x+B.w-y.x),y.h=xe(B.y+B.h-y.y)):(y.w=G(B.x+B.w+R)-B.x,y.h=G(B.y+B.h+D)-B.y,m.shiftKey&&(Math.abs(y.w)>Math.abs(y.h)?y.h=0:y.w=0));else{if(O.handle.includes("e")&&(y.w=Math.max(1,G(B.x+B.w+R)-B.x)),O.handle.includes("s")&&(y.h=Math.max(1,G(B.y+B.h+D)-B.y)),O.handle.includes("w")){let z=Math.min(G(B.x+R),B.x+B.w-1);y.w=xe(B.x+B.w-z),y.x=z}if(O.handle.includes("n")){let z=Math.min(G(B.y+D),B.y+B.h-1);y.h=xe(B.y+B.h-z),y.y=z}}R=D=0;let oe=j.querySelector(`.fr-dz-el[data-id="${O.id}"]`);oe&&(oe.outerHTML=Y(y,S.slot))}else if(O.kind==="marquee"){let S=F(O.area,m),y=Math.min(S.x,O.startX),R=Math.min(S.y,O.startY);Object.assign(O.box.style,{left:`${y*b}px`,top:`${R*b}px`,width:`${Math.abs(S.x-O.startX)*b}px`,height:`${Math.abs(S.y-O.startY)*b}px`})}else if(O.kind==="band"){let S=Re(s,O.key),y=Math.max(1,...S.elements.map(B=>B.y+Math.max(B.h,0)));S.height=Math.max(y,xe(O.orig+(m.clientY-O.startY)/b,.5));let R=j.querySelector(`[data-band-area="${O.key}"]`);R&&(R.style.height=`${S.height*b}px`);let D=j.querySelector(`[data-band-head="${O.key}"] small`);D&&(D.textContent=`${S.height}mm`)}});let L=m=>{if(!O)return;let b=O;O=null;let S=U();if(b.kind==="move"&&b.moved){let y=(m.clientX-b.startX)/S,R=(m.clientY-b.startY)/S;if(i&&!m.altKey){let G=b.items[0];y=xe(G.x+y,i)-G.x,R=xe(G.y+R,i)-G.y}let B=document.elementsFromPoint(m.clientX,m.clientY).find(G=>G.dataset?.bandArea)?.dataset.bandArea;for(let G of b.items){let oe=je(s,G.id);if(!oe)continue;let z=oe.el;if(z.x=xe(Math.max(0,G.x+y)),z.y=xe(G.y+R),B&&B!==oe.slot.key){let me=j.querySelector(`[data-band-area="${oe.slot.key}"]`),Ke=(j.querySelector(`[data-band-area="${B}"]`).getBoundingClientRect().top-me.getBoundingClientRect().top)/S;z.y=xe(z.y-Ke),oe.slot.band.elements.splice(oe.index,1),Re(s,B).elements.push(z),h=B}let ue=je(s,G.id).slot.band;z.y=Math.max(0,z.y),z.y+Math.max(z.h,0)>ue.height&&(ue.height=xe(z.y+Math.max(z.h,0),.5))}re(),N()}else if(b.kind==="resize"||b.kind==="band"){if(b.kind==="resize"){let y=je(s,b.id);y&&y.el.y+Math.max(y.el.h,0)>y.slot.band.height&&(y.slot.band.height=xe(y.el.y+y.el.h,.5))}re(),N()}else if(b.kind==="marquee"){let y=b.box.getBoundingClientRect();b.box.remove();let R=Re(s,b.key),D=b.area.getBoundingClientRect(),B=(y.left-D.left)/S,G=(y.top-D.top)/S,oe=B+y.width/S,z=G+y.height/S,ue=y.width<2&&y.height<2?[]:R.elements.filter(me=>{let ke=Math.min(me.x,me.x+me.w),Ke=Math.max(me.x,me.x+me.w),Kt=Math.min(me.y,me.y+me.h),Wt=Math.max(me.y,me.y+me.h);return ke<oe&&Ke>B&&Kt<z&&Wt>G}).map(me=>me.id);b.additive?ue.forEach(me=>d.add(me)):d=new Set(ue),h=b.key,N()}};v.addEventListener("pointerup",L),v.addEventListener("pointercancel",L),v.addEventListener("dblclick",m=>{let b=m.target.closest(".fr-dz-el");if(!b)return;let S=je(s,b.dataset.id);if(!S||S.el.type!=="text"&&S.el.type!=="field")return;let y=S.el,R=document.createElement("textarea");R.className="fr-dz-inline",R.value=y.type==="text"?y.text:y.expr,b.appendChild(R),R.focus(),R.select();let D=B=>{R.isConnected&&(B&&(y.type==="text"?y.text=R.value:y.expr=R.value,re()),N())};R.addEventListener("blur",()=>D(!0)),R.addEventListener("keydown",B=>{B.stopPropagation(),B.key==="Escape"?D(!1):B.key==="Enter"&&(y.type==="field"||!B.shiftKey)&&(B.preventDefault(),D(!0))})});let k=new AbortController,P=k.signal;e.addEventListener("dragstart",m=>{let b=m.target.closest("[data-tool]"),S=m.target.closest("[data-field]");!b&&!S||(m.dataTransfer.setData("text/plain",b?`tool:${b.dataset.tool}`:`field:${S.dataset.field}`),m.dataTransfer.effectAllowed="copy")},{signal:P}),v.addEventListener("dragover",m=>{m.target.closest("[data-band-area]")&&(m.preventDefault(),m.dataTransfer.dropEffect="copy")}),v.addEventListener("drop",m=>{let b=m.target.closest("[data-band-area]"),S=m.dataTransfer?.getData("text/plain")??"";if(!b||!S.includes(":"))return;m.preventDefault();let y=F(b,m),[R,D]=[S.slice(0,S.indexOf(":")),S.slice(S.indexOf(":")+1)];R==="tool"?T(D,b.dataset.bandArea,y.x,y.y):R==="field"&&T("field",b.dataset.bandArea,y.x,y.y,D)});let H=m=>{f=m,e.querySelectorAll(".fr-tab").forEach(b=>b.setAttribute("aria-selected",String(b.dataset.mode===m))),e.classList.toggle("is-preview",m==="preview"),e.classList.toggle("is-json",m==="json"),v.hidden=m!=="design",I.hidden=m!=="preview",Q.hidden=m!=="json",g?.destroy(),g=null,m==="preview"&&(g=yr(I,{definition:Ie(s),data:a,lang:n,licenseKey:t.licenseKey,toolbar:{csv:!0}})),m==="json"&&(Q.querySelector("textarea").value=JSON.stringify(s,null,2),Q.querySelector(".fr-dz-json-err").textContent="")},x=(m,b)=>{let S=URL.createObjectURL(new Blob([m],{type:"application/json"})),y=document.createElement("a");y.href=S,y.download=b,y.click(),setTimeout(()=>URL.revokeObjectURL(S),1e3)};e.addEventListener("click",m=>{var G;let b=m.target,S=b.closest(".fr-tab");if(S){H(S.dataset.mode);return}let y=b.closest("[data-tool]");if(y){let oe=h&&Re(s,h)?h:"detail";Re(s,oe)&&T(y.dataset.tool,oe,0,0);return}let R=b.closest("[data-field]");if(R){let oe=h&&Re(s,h)?h:"detail",z=Re(s,oe);z&&T("field",oe,Math.max(0,...z.elements.map(ue=>ue.x+ue.w))%Xe(s),0,R.dataset.field);return}let D=b.closest("[data-group-remove]");if(D){s.bands.groups?.splice(Number(D.dataset.groupRemove),1),s.bands.groups?.length||delete s.bands.groups,h=null,re(),N();return}let B=b.closest("[data-act]")?.dataset.act;if(B)switch(B){case"new":confirm(o.confirmNew)&&(s=gn(),wt(s),d.clear(),h=null,re(),N());break;case"open":ne.click();break;case"save":t.onSave?t.onSave(Ie(s)):x(JSON.stringify(s,null,2),`${(s.name??"report").replace(/[\\/:*?"<>|]+/g,"_")}.json`);break;case"undo":V();break;case"redo":fe();break;case"cut":ie(),ce();break;case"copy":ie(),N();break;case"paste":de();break;case"del":ce();break;case"grid":i=i?0:1,b.closest("[data-act]").setAttribute("aria-pressed",String(!!i));break;case"zoomIn":l=Math.min(3,Math.round((l+.1)*10)/10),N();break;case"zoomOut":l=Math.max(.4,Math.round((l-.1)*10)/10),N();break;case"addGroup":{let oe=e.querySelector(".fr-dz-addgroup select")?.value;if(!oe)break;let z=(G=s.bands).groups??(G.groups=[]),ue=Xe(s);z.push({by:oe,sort:"asc",header:{height:7,elements:[{id:xt(s),type:"text",x:0,y:0,w:ue,h:7,text:`{${oe}}`,style:{bold:!0,border:{bottom:!0}}}]},footer:{height:7,elements:[{id:xt(s),type:"text",x:0,y:0,w:ue,h:7,text:`{${oe}} {count()}\uAC74`,style:{align:"right",color:"#4a5568"}}]}}),re(),N();break}case"applyJson":{let oe=Q.querySelector(".fr-dz-json-err");try{let z=JSON.parse(Q.querySelector("textarea").value);if(!z||typeof z!="object"||!z.bands)throw new Error('"bands" is missing');s=z,wt(s),d.clear(),re(),N(),oe.textContent="",H("design")}catch(z){oe.textContent=`${o.jsonError}: ${z.message}`}break}default:(B.startsWith("align")||B==="sameW"||B==="sameH")&&le(B)}},{signal:P}),A.addEventListener("change",m=>{let b=m.target.closest("[data-band-toggle]");if(!b)return;let S=b.dataset.bandToggle;b.checked?wr(s,S,{height:S==="title"?14:8,elements:[]}):(wr(s,S,void 0),h===S&&(h=null),d=new Set([...d].filter(y=>je(s,y)))),re(),N()}),ne.addEventListener("change",async()=>{let m=ne.files?.[0];if(m){try{let b=JSON.parse(await m.text());if(!b?.bands)throw new Error('"bands" is missing');s=b,wt(s),d.clear(),h=null,re(),N()}catch(b){alert(`${o.jsonError}: ${b.message}`)}ne.value=""}});let W=m=>{let b=m.target;if(b.closest("input, textarea, select")||f!=="design"||!e.contains(b)&&b!==document.body)return;let S=m.ctrlKey||m.metaKey,y=m.key.toLowerCase();if(S&&y==="z"&&!m.shiftKey)m.preventDefault(),V();else if(S&&(y==="y"||y==="z"&&m.shiftKey))m.preventDefault(),fe();else if(S&&y==="c")d.size&&(m.preventDefault(),ie(),N());else if(S&&y==="x")d.size&&(m.preventDefault(),ie(),ce());else if(S&&y==="v")m.preventDefault(),de();else if(S&&y==="d")m.preventDefault(),ie(),de();else if(S&&y==="a")m.preventDefault(),X(Re(s,h??"detail")?.elements.map(D=>D.id)??[]);else if((y==="delete"||y==="backspace")&&d.size)m.preventDefault(),ce();else if(y==="escape")d.clear(),N();else if(y.startsWith("arrow")&&d.size){m.preventDefault();let R=m.altKey?.1:m.shiftKey?5:i||.5;for(let{el:D}of J())y==="arrowleft"&&(D.x=xe(Math.max(0,D.x-R))),y==="arrowright"&&(D.x=xe(D.x+R)),y==="arrowup"&&(D.y=xe(Math.max(0,D.y-R))),y==="arrowdown"&&(D.y=xe(D.y+R));re(),N()}};e.addEventListener("keydown",W,{signal:P});let Z=!1;return nt(s).then(()=>{Z||N()}),N(),{getDefinition:()=>Ie(s),setDefinition(m){s=Ie(m),wt(s),d.clear(),h=null,c.length=0,c.push(JSON.stringify(s)),p=[],N(),f!=="design"&&H(f)},setData(m){a=m,N(),f==="preview"&&H("preview")},undo:V,redo:fe,setMode:H,destroy(){Z=!0,g?.destroy(),clearTimeout(E),k.abort(),e.innerHTML="",e.classList.remove("fr-designer","is-preview","is-json")}}}function fs(e){let t=new Map,n=s=>s.toLowerCase().replace(/[\s'"_-]/g,"");for(let[s,a]of Object.entries(e))t.set(n(s),{normal:Ht(a.normal),bold:a.bold?Ht(a.bold):void 0});let r=t.values().next().value;if(!r)throw new Error("ttfMeasurer needs at least one font");let o=new Map;return{width(s,a){let l=t.get(n(a.family))??r,i=a.bold&&l.bold||l.normal,f=`${a.family}|${a.bold?1:0}|${s}`,d=o.get(f);if(d===void 0){d=0;for(let h of s){let u=i.glyphId(h.codePointAt(0)),c=i;!u&&i!==r.normal&&(c=r.normal,u=c.glyphId(h.codePointAt(0))),d+=c.advance(u)/c.unitsPerEm}a.bold&&!l.bold&&(d*=1.02),o.size>5e4&&o.clear(),o.set(f,d)}return d*a.size*$e}}}async function ds(e=["Nanum Gothic"]){let t={};for(let n of e){let r=pt(n);r?.normal&&(t[n]={normal:await qt(r.normal),bold:r.bold?await qt(r.bold):void 0})}return t}async function ps(e,t,n){let r=n.fonts??await ds();return{layout:At(e,t,{...n,measure:n.measure??fs(r)}),fonts:r}}async function Bi(e,t={},n={}){let{layout:r,fonts:o}=await ps(e,t,n),s=Object.values(o)[0];return bt(r.pages,{title:e.name,creator:"FreeReport",...n.pdf,fonts:{default:s,...o}})}async function Ni(e,t={},n={}){if(n.mode==="data")return Bt(e,t,{params:n.params});let{layout:r}=await ps(e,t,n);return It(r,e)}export{Qe as AgentError,Ln as FUNCTIONS,ot as PAPER,et as agent,ht as applyEmboss,gn as blankReport,no as canonicalText,Rr as canvasMeasurer,Dn as checkExpression,Be as compile,Xe as contentWidth,Ii as createDesigner,br as createReport,yr as createViewer,tr as dataToCsv,Bt as dataToXlsx,kt as defaultMeasurer,Tt as embossImage,Un as encodeCode128,_n as encodeDataMatrix,Gn as encodeEan13,Wn as encodePdf417,Kn as encodeQr,nt as ensureFonts,Tr as estimateMeasurer,Me as evaluate,Rt as fingerprintPages,jn as formatDate,Ur as formatNumber,ve as formatValue,pt as getFont,Ue as interpolate,Mt as koreanAmount,Cn as koreanNumber,At as layoutReport,qt as loadFontBytes,ds as loadFonts,_e as pageGeometry,We as pageToSvg,ar as pagesToHwpx,It as pagesToXlsx,at as paramValues,mr as printPages,vn as registerFont,Xs as renderPage,Bi as renderPdf,Ni as renderXlsx,xn as resetMeasurer,Ne as rowsOf,ts as saveFile,xs as setLicenseKey,to as sha256Hex,fs as ttfMeasurer,Hr as verifyLicense,_t as version,kn as wrapText,bt as writePdf,sn as writeXlsx};
|
|
131
|
+
<div class="fr-dz-band-resize" data-band-resize="${L.key}" title="${r.height}"></div>
|
|
132
|
+
</section>`).join(""),oe(),O(),e.querySelectorAll('[data-act="undo"]').forEach(L=>L.disabled=c.length<2),e.querySelectorAll('[data-act="redo"]').forEach(L=>L.disabled=!p.length);let w=d.size>0,R=d.size>1;for(let L of["cut","copy","del"])e.querySelector(`[data-act="${L}"]`).disabled=!w;for(let L of["alignL","alignC","alignR","alignT","alignM","alignB","sameW","sameH"])e.querySelector(`[data-act="${L}"]`).disabled=!R;e.querySelector('[data-act="paste"]').disabled=!u.length},O=()=>{let m=_();P.innerHTML=m.length?m.map(R=>`<button type="button" class="fr-dz-field" draggable="true" data-field="${ye(R)}" title="${ye(R)}">${ye(R)}</button>`).join(""):`<p class="fr-dz-empty">${o.noFields}</p>`;let y=new Set(ze(s).map(R=>R.key)),k=["title","pageHeader","columnHeader","detail","summary","pageFooter","noData"],w=s.bands.groups??[];j.innerHTML=k.map(R=>`<label class="fr-dz-bandopt"><input type="checkbox" data-band-toggle="${R}"${y.has(R)?" checked":""}> ${vr[n][R]}</label>`).join("")+w.map((R,L)=>`<div class="fr-dz-groupopt"><span>${vr[n].groupHeader.replace(/ .*/,"")} ${L+1}: <code>${ye(R.by)}</code></span><button type="button" class="fr-btn fr-icon" data-group-remove="${L}" title="${o.remove}" aria-label="${o.remove}">${Le("x")}</button></div>`).join("")+`<div class="fr-dz-addgroup"><select aria-label="${o.addGroup}">${m.map(R=>`<option>${ye(R)}</option>`).join("")}</select><button type="button" class="fr-btn" data-act="addGroup">${Le("plus")}<span>${o.addGroup}</span></button></div>`},Q=[],oe=()=>{let m=[...d].map(y=>je(s,y)?.el).filter(y=>!!y);if(m.length)Q=is(m,r,s);else if(g&&Te(s,g)){let y=ze(s).find(k=>k.key===g);Q=ls(y.band,us(y,n),r,y.group,y.key==="detail")}else Q=cs(s,r);x.innerHTML=Q.map((y,k)=>{if(y.kind==="section")return`<h3 class="fr-dz-sec">${ye(y.label)}</h3>`;let w=y.get?.(),R=`fr-f-${k}`,L=`fr-dz-prop${y.wide||y.kind==="textarea"||y.kind==="json"||y.kind==="expr"||y.kind==="toggles"?" is-wide":""}${y.kind==="check"?" is-check":""}`;if(y.kind==="check")return`<label class="${L}"><input type="checkbox" data-f="${k}"${w?" checked":""}> ${ye(y.label)}</label>`;if(y.kind==="toggles")return`<div class="${L}">${y.label?`<span class="fr-dz-plabel">${ye(y.label)}</span>`:""}<span class="fr-dz-toggles">${y.toggles.map((z,ie)=>`<button type="button" class="fr-btn fr-dz-toggle" data-f="${k}" data-k="${ie}" title="${ye(z.title)}" aria-label="${ye(z.title)}" aria-pressed="${z.get()}">${ye(z.label)}</button>`).join("")}</span></div>`;let I=`<label for="${R}" class="fr-dz-plabel">${ye(y.label)}</label>`,G=w==null?"":String(w);if(y.kind==="select")return`<div class="${L}">${I}<select id="${R}" data-f="${k}">${w===void 0?'<option value="" selected>\u2014</option>':""}${y.options.map(z=>`<option value="${ye(z.value)}"${z.value===G?" selected":""}>${ye(z.label)}</option>`).join("")}</select></div>`;if(y.kind==="textarea"||y.kind==="json")return`<div class="${L}">${I}<textarea id="${R}" data-f="${k}" rows="${y.kind==="json"?6:3}" spellcheck="false">${ye(G)}</textarea><small class="fr-dz-err" data-err="${k}"></small></div>`;if(y.kind==="color")return`<div class="${L}">${I}<span class="fr-dz-color"><input type="color" data-f="${k}" data-color value="${/^#[0-9a-f]{6}$/i.test(G)?G:"#ffffff"}" aria-label="${ye(y.label)}"><input type="text" id="${R}" data-f="${k}" value="${ye(G)}" placeholder="\u2014"></span></div>`;let se=y.kind==="number"?"number":"text";return`<div class="${L}">${I}<input id="${R}" type="${se}" data-f="${k}" value="${ye(G)}"${y.step?` step="${y.step}"`:""}${y.min!==void 0?` min="${y.min}"`:""}${y.placeholder?` placeholder="${ye(y.placeholder)}"`:""}${y.kind==="expr"?' spellcheck="false" class="is-expr"':""}>${y.kind==="expr"?`<small class="fr-dz-err" data-err="${k}">${ye(kr(G,r))}</small>`:""}</div>`}).join("")},pe=(m,y)=>{let k=Number(m.dataset.f),w=Q[k];if(w){if(w.kind==="toggles"){let R=w.toggles[Number(m.dataset.k)];R.set(!R.get())}else if(w.kind==="check")w.set?.(m.checked);else{let R=m.value;if(w.kind==="expr"){let L=kr(R,r),I=x.querySelector(`[data-err="${k}"]`);I&&(I.textContent=L)}if(w.kind==="json")try{w.set?.(R);let L=x.querySelector(`[data-err="${k}"]`);L&&(L.textContent="")}catch(L){let I=x.querySelector(`[data-err="${k}"]`);I&&(I.textContent=`${o.jsonError}: ${L.message}`);return}else if(w.kind==="number"){if(R===""||!Number.isFinite(Number(R)))return;w.set?.(Number(R))}else w.set?.(R)}if(y){re();let R=document.activeElement?.id;B(),R&&w.kind!=="toggles"&&w.kind!=="check"&&document.getElementById(R)?.focus()}else we()}},we=()=>{let m=x.innerHTML,y=document.activeElement?.id,k=document.activeElement,w=k&&"selectionStart"in k?k.selectionStart:null;if(B(),y){let R=document.getElementById(y);if(R&&(R.focus(),w!==null&&"setSelectionRange"in R))try{R.setSelectionRange(w,w)}catch{}}};x.addEventListener("input",m=>{let y=m.target;if(!y.dataset.f)return;let k=Q[Number(y.dataset.f)];if(y.dataset.color!==void 0){let w=y.parentElement.querySelector("input[type=text]");w.value=y.value}k&&(k.kind==="text"||k.kind==="textarea"||k.kind==="expr"||k.kind==="number")&&pe(y,!1)}),x.addEventListener("change",m=>{let y=m.target;y.dataset.f&&pe(y,!0)}),x.addEventListener("click",m=>{let y=m.target.closest(".fr-dz-toggle");y&&pe(y,!0)}),x.addEventListener("submit",m=>m.preventDefault());let Y=()=>[...d].map(m=>je(s,m)).filter(m=>!!m),J=(m,y=!1)=>{y||(d=new Set);for(let w of m)y&&d.has(w)?d.delete(w):d.add(w);let k=m.length?je(s,m[0]):null;k&&(g=k.slot.key),B()},le=()=>{for(let{slot:m,el:y}of Y())m.band.elements=m.band.elements.filter(k=>k!==y);d.clear(),re(),B()},de=()=>{u=Y().map(m=>Ie(m.el))},ue=()=>{if(!u.length)return;let m=g&&Te(s,g)?g:ze(s).find(w=>w.key==="detail")?.key??ze(s)[0]?.key;if(!m)return;let y=Te(s,m),k=[];for(let w of u){let R=Ie(w);R.id=xt(s),R.x=xe(R.x+2,.5),R.y=xe(Math.min(R.y+2,Math.max(0,y.height-Math.max(1,R.h))),.5),y.elements.push(R),k.push(R.id)}u=u.map(w=>({...Ie(w),x:w.x+2,y:w.y+2})),re(),J(k)},ae=m=>{let y=Y().map(G=>G.el);if(y.length<2)return;let k=Math.min(...y.map(G=>G.x)),w=Math.max(...y.map(G=>G.x+G.w)),R=Math.min(...y.map(G=>G.y)),L=Math.max(...y.map(G=>G.y+G.h)),I=y[0];for(let G of y)m==="alignL"?G.x=k:m==="alignR"?G.x=xe(w-G.w):m==="alignC"?G.x=xe((k+w)/2-G.w/2):m==="alignT"?G.y=R:m==="alignB"?G.y=xe(L-G.h):m==="alignM"?G.y=xe((R+L)/2-G.h/2):m==="sameW"?G.w=I.w:m==="sameH"&&(G.h=I.h);re(),B()},E=(m,y,k,w,R)=>{let L=Te(s,y);if(!L)return;let I=os(m,xt(s),xe(k,a||.01),xe(w,a||.01),L.height,R);if(I.x=Math.max(0,Math.min(I.x,Xe(s)-Math.min(I.w,5))),I.y=Math.max(0,Math.min(I.y,Math.max(0,L.height-(I.h||0)))),I.y+I.h>L.height&&(L.height=xe(I.y+I.h,.5)),L.elements.push(I),m==="field"&&R&&y==="detail"&&s.bands.columnHeader){let G=s.bands.columnHeader;G.elements.some(z=>z.x<I.x+I.w&&z.x+z.w>I.x)||G.elements.push({id:xt(s),type:"text",x:I.x,y:0,w:I.w,h:G.height,text:R,style:{bold:!0,align:"center",background:"#eef1f6",border:"0.2 solid #8a94a6"}}),I.style={border:"0.15 solid #b9c1cd",...typeof(Ne(s,i).rows[0]??{})[R]=="number"?{align:"right"}:{}},typeof(Ne(s,i).rows[0]??{})[R]=="number"&&(I.format="#,##0"),I.h=L.height,I.y=0}re(),J([I.id])},N=null,A=(m,y)=>{let k=m.getBoundingClientRect();return{x:(y.clientX-k.left)/U(),y:(y.clientY-k.top)/U()}};v.addEventListener("pointerdown",m=>{if(m.button!==0)return;let y=m.target;v.focus({preventScroll:!0});let k=y.closest(".fr-dz-h"),w=y.closest(".fr-dz-el"),R=y.closest("[data-band-resize]"),L=y.closest("[data-band-head]"),I=y.closest("[data-band-area]");if(R){let G=R.dataset.bandResize;N={kind:"band",key:G,startY:m.clientY,orig:Te(s,G).height}}else if(k&&w){let G=je(s,w.dataset.id);N={kind:"resize",id:G.el.id,handle:k.dataset.h,startX:m.clientX,startY:m.clientY,orig:{x:G.el.x,y:G.el.y,w:G.el.w,h:G.el.h}}}else if(w){let G=w.dataset.id;if(m.shiftKey||m.ctrlKey||m.metaKey){J([G],!0);return}d.has(G)||J([G]),N={kind:"move",startX:m.clientX,startY:m.clientY,moved:!1,items:Y().map(se=>({id:se.el.id,x:se.el.x,y:se.el.y,key:se.slot.key}))}}else if(L){d.clear(),g=L.dataset.bandHead,B();return}else if(I){let G=I.dataset.bandArea,se=document.createElement("div");se.className="fr-dz-marquee",I.appendChild(se);let z=A(I,m);N={kind:"marquee",key:G,area:I,startX:z.x,startY:z.y,box:se,additive:m.shiftKey||m.ctrlKey},N.additive||(d.clear(),g=G)}else{d.clear(),g=null,B();return}v.setPointerCapture(m.pointerId),m.preventDefault()}),v.addEventListener("pointermove",m=>{if(!N)return;let y=U();if(N.kind==="move"){let k=(m.clientX-N.startX)/y,w=(m.clientY-N.startY)/y;if(!N.moved&&Math.hypot(k,w)*y<3)return;if(N.moved=!0,a&&!m.altKey){let R=N.items[0];k=xe(R.x+k,a)-R.x,w=xe(R.y+w,a)-R.y}for(let R of N.items){let L=T.querySelector(`.fr-dz-el[data-id="${R.id}"]`),I=je(s,R.id);if(!L||!I)continue;let G=I.el.type==="line";L.style.left=`${Math.min(R.x+k,R.x+k+(G?I.el.w:0))*y}px`,L.style.top=`${Math.min(R.y+w,R.y+w+(G?I.el.h:0))*y}px`}}else if(N.kind==="resize"){let k=je(s,N.id);if(!k)return;let w=k.el,R=(m.clientX-N.startX)/y,L=(m.clientY-N.startY)/y,I=N.orig,G=z=>a&&!m.altKey?xe(z,a):xe(z);if(w.type==="line")N.handle==="nw"?(w.x=G(I.x+R),w.y=G(I.y+L),w.w=xe(I.x+I.w-w.x),w.h=xe(I.y+I.h-w.y)):(w.w=G(I.x+I.w+R)-I.x,w.h=G(I.y+I.h+L)-I.y,m.shiftKey&&(Math.abs(w.w)>Math.abs(w.h)?w.h=0:w.w=0));else{if(N.handle.includes("e")&&(w.w=Math.max(1,G(I.x+I.w+R)-I.x)),N.handle.includes("s")&&(w.h=Math.max(1,G(I.y+I.h+L)-I.y)),N.handle.includes("w")){let z=Math.min(G(I.x+R),I.x+I.w-1);w.w=xe(I.x+I.w-z),w.x=z}if(N.handle.includes("n")){let z=Math.min(G(I.y+L),I.y+I.h-1);w.h=xe(I.y+I.h-z),w.y=z}}R=L=0;let se=T.querySelector(`.fr-dz-el[data-id="${N.id}"]`);se&&(se.outerHTML=X(w,k.slot))}else if(N.kind==="marquee"){let k=A(N.area,m),w=Math.min(k.x,N.startX),R=Math.min(k.y,N.startY);Object.assign(N.box.style,{left:`${w*y}px`,top:`${R*y}px`,width:`${Math.abs(k.x-N.startX)*y}px`,height:`${Math.abs(k.y-N.startY)*y}px`})}else if(N.kind==="band"){let k=Te(s,N.key),w=Math.max(1,...k.elements.map(I=>I.y+Math.max(I.h,0)));k.height=Math.max(w,xe(N.orig+(m.clientY-N.startY)/y,.5));let R=T.querySelector(`[data-band-area="${N.key}"]`);R&&(R.style.height=`${k.height*y}px`);let L=T.querySelector(`[data-band-head="${N.key}"] small`);L&&(L.textContent=`${k.height}mm`)}});let C=m=>{if(!N)return;let y=N;N=null;let k=U();if(y.kind==="move"&&y.moved){let w=(m.clientX-y.startX)/k,R=(m.clientY-y.startY)/k;if(a&&!m.altKey){let G=y.items[0];w=xe(G.x+w,a)-G.x,R=xe(G.y+R,a)-G.y}let I=document.elementsFromPoint(m.clientX,m.clientY).find(G=>G.dataset?.bandArea)?.dataset.bandArea;for(let G of y.items){let se=je(s,G.id);if(!se)continue;let z=se.el;if(z.x=xe(Math.max(0,G.x+w)),z.y=xe(G.y+R),I&&I!==se.slot.key){let he=T.querySelector(`[data-band-area="${se.slot.key}"]`),Ke=(T.querySelector(`[data-band-area="${I}"]`).getBoundingClientRect().top-he.getBoundingClientRect().top)/k;z.y=xe(z.y-Ke),se.slot.band.elements.splice(se.index,1),Te(s,I).elements.push(z),g=I}let ie=je(s,G.id).slot.band;z.y=Math.max(0,z.y),z.y+Math.max(z.h,0)>ie.height&&(ie.height=xe(z.y+Math.max(z.h,0),.5))}re(),B()}else if(y.kind==="resize"||y.kind==="band"){if(y.kind==="resize"){let w=je(s,y.id);w&&w.el.y+Math.max(w.el.h,0)>w.slot.band.height&&(w.slot.band.height=xe(w.el.y+w.el.h,.5))}re(),B()}else if(y.kind==="marquee"){let w=y.box.getBoundingClientRect();y.box.remove();let R=Te(s,y.key),L=y.area.getBoundingClientRect(),I=(w.left-L.left)/k,G=(w.top-L.top)/k,se=I+w.width/k,z=G+w.height/k,ie=w.width<2&&w.height<2?[]:R.elements.filter(he=>{let ke=Math.min(he.x,he.x+he.w),Ke=Math.max(he.x,he.x+he.w),Kt=Math.min(he.y,he.y+he.h),Wt=Math.max(he.y,he.y+he.h);return ke<se&&Ke>I&&Kt<z&&Wt>G}).map(he=>he.id);y.additive?ie.forEach(he=>d.add(he)):d=new Set(ie),g=y.key,B()}};v.addEventListener("pointerup",C),v.addEventListener("pointercancel",C),v.addEventListener("dblclick",m=>{let y=m.target.closest(".fr-dz-el");if(!y)return;let k=je(s,y.dataset.id);if(!k||k.el.type!=="text"&&k.el.type!=="field")return;let w=k.el,R=document.createElement("textarea");R.className="fr-dz-inline",R.value=w.type==="text"?w.text:w.expr,y.appendChild(R),R.focus(),R.select();let L=I=>{R.isConnected&&(I&&(w.type==="text"?w.text=R.value:w.expr=R.value,re()),B())};R.addEventListener("blur",()=>L(!0)),R.addEventListener("keydown",I=>{I.stopPropagation(),I.key==="Escape"?L(!1):I.key==="Enter"&&(w.type==="field"||!I.shiftKey)&&(I.preventDefault(),L(!0))})});let ne=new AbortController,H=ne.signal;e.addEventListener("dragstart",m=>{let y=m.target.closest("[data-tool]"),k=m.target.closest("[data-field]");!y&&!k||(m.dataTransfer.setData("text/plain",y?`tool:${y.dataset.tool}`:`field:${k.dataset.field}`),m.dataTransfer.effectAllowed="copy")},{signal:H}),v.addEventListener("dragover",m=>{m.target.closest("[data-band-area]")&&(m.preventDefault(),m.dataTransfer.dropEffect="copy")}),v.addEventListener("drop",m=>{let y=m.target.closest("[data-band-area]"),k=m.dataTransfer?.getData("text/plain")??"";if(!y||!k.includes(":"))return;m.preventDefault();let w=A(y,m),[R,L]=[k.slice(0,k.indexOf(":")),k.slice(k.indexOf(":")+1)];R==="tool"?E(L,y.dataset.bandArea,w.x,w.y):R==="field"&&E("field",y.dataset.bandArea,w.x,w.y,L)});let K=m=>{f=m,e.querySelectorAll(".fr-tab").forEach(y=>y.setAttribute("aria-selected",String(y.dataset.mode===m))),e.classList.toggle("is-preview",m==="preview"),e.classList.toggle("is-json",m==="json"),v.hidden=m!=="design",F.hidden=m!=="preview",Z.hidden=m!=="json",b?.destroy(),b=null,m==="preview"&&(b=yr(F,{definition:Ie(s),data:i,lang:n,licenseKey:t.licenseKey,toolbar:{csv:!0}})),m==="json"&&(Z.querySelector("textarea").value=JSON.stringify(s,null,2),Z.querySelector(".fr-dz-json-err").textContent="")},h=(m,y)=>{let k=URL.createObjectURL(new Blob([m],{type:"application/json"})),w=document.createElement("a");w.href=k,w.download=y,w.click(),setTimeout(()=>URL.revokeObjectURL(k),1e3)};e.addEventListener("click",m=>{var G;let y=m.target,k=y.closest(".fr-tab");if(k){K(k.dataset.mode);return}let w=y.closest("[data-tool]");if(w){let se=g&&Te(s,g)?g:"detail";Te(s,se)&&E(w.dataset.tool,se,0,0);return}let R=y.closest("[data-field]");if(R){let se=g&&Te(s,g)?g:"detail",z=Te(s,se);z&&E("field",se,Math.max(0,...z.elements.map(ie=>ie.x+ie.w))%Xe(s),0,R.dataset.field);return}let L=y.closest("[data-group-remove]");if(L){s.bands.groups?.splice(Number(L.dataset.groupRemove),1),s.bands.groups?.length||delete s.bands.groups,g=null,re(),B();return}let I=y.closest("[data-act]")?.dataset.act;if(I)switch(I){case"new":confirm(o.confirmNew)&&(s=gn(),wt(s),d.clear(),g=null,re(),B());break;case"open":te.click();break;case"save":t.onSave?t.onSave(Ie(s)):h(JSON.stringify(s,null,2),`${(s.name??"report").replace(/[\\/:*?"<>|]+/g,"_")}.json`);break;case"undo":V();break;case"redo":fe();break;case"cut":de(),le();break;case"copy":de(),B();break;case"paste":ue();break;case"del":le();break;case"grid":a=a?0:1,y.closest("[data-act]").setAttribute("aria-pressed",String(!!a));break;case"zoomIn":l=Math.min(3,Math.round((l+.1)*10)/10),B();break;case"zoomOut":l=Math.max(.4,Math.round((l-.1)*10)/10),B();break;case"addGroup":{let se=e.querySelector(".fr-dz-addgroup select")?.value;if(!se)break;let z=(G=s.bands).groups??(G.groups=[]),ie=Xe(s);z.push({by:se,sort:"asc",header:{height:7,elements:[{id:xt(s),type:"text",x:0,y:0,w:ie,h:7,text:`{${se}}`,style:{bold:!0,border:{bottom:!0}}}]},footer:{height:7,elements:[{id:xt(s),type:"text",x:0,y:0,w:ie,h:7,text:`{${se}} {count()}\uAC74`,style:{align:"right",color:"#4a5568"}}]}}),re(),B();break}case"applyJson":{let se=Z.querySelector(".fr-dz-json-err");try{let z=JSON.parse(Z.querySelector("textarea").value);if(!z||typeof z!="object"||!z.bands)throw new Error('"bands" is missing');s=z,wt(s),d.clear(),re(),B(),se.textContent="",K("design")}catch(z){se.textContent=`${o.jsonError}: ${z.message}`}break}default:(I.startsWith("align")||I==="sameW"||I==="sameH")&&ae(I)}},{signal:H}),j.addEventListener("change",m=>{let y=m.target.closest("[data-band-toggle]");if(!y)return;let k=y.dataset.bandToggle;y.checked?wr(s,k,{height:k==="title"?14:8,elements:[]}):(wr(s,k,void 0),g===k&&(g=null),d=new Set([...d].filter(w=>je(s,w)))),re(),B()}),te.addEventListener("change",async()=>{let m=te.files?.[0];if(m){try{let y=JSON.parse(await m.text());if(!y?.bands)throw new Error('"bands" is missing');s=y,wt(s),d.clear(),g=null,re(),B()}catch(y){alert(`${o.jsonError}: ${y.message}`)}te.value=""}});let D=m=>{let y=m.target;if(y.closest("input, textarea, select")||f!=="design"||!e.contains(y)&&y!==document.body)return;let k=m.ctrlKey||m.metaKey,w=m.key.toLowerCase();if(k&&w==="z"&&!m.shiftKey)m.preventDefault(),V();else if(k&&(w==="y"||w==="z"&&m.shiftKey))m.preventDefault(),fe();else if(k&&w==="c")d.size&&(m.preventDefault(),de(),B());else if(k&&w==="x")d.size&&(m.preventDefault(),de(),le());else if(k&&w==="v")m.preventDefault(),ue();else if(k&&w==="d")m.preventDefault(),de(),ue();else if(k&&w==="a")m.preventDefault(),J(Te(s,g??"detail")?.elements.map(L=>L.id)??[]);else if((w==="delete"||w==="backspace")&&d.size)m.preventDefault(),le();else if(w==="escape")d.clear(),B();else if(w.startsWith("arrow")&&d.size){m.preventDefault();let R=m.altKey?.1:m.shiftKey?5:a||.5;for(let{el:L}of Y())w==="arrowleft"&&(L.x=xe(Math.max(0,L.x-R))),w==="arrowright"&&(L.x=xe(L.x+R)),w==="arrowup"&&(L.y=xe(Math.max(0,L.y-R))),w==="arrowdown"&&(L.y=xe(L.y+R));re(),B()}};e.addEventListener("keydown",D,{signal:H});let q=!1;return nt(s).then(()=>{q||B()}),B(),{getDefinition:()=>Ie(s),setDefinition(m){s=Ie(m),wt(s),d.clear(),g=null,c.length=0,c.push(JSON.stringify(s)),p=[],B(),f!=="design"&&K(f)},setData(m){i=m,B(),f==="preview"&&K("preview")},undo:V,redo:fe,setMode:K,destroy(){q=!0,b?.destroy(),clearTimeout(S),ne.abort(),e.innerHTML="",e.classList.remove("fr-designer","is-preview","is-json")}}}function fs(e){let t=new Map,n=s=>s.toLowerCase().replace(/[\s'"_-]/g,"");for(let[s,i]of Object.entries(e))t.set(n(s),{normal:Ht(i.normal),bold:i.bold?Ht(i.bold):void 0});let r=t.values().next().value;if(!r)throw new Error("ttfMeasurer needs at least one font");let o=new Map;return{width(s,i){let l=t.get(n(i.family))??r,a=i.bold&&l.bold||l.normal,f=`${i.family}|${i.bold?1:0}|${s}`,d=o.get(f);if(d===void 0){d=0;for(let g of s){let u=a.glyphId(g.codePointAt(0)),c=a;!u&&a!==r.normal&&(c=r.normal,u=c.glyphId(g.codePointAt(0))),d+=c.advance(u)/c.unitsPerEm}i.bold&&!l.bold&&(d*=1.02),o.size>5e4&&o.clear(),o.set(f,d)}return d*i.size*$e}}}async function ds(e=["Nanum Gothic"]){let t={};for(let n of e){let r=pt(n);r?.normal&&(t[n]={normal:await qt(r.normal),bold:r.bold?await qt(r.bold):void 0})}return t}async function ps(e,t,n){let r=n.fonts??await ds();return{layout:At(e,t,{...n,measure:n.measure??fs(r)}),fonts:r}}async function Bi(e,t={},n={}){let{layout:r,fonts:o}=await ps(e,t,n),s=Object.values(o)[0];return bt(r.pages,{title:e.name,creator:"FreeReport",...n.pdf,fonts:{default:s,...o}})}async function Ni(e,t={},n={}){if(n.mode==="data")return Bt(e,t,{params:n.params});let{layout:r}=await ps(e,t,n);return It(r,e)}export{Qe as AgentError,Ln as FUNCTIONS,ot as PAPER,et as agent,ht as applyEmboss,gn as blankReport,no as canonicalText,Tr as canvasMeasurer,Dn as checkExpression,Be as compile,Xe as contentWidth,Ii as createDesigner,br as createReport,yr as createViewer,tr as dataToCsv,Bt as dataToXlsx,kt as defaultMeasurer,Rt as embossImage,Un as encodeCode128,_n as encodeDataMatrix,Gn as encodeEan13,Wn as encodePdf417,Kn as encodeQr,nt as ensureFonts,Rr as estimateMeasurer,Me as evaluate,Tt as fingerprintPages,jn as formatDate,Ur as formatNumber,ve as formatValue,pt as getFont,Ue as interpolate,Mt as koreanAmount,Cn as koreanNumber,At as layoutReport,qt as loadFontBytes,ds as loadFonts,_e as pageGeometry,We as pageToSvg,ar as pagesToHwpx,It as pagesToXlsx,at as paramValues,mr as printPages,vn as registerFont,Xs as renderPage,Bi as renderPdf,Ni as renderXlsx,xn as resetMeasurer,Ne as rowsOf,ts as saveFile,xs as setLicenseKey,to as sha256Hex,fs as ttfMeasurer,Hr as verifyLicense,_t as version,kn as wrapText,bt as writePdf,sn as writeXlsx};
|