
/* /web/static/src/module_loader.js */
(function(){"use strict";class ModuleLoader{factories=new Map();jobs=new Set();failed=new Set();modules=new Map();bus=new EventTarget();checkErrorProm=null;define(name,deps,factory){if(typeof name!=="string"){throw new Error(`Invalid name definition: ${name} (should be a string)"`);}
if(!(deps instanceof Array)){throw new Error(`Dependencies should be defined by an array: ${deps}`);}
if(typeof factory!=="function"){throw new Error(`Factory should be defined by a function ${factory}`);}
if(!this.factories.has(name)){this.factories.set(name,{deps,fn:factory,ignoreMissingDeps:globalThis.__odooIgnoreMissingDependencies,});this.addJob(name);this.checkErrorProm||=Promise.resolve().then(()=>{this.checkAndReportErrors();this.checkErrorProm=null;});}}
addJob(name){this.jobs.add(name);this.startModules();}
findJob(){for(const job of this.jobs){if(this.factories.get(job).deps.every((dep)=>this.modules.has(dep))){return job;}}
return null;}
startModules(){let job;while((job=this.findJob())){this.startModule(job);}}
startModule(name){const require=(name)=>this.modules.get(name);this.jobs.delete(name);const factory=this.factories.get(name);let value=null;try{value=factory.fn(require);}catch(error){this.failed.add(name);throw new Error(`Error while loading "${name}":\n${error}`);}
this.modules.set(name,value);this.bus.dispatchEvent(new CustomEvent("module-started",{detail:{moduleName:name,module:value}}));}
findErrors(){const dependencyGraph=new Map();for(const job of this.jobs){dependencyGraph.set(job,this.factories.get(job).deps);}
function visitJobs(jobs,visited=new Set()){for(const job of jobs){const result=visitJob(job,visited);if(result){return result;}}
return null;}
function visitJob(job,visited){if(visited.has(job)){const jobs=Array.from(visited).concat([job]);const index=jobs.indexOf(job);return jobs.slice(index).map((j)=>`"${j}"`).join(" => ");}
const deps=dependencyGraph.get(job);return deps?visitJobs(deps,new Set(visited).add(job)):null;}
const missing=new Set();for(const job of this.jobs){const factory=this.factories.get(job);if(factory.ignoreMissingDeps){continue;}
for(const dep of factory.deps){if(!this.factories.has(dep)){missing.add(dep);}}}
return{failed:[...this.failed],cycle:visitJobs(this.jobs),missing:[...missing],unloaded:[...this.jobs].filter((j)=>!this.factories.get(j).ignoreMissingDeps),};}
async checkAndReportErrors(){const{failed,cycle,missing,unloaded}=this.findErrors();if(!failed.length&&!unloaded.length){return;}
const style=document.createElement("style");style.textContent=`
                body::before {
                    font-weight: bold;
                    content: "An error occurred while loading javascript modules, you may find more information in the devtools console";
                    position: fixed;
                    left: 0;
                    bottom: 0;
                    z-index: 100000000000;
                    background-color: #C00;
                    color: #DDD;
                }
            `;document.head.appendChild(style);if(failed.length){console.error("The following modules failed to load because of an error:",failed)}
if(missing){console.error("The following modules are needed by other modules but have not been defined, they may not be present in the correct asset bundle:",missing);}
if(cycle){console.error("The following modules could not be loaded because they form a dependency cycle:",cycle);}
if(unloaded){console.error("The following modules could not be loaded because they have unmet dependencies, this is a secondary error which is likely caused by one of the above problems:",unloaded);}}}
if(!globalThis.odoo){globalThis.odoo={};}
const odoo=globalThis.odoo;if(odoo.debug&&!new URLSearchParams(location.search).has("debug")){odoo.debug="";}
const loader=new ModuleLoader();odoo.define=loader.define.bind(loader);odoo.loader=loader;})();;

/* /web/static/src/session.js */
odoo.define('@web/session',[],function(require){'use strict';let __exports={};const session=__exports.session=odoo.__session_info__||{};delete odoo.__session_info__;return __exports;});;

/* /web/static/lib/luxon/luxon.js */
var luxon=(function(exports){'use strict';class LuxonError extends Error{}
class InvalidDateTimeError extends LuxonError{constructor(reason){super(`Invalid DateTime: ${reason.toMessage()}`);}}
class InvalidIntervalError extends LuxonError{constructor(reason){super(`Invalid Interval: ${reason.toMessage()}`);}}
class InvalidDurationError extends LuxonError{constructor(reason){super(`Invalid Duration: ${reason.toMessage()}`);}}
class ConflictingSpecificationError extends LuxonError{}
class InvalidUnitError extends LuxonError{constructor(unit){super(`Invalid unit ${unit}`);}}
class InvalidArgumentError extends LuxonError{}
class ZoneIsAbstractError extends LuxonError{constructor(){super("Zone is an abstract class");}}
const n="numeric",s="short",l="long";const DATE_SHORT={year:n,month:n,day:n,};const DATE_MED={year:n,month:s,day:n,};const DATE_MED_WITH_WEEKDAY={year:n,month:s,day:n,weekday:s,};const DATE_FULL={year:n,month:l,day:n,};const DATE_HUGE={year:n,month:l,day:n,weekday:l,};const TIME_SIMPLE={hour:n,minute:n,};const TIME_WITH_SECONDS={hour:n,minute:n,second:n,};const TIME_WITH_SHORT_OFFSET={hour:n,minute:n,second:n,timeZoneName:s,};const TIME_WITH_LONG_OFFSET={hour:n,minute:n,second:n,timeZoneName:l,};const TIME_24_SIMPLE={hour:n,minute:n,hourCycle:"h23",};const TIME_24_WITH_SECONDS={hour:n,minute:n,second:n,hourCycle:"h23",};const TIME_24_WITH_SHORT_OFFSET={hour:n,minute:n,second:n,hourCycle:"h23",timeZoneName:s,};const TIME_24_WITH_LONG_OFFSET={hour:n,minute:n,second:n,hourCycle:"h23",timeZoneName:l,};const DATETIME_SHORT={year:n,month:n,day:n,hour:n,minute:n,};const DATETIME_SHORT_WITH_SECONDS={year:n,month:n,day:n,hour:n,minute:n,second:n,};const DATETIME_MED={year:n,month:s,day:n,hour:n,minute:n,};const DATETIME_MED_WITH_SECONDS={year:n,month:s,day:n,hour:n,minute:n,second:n,};const DATETIME_MED_WITH_WEEKDAY={year:n,month:s,day:n,weekday:s,hour:n,minute:n,};const DATETIME_FULL={year:n,month:l,day:n,hour:n,minute:n,timeZoneName:s,};const DATETIME_FULL_WITH_SECONDS={year:n,month:l,day:n,hour:n,minute:n,second:n,timeZoneName:s,};const DATETIME_HUGE={year:n,month:l,day:n,weekday:l,hour:n,minute:n,timeZoneName:l,};const DATETIME_HUGE_WITH_SECONDS={year:n,month:l,day:n,weekday:l,hour:n,minute:n,second:n,timeZoneName:l,};class Zone{get type(){throw new ZoneIsAbstractError();}
get name(){throw new ZoneIsAbstractError();}
get ianaName(){return this.name;}
get isUniversal(){throw new ZoneIsAbstractError();}
offsetName(ts,opts){throw new ZoneIsAbstractError();}
formatOffset(ts,format){throw new ZoneIsAbstractError();}
offset(ts){throw new ZoneIsAbstractError();}
equals(otherZone){throw new ZoneIsAbstractError();}
get isValid(){throw new ZoneIsAbstractError();}}
let singleton$1=null;class SystemZone extends Zone{static get instance(){if(singleton$1===null){singleton$1=new SystemZone();}
return singleton$1;}
get type(){return"system";}
get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone;}
get isUniversal(){return false;}
offsetName(ts,{format,locale}){return parseZoneInfo(ts,format,locale);}
formatOffset(ts,format){return formatOffset(this.offset(ts),format);}
offset(ts){return-new Date(ts).getTimezoneOffset();}
equals(otherZone){return otherZone.type==="system";}
get isValid(){return true;}}
let dtfCache={};function makeDTF(zone){if(!dtfCache[zone]){dtfCache[zone]=new Intl.DateTimeFormat("en-US",{hour12:false,timeZone:zone,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short",});}
return dtfCache[zone];}
const typeToPos={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6,};function hackyOffset(dtf,date){const formatted=dtf.format(date).replace(/\u200E/g,""),parsed=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(formatted),[,fMonth,fDay,fYear,fadOrBc,fHour,fMinute,fSecond]=parsed;return[fYear,fMonth,fDay,fadOrBc,fHour,fMinute,fSecond];}
function partsOffset(dtf,date){const formatted=dtf.formatToParts(date);const filled=[];for(let i=0;i<formatted.length;i++){const{type,value}=formatted[i];const pos=typeToPos[type];if(type==="era"){filled[pos]=value;}else if(!isUndefined(pos)){filled[pos]=parseInt(value,10);}}
return filled;}
let ianaZoneCache={};class IANAZone extends Zone{static create(name){if(!ianaZoneCache[name]){ianaZoneCache[name]=new IANAZone(name);}
return ianaZoneCache[name];}
static resetCache(){ianaZoneCache={};dtfCache={};}
static isValidSpecifier(s){return this.isValidZone(s);}
static isValidZone(zone){if(!zone){return false;}
try{new Intl.DateTimeFormat("en-US",{timeZone:zone}).format();return true;}catch(e){return false;}}
constructor(name){super();this.zoneName=name;this.valid=IANAZone.isValidZone(name);}
get type(){return"iana";}
get name(){return this.zoneName;}
get isUniversal(){return false;}
offsetName(ts,{format,locale}){return parseZoneInfo(ts,format,locale,this.name);}
formatOffset(ts,format){return formatOffset(this.offset(ts),format);}
offset(ts){const date=new Date(ts);if(isNaN(date))return NaN;const dtf=makeDTF(this.name);let[year,month,day,adOrBc,hour,minute,second]=dtf.formatToParts?partsOffset(dtf,date):hackyOffset(dtf,date);if(adOrBc==="BC"){year=-Math.abs(year)+1;}
const adjustedHour=hour===24?0:hour;const asUTC=objToLocalTS({year,month,day,hour:adjustedHour,minute,second,millisecond:0,});let asTS=+date;const over=asTS%1000;asTS-=over>=0?over:1000+over;return(asUTC-asTS)/(60*1000);}
equals(otherZone){return otherZone.type==="iana"&&otherZone.name===this.name;}
get isValid(){return this.valid;}}
let intlLFCache={};function getCachedLF(locString,opts={}){const key=JSON.stringify([locString,opts]);let dtf=intlLFCache[key];if(!dtf){dtf=new Intl.ListFormat(locString,opts);intlLFCache[key]=dtf;}
return dtf;}
let intlDTCache={};function getCachedDTF(locString,opts={}){const key=JSON.stringify([locString,opts]);let dtf=intlDTCache[key];if(!dtf){dtf=new Intl.DateTimeFormat(locString,opts);intlDTCache[key]=dtf;}
return dtf;}
let intlNumCache={};function getCachedINF(locString,opts={}){const key=JSON.stringify([locString,opts]);let inf=intlNumCache[key];if(!inf){inf=new Intl.NumberFormat(locString,opts);intlNumCache[key]=inf;}
return inf;}
let intlRelCache={};function getCachedRTF(locString,opts={}){const{base,...cacheKeyOpts}=opts;const key=JSON.stringify([locString,cacheKeyOpts]);let inf=intlRelCache[key];if(!inf){inf=new Intl.RelativeTimeFormat(locString,opts);intlRelCache[key]=inf;}
return inf;}
let sysLocaleCache=null;function systemLocale(){if(sysLocaleCache){return sysLocaleCache;}else{sysLocaleCache=new Intl.DateTimeFormat().resolvedOptions().locale;return sysLocaleCache;}}
function parseLocaleString(localeStr){const xIndex=localeStr.indexOf("-x-");if(xIndex!==-1){localeStr=localeStr.substring(0,xIndex);}
const uIndex=localeStr.indexOf("-u-");if(uIndex===-1){return[localeStr];}else{let options;let selectedStr;try{options=getCachedDTF(localeStr).resolvedOptions();selectedStr=localeStr;}catch(e){const smaller=localeStr.substring(0,uIndex);options=getCachedDTF(smaller).resolvedOptions();selectedStr=smaller;}
const{numberingSystem,calendar}=options;return[selectedStr,numberingSystem,calendar];}}
function intlConfigString(localeStr,numberingSystem,outputCalendar){if(outputCalendar||numberingSystem){if(!localeStr.includes("-u-")){localeStr+="-u";}
if(outputCalendar){localeStr+=`-ca-${outputCalendar}`;}
if(numberingSystem){localeStr+=`-nu-${numberingSystem}`;}
return localeStr;}else{return localeStr;}}
function mapMonths(f){const ms=[];for(let i=1;i<=12;i++){const dt=DateTime.utc(2009,i,1);ms.push(f(dt));}
return ms;}
function mapWeekdays(f){const ms=[];for(let i=1;i<=7;i++){const dt=DateTime.utc(2016,11,13+i);ms.push(f(dt));}
return ms;}
function listStuff(loc,length,englishFn,intlFn){const mode=loc.listingMode();if(mode==="error"){return null;}else if(mode==="en"){return englishFn(length);}else{return intlFn(length);}}
function supportsFastNumbers(loc){if(loc.numberingSystem&&loc.numberingSystem!=="latn"){return false;}else{return(loc.numberingSystem==="latn"||!loc.locale||loc.locale.startsWith("en")||new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem==="latn");}}
class PolyNumberFormatter{constructor(intl,forceSimple,opts){this.padTo=opts.padTo||0;this.floor=opts.floor||false;const{padTo,floor,...otherOpts}=opts;if(!forceSimple||Object.keys(otherOpts).length>0){const intlOpts={useGrouping:false,...opts};if(opts.padTo>0)intlOpts.minimumIntegerDigits=opts.padTo;this.inf=getCachedINF(intl,intlOpts);}}
format(i){if(this.inf){const fixed=this.floor?Math.floor(i):i;return this.inf.format(fixed);}else{const fixed=this.floor?Math.floor(i):roundTo(i,3);return padStart(fixed,this.padTo);}}}
class PolyDateFormatter{constructor(dt,intl,opts){this.opts=opts;this.originalZone=undefined;let z=undefined;if(this.opts.timeZone){this.dt=dt;}else if(dt.zone.type==="fixed"){const gmtOffset=-1*(dt.offset/60);const offsetZ=gmtOffset>=0?`Etc/GMT+${gmtOffset}`:`Etc/GMT${gmtOffset}`;if(dt.offset!==0&&IANAZone.create(offsetZ).valid){z=offsetZ;this.dt=dt;}else{z="UTC";this.dt=dt.offset===0?dt:dt.setZone("UTC").plus({minutes:dt.offset});this.originalZone=dt.zone;}}else if(dt.zone.type==="system"){this.dt=dt;}else if(dt.zone.type==="iana"){this.dt=dt;z=dt.zone.name;}else{z="UTC";this.dt=dt.setZone("UTC").plus({minutes:dt.offset});this.originalZone=dt.zone;}
const intlOpts={...this.opts};intlOpts.timeZone=intlOpts.timeZone||z;this.dtf=getCachedDTF(intl,intlOpts);}
format(){if(this.originalZone){return this.formatToParts().map(({value})=>value).join("");}
return this.dtf.format(this.dt.toJSDate());}
formatToParts(){const parts=this.dtf.formatToParts(this.dt.toJSDate());if(this.originalZone){return parts.map((part)=>{if(part.type==="timeZoneName"){const offsetName=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName,});return{...part,value:offsetName,};}else{return part;}});}
return parts;}
resolvedOptions(){return this.dtf.resolvedOptions();}}
class PolyRelFormatter{constructor(intl,isEnglish,opts){this.opts={style:"long",...opts};if(!isEnglish&&hasRelative()){this.rtf=getCachedRTF(intl,opts);}}
format(count,unit){if(this.rtf){return this.rtf.format(count,unit);}else{return formatRelativeTime(unit,count,this.opts.numeric,this.opts.style!=="long");}}
formatToParts(count,unit){if(this.rtf){return this.rtf.formatToParts(count,unit);}else{return[];}}}
class Locale{static fromOpts(opts){return Locale.create(opts.locale,opts.numberingSystem,opts.outputCalendar,opts.defaultToEN);}
static create(locale,numberingSystem,outputCalendar,defaultToEN=false){const specifiedLocale=locale||Settings.defaultLocale;const localeR=specifiedLocale||(defaultToEN?"en-US":systemLocale());const numberingSystemR=numberingSystem||Settings.defaultNumberingSystem;const outputCalendarR=outputCalendar||Settings.defaultOutputCalendar;return new Locale(localeR,numberingSystemR,outputCalendarR,specifiedLocale);}
static resetCache(){sysLocaleCache=null;intlDTCache={};intlNumCache={};intlRelCache={};}
static fromObject({locale,numberingSystem,outputCalendar}={}){return Locale.create(locale,numberingSystem,outputCalendar);}
constructor(locale,numbering,outputCalendar,specifiedLocale){const[parsedLocale,parsedNumberingSystem,parsedOutputCalendar]=parseLocaleString(locale);this.locale=parsedLocale;this.numberingSystem=numbering||parsedNumberingSystem||null;this.outputCalendar=outputCalendar||parsedOutputCalendar||null;this.intl=intlConfigString(this.locale,this.numberingSystem,this.outputCalendar);this.weekdaysCache={format:{},standalone:{}};this.monthsCache={format:{},standalone:{}};this.meridiemCache=null;this.eraCache={};this.specifiedLocale=specifiedLocale;this.fastNumbersCached=null;}
get fastNumbers(){if(this.fastNumbersCached==null){this.fastNumbersCached=supportsFastNumbers(this);}
return this.fastNumbersCached;}
listingMode(){const isActuallyEn=this.isEnglish();const hasNoWeirdness=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return isActuallyEn&&hasNoWeirdness?"en":"intl";}
clone(alts){if(!alts||Object.getOwnPropertyNames(alts).length===0){return this;}else{return Locale.create(alts.locale||this.specifiedLocale,alts.numberingSystem||this.numberingSystem,alts.outputCalendar||this.outputCalendar,alts.defaultToEN||false);}}
redefaultToEN(alts={}){return this.clone({...alts,defaultToEN:true});}
redefaultToSystem(alts={}){return this.clone({...alts,defaultToEN:false});}
months(length,format=false){return listStuff(this,length,months,()=>{const intl=format?{month:length,day:"numeric"}:{month:length},formatStr=format?"format":"standalone";if(!this.monthsCache[formatStr][length]){this.monthsCache[formatStr][length]=mapMonths((dt)=>this.extract(dt,intl,"month"));}
return this.monthsCache[formatStr][length];});}
weekdays(length,format=false){return listStuff(this,length,weekdays,()=>{const intl=format?{weekday:length,year:"numeric",month:"long",day:"numeric"}:{weekday:length},formatStr=format?"format":"standalone";if(!this.weekdaysCache[formatStr][length]){this.weekdaysCache[formatStr][length]=mapWeekdays((dt)=>this.extract(dt,intl,"weekday"));}
return this.weekdaysCache[formatStr][length];});}
meridiems(){return listStuff(this,undefined,()=>meridiems,()=>{if(!this.meridiemCache){const intl={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[DateTime.utc(2016,11,13,9),DateTime.utc(2016,11,13,19)].map((dt)=>this.extract(dt,intl,"dayperiod"));}
return this.meridiemCache;});}
eras(length){return listStuff(this,length,eras,()=>{const intl={era:length};if(!this.eraCache[length]){this.eraCache[length]=[DateTime.utc(-40,1,1),DateTime.utc(2017,1,1)].map((dt)=>this.extract(dt,intl,"era"));}
return this.eraCache[length];});}
extract(dt,intlOpts,field){const df=this.dtFormatter(dt,intlOpts),results=df.formatToParts(),matching=results.find((m)=>m.type.toLowerCase()===field);return matching?matching.value:null;}
numberFormatter(opts={}){return new PolyNumberFormatter(this.intl,opts.forceSimple||this.fastNumbers,opts);}
dtFormatter(dt,intlOpts={}){return new PolyDateFormatter(dt,this.intl,intlOpts);}
relFormatter(opts={}){return new PolyRelFormatter(this.intl,this.isEnglish(),opts);}
listFormatter(opts={}){return getCachedLF(this.intl,opts);}
isEnglish(){return(this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us"));}
equals(other){return(this.locale===other.locale&&this.numberingSystem===other.numberingSystem&&this.outputCalendar===other.outputCalendar);}}
let singleton=null;class FixedOffsetZone extends Zone{static get utcInstance(){if(singleton===null){singleton=new FixedOffsetZone(0);}
return singleton;}
static instance(offset){return offset===0?FixedOffsetZone.utcInstance:new FixedOffsetZone(offset);}
static parseSpecifier(s){if(s){const r=s.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r){return new FixedOffsetZone(signedOffset(r[1],r[2]));}}
return null;}
constructor(offset){super();this.fixed=offset;}
get type(){return"fixed";}
get name(){return this.fixed===0?"UTC":`UTC${formatOffset(this.fixed, "narrow")}`;}
get ianaName(){if(this.fixed===0){return"Etc/UTC";}else{return`Etc/GMT${formatOffset(-this.fixed, "narrow")}`;}}
offsetName(){return this.name;}
formatOffset(ts,format){return formatOffset(this.fixed,format);}
get isUniversal(){return true;}
offset(){return this.fixed;}
equals(otherZone){return otherZone.type==="fixed"&&otherZone.fixed===this.fixed;}
get isValid(){return true;}}
class InvalidZone extends Zone{constructor(zoneName){super();this.zoneName=zoneName;}
get type(){return"invalid";}
get name(){return this.zoneName;}
get isUniversal(){return false;}
offsetName(){return null;}
formatOffset(){return"";}
offset(){return NaN;}
equals(){return false;}
get isValid(){return false;}}
function normalizeZone(input,defaultZone){if(isUndefined(input)||input===null){return defaultZone;}else if(input instanceof Zone){return input;}else if(isString(input)){const lowered=input.toLowerCase();if(lowered==="default")return defaultZone;else if(lowered==="local"||lowered==="system")return SystemZone.instance;else if(lowered==="utc"||lowered==="gmt")return FixedOffsetZone.utcInstance;else return FixedOffsetZone.parseSpecifier(lowered)||IANAZone.create(input);}else if(isNumber(input)){return FixedOffsetZone.instance(input);}else if(typeof input==="object"&&"offset"in input&&typeof input.offset==="function"){return input;}else{return new InvalidZone(input);}}
let now=()=>Date.now(),defaultZone="system",defaultLocale=null,defaultNumberingSystem=null,defaultOutputCalendar=null,twoDigitCutoffYear=60,throwOnInvalid;class Settings{static get now(){return now;}
static set now(n){now=n;}
static set defaultZone(zone){defaultZone=zone;}
static get defaultZone(){return normalizeZone(defaultZone,SystemZone.instance);}
static get defaultLocale(){return defaultLocale;}
static set defaultLocale(locale){defaultLocale=locale;}
static get defaultNumberingSystem(){return defaultNumberingSystem;}
static set defaultNumberingSystem(numberingSystem){defaultNumberingSystem=numberingSystem;}
static get defaultOutputCalendar(){return defaultOutputCalendar;}
static set defaultOutputCalendar(outputCalendar){defaultOutputCalendar=outputCalendar;}
static get twoDigitCutoffYear(){return twoDigitCutoffYear;}
static set twoDigitCutoffYear(cutoffYear){twoDigitCutoffYear=cutoffYear%100;}
static get throwOnInvalid(){return throwOnInvalid;}
static set throwOnInvalid(t){throwOnInvalid=t;}
static resetCaches(){Locale.resetCache();IANAZone.resetCache();}}
function isUndefined(o){return typeof o==="undefined";}
function isNumber(o){return typeof o==="number";}
function isInteger(o){return typeof o==="number"&&o%1===0;}
function isString(o){return typeof o==="string";}
function isDate(o){return Object.prototype.toString.call(o)==="[object Date]";}
function hasRelative(){try{return typeof Intl!=="undefined"&&!!Intl.RelativeTimeFormat;}catch(e){return false;}}
function maybeArray(thing){return Array.isArray(thing)?thing:[thing];}
function bestBy(arr,by,compare){if(arr.length===0){return undefined;}
return arr.reduce((best,next)=>{const pair=[by(next),next];if(!best){return pair;}else if(compare(best[0],pair[0])===best[0]){return best;}else{return pair;}},null)[1];}
function pick(obj,keys){return keys.reduce((a,k)=>{a[k]=obj[k];return a;},{});}
function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);}
function integerBetween(thing,bottom,top){return isInteger(thing)&&thing>=bottom&&thing<=top;}
function floorMod(x,n){return x-n*Math.floor(x/n);}
function padStart(input,n=2){const isNeg=input<0;let padded;if(isNeg){padded="-"+(""+-input).padStart(n,"0");}else{padded=(""+input).padStart(n,"0");}
return padded;}
function parseInteger(string){if(isUndefined(string)||string===null||string===""){return undefined;}else{return parseInt(string,10);}}
function parseFloating(string){if(isUndefined(string)||string===null||string===""){return undefined;}else{return parseFloat(string);}}
function parseMillis(fraction){if(isUndefined(fraction)||fraction===null||fraction===""){return undefined;}else{const f=parseFloat("0."+fraction)*1000;return Math.floor(f);}}
function roundTo(number,digits,towardZero=false){const factor=10**digits,rounder=towardZero?Math.trunc:Math.round;return rounder(number*factor)/factor;}
function isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0);}
function daysInYear(year){return isLeapYear(year)?366:365;}
function daysInMonth(year,month){const modMonth=floorMod(month-1,12)+1,modYear=year+(month-modMonth)/12;if(modMonth===2){return isLeapYear(modYear)?29:28;}else{return[31,null,31,30,31,30,31,31,30,31,30,31][modMonth-1];}}
function objToLocalTS(obj){let d=Date.UTC(obj.year,obj.month-1,obj.day,obj.hour,obj.minute,obj.second,obj.millisecond);if(obj.year<100&&obj.year>=0){d=new Date(d);d.setUTCFullYear(obj.year,obj.month-1,obj.day);}
return+d;}
function weeksInWeekYear(weekYear){const p1=(weekYear+
Math.floor(weekYear/4)-
Math.floor(weekYear/100)+
Math.floor(weekYear/400))%7,last=weekYear-1,p2=(last+Math.floor(last/4)-Math.floor(last/100)+Math.floor(last/400))%7;return p1===4||p2===3?53:52;}
function untruncateYear(year){if(year>99){return year;}else return year>Settings.twoDigitCutoffYear?1900+year:2000+year;}
function parseZoneInfo(ts,offsetFormat,locale,timeZone=null){const date=new Date(ts),intlOpts={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",};if(timeZone){intlOpts.timeZone=timeZone;}
const modified={timeZoneName:offsetFormat,...intlOpts};const parsed=new Intl.DateTimeFormat(locale,modified).formatToParts(date).find((m)=>m.type.toLowerCase()==="timezonename");return parsed?parsed.value:null;}
function signedOffset(offHourStr,offMinuteStr){let offHour=parseInt(offHourStr,10);if(Number.isNaN(offHour)){offHour=0;}
const offMin=parseInt(offMinuteStr,10)||0,offMinSigned=offHour<0||Object.is(offHour,-0)?-offMin:offMin;return offHour*60+offMinSigned;}
function asNumber(value){const numericValue=Number(value);if(typeof value==="boolean"||value===""||Number.isNaN(numericValue))
throw new InvalidArgumentError(`Invalid unit value ${value}`);return numericValue;}
function normalizeObject(obj,normalizer){const normalized={};for(const u in obj){if(hasOwnProperty(obj,u)){const v=obj[u];if(v===undefined||v===null)continue;normalized[normalizer(u)]=asNumber(v);}}
return normalized;}
function formatOffset(offset,format){const hours=Math.trunc(Math.abs(offset/60)),minutes=Math.trunc(Math.abs(offset%60)),sign=offset>=0?"+":"-";switch(format){case"short":return`${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;case"narrow":return`${sign}${hours}${minutes > 0 ? `:${minutes}` : ""}`;case"techie":return`${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;default:throw new RangeError(`Value format ${format} is out of range for property format`);}}
function timeObject(obj){return pick(obj,["hour","minute","second","millisecond"]);}
const monthsLong=["January","February","March","April","May","June","July","August","September","October","November","December",];const monthsShort=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",];const monthsNarrow=["J","F","M","A","M","J","J","A","S","O","N","D"];function months(length){switch(length){case"narrow":return[...monthsNarrow];case"short":return[...monthsShort];case"long":return[...monthsLong];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null;}}
const weekdaysLong=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday",];const weekdaysShort=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];const weekdaysNarrow=["M","T","W","T","F","S","S"];function weekdays(length){switch(length){case"narrow":return[...weekdaysNarrow];case"short":return[...weekdaysShort];case"long":return[...weekdaysLong];case"numeric":return["1","2","3","4","5","6","7"];default:return null;}}
const meridiems=["AM","PM"];const erasLong=["Before Christ","Anno Domini"];const erasShort=["BC","AD"];const erasNarrow=["B","A"];function eras(length){switch(length){case"narrow":return[...erasNarrow];case"short":return[...erasShort];case"long":return[...erasLong];default:return null;}}
function meridiemForDateTime(dt){return meridiems[dt.hour<12?0:1];}
function weekdayForDateTime(dt,length){return weekdays(length)[dt.weekday-1];}
function monthForDateTime(dt,length){return months(length)[dt.month-1];}
function eraForDateTime(dt,length){return eras(length)[dt.year<0?0:1];}
function formatRelativeTime(unit,count,numeric="always",narrow=false){const units={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."],};const lastable=["hours","minutes","seconds"].indexOf(unit)===-1;if(numeric==="auto"&&lastable){const isDay=unit==="days";switch(count){case 1:return isDay?"tomorrow":`next ${units[unit][0]}`;case-1:return isDay?"yesterday":`last ${units[unit][0]}`;case 0:return isDay?"today":`this ${units[unit][0]}`;}}
const isInPast=Object.is(count,-0)||count<0,fmtValue=Math.abs(count),singular=fmtValue===1,lilUnits=units[unit],fmtUnit=narrow?singular?lilUnits[1]:lilUnits[2]||lilUnits[1]:singular?units[unit][0]:unit;return isInPast?`${fmtValue} ${fmtUnit} ago`:`in ${fmtValue} ${fmtUnit}`;}
function stringifyTokens(splits,tokenToString){let s="";for(const token of splits){if(token.literal){s+=token.val;}else{s+=tokenToString(token.val);}}
return s;}
const macroTokenToFormatOpts={D:DATE_SHORT,DD:DATE_MED,DDD:DATE_FULL,DDDD:DATE_HUGE,t:TIME_SIMPLE,tt:TIME_WITH_SECONDS,ttt:TIME_WITH_SHORT_OFFSET,tttt:TIME_WITH_LONG_OFFSET,T:TIME_24_SIMPLE,TT:TIME_24_WITH_SECONDS,TTT:TIME_24_WITH_SHORT_OFFSET,TTTT:TIME_24_WITH_LONG_OFFSET,f:DATETIME_SHORT,ff:DATETIME_MED,fff:DATETIME_FULL,ffff:DATETIME_HUGE,F:DATETIME_SHORT_WITH_SECONDS,FF:DATETIME_MED_WITH_SECONDS,FFF:DATETIME_FULL_WITH_SECONDS,FFFF:DATETIME_HUGE_WITH_SECONDS,};class Formatter{static create(locale,opts={}){return new Formatter(locale,opts);}
static parseFormat(fmt){let current=null,currentFull="",bracketed=false;const splits=[];for(let i=0;i<fmt.length;i++){const c=fmt.charAt(i);if(c==="'"){if(currentFull.length>0){splits.push({literal:bracketed||/^\s+$/.test(currentFull),val:currentFull});}
current=null;currentFull="";bracketed=!bracketed;}else if(bracketed){currentFull+=c;}else if(c===current){currentFull+=c;}else{if(currentFull.length>0){splits.push({literal:/^\s+$/.test(currentFull),val:currentFull});}
currentFull=c;current=c;}}
if(currentFull.length>0){splits.push({literal:bracketed||/^\s+$/.test(currentFull),val:currentFull});}
return splits;}
static macroTokenToFormatOpts(token){return macroTokenToFormatOpts[token];}
constructor(locale,formatOpts){this.opts=formatOpts;this.loc=locale;this.systemLoc=null;}
formatWithSystemDefault(dt,opts){if(this.systemLoc===null){this.systemLoc=this.loc.redefaultToSystem();}
const df=this.systemLoc.dtFormatter(dt,{...this.opts,...opts});return df.format();}
dtFormatter(dt,opts={}){return this.loc.dtFormatter(dt,{...this.opts,...opts});}
formatDateTime(dt,opts){return this.dtFormatter(dt,opts).format();}
formatDateTimeParts(dt,opts){return this.dtFormatter(dt,opts).formatToParts();}
formatInterval(interval,opts){const df=this.dtFormatter(interval.start,opts);return df.dtf.formatRange(interval.start.toJSDate(),interval.end.toJSDate());}
resolvedOptions(dt,opts){return this.dtFormatter(dt,opts).resolvedOptions();}
num(n,p=0){if(this.opts.forceSimple){return padStart(n,p);}
const opts={...this.opts};if(p>0){opts.padTo=p;}
return this.loc.numberFormatter(opts).format(n);}
formatDateTimeFromString(dt,fmt){const knownEnglish=this.loc.listingMode()==="en",useDateTimeFormatter=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",string=(opts,extract)=>this.loc.extract(dt,opts,extract),formatOffset=(opts)=>{if(dt.isOffsetFixed&&dt.offset===0&&opts.allowZ){return"Z";}
return dt.isValid?dt.zone.formatOffset(dt.ts,opts.format):"";},meridiem=()=>knownEnglish?meridiemForDateTime(dt):string({hour:"numeric",hourCycle:"h12"},"dayperiod"),month=(length,standalone)=>knownEnglish?monthForDateTime(dt,length):string(standalone?{month:length}:{month:length,day:"numeric"},"month"),weekday=(length,standalone)=>knownEnglish?weekdayForDateTime(dt,length):string(standalone?{weekday:length}:{weekday:length,month:"long",day:"numeric"},"weekday"),maybeMacro=(token)=>{const formatOpts=Formatter.macroTokenToFormatOpts(token);if(formatOpts){return this.formatWithSystemDefault(dt,formatOpts);}else{return token;}},era=(length)=>knownEnglish?eraForDateTime(dt,length):string({era:length},"era"),tokenToString=(token)=>{switch(token){case"S":return this.num(dt.millisecond);case"u":case"SSS":return this.num(dt.millisecond,3);case"s":return this.num(dt.second);case"ss":return this.num(dt.second,2);case"uu":return this.num(Math.floor(dt.millisecond/10),2);case"uuu":return this.num(Math.floor(dt.millisecond/100));case"m":return this.num(dt.minute);case"mm":return this.num(dt.minute,2);case"h":return this.num(dt.hour%12===0?12:dt.hour%12);case"hh":return this.num(dt.hour%12===0?12:dt.hour%12,2);case"H":return this.num(dt.hour);case"HH":return this.num(dt.hour,2);case"Z":return formatOffset({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return formatOffset({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return formatOffset({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return dt.zone.offsetName(dt.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return dt.zone.offsetName(dt.ts,{format:"long",locale:this.loc.locale});case"z":return dt.zoneName;case"a":return meridiem();case"d":return useDateTimeFormatter?string({day:"numeric"},"day"):this.num(dt.day);case"dd":return useDateTimeFormatter?string({day:"2-digit"},"day"):this.num(dt.day,2);case"c":return this.num(dt.weekday);case"ccc":return weekday("short",true);case"cccc":return weekday("long",true);case"ccccc":return weekday("narrow",true);case"E":return this.num(dt.weekday);case"EEE":return weekday("short",false);case"EEEE":return weekday("long",false);case"EEEEE":return weekday("narrow",false);case"L":return useDateTimeFormatter?string({month:"numeric",day:"numeric"},"month"):this.num(dt.month);case"LL":return useDateTimeFormatter?string({month:"2-digit",day:"numeric"},"month"):this.num(dt.month,2);case"LLL":return month("short",true);case"LLLL":return month("long",true);case"LLLLL":return month("narrow",true);case"M":return useDateTimeFormatter?string({month:"numeric"},"month"):this.num(dt.month);case"MM":return useDateTimeFormatter?string({month:"2-digit"},"month"):this.num(dt.month,2);case"MMM":return month("short",false);case"MMMM":return month("long",false);case"MMMMM":return month("narrow",false);case"y":return useDateTimeFormatter?string({year:"numeric"},"year"):this.num(dt.year);case"yy":return useDateTimeFormatter?string({year:"2-digit"},"year"):this.num(dt.year.toString().slice(-2),2);case"yyyy":return useDateTimeFormatter?string({year:"numeric"},"year"):this.num(dt.year,4);case"yyyyyy":return useDateTimeFormatter?string({year:"numeric"},"year"):this.num(dt.year,6);case"G":return era("short");case"GG":return era("long");case"GGGGG":return era("narrow");case"kk":return this.num(dt.weekYear.toString().slice(-2),2);case"kkkk":return this.num(dt.weekYear,4);case"W":return this.num(dt.weekNumber);case"WW":return this.num(dt.weekNumber,2);case"o":return this.num(dt.ordinal);case"ooo":return this.num(dt.ordinal,3);case"q":return this.num(dt.quarter);case"qq":return this.num(dt.quarter,2);case"X":return this.num(Math.floor(dt.ts/1000));case"x":return this.num(dt.ts);default:return maybeMacro(token);}};return stringifyTokens(Formatter.parseFormat(fmt),tokenToString);}
formatDurationFromString(dur,fmt){const tokenToField=(token)=>{switch(token[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null;}},tokenToString=(lildur)=>(token)=>{const mapped=tokenToField(token);if(mapped){return this.num(lildur.get(mapped),token.length);}else{return token;}},tokens=Formatter.parseFormat(fmt),realTokens=tokens.reduce((found,{literal,val})=>(literal?found:found.concat(val)),[]),collapsed=dur.shiftTo(...realTokens.map(tokenToField).filter((t)=>t));return stringifyTokens(tokens,tokenToString(collapsed));}}
class Invalid{constructor(reason,explanation){this.reason=reason;this.explanation=explanation;}
toMessage(){if(this.explanation){return`${this.reason}: ${this.explanation}`;}else{return this.reason;}}}
const ianaRegex=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function combineRegexes(...regexes){const full=regexes.reduce((f,r)=>f+r.source,"");return RegExp(`^${full}$`);}
function combineExtractors(...extractors){return(m)=>extractors.reduce(([mergedVals,mergedZone,cursor],ex)=>{const[val,zone,next]=ex(m,cursor);return[{...mergedVals,...val},zone||mergedZone,next];},[{},null,1]).slice(0,2);}
function parse(s,...patterns){if(s==null){return[null,null];}
for(const[regex,extractor]of patterns){const m=regex.exec(s);if(m){return extractor(m);}}
return[null,null];}
function simpleParse(...keys){return(match,cursor)=>{const ret={};let i;for(i=0;i<keys.length;i++){ret[keys[i]]=parseInteger(match[cursor+i]);}
return[ret,null,cursor+i];};}
const offsetRegex=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/;const isoExtendedZone=`(?:${offsetRegex.source}?(?:\\[(${ianaRegex.source})\\])?)?`;const isoTimeBaseRegex=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/;const isoTimeRegex=RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`);const isoTimeExtensionRegex=RegExp(`(?:T${isoTimeRegex.source})?`);const isoYmdRegex=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/;const isoWeekRegex=/(\d{4})-?W(\d\d)(?:-?(\d))?/;const isoOrdinalRegex=/(\d{4})-?(\d{3})/;const extractISOWeekData=simpleParse("weekYear","weekNumber","weekDay");const extractISOOrdinalData=simpleParse("year","ordinal");const sqlYmdRegex=/(\d{4})-(\d\d)-(\d\d)/;const sqlTimeRegex=RegExp(`${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`);const sqlTimeExtensionRegex=RegExp(`(?: ${sqlTimeRegex.source})?`);function int(match,pos,fallback){const m=match[pos];return isUndefined(m)?fallback:parseInteger(m);}
function extractISOYmd(match,cursor){const item={year:int(match,cursor),month:int(match,cursor+1,1),day:int(match,cursor+2,1),};return[item,null,cursor+3];}
function extractISOTime(match,cursor){const item={hours:int(match,cursor,0),minutes:int(match,cursor+1,0),seconds:int(match,cursor+2,0),milliseconds:parseMillis(match[cursor+3]),};return[item,null,cursor+4];}
function extractISOOffset(match,cursor){const local=!match[cursor]&&!match[cursor+1],fullOffset=signedOffset(match[cursor+1],match[cursor+2]),zone=local?null:FixedOffsetZone.instance(fullOffset);return[{},zone,cursor+3];}
function extractIANAZone(match,cursor){const zone=match[cursor]?IANAZone.create(match[cursor]):null;return[{},zone,cursor+1];}
const isoTimeOnly=RegExp(`^T?${isoTimeBaseRegex.source}$`);const isoDuration=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function extractISODuration(match){const[s,yearStr,monthStr,weekStr,dayStr,hourStr,minuteStr,secondStr,millisecondsStr]=match;const hasNegativePrefix=s[0]==="-";const negativeSeconds=secondStr&&secondStr[0]==="-";const maybeNegate=(num,force=false)=>num!==undefined&&(force||(num&&hasNegativePrefix))?-num:num;return[{years:maybeNegate(parseFloating(yearStr)),months:maybeNegate(parseFloating(monthStr)),weeks:maybeNegate(parseFloating(weekStr)),days:maybeNegate(parseFloating(dayStr)),hours:maybeNegate(parseFloating(hourStr)),minutes:maybeNegate(parseFloating(minuteStr)),seconds:maybeNegate(parseFloating(secondStr),secondStr==="-0"),milliseconds:maybeNegate(parseMillis(millisecondsStr),negativeSeconds),},];}
const obsOffsets={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60,};function fromStrings(weekdayStr,yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr){const result={year:yearStr.length===2?untruncateYear(parseInteger(yearStr)):parseInteger(yearStr),month:monthsShort.indexOf(monthStr)+1,day:parseInteger(dayStr),hour:parseInteger(hourStr),minute:parseInteger(minuteStr),};if(secondStr)result.second=parseInteger(secondStr);if(weekdayStr){result.weekday=weekdayStr.length>3?weekdaysLong.indexOf(weekdayStr)+1:weekdaysShort.indexOf(weekdayStr)+1;}
return result;}
const rfc2822=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function extractRFC2822(match){const[,weekdayStr,dayStr,monthStr,yearStr,hourStr,minuteStr,secondStr,obsOffset,milOffset,offHourStr,offMinuteStr,]=match,result=fromStrings(weekdayStr,yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr);let offset;if(obsOffset){offset=obsOffsets[obsOffset];}else if(milOffset){offset=0;}else{offset=signedOffset(offHourStr,offMinuteStr);}
return[result,new FixedOffsetZone(offset)];}
function preprocessRFC2822(s){return s.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim();}
const rfc1123=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,rfc850=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,ascii=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function extractRFC1123Or850(match){const[,weekdayStr,dayStr,monthStr,yearStr,hourStr,minuteStr,secondStr]=match,result=fromStrings(weekdayStr,yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr);return[result,FixedOffsetZone.utcInstance];}
function extractASCII(match){const[,weekdayStr,monthStr,dayStr,hourStr,minuteStr,secondStr,yearStr]=match,result=fromStrings(weekdayStr,yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr);return[result,FixedOffsetZone.utcInstance];}
const isoYmdWithTimeExtensionRegex=combineRegexes(isoYmdRegex,isoTimeExtensionRegex);const isoWeekWithTimeExtensionRegex=combineRegexes(isoWeekRegex,isoTimeExtensionRegex);const isoOrdinalWithTimeExtensionRegex=combineRegexes(isoOrdinalRegex,isoTimeExtensionRegex);const isoTimeCombinedRegex=combineRegexes(isoTimeRegex);const extractISOYmdTimeAndOffset=combineExtractors(extractISOYmd,extractISOTime,extractISOOffset,extractIANAZone);const extractISOWeekTimeAndOffset=combineExtractors(extractISOWeekData,extractISOTime,extractISOOffset,extractIANAZone);const extractISOOrdinalDateAndTime=combineExtractors(extractISOOrdinalData,extractISOTime,extractISOOffset,extractIANAZone);const extractISOTimeAndOffset=combineExtractors(extractISOTime,extractISOOffset,extractIANAZone);function parseISODate(s){return parse(s,[isoYmdWithTimeExtensionRegex,extractISOYmdTimeAndOffset],[isoWeekWithTimeExtensionRegex,extractISOWeekTimeAndOffset],[isoOrdinalWithTimeExtensionRegex,extractISOOrdinalDateAndTime],[isoTimeCombinedRegex,extractISOTimeAndOffset]);}
function parseRFC2822Date(s){return parse(preprocessRFC2822(s),[rfc2822,extractRFC2822]);}
function parseHTTPDate(s){return parse(s,[rfc1123,extractRFC1123Or850],[rfc850,extractRFC1123Or850],[ascii,extractASCII]);}
function parseISODuration(s){return parse(s,[isoDuration,extractISODuration]);}
const extractISOTimeOnly=combineExtractors(extractISOTime);function parseISOTimeOnly(s){return parse(s,[isoTimeOnly,extractISOTimeOnly]);}
const sqlYmdWithTimeExtensionRegex=combineRegexes(sqlYmdRegex,sqlTimeExtensionRegex);const sqlTimeCombinedRegex=combineRegexes(sqlTimeRegex);const extractISOTimeOffsetAndIANAZone=combineExtractors(extractISOTime,extractISOOffset,extractIANAZone);function parseSQL(s){return parse(s,[sqlYmdWithTimeExtensionRegex,extractISOYmdTimeAndOffset],[sqlTimeCombinedRegex,extractISOTimeOffsetAndIANAZone]);}
const INVALID$2="Invalid Duration";const lowOrderMatrix={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1000,},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1000,},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1000},minutes:{seconds:60,milliseconds:60*1000},seconds:{milliseconds:1000},},casualMatrix={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1000,},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1000,},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1000,},...lowOrderMatrix,},daysInYearAccurate=146097.0/400,daysInMonthAccurate=146097.0/4800,accurateMatrix={years:{quarters:4,months:12,weeks:daysInYearAccurate/7,days:daysInYearAccurate,hours:daysInYearAccurate*24,minutes:daysInYearAccurate*24*60,seconds:daysInYearAccurate*24*60*60,milliseconds:daysInYearAccurate*24*60*60*1000,},quarters:{months:3,weeks:daysInYearAccurate/28,days:daysInYearAccurate/4,hours:(daysInYearAccurate*24)/4,minutes:(daysInYearAccurate*24*60)/4,seconds:(daysInYearAccurate*24*60*60)/4,milliseconds:(daysInYearAccurate*24*60*60*1000)/4,},months:{weeks:daysInMonthAccurate/7,days:daysInMonthAccurate,hours:daysInMonthAccurate*24,minutes:daysInMonthAccurate*24*60,seconds:daysInMonthAccurate*24*60*60,milliseconds:daysInMonthAccurate*24*60*60*1000,},...lowOrderMatrix,};const orderedUnits$1=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds",];const reverseUnits=orderedUnits$1.slice(0).reverse();function clone$1(dur,alts,clear=false){const conf={values:clear?alts.values:{...dur.values,...(alts.values||{})},loc:dur.loc.clone(alts.loc),conversionAccuracy:alts.conversionAccuracy||dur.conversionAccuracy,matrix:alts.matrix||dur.matrix,};return new Duration(conf);}
function durationToMillis(matrix,vals){let sum=vals.milliseconds??0;for(const unit of reverseUnits.slice(1)){if(vals[unit]){sum+=vals[unit]*matrix[unit]["milliseconds"];}}
return sum;}
function normalizeValues(matrix,vals){const factor=durationToMillis(matrix,vals)<0?-1:1;reverseUnits.reduce((previous,current)=>{if(!isUndefined(vals[current])){if(previous){const previousVal=vals[previous]*factor;const conv=matrix[current][previous];const rollUp=Math.floor(previousVal/conv);vals[current]+=rollUp*factor;vals[previous]-=rollUp*conv*factor;}
return current;}else{return previous;}},null);}
function removeZeroes(vals){const newVals={};for(const[key,value]of Object.entries(vals)){if(value!==0){newVals[key]=value;}}
return newVals;}
class Duration{constructor(config){const accurate=config.conversionAccuracy==="longterm"||false;let matrix=accurate?accurateMatrix:casualMatrix;if(config.matrix){matrix=config.matrix;}
this.values=config.values;this.loc=config.loc||Locale.create();this.conversionAccuracy=accurate?"longterm":"casual";this.invalid=config.invalid||null;this.matrix=matrix;this.isLuxonDuration=true;}
static fromMillis(count,opts){return Duration.fromObject({milliseconds:count},opts);}
static fromObject(obj,opts={}){if(obj==null||typeof obj!=="object"){throw new InvalidArgumentError(`Duration.fromObject: argument expected to be an object, got ${obj === null ? "null" : typeof obj
          }`);}
return new Duration({values:normalizeObject(obj,Duration.normalizeUnit),loc:Locale.fromObject(opts),conversionAccuracy:opts.conversionAccuracy,matrix:opts.matrix,});}
static fromDurationLike(durationLike){if(isNumber(durationLike)){return Duration.fromMillis(durationLike);}else if(Duration.isDuration(durationLike)){return durationLike;}else if(typeof durationLike==="object"){return Duration.fromObject(durationLike);}else{throw new InvalidArgumentError(`Unknown duration argument ${durationLike} of type ${typeof durationLike}`);}}
static fromISO(text,opts){const[parsed]=parseISODuration(text);if(parsed){return Duration.fromObject(parsed,opts);}else{return Duration.invalid("unparsable",`the input "${text}" can't be parsed as ISO 8601`);}}
static fromISOTime(text,opts){const[parsed]=parseISOTimeOnly(text);if(parsed){return Duration.fromObject(parsed,opts);}else{return Duration.invalid("unparsable",`the input "${text}" can't be parsed as ISO 8601`);}}
static invalid(reason,explanation=null){if(!reason){throw new InvalidArgumentError("need to specify a reason the Duration is invalid");}
const invalid=reason instanceof Invalid?reason:new Invalid(reason,explanation);if(Settings.throwOnInvalid){throw new InvalidDurationError(invalid);}else{return new Duration({invalid});}}
static normalizeUnit(unit){const normalized={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds",}[unit?unit.toLowerCase():unit];if(!normalized)throw new InvalidUnitError(unit);return normalized;}
static isDuration(o){return(o&&o.isLuxonDuration)||false;}
get locale(){return this.isValid?this.loc.locale:null;}
get numberingSystem(){return this.isValid?this.loc.numberingSystem:null;}
toFormat(fmt,opts={}){const fmtOpts={...opts,floor:opts.round!==false&&opts.floor!==false,};return this.isValid?Formatter.create(this.loc,fmtOpts).formatDurationFromString(this,fmt):INVALID$2;}
toHuman(opts={}){if(!this.isValid)return INVALID$2;const l=orderedUnits$1.map((unit)=>{const val=this.values[unit];if(isUndefined(val)){return null;}
return this.loc.numberFormatter({style:"unit",unitDisplay:"long",...opts,unit:unit.slice(0,-1)}).format(val);}).filter((n)=>n);return this.loc.listFormatter({type:"conjunction",style:opts.listStyle||"narrow",...opts}).format(l);}
toObject(){if(!this.isValid)return{};return{...this.values};}
toISO(){if(!this.isValid)return null;let s="P";if(this.years!==0)s+=this.years+"Y";if(this.months!==0||this.quarters!==0)s+=this.months+this.quarters*3+"M";if(this.weeks!==0)s+=this.weeks+"W";if(this.days!==0)s+=this.days+"D";if(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)
s+="T";if(this.hours!==0)s+=this.hours+"H";if(this.minutes!==0)s+=this.minutes+"M";if(this.seconds!==0||this.milliseconds!==0)
s+=roundTo(this.seconds+this.milliseconds/1000,3)+"S";if(s==="P")s+="T0S";return s;}
toISOTime(opts={}){if(!this.isValid)return null;const millis=this.toMillis();if(millis<0||millis>=86400000)return null;opts={suppressMilliseconds:false,suppressSeconds:false,includePrefix:false,format:"extended",...opts,includeOffset:false,};const dateTime=DateTime.fromMillis(millis,{zone:"UTC"});return dateTime.toISOTime(opts);}
toJSON(){return this.toISO();}
toString(){return this.toISO();}
toMillis(){if(!this.isValid)return NaN;return durationToMillis(this.matrix,this.values);}
valueOf(){return this.toMillis();}
plus(duration){if(!this.isValid)return this;const dur=Duration.fromDurationLike(duration),result={};for(const k of orderedUnits$1){if(hasOwnProperty(dur.values,k)||hasOwnProperty(this.values,k)){result[k]=dur.get(k)+this.get(k);}}
return clone$1(this,{values:result},true);}
minus(duration){if(!this.isValid)return this;const dur=Duration.fromDurationLike(duration);return this.plus(dur.negate());}
mapUnits(fn){if(!this.isValid)return this;const result={};for(const k of Object.keys(this.values)){result[k]=asNumber(fn(this.values[k],k));}
return clone$1(this,{values:result},true);}
get(unit){return this[Duration.normalizeUnit(unit)];}
set(values){if(!this.isValid)return this;const mixed={...this.values,...normalizeObject(values,Duration.normalizeUnit)};return clone$1(this,{values:mixed});}
reconfigure({locale,numberingSystem,conversionAccuracy,matrix}={}){const loc=this.loc.clone({locale,numberingSystem});const opts={loc,matrix,conversionAccuracy};return clone$1(this,opts);}
as(unit){return this.isValid?this.shiftTo(unit).get(unit):NaN;}
normalize(){if(!this.isValid)return this;const vals=this.toObject();normalizeValues(this.matrix,vals);return clone$1(this,{values:vals},true);}
rescale(){if(!this.isValid)return this;const vals=removeZeroes(this.normalize().shiftToAll().toObject());return clone$1(this,{values:vals},true);}
shiftTo(...units){if(!this.isValid)return this;if(units.length===0){return this;}
units=units.map((u)=>Duration.normalizeUnit(u));const built={},accumulated={},vals=this.toObject();let lastUnit;for(const k of orderedUnits$1){if(units.indexOf(k)>=0){lastUnit=k;let own=0;for(const ak in accumulated){own+=this.matrix[ak][k]*accumulated[ak];accumulated[ak]=0;}
if(isNumber(vals[k])){own+=vals[k];}
const i=Math.trunc(own);built[k]=i;accumulated[k]=(own*1000-i*1000)/1000;}else if(isNumber(vals[k])){accumulated[k]=vals[k];}}
for(const key in accumulated){if(accumulated[key]!==0){built[lastUnit]+=key===lastUnit?accumulated[key]:accumulated[key]/this.matrix[lastUnit][key];}}
normalizeValues(this.matrix,built);return clone$1(this,{values:built},true);}
shiftToAll(){if(!this.isValid)return this;return this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds");}
negate(){if(!this.isValid)return this;const negated={};for(const k of Object.keys(this.values)){negated[k]=this.values[k]===0?0:-this.values[k];}
return clone$1(this,{values:negated},true);}
get years(){return this.isValid?this.values.years||0:NaN;}
get quarters(){return this.isValid?this.values.quarters||0:NaN;}
get months(){return this.isValid?this.values.months||0:NaN;}
get weeks(){return this.isValid?this.values.weeks||0:NaN;}
get days(){return this.isValid?this.values.days||0:NaN;}
get hours(){return this.isValid?this.values.hours||0:NaN;}
get minutes(){return this.isValid?this.values.minutes||0:NaN;}
get seconds(){return this.isValid?this.values.seconds||0:NaN;}
get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN;}
get isValid(){return this.invalid===null;}
get invalidReason(){return this.invalid?this.invalid.reason:null;}
get invalidExplanation(){return this.invalid?this.invalid.explanation:null;}
equals(other){if(!this.isValid||!other.isValid){return false;}
if(!this.loc.equals(other.loc)){return false;}
function eq(v1,v2){if(v1===undefined||v1===0)return v2===undefined||v2===0;return v1===v2;}
for(const u of orderedUnits$1){if(!eq(this.values[u],other.values[u])){return false;}}
return true;}}
const INVALID$1="Invalid Interval";function validateStartEnd(start,end){if(!start||!start.isValid){return Interval.invalid("missing or invalid start");}else if(!end||!end.isValid){return Interval.invalid("missing or invalid end");}else if(end<start){return Interval.invalid("end before start",`The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`);}else{return null;}}
class Interval{constructor(config){this.s=config.start;this.e=config.end;this.invalid=config.invalid||null;this.isLuxonInterval=true;}
static invalid(reason,explanation=null){if(!reason){throw new InvalidArgumentError("need to specify a reason the Interval is invalid");}
const invalid=reason instanceof Invalid?reason:new Invalid(reason,explanation);if(Settings.throwOnInvalid){throw new InvalidIntervalError(invalid);}else{return new Interval({invalid});}}
static fromDateTimes(start,end){const builtStart=friendlyDateTime(start),builtEnd=friendlyDateTime(end);const validateError=validateStartEnd(builtStart,builtEnd);if(validateError==null){return new Interval({start:builtStart,end:builtEnd,});}else{return validateError;}}
static after(start,duration){const dur=Duration.fromDurationLike(duration),dt=friendlyDateTime(start);return Interval.fromDateTimes(dt,dt.plus(dur));}
static before(end,duration){const dur=Duration.fromDurationLike(duration),dt=friendlyDateTime(end);return Interval.fromDateTimes(dt.minus(dur),dt);}
static fromISO(text,opts){const[s,e]=(text||"").split("/",2);if(s&&e){let start,startIsValid;try{start=DateTime.fromISO(s,opts);startIsValid=start.isValid;}catch(e){startIsValid=false;}
let end,endIsValid;try{end=DateTime.fromISO(e,opts);endIsValid=end.isValid;}catch(e){endIsValid=false;}
if(startIsValid&&endIsValid){return Interval.fromDateTimes(start,end);}
if(startIsValid){const dur=Duration.fromISO(e,opts);if(dur.isValid){return Interval.after(start,dur);}}else if(endIsValid){const dur=Duration.fromISO(s,opts);if(dur.isValid){return Interval.before(end,dur);}}}
return Interval.invalid("unparsable",`the input "${text}" can't be parsed as ISO 8601`);}
static isInterval(o){return(o&&o.isLuxonInterval)||false;}
get start(){return this.isValid?this.s:null;}
get end(){return this.isValid?this.e:null;}
get isValid(){return this.invalidReason===null;}
get invalidReason(){return this.invalid?this.invalid.reason:null;}
get invalidExplanation(){return this.invalid?this.invalid.explanation:null;}
length(unit="milliseconds"){return this.isValid?this.toDuration(...[unit]).get(unit):NaN;}
count(unit="milliseconds"){if(!this.isValid)return NaN;const start=this.start.startOf(unit),end=this.end.startOf(unit);return Math.floor(end.diff(start,unit).get(unit))+(end.valueOf()!==this.end.valueOf());}
hasSame(unit){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,unit):false;}
isEmpty(){return this.s.valueOf()===this.e.valueOf();}
isAfter(dateTime){if(!this.isValid)return false;return this.s>dateTime;}
isBefore(dateTime){if(!this.isValid)return false;return this.e<=dateTime;}
contains(dateTime){if(!this.isValid)return false;return this.s<=dateTime&&this.e>dateTime;}
set({start,end}={}){if(!this.isValid)return this;return Interval.fromDateTimes(start||this.s,end||this.e);}
splitAt(...dateTimes){if(!this.isValid)return[];const sorted=dateTimes.map(friendlyDateTime).filter((d)=>this.contains(d)).sort(),results=[];let{s}=this,i=0;while(s<this.e){const added=sorted[i]||this.e,next=+added>+this.e?this.e:added;results.push(Interval.fromDateTimes(s,next));s=next;i+=1;}
return results;}
splitBy(duration){const dur=Duration.fromDurationLike(duration);if(!this.isValid||!dur.isValid||dur.as("milliseconds")===0){return[];}
let{s}=this,idx=1,next;const results=[];while(s<this.e){const added=this.start.plus(dur.mapUnits((x)=>x*idx));next=+added>+this.e?this.e:added;results.push(Interval.fromDateTimes(s,next));s=next;idx+=1;}
return results;}
divideEqually(numberOfParts){if(!this.isValid)return[];return this.splitBy(this.length()/numberOfParts).slice(0,numberOfParts);}
overlaps(other){return this.e>other.s&&this.s<other.e;}
abutsStart(other){if(!this.isValid)return false;return+this.e===+other.s;}
abutsEnd(other){if(!this.isValid)return false;return+other.e===+this.s;}
engulfs(other){if(!this.isValid)return false;return this.s<=other.s&&this.e>=other.e;}
equals(other){if(!this.isValid||!other.isValid){return false;}
return this.s.equals(other.s)&&this.e.equals(other.e);}
intersection(other){if(!this.isValid)return this;const s=this.s>other.s?this.s:other.s,e=this.e<other.e?this.e:other.e;if(s>=e){return null;}else{return Interval.fromDateTimes(s,e);}}
union(other){if(!this.isValid)return this;const s=this.s<other.s?this.s:other.s,e=this.e>other.e?this.e:other.e;return Interval.fromDateTimes(s,e);}
static merge(intervals){const[found,final]=intervals.sort((a,b)=>a.s-b.s).reduce(([sofar,current],item)=>{if(!current){return[sofar,item];}else if(current.overlaps(item)||current.abutsStart(item)){return[sofar,current.union(item)];}else{return[sofar.concat([current]),item];}},[[],null]);if(final){found.push(final);}
return found;}
static xor(intervals){let start=null,currentCount=0;const results=[],ends=intervals.map((i)=>[{time:i.s,type:"s"},{time:i.e,type:"e"},]),flattened=Array.prototype.concat(...ends),arr=flattened.sort((a,b)=>a.time-b.time);for(const i of arr){currentCount+=i.type==="s"?1:-1;if(currentCount===1){start=i.time;}else{if(start&&+start!==+i.time){results.push(Interval.fromDateTimes(start,i.time));}
start=null;}}
return Interval.merge(results);}
difference(...intervals){return Interval.xor([this].concat(intervals)).map((i)=>this.intersection(i)).filter((i)=>i&&!i.isEmpty());}
toString(){if(!this.isValid)return INVALID$1;return`[${this.s.toISO()} – ${this.e.toISO()})`;}
toLocaleString(formatOpts=DATE_SHORT,opts={}){return this.isValid?Formatter.create(this.s.loc.clone(opts),formatOpts).formatInterval(this):INVALID$1;}
toISO(opts){if(!this.isValid)return INVALID$1;return`${this.s.toISO(opts)}/${this.e.toISO(opts)}`;}
toISODate(){if(!this.isValid)return INVALID$1;return`${this.s.toISODate()}/${this.e.toISODate()}`;}
toISOTime(opts){if(!this.isValid)return INVALID$1;return`${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;}
toFormat(dateFormat,{separator=" – "}={}){if(!this.isValid)return INVALID$1;return`${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;}
toDuration(unit,opts){if(!this.isValid){return Duration.invalid(this.invalidReason);}
return this.e.diff(this.s,unit,opts);}
mapEndpoints(mapFn){return Interval.fromDateTimes(mapFn(this.s),mapFn(this.e));}}
class Info{static hasDST(zone=Settings.defaultZone){const proto=DateTime.now().setZone(zone).set({month:12});return!zone.isUniversal&&proto.offset!==proto.set({month:6}).offset;}
static isValidIANAZone(zone){return IANAZone.isValidZone(zone);}
static normalizeZone(input){return normalizeZone(input,Settings.defaultZone);}
static months(length="long",{locale=null,numberingSystem=null,locObj=null,outputCalendar="gregory"}={}){return(locObj||Locale.create(locale,numberingSystem,outputCalendar)).months(length);}
static monthsFormat(length="long",{locale=null,numberingSystem=null,locObj=null,outputCalendar="gregory"}={}){return(locObj||Locale.create(locale,numberingSystem,outputCalendar)).months(length,true);}
static weekdays(length="long",{locale=null,numberingSystem=null,locObj=null}={}){return(locObj||Locale.create(locale,numberingSystem,null)).weekdays(length);}
static weekdaysFormat(length="long",{locale=null,numberingSystem=null,locObj=null}={}){return(locObj||Locale.create(locale,numberingSystem,null)).weekdays(length,true);}
static meridiems({locale=null}={}){return Locale.create(locale).meridiems();}
static eras(length="short",{locale=null}={}){return Locale.create(locale,null,"gregory").eras(length);}
static features(){return{relative:hasRelative()};}}
function dayDiff(earlier,later){const utcDayStart=(dt)=>dt.toUTC(0,{keepLocalTime:true}).startOf("day").valueOf(),ms=utcDayStart(later)-utcDayStart(earlier);return Math.floor(Duration.fromMillis(ms).as("days"));}
function highOrderDiffs(cursor,later,units){const differs=[["years",(a,b)=>b.year-a.year],["quarters",(a,b)=>b.quarter-a.quarter+(b.year-a.year)*4],["months",(a,b)=>b.month-a.month+(b.year-a.year)*12],["weeks",(a,b)=>{const days=dayDiff(a,b);return(days-(days%7))/7;},],["days",dayDiff],];const results={};const earlier=cursor;let lowestOrder,highWater;for(const[unit,differ]of differs){if(units.indexOf(unit)>=0){lowestOrder=unit;results[unit]=differ(cursor,later);highWater=earlier.plus(results);if(highWater>later){results[unit]--;cursor=earlier.plus(results);if(cursor>later){highWater=cursor;results[unit]--;cursor=earlier.plus(results);}}else{cursor=highWater;}}}
return[cursor,results,highWater,lowestOrder];}
function diff(earlier,later,units,opts){let[cursor,results,highWater,lowestOrder]=highOrderDiffs(earlier,later,units);const remainingMillis=later-cursor;const lowerOrderUnits=units.filter((u)=>["hours","minutes","seconds","milliseconds"].indexOf(u)>=0);if(lowerOrderUnits.length===0){if(highWater<later){highWater=cursor.plus({[lowestOrder]:1});}
if(highWater!==cursor){results[lowestOrder]=(results[lowestOrder]||0)+remainingMillis/(highWater-cursor);}}
const duration=Duration.fromObject(results,opts);if(lowerOrderUnits.length>0){return Duration.fromMillis(remainingMillis,opts).shiftTo(...lowerOrderUnits).plus(duration);}else{return duration;}}
const numberingSystems={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d",};const numberingSystemsUTF16={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881],};const hanidecChars=numberingSystems.hanidec.replace(/[\[|\]]/g,"").split("");function parseDigits(str){let value=parseInt(str,10);if(isNaN(value)){value="";for(let i=0;i<str.length;i++){const code=str.charCodeAt(i);if(str[i].search(numberingSystems.hanidec)!==-1){value+=hanidecChars.indexOf(str[i]);}else{for(const key in numberingSystemsUTF16){const[min,max]=numberingSystemsUTF16[key];if(code>=min&&code<=max){value+=code-min;}}}}
return parseInt(value,10);}else{return value;}}
function digitRegex({numberingSystem},append=""){return new RegExp(`${numberingSystems[numberingSystem || "latn"]}${append}`);}
const MISSING_FTP="missing Intl.DateTimeFormat.formatToParts support";function intUnit(regex,post=(i)=>i){return{regex,deser:([s])=>post(parseDigits(s))};}
const NBSP=String.fromCharCode(160);const spaceOrNBSP=`[ ${NBSP}]`;const spaceOrNBSPRegExp=new RegExp(spaceOrNBSP,"g");function fixListRegex(s){return s.replace(/\./g,"\\.?").replace(spaceOrNBSPRegExp,spaceOrNBSP);}
function stripInsensitivities(s){return s.replace(/\./g,"").replace(spaceOrNBSPRegExp," ").toLowerCase();}
function oneOf(strings,startIndex){if(strings===null){return null;}else{return{regex:RegExp(strings.map(fixListRegex).join("|")),deser:([s])=>strings.findIndex((i)=>stripInsensitivities(s)===stripInsensitivities(i))+startIndex,};}}
function offset(regex,groups){return{regex,deser:([,h,m])=>signedOffset(h,m),groups};}
function simple(regex){return{regex,deser:([s])=>s};}
function escapeToken(value){return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");}
function unitForToken(token,loc){const one=digitRegex(loc),two=digitRegex(loc,"{2}"),three=digitRegex(loc,"{3}"),four=digitRegex(loc,"{4}"),six=digitRegex(loc,"{6}"),oneOrTwo=digitRegex(loc,"{1,2}"),oneToThree=digitRegex(loc,"{1,3}"),oneToSix=digitRegex(loc,"{1,6}"),oneToNine=digitRegex(loc,"{1,9}"),twoToFour=digitRegex(loc,"{2,4}"),fourToSix=digitRegex(loc,"{4,6}"),literal=(t)=>({regex:RegExp(escapeToken(t.val)),deser:([s])=>s,literal:true}),unitate=(t)=>{if(token.literal){return literal(t);}
switch(t.val){case"G":return oneOf(loc.eras("short"),0);case"GG":return oneOf(loc.eras("long"),0);case"y":return intUnit(oneToSix);case"yy":return intUnit(twoToFour,untruncateYear);case"yyyy":return intUnit(four);case"yyyyy":return intUnit(fourToSix);case"yyyyyy":return intUnit(six);case"M":return intUnit(oneOrTwo);case"MM":return intUnit(two);case"MMM":return oneOf(loc.months("short",true),1);case"MMMM":return oneOf(loc.months("long",true),1);case"L":return intUnit(oneOrTwo);case"LL":return intUnit(two);case"LLL":return oneOf(loc.months("short",false),1);case"LLLL":return oneOf(loc.months("long",false),1);case"d":return intUnit(oneOrTwo);case"dd":return intUnit(two);case"o":return intUnit(oneToThree);case"ooo":return intUnit(three);case"HH":return intUnit(two);case"H":return intUnit(oneOrTwo);case"hh":return intUnit(two);case"h":return intUnit(oneOrTwo);case"mm":return intUnit(two);case"m":return intUnit(oneOrTwo);case"q":return intUnit(oneOrTwo);case"qq":return intUnit(two);case"s":return intUnit(oneOrTwo);case"ss":return intUnit(two);case"S":return intUnit(oneToThree);case"SSS":return intUnit(three);case"u":return simple(oneToNine);case"uu":return simple(oneOrTwo);case"uuu":return intUnit(one);case"a":return oneOf(loc.meridiems(),0);case"kkkk":return intUnit(four);case"kk":return intUnit(twoToFour,untruncateYear);case"W":return intUnit(oneOrTwo);case"WW":return intUnit(two);case"E":case"c":return intUnit(one);case"EEE":return oneOf(loc.weekdays("short",false),1);case"EEEE":return oneOf(loc.weekdays("long",false),1);case"ccc":return oneOf(loc.weekdays("short",true),1);case"cccc":return oneOf(loc.weekdays("long",true),1);case"Z":case"ZZ":return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`),2);case"ZZZ":return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`),2);case"z":return simple(/[a-z_+-/]{1,256}?/i);case" ":return simple(/[^\S\n\r]/);default:return literal(t);}};const unit=unitate(token)||{invalidReason:MISSING_FTP,};unit.token=token;return unit;}
const partTypeStyleToTokenVal={year:{"2-digit":"yy",numeric:"yyyyy",},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM",},day:{numeric:"d","2-digit":"dd",},weekday:{short:"EEE",long:"EEEE",},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh",},hour24:{numeric:"H","2-digit":"HH",},minute:{numeric:"m","2-digit":"mm",},second:{numeric:"s","2-digit":"ss",},timeZoneName:{long:"ZZZZZ",short:"ZZZ",},};function tokenForPart(part,formatOpts,resolvedOpts){const{type,value}=part;if(type==="literal"){const isSpace=/^\s+$/.test(value);return{literal:!isSpace,val:isSpace?" ":value,};}
const style=formatOpts[type];let actualType=type;if(type==="hour"){if(formatOpts.hour12!=null){actualType=formatOpts.hour12?"hour12":"hour24";}else if(formatOpts.hourCycle!=null){if(formatOpts.hourCycle==="h11"||formatOpts.hourCycle==="h12"){actualType="hour12";}else{actualType="hour24";}}else{actualType=resolvedOpts.hour12?"hour12":"hour24";}}
let val=partTypeStyleToTokenVal[actualType];if(typeof val==="object"){val=val[style];}
if(val){return{literal:false,val,};}
return undefined;}
function buildRegex(units){const re=units.map((u)=>u.regex).reduce((f,r)=>`${f}(${r.source})`,"");return[`^${re}$`,units];}
function match(input,regex,handlers){const matches=input.match(regex);if(matches){const all={};let matchIndex=1;for(const i in handlers){if(hasOwnProperty(handlers,i)){const h=handlers[i],groups=h.groups?h.groups+1:1;if(!h.literal&&h.token){all[h.token.val[0]]=h.deser(matches.slice(matchIndex,matchIndex+groups));}
matchIndex+=groups;}}
return[matches,all];}else{return[matches,{}];}}
function dateTimeFromMatches(matches){const toField=(token)=>{switch(token){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null;}};let zone=null;let specificOffset;if(!isUndefined(matches.z)){zone=IANAZone.create(matches.z);}
if(!isUndefined(matches.Z)){if(!zone){zone=new FixedOffsetZone(matches.Z);}
specificOffset=matches.Z;}
if(!isUndefined(matches.q)){matches.M=(matches.q-1)*3+1;}
if(!isUndefined(matches.h)){if(matches.h<12&&matches.a===1){matches.h+=12;}else if(matches.h===12&&matches.a===0){matches.h=0;}}
if(matches.G===0&&matches.y){matches.y=-matches.y;}
if(!isUndefined(matches.u)){matches.S=parseMillis(matches.u);}
const vals=Object.keys(matches).reduce((r,k)=>{const f=toField(k);if(f){r[f]=matches[k];}
return r;},{});return[vals,zone,specificOffset];}
let dummyDateTimeCache=null;function getDummyDateTime(){if(!dummyDateTimeCache){dummyDateTimeCache=DateTime.fromMillis(1555555555555);}
return dummyDateTimeCache;}
function maybeExpandMacroToken(token,locale){if(token.literal){return token;}
const formatOpts=Formatter.macroTokenToFormatOpts(token.val);const tokens=formatOptsToTokens(formatOpts,locale);if(tokens==null||tokens.includes(undefined)){return token;}
return tokens;}
function expandMacroTokens(tokens,locale){return Array.prototype.concat(...tokens.map((t)=>maybeExpandMacroToken(t,locale)));}
function explainFromTokens(locale,input,format){const tokens=expandMacroTokens(Formatter.parseFormat(format),locale),units=tokens.map((t)=>unitForToken(t,locale)),disqualifyingUnit=units.find((t)=>t.invalidReason);if(disqualifyingUnit){return{input,tokens,invalidReason:disqualifyingUnit.invalidReason};}else{const[regexString,handlers]=buildRegex(units),regex=RegExp(regexString,"i"),[rawMatches,matches]=match(input,regex,handlers),[result,zone,specificOffset]=matches?dateTimeFromMatches(matches):[null,null,undefined];if(hasOwnProperty(matches,"a")&&hasOwnProperty(matches,"H")){throw new ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format");}
return{input,tokens,regex,rawMatches,matches,result,zone,specificOffset};}}
function parseFromTokens(locale,input,format){const{result,zone,specificOffset,invalidReason}=explainFromTokens(locale,input,format);return[result,zone,specificOffset,invalidReason];}
function formatOptsToTokens(formatOpts,locale){if(!formatOpts){return null;}
const formatter=Formatter.create(locale,formatOpts);const df=formatter.dtFormatter(getDummyDateTime());const parts=df.formatToParts();const resolvedOpts=df.resolvedOptions();return parts.map((p)=>tokenForPart(p,formatOpts,resolvedOpts));}
const nonLeapLadder=[0,31,59,90,120,151,181,212,243,273,304,334],leapLadder=[0,31,60,91,121,152,182,213,244,274,305,335];function unitOutOfRange(unit,value){return new Invalid("unit out of range",`you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`);}
function dayOfWeek(year,month,day){const d=new Date(Date.UTC(year,month-1,day));if(year<100&&year>=0){d.setUTCFullYear(d.getUTCFullYear()-1900);}
const js=d.getUTCDay();return js===0?7:js;}
function computeOrdinal(year,month,day){return day+(isLeapYear(year)?leapLadder:nonLeapLadder)[month-1];}
function uncomputeOrdinal(year,ordinal){const table=isLeapYear(year)?leapLadder:nonLeapLadder,month0=table.findIndex((i)=>i<ordinal),day=ordinal-table[month0];return{month:month0+1,day};}
function gregorianToWeek(gregObj){const{year,month,day}=gregObj,ordinal=computeOrdinal(year,month,day),weekday=dayOfWeek(year,month,day);let weekNumber=Math.floor((ordinal-weekday+10)/7),weekYear;if(weekNumber<1){weekYear=year-1;weekNumber=weeksInWeekYear(weekYear);}else if(weekNumber>weeksInWeekYear(year)){weekYear=year+1;weekNumber=1;}else{weekYear=year;}
return{weekYear,weekNumber,weekday,...timeObject(gregObj)};}
function weekToGregorian(weekData){const{weekYear,weekNumber,weekday}=weekData,weekdayOfJan4=dayOfWeek(weekYear,1,4),yearInDays=daysInYear(weekYear);let ordinal=weekNumber*7+weekday-weekdayOfJan4-3,year;if(ordinal<1){year=weekYear-1;ordinal+=daysInYear(year);}else if(ordinal>yearInDays){year=weekYear+1;ordinal-=daysInYear(weekYear);}else{year=weekYear;}
const{month,day}=uncomputeOrdinal(year,ordinal);return{year,month,day,...timeObject(weekData)};}
function gregorianToOrdinal(gregData){const{year,month,day}=gregData;const ordinal=computeOrdinal(year,month,day);return{year,ordinal,...timeObject(gregData)};}
function ordinalToGregorian(ordinalData){const{year,ordinal}=ordinalData;const{month,day}=uncomputeOrdinal(year,ordinal);return{year,month,day,...timeObject(ordinalData)};}
function hasInvalidWeekData(obj){const validYear=isInteger(obj.weekYear),validWeek=integerBetween(obj.weekNumber,1,weeksInWeekYear(obj.weekYear)),validWeekday=integerBetween(obj.weekday,1,7);if(!validYear){return unitOutOfRange("weekYear",obj.weekYear);}else if(!validWeek){return unitOutOfRange("week",obj.week);}else if(!validWeekday){return unitOutOfRange("weekday",obj.weekday);}else return false;}
function hasInvalidOrdinalData(obj){const validYear=isInteger(obj.year),validOrdinal=integerBetween(obj.ordinal,1,daysInYear(obj.year));if(!validYear){return unitOutOfRange("year",obj.year);}else if(!validOrdinal){return unitOutOfRange("ordinal",obj.ordinal);}else return false;}
function hasInvalidGregorianData(obj){const validYear=isInteger(obj.year),validMonth=integerBetween(obj.month,1,12),validDay=integerBetween(obj.day,1,daysInMonth(obj.year,obj.month));if(!validYear){return unitOutOfRange("year",obj.year);}else if(!validMonth){return unitOutOfRange("month",obj.month);}else if(!validDay){return unitOutOfRange("day",obj.day);}else return false;}
function hasInvalidTimeData(obj){const{hour,minute,second,millisecond}=obj;const validHour=integerBetween(hour,0,23)||(hour===24&&minute===0&&second===0&&millisecond===0),validMinute=integerBetween(minute,0,59),validSecond=integerBetween(second,0,59),validMillisecond=integerBetween(millisecond,0,999);if(!validHour){return unitOutOfRange("hour",hour);}else if(!validMinute){return unitOutOfRange("minute",minute);}else if(!validSecond){return unitOutOfRange("second",second);}else if(!validMillisecond){return unitOutOfRange("millisecond",millisecond);}else return false;}
const INVALID="Invalid DateTime";const MAX_DATE=8.64e15;function unsupportedZone(zone){return new Invalid("unsupported zone",`the zone "${zone.name}" is not supported`);}
function possiblyCachedWeekData(dt){if(dt.weekData===null){dt.weekData=gregorianToWeek(dt.c);}
return dt.weekData;}
function clone(inst,alts){const current={ts:inst.ts,zone:inst.zone,c:inst.c,o:inst.o,loc:inst.loc,invalid:inst.invalid,};return new DateTime({...current,...alts,old:current});}
function fixOffset(localTS,o,tz){let utcGuess=localTS-o*60*1000;const o2=tz.offset(utcGuess);if(o===o2){return[utcGuess,o];}
utcGuess-=(o2-o)*60*1000;const o3=tz.offset(utcGuess);if(o2===o3){return[utcGuess,o2];}
return[localTS-Math.min(o2,o3)*60*1000,Math.max(o2,o3)];}
function tsToObj(ts,offset){ts+=offset*60*1000;const d=new Date(ts);return{year:d.getUTCFullYear(),month:d.getUTCMonth()+1,day:d.getUTCDate(),hour:d.getUTCHours(),minute:d.getUTCMinutes(),second:d.getUTCSeconds(),millisecond:d.getUTCMilliseconds(),};}
function objToTS(obj,offset,zone){return fixOffset(objToLocalTS(obj),offset,zone);}
function adjustTime(inst,dur){const oPre=inst.o,year=inst.c.year+Math.trunc(dur.years),month=inst.c.month+Math.trunc(dur.months)+Math.trunc(dur.quarters)*3,c={...inst.c,year,month,day:Math.min(inst.c.day,daysInMonth(year,month))+
Math.trunc(dur.days)+
Math.trunc(dur.weeks)*7,},millisToAdd=Duration.fromObject({years:dur.years-Math.trunc(dur.years),quarters:dur.quarters-Math.trunc(dur.quarters),months:dur.months-Math.trunc(dur.months),weeks:dur.weeks-Math.trunc(dur.weeks),days:dur.days-Math.trunc(dur.days),hours:dur.hours,minutes:dur.minutes,seconds:dur.seconds,milliseconds:dur.milliseconds,}).as("milliseconds"),localTS=objToLocalTS(c);let[ts,o]=fixOffset(localTS,oPre,inst.zone);if(millisToAdd!==0){ts+=millisToAdd;o=inst.zone.offset(ts);}
return{ts,o};}
function parseDataToDateTime(parsed,parsedZone,opts,format,text,specificOffset){const{setZone,zone}=opts;if((parsed&&Object.keys(parsed).length!==0)||parsedZone){const interpretationZone=parsedZone||zone,inst=DateTime.fromObject(parsed,{...opts,zone:interpretationZone,specificOffset,});return setZone?inst:inst.setZone(zone);}else{return DateTime.invalid(new Invalid("unparsable",`the input "${text}" can't be parsed as ${format}`));}}
function toTechFormat(dt,format,allowZ=true){return dt.isValid?Formatter.create(Locale.create("en-US"),{allowZ,forceSimple:true,}).formatDateTimeFromString(dt,format):null;}
function toISODate(o,extended){const longFormat=o.c.year>9999||o.c.year<0;let c="";if(longFormat&&o.c.year>=0)c+="+";c+=padStart(o.c.year,longFormat?6:4);if(extended){c+="-";c+=padStart(o.c.month);c+="-";c+=padStart(o.c.day);}else{c+=padStart(o.c.month);c+=padStart(o.c.day);}
return c;}
function toISOTime(o,extended,suppressSeconds,suppressMilliseconds,includeOffset,extendedZone){let c=padStart(o.c.hour);if(extended){c+=":";c+=padStart(o.c.minute);if(o.c.millisecond!==0||o.c.second!==0||!suppressSeconds){c+=":";}}else{c+=padStart(o.c.minute);}
if(o.c.millisecond!==0||o.c.second!==0||!suppressSeconds){c+=padStart(o.c.second);if(o.c.millisecond!==0||!suppressMilliseconds){c+=".";c+=padStart(o.c.millisecond,3);}}
if(includeOffset){if(o.isOffsetFixed&&o.offset===0&&!extendedZone){c+="Z";}else if(o.o<0){c+="-";c+=padStart(Math.trunc(-o.o/60));c+=":";c+=padStart(Math.trunc(-o.o%60));}else{c+="+";c+=padStart(Math.trunc(o.o/60));c+=":";c+=padStart(Math.trunc(o.o%60));}}
if(extendedZone){c+="["+o.zone.ianaName+"]";}
return c;}
const defaultUnitValues={month:1,day:1,hour:0,minute:0,second:0,millisecond:0,},defaultWeekUnitValues={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0,},defaultOrdinalUnitValues={ordinal:1,hour:0,minute:0,second:0,millisecond:0,};const orderedUnits=["year","month","day","hour","minute","second","millisecond"],orderedWeekUnits=["weekYear","weekNumber","weekday","hour","minute","second","millisecond",],orderedOrdinalUnits=["year","ordinal","hour","minute","second","millisecond"];function normalizeUnit(unit){const normalized={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal",}[unit.toLowerCase()];if(!normalized)throw new InvalidUnitError(unit);return normalized;}
function quickDT(obj,opts){const zone=normalizeZone(opts.zone,Settings.defaultZone),loc=Locale.fromObject(opts),tsNow=Settings.now();let ts,o;if(!isUndefined(obj.year)){for(const u of orderedUnits){if(isUndefined(obj[u])){obj[u]=defaultUnitValues[u];}}
const invalid=hasInvalidGregorianData(obj)||hasInvalidTimeData(obj);if(invalid){return DateTime.invalid(invalid);}
const offsetProvis=zone.offset(tsNow);[ts,o]=objToTS(obj,offsetProvis,zone);}else{ts=tsNow;}
return new DateTime({ts,zone,loc,o});}
function diffRelative(start,end,opts){const round=isUndefined(opts.round)?true:opts.round,format=(c,unit)=>{c=roundTo(c,round||opts.calendary?0:2,true);const formatter=end.loc.clone(opts).relFormatter(opts);return formatter.format(c,unit);},differ=(unit)=>{if(opts.calendary){if(!end.hasSame(start,unit)){return end.startOf(unit).diff(start.startOf(unit),unit).get(unit);}else return 0;}else{return end.diff(start,unit).get(unit);}};if(opts.unit){return format(differ(opts.unit),opts.unit);}
for(const unit of opts.units){const count=differ(unit);if(Math.abs(count)>=1){return format(count,unit);}}
return format(start>end?-0:0,opts.units[opts.units.length-1]);}
function lastOpts(argList){let opts={},args;if(argList.length>0&&typeof argList[argList.length-1]==="object"){opts=argList[argList.length-1];args=Array.from(argList).slice(0,argList.length-1);}else{args=Array.from(argList);}
return[opts,args];}
class DateTime{constructor(config){const zone=config.zone||Settings.defaultZone;let invalid=config.invalid||(Number.isNaN(config.ts)?new Invalid("invalid input"):null)||(!zone.isValid?unsupportedZone(zone):null);this.ts=isUndefined(config.ts)?Settings.now():config.ts;let c=null,o=null;if(!invalid){const unchanged=config.old&&config.old.ts===this.ts&&config.old.zone.equals(zone);if(unchanged){[c,o]=[config.old.c,config.old.o];}else{const ot=zone.offset(this.ts);c=tsToObj(this.ts,ot);invalid=Number.isNaN(c.year)?new Invalid("invalid input"):null;c=invalid?null:c;o=invalid?null:ot;}}
this._zone=zone;this.loc=config.loc||Locale.create();this.invalid=invalid;this.weekData=null;this.c=c;this.o=o;this.isLuxonDateTime=true;}
static now(){return new DateTime({});}
static local(){const[opts,args]=lastOpts(arguments),[year,month,day,hour,minute,second,millisecond]=args;return quickDT({year,month,day,hour,minute,second,millisecond},opts);}
static utc(){const[opts,args]=lastOpts(arguments),[year,month,day,hour,minute,second,millisecond]=args;opts.zone=FixedOffsetZone.utcInstance;return quickDT({year,month,day,hour,minute,second,millisecond},opts);}
static fromJSDate(date,options={}){const ts=isDate(date)?date.valueOf():NaN;if(Number.isNaN(ts)){return DateTime.invalid("invalid input");}
const zoneToUse=normalizeZone(options.zone,Settings.defaultZone);if(!zoneToUse.isValid){return DateTime.invalid(unsupportedZone(zoneToUse));}
return new DateTime({ts:ts,zone:zoneToUse,loc:Locale.fromObject(options),});}
static fromMillis(milliseconds,options={}){if(!isNumber(milliseconds)){throw new InvalidArgumentError(`fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`);}else if(milliseconds<-MAX_DATE||milliseconds>MAX_DATE){return DateTime.invalid("Timestamp out of range");}else{return new DateTime({ts:milliseconds,zone:normalizeZone(options.zone,Settings.defaultZone),loc:Locale.fromObject(options),});}}
static fromSeconds(seconds,options={}){if(!isNumber(seconds)){throw new InvalidArgumentError("fromSeconds requires a numerical input");}else{return new DateTime({ts:seconds*1000,zone:normalizeZone(options.zone,Settings.defaultZone),loc:Locale.fromObject(options),});}}
static fromObject(obj,opts={}){obj=obj||{};const zoneToUse=normalizeZone(opts.zone,Settings.defaultZone);if(!zoneToUse.isValid){return DateTime.invalid(unsupportedZone(zoneToUse));}
const tsNow=Settings.now(),offsetProvis=!isUndefined(opts.specificOffset)?opts.specificOffset:zoneToUse.offset(tsNow),normalized=normalizeObject(obj,normalizeUnit),containsOrdinal=!isUndefined(normalized.ordinal),containsGregorYear=!isUndefined(normalized.year),containsGregorMD=!isUndefined(normalized.month)||!isUndefined(normalized.day),containsGregor=containsGregorYear||containsGregorMD,definiteWeekDef=normalized.weekYear||normalized.weekNumber,loc=Locale.fromObject(opts);if((containsGregor||containsOrdinal)&&definiteWeekDef){throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals");}
if(containsGregorMD&&containsOrdinal){throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day");}
const useWeekData=definiteWeekDef||(normalized.weekday&&!containsGregor);let units,defaultValues,objNow=tsToObj(tsNow,offsetProvis);if(useWeekData){units=orderedWeekUnits;defaultValues=defaultWeekUnitValues;objNow=gregorianToWeek(objNow);}else if(containsOrdinal){units=orderedOrdinalUnits;defaultValues=defaultOrdinalUnitValues;objNow=gregorianToOrdinal(objNow);}else{units=orderedUnits;defaultValues=defaultUnitValues;}
let foundFirst=false;for(const u of units){const v=normalized[u];if(!isUndefined(v)){foundFirst=true;}else if(foundFirst){normalized[u]=defaultValues[u];}else{normalized[u]=objNow[u];}}
const higherOrderInvalid=useWeekData?hasInvalidWeekData(normalized):containsOrdinal?hasInvalidOrdinalData(normalized):hasInvalidGregorianData(normalized),invalid=higherOrderInvalid||hasInvalidTimeData(normalized);if(invalid){return DateTime.invalid(invalid);}
const gregorian=useWeekData?weekToGregorian(normalized):containsOrdinal?ordinalToGregorian(normalized):normalized,[tsFinal,offsetFinal]=objToTS(gregorian,offsetProvis,zoneToUse),inst=new DateTime({ts:tsFinal,zone:zoneToUse,o:offsetFinal,loc,});if(normalized.weekday&&containsGregor&&obj.weekday!==inst.weekday){return DateTime.invalid("mismatched weekday",`you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`);}
return inst;}
static fromISO(text,opts={}){const[vals,parsedZone]=parseISODate(text);return parseDataToDateTime(vals,parsedZone,opts,"ISO 8601",text);}
static fromRFC2822(text,opts={}){const[vals,parsedZone]=parseRFC2822Date(text);return parseDataToDateTime(vals,parsedZone,opts,"RFC 2822",text);}
static fromHTTP(text,opts={}){const[vals,parsedZone]=parseHTTPDate(text);return parseDataToDateTime(vals,parsedZone,opts,"HTTP",opts);}
static fromFormat(text,fmt,opts={}){if(isUndefined(text)||isUndefined(fmt)){throw new InvalidArgumentError("fromFormat requires an input string and a format");}
const{locale=null,numberingSystem=null}=opts,localeToUse=Locale.fromOpts({locale,numberingSystem,defaultToEN:true,}),[vals,parsedZone,specificOffset,invalid]=parseFromTokens(localeToUse,text,fmt);if(invalid){return DateTime.invalid(invalid);}else{return parseDataToDateTime(vals,parsedZone,opts,`format ${fmt}`,text,specificOffset);}}
static fromString(text,fmt,opts={}){return DateTime.fromFormat(text,fmt,opts);}
static fromSQL(text,opts={}){const[vals,parsedZone]=parseSQL(text);return parseDataToDateTime(vals,parsedZone,opts,"SQL",text);}
static invalid(reason,explanation=null){if(!reason){throw new InvalidArgumentError("need to specify a reason the DateTime is invalid");}
const invalid=reason instanceof Invalid?reason:new Invalid(reason,explanation);if(Settings.throwOnInvalid){throw new InvalidDateTimeError(invalid);}else{return new DateTime({invalid});}}
static isDateTime(o){return(o&&o.isLuxonDateTime)||false;}
static parseFormatForOpts(formatOpts,localeOpts={}){const tokenList=formatOptsToTokens(formatOpts,Locale.fromObject(localeOpts));return!tokenList?null:tokenList.map((t)=>(t?t.val:null)).join("");}
static expandFormat(fmt,localeOpts={}){const expanded=expandMacroTokens(Formatter.parseFormat(fmt),Locale.fromObject(localeOpts));return expanded.map((t)=>t.val).join("");}
get(unit){return this[unit];}
get isValid(){return this.invalid===null;}
get invalidReason(){return this.invalid?this.invalid.reason:null;}
get invalidExplanation(){return this.invalid?this.invalid.explanation:null;}
get locale(){return this.isValid?this.loc.locale:null;}
get numberingSystem(){return this.isValid?this.loc.numberingSystem:null;}
get outputCalendar(){return this.isValid?this.loc.outputCalendar:null;}
get zone(){return this._zone;}
get zoneName(){return this.isValid?this.zone.name:null;}
get year(){return this.isValid?this.c.year:NaN;}
get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN;}
get month(){return this.isValid?this.c.month:NaN;}
get day(){return this.isValid?this.c.day:NaN;}
get hour(){return this.isValid?this.c.hour:NaN;}
get minute(){return this.isValid?this.c.minute:NaN;}
get second(){return this.isValid?this.c.second:NaN;}
get millisecond(){return this.isValid?this.c.millisecond:NaN;}
get weekYear(){return this.isValid?possiblyCachedWeekData(this).weekYear:NaN;}
get weekNumber(){return this.isValid?possiblyCachedWeekData(this).weekNumber:NaN;}
get weekday(){return this.isValid?possiblyCachedWeekData(this).weekday:NaN;}
get ordinal(){return this.isValid?gregorianToOrdinal(this.c).ordinal:NaN;}
get monthShort(){return this.isValid?Info.months("short",{locObj:this.loc})[this.month-1]:null;}
get monthLong(){return this.isValid?Info.months("long",{locObj:this.loc})[this.month-1]:null;}
get weekdayShort(){return this.isValid?Info.weekdays("short",{locObj:this.loc})[this.weekday-1]:null;}
get weekdayLong(){return this.isValid?Info.weekdays("long",{locObj:this.loc})[this.weekday-1]:null;}
get offset(){return this.isValid?+this.o:NaN;}
get offsetNameShort(){if(this.isValid){return this.zone.offsetName(this.ts,{format:"short",locale:this.locale,});}else{return null;}}
get offsetNameLong(){if(this.isValid){return this.zone.offsetName(this.ts,{format:"long",locale:this.locale,});}else{return null;}}
get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null;}
get isInDST(){if(this.isOffsetFixed){return false;}else{return(this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset);}}
getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed){return[this];}
const dayMs=86400000;const minuteMs=60000;const localTS=objToLocalTS(this.c);const oEarlier=this.zone.offset(localTS-dayMs);const oLater=this.zone.offset(localTS+dayMs);const o1=this.zone.offset(localTS-oEarlier*minuteMs);const o2=this.zone.offset(localTS-oLater*minuteMs);if(o1===o2){return[this];}
const ts1=localTS-o1*minuteMs;const ts2=localTS-o2*minuteMs;const c1=tsToObj(ts1,o1);const c2=tsToObj(ts2,o2);if(c1.hour===c2.hour&&c1.minute===c2.minute&&c1.second===c2.second&&c1.millisecond===c2.millisecond){return[clone(this,{ts:ts1}),clone(this,{ts:ts2})];}
return[this];}
get isInLeapYear(){return isLeapYear(this.year);}
get daysInMonth(){return daysInMonth(this.year,this.month);}
get daysInYear(){return this.isValid?daysInYear(this.year):NaN;}
get weeksInWeekYear(){return this.isValid?weeksInWeekYear(this.weekYear):NaN;}
resolvedLocaleOptions(opts={}){const{locale,numberingSystem,calendar}=Formatter.create(this.loc.clone(opts),opts).resolvedOptions(this);return{locale,numberingSystem,outputCalendar:calendar};}
toUTC(offset=0,opts={}){return this.setZone(FixedOffsetZone.instance(offset),opts);}
toLocal(){return this.setZone(Settings.defaultZone);}
setZone(zone,{keepLocalTime=false,keepCalendarTime=false}={}){zone=normalizeZone(zone,Settings.defaultZone);if(zone.equals(this.zone)){return this;}else if(!zone.isValid){return DateTime.invalid(unsupportedZone(zone));}else{let newTS=this.ts;if(keepLocalTime||keepCalendarTime){const offsetGuess=zone.offset(this.ts);const asObj=this.toObject();[newTS]=objToTS(asObj,offsetGuess,zone);}
return clone(this,{ts:newTS,zone});}}
reconfigure({locale,numberingSystem,outputCalendar}={}){const loc=this.loc.clone({locale,numberingSystem,outputCalendar});return clone(this,{loc});}
setLocale(locale){return this.reconfigure({locale});}
set(values){if(!this.isValid)return this;const normalized=normalizeObject(values,normalizeUnit),settingWeekStuff=!isUndefined(normalized.weekYear)||!isUndefined(normalized.weekNumber)||!isUndefined(normalized.weekday),containsOrdinal=!isUndefined(normalized.ordinal),containsGregorYear=!isUndefined(normalized.year),containsGregorMD=!isUndefined(normalized.month)||!isUndefined(normalized.day),containsGregor=containsGregorYear||containsGregorMD,definiteWeekDef=normalized.weekYear||normalized.weekNumber;if((containsGregor||containsOrdinal)&&definiteWeekDef){throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals");}
if(containsGregorMD&&containsOrdinal){throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day");}
let mixed;if(settingWeekStuff){mixed=weekToGregorian({...gregorianToWeek(this.c),...normalized});}else if(!isUndefined(normalized.ordinal)){mixed=ordinalToGregorian({...gregorianToOrdinal(this.c),...normalized});}else{mixed={...this.toObject(),...normalized};if(isUndefined(normalized.day)){mixed.day=Math.min(daysInMonth(mixed.year,mixed.month),mixed.day);}}
const[ts,o]=objToTS(mixed,this.o,this.zone);return clone(this,{ts,o});}
plus(duration){if(!this.isValid)return this;const dur=Duration.fromDurationLike(duration);return clone(this,adjustTime(this,dur));}
minus(duration){if(!this.isValid)return this;const dur=Duration.fromDurationLike(duration).negate();return clone(this,adjustTime(this,dur));}
startOf(unit){if(!this.isValid)return this;const o={},normalizedUnit=Duration.normalizeUnit(unit);switch(normalizedUnit){case"years":o.month=1;case"quarters":case"months":o.day=1;case"weeks":case"days":o.hour=0;case"hours":o.minute=0;case"minutes":o.second=0;case"seconds":o.millisecond=0;break;}
if(normalizedUnit==="weeks"){o.weekday=1;}
if(normalizedUnit==="quarters"){const q=Math.ceil(this.month/3);o.month=(q-1)*3+1;}
return this.set(o);}
endOf(unit){return this.isValid?this.plus({[unit]:1}).startOf(unit).minus(1):this;}
toFormat(fmt,opts={}){return this.isValid?Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this,fmt):INVALID;}
toLocaleString(formatOpts=DATE_SHORT,opts={}){return this.isValid?Formatter.create(this.loc.clone(opts),formatOpts).formatDateTime(this):INVALID;}
toLocaleParts(opts={}){return this.isValid?Formatter.create(this.loc.clone(opts),opts).formatDateTimeParts(this):[];}
toISO({format="extended",suppressSeconds=false,suppressMilliseconds=false,includeOffset=true,extendedZone=false,}={}){if(!this.isValid){return null;}
const ext=format==="extended";let c=toISODate(this,ext);c+="T";c+=toISOTime(this,ext,suppressSeconds,suppressMilliseconds,includeOffset,extendedZone);return c;}
toISODate({format="extended"}={}){if(!this.isValid){return null;}
return toISODate(this,format==="extended");}
toISOWeekDate(){return toTechFormat(this,"kkkk-'W'WW-c");}
toISOTime({suppressMilliseconds=false,suppressSeconds=false,includeOffset=true,includePrefix=false,extendedZone=false,format="extended",}={}){if(!this.isValid){return null;}
let c=includePrefix?"T":"";return(c+
toISOTime(this,format==="extended",suppressSeconds,suppressMilliseconds,includeOffset,extendedZone));}
toRFC2822(){return toTechFormat(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",false);}
toHTTP(){return toTechFormat(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'");}
toSQLDate(){if(!this.isValid){return null;}
return toISODate(this,true);}
toSQLTime({includeOffset=true,includeZone=false,includeOffsetSpace=true}={}){let fmt="HH:mm:ss.SSS";if(includeZone||includeOffset){if(includeOffsetSpace){fmt+=" ";}
if(includeZone){fmt+="z";}else if(includeOffset){fmt+="ZZ";}}
return toTechFormat(this,fmt,true);}
toSQL(opts={}){if(!this.isValid){return null;}
return`${this.toSQLDate()} ${this.toSQLTime(opts)}`;}
toString(){return this.isValid?this.toISO():INVALID;}
valueOf(){return this.toMillis();}
toMillis(){return this.isValid?this.ts:NaN;}
toSeconds(){return this.isValid?this.ts/1000:NaN;}
toUnixInteger(){return this.isValid?Math.floor(this.ts/1000):NaN;}
toJSON(){return this.toISO();}
toBSON(){return this.toJSDate();}
toObject(opts={}){if(!this.isValid)return{};const base={...this.c};if(opts.includeConfig){base.outputCalendar=this.outputCalendar;base.numberingSystem=this.loc.numberingSystem;base.locale=this.loc.locale;}
return base;}
toJSDate(){return new Date(this.isValid?this.ts:NaN);}
diff(otherDateTime,unit="milliseconds",opts={}){if(!this.isValid||!otherDateTime.isValid){return Duration.invalid("created by diffing an invalid DateTime");}
const durOpts={locale:this.locale,numberingSystem:this.numberingSystem,...opts};const units=maybeArray(unit).map(Duration.normalizeUnit),otherIsLater=otherDateTime.valueOf()>this.valueOf(),earlier=otherIsLater?this:otherDateTime,later=otherIsLater?otherDateTime:this,diffed=diff(earlier,later,units,durOpts);return otherIsLater?diffed.negate():diffed;}
diffNow(unit="milliseconds",opts={}){return this.diff(DateTime.now(),unit,opts);}
until(otherDateTime){return this.isValid?Interval.fromDateTimes(this,otherDateTime):this;}
hasSame(otherDateTime,unit){if(!this.isValid)return false;const inputMs=otherDateTime.valueOf();const adjustedToZone=this.setZone(otherDateTime.zone,{keepLocalTime:true});return adjustedToZone.startOf(unit)<=inputMs&&inputMs<=adjustedToZone.endOf(unit);}
equals(other){return(this.isValid&&other.isValid&&this.valueOf()===other.valueOf()&&this.zone.equals(other.zone)&&this.loc.equals(other.loc));}
toRelative(options={}){if(!this.isValid)return null;const base=options.base||DateTime.fromObject({},{zone:this.zone}),padding=options.padding?(this<base?-options.padding:options.padding):0;let units=["years","months","days","hours","minutes","seconds"];let unit=options.unit;if(Array.isArray(options.unit)){units=options.unit;unit=undefined;}
return diffRelative(base,this.plus(padding),{...options,numeric:"always",units,unit,});}
toRelativeCalendar(options={}){if(!this.isValid)return null;return diffRelative(options.base||DateTime.fromObject({},{zone:this.zone}),this,{...options,numeric:"auto",units:["years","months","days"],calendary:true,});}
static min(...dateTimes){if(!dateTimes.every(DateTime.isDateTime)){throw new InvalidArgumentError("min requires all arguments be DateTimes");}
return bestBy(dateTimes,(i)=>i.valueOf(),Math.min);}
static max(...dateTimes){if(!dateTimes.every(DateTime.isDateTime)){throw new InvalidArgumentError("max requires all arguments be DateTimes");}
return bestBy(dateTimes,(i)=>i.valueOf(),Math.max);}
static fromFormatExplain(text,fmt,options={}){const{locale=null,numberingSystem=null}=options,localeToUse=Locale.fromOpts({locale,numberingSystem,defaultToEN:true,});return explainFromTokens(localeToUse,text,fmt);}
static fromStringExplain(text,fmt,options={}){return DateTime.fromFormatExplain(text,fmt,options);}
static get DATE_SHORT(){return DATE_SHORT;}
static get DATE_MED(){return DATE_MED;}
static get DATE_MED_WITH_WEEKDAY(){return DATE_MED_WITH_WEEKDAY;}
static get DATE_FULL(){return DATE_FULL;}
static get DATE_HUGE(){return DATE_HUGE;}
static get TIME_SIMPLE(){return TIME_SIMPLE;}
static get TIME_WITH_SECONDS(){return TIME_WITH_SECONDS;}
static get TIME_WITH_SHORT_OFFSET(){return TIME_WITH_SHORT_OFFSET;}
static get TIME_WITH_LONG_OFFSET(){return TIME_WITH_LONG_OFFSET;}
static get TIME_24_SIMPLE(){return TIME_24_SIMPLE;}
static get TIME_24_WITH_SECONDS(){return TIME_24_WITH_SECONDS;}
static get TIME_24_WITH_SHORT_OFFSET(){return TIME_24_WITH_SHORT_OFFSET;}
static get TIME_24_WITH_LONG_OFFSET(){return TIME_24_WITH_LONG_OFFSET;}
static get DATETIME_SHORT(){return DATETIME_SHORT;}
static get DATETIME_SHORT_WITH_SECONDS(){return DATETIME_SHORT_WITH_SECONDS;}
static get DATETIME_MED(){return DATETIME_MED;}
static get DATETIME_MED_WITH_SECONDS(){return DATETIME_MED_WITH_SECONDS;}
static get DATETIME_MED_WITH_WEEKDAY(){return DATETIME_MED_WITH_WEEKDAY;}
static get DATETIME_FULL(){return DATETIME_FULL;}
static get DATETIME_FULL_WITH_SECONDS(){return DATETIME_FULL_WITH_SECONDS;}
static get DATETIME_HUGE(){return DATETIME_HUGE;}
static get DATETIME_HUGE_WITH_SECONDS(){return DATETIME_HUGE_WITH_SECONDS;}}
function friendlyDateTime(dateTimeish){if(DateTime.isDateTime(dateTimeish)){return dateTimeish;}else if(dateTimeish&&dateTimeish.valueOf&&isNumber(dateTimeish.valueOf())){return DateTime.fromJSDate(dateTimeish);}else if(dateTimeish&&typeof dateTimeish==="object"){return DateTime.fromObject(dateTimeish);}else{throw new InvalidArgumentError(`Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`);}}
const VERSION="3.4.2";exports.DateTime=DateTime;exports.Duration=Duration;exports.FixedOffsetZone=FixedOffsetZone;exports.IANAZone=IANAZone;exports.Info=Info;exports.Interval=Interval;exports.InvalidZone=InvalidZone;exports.Settings=Settings;exports.SystemZone=SystemZone;exports.VERSION=VERSION;exports.Zone=Zone;Object.defineProperty(exports,'__esModule',{value:true});return exports;})({});luxon.DateTime.prototype[Symbol.toStringTag]="LuxonDateTime";luxon.Duration.prototype[Symbol.toStringTag]="LuxonDuration";luxon.Interval.prototype[Symbol.toStringTag]="LuxonInterval";luxon.Settings.prototype[Symbol.toStringTag]="LuxonSettings";luxon.Info.prototype[Symbol.toStringTag]="LuxonInfo";luxon.Zone.prototype[Symbol.toStringTag]="LuxonZone";;

/* /web/static/lib/owl/owl.js */
(function(exports){'use strict';function filterOutModifiersFromData(dataList){dataList=dataList.slice();const modifiers=[];let elm;while((elm=dataList[0])&&typeof elm==="string"){modifiers.push(dataList.shift());}
return{modifiers,data:dataList};}
const config={shouldNormalizeDom:true,mainEventHandler:(data,ev,currentTarget)=>{if(typeof data==="function"){data(ev);}
else if(Array.isArray(data)){data=filterOutModifiersFromData(data).data;data[0](data[1],ev);}
return false;},};class VToggler{constructor(key,child){this.key=key;this.child=child;}
mount(parent,afterNode){this.parentEl=parent;this.child.mount(parent,afterNode);}
moveBeforeDOMNode(node,parent){this.child.moveBeforeDOMNode(node,parent);}
moveBeforeVNode(other,afterNode){this.moveBeforeDOMNode((other&&other.firstNode())||afterNode);}
patch(other,withBeforeRemove){if(this===other){return;}
let child1=this.child;let child2=other.child;if(this.key===other.key){child1.patch(child2,withBeforeRemove);}
else{child2.mount(this.parentEl,child1.firstNode());if(withBeforeRemove){child1.beforeRemove();}
child1.remove();this.child=child2;this.key=other.key;}}
beforeRemove(){this.child.beforeRemove();}
remove(){this.child.remove();}
firstNode(){return this.child.firstNode();}
toString(){return this.child.toString();}}
function toggler(key,child){return new VToggler(key,child);}
class OwlError extends Error{}
const{setAttribute:elemSetAttribute,removeAttribute}=Element.prototype;const tokenList=DOMTokenList.prototype;const tokenListAdd=tokenList.add;const tokenListRemove=tokenList.remove;const isArray=Array.isArray;const{split,trim}=String.prototype;const wordRegexp=/\s+/;function setAttribute(key,value){switch(value){case false:case undefined:removeAttribute.call(this,key);break;case true:elemSetAttribute.call(this,key,"");break;default:elemSetAttribute.call(this,key,value);}}
function createAttrUpdater(attr){return function(value){setAttribute.call(this,attr,value);};}
function attrsSetter(attrs){if(isArray(attrs)){if(attrs[0]==="class"){setClass.call(this,attrs[1]);}
else{setAttribute.call(this,attrs[0],attrs[1]);}}
else{for(let k in attrs){if(k==="class"){setClass.call(this,attrs[k]);}
else{setAttribute.call(this,k,attrs[k]);}}}}
function attrsUpdater(attrs,oldAttrs){if(isArray(attrs)){const name=attrs[0];const val=attrs[1];if(name===oldAttrs[0]){if(val===oldAttrs[1]){return;}
if(name==="class"){updateClass.call(this,val,oldAttrs[1]);}
else{setAttribute.call(this,name,val);}}
else{removeAttribute.call(this,oldAttrs[0]);setAttribute.call(this,name,val);}}
else{for(let k in oldAttrs){if(!(k in attrs)){if(k==="class"){updateClass.call(this,"",oldAttrs[k]);}
else{removeAttribute.call(this,k);}}}
for(let k in attrs){const val=attrs[k];if(val!==oldAttrs[k]){if(k==="class"){updateClass.call(this,val,oldAttrs[k]);}
else{setAttribute.call(this,k,val);}}}}}
function toClassObj(expr){const result={};switch(typeof expr){case"string":const str=trim.call(expr);if(!str){return{};}
let words=split.call(str,wordRegexp);for(let i=0,l=words.length;i<l;i++){result[words[i]]=true;}
return result;case"object":for(let key in expr){const value=expr[key];if(value){key=trim.call(key);if(!key){continue;}
const words=split.call(key,wordRegexp);for(let word of words){result[word]=value;}}}
return result;case"undefined":return{};case"number":return{[expr]:true};default:return{[expr]:true};}}
function setClass(val){val=val===""?{}:toClassObj(val);const cl=this.classList;for(let c in val){tokenListAdd.call(cl,c);}}
function updateClass(val,oldVal){oldVal=oldVal===""?{}:toClassObj(oldVal);val=val===""?{}:toClassObj(val);const cl=this.classList;for(let c in oldVal){if(!(c in val)){tokenListRemove.call(cl,c);}}
for(let c in val){if(!(c in oldVal)){tokenListAdd.call(cl,c);}}}
function batched(callback){let scheduled=false;return async(...args)=>{if(!scheduled){scheduled=true;await Promise.resolve();scheduled=false;callback(...args);}};}
function inOwnerDocument(el){if(!el){return false;}
if(el.ownerDocument.contains(el)){return true;}
const rootNode=el.getRootNode();return rootNode instanceof ShadowRoot&&el.ownerDocument.contains(rootNode.host);}
function validateTarget(target){const document=target&&target.ownerDocument;if(document){const HTMLElement=document.defaultView.HTMLElement;if(target instanceof HTMLElement||target instanceof ShadowRoot){if(!document.body.contains(target instanceof HTMLElement?target:target.host)){throw new OwlError("Cannot mount a component on a detached dom node");}
return;}}
throw new OwlError("Cannot mount component: the target is not a valid DOM element");}
class EventBus extends EventTarget{trigger(name,payload){this.dispatchEvent(new CustomEvent(name,{detail:payload}));}}
function whenReady(fn){return new Promise(function(resolve){if(document.readyState!=="loading"){resolve(true);}
else{document.addEventListener("DOMContentLoaded",resolve,false);}}).then(fn||function(){});}
async function loadFile(url){const result=await fetch(url);if(!result.ok){throw new OwlError("Error while fetching xml templates");}
return await result.text();}
class Markup extends String{}
function markup(value){return new Markup(value);}
function createEventHandler(rawEvent){const eventName=rawEvent.split(".")[0];const capture=rawEvent.includes(".capture");if(rawEvent.includes(".synthetic")){return createSyntheticHandler(eventName,capture);}
else{return createElementHandler(eventName,capture);}}
let nextNativeEventId=1;function createElementHandler(evName,capture=false){let eventKey=`__event__${evName}_${nextNativeEventId++}`;if(capture){eventKey=`${eventKey}_capture`;}
function listener(ev){const currentTarget=ev.currentTarget;if(!currentTarget||!inOwnerDocument(currentTarget))
return;const data=currentTarget[eventKey];if(!data)
return;config.mainEventHandler(data,ev,currentTarget);}
function setup(data){this[eventKey]=data;this.addEventListener(evName,listener,{capture});}
function remove(){delete this[eventKey];this.removeEventListener(evName,listener,{capture});}
function update(data){this[eventKey]=data;}
return{setup,update,remove};}
let nextSyntheticEventId=1;function createSyntheticHandler(evName,capture=false){let eventKey=`__event__synthetic_${evName}`;if(capture){eventKey=`${eventKey}_capture`;}
setupSyntheticEvent(evName,eventKey,capture);const currentId=nextSyntheticEventId++;function setup(data){const _data=this[eventKey]||{};_data[currentId]=data;this[eventKey]=_data;}
function remove(){delete this[eventKey];}
return{setup,update:setup,remove};}
function nativeToSyntheticEvent(eventKey,event){let dom=event.target;while(dom!==null){const _data=dom[eventKey];if(_data){for(const data of Object.values(_data)){const stopped=config.mainEventHandler(data,event,dom);if(stopped)
return;}}
dom=dom.parentNode;}}
const CONFIGURED_SYNTHETIC_EVENTS={};function setupSyntheticEvent(evName,eventKey,capture=false){if(CONFIGURED_SYNTHETIC_EVENTS[eventKey]){return;}
document.addEventListener(evName,(event)=>nativeToSyntheticEvent(eventKey,event),{capture,});CONFIGURED_SYNTHETIC_EVENTS[eventKey]=true;}
const getDescriptor$3=(o,p)=>Object.getOwnPropertyDescriptor(o,p);const nodeProto$4=Node.prototype;const nodeInsertBefore$3=nodeProto$4.insertBefore;const nodeSetTextContent$1=getDescriptor$3(nodeProto$4,"textContent").set;const nodeRemoveChild$3=nodeProto$4.removeChild;class VMulti{constructor(children){this.children=children;}
mount(parent,afterNode){const children=this.children;const l=children.length;const anchors=new Array(l);for(let i=0;i<l;i++){let child=children[i];if(child){child.mount(parent,afterNode);}
else{const childAnchor=document.createTextNode("");anchors[i]=childAnchor;nodeInsertBefore$3.call(parent,childAnchor,afterNode);}}
this.anchors=anchors;this.parentEl=parent;}
moveBeforeDOMNode(node,parent=this.parentEl){this.parentEl=parent;const children=this.children;const anchors=this.anchors;for(let i=0,l=children.length;i<l;i++){let child=children[i];if(child){child.moveBeforeDOMNode(node,parent);}
else{const anchor=anchors[i];nodeInsertBefore$3.call(parent,anchor,node);}}}
moveBeforeVNode(other,afterNode){if(other){const next=other.children[0];afterNode=(next?next.firstNode():other.anchors[0])||null;}
const children=this.children;const parent=this.parentEl;const anchors=this.anchors;for(let i=0,l=children.length;i<l;i++){let child=children[i];if(child){child.moveBeforeVNode(null,afterNode);}
else{const anchor=anchors[i];nodeInsertBefore$3.call(parent,anchor,afterNode);}}}
patch(other,withBeforeRemove){if(this===other){return;}
const children1=this.children;const children2=other.children;const anchors=this.anchors;const parentEl=this.parentEl;for(let i=0,l=children1.length;i<l;i++){const vn1=children1[i];const vn2=children2[i];if(vn1){if(vn2){vn1.patch(vn2,withBeforeRemove);}
else{const afterNode=vn1.firstNode();const anchor=document.createTextNode("");anchors[i]=anchor;nodeInsertBefore$3.call(parentEl,anchor,afterNode);if(withBeforeRemove){vn1.beforeRemove();}
vn1.remove();children1[i]=undefined;}}
else if(vn2){children1[i]=vn2;const anchor=anchors[i];vn2.mount(parentEl,anchor);nodeRemoveChild$3.call(parentEl,anchor);}}}
beforeRemove(){const children=this.children;for(let i=0,l=children.length;i<l;i++){const child=children[i];if(child){child.beforeRemove();}}}
remove(){const parentEl=this.parentEl;if(this.isOnlyChild){nodeSetTextContent$1.call(parentEl,"");}
else{const children=this.children;const anchors=this.anchors;for(let i=0,l=children.length;i<l;i++){const child=children[i];if(child){child.remove();}
else{nodeRemoveChild$3.call(parentEl,anchors[i]);}}}}
firstNode(){const child=this.children[0];return child?child.firstNode():this.anchors[0];}
toString(){return this.children.map((c)=>(c?c.toString():"")).join("");}}
function multi(children){return new VMulti(children);}
const getDescriptor$2=(o,p)=>Object.getOwnPropertyDescriptor(o,p);const nodeProto$3=Node.prototype;const characterDataProto$1=CharacterData.prototype;const nodeInsertBefore$2=nodeProto$3.insertBefore;const characterDataSetData$1=getDescriptor$2(characterDataProto$1,"data").set;const nodeRemoveChild$2=nodeProto$3.removeChild;class VSimpleNode{constructor(text){this.text=text;}
mountNode(node,parent,afterNode){this.parentEl=parent;nodeInsertBefore$2.call(parent,node,afterNode);this.el=node;}
moveBeforeDOMNode(node,parent=this.parentEl){this.parentEl=parent;nodeInsertBefore$2.call(parent,this.el,node);}
moveBeforeVNode(other,afterNode){nodeInsertBefore$2.call(this.parentEl,this.el,other?other.el:afterNode);}
beforeRemove(){}
remove(){nodeRemoveChild$2.call(this.parentEl,this.el);}
firstNode(){return this.el;}
toString(){return this.text;}}
class VText$1 extends VSimpleNode{mount(parent,afterNode){this.mountNode(document.createTextNode(toText(this.text)),parent,afterNode);}
patch(other){const text2=other.text;if(this.text!==text2){characterDataSetData$1.call(this.el,toText(text2));this.text=text2;}}}
class VComment extends VSimpleNode{mount(parent,afterNode){this.mountNode(document.createComment(toText(this.text)),parent,afterNode);}
patch(){}}
function text(str){return new VText$1(str);}
function comment(str){return new VComment(str);}
function toText(value){switch(typeof value){case"string":return value;case"number":return String(value);case"boolean":return value?"true":"false";default:return value||"";}}
const getDescriptor$1=(o,p)=>Object.getOwnPropertyDescriptor(o,p);const nodeProto$2=Node.prototype;const elementProto=Element.prototype;const characterDataProto=CharacterData.prototype;const characterDataSetData=getDescriptor$1(characterDataProto,"data").set;const nodeGetFirstChild=getDescriptor$1(nodeProto$2,"firstChild").get;const nodeGetNextSibling=getDescriptor$1(nodeProto$2,"nextSibling").get;const NO_OP=()=>{};function makePropSetter(name){return function setProp(value){this[name]=value===0?0:value?value.valueOf():"";};}
const cache$1={};function createBlock(str){if(str in cache$1){return cache$1[str];}
const doc=new DOMParser().parseFromString(`<t>${str}</t>`,"text/xml");const node=doc.firstChild.firstChild;if(config.shouldNormalizeDom){normalizeNode(node);}
const tree=buildTree(node);const context=buildContext(tree);const template=tree.el;const Block=buildBlock(template,context);cache$1[str]=Block;return Block;}
function normalizeNode(node){if(node.nodeType===Node.TEXT_NODE){if(!/\S/.test(node.textContent)){node.remove();return;}}
if(node.nodeType===Node.ELEMENT_NODE){if(node.tagName==="pre"){return;}}
for(let i=node.childNodes.length-1;i>=0;--i){normalizeNode(node.childNodes.item(i));}}
function buildTree(node,parent=null,domParentTree=null){switch(node.nodeType){case Node.ELEMENT_NODE:{let currentNS=domParentTree&&domParentTree.currentNS;const tagName=node.tagName;let el=undefined;const info=[];if(tagName.startsWith("block-text-")){const index=parseInt(tagName.slice(11),10);info.push({type:"text",idx:index});el=document.createTextNode("");}
if(tagName.startsWith("block-child-")){if(!domParentTree.isRef){addRef(domParentTree);}
const index=parseInt(tagName.slice(12),10);info.push({type:"child",idx:index});el=document.createTextNode("");}
currentNS||(currentNS=node.namespaceURI);if(!el){el=currentNS?document.createElementNS(currentNS,tagName):document.createElement(tagName);}
if(el instanceof Element){if(!domParentTree){const fragment=document.createElement("template").content;fragment.appendChild(el);}
const attrs=node.attributes;for(let i=0;i<attrs.length;i++){const attrName=attrs[i].name;const attrValue=attrs[i].value;if(attrName.startsWith("block-handler-")){const idx=parseInt(attrName.slice(14),10);info.push({type:"handler",idx,event:attrValue,});}
else if(attrName.startsWith("block-attribute-")){const idx=parseInt(attrName.slice(16),10);info.push({type:"attribute",idx,name:attrValue,tag:tagName,});}
else if(attrName.startsWith("block-property-")){const idx=parseInt(attrName.slice(15),10);info.push({type:"property",idx,name:attrValue,tag:tagName,});}
else if(attrName==="block-attributes"){info.push({type:"attributes",idx:parseInt(attrValue,10),});}
else if(attrName==="block-ref"){info.push({type:"ref",idx:parseInt(attrValue,10),});}
else{el.setAttribute(attrs[i].name,attrValue);}}}
const tree={parent,firstChild:null,nextSibling:null,el,info,refN:0,currentNS,};if(node.firstChild){const childNode=node.childNodes[0];if(node.childNodes.length===1&&childNode.nodeType===Node.ELEMENT_NODE&&childNode.tagName.startsWith("block-child-")){const tagName=childNode.tagName;const index=parseInt(tagName.slice(12),10);info.push({idx:index,type:"child",isOnlyChild:true});}
else{tree.firstChild=buildTree(node.firstChild,tree,tree);el.appendChild(tree.firstChild.el);let curNode=node.firstChild;let curTree=tree.firstChild;while((curNode=curNode.nextSibling)){curTree.nextSibling=buildTree(curNode,curTree,tree);el.appendChild(curTree.nextSibling.el);curTree=curTree.nextSibling;}}}
if(tree.info.length){addRef(tree);}
return tree;}
case Node.TEXT_NODE:case Node.COMMENT_NODE:{const el=node.nodeType===Node.TEXT_NODE?document.createTextNode(node.textContent):document.createComment(node.textContent);return{parent:parent,firstChild:null,nextSibling:null,el,info:[],refN:0,currentNS:null,};}}
throw new OwlError("boom");}
function addRef(tree){tree.isRef=true;do{tree.refN++;}while((tree=tree.parent));}
function parentTree(tree){let parent=tree.parent;while(parent&&parent.nextSibling===tree){tree=parent;parent=parent.parent;}
return parent;}
function buildContext(tree,ctx,fromIdx){if(!ctx){const children=new Array(tree.info.filter((v)=>v.type==="child").length);ctx={collectors:[],locations:[],children,cbRefs:[],refN:tree.refN,refList:[]};fromIdx=0;}
if(tree.refN){const initialIdx=fromIdx;const isRef=tree.isRef;const firstChild=tree.firstChild?tree.firstChild.refN:0;const nextSibling=tree.nextSibling?tree.nextSibling.refN:0;if(isRef){for(let info of tree.info){info.refIdx=initialIdx;}
tree.refIdx=initialIdx;updateCtx(ctx,tree);fromIdx++;}
if(nextSibling){const idx=fromIdx+firstChild;ctx.collectors.push({idx,prevIdx:initialIdx,getVal:nodeGetNextSibling});buildContext(tree.nextSibling,ctx,idx);}
if(firstChild){ctx.collectors.push({idx:fromIdx,prevIdx:initialIdx,getVal:nodeGetFirstChild});buildContext(tree.firstChild,ctx,fromIdx);}}
return ctx;}
function updateCtx(ctx,tree){for(let info of tree.info){switch(info.type){case"text":ctx.locations.push({idx:info.idx,refIdx:info.refIdx,setData:setText,updateData:setText,});break;case"child":if(info.isOnlyChild){ctx.children[info.idx]={parentRefIdx:info.refIdx,isOnlyChild:true,};}
else{ctx.children[info.idx]={parentRefIdx:parentTree(tree).refIdx,afterRefIdx:info.refIdx,};}
break;case"property":{const refIdx=info.refIdx;const setProp=makePropSetter(info.name);ctx.locations.push({idx:info.idx,refIdx,setData:setProp,updateData:setProp,});break;}
case"attribute":{const refIdx=info.refIdx;let updater;let setter;if(info.name==="class"){setter=setClass;updater=updateClass;}
else{setter=createAttrUpdater(info.name);updater=setter;}
ctx.locations.push({idx:info.idx,refIdx,setData:setter,updateData:updater,});break;}
case"attributes":ctx.locations.push({idx:info.idx,refIdx:info.refIdx,setData:attrsSetter,updateData:attrsUpdater,});break;case"handler":{const{setup,update}=createEventHandler(info.event);ctx.locations.push({idx:info.idx,refIdx:info.refIdx,setData:setup,updateData:update,});break;}
case"ref":const index=ctx.cbRefs.push(info.idx)-1;ctx.locations.push({idx:info.idx,refIdx:info.refIdx,setData:makeRefSetter(index,ctx.refList),updateData:NO_OP,});}}}
function buildBlock(template,ctx){let B=createBlockClass(template,ctx);if(ctx.cbRefs.length){const cbRefs=ctx.cbRefs;const refList=ctx.refList;let cbRefsNumber=cbRefs.length;B=class extends B{mount(parent,afterNode){refList.push(new Array(cbRefsNumber));super.mount(parent,afterNode);for(let cbRef of refList.pop()){cbRef();}}
remove(){super.remove();for(let cbRef of cbRefs){let fn=this.data[cbRef];fn(null);}}};}
if(ctx.children.length){B=class extends B{constructor(data,children){super(data);this.children=children;}};B.prototype.beforeRemove=VMulti.prototype.beforeRemove;return(data,children=[])=>new B(data,children);}
return(data)=>new B(data);}
function createBlockClass(template,ctx){const{refN,collectors,children}=ctx;const colN=collectors.length;ctx.locations.sort((a,b)=>a.idx-b.idx);const locations=ctx.locations.map((loc)=>({refIdx:loc.refIdx,setData:loc.setData,updateData:loc.updateData,}));const locN=locations.length;const childN=children.length;const childrenLocs=children;const isDynamic=refN>0;const nodeCloneNode=nodeProto$2.cloneNode;const nodeInsertBefore=nodeProto$2.insertBefore;const elementRemove=elementProto.remove;class Block{constructor(data){this.data=data;}
beforeRemove(){}
remove(){elementRemove.call(this.el);}
firstNode(){return this.el;}
moveBeforeDOMNode(node,parent=this.parentEl){this.parentEl=parent;nodeInsertBefore.call(parent,this.el,node);}
moveBeforeVNode(other,afterNode){nodeInsertBefore.call(this.parentEl,this.el,other?other.el:afterNode);}
toString(){const div=document.createElement("div");this.mount(div,null);return div.innerHTML;}
mount(parent,afterNode){const el=nodeCloneNode.call(template,true);nodeInsertBefore.call(parent,el,afterNode);this.el=el;this.parentEl=parent;}
patch(other,withBeforeRemove){}}
if(isDynamic){Block.prototype.mount=function mount(parent,afterNode){const el=nodeCloneNode.call(template,true);const refs=new Array(refN);this.refs=refs;refs[0]=el;for(let i=0;i<colN;i++){const w=collectors[i];refs[w.idx]=w.getVal.call(refs[w.prevIdx]);}
if(locN){const data=this.data;for(let i=0;i<locN;i++){const loc=locations[i];loc.setData.call(refs[loc.refIdx],data[i]);}}
nodeInsertBefore.call(parent,el,afterNode);if(childN){const children=this.children;for(let i=0;i<childN;i++){const child=children[i];if(child){const loc=childrenLocs[i];const afterNode=loc.afterRefIdx?refs[loc.afterRefIdx]:null;child.isOnlyChild=loc.isOnlyChild;child.mount(refs[loc.parentRefIdx],afterNode);}}}
this.el=el;this.parentEl=parent;};Block.prototype.patch=function patch(other,withBeforeRemove){if(this===other){return;}
const refs=this.refs;if(locN){const data1=this.data;const data2=other.data;for(let i=0;i<locN;i++){const val1=data1[i];const val2=data2[i];if(val1!==val2){const loc=locations[i];loc.updateData.call(refs[loc.refIdx],val2,val1);}}
this.data=data2;}
if(childN){let children1=this.children;const children2=other.children;for(let i=0;i<childN;i++){const child1=children1[i];const child2=children2[i];if(child1){if(child2){child1.patch(child2,withBeforeRemove);}
else{if(withBeforeRemove){child1.beforeRemove();}
child1.remove();children1[i]=undefined;}}
else if(child2){const loc=childrenLocs[i];const afterNode=loc.afterRefIdx?refs[loc.afterRefIdx]:null;child2.mount(refs[loc.parentRefIdx],afterNode);children1[i]=child2;}}}};}
return Block;}
function setText(value){characterDataSetData.call(this,toText(value));}
function makeRefSetter(index,refs){return function setRef(fn){refs[refs.length-1][index]=()=>fn(this);};}
const getDescriptor=(o,p)=>Object.getOwnPropertyDescriptor(o,p);const nodeProto$1=Node.prototype;const nodeInsertBefore$1=nodeProto$1.insertBefore;const nodeAppendChild=nodeProto$1.appendChild;const nodeRemoveChild$1=nodeProto$1.removeChild;const nodeSetTextContent=getDescriptor(nodeProto$1,"textContent").set;class VList{constructor(children){this.children=children;}
mount(parent,afterNode){const children=this.children;const _anchor=document.createTextNode("");this.anchor=_anchor;nodeInsertBefore$1.call(parent,_anchor,afterNode);const l=children.length;if(l){const mount=children[0].mount;for(let i=0;i<l;i++){mount.call(children[i],parent,_anchor);}}
this.parentEl=parent;}
moveBeforeDOMNode(node,parent=this.parentEl){this.parentEl=parent;const children=this.children;for(let i=0,l=children.length;i<l;i++){children[i].moveBeforeDOMNode(node,parent);}
parent.insertBefore(this.anchor,node);}
moveBeforeVNode(other,afterNode){if(other){const next=other.children[0];afterNode=(next?next.firstNode():other.anchor)||null;}
const children=this.children;for(let i=0,l=children.length;i<l;i++){children[i].moveBeforeVNode(null,afterNode);}
this.parentEl.insertBefore(this.anchor,afterNode);}
patch(other,withBeforeRemove){if(this===other){return;}
const ch1=this.children;const ch2=other.children;if(ch2.length===0&&ch1.length===0){return;}
this.children=ch2;const proto=ch2[0]||ch1[0];const{mount:cMount,patch:cPatch,remove:cRemove,beforeRemove,moveBeforeVNode:cMoveBefore,firstNode:cFirstNode,}=proto;const _anchor=this.anchor;const isOnlyChild=this.isOnlyChild;const parent=this.parentEl;if(ch2.length===0&&isOnlyChild){if(withBeforeRemove){for(let i=0,l=ch1.length;i<l;i++){beforeRemove.call(ch1[i]);}}
nodeSetTextContent.call(parent,"");nodeAppendChild.call(parent,_anchor);return;}
let startIdx1=0;let startIdx2=0;let startVn1=ch1[0];let startVn2=ch2[0];let endIdx1=ch1.length-1;let endIdx2=ch2.length-1;let endVn1=ch1[endIdx1];let endVn2=ch2[endIdx2];let mapping=undefined;while(startIdx1<=endIdx1&&startIdx2<=endIdx2){if(startVn1===null){startVn1=ch1[++startIdx1];continue;}
if(endVn1===null){endVn1=ch1[--endIdx1];continue;}
let startKey1=startVn1.key;let startKey2=startVn2.key;if(startKey1===startKey2){cPatch.call(startVn1,startVn2,withBeforeRemove);ch2[startIdx2]=startVn1;startVn1=ch1[++startIdx1];startVn2=ch2[++startIdx2];continue;}
let endKey1=endVn1.key;let endKey2=endVn2.key;if(endKey1===endKey2){cPatch.call(endVn1,endVn2,withBeforeRemove);ch2[endIdx2]=endVn1;endVn1=ch1[--endIdx1];endVn2=ch2[--endIdx2];continue;}
if(startKey1===endKey2){cPatch.call(startVn1,endVn2,withBeforeRemove);ch2[endIdx2]=startVn1;const nextChild=ch2[endIdx2+1];cMoveBefore.call(startVn1,nextChild,_anchor);startVn1=ch1[++startIdx1];endVn2=ch2[--endIdx2];continue;}
if(endKey1===startKey2){cPatch.call(endVn1,startVn2,withBeforeRemove);ch2[startIdx2]=endVn1;const nextChild=ch1[startIdx1];cMoveBefore.call(endVn1,nextChild,_anchor);endVn1=ch1[--endIdx1];startVn2=ch2[++startIdx2];continue;}
mapping=mapping||createMapping(ch1,startIdx1,endIdx1);let idxInOld=mapping[startKey2];if(idxInOld===undefined){cMount.call(startVn2,parent,cFirstNode.call(startVn1)||null);}
else{const elmToMove=ch1[idxInOld];cMoveBefore.call(elmToMove,startVn1,null);cPatch.call(elmToMove,startVn2,withBeforeRemove);ch2[startIdx2]=elmToMove;ch1[idxInOld]=null;}
startVn2=ch2[++startIdx2];}
if(startIdx1<=endIdx1||startIdx2<=endIdx2){if(startIdx1>endIdx1){const nextChild=ch2[endIdx2+1];const anchor=nextChild?cFirstNode.call(nextChild)||null:_anchor;for(let i=startIdx2;i<=endIdx2;i++){cMount.call(ch2[i],parent,anchor);}}
else{for(let i=startIdx1;i<=endIdx1;i++){let ch=ch1[i];if(ch){if(withBeforeRemove){beforeRemove.call(ch);}
cRemove.call(ch);}}}}}
beforeRemove(){const children=this.children;const l=children.length;if(l){const beforeRemove=children[0].beforeRemove;for(let i=0;i<l;i++){beforeRemove.call(children[i]);}}}
remove(){const{parentEl,anchor}=this;if(this.isOnlyChild){nodeSetTextContent.call(parentEl,"");}
else{const children=this.children;const l=children.length;if(l){const remove=children[0].remove;for(let i=0;i<l;i++){remove.call(children[i]);}}
nodeRemoveChild$1.call(parentEl,anchor);}}
firstNode(){const child=this.children[0];return child?child.firstNode():undefined;}
toString(){return this.children.map((c)=>c.toString()).join("");}}
function list(children){return new VList(children);}
function createMapping(ch1,startIdx1,endIdx2){let mapping={};for(let i=startIdx1;i<=endIdx2;i++){mapping[ch1[i].key]=i;}
return mapping;}
const nodeProto=Node.prototype;const nodeInsertBefore=nodeProto.insertBefore;const nodeRemoveChild=nodeProto.removeChild;class VHtml{constructor(html){this.content=[];this.html=html;}
mount(parent,afterNode){this.parentEl=parent;const template=document.createElement("template");template.innerHTML=this.html;this.content=[...template.content.childNodes];for(let elem of this.content){nodeInsertBefore.call(parent,elem,afterNode);}
if(!this.content.length){const textNode=document.createTextNode("");this.content.push(textNode);nodeInsertBefore.call(parent,textNode,afterNode);}}
moveBeforeDOMNode(node,parent=this.parentEl){this.parentEl=parent;for(let elem of this.content){nodeInsertBefore.call(parent,elem,node);}}
moveBeforeVNode(other,afterNode){const target=other?other.content[0]:afterNode;this.moveBeforeDOMNode(target);}
patch(other){if(this===other){return;}
const html2=other.html;if(this.html!==html2){const parent=this.parentEl;const afterNode=this.content[0];const template=document.createElement("template");template.innerHTML=html2;const content=[...template.content.childNodes];for(let elem of content){nodeInsertBefore.call(parent,elem,afterNode);}
if(!content.length){const textNode=document.createTextNode("");content.push(textNode);nodeInsertBefore.call(parent,textNode,afterNode);}
this.remove();this.content=content;this.html=other.html;}}
beforeRemove(){}
remove(){const parent=this.parentEl;for(let elem of this.content){nodeRemoveChild.call(parent,elem);}}
firstNode(){return this.content[0];}
toString(){return this.html;}}
function html(str){return new VHtml(str);}
function createCatcher(eventsSpec){const n=Object.keys(eventsSpec).length;class VCatcher{constructor(child,handlers){this.handlerFns=[];this.afterNode=null;this.child=child;this.handlerData=handlers;}
mount(parent,afterNode){this.parentEl=parent;this.child.mount(parent,afterNode);this.afterNode=document.createTextNode("");parent.insertBefore(this.afterNode,afterNode);this.wrapHandlerData();for(let name in eventsSpec){const index=eventsSpec[name];const handler=createEventHandler(name);this.handlerFns[index]=handler;handler.setup.call(parent,this.handlerData[index]);}}
wrapHandlerData(){for(let i=0;i<n;i++){let handler=this.handlerData[i];let idx=handler.length-2;let origFn=handler[idx];const self=this;handler[idx]=function(ev){const target=ev.target;let currentNode=self.child.firstNode();const afterNode=self.afterNode;while(currentNode&&currentNode!==afterNode){if(currentNode.contains(target)){return origFn.call(this,ev);}
currentNode=currentNode.nextSibling;}};}}
moveBeforeDOMNode(node,parent=this.parentEl){this.parentEl=parent;this.child.moveBeforeDOMNode(node,parent);parent.insertBefore(this.afterNode,node);}
moveBeforeVNode(other,afterNode){if(other){afterNode=other.firstNode()||afterNode;}
this.child.moveBeforeVNode(other?other.child:null,afterNode);this.parentEl.insertBefore(this.afterNode,afterNode);}
patch(other,withBeforeRemove){if(this===other){return;}
this.handlerData=other.handlerData;this.wrapHandlerData();for(let i=0;i<n;i++){this.handlerFns[i].update.call(this.parentEl,this.handlerData[i]);}
this.child.patch(other.child,withBeforeRemove);}
beforeRemove(){this.child.beforeRemove();}
remove(){for(let i=0;i<n;i++){this.handlerFns[i].remove.call(this.parentEl);}
this.child.remove();this.afterNode.remove();}
firstNode(){return this.child.firstNode();}
toString(){return this.child.toString();}}
return function(child,handlers){return new VCatcher(child,handlers);};}
function mount$1(vnode,fixture,afterNode=null){vnode.mount(fixture,afterNode);}
function patch(vnode1,vnode2,withBeforeRemove=false){vnode1.patch(vnode2,withBeforeRemove);}
function remove(vnode,withBeforeRemove=false){if(withBeforeRemove){vnode.beforeRemove();}
vnode.remove();}
const fibersInError=new WeakMap();const nodeErrorHandlers=new WeakMap();function _handleError(node,error){if(!node){return false;}
const fiber=node.fiber;if(fiber){fibersInError.set(fiber,error);}
const errorHandlers=nodeErrorHandlers.get(node);if(errorHandlers){let handled=false;for(let i=errorHandlers.length-1;i>=0;i--){try{errorHandlers[i](error);handled=true;break;}
catch(e){error=e;}}
if(handled){return true;}}
return _handleError(node.parent,error);}
function handleError(params){let{error}=params;if(!(error instanceof OwlError)){error=Object.assign(new OwlError(`An error occured in the owl lifecycle (see this Error's "cause" property)`),{cause:error});}
const node="node"in params?params.node:params.fiber.node;const fiber="fiber"in params?params.fiber:node.fiber;if(fiber){let current=fiber;do{current.node.fiber=current;current=current.parent;}while(current);fibersInError.set(fiber.root,error);}
const handled=_handleError(node,error);if(!handled){console.warn(`[Owl] Unhandled error. Destroying the root component`);try{node.app.destroy();}
catch(e){console.error(e);}
throw error;}}
function makeChildFiber(node,parent){let current=node.fiber;if(current){cancelFibers(current.children);current.root=null;}
return new Fiber(node,parent);}
function makeRootFiber(node){let current=node.fiber;if(current){let root=current.root;root.locked=true;root.setCounter(root.counter+1-cancelFibers(current.children));root.locked=false;current.children=[];current.childrenMap={};current.bdom=null;if(fibersInError.has(current)){fibersInError.delete(current);fibersInError.delete(root);current.appliedToDom=false;if(current instanceof RootFiber){current.mounted=current instanceof MountFiber?[current]:[];}}
return current;}
const fiber=new RootFiber(node,null);if(node.willPatch.length){fiber.willPatch.push(fiber);}
if(node.patched.length){fiber.patched.push(fiber);}
return fiber;}
function throwOnRender(){throw new OwlError("Attempted to render cancelled fiber");}
function cancelFibers(fibers){let result=0;for(let fiber of fibers){let node=fiber.node;fiber.render=throwOnRender;if(node.status===0){node.cancel();}
node.fiber=null;if(fiber.bdom){node.forceNextRender=true;}
else{result++;}
result+=cancelFibers(fiber.children);}
return result;}
class Fiber{constructor(node,parent){this.bdom=null;this.children=[];this.appliedToDom=false;this.deep=false;this.childrenMap={};this.node=node;this.parent=parent;if(parent){this.deep=parent.deep;const root=parent.root;root.setCounter(root.counter+1);this.root=root;parent.children.push(this);}
else{this.root=this;}}
render(){let prev=this.root.node;let scheduler=prev.app.scheduler;let current=prev.parent;while(current){if(current.fiber){let root=current.fiber.root;if(root.counter===0&&prev.parentKey in current.fiber.childrenMap){current=root.node;}
else{scheduler.delayedRenders.push(this);return;}}
prev=current;current=current.parent;}
this._render();}
_render(){const node=this.node;const root=this.root;if(root){try{this.bdom=true;this.bdom=node.renderFn();}
catch(e){node.app.handleError({node,error:e});}
root.setCounter(root.counter-1);}}}
class RootFiber extends Fiber{constructor(){super(...arguments);this.counter=1;this.willPatch=[];this.patched=[];this.mounted=[];this.locked=false;}
complete(){const node=this.node;this.locked=true;let current=undefined;let mountedFibers=this.mounted;try{for(current of this.willPatch){let node=current.node;if(node.fiber===current){const component=node.component;for(let cb of node.willPatch){cb.call(component);}}}
current=undefined;node._patch();this.locked=false;while((current=mountedFibers.pop())){current=current;if(current.appliedToDom){for(let cb of current.node.mounted){cb();}}}
let patchedFibers=this.patched;while((current=patchedFibers.pop())){current=current;if(current.appliedToDom){for(let cb of current.node.patched){cb();}}}}
catch(e){for(let fiber of mountedFibers){fiber.node.willUnmount=[];}
this.locked=false;node.app.handleError({fiber:current||this,error:e});}}
setCounter(newValue){this.counter=newValue;if(newValue===0){this.node.app.scheduler.flush();}}}
class MountFiber extends RootFiber{constructor(node,target,options={}){super(node,null);this.target=target;this.position=options.position||"last-child";}
complete(){let current=this;try{const node=this.node;node.children=this.childrenMap;node.app.constructor.validateTarget(this.target);if(node.bdom){node.updateDom();}
else{node.bdom=this.bdom;if(this.position==="last-child"||this.target.childNodes.length===0){mount$1(node.bdom,this.target);}
else{const firstChild=this.target.childNodes[0];mount$1(node.bdom,this.target,firstChild);}}
node.fiber=null;node.status=1;this.appliedToDom=true;let mountedFibers=this.mounted;while((current=mountedFibers.pop())){if(current.appliedToDom){for(let cb of current.node.mounted){cb();}}}}
catch(e){this.node.app.handleError({fiber:current,error:e});}}}
const KEYCHANGES=Symbol("Key changes");const NO_CALLBACK=()=>{throw new Error("Called NO_CALLBACK. Owl is broken, please report this to the maintainers.");};const objectToString=Object.prototype.toString;const objectHasOwnProperty=Object.prototype.hasOwnProperty;const SUPPORTED_RAW_TYPES=["Object","Array","Set","Map","WeakMap"];const COLLECTION_RAW_TYPES=["Set","Map","WeakMap"];function rawType(obj){return objectToString.call(toRaw(obj)).slice(8,-1);}
function canBeMadeReactive(value){if(typeof value!=="object"){return false;}
return SUPPORTED_RAW_TYPES.includes(rawType(value));}
function possiblyReactive(val,cb){return canBeMadeReactive(val)?reactive(val,cb):val;}
const skipped=new WeakSet();function markRaw(value){skipped.add(value);return value;}
function toRaw(value){return targets.has(value)?targets.get(value):value;}
const targetToKeysToCallbacks=new WeakMap();function observeTargetKey(target,key,callback){if(callback===NO_CALLBACK){return;}
if(!targetToKeysToCallbacks.get(target)){targetToKeysToCallbacks.set(target,new Map());}
const keyToCallbacks=targetToKeysToCallbacks.get(target);if(!keyToCallbacks.get(key)){keyToCallbacks.set(key,new Set());}
keyToCallbacks.get(key).add(callback);if(!callbacksToTargets.has(callback)){callbacksToTargets.set(callback,new Set());}
callbacksToTargets.get(callback).add(target);}
function notifyReactives(target,key){const keyToCallbacks=targetToKeysToCallbacks.get(target);if(!keyToCallbacks){return;}
const callbacks=keyToCallbacks.get(key);if(!callbacks){return;}
for(const callback of[...callbacks]){clearReactivesForCallback(callback);callback();}}
const callbacksToTargets=new WeakMap();function clearReactivesForCallback(callback){const targetsToClear=callbacksToTargets.get(callback);if(!targetsToClear){return;}
for(const target of targetsToClear){const observedKeys=targetToKeysToCallbacks.get(target);if(!observedKeys){continue;}
for(const[key,callbacks]of observedKeys.entries()){callbacks.delete(callback);if(!callbacks.size){observedKeys.delete(key);}}}
targetsToClear.clear();}
function getSubscriptions(callback){const targets=callbacksToTargets.get(callback)||[];return[...targets].map((target)=>{const keysToCallbacks=targetToKeysToCallbacks.get(target);let keys=[];if(keysToCallbacks){for(const[key,cbs]of keysToCallbacks){if(cbs.has(callback)){keys.push(key);}}}
return{target,keys};});}
const targets=new WeakMap();const reactiveCache=new WeakMap();function reactive(target,callback=NO_CALLBACK){if(!canBeMadeReactive(target)){throw new OwlError(`Cannot make the given value reactive`);}
if(skipped.has(target)){return target;}
if(targets.has(target)){return reactive(targets.get(target),callback);}
if(!reactiveCache.has(target)){reactiveCache.set(target,new WeakMap());}
const reactivesForTarget=reactiveCache.get(target);if(!reactivesForTarget.has(callback)){const targetRawType=rawType(target);const handler=COLLECTION_RAW_TYPES.includes(targetRawType)?collectionsProxyHandler(target,callback,targetRawType):basicProxyHandler(callback);const proxy=new Proxy(target,handler);reactivesForTarget.set(callback,proxy);targets.set(proxy,target);}
return reactivesForTarget.get(callback);}
function basicProxyHandler(callback){return{get(target,key,receiver){const desc=Object.getOwnPropertyDescriptor(target,key);if(desc&&!desc.writable&&!desc.configurable){return Reflect.get(target,key,receiver);}
observeTargetKey(target,key,callback);return possiblyReactive(Reflect.get(target,key,receiver),callback);},set(target,key,value,receiver){const hadKey=objectHasOwnProperty.call(target,key);const originalValue=Reflect.get(target,key,receiver);const ret=Reflect.set(target,key,toRaw(value),receiver);if(!hadKey&&objectHasOwnProperty.call(target,key)){notifyReactives(target,KEYCHANGES);}
if(originalValue!==Reflect.get(target,key,receiver)||(key==="length"&&Array.isArray(target))){notifyReactives(target,key);}
return ret;},deleteProperty(target,key){const ret=Reflect.deleteProperty(target,key);notifyReactives(target,KEYCHANGES);notifyReactives(target,key);return ret;},ownKeys(target){observeTargetKey(target,KEYCHANGES,callback);return Reflect.ownKeys(target);},has(target,key){observeTargetKey(target,KEYCHANGES,callback);return Reflect.has(target,key);},};}
function makeKeyObserver(methodName,target,callback){return(key)=>{key=toRaw(key);observeTargetKey(target,key,callback);return possiblyReactive(target[methodName](key),callback);};}
function makeIteratorObserver(methodName,target,callback){return function*(){observeTargetKey(target,KEYCHANGES,callback);const keys=target.keys();for(const item of target[methodName]()){const key=keys.next().value;observeTargetKey(target,key,callback);yield possiblyReactive(item,callback);}};}
function makeForEachObserver(target,callback){return function forEach(forEachCb,thisArg){observeTargetKey(target,KEYCHANGES,callback);target.forEach(function(val,key,targetObj){observeTargetKey(target,key,callback);forEachCb.call(thisArg,possiblyReactive(val,callback),possiblyReactive(key,callback),possiblyReactive(targetObj,callback));},thisArg);};}
function delegateAndNotify(setterName,getterName,target){return(key,value)=>{key=toRaw(key);const hadKey=target.has(key);const originalValue=target[getterName](key);const ret=target[setterName](key,value);const hasKey=target.has(key);if(hadKey!==hasKey){notifyReactives(target,KEYCHANGES);}
if(originalValue!==target[getterName](key)){notifyReactives(target,key);}
return ret;};}
function makeClearNotifier(target){return()=>{const allKeys=[...target.keys()];target.clear();notifyReactives(target,KEYCHANGES);for(const key of allKeys){notifyReactives(target,key);}};}
const rawTypeToFuncHandlers={Set:(target,callback)=>({has:makeKeyObserver("has",target,callback),add:delegateAndNotify("add","has",target),delete:delegateAndNotify("delete","has",target),keys:makeIteratorObserver("keys",target,callback),values:makeIteratorObserver("values",target,callback),entries:makeIteratorObserver("entries",target,callback),[Symbol.iterator]:makeIteratorObserver(Symbol.iterator,target,callback),forEach:makeForEachObserver(target,callback),clear:makeClearNotifier(target),get size(){observeTargetKey(target,KEYCHANGES,callback);return target.size;},}),Map:(target,callback)=>({has:makeKeyObserver("has",target,callback),get:makeKeyObserver("get",target,callback),set:delegateAndNotify("set","get",target),delete:delegateAndNotify("delete","has",target),keys:makeIteratorObserver("keys",target,callback),values:makeIteratorObserver("values",target,callback),entries:makeIteratorObserver("entries",target,callback),[Symbol.iterator]:makeIteratorObserver(Symbol.iterator,target,callback),forEach:makeForEachObserver(target,callback),clear:makeClearNotifier(target),get size(){observeTargetKey(target,KEYCHANGES,callback);return target.size;},}),WeakMap:(target,callback)=>({has:makeKeyObserver("has",target,callback),get:makeKeyObserver("get",target,callback),set:delegateAndNotify("set","get",target),delete:delegateAndNotify("delete","has",target),}),};function collectionsProxyHandler(target,callback,targetRawType){const specialHandlers=rawTypeToFuncHandlers[targetRawType](target,callback);return Object.assign(basicProxyHandler(callback),{get(target,key){if(objectHasOwnProperty.call(specialHandlers,key)){return specialHandlers[key];}
observeTargetKey(target,key,callback);return possiblyReactive(target[key],callback);},});}
let currentNode=null;function saveCurrent(){let n=currentNode;return()=>{currentNode=n;};}
function getCurrent(){if(!currentNode){throw new OwlError("No active component (a hook function should only be called in 'setup')");}
return currentNode;}
function useComponent(){return currentNode.component;}
function applyDefaultProps(props,defaultProps){for(let propName in defaultProps){if(props[propName]===undefined){props[propName]=defaultProps[propName];}}}
const batchedRenderFunctions=new WeakMap();function useState(state){const node=getCurrent();let render=batchedRenderFunctions.get(node);if(!render){render=batched(node.render.bind(node,false));batchedRenderFunctions.set(node,render);node.willDestroy.push(clearReactivesForCallback.bind(null,render));}
return reactive(state,render);}
class ComponentNode{constructor(C,props,app,parent,parentKey){this.fiber=null;this.bdom=null;this.status=0;this.forceNextRender=false;this.nextProps=null;this.children=Object.create(null);this.refs={};this.willStart=[];this.willUpdateProps=[];this.willUnmount=[];this.mounted=[];this.willPatch=[];this.patched=[];this.willDestroy=[];currentNode=this;this.app=app;this.parent=parent;this.props=props;this.parentKey=parentKey;const defaultProps=C.defaultProps;props=Object.assign({},props);if(defaultProps){applyDefaultProps(props,defaultProps);}
const env=(parent&&parent.childEnv)||app.env;this.childEnv=env;for(const key in props){const prop=props[key];if(prop&&typeof prop==="object"&&targets.has(prop)){props[key]=useState(prop);}}
this.component=new C(props,env,this);const ctx=Object.assign(Object.create(this.component),{this:this.component});this.renderFn=app.getTemplate(C.template).bind(this.component,ctx,this);this.component.setup();currentNode=null;}
mountComponent(target,options){const fiber=new MountFiber(this,target,options);this.app.scheduler.addFiber(fiber);this.initiateRender(fiber);}
async initiateRender(fiber){this.fiber=fiber;if(this.mounted.length){fiber.root.mounted.push(fiber);}
const component=this.component;try{await Promise.all(this.willStart.map((f)=>f.call(component)));}
catch(e){this.app.handleError({node:this,error:e});return;}
if(this.status===0&&this.fiber===fiber){fiber.render();}}
async render(deep){if(this.status>=2){return;}
let current=this.fiber;if(current&&(current.root.locked||current.bdom===true)){await Promise.resolve();current=this.fiber;}
if(current){if(!current.bdom&&!fibersInError.has(current)){if(deep){current.deep=deep;}
return;}
deep=deep||current.deep;}
else if(!this.bdom){return;}
const fiber=makeRootFiber(this);fiber.deep=deep;this.fiber=fiber;this.app.scheduler.addFiber(fiber);await Promise.resolve();if(this.status>=2){return;}
if(this.fiber===fiber&&(current||!fiber.parent)){fiber.render();}}
cancel(){this._cancel();delete this.parent.children[this.parentKey];this.app.scheduler.scheduleDestroy(this);}
_cancel(){this.status=2;const children=this.children;for(let childKey in children){children[childKey]._cancel();}}
destroy(){let shouldRemove=this.status===1;this._destroy();if(shouldRemove){this.bdom.remove();}}
_destroy(){const component=this.component;if(this.status===1){for(let cb of this.willUnmount){cb.call(component);}}
for(let child of Object.values(this.children)){child._destroy();}
if(this.willDestroy.length){try{for(let cb of this.willDestroy){cb.call(component);}}
catch(e){this.app.handleError({error:e,node:this});}}
this.status=3;}
async updateAndRender(props,parentFiber){this.nextProps=props;props=Object.assign({},props);const fiber=makeChildFiber(this,parentFiber);this.fiber=fiber;const component=this.component;const defaultProps=component.constructor.defaultProps;if(defaultProps){applyDefaultProps(props,defaultProps);}
currentNode=this;for(const key in props){const prop=props[key];if(prop&&typeof prop==="object"&&targets.has(prop)){props[key]=useState(prop);}}
currentNode=null;const prom=Promise.all(this.willUpdateProps.map((f)=>f.call(component,props)));await prom;if(fiber!==this.fiber){return;}
component.props=props;fiber.render();const parentRoot=parentFiber.root;if(this.willPatch.length){parentRoot.willPatch.push(fiber);}
if(this.patched.length){parentRoot.patched.push(fiber);}}
updateDom(){if(!this.fiber){return;}
if(this.bdom===this.fiber.bdom){for(let k in this.children){const child=this.children[k];child.updateDom();}}
else{this.bdom.patch(this.fiber.bdom,false);this.fiber.appliedToDom=true;this.fiber=null;}}
setRef(name,el){if(el){this.refs[name]=el;}}
firstNode(){const bdom=this.bdom;return bdom?bdom.firstNode():undefined;}
mount(parent,anchor){const bdom=this.fiber.bdom;this.bdom=bdom;bdom.mount(parent,anchor);this.status=1;this.fiber.appliedToDom=true;this.children=this.fiber.childrenMap;this.fiber=null;}
moveBeforeDOMNode(node,parent){this.bdom.moveBeforeDOMNode(node,parent);}
moveBeforeVNode(other,afterNode){this.bdom.moveBeforeVNode(other?other.bdom:null,afterNode);}
patch(){if(this.fiber&&this.fiber.parent){this._patch();this.props=this.nextProps;}}
_patch(){let hasChildren=false;for(let _k in this.children){hasChildren=true;break;}
const fiber=this.fiber;this.children=fiber.childrenMap;this.bdom.patch(fiber.bdom,hasChildren);fiber.appliedToDom=true;this.fiber=null;}
beforeRemove(){this._destroy();}
remove(){this.bdom.remove();}
get name(){return this.component.constructor.name;}
get subscriptions(){const render=batchedRenderFunctions.get(this);return render?getSubscriptions(render):[];}}
const TIMEOUT=Symbol("timeout");const HOOK_TIMEOUT={onWillStart:3000,onWillUpdateProps:3000,};function wrapError(fn,hookName){const error=new OwlError();const timeoutError=new OwlError();const node=getCurrent();return(...args)=>{const onError=(cause)=>{error.cause=cause;error.message=cause instanceof Error?`The following error occurred in ${hookName}: "${cause.message}"`:`Something that is not an Error was thrown in ${hookName} (see this Error's "cause" property)`;throw error;};let result;try{result=fn(...args);}
catch(cause){onError(cause);}
if(!(result instanceof Promise)){return result;}
const timeout=HOOK_TIMEOUT[hookName];if(timeout){const fiber=node.fiber;Promise.race([result.catch(()=>{}),new Promise((resolve)=>setTimeout(()=>resolve(TIMEOUT),timeout)),]).then((res)=>{if(res===TIMEOUT&&node.fiber===fiber&&node.status<=2){timeoutError.message=`${hookName}'s promise hasn't resolved after ${timeout / 1000} seconds`;console.log(timeoutError);}});}
return result.catch(onError);};}
function onWillStart(fn){const node=getCurrent();const decorate=node.app.dev?wrapError:(fn)=>fn;node.willStart.push(decorate(fn.bind(node.component),"onWillStart"));}
function onWillUpdateProps(fn){const node=getCurrent();const decorate=node.app.dev?wrapError:(fn)=>fn;node.willUpdateProps.push(decorate(fn.bind(node.component),"onWillUpdateProps"));}
function onMounted(fn){const node=getCurrent();const decorate=node.app.dev?wrapError:(fn)=>fn;node.mounted.push(decorate(fn.bind(node.component),"onMounted"));}
function onWillPatch(fn){const node=getCurrent();const decorate=node.app.dev?wrapError:(fn)=>fn;node.willPatch.unshift(decorate(fn.bind(node.component),"onWillPatch"));}
function onPatched(fn){const node=getCurrent();const decorate=node.app.dev?wrapError:(fn)=>fn;node.patched.push(decorate(fn.bind(node.component),"onPatched"));}
function onWillUnmount(fn){const node=getCurrent();const decorate=node.app.dev?wrapError:(fn)=>fn;node.willUnmount.unshift(decorate(fn.bind(node.component),"onWillUnmount"));}
function onWillDestroy(fn){const node=getCurrent();const decorate=node.app.dev?wrapError:(fn)=>fn;node.willDestroy.push(decorate(fn.bind(node.component),"onWillDestroy"));}
function onWillRender(fn){const node=getCurrent();const renderFn=node.renderFn;const decorate=node.app.dev?wrapError:(fn)=>fn;fn=decorate(fn.bind(node.component),"onWillRender");node.renderFn=()=>{fn();return renderFn();};}
function onRendered(fn){const node=getCurrent();const renderFn=node.renderFn;const decorate=node.app.dev?wrapError:(fn)=>fn;fn=decorate(fn.bind(node.component),"onRendered");node.renderFn=()=>{const result=renderFn();fn();return result;};}
function onError(callback){const node=getCurrent();let handlers=nodeErrorHandlers.get(node);if(!handlers){handlers=[];nodeErrorHandlers.set(node,handlers);}
handlers.push(callback.bind(node.component));}
class Component{constructor(props,env,node){this.props=props;this.env=env;this.__owl__=node;}
setup(){}
render(deep=false){this.__owl__.render(deep===true);}}
Component.template="";const VText=text("").constructor;class VPortal extends VText{constructor(selector,content){super("");this.target=null;this.selector=selector;this.content=content;}
mount(parent,anchor){super.mount(parent,anchor);this.target=document.querySelector(this.selector);if(this.target){this.content.mount(this.target,null);}
else{this.content.mount(parent,anchor);}}
beforeRemove(){this.content.beforeRemove();}
remove(){if(this.content){super.remove();this.content.remove();this.content=null;}}
patch(other){super.patch(other);if(this.content){this.content.patch(other.content,true);}
else{this.content=other.content;this.content.mount(this.target,null);}}}
function portalTemplate(app,bdom,helpers){let{callSlot}=helpers;return function template(ctx,node,key=""){return new VPortal(ctx.props.target,callSlot(ctx,node,key,"default",false,null));};}
class Portal extends Component{setup(){const node=this.__owl__;onMounted(()=>{const portal=node.bdom;if(!portal.target){const target=document.querySelector(this.props.target);if(target){portal.content.moveBeforeDOMNode(target.firstChild,target);}
else{throw new OwlError("invalid portal target");}}});onWillUnmount(()=>{const portal=node.bdom;portal.remove();});}}
Portal.template="__portal__";Portal.props={target:{type:String,},slots:true,};const isUnionType=(t)=>Array.isArray(t);const isBaseType=(t)=>typeof t!=="object";const isValueType=(t)=>typeof t==="object"&&t&&"value"in t;function isOptional(t){return typeof t==="object"&&"optional"in t?t.optional||false:false;}
function describeType(type){return type==="*"||type===true?"value":type.name.toLowerCase();}
function describe(info){if(isBaseType(info)){return describeType(info);}
else if(isUnionType(info)){return info.map(describe).join(" or ");}
else if(isValueType(info)){return String(info.value);}
if("element"in info){return`list of ${describe({ type: info.element, optional: false })}s`;}
if("shape"in info){return`object`;}
return describe(info.type||"*");}
function toSchema(spec){return Object.fromEntries(spec.map((e)=>e.endsWith("?")?[e.slice(0,-1),{optional:true}]:[e,{type:"*",optional:false}]));}
function validate(obj,spec){let errors=validateSchema(obj,spec);if(errors.length){throw new OwlError("Invalid object: "+errors.join(", "));}}
function validateSchema(obj,schema){if(Array.isArray(schema)){schema=toSchema(schema);}
obj=toRaw(obj);let errors=[];for(let key in obj){if(key in schema){let result=validateType(key,obj[key],schema[key]);if(result){errors.push(result);}}
else if(!("*"in schema)){errors.push(`unknown key '${key}'`);}}
for(let key in schema){const spec=schema[key];if(key!=="*"&&!isOptional(spec)&&!(key in obj)){const isObj=typeof spec==="object"&&!Array.isArray(spec);const isAny=spec==="*"||(isObj&&"type"in spec?spec.type==="*":isObj);let detail=isAny?"":` (should be a ${describe(spec)})`;errors.push(`'${key}' is missing${detail}`);}}
return errors;}
function validateBaseType(key,value,type){if(typeof type==="function"){if(typeof value==="object"){if(!(value instanceof type)){return`'${key}' is not a ${describeType(type)}`;}}
else if(typeof value!==type.name.toLowerCase()){return`'${key}' is not a ${describeType(type)}`;}}
return null;}
function validateArrayType(key,value,descr){if(!Array.isArray(value)){return`'${key}' is not a list of ${describe(descr)}s`;}
for(let i=0;i<value.length;i++){const error=validateType(`${key}[${i}]`,value[i],descr);if(error){return error;}}
return null;}
function validateType(key,value,descr){if(value===undefined){return isOptional(descr)?null:`'${key}' is undefined (should be a ${describe(descr)})`;}
else if(isBaseType(descr)){return validateBaseType(key,value,descr);}
else if(isValueType(descr)){return value===descr.value?null:`'${key}' is not equal to '${descr.value}'`;}
else if(isUnionType(descr)){let validDescr=descr.find((p)=>!validateType(key,value,p));return validDescr?null:`'${key}' is not a ${describe(descr)}`;}
let result=null;if("element"in descr){result=validateArrayType(key,value,descr.element);}
else if("shape"in descr){if(typeof value!=="object"||Array.isArray(value)){result=`'${key}' is not an object`;}
else{const errors=validateSchema(value,descr.shape);if(errors.length){result=`'${key}' doesn't have the correct shape (${errors.join(", ")})`;}}}
else if("values"in descr){if(typeof value!=="object"||Array.isArray(value)){result=`'${key}' is not an object`;}
else{const errors=Object.entries(value).map(([key,value])=>validateType(key,value,descr.values)).filter(Boolean);if(errors.length){result=`some of the values in '${key}' are invalid (${errors.join(", ")})`;}}}
if("type"in descr&&!result){result=validateType(key,value,descr.type);}
if("validate"in descr&&!result){result=!descr.validate(value)?`'${key}' is not valid`:null;}
return result;}
const ObjectCreate=Object.create;function withDefault(value,defaultValue){return value===undefined||value===null||value===false?defaultValue:value;}
function callSlot(ctx,parent,key,name,dynamic,extra,defaultContent){key=key+"__slot_"+name;const slots=ctx.props.slots||{};const{__render,__ctx,__scope}=slots[name]||{};const slotScope=ObjectCreate(__ctx||{});if(__scope){slotScope[__scope]=extra;}
const slotBDom=__render?__render(slotScope,parent,key):null;if(defaultContent){let child1=undefined;let child2=undefined;if(slotBDom){child1=dynamic?toggler(name,slotBDom):slotBDom;}
else{child2=defaultContent(ctx,parent,key);}
return multi([child1,child2]);}
return slotBDom||text("");}
function capture(ctx){const result=ObjectCreate(ctx);for(let k in ctx){result[k]=ctx[k];}
return result;}
function withKey(elem,k){elem.key=k;return elem;}
function prepareList(collection){let keys;let values;if(Array.isArray(collection)){keys=collection;values=collection;}
else if(collection instanceof Map){keys=[...collection.keys()];values=[...collection.values()];}
else if(Symbol.iterator in Object(collection)){keys=[...collection];values=keys;}
else if(collection&&typeof collection==="object"){values=Object.values(collection);keys=Object.keys(collection);}
else{throw new OwlError(`Invalid loop expression: "${collection}" is not iterable`);}
const n=values.length;return[keys,values,n,new Array(n)];}
const isBoundary=Symbol("isBoundary");function setContextValue(ctx,key,value){const ctx0=ctx;while(!ctx.hasOwnProperty(key)&&!ctx.hasOwnProperty(isBoundary)){const newCtx=ctx.__proto__;if(!newCtx){ctx=ctx0;break;}
ctx=newCtx;}
ctx[key]=value;}
function toNumber(val){const n=parseFloat(val);return isNaN(n)?val:n;}
function shallowEqual(l1,l2){for(let i=0,l=l1.length;i<l;i++){if(l1[i]!==l2[i]){return false;}}
return true;}
class LazyValue{constructor(fn,ctx,component,node,key){this.fn=fn;this.ctx=capture(ctx);this.component=component;this.node=node;this.key=key;}
evaluate(){return this.fn.call(this.component,this.ctx,this.node,this.key);}
toString(){return this.evaluate().toString();}}
function safeOutput(value,defaultValue){if(value===undefined||value===null){return defaultValue?toggler("default",defaultValue):toggler("undefined",text(""));}
let safeKey;let block;switch(typeof value){case"object":if(value instanceof Markup){safeKey=`string_safe`;block=html(value);}
else if(value instanceof LazyValue){safeKey=`lazy_value`;block=value.evaluate();}
else if(value instanceof String){safeKey="string_unsafe";block=text(value);}
else{safeKey="block_safe";block=value;}
break;case"string":safeKey="string_unsafe";block=text(value);break;default:safeKey="string_unsafe";block=text(String(value));}
return toggler(safeKey,block);}
function validateProps(name,props,comp){const ComponentClass=typeof name!=="string"?name:comp.constructor.components[name];if(!ComponentClass){return;}
const schema=ComponentClass.props;if(!schema){if(comp.__owl__.app.warnIfNoStaticProps){console.warn(`Component '${ComponentClass.name}' does not have a static props description`);}
return;}
const defaultProps=ComponentClass.defaultProps;if(defaultProps){let isMandatory=(name)=>Array.isArray(schema)?schema.includes(name):name in schema&&!("*"in schema)&&!isOptional(schema[name]);for(let p in defaultProps){if(isMandatory(p)){throw new OwlError(`A default value cannot be defined for a mandatory prop (name: '${p}', component: ${ComponentClass.name})`);}}}
const errors=validateSchema(props,schema);if(errors.length){throw new OwlError(`Invalid props for component '${ComponentClass.name}': `+errors.join(", "));}}
function makeRefWrapper(node){let refNames=new Set();return(name,fn)=>{if(refNames.has(name)){throw new OwlError(`Cannot set the same ref more than once in the same component, ref "${name}" was set multiple times in ${node.name}`);}
refNames.add(name);return fn;};}
const helpers={withDefault,zero:Symbol("zero"),isBoundary,callSlot,capture,withKey,prepareList,setContextValue,shallowEqual,toNumber,validateProps,LazyValue,safeOutput,createCatcher,markRaw,OwlError,makeRefWrapper,};function parseXML(xml){const parser=new DOMParser();const doc=parser.parseFromString(xml,"text/xml");if(doc.getElementsByTagName("parsererror").length){let msg="Invalid XML in template.";const parsererrorText=doc.getElementsByTagName("parsererror")[0].textContent;if(parsererrorText){msg+="\nThe parser has produced the following error message:\n"+parsererrorText;const re=/\d+/g;const firstMatch=re.exec(parsererrorText);if(firstMatch){const lineNumber=Number(firstMatch[0]);const line=xml.split("\n")[lineNumber-1];const secondMatch=re.exec(parsererrorText);if(line&&secondMatch){const columnIndex=Number(secondMatch[0])-1;if(line[columnIndex]){msg+=`\nThe error might be located at xml line ${lineNumber} column ${columnIndex}\n`+`${line}\n${"-".repeat(columnIndex - 1)}^`;}}}}
throw new OwlError(msg);}
return doc;}
const bdom={text,createBlock,list,multi,html,toggler,comment};class TemplateSet{constructor(config={}){this.rawTemplates=Object.create(globalTemplates);this.templates={};this.Portal=Portal;this.dev=config.dev||false;this.translateFn=config.translateFn;this.translatableAttributes=config.translatableAttributes;if(config.templates){if(config.templates instanceof Document||typeof config.templates==="string"){this.addTemplates(config.templates);}
else{for(const name in config.templates){this.addTemplate(name,config.templates[name]);}}}
this.getRawTemplate=config.getTemplate;this.customDirectives=config.customDirectives||{};this.runtimeUtils={...helpers,__globals__:config.globalValues||{}};this.hasGlobalValues=Boolean(config.globalValues&&Object.keys(config.globalValues).length);}
static registerTemplate(name,fn){globalTemplates[name]=fn;}
addTemplate(name,template){if(name in this.rawTemplates){if(!this.dev){return;}
const rawTemplate=this.rawTemplates[name];const currentAsString=typeof rawTemplate==="string"?rawTemplate:rawTemplate instanceof Element?rawTemplate.outerHTML:rawTemplate.toString();const newAsString=typeof template==="string"?template:template.outerHTML;if(currentAsString===newAsString){return;}
throw new OwlError(`Template ${name} already defined with different content`);}
this.rawTemplates[name]=template;}
addTemplates(xml){if(!xml){return;}
xml=xml instanceof Document?xml:parseXML(xml);for(const template of xml.querySelectorAll("[t-name]")){const name=template.getAttribute("t-name");this.addTemplate(name,template);}}
getTemplate(name){var _a;if(!(name in this.templates)){const rawTemplate=((_a=this.getRawTemplate)===null||_a===void 0?void 0:_a.call(this,name))||this.rawTemplates[name];if(rawTemplate===undefined){let extraInfo="";try{const componentName=getCurrent().component.constructor.name;extraInfo=` (for component "${componentName}")`;}
catch{}
throw new OwlError(`Missing template: "${name}"${extraInfo}`);}
const isFn=typeof rawTemplate==="function"&&!(rawTemplate instanceof Element);const templateFn=isFn?rawTemplate:this._compileTemplate(name,rawTemplate);const templates=this.templates;this.templates[name]=function(context,parent){return templates[name].call(this,context,parent);};const template=templateFn(this,bdom,this.runtimeUtils);this.templates[name]=template;}
return this.templates[name];}
_compileTemplate(name,template){throw new OwlError(`Unable to compile a template. Please use owl full build instead`);}
callTemplate(owner,subTemplate,ctx,parent,key){const template=this.getTemplate(subTemplate);return toggler(subTemplate,template.call(owner,ctx,parent,key+subTemplate));}}
const globalTemplates={};function xml(...args){const name=`__template__${xml.nextId++}`;const value=String.raw(...args);globalTemplates[name]=value;return name;}
xml.nextId=1;TemplateSet.registerTemplate("__portal__",portalTemplate);const RESERVED_WORDS="true,false,NaN,null,undefined,debugger,console,window,in,instanceof,new,function,return,eval,void,Math,RegExp,Array,Object,Date,__globals__".split(",");const WORD_REPLACEMENT=Object.assign(Object.create(null),{and:"&&",or:"||",gt:">",gte:">=",lt:"<",lte:"<=",});const STATIC_TOKEN_MAP=Object.assign(Object.create(null),{"{":"LEFT_BRACE","}":"RIGHT_BRACE","[":"LEFT_BRACKET","]":"RIGHT_BRACKET",":":"COLON",",":"COMMA","(":"LEFT_PAREN",")":"RIGHT_PAREN",});const OPERATORS="...,.,===,==,+,!==,!=,!,||,&&,>=,>,<=,<,?,-,*,/,%,typeof ,=>,=,;,in ,new ,|,&,^,~".split(",");let tokenizeString=function(expr){let s=expr[0];let start=s;if(s!=="'"&&s!=='"'&&s!=="`"){return false;}
let i=1;let cur;while(expr[i]&&expr[i]!==start){cur=expr[i];s+=cur;if(cur==="\\"){i++;cur=expr[i];if(!cur){throw new OwlError("Invalid expression");}
s+=cur;}
i++;}
if(expr[i]!==start){throw new OwlError("Invalid expression");}
s+=start;if(start==="`"){return{type:"TEMPLATE_STRING",value:s,replace(replacer){return s.replace(/\$\{(.*?)\}/g,(match,group)=>{return"${"+replacer(group)+"}";});},};}
return{type:"VALUE",value:s};};let tokenizeNumber=function(expr){let s=expr[0];if(s&&s.match(/[0-9]/)){let i=1;while(expr[i]&&expr[i].match(/[0-9]|\./)){s+=expr[i];i++;}
return{type:"VALUE",value:s};}
else{return false;}};let tokenizeSymbol=function(expr){let s=expr[0];if(s&&s.match(/[a-zA-Z_\$]/)){let i=1;while(expr[i]&&expr[i].match(/\w/)){s+=expr[i];i++;}
if(s in WORD_REPLACEMENT){return{type:"OPERATOR",value:WORD_REPLACEMENT[s],size:s.length};}
return{type:"SYMBOL",value:s};}
else{return false;}};const tokenizeStatic=function(expr){const char=expr[0];if(char&&char in STATIC_TOKEN_MAP){return{type:STATIC_TOKEN_MAP[char],value:char};}
return false;};const tokenizeOperator=function(expr){for(let op of OPERATORS){if(expr.startsWith(op)){return{type:"OPERATOR",value:op};}}
return false;};const TOKENIZERS=[tokenizeString,tokenizeNumber,tokenizeOperator,tokenizeSymbol,tokenizeStatic,];function tokenize(expr){const result=[];let token=true;let error;let current=expr;try{while(token){current=current.trim();if(current){for(let tokenizer of TOKENIZERS){token=tokenizer(current);if(token){result.push(token);current=current.slice(token.size||token.value.length);break;}}}
else{token=false;}}}
catch(e){error=e;}
if(current.length||error){throw new OwlError(`Tokenizer error: could not tokenize \`${expr}\``);}
return result;}
const isLeftSeparator=(token)=>token&&(token.type==="LEFT_BRACE"||token.type==="COMMA");const isRightSeparator=(token)=>token&&(token.type==="RIGHT_BRACE"||token.type==="COMMA");function compileExprToArray(expr){const localVars=new Set();const tokens=tokenize(expr);let i=0;let stack=[];while(i<tokens.length){let token=tokens[i];let prevToken=tokens[i-1];let nextToken=tokens[i+1];let groupType=stack[stack.length-1];switch(token.type){case"LEFT_BRACE":case"LEFT_BRACKET":case"LEFT_PAREN":stack.push(token.type);break;case"RIGHT_BRACE":case"RIGHT_BRACKET":case"RIGHT_PAREN":stack.pop();}
let isVar=token.type==="SYMBOL"&&!RESERVED_WORDS.includes(token.value);if(token.type==="SYMBOL"&&!RESERVED_WORDS.includes(token.value)){if(prevToken){if(groupType==="LEFT_BRACE"&&isLeftSeparator(prevToken)&&isRightSeparator(nextToken)){tokens.splice(i+1,0,{type:"COLON",value:":"},{...token});nextToken=tokens[i+1];}
if(prevToken.type==="OPERATOR"&&prevToken.value==="."){isVar=false;}
else if(prevToken.type==="LEFT_BRACE"||prevToken.type==="COMMA"){if(nextToken&&nextToken.type==="COLON"){isVar=false;}}}}
if(token.type==="TEMPLATE_STRING"){token.value=token.replace((expr)=>compileExpr(expr));}
if(nextToken&&nextToken.type==="OPERATOR"&&nextToken.value==="=>"){if(token.type==="RIGHT_PAREN"){let j=i-1;while(j>0&&tokens[j].type!=="LEFT_PAREN"){if(tokens[j].type==="SYMBOL"&&tokens[j].originalValue){tokens[j].value=tokens[j].originalValue;localVars.add(tokens[j].value);}
j--;}}
else{localVars.add(token.value);}}
if(isVar){token.varName=token.value;if(!localVars.has(token.value)){token.originalValue=token.value;token.value=`ctx['${token.value}']`;}}
i++;}
for(const token of tokens){if(token.type==="SYMBOL"&&token.varName&&localVars.has(token.value)){token.originalValue=token.value;token.value=`_${token.value}`;token.isLocal=true;}}
return tokens;}
const paddedValues=new Map([["in "," in "]]);function compileExpr(expr){return compileExprToArray(expr).map((t)=>paddedValues.get(t.value)||t.value).join("");}
const INTERP_REGEXP=/\{\{.*?\}\}|\#\{.*?\}/g;function replaceDynamicParts(s,replacer){let matches=s.match(INTERP_REGEXP);if(matches&&matches[0].length===s.length){return`(${replacer(s.slice(2, matches[0][0] === "{" ? -2 : -1))})`;}
let r=s.replace(INTERP_REGEXP,(s)=>"${"+replacer(s.slice(2,s[0]==="{"?-2:-1))+"}");return"`"+r+"`";}
function interpolate(s){return replaceDynamicParts(s,compileExpr);}
const whitespaceRE=/\s+/g;const xmlDoc=document.implementation.createDocument(null,null,null);const MODS=new Set(["stop","capture","prevent","self","synthetic"]);let nextDataIds={};function generateId(prefix=""){nextDataIds[prefix]=(nextDataIds[prefix]||0)+1;return prefix+nextDataIds[prefix];}
function isProp(tag,key){switch(tag){case"input":return(key==="checked"||key==="indeterminate"||key==="value"||key==="readonly"||key==="readOnly"||key==="disabled");case"option":return key==="selected"||key==="disabled";case"textarea":return key==="value"||key==="readonly"||key==="readOnly"||key==="disabled";case"select":return key==="value"||key==="disabled";case"button":case"optgroup":return key==="disabled";}
return false;}
function toStringExpression(str){return`\`${str.replace(/\\/g, "\\\\").replace(/`/g,"\\`").replace(/\$\{/,"\\${")}\``;}
class BlockDescription{constructor(target,type){this.dynamicTagName=null;this.isRoot=false;this.hasDynamicChildren=false;this.children=[];this.data=[];this.childNumber=0;this.parentVar="";this.id=BlockDescription.nextBlockId++;this.varName="b"+this.id;this.blockName="block"+this.id;this.target=target;this.type=type;}
insertData(str,prefix="d"){const id=generateId(prefix);this.target.addLine(`let ${id} = ${str};`);return this.data.push(id)-1;}
insert(dom){if(this.currentDom){this.currentDom.appendChild(dom);}
else{this.dom=dom;}}
generateExpr(expr){if(this.type==="block"){const hasChildren=this.children.length;let params=this.data.length?`[${this.data.join(", ")}]`:hasChildren?"[]":"";if(hasChildren){params+=", ["+this.children.map((c)=>c.varName).join(", ")+"]";}
if(this.dynamicTagName){return`toggler(${this.dynamicTagName}, ${this.blockName}(${this.dynamicTagName})(${params}))`;}
return`${this.blockName}(${params})`;}
else if(this.type==="list"){return`list(c_block${this.id})`;}
return expr;}
asXmlString(){const t=xmlDoc.createElement("t");t.appendChild(this.dom);return t.innerHTML;}}
BlockDescription.nextBlockId=1;function createContext(parentCtx,params){return Object.assign({block:null,index:0,forceNewBlock:true,translate:parentCtx.translate,translationCtx:parentCtx.translationCtx,tKeyExpr:null,nameSpace:parentCtx.nameSpace,tModelSelectedExpr:parentCtx.tModelSelectedExpr,},params);}
class CodeTarget{constructor(name,on){this.indentLevel=0;this.loopLevel=0;this.code=[];this.hasRoot=false;this.hasCache=false;this.shouldProtectScope=false;this.hasRefWrapper=false;this.name=name;this.on=on||null;}
addLine(line,idx){const prefix=new Array(this.indentLevel+2).join("  ");if(idx===undefined){this.code.push(prefix+line);}
else{this.code.splice(idx,0,prefix+line);}}
generateCode(){let result=[];result.push(`function ${this.name}(ctx, node, key = "") {`);if(this.shouldProtectScope){result.push(`  ctx = Object.create(ctx);`);result.push(`  ctx[isBoundary] = 1`);}
if(this.hasRefWrapper){result.push(`  let refWrapper = makeRefWrapper(this.__owl__);`);}
if(this.hasCache){result.push(`  let cache = ctx.cache || {};`);result.push(`  let nextCache = ctx.cache = {};`);}
for(let line of this.code){result.push(line);}
if(!this.hasRoot){result.push(`return text('');`);}
result.push(`}`);return result.join("\n  ");}
currentKey(ctx){let key=this.loopLevel?`key${this.loopLevel}`:"key";if(ctx.tKeyExpr){key=`${ctx.tKeyExpr} + ${key}`;}
return key;}}
const TRANSLATABLE_ATTRS=["label","title","placeholder","alt"];const translationRE=/^(\s*)([\s\S]+?)(\s*)$/;class CodeGenerator{constructor(ast,options){this.blocks=[];this.nextBlockId=1;this.isDebug=false;this.targets=[];this.target=new CodeTarget("template");this.translatableAttributes=TRANSLATABLE_ATTRS;this.staticDefs=[];this.slotNames=new Set();this.helpers=new Set();this.translateFn=options.translateFn||((s)=>s);if(options.translatableAttributes){const attrs=new Set(TRANSLATABLE_ATTRS);for(let attr of options.translatableAttributes){if(attr.startsWith("-")){attrs.delete(attr.slice(1));}
else{attrs.add(attr);}}
this.translatableAttributes=[...attrs];}
this.hasSafeContext=options.hasSafeContext||false;this.dev=options.dev||false;this.ast=ast;this.templateName=options.name;if(options.hasGlobalValues){this.helpers.add("__globals__");}}
generateCode(){const ast=this.ast;this.isDebug=ast.type===12;BlockDescription.nextBlockId=1;nextDataIds={};this.compileAST(ast,{block:null,index:0,forceNewBlock:false,isLast:true,translate:true,translationCtx:"",tKeyExpr:null,});let mainCode=[`  let { text, createBlock, list, multi, html, toggler, comment } = bdom;`];if(this.helpers.size){mainCode.push(`let { ${[...this.helpers].join(", ")} } = helpers;`);}
if(this.templateName){mainCode.push(`// Template name: "${this.templateName}"`);}
for(let{id,expr}of this.staticDefs){mainCode.push(`const ${id} = ${expr};`);}
if(this.blocks.length){mainCode.push(``);for(let block of this.blocks){if(block.dom){let xmlString=toStringExpression(block.asXmlString());if(block.dynamicTagName){xmlString=xmlString.replace(/^`<\w+/,`\`<\${tag || '${block.dom.nodeName}'}`);xmlString=xmlString.replace(/\w+>`$/,`\${tag || '${block.dom.nodeName}'}>\``);mainCode.push(`let ${block.blockName} = tag => createBlock(${xmlString});`);}
else{mainCode.push(`let ${block.blockName} = createBlock(${xmlString});`);}}}}
if(this.targets.length){for(let fn of this.targets){mainCode.push("");mainCode=mainCode.concat(fn.generateCode());}}
mainCode.push("");mainCode=mainCode.concat("return "+this.target.generateCode());const code=mainCode.join("\n  ");if(this.isDebug){const msg=`[Owl Debug]\n${code}`;console.log(msg);}
return code;}
compileInNewTarget(prefix,ast,ctx,on){const name=generateId(prefix);const initialTarget=this.target;const target=new CodeTarget(name,on);this.targets.push(target);this.target=target;this.compileAST(ast,createContext(ctx));this.target=initialTarget;return name;}
addLine(line,idx){this.target.addLine(line,idx);}
define(varName,expr){this.addLine(`const ${varName} = ${expr};`);}
insertAnchor(block,index=block.children.length){const tag=`block-child-${index}`;const anchor=xmlDoc.createElement(tag);block.insert(anchor);}
createBlock(parentBlock,type,ctx){const hasRoot=this.target.hasRoot;const block=new BlockDescription(this.target,type);if(!hasRoot){this.target.hasRoot=true;block.isRoot=true;}
if(parentBlock){parentBlock.children.push(block);if(parentBlock.type==="list"){block.parentVar=`c_block${parentBlock.id}`;}}
return block;}
insertBlock(expression,block,ctx){let blockExpr=block.generateExpr(expression);if(block.parentVar){let key=this.target.currentKey(ctx);this.helpers.add("withKey");this.addLine(`${block.parentVar}[${ctx.index}] = withKey(${blockExpr}, ${key});`);return;}
if(ctx.tKeyExpr){blockExpr=`toggler(${ctx.tKeyExpr}, ${blockExpr})`;}
if(block.isRoot){if(this.target.on){blockExpr=this.wrapWithEventCatcher(blockExpr,this.target.on);}
this.addLine(`return ${blockExpr};`);}
else{this.define(block.varName,blockExpr);}}
captureExpression(expr,forceCapture=false){if(!forceCapture&&!expr.includes("=>")){return compileExpr(expr);}
const tokens=compileExprToArray(expr);const mapping=new Map();return tokens.map((tok)=>{if(tok.varName&&!tok.isLocal){if(!mapping.has(tok.varName)){const varId=generateId("v");mapping.set(tok.varName,varId);this.define(varId,tok.value);}
tok.value=mapping.get(tok.varName);}
return tok.value;}).join("");}
translate(str,translationCtx){const match=translationRE.exec(str);return match[1]+this.translateFn(match[2],translationCtx)+match[3];}
compileAST(ast,ctx){switch(ast.type){case 1:return this.compileComment(ast,ctx);case 0:return this.compileText(ast,ctx);case 2:return this.compileTDomNode(ast,ctx);case 4:return this.compileTEsc(ast,ctx);case 8:return this.compileTOut(ast,ctx);case 5:return this.compileTIf(ast,ctx);case 9:return this.compileTForeach(ast,ctx);case 10:return this.compileTKey(ast,ctx);case 3:return this.compileMulti(ast,ctx);case 7:return this.compileTCall(ast,ctx);case 15:return this.compileTCallBlock(ast,ctx);case 6:return this.compileTSet(ast,ctx);case 11:return this.compileComponent(ast,ctx);case 12:return this.compileDebug(ast,ctx);case 13:return this.compileLog(ast,ctx);case 14:return this.compileTSlot(ast,ctx);case 16:return this.compileTTranslation(ast,ctx);case 17:return this.compileTTranslationContext(ast,ctx);case 18:return this.compileTPortal(ast,ctx);}}
compileDebug(ast,ctx){this.addLine(`debugger;`);if(ast.content){return this.compileAST(ast.content,ctx);}
return null;}
compileLog(ast,ctx){this.addLine(`console.log(${compileExpr(ast.expr)});`);if(ast.content){return this.compileAST(ast.content,ctx);}
return null;}
compileComment(ast,ctx){let{block,forceNewBlock}=ctx;const isNewBlock=!block||forceNewBlock;if(isNewBlock){block=this.createBlock(block,"comment",ctx);this.insertBlock(`comment(${toStringExpression(ast.value)})`,block,{...ctx,forceNewBlock:forceNewBlock&&!block,});}
else{const text=xmlDoc.createComment(ast.value);block.insert(text);}
return block.varName;}
compileText(ast,ctx){let{block,forceNewBlock}=ctx;let value=ast.value;if(value&&ctx.translate!==false){value=this.translate(value,ctx.translationCtx);}
if(!ctx.inPreTag){value=value.replace(whitespaceRE," ");}
if(!block||forceNewBlock){block=this.createBlock(block,"text",ctx);this.insertBlock(`text(${toStringExpression(value)})`,block,{...ctx,forceNewBlock:forceNewBlock&&!block,});}
else{const createFn=ast.type===0?xmlDoc.createTextNode:xmlDoc.createComment;block.insert(createFn.call(xmlDoc,value));}
return block.varName;}
generateHandlerCode(rawEvent,handler){const modifiers=rawEvent.split(".").slice(1).map((m)=>{if(!MODS.has(m)){throw new OwlError(`Unknown event modifier: '${m}'`);}
return`"${m}"`;});let modifiersCode="";if(modifiers.length){modifiersCode=`${modifiers.join(",")}, `;}
return`[${modifiersCode}${this.captureExpression(handler)}, ctx]`;}
compileTDomNode(ast,ctx){var _a;let{block,forceNewBlock}=ctx;const isNewBlock=!block||forceNewBlock||ast.dynamicTag!==null||ast.ns;let codeIdx=this.target.code.length;if(isNewBlock){if((ast.dynamicTag||ctx.tKeyExpr||ast.ns)&&ctx.block){this.insertAnchor(ctx.block);}
block=this.createBlock(block,"block",ctx);this.blocks.push(block);if(ast.dynamicTag){const tagExpr=generateId("tag");this.define(tagExpr,compileExpr(ast.dynamicTag));block.dynamicTagName=tagExpr;}}
const attrs={};for(let key in ast.attrs){let expr,attrName;if(key.startsWith("t-attf")){expr=interpolate(ast.attrs[key]);const idx=block.insertData(expr,"attr");attrName=key.slice(7);attrs["block-attribute-"+idx]=attrName;}
else if(key.startsWith("t-att")){attrName=key==="t-att"?null:key.slice(6);expr=compileExpr(ast.attrs[key]);if(attrName&&isProp(ast.tag,attrName)){if(attrName==="readonly"){attrName="readOnly";}
if(attrName==="value"){expr=`new String((${expr}) === 0 ? 0 : ((${expr}) || ""))`;}
else{expr=`new Boolean(${expr})`;}
const idx=block.insertData(expr,"prop");attrs[`block-property-${idx}`]=attrName;}
else{const idx=block.insertData(expr,"attr");if(key==="t-att"){attrs[`block-attributes`]=String(idx);}
else{attrs[`block-attribute-${idx}`]=attrName;}}}
else if(this.translatableAttributes.includes(key)){const attrTranslationCtx=((_a=ast.attrsTranslationCtx)===null||_a===void 0?void 0:_a[key])||ctx.translationCtx;attrs[key]=this.translateFn(ast.attrs[key],attrTranslationCtx);}
else{expr=`"${ast.attrs[key]}"`;attrName=key;attrs[key]=ast.attrs[key];}
if(attrName==="value"&&ctx.tModelSelectedExpr){let selectedId=block.insertData(`${ctx.tModelSelectedExpr} === ${expr}`,"attr");attrs[`block-attribute-${selectedId}`]="selected";}}
let tModelSelectedExpr;if(ast.model){const{hasDynamicChildren,baseExpr,expr,eventType,shouldNumberize,shouldTrim,targetAttr,specialInitTargetAttr,}=ast.model;const baseExpression=compileExpr(baseExpr);const bExprId=generateId("bExpr");this.define(bExprId,baseExpression);const expression=compileExpr(expr);const exprId=generateId("expr");this.define(exprId,expression);const fullExpression=`${bExprId}[${exprId}]`;let idx;if(specialInitTargetAttr){let targetExpr=targetAttr in attrs&&`'${attrs[targetAttr]}'`;if(!targetExpr&&ast.attrs){const dynamicTgExpr=ast.attrs[`t-att-${targetAttr}`];if(dynamicTgExpr){targetExpr=compileExpr(dynamicTgExpr);}}
idx=block.insertData(`${fullExpression} === ${targetExpr}`,"prop");attrs[`block-property-${idx}`]=specialInitTargetAttr;}
else if(hasDynamicChildren){const bValueId=generateId("bValue");tModelSelectedExpr=`${bValueId}`;this.define(tModelSelectedExpr,fullExpression);}
else{idx=block.insertData(`${fullExpression}`,"prop");attrs[`block-property-${idx}`]=targetAttr;}
this.helpers.add("toNumber");let valueCode=`ev.target.${targetAttr}`;valueCode=shouldTrim?`${valueCode}.trim()`:valueCode;valueCode=shouldNumberize?`toNumber(${valueCode})`:valueCode;const handler=`[(ev) => { ${fullExpression} = ${valueCode}; }]`;idx=block.insertData(handler,"hdlr");attrs[`block-handler-${idx}`]=eventType;}
for(let ev in ast.on){const name=this.generateHandlerCode(ev,ast.on[ev]);const idx=block.insertData(name,"hdlr");attrs[`block-handler-${idx}`]=ev;}
if(ast.ref){if(this.dev){this.helpers.add("makeRefWrapper");this.target.hasRefWrapper=true;}
const isDynamic=INTERP_REGEXP.test(ast.ref);let name=`\`${ast.ref}\``;if(isDynamic){name=replaceDynamicParts(ast.ref,(expr)=>this.captureExpression(expr,true));}
let setRefStr=`(el) => this.__owl__.setRef((${name}), el)`;if(this.dev){setRefStr=`refWrapper(${name}, ${setRefStr})`;}
const idx=block.insertData(setRefStr,"ref");attrs["block-ref"]=String(idx);}
const nameSpace=ast.ns||ctx.nameSpace;const dom=nameSpace?xmlDoc.createElementNS(nameSpace,ast.tag):xmlDoc.createElement(ast.tag);for(const[attr,val]of Object.entries(attrs)){if(!(attr==="class"&&val==="")){dom.setAttribute(attr,val);}}
block.insert(dom);if(ast.content.length){const initialDom=block.currentDom;block.currentDom=dom;const children=ast.content;for(let i=0;i<children.length;i++){const child=ast.content[i];const subCtx=createContext(ctx,{block,index:block.childNumber,forceNewBlock:false,isLast:ctx.isLast&&i===children.length-1,tKeyExpr:ctx.tKeyExpr,nameSpace,tModelSelectedExpr,inPreTag:ctx.inPreTag||ast.tag==="pre",});this.compileAST(child,subCtx);}
block.currentDom=initialDom;}
if(isNewBlock){this.insertBlock(`${block.blockName}(ddd)`,block,ctx);if(block.children.length&&block.hasDynamicChildren){const code=this.target.code;const children=block.children.slice();let current=children.shift();for(let i=codeIdx;i<code.length;i++){if(code[i].trimStart().startsWith(`const ${current.varName} `)){code[i]=code[i].replace(`const ${current.varName}`,current.varName);current=children.shift();if(!current)
break;}}
this.addLine(`let ${block.children.map((c) => c.varName).join(", ")};`,codeIdx);}}
return block.varName;}
compileTEsc(ast,ctx){let{block,forceNewBlock}=ctx;let expr;if(ast.expr==="0"){this.helpers.add("zero");expr=`ctx[zero]`;}
else{expr=compileExpr(ast.expr);if(ast.defaultValue){this.helpers.add("withDefault");expr=`withDefault(${expr}, ${toStringExpression(ast.defaultValue)})`;}}
if(!block||forceNewBlock){block=this.createBlock(block,"text",ctx);this.insertBlock(`text(${expr})`,block,{...ctx,forceNewBlock:forceNewBlock&&!block});}
else{const idx=block.insertData(expr,"txt");const text=xmlDoc.createElement(`block-text-${idx}`);block.insert(text);}
return block.varName;}
compileTOut(ast,ctx){let{block}=ctx;if(block){this.insertAnchor(block);}
block=this.createBlock(block,"html",ctx);let blockStr;if(ast.expr==="0"){this.helpers.add("zero");blockStr=`ctx[zero]`;}
else if(ast.body){let bodyValue=null;bodyValue=BlockDescription.nextBlockId;const subCtx=createContext(ctx);this.compileAST({type:3,content:ast.body},subCtx);this.helpers.add("safeOutput");blockStr=`safeOutput(${compileExpr(ast.expr)}, b${bodyValue})`;}
else{this.helpers.add("safeOutput");blockStr=`safeOutput(${compileExpr(ast.expr)})`;}
this.insertBlock(blockStr,block,ctx);return block.varName;}
compileTIfBranch(content,block,ctx){this.target.indentLevel++;let childN=block.children.length;this.compileAST(content,createContext(ctx,{block,index:ctx.index}));if(block.children.length>childN){this.insertAnchor(block,childN);}
this.target.indentLevel--;}
compileTIf(ast,ctx,nextNode){let{block,forceNewBlock}=ctx;const codeIdx=this.target.code.length;const isNewBlock=!block||(block.type!=="multi"&&forceNewBlock);if(block){block.hasDynamicChildren=true;}
if(!block||(block.type!=="multi"&&forceNewBlock)){block=this.createBlock(block,"multi",ctx);}
this.addLine(`if (${compileExpr(ast.condition)}) {`);this.compileTIfBranch(ast.content,block,ctx);if(ast.tElif){for(let clause of ast.tElif){this.addLine(`} else if (${compileExpr(clause.condition)}) {`);this.compileTIfBranch(clause.content,block,ctx);}}
if(ast.tElse){this.addLine(`} else {`);this.compileTIfBranch(ast.tElse,block,ctx);}
this.addLine("}");if(isNewBlock){if(block.children.length){const code=this.target.code;const children=block.children.slice();let current=children.shift();for(let i=codeIdx;i<code.length;i++){if(code[i].trimStart().startsWith(`const ${current.varName} `)){code[i]=code[i].replace(`const ${current.varName}`,current.varName);current=children.shift();if(!current)
break;}}
this.addLine(`let ${block.children.map((c) => c.varName).join(", ")};`,codeIdx);}
const args=block.children.map((c)=>c.varName).join(", ");this.insertBlock(`multi([${args}])`,block,ctx);}
return block.varName;}
compileTForeach(ast,ctx){let{block}=ctx;if(block){this.insertAnchor(block);}
block=this.createBlock(block,"list",ctx);this.target.loopLevel++;const loopVar=`i${this.target.loopLevel}`;this.addLine(`ctx = Object.create(ctx);`);const vals=`v_block${block.id}`;const keys=`k_block${block.id}`;const l=`l_block${block.id}`;const c=`c_block${block.id}`;this.helpers.add("prepareList");this.define(`[${keys}, ${vals}, ${l}, ${c}]`,`prepareList(${compileExpr(ast.collection)});`);if(this.dev){this.define(`keys${block.id}`,`new Set()`);}
this.addLine(`for (let ${loopVar} = 0; ${loopVar} < ${l}; ${loopVar}++) {`);this.target.indentLevel++;this.addLine(`ctx[\`${ast.elem}\`] = ${keys}[${loopVar}];`);if(!ast.hasNoFirst){this.addLine(`ctx[\`${ast.elem}_first\`] = ${loopVar} === 0;`);}
if(!ast.hasNoLast){this.addLine(`ctx[\`${ast.elem}_last\`] = ${loopVar} === ${keys}.length - 1;`);}
if(!ast.hasNoIndex){this.addLine(`ctx[\`${ast.elem}_index\`] = ${loopVar};`);}
if(!ast.hasNoValue){this.addLine(`ctx[\`${ast.elem}_value\`] = ${vals}[${loopVar}];`);}
this.define(`key${this.target.loopLevel}`,ast.key?compileExpr(ast.key):loopVar);if(this.dev){this.helpers.add("OwlError");this.addLine(`if (keys${block.id}.has(String(key${this.target.loopLevel}))) { throw new OwlError(\`Got duplicate key in t-foreach: \${key${this.target.loopLevel}}\`)}`);this.addLine(`keys${block.id}.add(String(key${this.target.loopLevel}));`);}
let id;if(ast.memo){this.target.hasCache=true;id=generateId();this.define(`memo${id}`,compileExpr(ast.memo));this.define(`vnode${id}`,`cache[key${this.target.loopLevel}];`);this.addLine(`if (vnode${id}) {`);this.target.indentLevel++;this.addLine(`if (shallowEqual(vnode${id}.memo, memo${id})) {`);this.target.indentLevel++;this.addLine(`${c}[${loopVar}] = vnode${id};`);this.addLine(`nextCache[key${this.target.loopLevel}] = vnode${id};`);this.addLine(`continue;`);this.target.indentLevel--;this.addLine("}");this.target.indentLevel--;this.addLine("}");}
const subCtx=createContext(ctx,{block,index:loopVar});this.compileAST(ast.body,subCtx);if(ast.memo){this.addLine(`nextCache[key${this.target.loopLevel}] = Object.assign(${c}[${loopVar}], {memo: memo${id}});`);}
this.target.indentLevel--;this.target.loopLevel--;this.addLine(`}`);if(!ctx.isLast){this.addLine(`ctx = ctx.__proto__;`);}
this.insertBlock("l",block,ctx);return block.varName;}
compileTKey(ast,ctx){const tKeyExpr=generateId("tKey_");this.define(tKeyExpr,compileExpr(ast.expr));ctx=createContext(ctx,{tKeyExpr,block:ctx.block,index:ctx.index,});return this.compileAST(ast.content,ctx);}
compileMulti(ast,ctx){let{block,forceNewBlock}=ctx;const isNewBlock=!block||forceNewBlock;let codeIdx=this.target.code.length;if(isNewBlock){const n=ast.content.filter((c)=>c.type!==6).length;let result=null;if(n<=1){for(let child of ast.content){const blockName=this.compileAST(child,ctx);result=result||blockName;}
return result;}
block=this.createBlock(block,"multi",ctx);}
let index=0;for(let i=0,l=ast.content.length;i<l;i++){const child=ast.content[i];const isTSet=child.type===6;const subCtx=createContext(ctx,{block,index,forceNewBlock:!isTSet,isLast:ctx.isLast&&i===l-1,});this.compileAST(child,subCtx);if(!isTSet){index++;}}
if(isNewBlock){if(block.hasDynamicChildren&&block.children.length){const code=this.target.code;const children=block.children.slice();let current=children.shift();for(let i=codeIdx;i<code.length;i++){if(code[i].trimStart().startsWith(`const ${current.varName} `)){code[i]=code[i].replace(`const ${current.varName}`,current.varName);current=children.shift();if(!current)
break;}}
this.addLine(`let ${block.children.map((c) => c.varName).join(", ")};`,codeIdx);}
const args=block.children.map((c)=>c.varName).join(", ");this.insertBlock(`multi([${args}])`,block,ctx);}
return block.varName;}
compileTCall(ast,ctx){let{block,forceNewBlock}=ctx;let ctxVar=ctx.ctxVar||"ctx";if(ast.context){ctxVar=generateId("ctx");this.addLine(`let ${ctxVar} = ${compileExpr(ast.context)};`);}
const isDynamic=INTERP_REGEXP.test(ast.name);const subTemplate=isDynamic?interpolate(ast.name):"`"+ast.name+"`";if(block&&!forceNewBlock){this.insertAnchor(block);}
block=this.createBlock(block,"multi",ctx);if(ast.body){this.addLine(`${ctxVar} = Object.create(${ctxVar});`);this.addLine(`${ctxVar}[isBoundary] = 1;`);this.helpers.add("isBoundary");const subCtx=createContext(ctx,{ctxVar});const bl=this.compileMulti({type:3,content:ast.body},subCtx);if(bl){this.helpers.add("zero");this.addLine(`${ctxVar}[zero] = ${bl};`);}}
const key=this.generateComponentKey();if(isDynamic){const templateVar=generateId("template");if(!this.staticDefs.find((d)=>d.id==="call")){this.staticDefs.push({id:"call",expr:`app.callTemplate.bind(app)`});}
this.define(templateVar,subTemplate);this.insertBlock(`call(this, ${templateVar}, ${ctxVar}, node, ${key})`,block,{...ctx,forceNewBlock:!block,});}
else{const id=generateId(`callTemplate_`);this.staticDefs.push({id,expr:`app.getTemplate(${subTemplate})`});this.insertBlock(`${id}.call(this, ${ctxVar}, node, ${key})`,block,{...ctx,forceNewBlock:!block,});}
if(ast.body&&!ctx.isLast){this.addLine(`${ctxVar} = ${ctxVar}.__proto__;`);}
return block.varName;}
compileTCallBlock(ast,ctx){let{block,forceNewBlock}=ctx;if(block){if(!forceNewBlock){this.insertAnchor(block);}}
block=this.createBlock(block,"multi",ctx);this.insertBlock(compileExpr(ast.name),block,{...ctx,forceNewBlock:!block});return block.varName;}
compileTSet(ast,ctx){this.target.shouldProtectScope=true;this.helpers.add("isBoundary").add("withDefault");const expr=ast.value?compileExpr(ast.value||""):"null";if(ast.body){this.helpers.add("LazyValue");const bodyAst={type:3,content:ast.body};const name=this.compileInNewTarget("value",bodyAst,ctx);let key=this.target.currentKey(ctx);let value=`new LazyValue(${name}, ctx, this, node, ${key})`;value=ast.value?(value?`withDefault(${expr}, ${value})`:expr):value;this.addLine(`ctx[\`${ast.name}\`] = ${value};`);}
else{let value;if(ast.defaultValue){const defaultValue=toStringExpression(ctx.translate?this.translate(ast.defaultValue,ctx.translationCtx):ast.defaultValue);if(ast.value){value=`withDefault(${expr}, ${defaultValue})`;}
else{value=defaultValue;}}
else{value=expr;}
this.helpers.add("setContextValue");this.addLine(`setContextValue(${ctx.ctxVar || "ctx"}, "${ast.name}", ${value});`);}
return null;}
generateComponentKey(currentKey="key"){const parts=[generateId("__")];for(let i=0;i<this.target.loopLevel;i++){parts.push(`\${key${i + 1}}`);}
return`${currentKey} + \`${parts.join("__")}\``;}
formatProp(name,value,attrsTranslationCtx,translationCtx){if(name.endsWith(".translate")){const attrTranslationCtx=(attrsTranslationCtx===null||attrsTranslationCtx===void 0?void 0:attrsTranslationCtx[name])||translationCtx;value=toStringExpression(this.translateFn(value,attrTranslationCtx));}
else{value=this.captureExpression(value);}
if(name.includes(".")){let[_name,suffix]=name.split(".");name=_name;switch(suffix){case"bind":value=`(${value}).bind(this)`;break;case"alike":case"translate":break;default:throw new OwlError(`Invalid prop suffix: ${suffix}`);}}
name=/^[a-z_]+$/i.test(name)?name:`'${name}'`;return`${name}: ${value || undefined}`;}
formatPropObject(obj,attrsTranslationCtx,translationCtx){return Object.entries(obj).map(([k,v])=>this.formatProp(k,v,attrsTranslationCtx,translationCtx));}
getPropString(props,dynProps){let propString=`{${props.join(",")}}`;if(dynProps){propString=`Object.assign({}, ${compileExpr(dynProps)}${props.length ? ", " + propString : ""})`;}
return propString;}
compileComponent(ast,ctx){let{block}=ctx;const hasSlotsProp="slots"in(ast.props||{});const props=ast.props?this.formatPropObject(ast.props,ast.propsTranslationCtx,ctx.translationCtx):[];let slotDef="";if(ast.slots){let ctxStr="ctx";if(this.target.loopLevel||!this.hasSafeContext){ctxStr=generateId("ctx");this.helpers.add("capture");this.define(ctxStr,`capture(ctx)`);}
let slotStr=[];for(let slotName in ast.slots){const slotAst=ast.slots[slotName];const params=[];if(slotAst.content){const name=this.compileInNewTarget("slot",slotAst.content,ctx,slotAst.on);params.push(`__render: ${name}.bind(this), __ctx: ${ctxStr}`);}
const scope=ast.slots[slotName].scope;if(scope){params.push(`__scope: "${scope}"`);}
if(ast.slots[slotName].attrs){params.push(...this.formatPropObject(ast.slots[slotName].attrs,ast.slots[slotName].attrsTranslationCtx,ctx.translationCtx));}
const slotInfo=`{${params.join(", ")}}`;slotStr.push(`'${slotName}': ${slotInfo}`);}
slotDef=`{${slotStr.join(", ")}}`;}
if(slotDef&&!(ast.dynamicProps||hasSlotsProp)){this.helpers.add("markRaw");props.push(`slots: markRaw(${slotDef})`);}
let propString=this.getPropString(props,ast.dynamicProps);let propVar;if((slotDef&&(ast.dynamicProps||hasSlotsProp))||this.dev){propVar=generateId("props");this.define(propVar,propString);propString=propVar;}
if(slotDef&&(ast.dynamicProps||hasSlotsProp)){this.helpers.add("markRaw");this.addLine(`${propVar}.slots = markRaw(Object.assign(${slotDef}, ${propVar}.slots))`);}
let expr;if(ast.isDynamic){expr=generateId("Comp");this.define(expr,compileExpr(ast.name));}
else{expr=`\`${ast.name}\``;}
if(this.dev){this.addLine(`helpers.validateProps(${expr}, ${propVar}, this);`);}
if(block&&(ctx.forceNewBlock===false||ctx.tKeyExpr)){this.insertAnchor(block);}
let keyArg=this.generateComponentKey();if(ctx.tKeyExpr){keyArg=`${ctx.tKeyExpr} + ${keyArg}`;}
let id=generateId("comp");const propList=[];for(let p in ast.props||{}){let[name,suffix]=p.split(".");if(!suffix){propList.push(`"${name}"`);}}
this.staticDefs.push({id,expr:`app.createComponent(${ast.isDynamic ? null : expr}, ${!ast.isDynamic}, ${!!ast.slots}, ${!!ast.dynamicProps}, [${propList}])`,});if(ast.isDynamic){keyArg=`(${expr}).name + ${keyArg}`;}
let blockExpr=`${id}(${propString}, ${keyArg}, node, this, ${ast.isDynamic ? expr : null})`;if(ast.isDynamic){blockExpr=`toggler(${expr}, ${blockExpr})`;}
if(ast.on){blockExpr=this.wrapWithEventCatcher(blockExpr,ast.on);}
block=this.createBlock(block,"multi",ctx);this.insertBlock(blockExpr,block,ctx);return block.varName;}
wrapWithEventCatcher(expr,on){this.helpers.add("createCatcher");let name=generateId("catcher");let spec={};let handlers=[];for(let ev in on){let handlerId=generateId("hdlr");let idx=handlers.push(handlerId)-1;spec[ev]=idx;const handler=this.generateHandlerCode(ev,on[ev]);this.define(handlerId,handler);}
this.staticDefs.push({id:name,expr:`createCatcher(${JSON.stringify(spec)})`});return`${name}(${expr}, [${handlers.join(",")}])`;}
compileTSlot(ast,ctx){this.helpers.add("callSlot");let{block}=ctx;let blockString;let slotName;let dynamic=false;let isMultiple=false;if(ast.name.match(INTERP_REGEXP)){dynamic=true;isMultiple=true;slotName=interpolate(ast.name);}
else{slotName="'"+ast.name+"'";isMultiple=isMultiple||this.slotNames.has(ast.name);this.slotNames.add(ast.name);}
const attrs={...ast.attrs};const dynProps=attrs["t-props"];delete attrs["t-props"];let key=this.target.loopLevel?`key${this.target.loopLevel}`:"key";if(isMultiple){key=this.generateComponentKey(key);}
const props=ast.attrs?this.formatPropObject(attrs,ast.attrsTranslationCtx,ctx.translationCtx):[];const scope=this.getPropString(props,dynProps);if(ast.defaultContent){const name=this.compileInNewTarget("defaultContent",ast.defaultContent,ctx);blockString=`callSlot(ctx, node, ${key}, ${slotName}, ${dynamic}, ${scope}, ${name}.bind(this))`;}
else{if(dynamic){let name=generateId("slot");this.define(name,slotName);blockString=`toggler(${name}, callSlot(ctx, node, ${key}, ${name}, ${dynamic}, ${scope}))`;}
else{blockString=`callSlot(ctx, node, ${key}, ${slotName}, ${dynamic}, ${scope})`;}}
if(ast.on){blockString=this.wrapWithEventCatcher(blockString,ast.on);}
if(block){this.insertAnchor(block);}
block=this.createBlock(block,"multi",ctx);this.insertBlock(blockString,block,{...ctx,forceNewBlock:false});return block.varName;}
compileTTranslation(ast,ctx){if(ast.content){return this.compileAST(ast.content,Object.assign({},ctx,{translate:false}));}
return null;}
compileTTranslationContext(ast,ctx){if(ast.content){return this.compileAST(ast.content,Object.assign({},ctx,{translationCtx:ast.translationCtx}));}
return null;}
compileTPortal(ast,ctx){if(!this.staticDefs.find((d)=>d.id==="Portal")){this.staticDefs.push({id:"Portal",expr:`app.Portal`});}
let{block}=ctx;const name=this.compileInNewTarget("slot",ast.content,ctx);let ctxStr="ctx";if(this.target.loopLevel||!this.hasSafeContext){ctxStr=generateId("ctx");this.helpers.add("capture");this.define(ctxStr,`capture(ctx)`);}
let id=generateId("comp");this.staticDefs.push({id,expr:`app.createComponent(null, false, true, false, false)`,});const target=compileExpr(ast.target);const key=this.generateComponentKey();const blockString=`${id}({target: ${target},slots: {'default': {__render: ${name}.bind(this), __ctx: ${ctxStr}}}}, ${key}, node, ctx, Portal)`;if(block){this.insertAnchor(block);}
block=this.createBlock(block,"multi",ctx);this.insertBlock(blockString,block,{...ctx,forceNewBlock:false});return block.varName;}}
const cache=new WeakMap();function parse(xml,customDir){const ctx={inPreTag:false,customDirectives:customDir,};if(typeof xml==="string"){const elem=parseXML(`<t>${xml}</t>`).firstChild;return _parse(elem,ctx);}
let ast=cache.get(xml);if(!ast){ast=_parse(xml.cloneNode(true),ctx);cache.set(xml,ast);}
return ast;}
function _parse(xml,ctx){normalizeXML(xml);return parseNode(xml,ctx)||{type:0,value:""};}
function parseNode(node,ctx){if(!(node instanceof Element)){return parseTextCommentNode(node,ctx);}
return(parseTCustom(node,ctx)||parseTDebugLog(node,ctx)||parseTForEach(node,ctx)||parseTIf(node,ctx)||parseTPortal(node,ctx)||parseTCall(node,ctx)||parseTCallBlock(node)||parseTEscNode(node,ctx)||parseTOutNode(node,ctx)||parseTKey(node,ctx)||parseTTranslation(node,ctx)||parseTTranslationContext(node,ctx)||parseTSlot(node,ctx)||parseComponent(node,ctx)||parseDOMNode(node,ctx)||parseTSetNode(node,ctx)||parseTNode(node,ctx));}
function parseTNode(node,ctx){if(node.tagName!=="t"){return null;}
return parseChildNodes(node,ctx);}
const lineBreakRE=/[\r\n]/;function parseTextCommentNode(node,ctx){if(node.nodeType===Node.TEXT_NODE){let value=node.textContent||"";if(!ctx.inPreTag&&lineBreakRE.test(value)&&!value.trim()){return null;}
return{type:0,value};}
else if(node.nodeType===Node.COMMENT_NODE){return{type:1,value:node.textContent||""};}
return null;}
function parseTCustom(node,ctx){if(!ctx.customDirectives){return null;}
const nodeAttrsNames=node.getAttributeNames();for(let attr of nodeAttrsNames){if(attr==="t-custom"||attr==="t-custom-"){throw new OwlError("Missing custom directive name with t-custom directive");}
if(attr.startsWith("t-custom-")){const directiveName=attr.split(".")[0].slice(9);const customDirective=ctx.customDirectives[directiveName];if(!customDirective){throw new OwlError(`Custom directive "${directiveName}" is not defined`);}
const value=node.getAttribute(attr);const modifiers=attr.split(".").slice(1);node.removeAttribute(attr);try{customDirective(node,value,modifiers);}
catch(error){throw new OwlError(`Custom directive "${directiveName}" throw the following error: ${error}`);}
return parseNode(node,ctx);}}
return null;}
function parseTDebugLog(node,ctx){if(node.hasAttribute("t-debug")){node.removeAttribute("t-debug");return{type:12,content:parseNode(node,ctx),};}
if(node.hasAttribute("t-log")){const expr=node.getAttribute("t-log");node.removeAttribute("t-log");return{type:13,expr,content:parseNode(node,ctx),};}
return null;}
const hasDotAtTheEnd=/\.[\w_]+\s*$/;const hasBracketsAtTheEnd=/\[[^\[]+\]\s*$/;const ROOT_SVG_TAGS=new Set(["svg","g","path"]);function parseDOMNode(node,ctx){const{tagName}=node;const dynamicTag=node.getAttribute("t-tag");node.removeAttribute("t-tag");if(tagName==="t"&&!dynamicTag){return null;}
if(tagName.startsWith("block-")){throw new OwlError(`Invalid tag name: '${tagName}'`);}
ctx=Object.assign({},ctx);if(tagName==="pre"){ctx.inPreTag=true;}
let ns=!ctx.nameSpace&&ROOT_SVG_TAGS.has(tagName)?"http://www.w3.org/2000/svg":null;const ref=node.getAttribute("t-ref");node.removeAttribute("t-ref");const nodeAttrsNames=node.getAttributeNames();let attrs=null;let attrsTranslationCtx=null;let on=null;let model=null;for(let attr of nodeAttrsNames){const value=node.getAttribute(attr);if(attr==="t-on"||attr==="t-on-"){throw new OwlError("Missing event name with t-on directive");}
if(attr.startsWith("t-on-")){on=on||{};on[attr.slice(5)]=value;}
else if(attr.startsWith("t-model")){if(!["input","select","textarea"].includes(tagName)){throw new OwlError("The t-model directive only works with <input>, <textarea> and <select>");}
let baseExpr,expr;if(hasDotAtTheEnd.test(value)){const index=value.lastIndexOf(".");baseExpr=value.slice(0,index);expr=`'${value.slice(index + 1)}'`;}
else if(hasBracketsAtTheEnd.test(value)){const index=value.lastIndexOf("[");baseExpr=value.slice(0,index);expr=value.slice(index+1,-1);}
else{throw new OwlError(`Invalid t-model expression: "${value}" (it should be assignable)`);}
const typeAttr=node.getAttribute("type");const isInput=tagName==="input";const isSelect=tagName==="select";const isCheckboxInput=isInput&&typeAttr==="checkbox";const isRadioInput=isInput&&typeAttr==="radio";const hasTrimMod=attr.includes(".trim");const hasLazyMod=hasTrimMod||attr.includes(".lazy");const hasNumberMod=attr.includes(".number");const eventType=isRadioInput?"click":isSelect||hasLazyMod?"change":"input";model={baseExpr,expr,targetAttr:isCheckboxInput?"checked":"value",specialInitTargetAttr:isRadioInput?"checked":null,eventType,hasDynamicChildren:false,shouldTrim:hasTrimMod,shouldNumberize:hasNumberMod,};if(isSelect){ctx=Object.assign({},ctx);ctx.tModelInfo=model;}}
else if(attr.startsWith("block-")){throw new OwlError(`Invalid attribute: '${attr}'`);}
else if(attr==="xmlns"){ns=value;}
else if(attr.startsWith("t-translation-context-")){const attrName=attr.slice(22);attrsTranslationCtx=attrsTranslationCtx||{};attrsTranslationCtx[attrName]=value;}
else if(attr!=="t-name"){if(attr.startsWith("t-")&&!attr.startsWith("t-att")){throw new OwlError(`Unknown QWeb directive: '${attr}'`);}
const tModel=ctx.tModelInfo;if(tModel&&["t-att-value","t-attf-value"].includes(attr)){tModel.hasDynamicChildren=true;}
attrs=attrs||{};attrs[attr]=value;}}
if(ns){ctx.nameSpace=ns;}
const children=parseChildren(node,ctx);return{type:2,tag:tagName,dynamicTag,attrs,attrsTranslationCtx,on,ref,content:children,model,ns,};}
function parseTEscNode(node,ctx){if(!node.hasAttribute("t-esc")){return null;}
const escValue=node.getAttribute("t-esc");node.removeAttribute("t-esc");const tesc={type:4,expr:escValue,defaultValue:node.textContent||"",};let ref=node.getAttribute("t-ref");node.removeAttribute("t-ref");const ast=parseNode(node,ctx);if(!ast){return tesc;}
if(ast.type===2){return{...ast,ref,content:[tesc],};}
return tesc;}
function parseTOutNode(node,ctx){if(!node.hasAttribute("t-out")&&!node.hasAttribute("t-raw")){return null;}
if(node.hasAttribute("t-raw")){console.warn(`t-raw has been deprecated in favor of t-out. If the value to render is not wrapped by the "markup" function, it will be escaped`);}
const expr=(node.getAttribute("t-out")||node.getAttribute("t-raw"));node.removeAttribute("t-out");node.removeAttribute("t-raw");const tOut={type:8,expr,body:null};const ref=node.getAttribute("t-ref");node.removeAttribute("t-ref");const ast=parseNode(node,ctx);if(!ast){return tOut;}
if(ast.type===2){tOut.body=ast.content.length?ast.content:null;return{...ast,ref,content:[tOut],};}
return tOut;}
function parseTForEach(node,ctx){if(!node.hasAttribute("t-foreach")){return null;}
const html=node.outerHTML;const collection=node.getAttribute("t-foreach");node.removeAttribute("t-foreach");const elem=node.getAttribute("t-as")||"";node.removeAttribute("t-as");const key=node.getAttribute("t-key");if(!key){throw new OwlError(`"Directive t-foreach should always be used with a t-key!" (expression: t-foreach="${collection}" t-as="${elem}")`);}
node.removeAttribute("t-key");const memo=node.getAttribute("t-memo")||"";node.removeAttribute("t-memo");const body=parseNode(node,ctx);if(!body){return null;}
const hasNoTCall=!html.includes("t-call");const hasNoFirst=hasNoTCall&&!html.includes(`${elem}_first`);const hasNoLast=hasNoTCall&&!html.includes(`${elem}_last`);const hasNoIndex=hasNoTCall&&!html.includes(`${elem}_index`);const hasNoValue=hasNoTCall&&!html.includes(`${elem}_value`);return{type:9,collection,elem,body,memo,key,hasNoFirst,hasNoLast,hasNoIndex,hasNoValue,};}
function parseTKey(node,ctx){if(!node.hasAttribute("t-key")){return null;}
const key=node.getAttribute("t-key");node.removeAttribute("t-key");const body=parseNode(node,ctx);if(!body){return null;}
return{type:10,expr:key,content:body};}
function parseTCall(node,ctx){if(!node.hasAttribute("t-call")){return null;}
const subTemplate=node.getAttribute("t-call");const context=node.getAttribute("t-call-context");node.removeAttribute("t-call");node.removeAttribute("t-call-context");if(node.tagName!=="t"){const ast=parseNode(node,ctx);const tcall={type:7,name:subTemplate,body:null,context};if(ast&&ast.type===2){ast.content=[tcall];return ast;}
if(ast&&ast.type===11){return{...ast,slots:{default:{content:tcall,scope:null,on:null,attrs:null,attrsTranslationCtx:null,},},};}}
const body=parseChildren(node,ctx);return{type:7,name:subTemplate,body:body.length?body:null,context,};}
function parseTCallBlock(node,ctx){if(!node.hasAttribute("t-call-block")){return null;}
const name=node.getAttribute("t-call-block");return{type:15,name,};}
function parseTIf(node,ctx){if(!node.hasAttribute("t-if")){return null;}
const condition=node.getAttribute("t-if");node.removeAttribute("t-if");const content=parseNode(node,ctx)||{type:0,value:""};let nextElement=node.nextElementSibling;const tElifs=[];while(nextElement&&nextElement.hasAttribute("t-elif")){const condition=nextElement.getAttribute("t-elif");nextElement.removeAttribute("t-elif");const tElif=parseNode(nextElement,ctx);const next=nextElement.nextElementSibling;nextElement.remove();nextElement=next;if(tElif){tElifs.push({condition,content:tElif});}}
let tElse=null;if(nextElement&&nextElement.hasAttribute("t-else")){nextElement.removeAttribute("t-else");tElse=parseNode(nextElement,ctx);nextElement.remove();}
return{type:5,condition,content,tElif:tElifs.length?tElifs:null,tElse,};}
function parseTSetNode(node,ctx){if(!node.hasAttribute("t-set")){return null;}
const name=node.getAttribute("t-set");const value=node.getAttribute("t-value")||null;const defaultValue=node.innerHTML===node.textContent?node.textContent||null:null;let body=null;if(node.textContent!==node.innerHTML){body=parseChildren(node,ctx);}
return{type:6,name,value,defaultValue,body};}
const directiveErrorMap=new Map([["t-ref","t-ref is no longer supported on components. Consider exposing only the public part of the component's API through a callback prop.",],["t-att","t-att makes no sense on component: props are already treated as expressions"],["t-attf","t-attf is not supported on components: use template strings for string interpolation in props",],]);function parseComponent(node,ctx){let name=node.tagName;const firstLetter=name[0];let isDynamic=node.hasAttribute("t-component");if(isDynamic&&name!=="t"){throw new OwlError(`Directive 't-component' can only be used on <t> nodes (used on a <${name}>)`);}
if(!(firstLetter===firstLetter.toUpperCase()||isDynamic)){return null;}
if(isDynamic){name=node.getAttribute("t-component");node.removeAttribute("t-component");}
const dynamicProps=node.getAttribute("t-props");node.removeAttribute("t-props");const defaultSlotScope=node.getAttribute("t-slot-scope");node.removeAttribute("t-slot-scope");let on=null;let props=null;let propsTranslationCtx=null;for(let name of node.getAttributeNames()){const value=node.getAttribute(name);if(name.startsWith("t-translation-context-")){const attrName=name.slice(22);propsTranslationCtx=propsTranslationCtx||{};propsTranslationCtx[attrName]=value;}
else if(name.startsWith("t-")){if(name.startsWith("t-on-")){on=on||{};on[name.slice(5)]=value;}
else{const message=directiveErrorMap.get(name.split("-").slice(0,2).join("-"));throw new OwlError(message||`unsupported directive on Component: ${name}`);}}
else{props=props||{};props[name]=value;}}
let slots=null;if(node.hasChildNodes()){const clone=node.cloneNode(true);const slotNodes=Array.from(clone.querySelectorAll("[t-set-slot]"));for(let slotNode of slotNodes){if(slotNode.tagName!=="t"){throw new OwlError(`Directive 't-set-slot' can only be used on <t> nodes (used on a <${slotNode.tagName}>)`);}
const name=slotNode.getAttribute("t-set-slot");let el=slotNode.parentElement;let isInSubComponent=false;while(el&&el!==clone){if(el.hasAttribute("t-component")||el.tagName[0]===el.tagName[0].toUpperCase()){isInSubComponent=true;break;}
el=el.parentElement;}
if(isInSubComponent||!el){continue;}
slotNode.removeAttribute("t-set-slot");slotNode.remove();const slotAst=parseNode(slotNode,ctx);let on=null;let attrs=null;let attrsTranslationCtx=null;let scope=null;for(let attributeName of slotNode.getAttributeNames()){const value=slotNode.getAttribute(attributeName);if(attributeName==="t-slot-scope"){scope=value;continue;}
else if(attributeName.startsWith("t-translation-context-")){const attrName=attributeName.slice(22);attrsTranslationCtx=attrsTranslationCtx||{};attrsTranslationCtx[attrName]=value;}
else if(attributeName.startsWith("t-on-")){on=on||{};on[attributeName.slice(5)]=value;}
else{attrs=attrs||{};attrs[attributeName]=value;}}
slots=slots||{};slots[name]={content:slotAst,on,attrs,attrsTranslationCtx,scope};}
const defaultContent=parseChildNodes(clone,ctx);slots=slots||{};if(defaultContent&&!slots.default){slots.default={content:defaultContent,on,attrs:null,attrsTranslationCtx:null,scope:defaultSlotScope,};}}
return{type:11,name,isDynamic,dynamicProps,props,propsTranslationCtx,slots,on,};}
function parseTSlot(node,ctx){if(!node.hasAttribute("t-slot")){return null;}
const name=node.getAttribute("t-slot");node.removeAttribute("t-slot");let attrs=null;let attrsTranslationCtx=null;let on=null;for(let attributeName of node.getAttributeNames()){const value=node.getAttribute(attributeName);if(attributeName.startsWith("t-on-")){on=on||{};on[attributeName.slice(5)]=value;}
else if(attributeName.startsWith("t-translation-context-")){const attrName=attributeName.slice(22);attrsTranslationCtx=attrsTranslationCtx||{};attrsTranslationCtx[attrName]=value;}
else{attrs=attrs||{};attrs[attributeName]=value;}}
return{type:14,name,attrs,attrsTranslationCtx,on,defaultContent:parseChildNodes(node,ctx),};}
function parseTTranslation(node,ctx){if(node.getAttribute("t-translation")!=="off"){return null;}
node.removeAttribute("t-translation");return{type:16,content:parseNode(node,ctx),};}
function parseTTranslationContext(node,ctx){const translationCtx=node.getAttribute("t-translation-context");if(!translationCtx){return null;}
node.removeAttribute("t-translation-context");return{type:17,content:parseNode(node,ctx),translationCtx,};}
function parseTPortal(node,ctx){if(!node.hasAttribute("t-portal")){return null;}
const target=node.getAttribute("t-portal");node.removeAttribute("t-portal");const content=parseNode(node,ctx);if(!content){return{type:0,value:"",};}
return{type:18,target,content,};}
function parseChildren(node,ctx){const children=[];for(let child of node.childNodes){const childAst=parseNode(child,ctx);if(childAst){if(childAst.type===3){children.push(...childAst.content);}
else{children.push(childAst);}}}
return children;}
function parseChildNodes(node,ctx){const children=parseChildren(node,ctx);switch(children.length){case 0:return null;case 1:return children[0];default:return{type:3,content:children};}}
function normalizeTIf(el){let tbranch=el.querySelectorAll("[t-elif], [t-else]");for(let i=0,ilen=tbranch.length;i<ilen;i++){let node=tbranch[i];let prevElem=node.previousElementSibling;let pattr=(name)=>prevElem.getAttribute(name);let nattr=(name)=>+!!node.getAttribute(name);if(prevElem&&(pattr("t-if")||pattr("t-elif"))){if(pattr("t-foreach")){throw new OwlError("t-if cannot stay at the same level as t-foreach when using t-elif or t-else");}
if(["t-if","t-elif","t-else"].map(nattr).reduce(function(a,b){return a+b;})>1){throw new OwlError("Only one conditional branching directive is allowed per node");}
let textNode;while((textNode=node.previousSibling)!==prevElem){if(textNode.nodeValue.trim().length&&textNode.nodeType!==8){throw new OwlError("text is not allowed between branching directives");}
textNode.remove();}}
else{throw new OwlError("t-elif and t-else directives must be preceded by a t-if or t-elif directive");}}}
function normalizeTEscTOut(el){for(const d of["t-esc","t-out"]){const elements=[...el.querySelectorAll(`[${d}]`)].filter((el)=>el.tagName[0]===el.tagName[0].toUpperCase()||el.hasAttribute("t-component"));for(const el of elements){if(el.childNodes.length){throw new OwlError(`Cannot have ${d} on a component that already has content`);}
const value=el.getAttribute(d);el.removeAttribute(d);const t=el.ownerDocument.createElement("t");if(value!=null){t.setAttribute(d,value);}
el.appendChild(t);}}}
function normalizeXML(el){normalizeTIf(el);normalizeTEscTOut(el);}
function compile(template,options={hasGlobalValues:false,}){const ast=parse(template,options.customDirectives);const hasSafeContext=template instanceof Node?!(template instanceof Element)||template.querySelector("[t-set], [t-call]")===null:!template.includes("t-set")&&!template.includes("t-call");const codeGenerator=new CodeGenerator(ast,{...options,hasSafeContext});const code=codeGenerator.generateCode();try{return new Function("app, bdom, helpers",code);}
catch(originalError){const{name}=options;const nameStr=name?`template "${name}"`:"anonymous template";const err=new OwlError(`Failed to compile ${nameStr}: ${originalError.message}\n\ngenerated code:\nfunction(app, bdom, helpers) {\n${code}\n}`);err.cause=originalError;throw err;}}
const version="2.6.1";class Scheduler{constructor(){this.tasks=new Set();this.frame=0;this.delayedRenders=[];this.cancelledNodes=new Set();this.processing=false;this.requestAnimationFrame=Scheduler.requestAnimationFrame;}
addFiber(fiber){this.tasks.add(fiber.root);}
scheduleDestroy(node){this.cancelledNodes.add(node);if(this.frame===0){this.frame=this.requestAnimationFrame(()=>this.processTasks());}}
flush(){if(this.delayedRenders.length){let renders=this.delayedRenders;this.delayedRenders=[];for(let f of renders){if(f.root&&f.node.status!==3&&f.node.fiber===f){f.render();}}}
if(this.frame===0){this.frame=this.requestAnimationFrame(()=>this.processTasks());}}
processTasks(){if(this.processing){return;}
this.processing=true;this.frame=0;for(let node of this.cancelledNodes){node._destroy();}
this.cancelledNodes.clear();for(let task of this.tasks){this.processFiber(task);}
for(let task of this.tasks){if(task.node.status===3){this.tasks.delete(task);}}
this.processing=false;}
processFiber(fiber){if(fiber.root!==fiber){this.tasks.delete(fiber);return;}
const hasError=fibersInError.has(fiber);if(hasError&&fiber.counter!==0){this.tasks.delete(fiber);return;}
if(fiber.node.status===3){this.tasks.delete(fiber);return;}
if(fiber.counter===0){if(!hasError){fiber.complete();}
if(fiber.appliedToDom){this.tasks.delete(fiber);}}}}
Scheduler.requestAnimationFrame=window.requestAnimationFrame.bind(window);let hasBeenLogged=false;const apps=new Set();window.__OWL_DEVTOOLS__||(window.__OWL_DEVTOOLS__={apps,Fiber,RootFiber,toRaw,reactive});class App extends TemplateSet{constructor(Root,config={}){super(config);this.scheduler=new Scheduler();this.subRoots=new Set();this.root=null;this.name=config.name||"";this.Root=Root;apps.add(this);if(config.test){this.dev=true;}
this.warnIfNoStaticProps=config.warnIfNoStaticProps||false;if(this.dev&&!config.test&&!hasBeenLogged){console.info(`Owl is running in 'dev' mode.`);hasBeenLogged=true;}
const env=config.env||{};const descrs=Object.getOwnPropertyDescriptors(env);this.env=Object.freeze(Object.create(Object.getPrototypeOf(env),descrs));this.props=config.props||{};}
mount(target,options){const root=this.createRoot(this.Root,{props:this.props});this.root=root.node;this.subRoots.delete(root.node);return root.mount(target,options);}
createRoot(Root,config={}){const props=config.props||{};const env=this.env;if(config.env){this.env=config.env;}
const restore=saveCurrent();const node=this.makeNode(Root,props);restore();if(config.env){this.env=env;}
this.subRoots.add(node);return{node,mount:(target,options)=>{App.validateTarget(target);if(this.dev){validateProps(Root,props,{__owl__:{app:this}});}
const prom=this.mountNode(node,target,options);return prom;},destroy:()=>{this.subRoots.delete(node);node.destroy();this.scheduler.processTasks();},};}
makeNode(Component,props){return new ComponentNode(Component,props,this,null,null);}
mountNode(node,target,options){const promise=new Promise((resolve,reject)=>{let isResolved=false;node.mounted.push(()=>{resolve(node.component);isResolved=true;});let handlers=nodeErrorHandlers.get(node);if(!handlers){handlers=[];nodeErrorHandlers.set(node,handlers);}
handlers.unshift((e)=>{if(!isResolved){reject(e);}
throw e;});});node.mountComponent(target,options);return promise;}
destroy(){if(this.root){for(let subroot of this.subRoots){subroot.destroy();}
this.root.destroy();this.scheduler.processTasks();}
apps.delete(this);}
createComponent(name,isStatic,hasSlotsProp,hasDynamicPropList,propList){const isDynamic=!isStatic;let arePropsDifferent;const hasNoProp=propList.length===0;if(hasSlotsProp){arePropsDifferent=(_1,_2)=>true;}
else if(hasDynamicPropList){arePropsDifferent=function(props1,props2){for(let k in props1){if(props1[k]!==props2[k]){return true;}}
return Object.keys(props1).length!==Object.keys(props2).length;};}
else if(hasNoProp){arePropsDifferent=(_1,_2)=>false;}
else{arePropsDifferent=function(props1,props2){for(let p of propList){if(props1[p]!==props2[p]){return true;}}
return false;};}
const updateAndRender=ComponentNode.prototype.updateAndRender;const initiateRender=ComponentNode.prototype.initiateRender;return(props,key,ctx,parent,C)=>{let children=ctx.children;let node=children[key];if(isDynamic&&node&&node.component.constructor!==C){node=undefined;}
const parentFiber=ctx.fiber;if(node){if(arePropsDifferent(node.props,props)||parentFiber.deep||node.forceNextRender){node.forceNextRender=false;updateAndRender.call(node,props,parentFiber);}}
else{if(isStatic){const components=parent.constructor.components;if(!components){throw new OwlError(`Cannot find the definition of component "${name}", missing static components key in parent`);}
C=components[name];if(!C){throw new OwlError(`Cannot find the definition of component "${name}"`);}
else if(!(C.prototype instanceof Component)){throw new OwlError(`"${name}" is not a Component. It must inherit from the Component class`);}}
node=new ComponentNode(C,props,this,ctx,key);children[key]=node;initiateRender.call(node,new Fiber(node,parentFiber));}
parentFiber.childrenMap[key]=node;return node;};}
handleError(...args){return handleError(...args);}}
App.validateTarget=validateTarget;App.apps=apps;App.version=version;async function mount(C,target,config={}){return new App(C,config).mount(target,config);}
const mainEventHandler=(data,ev,currentTarget)=>{const{data:_data,modifiers}=filterOutModifiersFromData(data);data=_data;let stopped=false;if(modifiers.length){let selfMode=false;const isSelf=ev.target===currentTarget;for(const mod of modifiers){switch(mod){case"self":selfMode=true;if(isSelf){continue;}
else{return stopped;}
case"prevent":if((selfMode&&isSelf)||!selfMode)
ev.preventDefault();continue;case"stop":if((selfMode&&isSelf)||!selfMode)
ev.stopPropagation();stopped=true;continue;}}}
if(Object.hasOwnProperty.call(data,0)){const handler=data[0];if(typeof handler!=="function"){throw new OwlError(`Invalid handler (expected a function, received: '${handler}')`);}
let node=data[1]?data[1].__owl__:null;if(node?node.status===1:true){handler.call(node?node.component:null,ev);}}
return stopped;};function status(component){switch(component.__owl__.status){case 0:return"new";case 2:return"cancelled";case 1:return"mounted";case 3:return"destroyed";}}
function useRef(name){const node=getCurrent();const refs=node.refs;return{get el(){const el=refs[name];return inOwnerDocument(el)?el:null;},};}
function useEnv(){return getCurrent().component.env;}
function extendEnv(currentEnv,extension){const env=Object.create(currentEnv);const descrs=Object.getOwnPropertyDescriptors(extension);return Object.freeze(Object.defineProperties(env,descrs));}
function useSubEnv(envExtension){const node=getCurrent();node.component.env=extendEnv(node.component.env,envExtension);useChildSubEnv(envExtension);}
function useChildSubEnv(envExtension){const node=getCurrent();node.childEnv=extendEnv(node.childEnv,envExtension);}
function useEffect(effect,computeDependencies=()=>[NaN]){let cleanup;let dependencies;onMounted(()=>{dependencies=computeDependencies();cleanup=effect(...dependencies);});onPatched(()=>{const newDeps=computeDependencies();const shouldReapply=newDeps.some((val,i)=>val!==dependencies[i]);if(shouldReapply){dependencies=newDeps;if(cleanup){cleanup();}
cleanup=effect(...dependencies);}});onWillUnmount(()=>cleanup&&cleanup());}
function useExternalListener(target,eventName,handler,eventParams){const node=getCurrent();const boundHandler=handler.bind(node.component);onMounted(()=>target.addEventListener(eventName,boundHandler,eventParams));onWillUnmount(()=>target.removeEventListener(eventName,boundHandler,eventParams));}
config.shouldNormalizeDom=false;config.mainEventHandler=mainEventHandler;const blockDom={config,mount:mount$1,patch,remove,list,multi,text,toggler,createBlock,html,comment,};const __info__={version:App.version,};TemplateSet.prototype._compileTemplate=function _compileTemplate(name,template){return compile(template,{name,dev:this.dev,translateFn:this.translateFn,translatableAttributes:this.translatableAttributes,customDirectives:this.customDirectives,hasGlobalValues:this.hasGlobalValues,});};exports.App=App;exports.Component=Component;exports.EventBus=EventBus;exports.OwlError=OwlError;exports.__info__=__info__;exports.batched=batched;exports.blockDom=blockDom;exports.loadFile=loadFile;exports.markRaw=markRaw;exports.markup=markup;exports.mount=mount;exports.onError=onError;exports.onMounted=onMounted;exports.onPatched=onPatched;exports.onRendered=onRendered;exports.onWillDestroy=onWillDestroy;exports.onWillPatch=onWillPatch;exports.onWillRender=onWillRender;exports.onWillStart=onWillStart;exports.onWillUnmount=onWillUnmount;exports.onWillUpdateProps=onWillUpdateProps;exports.reactive=reactive;exports.status=status;exports.toRaw=toRaw;exports.useChildSubEnv=useChildSubEnv;exports.useComponent=useComponent;exports.useEffect=useEffect;exports.useEnv=useEnv;exports.useExternalListener=useExternalListener;exports.useRef=useRef;exports.useState=useState;exports.useSubEnv=useSubEnv;exports.validate=validate;exports.validateType=validateType;exports.whenReady=whenReady;exports.xml=xml;Object.defineProperty(exports,'__esModule',{value:true});__info__.date='2025-03-05T08:37:58.580Z';__info__.hash='2b5cea9';__info__.url='https://github.com/odoo/owl';})(this.owl=this.owl||{});;

/* /web/static/lib/owl/odoo_module.js */
odoo.define("@odoo/owl",[],function(){"use strict";return owl;});;

/* /web/static/lib/jquery/jquery.js */
(function(global,factory){"use strict";if(typeof module==="object"&&typeof module.exports==="object"){module.exports=global.document?factory(global,true):function(w){if(!w.document){throw new Error("jQuery requires a window with a document");}
return factory(w);};}else{factory(global);}})(typeof window!=="undefined"?window:this,function(window,noGlobal){"use strict";var arr=[];var getProto=Object.getPrototypeOf;var slice=arr.slice;var flat=arr.flat?function(array){return arr.flat.call(array);}:function(array){return arr.concat.apply([],array);};var push=arr.push;var indexOf=arr.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var fnToString=hasOwn.toString;var ObjectFunctionString=fnToString.call(Object);var support={};var isFunction=function isFunction(obj){return typeof obj==="function"&&typeof obj.nodeType!=="number"&&typeof obj.item!=="function";};var isWindow=function isWindow(obj){return obj!=null&&obj===obj.window;};var document=window.document;var preservedScriptAttributes={type:true,src:true,nonce:true,noModule:true};function DOMEval(code,node,doc){doc=doc||document;var i,val,script=doc.createElement("script");script.text=code;if(node){for(i in preservedScriptAttributes){val=node[i]||node.getAttribute&&node.getAttribute(i);if(val){script.setAttribute(i,val);}}}
doc.head.appendChild(script).parentNode.removeChild(script);}
function toType(obj){if(obj==null){return obj+"";}
return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj;}
var
version="3.6.3",jQuery=function(selector,context){return new jQuery.fn.init(selector,context);};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,length:0,toArray:function(){return slice.call(this);},get:function(num){if(num==null){return slice.call(this);}
return num<0?this[num+this.length]:this[num];},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);ret.prevObject=this;return ret;},each:function(callback){return jQuery.each(this,callback);},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},slice:function(){return this.pushStack(slice.apply(this,arguments));},first:function(){return this.eq(0);},last:function(){return this.eq(-1);},even:function(){return this.pushStack(jQuery.grep(this,function(_elem,i){return(i+1)%2;}));},odd:function(){return this.pushStack(jQuery.grep(this,function(_elem,i){return i%2;}));},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[]);},end:function(){return this.prevObject||this.constructor();},push:push,sort:arr.sort,splice:arr.splice};jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++;}
if(typeof target!=="object"&&!isFunction(target)){target={};}
if(i===length){target=this;i--;}
for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){copy=options[name];if(name==="__proto__"||target===copy){continue;}
if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=Array.isArray(copy)))){src=target[name];if(copyIsArray&&!Array.isArray(src)){clone=[];}else if(!copyIsArray&&!jQuery.isPlainObject(src)){clone={};}else{clone=src;}
copyIsArray=false;target[name]=jQuery.extend(deep,clone,copy);}else if(copy!==undefined){target[name]=copy;}}}}
return target;};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg);},noop:function(){},isPlainObject:function(obj){var proto,Ctor;if(!obj||toString.call(obj)!=="[object Object]"){return false;}
proto=getProto(obj);if(!proto){return true;}
Ctor=hasOwn.call(proto,"constructor")&&proto.constructor;return typeof Ctor==="function"&&fnToString.call(Ctor)===ObjectFunctionString;},isEmptyObject:function(obj){var name;for(name in obj){return false;}
return true;},globalEval:function(code,options,doc){DOMEval(code,{nonce:options&&options.nonce},doc);},each:function(obj,callback){var length,i=0;if(isArrayLike(obj)){length=obj.length;for(;i<length;i++){if(callback.call(obj[i],i,obj[i])===false){break;}}}else{for(i in obj){if(callback.call(obj[i],i,obj[i])===false){break;}}}
return obj;},makeArray:function(arr,results){var ret=results||[];if(arr!=null){if(isArrayLike(Object(arr))){jQuery.merge(ret,typeof arr==="string"?[arr]:arr);}else{push.call(ret,arr);}}
return ret;},inArray:function(elem,arr,i){return arr==null?-1:indexOf.call(arr,elem,i);},merge:function(first,second){var len=+second.length,j=0,i=first.length;for(;j<len;j++){first[i++]=second[j];}
first.length=i;return first;},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i]);}}
return matches;},map:function(elems,callback,arg){var length,value,i=0,ret=[];if(isArrayLike(elems)){length=elems.length;for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}
return flat(ret);},guid:1,support:support});if(typeof Symbol==="function"){jQuery.fn[Symbol.iterator]=arr[Symbol.iterator];}
jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(_i,name){class2type["[object "+name+"]"]=name.toLowerCase();});function isArrayLike(obj){var length=!!obj&&"length"in obj&&obj.length,type=toType(obj);if(isFunction(obj)||isWindow(obj)){return false;}
return type==="array"||length===0||typeof length==="number"&&length>0&&(length-1)in obj;}
var Sizzle=(function(window){var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+1*new Date(),preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),nonnativeSelectorCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=true;}
return 0;},hasOwn=({}).hasOwnProperty,arr=[],pop=arr.pop,pushNative=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){var i=0,len=list.length;for(;i<len;i++){if(list[i]===elem){return i;}}
return-1;},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|"+"ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",identifier="(?:\\\\[\\da-fA-F]{1,6}"+whitespace+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",attributes="\\["+whitespace+"*("+identifier+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+
whitespace+"*\\]",pseudos=":("+identifier+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+
whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rdescend=new RegExp(whitespace+"|>"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={"ID":new RegExp("^#("+identifier+")"),"CLASS":new RegExp("^\\.("+identifier+")"),"TAG":new RegExp("^("+identifier+"|[*])"),"ATTR":new RegExp("^"+attributes),"PSEUDO":new RegExp("^"+pseudos),"CHILD":new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+
whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+
whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),"bool":new RegExp("^(?:"+booleans+")$","i"),"needsContext":new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rhtml=/HTML$/i,rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,runescape=new RegExp("\\\\[\\da-fA-F]{1,6}"+whitespace+"?|\\\\([^\\r\\n\\f])","g"),funescape=function(escape,nonHex){var high="0x"+escape.slice(1)-0x10000;return nonHex?nonHex:high<0?String.fromCharCode(high+0x10000):String.fromCharCode(high>>10|0xD800,high&0x3FF|0xDC00);},rcssescape=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,fcssescape=function(ch,asCodePoint){if(asCodePoint){if(ch==="\0"){return"\uFFFD";}
return ch.slice(0,-1)+"\\"+
ch.charCodeAt(ch.length-1).toString(16)+" ";}
return"\\"+ch;},unloadHandler=function(){setDocument();},inDisabledFieldset=addCombinator(function(elem){return elem.disabled===true&&elem.nodeName.toLowerCase()==="fieldset";},{dir:"parentNode",next:"legend"});try{push.apply((arr=slice.call(preferredDoc.childNodes)),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType;}catch(e){push={apply:arr.length?function(target,els){pushNative.apply(target,slice.call(els));}:function(target,els){var j=target.length,i=0;while((target[j++]=els[i++])){}
target.length=j-1;}};}
function Sizzle(selector,context,results,seed){var m,i,elem,nid,match,groups,newSelector,newContext=context&&context.ownerDocument,nodeType=context?context.nodeType:9;results=results||[];if(typeof selector!=="string"||!selector||nodeType!==1&&nodeType!==9&&nodeType!==11){return results;}
if(!seed){setDocument(context);context=context||document;if(documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector))){if((m=match[1])){if(nodeType===9){if((elem=context.getElementById(m))){if(elem.id===m){results.push(elem);return results;}}else{return results;}}else{if(newContext&&(elem=newContext.getElementById(m))&&contains(context,elem)&&elem.id===m){results.push(elem);return results;}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results;}else if((m=match[3])&&support.getElementsByClassName&&context.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results;}}
if(support.qsa&&!nonnativeSelectorCache[selector+" "]&&(!rbuggyQSA||!rbuggyQSA.test(selector))&&(nodeType!==1||context.nodeName.toLowerCase()!=="object")){newSelector=selector;newContext=context;if(nodeType===1&&(rdescend.test(selector)||rcombinators.test(selector))){newContext=rsibling.test(selector)&&testContext(context.parentNode)||context;if(newContext!==context||!support.scope){if((nid=context.getAttribute("id"))){nid=nid.replace(rcssescape,fcssescape);}else{context.setAttribute("id",(nid=expando));}}
groups=tokenize(selector);i=groups.length;while(i--){groups[i]=(nid?"#"+nid:":scope")+" "+
toSelector(groups[i]);}
newSelector=groups.join(",");}
try{if(support.cssSupportsSelector&&!CSS.supports("selector(:is("+newSelector+"))")){throw new Error();}
push.apply(results,newContext.querySelectorAll(newSelector));return results;}catch(qsaError){nonnativeSelectorCache(selector,true);}finally{if(nid===expando){context.removeAttribute("id");}}}}}
return select(selector.replace(rtrim,"$1"),context,results,seed);}
function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()];}
return(cache[key+" "]=value);}
return cache;}
function markFunction(fn){fn[expando]=true;return fn;}
function assert(fn){var el=document.createElement("fieldset");try{return!!fn(el);}catch(e){return false;}finally{if(el.parentNode){el.parentNode.removeChild(el);}
el=null;}}
function addHandle(attrs,handler){var arr=attrs.split("|"),i=arr.length;while(i--){Expr.attrHandle[arr[i]]=handler;}}
function siblingCheck(a,b){var cur=b&&a,diff=cur&&a.nodeType===1&&b.nodeType===1&&a.sourceIndex-b.sourceIndex;if(diff){return diff;}
if(cur){while((cur=cur.nextSibling)){if(cur===b){return-1;}}}
return a?1:-1;}
function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type===type;};}
function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&elem.type===type;};}
function createDisabledPseudo(disabled){return function(elem){if("form"in elem){if(elem.parentNode&&elem.disabled===false){if("label"in elem){if("label"in elem.parentNode){return elem.parentNode.disabled===disabled;}else{return elem.disabled===disabled;}}
return elem.isDisabled===disabled||elem.isDisabled!==!disabled&&inDisabledFieldset(elem)===disabled;}
return elem.disabled===disabled;}else if("label"in elem){return elem.disabled===disabled;}
return false;};}
function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[(j=matchIndexes[i])]){seed[j]=!(matches[j]=seed[j]);}}});});}
function testContext(context){return context&&typeof context.getElementsByTagName!=="undefined"&&context;}
support=Sizzle.support={};isXML=Sizzle.isXML=function(elem){var namespace=elem&&elem.namespaceURI,docElem=elem&&(elem.ownerDocument||elem).documentElement;return!rhtml.test(namespace||docElem&&docElem.nodeName||"HTML");};setDocument=Sizzle.setDocument=function(node){var hasCompare,subWindow,doc=node?node.ownerDocument||node:preferredDoc;if(doc==document||doc.nodeType!==9||!doc.documentElement){return document;}
document=doc;docElem=document.documentElement;documentIsHTML=!isXML(document);if(preferredDoc!=document&&(subWindow=document.defaultView)&&subWindow.top!==subWindow){if(subWindow.addEventListener){subWindow.addEventListener("unload",unloadHandler,false);}else if(subWindow.attachEvent){subWindow.attachEvent("onunload",unloadHandler);}}
support.scope=assert(function(el){docElem.appendChild(el).appendChild(document.createElement("div"));return typeof el.querySelectorAll!=="undefined"&&!el.querySelectorAll(":scope fieldset div").length;});support.cssSupportsSelector=assert(function(){return CSS.supports("selector(*)")&&document.querySelectorAll(":is(:jqfake)")&&!CSS.supports("selector(:is(*,:jqfake))");});support.attributes=assert(function(el){el.className="i";return!el.getAttribute("className");});support.getElementsByTagName=assert(function(el){el.appendChild(document.createComment(""));return!el.getElementsByTagName("*").length;});support.getElementsByClassName=rnative.test(document.getElementsByClassName);support.getById=assert(function(el){docElem.appendChild(el).id=expando;return!document.getElementsByName||!document.getElementsByName(expando).length;});if(support.getById){Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId;};};Expr.find["ID"]=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var elem=context.getElementById(id);return elem?[elem]:[];}};}else{Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return node&&node.value===attrId;};};Expr.find["ID"]=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var node,i,elems,elem=context.getElementById(id);if(elem){node=elem.getAttributeNode("id");if(node&&node.value===id){return[elem];}
elems=context.getElementsByName(id);i=0;while((elem=elems[i++])){node=elem.getAttributeNode("id");if(node&&node.value===id){return[elem];}}}
return[];}};}
Expr.find["TAG"]=support.getElementsByTagName?function(tag,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(tag);}else if(support.qsa){return context.querySelectorAll(tag);}}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if(tag==="*"){while((elem=results[i++])){if(elem.nodeType===1){tmp.push(elem);}}
return tmp;}
return results;};Expr.find["CLASS"]=support.getElementsByClassName&&function(className,context){if(typeof context.getElementsByClassName!=="undefined"&&documentIsHTML){return context.getElementsByClassName(className);}};rbuggyMatches=[];rbuggyQSA=[];if((support.qsa=rnative.test(document.querySelectorAll))){assert(function(el){var input;docElem.appendChild(el).innerHTML="<a id='"+expando+"'></a>"+"<select id='"+expando+"-\r\\' msallowcapture=''>"+"<option selected=''></option></select>";if(el.querySelectorAll("[msallowcapture^='']").length){rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")");}
if(!el.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")");}
if(!el.querySelectorAll("[id~="+expando+"-]").length){rbuggyQSA.push("~=");}
input=document.createElement("input");input.setAttribute("name","");el.appendChild(input);if(!el.querySelectorAll("[name='']").length){rbuggyQSA.push("\\["+whitespace+"*name"+whitespace+"*="+
whitespace+"*(?:''|\"\")");}
if(!el.querySelectorAll(":checked").length){rbuggyQSA.push(":checked");}
if(!el.querySelectorAll("a#"+expando+"+*").length){rbuggyQSA.push(".#.+[+~]");}});assert(function(el){el.innerHTML="<a href='' disabled='disabled'></a>"+"<select disabled='disabled'><option/></select>";var input=document.createElement("input");input.setAttribute("type","hidden");el.appendChild(input).setAttribute("name","D");if(el.querySelectorAll("[name=d]").length){rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?=");}
if(el.querySelectorAll(":enabled").length!==2){rbuggyQSA.push(":enabled",":disabled");}
docElem.appendChild(el).disabled=true;if(el.querySelectorAll(":disabled").length!==2){rbuggyQSA.push(":enabled",":disabled");}});}
if((support.matchesSelector=rnative.test((matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector)))){assert(function(el){support.disconnectedMatch=matches.call(el,"*");});}
if(!support.cssSupportsSelector){rbuggyQSA.push(":has");}
rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|"));hasCompare=rnative.test(docElem.compareDocumentPosition);contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=a.nodeType===9&&a.documentElement||a,bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16));}:function(a,b){if(b){while((b=b.parentNode)){if(b===a){return true;}}}
return false;};sortOrder=hasCompare?function(a,b){if(a===b){hasDuplicate=true;return 0;}
var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare;}
compare=(a.ownerDocument||a)==(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||(!support.sortDetached&&b.compareDocumentPosition(a)===compare)){if(a==document||a.ownerDocument==preferredDoc&&contains(preferredDoc,a)){return-1;}
if(b==document||b.ownerDocument==preferredDoc&&contains(preferredDoc,b)){return 1;}
return sortInput?(indexOf(sortInput,a)-indexOf(sortInput,b)):0;}
return compare&4?-1:1;}:function(a,b){if(a===b){hasDuplicate=true;return 0;}
var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup){return a==document?-1:b==document?1:aup?-1:bup?1:sortInput?(indexOf(sortInput,a)-indexOf(sortInput,b)):0;}else if(aup===bup){return siblingCheck(a,b);}
cur=a;while((cur=cur.parentNode)){ap.unshift(cur);}
cur=b;while((cur=cur.parentNode)){bp.unshift(cur);}
while(ap[i]===bp[i]){i++;}
return i?siblingCheck(ap[i],bp[i]):ap[i]==preferredDoc?-1:bp[i]==preferredDoc?1:0;};return document;};Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements);};Sizzle.matchesSelector=function(elem,expr){setDocument(elem);if(support.matchesSelector&&documentIsHTML&&!nonnativeSelectorCache[expr+" "]&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret;}}catch(e){nonnativeSelectorCache(expr,true);}}
return Sizzle(expr,document,null,[elem]).length>0;};Sizzle.contains=function(context,elem){if((context.ownerDocument||context)!=document){setDocument(context);}
return contains(context,elem);};Sizzle.attr=function(elem,name){if((elem.ownerDocument||elem)!=document){setDocument(elem);}
var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;return val!==undefined?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null;};Sizzle.escape=function(sel){return(sel+"").replace(rcssescape,fcssescape);};Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg);};Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.detectDuplicates;sortInput=!support.sortStable&&results.slice(0);results.sort(sortOrder);if(hasDuplicate){while((elem=results[i++])){if(elem===results[i]){j=duplicates.push(i);}}
while(j--){results.splice(duplicates[j],1);}}
sortInput=null;return results;};getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while((node=elem[i++])){ret+=getText(node);}}else if(nodeType===1||nodeType===9||nodeType===11){if(typeof elem.textContent==="string"){return elem.textContent;}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem);}}}else if(nodeType===3||nodeType===4){return elem.nodeValue;}
return ret;};Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{"ATTR":function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~="){match[3]=" "+match[3]+" ";}
return match.slice(0,4);},"CHILD":function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){Sizzle.error(match[0]);}
match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd"));match[5]=+((match[7]+match[8])||match[3]==="odd");}else if(match[3]){Sizzle.error(match[0]);}
return match;},"PSEUDO":function(match){var excess,unquoted=!match[6]&&match[2];if(matchExpr["CHILD"].test(match[0])){return null;}
if(match[3]){match[2]=match[4]||match[5]||"";}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess);}
return match.slice(0,3);}},filter:{"TAG":function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return true;}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName;};},"CLASS":function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||typeof elem.getAttribute!=="undefined"&&elem.getAttribute("class")||"");});},"ATTR":function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);if(result==null){return operator==="!=";}
if(!operator){return true;}
result+="";return operator==="="?result===check:operator==="!="?result!==check:operator==="^="?check&&result.indexOf(check)===0:operator==="*="?check&&result.indexOf(check)>-1:operator==="$="?check&&result.slice(-check.length)===check:operator==="~="?(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1:operator==="|="?result===check||result.slice(0,check.length+1)===check+"-":false;};},"CHILD":function(type,what,_argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return!!elem.parentNode;}:function(elem,_context,xml){var cache,uniqueCache,outerCache,node,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType,diff=false;if(parent){if(simple){while(dir){node=elem;while((node=node[dir])){if(ofType?node.nodeName.toLowerCase()===name:node.nodeType===1){return false;}}
start=dir=type==="only"&&!start&&"nextSibling";}
return true;}
start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){node=parent;outerCache=node[expando]||(node[expando]={});uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={});cache=uniqueCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if(node.nodeType===1&&++diff&&node===elem){uniqueCache[type]=[dirruns,nodeIndex,diff];break;}}}else{if(useCache){node=elem;outerCache=node[expando]||(node[expando]={});uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={});cache=uniqueCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex;}
if(diff===false){while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if((ofType?node.nodeName.toLowerCase()===name:node.nodeType===1)&&++diff){if(useCache){outerCache=node[expando]||(node[expando]={});uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={});uniqueCache[type]=[dirruns,diff];}
if(node===elem){break;}}}}}
diff-=last;return diff===first||(diff%first===0&&diff/first>=0);}};},"PSEUDO":function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument);}
if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i]);}}):function(elem){return fn(elem,0,args);};}
return fn;}},pseudos:{"not":markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,_context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if((elem=unmatched[i])){seed[i]=!(matches[i]=elem);}}}):function(elem,_context,xml){input[0]=elem;matcher(input,null,xml,results);input[0]=null;return!results.pop();};}),"has":markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0;};}),"contains":markFunction(function(text){text=text.replace(runescape,funescape);return function(elem){return(elem.textContent||getText(elem)).indexOf(text)>-1;};}),"lang":markFunction(function(lang){if(!ridentifier.test(lang||"")){Sizzle.error("unsupported lang: "+lang);}
lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if((elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang"))){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0;}}while((elem=elem.parentNode)&&elem.nodeType===1);return false;};}),"target":function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id;},"root":function(elem){return elem===docElem;},"focus":function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex);},"enabled":createDisabledPseudo(false),"disabled":createDisabledPseudo(true),"checked":function(elem){var nodeName=elem.nodeName.toLowerCase();return(nodeName==="input"&&!!elem.checked)||(nodeName==="option"&&!!elem.selected);},"selected":function(elem){if(elem.parentNode){elem.parentNode.selectedIndex;}
return elem.selected===true;},"empty":function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false;}}
return true;},"parent":function(elem){return!Expr.pseudos["empty"](elem);},"header":function(elem){return rheader.test(elem.nodeName);},"input":function(elem){return rinputs.test(elem.nodeName);},"button":function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type==="button"||name==="button";},"text":function(elem){var attr;return elem.nodeName.toLowerCase()==="input"&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text");},"first":createPositionalPseudo(function(){return[0];}),"last":createPositionalPseudo(function(_matchIndexes,length){return[length-1];}),"eq":createPositionalPseudo(function(_matchIndexes,length,argument){return[argument<0?argument+length:argument];}),"even":createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i);}
return matchIndexes;}),"odd":createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i);}
return matchIndexes;}),"lt":createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument>length?length:argument;for(;--i>=0;){matchIndexes.push(i);}
return matchIndexes;}),"gt":createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i);}
return matchIndexes;})}};Expr.pseudos["nth"]=Expr.pseudos["eq"];for(i in{radio:true,checkbox:true,file:true,password:true,image:true}){Expr.pseudos[i]=createInputPseudo(i);}
for(i in{submit:true,reset:true}){Expr.pseudos[i]=createButtonPseudo(i);}
function setFilters(){}
setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters();tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached){return parseOnly?0:cached.slice(0);}
soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar;}
groups.push((tokens=[]));}
matched=false;if((match=rcombinators.exec(soFar))){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrim," ")});soFar=soFar.slice(matched.length);}
for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length);}}
if(!matched){break;}}
return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0);};function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++){selector+=tokens[i].value;}
return selector;}
function addCombinator(matcher,combinator,base){var dir=combinator.dir,skip=combinator.next,key=skip||dir,checkNonElements=base&&key==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml);}}
return false;}:function(elem,context,xml){var oldCache,uniqueCache,outerCache,newCache=[dirruns,doneName];if(xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return true;}}}}else{while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});uniqueCache=outerCache[elem.uniqueID]||(outerCache[elem.uniqueID]={});if(skip&&skip===elem.nodeName.toLowerCase()){elem=elem[dir]||elem;}else if((oldCache=uniqueCache[key])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return(newCache[2]=oldCache[2]);}else{uniqueCache[key]=newCache;if((newCache[2]=matcher(elem,context,xml))){return true;}}}}}
return false;};}
function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return false;}}
return true;}:matchers[0];}
function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){Sizzle(selector,contexts[i],results);}
return results;}
function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if((elem=unmatched[i])){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i);}}}}
return newUnmatched;}
function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter);}
if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector);}
return markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems,matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher){matcher(matcherIn,matcherOut,context,xml);}
if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if((elem=temp[i])){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem);}}}
if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if((elem=matcherOut[i])){temp.push((matcherIn[i]=elem));}}
postFinder(null,(matcherOut=[]),temp,xml);}
i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem);}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){postFinder(null,results,matcherOut,xml);}else{push.apply(results,matcherOut);}}});}
function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext;},implicitRelative,true),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1;},implicitRelative,true),matchers=[function(elem,context,xml){var ret=(!leadingRelative&&(xml||context!==outermostContext))||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));checkContext=null;return ret;}];for(;i<len;i++){if((matcher=Expr.relative[tokens[i].type])){matchers=[addCombinator(elementMatcher(matchers),matcher)];}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break;}}
return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrim,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens((tokens=tokens.slice(j))),j<len&&toSelector(tokens));}
matchers.push(matcher);}}
return elementMatcher(matchers);}
function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find["TAG"]("*",outermost),dirrunsUnique=(dirruns+=contextBackup==null?1:Math.random()||0.1),len=elems.length;if(outermost){outermostContext=context==document||context||outermost;}
for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;if(!context&&elem.ownerDocument!=document){setDocument(elem);xml=!documentIsHTML;}
while((matcher=elementMatchers[j++])){if(matcher(elem,context||document,xml)){results.push(elem);break;}}
if(outermost){dirruns=dirrunsUnique;}}
if(bySet){if((elem=!matcher&&elem)){matchedCount--;}
if(seed){unmatched.push(elem);}}}
matchedCount+=i;if(bySet&&i!==matchedCount){j=0;while((matcher=setMatchers[j++])){matcher(unmatched,setMatched,context,xml);}
if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results);}}}
setMatched=condense(setMatched);}
push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&(matchedCount+setMatchers.length)>1){Sizzle.uniqueSort(results);}}
if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup;}
return unmatched;};return bySet?markFunction(superMatcher):superMatcher;}
compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector);}
i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached);}else{elementMatchers.push(cached);}}
cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector;}
return cached;};select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize((selector=compiled.selector||selector));results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find["ID"](token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results;}else if(compiled){context=context.parentNode;}
selector=selector.slice(tokens.shift().value.length);}
i=matchExpr["needsContext"].test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[(type=token.type)]){break;}
if((find=Expr.find[type])){if((seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context))){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results;}
break;}}}}
(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,!context||rsibling.test(selector)&&testContext(context.parentNode)||context);return results;};support.sortStable=expando.split("").sort(sortOrder).join("")===expando;support.detectDuplicates=!!hasDuplicate;setDocument();support.sortDetached=assert(function(el){return el.compareDocumentPosition(document.createElement("fieldset"))&1;});if(!assert(function(el){el.innerHTML="<a href='#'></a>";return el.firstChild.getAttribute("href")==="#";})){addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML){return elem.getAttribute(name,name.toLowerCase()==="type"?1:2);}});}
if(!support.attributes||!assert(function(el){el.innerHTML="<input/>";el.firstChild.setAttribute("value","");return el.firstChild.getAttribute("value")==="";})){addHandle("value",function(elem,_name,isXML){if(!isXML&&elem.nodeName.toLowerCase()==="input"){return elem.defaultValue;}});}
if(!assert(function(el){return el.getAttribute("disabled")==null;})){addHandle(booleans,function(elem,name,isXML){var val;if(!isXML){return elem[name]===true?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null;}});}
return Sizzle;})(window);jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.uniqueSort=jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;jQuery.escapeSelector=Sizzle.escape;var dir=function(elem,dir,until){var matched=[],truncate=until!==undefined;while((elem=elem[dir])&&elem.nodeType!==9){if(elem.nodeType===1){if(truncate&&jQuery(elem).is(until)){break;}
matched.push(elem);}}
return matched;};var siblings=function(n,elem){var matched=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){matched.push(n);}}
return matched;};var rneedsContext=jQuery.expr.match.needsContext;function nodeName(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase();}
var rsingleTag=(/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i);function winnow(elements,qualifier,not){if(isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not;});}
if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return(elem===qualifier)!==not;});}
if(typeof qualifier!=="string"){return jQuery.grep(elements,function(elem){return(indexOf.call(qualifier,elem)>-1)!==not;});}
return jQuery.filter(qualifier,elements,not);}
jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not){expr=":not("+expr+")";}
if(elems.length===1&&elem.nodeType===1){return jQuery.find.matchesSelector(elem,expr)?[elem]:[];}
return jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return elem.nodeType===1;}));};jQuery.fn.extend({find:function(selector){var i,ret,len=this.length,self=this;if(typeof selector!=="string"){return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++){if(jQuery.contains(self[i],this)){return true;}}}));}
ret=this.pushStack([]);for(i=0;i<len;i++){jQuery.find(selector,self[i],ret);}
return len>1?jQuery.uniqueSort(ret):ret;},filter:function(selector){return this.pushStack(winnow(this,selector||[],false));},not:function(selector){return this.pushStack(winnow(this,selector||[],true));},is:function(selector){return!!winnow(this,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length;}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,init=jQuery.fn.init=function(selector,context,root){var match,elem;if(!selector){return this;}
root=root||rootjQuery;if(typeof selector==="string"){if(selector[0]==="<"&&selector[selector.length-1]===">"&&selector.length>=3){match=[null,selector,null];}else{match=rquickExpr.exec(selector);}
if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(isFunction(this[match])){this[match](context[match]);}else{this.attr(match,context[match]);}}}
return this;}else{elem=document.getElementById(match[2]);if(elem){this[0]=elem;this.length=1;}
return this;}}else if(!context||context.jquery){return(context||root).find(selector);}else{return this.constructor(context).find(selector);}}else if(selector.nodeType){this[0]=selector;this.length=1;return this;}else if(isFunction(selector)){return root.ready!==undefined?root.ready(selector):selector(jQuery);}
return jQuery.makeArray(selector,this);};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){var i=0;for(;i<l;i++){if(jQuery.contains(this,targets[i])){return true;}}});},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],targets=typeof selectors!=="string"&&jQuery(selectors);if(!rneedsContext.test(selectors)){for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(targets?targets.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break;}}}}
return this.pushStack(matched.length>1?jQuery.uniqueSort(matched):matched);},index:function(elem){if(!elem){return(this[0]&&this[0].parentNode)?this.first().prevAll().length:-1;}
if(typeof elem==="string"){return indexOf.call(jQuery(elem),this[0]);}
return indexOf.call(this,elem.jquery?elem[0]:elem);},add:function(selector,context){return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(),jQuery(selector,context))));},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector));}});function sibling(cur,dir){while((cur=cur[dir])&&cur.nodeType!==1){}
return cur;}
jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null;},parents:function(elem){return dir(elem,"parentNode");},parentsUntil:function(elem,_i,until){return dir(elem,"parentNode",until);},next:function(elem){return sibling(elem,"nextSibling");},prev:function(elem){return sibling(elem,"previousSibling");},nextAll:function(elem){return dir(elem,"nextSibling");},prevAll:function(elem){return dir(elem,"previousSibling");},nextUntil:function(elem,_i,until){return dir(elem,"nextSibling",until);},prevUntil:function(elem,_i,until){return dir(elem,"previousSibling",until);},siblings:function(elem){return siblings((elem.parentNode||{}).firstChild,elem);},children:function(elem){return siblings(elem.firstChild);},contents:function(elem){if(elem.contentDocument!=null&&getProto(elem.contentDocument)){return elem.contentDocument;}
if(nodeName(elem,"template")){elem=elem.content||elem;}
return jQuery.merge([],elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);if(name.slice(-5)!=="Until"){selector=until;}
if(selector&&typeof selector==="string"){matched=jQuery.filter(selector,matched);}
if(this.length>1){if(!guaranteedUnique[name]){jQuery.uniqueSort(matched);}
if(rparentsprev.test(name)){matched.reverse();}}
return this.pushStack(matched);};});var rnothtmlwhite=(/[^\x20\t\r\n\f]+/g);function createOptions(options){var object={};jQuery.each(options.match(rnothtmlwhite)||[],function(_,flag){object[flag]=true;});return object;}
jQuery.Callbacks=function(options){options=typeof options==="string"?createOptions(options):jQuery.extend({},options);var
firing,memory,fired,locked,list=[],queue=[],firingIndex=-1,fire=function(){locked=locked||options.once;fired=firing=true;for(;queue.length;firingIndex=-1){memory=queue.shift();while(++firingIndex<list.length){if(list[firingIndex].apply(memory[0],memory[1])===false&&options.stopOnFalse){firingIndex=list.length;memory=false;}}}
if(!options.memory){memory=false;}
firing=false;if(locked){if(memory){list=[];}else{list="";}}},self={add:function(){if(list){if(memory&&!firing){firingIndex=list.length-1;queue.push(memory);}
(function add(args){jQuery.each(args,function(_,arg){if(isFunction(arg)){if(!options.unique||!self.has(arg)){list.push(arg);}}else if(arg&&arg.length&&toType(arg)!=="string"){add(arg);}});})(arguments);if(memory&&!firing){fire();}}
return this;},remove:function(){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(index<=firingIndex){firingIndex--;}}});return this;},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:list.length>0;},empty:function(){if(list){list=[];}
return this;},disable:function(){locked=queue=[];list=memory="";return this;},disabled:function(){return!list;},lock:function(){locked=queue=[];if(!memory&&!firing){list=memory="";}
return this;},locked:function(){return!!locked;},fireWith:function(context,args){if(!locked){args=args||[];args=[context,args.slice?args.slice():args];queue.push(args);if(!firing){fire();}}
return this;},fire:function(){self.fireWith(this,arguments);return this;},fired:function(){return!!fired;}};return self;};function Identity(v){return v;}
function Thrower(ex){throw ex;}
function adoptValue(value,resolve,reject,noValue){var method;try{if(value&&isFunction((method=value.promise))){method.call(value).done(resolve).fail(reject);}else if(value&&isFunction((method=value.then))){method.call(value,resolve,reject);}else{resolve.apply(undefined,[value].slice(noValue));}}catch(value){reject.apply(undefined,[value]);}}
jQuery.extend({Deferred:function(func){var tuples=[["notify","progress",jQuery.Callbacks("memory"),jQuery.Callbacks("memory"),2],["resolve","done",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),0,"resolved"],["reject","fail",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),1,"rejected"]],state="pending",promise={state:function(){return state;},always:function(){deferred.done(arguments).fail(arguments);return this;},"catch":function(fn){return promise.then(null,fn);},pipe:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(_i,tuple){var fn=isFunction(fns[tuple[4]])&&fns[tuple[4]];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&isFunction(returned.promise)){returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);}else{newDefer[tuple[0]+"With"](this,fn?[returned]:arguments);}});});fns=null;}).promise();},then:function(onFulfilled,onRejected,onProgress){var maxDepth=0;function resolve(depth,deferred,handler,special){return function(){var that=this,args=arguments,mightThrow=function(){var returned,then;if(depth<maxDepth){return;}
returned=handler.apply(that,args);if(returned===deferred.promise()){throw new TypeError("Thenable self-resolution");}
then=returned&&(typeof returned==="object"||typeof returned==="function")&&returned.then;if(isFunction(then)){if(special){then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special));}else{maxDepth++;then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special),resolve(maxDepth,deferred,Identity,deferred.notifyWith));}}else{if(handler!==Identity){that=undefined;args=[returned];}
(special||deferred.resolveWith)(that,args);}},process=special?mightThrow:function(){try{mightThrow();}catch(e){if(jQuery.Deferred.exceptionHook){jQuery.Deferred.exceptionHook(e,process.stackTrace);}
if(depth+1>=maxDepth){if(handler!==Thrower){that=undefined;args=[e];}
deferred.rejectWith(that,args);}}};if(depth){process();}else{if(jQuery.Deferred.getStackHook){process.stackTrace=jQuery.Deferred.getStackHook();}
window.setTimeout(process);}};}
return jQuery.Deferred(function(newDefer){tuples[0][3].add(resolve(0,newDefer,isFunction(onProgress)?onProgress:Identity,newDefer.notifyWith));tuples[1][3].add(resolve(0,newDefer,isFunction(onFulfilled)?onFulfilled:Identity));tuples[2][3].add(resolve(0,newDefer,isFunction(onRejected)?onRejected:Thrower));}).promise();},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise;}},deferred={};jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[5];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString;},tuples[3-i][2].disable,tuples[3-i][3].disable,tuples[0][2].lock,tuples[0][3].lock);}
list.add(tuple[3].fire);deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?undefined:this,arguments);return this;};deferred[tuple[0]+"With"]=list.fireWith;});promise.promise(deferred);if(func){func.call(deferred,deferred);}
return deferred;},when:function(singleValue){var
remaining=arguments.length,i=remaining,resolveContexts=Array(i),resolveValues=slice.call(arguments),primary=jQuery.Deferred(),updateFunc=function(i){return function(value){resolveContexts[i]=this;resolveValues[i]=arguments.length>1?slice.call(arguments):value;if(!(--remaining)){primary.resolveWith(resolveContexts,resolveValues);}};};if(remaining<=1){adoptValue(singleValue,primary.done(updateFunc(i)).resolve,primary.reject,!remaining);if(primary.state()==="pending"||isFunction(resolveValues[i]&&resolveValues[i].then)){return primary.then();}}
while(i--){adoptValue(resolveValues[i],updateFunc(i),primary.reject);}
return primary.promise();}});var rerrorNames=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;jQuery.Deferred.exceptionHook=function(error,stack){if(window.console&&window.console.warn&&error&&rerrorNames.test(error.name)){window.console.warn("jQuery.Deferred exception: "+error.message,error.stack,stack);}};jQuery.readyException=function(error){window.setTimeout(function(){throw error;});};var readyList=jQuery.Deferred();jQuery.fn.ready=function(fn){readyList.then(fn).catch(function(error){jQuery.readyException(error);});return this;};jQuery.extend({isReady:false,readyWait:1,ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return;}
jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return;}
readyList.resolveWith(document,[jQuery]);}});jQuery.ready.then=readyList.then;function completed(){document.removeEventListener("DOMContentLoaded",completed);window.removeEventListener("load",completed);jQuery.ready();}
if(document.readyState==="complete"||(document.readyState!=="loading"&&!document.documentElement.doScroll)){window.setTimeout(jQuery.ready);}else{document.addEventListener("DOMContentLoaded",completed);window.addEventListener("load",completed);}
var access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=key==null;if(toType(key)==="object"){chainable=true;for(i in key){access(elems,fn,i,key[i],true,emptyGet,raw);}}else if(value!==undefined){chainable=true;if(!isFunction(value)){raw=true;}
if(bulk){if(raw){fn.call(elems,value);fn=null;}else{bulk=fn;fn=function(elem,_key,value){return bulk.call(jQuery(elem),value);};}}
if(fn){for(;i<len;i++){fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)));}}}
if(chainable){return elems;}
if(bulk){return fn.call(elems);}
return len?fn(elems[0],key):emptyGet;};var rmsPrefix=/^-ms-/,rdashAlpha=/-([a-z])/g;function fcamelCase(_all,letter){return letter.toUpperCase();}
function camelCase(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase);}
var acceptData=function(owner){return owner.nodeType===1||owner.nodeType===9||!(+owner.nodeType);};function Data(){this.expando=jQuery.expando+Data.uid++;}
Data.uid=1;Data.prototype={cache:function(owner){var value=owner[this.expando];if(!value){value={};if(acceptData(owner)){if(owner.nodeType){owner[this.expando]=value;}else{Object.defineProperty(owner,this.expando,{value:value,configurable:true});}}}
return value;},set:function(owner,data,value){var prop,cache=this.cache(owner);if(typeof data==="string"){cache[camelCase(data)]=value;}else{for(prop in data){cache[camelCase(prop)]=data[prop];}}
return cache;},get:function(owner,key){return key===undefined?this.cache(owner):owner[this.expando]&&owner[this.expando][camelCase(key)];},access:function(owner,key,value){if(key===undefined||((key&&typeof key==="string")&&value===undefined)){return this.get(owner,key);}
this.set(owner,key,value);return value!==undefined?value:key;},remove:function(owner,key){var i,cache=owner[this.expando];if(cache===undefined){return;}
if(key!==undefined){if(Array.isArray(key)){key=key.map(camelCase);}else{key=camelCase(key);key=key in cache?[key]:(key.match(rnothtmlwhite)||[]);}
i=key.length;while(i--){delete cache[key[i]];}}
if(key===undefined||jQuery.isEmptyObject(cache)){if(owner.nodeType){owner[this.expando]=undefined;}else{delete owner[this.expando];}}},hasData:function(owner){var cache=owner[this.expando];return cache!==undefined&&!jQuery.isEmptyObject(cache);}};var dataPriv=new Data();var dataUser=new Data();var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/[A-Z]/g;function getData(data){if(data==="true"){return true;}
if(data==="false"){return false;}
if(data==="null"){return null;}
if(data===+data+""){return+data;}
if(rbrace.test(data)){return JSON.parse(data);}
return data;}
function dataAttr(elem,key,data){var name;if(data===undefined&&elem.nodeType===1){name="data-"+key.replace(rmultiDash,"-$&").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=getData(data);}catch(e){}
dataUser.set(elem,key,data);}else{data=undefined;}}
return data;}
jQuery.extend({hasData:function(elem){return dataUser.hasData(elem)||dataPriv.hasData(elem);},data:function(elem,name,data){return dataUser.access(elem,name,data);},removeData:function(elem,name){dataUser.remove(elem,name);},_data:function(elem,name,data){return dataPriv.access(elem,name,data);},_removeData:function(elem,name){dataPriv.remove(elem,name);}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=dataUser.get(elem);if(elem.nodeType===1&&!dataPriv.get(elem,"hasDataAttrs")){i=attrs.length;while(i--){if(attrs[i]){name=attrs[i].name;if(name.indexOf("data-")===0){name=camelCase(name.slice(5));dataAttr(elem,name,data[name]);}}}
dataPriv.set(elem,"hasDataAttrs",true);}}
return data;}
if(typeof key==="object"){return this.each(function(){dataUser.set(this,key);});}
return access(this,function(value){var data;if(elem&&value===undefined){data=dataUser.get(elem,key);if(data!==undefined){return data;}
data=dataAttr(elem,key);if(data!==undefined){return data;}
return;}
this.each(function(){dataUser.set(this,key,value);});},null,value,arguments.length>1,null,true);},removeData:function(key){return this.each(function(){dataUser.remove(this,key);});}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||"fx")+"queue";queue=dataPriv.get(elem,type);if(data){if(!queue||Array.isArray(data)){queue=dataPriv.access(elem,type,jQuery.makeArray(data));}else{queue.push(data);}}
return queue||[];}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type);};if(fn==="inprogress"){fn=queue.shift();startLength--;}
if(fn){if(type==="fx"){queue.unshift("inprogress");}
delete hooks.stop;fn.call(elem,next,hooks);}
if(!startLength&&hooks){hooks.empty.fire();}},_queueHooks:function(elem,type){var key=type+"queueHooks";return dataPriv.get(elem,key)||dataPriv.access(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){dataPriv.remove(elem,[type+"queue",key]);})});}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!=="string"){data=type;type="fx";setter--;}
if(arguments.length<setter){return jQuery.queue(this[0],type);}
return data===undefined?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type);}});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});},clearQueue:function(type){return this.queue(type||"fx",[]);},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!(--count)){defer.resolveWith(elements,[elements]);}};if(typeof type!=="string"){obj=type;type=undefined;}
type=type||"fx";while(i--){tmp=dataPriv.get(elements[i],type+"queueHooks");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve);}}
resolve();return defer.promise(obj);}});var pnum=(/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;var rcssNum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i");var cssExpand=["Top","Right","Bottom","Left"];var documentElement=document.documentElement;var isAttached=function(elem){return jQuery.contains(elem.ownerDocument,elem);},composed={composed:true};if(documentElement.getRootNode){isAttached=function(elem){return jQuery.contains(elem.ownerDocument,elem)||elem.getRootNode(composed)===elem.ownerDocument;};}
var isHiddenWithinTree=function(elem,el){elem=el||elem;return elem.style.display==="none"||elem.style.display===""&&isAttached(elem)&&jQuery.css(elem,"display")==="none";};function adjustCSS(elem,prop,valueParts,tween){var adjusted,scale,maxIterations=20,currentValue=tween?function(){return tween.cur();}:function(){return jQuery.css(elem,prop,"");},initial=currentValue(),unit=valueParts&&valueParts[3]||(jQuery.cssNumber[prop]?"":"px"),initialInUnit=elem.nodeType&&(jQuery.cssNumber[prop]||unit!=="px"&&+initial)&&rcssNum.exec(jQuery.css(elem,prop));if(initialInUnit&&initialInUnit[3]!==unit){initial=initial/2;unit=unit||initialInUnit[3];initialInUnit=+initial||1;while(maxIterations--){jQuery.style(elem,prop,initialInUnit+unit);if((1-scale)*(1-(scale=currentValue()/initial||0.5))<=0){maxIterations=0;}
initialInUnit=initialInUnit/scale;}
initialInUnit=initialInUnit*2;jQuery.style(elem,prop,initialInUnit+unit);valueParts=valueParts||[];}
if(valueParts){initialInUnit=+initialInUnit||+initial||0;adjusted=valueParts[1]?initialInUnit+(valueParts[1]+1)*valueParts[2]:+valueParts[2];if(tween){tween.unit=unit;tween.start=initialInUnit;tween.end=adjusted;}}
return adjusted;}
var defaultDisplayMap={};function getDefaultDisplay(elem){var temp,doc=elem.ownerDocument,nodeName=elem.nodeName,display=defaultDisplayMap[nodeName];if(display){return display;}
temp=doc.body.appendChild(doc.createElement(nodeName));display=jQuery.css(temp,"display");temp.parentNode.removeChild(temp);if(display==="none"){display="block";}
defaultDisplayMap[nodeName]=display;return display;}
function showHide(elements,show){var display,elem,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style){continue;}
display=elem.style.display;if(show){if(display==="none"){values[index]=dataPriv.get(elem,"display")||null;if(!values[index]){elem.style.display="";}}
if(elem.style.display===""&&isHiddenWithinTree(elem)){values[index]=getDefaultDisplay(elem);}}else{if(display!=="none"){values[index]="none";dataPriv.set(elem,"display",display);}}}
for(index=0;index<length;index++){if(values[index]!=null){elements[index].style.display=values[index];}}
return elements;}
jQuery.fn.extend({show:function(){return showHide(this,true);},hide:function(){return showHide(this);},toggle:function(state){if(typeof state==="boolean"){return state?this.show():this.hide();}
return this.each(function(){if(isHiddenWithinTree(this)){jQuery(this).show();}else{jQuery(this).hide();}});}});var rcheckableType=(/^(?:checkbox|radio)$/i);var rtagName=(/<([a-z][^\/\0>\x20\t\r\n\f]*)/i);var rscriptType=(/^$|^module$|\/(?:java|ecma)script/i);(function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement("div")),input=document.createElement("input");input.setAttribute("type","radio");input.setAttribute("checked","checked");input.setAttribute("name","t");div.appendChild(input);support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue;div.innerHTML="<option></option>";support.option=!!div.lastChild;})();var wrapMap={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;if(!support.option){wrapMap.optgroup=wrapMap.option=[1,"<select multiple='multiple'>","</select>"];}
function getAll(context,tag){var ret;if(typeof context.getElementsByTagName!=="undefined"){ret=context.getElementsByTagName(tag||"*");}else if(typeof context.querySelectorAll!=="undefined"){ret=context.querySelectorAll(tag||"*");}else{ret=[];}
if(tag===undefined||tag&&nodeName(context,tag)){return jQuery.merge([context],ret);}
return ret;}
function setGlobalEval(elems,refElements){var i=0,l=elems.length;for(;i<l;i++){dataPriv.set(elems[i],"globalEval",!refElements||dataPriv.get(refElements[i],"globalEval"));}}
var rhtml=/<|&#?\w+;/;function buildFragment(elems,context,scripts,selection,ignored){var elem,tmp,tag,wrap,attached,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;for(;i<l;i++){elem=elems[i];if(elem||elem===0){if(toType(elem)==="object"){jQuery.merge(nodes,elem.nodeType?[elem]:elem);}else if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem));}else{tmp=tmp||fragment.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+jQuery.htmlPrefilter(elem)+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild;}
jQuery.merge(nodes,tmp.childNodes);tmp=fragment.firstChild;tmp.textContent="";}}}
fragment.textContent="";i=0;while((elem=nodes[i++])){if(selection&&jQuery.inArray(elem,selection)>-1){if(ignored){ignored.push(elem);}
continue;}
attached=isAttached(elem);tmp=getAll(fragment.appendChild(elem),"script");if(attached){setGlobalEval(tmp);}
if(scripts){j=0;while((elem=tmp[j++])){if(rscriptType.test(elem.type||"")){scripts.push(elem);}}}}
return fragment;}
var rtypenamespace=/^([^.]*)(?:\.(.+)|)/;function returnTrue(){return true;}
function returnFalse(){return false;}
function expectSync(elem,type){return(elem===safeActiveElement())===(type==="focus");}
function safeActiveElement(){try{return document.activeElement;}catch(err){}}
function on(elem,types,selector,data,fn,one){var origFn,type;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined;}
for(type in types){on(elem,type,selector,data,types[type],one);}
return elem;}
if(data==null&&fn==null){fn=selector;data=selector=undefined;}else if(fn==null){if(typeof selector==="string"){fn=data;data=undefined;}else{fn=data;data=selector;selector=undefined;}}
if(fn===false){fn=returnFalse;}else if(!fn){return elem;}
if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments);};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++);}
return elem.each(function(){jQuery.event.add(this,types,fn,data,selector);});}
jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.get(elem);if(!acceptData(elem)){return;}
if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector;}
if(selector){jQuery.find.matchesSelector(documentElement,selector);}
if(!handler.guid){handler.guid=jQuery.guid++;}
if(!(events=elemData.events)){events=elemData.events=Object.create(null);}
if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!=="undefined"&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):undefined;};}
types=(types||"").match(rnothtmlwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){continue;}
special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle);}}}
if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid;}}
if(selector){handlers.splice(handlers.delegateCount++,0,handleObj);}else{handlers.push(handleObj);}
jQuery.event.global[type]=true;}},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.hasData(elem)&&dataPriv.get(elem);if(!elemData||!(events=elemData.events)){return;}
types=(types||"").match(rnothtmlwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){for(type in events){jQuery.event.remove(elem,type+types[t],handler,selector,true);}
continue;}
special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector){handlers.delegateCount--;}
if(special.remove){special.remove.call(elem,handleObj);}}}
if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){jQuery.removeEvent(elem,type,elemData.handle);}
delete events[type];}}
if(jQuery.isEmptyObject(events)){dataPriv.remove(elem,"handle events");}},dispatch:function(nativeEvent){var i,j,ret,matched,handleObj,handlerQueue,args=new Array(arguments.length),event=jQuery.event.fix(nativeEvent),handlers=(dataPriv.get(this,"events")||Object.create(null))[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;for(i=1;i<arguments.length;i++){args[i]=arguments[i];}
event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return;}
handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){if(!event.rnamespace||handleObj.namespace===false||event.rnamespace.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined){if((event.result=ret)===false){event.preventDefault();event.stopPropagation();}}}}}
if(special.postDispatch){special.postDispatch.call(this,event);}
return event.result;},handlers:function(event,handlers){var i,handleObj,sel,matchedHandlers,matchedSelectors,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&!(event.type==="click"&&event.button>=1)){for(;cur!==this;cur=cur.parentNode||this){if(cur.nodeType===1&&!(event.type==="click"&&cur.disabled===true)){matchedHandlers=[];matchedSelectors={};for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matchedSelectors[sel]===undefined){matchedSelectors[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>-1:jQuery.find(sel,this,null,[cur]).length;}
if(matchedSelectors[sel]){matchedHandlers.push(handleObj);}}
if(matchedHandlers.length){handlerQueue.push({elem:cur,handlers:matchedHandlers});}}}}
cur=this;if(delegateCount<handlers.length){handlerQueue.push({elem:cur,handlers:handlers.slice(delegateCount)});}
return handlerQueue;},addProp:function(name,hook){Object.defineProperty(jQuery.Event.prototype,name,{enumerable:true,configurable:true,get:isFunction(hook)?function(){if(this.originalEvent){return hook(this.originalEvent);}}:function(){if(this.originalEvent){return this.originalEvent[name];}},set:function(value){Object.defineProperty(this,name,{enumerable:true,configurable:true,writable:true,value:value});}});},fix:function(originalEvent){return originalEvent[jQuery.expando]?originalEvent:new jQuery.Event(originalEvent);},special:{load:{noBubble:true},click:{setup:function(data){var el=this||data;if(rcheckableType.test(el.type)&&el.click&&nodeName(el,"input")){leverageNative(el,"click",returnTrue);}
return false;},trigger:function(data){var el=this||data;if(rcheckableType.test(el.type)&&el.click&&nodeName(el,"input")){leverageNative(el,"click");}
return true;},_default:function(event){var target=event.target;return rcheckableType.test(target.type)&&target.click&&nodeName(target,"input")&&dataPriv.get(target,"click")||nodeName(target,"a");}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result;}}}}};function leverageNative(el,type,expectSync){if(!expectSync){if(dataPriv.get(el,type)===undefined){jQuery.event.add(el,type,returnTrue);}
return;}
dataPriv.set(el,type,false);jQuery.event.add(el,type,{namespace:false,handler:function(event){var notAsync,result,saved=dataPriv.get(this,type);if((event.isTrigger&1)&&this[type]){if(!saved.length){saved=slice.call(arguments);dataPriv.set(this,type,saved);notAsync=expectSync(this,type);this[type]();result=dataPriv.get(this,type);if(saved!==result||notAsync){dataPriv.set(this,type,false);}else{result={};}
if(saved!==result){event.stopImmediatePropagation();event.preventDefault();return result&&result.value;}}else if((jQuery.event.special[type]||{}).delegateType){event.stopPropagation();}}else if(saved.length){dataPriv.set(this,type,{value:jQuery.event.trigger(jQuery.extend(saved[0],jQuery.Event.prototype),saved.slice(1),this)});event.stopImmediatePropagation();}}});}
jQuery.removeEvent=function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle);}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props);}
if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse;this.target=(src.target&&src.target.nodeType===3)?src.target.parentNode:src.target;this.currentTarget=src.currentTarget;this.relatedTarget=src.relatedTarget;}else{this.type=src;}
if(props){jQuery.extend(this,props);}
this.timeStamp=src&&src.timeStamp||Date.now();this[jQuery.expando]=true;};jQuery.Event.prototype={constructor:jQuery.Event,isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,isSimulated:false,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(e&&!this.isSimulated){e.preventDefault();}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(e&&!this.isSimulated){e.stopPropagation();}},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&!this.isSimulated){e.stopImmediatePropagation();}
this.stopPropagation();}};jQuery.each({altKey:true,bubbles:true,cancelable:true,changedTouches:true,ctrlKey:true,detail:true,eventPhase:true,metaKey:true,pageX:true,pageY:true,shiftKey:true,view:true,"char":true,code:true,charCode:true,key:true,keyCode:true,button:true,buttons:true,clientX:true,clientY:true,offsetX:true,offsetY:true,pointerId:true,pointerType:true,screenX:true,screenY:true,targetTouches:true,toElement:true,touches:true,which:true},jQuery.event.addProp);jQuery.each({focus:"focusin",blur:"focusout"},function(type,delegateType){jQuery.event.special[type]={setup:function(){leverageNative(this,type,expectSync);return false;},trigger:function(){leverageNative(this,type);return true;},_default:function(event){return dataPriv.get(event.target,type);},delegateType:delegateType};});jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||(related!==target&&!jQuery.contains(target,related))){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix;}
return ret;}};});jQuery.fn.extend({on:function(types,selector,data,fn){return on(this,types,selector,data,fn);},one:function(types,selector,data,fn){return on(this,types,selector,data,fn,1);},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this;}
if(typeof types==="object"){for(type in types){this.off(type,selector,types[type]);}
return this;}
if(selector===false||typeof selector==="function"){fn=selector;selector=undefined;}
if(fn===false){fn=returnFalse;}
return this.each(function(){jQuery.event.remove(this,types,fn,selector);});}});var
rnoInnerhtml=/<script|<style|<link/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rcleanScript=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function manipulationTarget(elem,content){if(nodeName(elem,"table")&&nodeName(content.nodeType!==11?content:content.firstChild,"tr")){return jQuery(elem).children("tbody")[0]||elem;}
return elem;}
function disableScript(elem){elem.type=(elem.getAttribute("type")!==null)+"/"+elem.type;return elem;}
function restoreScript(elem){if((elem.type||"").slice(0,5)==="true/"){elem.type=elem.type.slice(5);}else{elem.removeAttribute("type");}
return elem;}
function cloneCopyEvent(src,dest){var i,l,type,pdataOld,udataOld,udataCur,events;if(dest.nodeType!==1){return;}
if(dataPriv.hasData(src)){pdataOld=dataPriv.get(src);events=pdataOld.events;if(events){dataPriv.remove(dest,"handle events");for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type,events[type][i]);}}}}
if(dataUser.hasData(src)){udataOld=dataUser.access(src);udataCur=jQuery.extend({},udataOld);dataUser.set(dest,udataCur);}}
function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();if(nodeName==="input"&&rcheckableType.test(src.type)){dest.checked=src.checked;}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue;}}
function domManip(collection,args,callback,ignored){args=flat(args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=collection.length,iNoClone=l-1,value=args[0],valueIsFunction=isFunction(value);if(valueIsFunction||(l>1&&typeof value==="string"&&!support.checkClone&&rchecked.test(value))){return collection.each(function(index){var self=collection.eq(index);if(valueIsFunction){args[0]=value.call(this,index,self.html());}
domManip(self,args,callback,ignored);});}
if(l){fragment=buildFragment(args,collection[0].ownerDocument,false,collection,ignored);first=fragment.firstChild;if(fragment.childNodes.length===1){fragment=first;}
if(first||ignored){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,"script"));}}
callback.call(collection[i],node,i);}
if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||"")&&!dataPriv.access(node,"globalEval")&&jQuery.contains(doc,node)){if(node.src&&(node.type||"").toLowerCase()!=="module"){if(jQuery._evalUrl&&!node.noModule){jQuery._evalUrl(node.src,{nonce:node.nonce||node.getAttribute("nonce")},doc);}}else{DOMEval(node.textContent.replace(rcleanScript,""),node,doc);}}}}}}
return collection;}
function remove(elem,selector,keepData){var node,nodes=selector?jQuery.filter(selector,elem):elem,i=0;for(;(node=nodes[i])!=null;i++){if(!keepData&&node.nodeType===1){jQuery.cleanData(getAll(node));}
if(node.parentNode){if(keepData&&isAttached(node)){setGlobalEval(getAll(node,"script"));}
node.parentNode.removeChild(node);}}
return elem;}
jQuery.extend({htmlPrefilter:function(html){return html;},clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(true),inPage=isAttached(elem);if(!support.noCloneChecked&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0,l=srcElements.length;i<l;i++){fixInput(srcElements[i],destElements[i]);}}
if(dataAndEvents){if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0,l=srcElements.length;i<l;i++){cloneCopyEvent(srcElements[i],destElements[i]);}}else{cloneCopyEvent(elem,clone);}}
destElements=getAll(clone,"script");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,"script"));}
return clone;},cleanData:function(elems){var data,elem,type,special=jQuery.event.special,i=0;for(;(elem=elems[i])!==undefined;i++){if(acceptData(elem)){if((data=elem[dataPriv.expando])){if(data.events){for(type in data.events){if(special[type]){jQuery.event.remove(elem,type);}else{jQuery.removeEvent(elem,type,data.handle);}}}
elem[dataPriv.expando]=undefined;}
if(elem[dataUser.expando]){elem[dataUser.expando]=undefined;}}}}});jQuery.fn.extend({detach:function(selector){return remove(this,selector,true);},remove:function(selector){return remove(this,selector);},text:function(value){return access(this,function(value){return value===undefined?jQuery.text(this):this.empty().each(function(){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.textContent=value;}});},null,value,arguments.length);},append:function(){return domManip(this,arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem);}});},prepend:function(){return domManip(this,arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild);}});},before:function(){return domManip(this,arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this);}});},after:function(){return domManip(this,arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this.nextSibling);}});},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.textContent="";}}
return this;},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents);});},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined&&elem.nodeType===1){return elem.innerHTML;}
if(typeof value==="string"&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=jQuery.htmlPrefilter(value);try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value;}}
elem=0;}catch(e){}}
if(elem){this.empty().append(value);}},null,value,arguments.length);},replaceWith:function(){var ignored=[];return domManip(this,arguments,function(elem){var parent=this.parentNode;if(jQuery.inArray(this,ignored)<0){jQuery.cleanData(getAll(this));if(parent){parent.replaceChild(elem,this);}}},ignored);}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);push.apply(ret,elems.get());}
return this.pushStack(ret);};});var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");var rcustomProp=/^--/;var getStyles=function(elem){var view=elem.ownerDocument.defaultView;if(!view||!view.opener){view=window;}
return view.getComputedStyle(elem);};var swap=function(elem,options,callback){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
ret=callback.call(elem);for(name in options){elem.style[name]=old[name];}
return ret;};var rboxStyle=new RegExp(cssExpand.join("|"),"i");var whitespace="[\\x20\\t\\r\\n\\f]";var rtrimCSS=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g");(function(){function computeStyleTests(){if(!div){return;}
container.style.cssText="position:absolute;left:-11111px;width:60px;"+"margin-top:1px;padding:0;border:0";div.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;"+"margin:auto;border:1px;padding:1px;"+"width:60%;top:1%";documentElement.appendChild(container).appendChild(div);var divStyle=window.getComputedStyle(div);pixelPositionVal=divStyle.top!=="1%";reliableMarginLeftVal=roundPixelMeasures(divStyle.marginLeft)===12;div.style.right="60%";pixelBoxStylesVal=roundPixelMeasures(divStyle.right)===36;boxSizingReliableVal=roundPixelMeasures(divStyle.width)===36;div.style.position="absolute";scrollboxSizeVal=roundPixelMeasures(div.offsetWidth/3)===12;documentElement.removeChild(container);div=null;}
function roundPixelMeasures(measure){return Math.round(parseFloat(measure));}
var pixelPositionVal,boxSizingReliableVal,scrollboxSizeVal,pixelBoxStylesVal,reliableTrDimensionsVal,reliableMarginLeftVal,container=document.createElement("div"),div=document.createElement("div");if(!div.style){return;}
div.style.backgroundClip="content-box";div.cloneNode(true).style.backgroundClip="";support.clearCloneStyle=div.style.backgroundClip==="content-box";jQuery.extend(support,{boxSizingReliable:function(){computeStyleTests();return boxSizingReliableVal;},pixelBoxStyles:function(){computeStyleTests();return pixelBoxStylesVal;},pixelPosition:function(){computeStyleTests();return pixelPositionVal;},reliableMarginLeft:function(){computeStyleTests();return reliableMarginLeftVal;},scrollboxSize:function(){computeStyleTests();return scrollboxSizeVal;},reliableTrDimensions:function(){var table,tr,trChild,trStyle;if(reliableTrDimensionsVal==null){table=document.createElement("table");tr=document.createElement("tr");trChild=document.createElement("div");table.style.cssText="position:absolute;left:-11111px;border-collapse:separate";tr.style.cssText="border:1px solid";tr.style.height="1px";trChild.style.height="9px";trChild.style.display="block";documentElement.appendChild(table).appendChild(tr).appendChild(trChild);trStyle=window.getComputedStyle(tr);reliableTrDimensionsVal=(parseInt(trStyle.height,10)+
parseInt(trStyle.borderTopWidth,10)+
parseInt(trStyle.borderBottomWidth,10))===tr.offsetHeight;documentElement.removeChild(table);}
return reliableTrDimensionsVal;}});})();function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,isCustomProp=rcustomProp.test(name),style=elem.style;computed=computed||getStyles(elem);if(computed){ret=computed.getPropertyValue(name)||computed[name];if(isCustomProp&&ret){ret=ret.replace(rtrimCSS,"$1")||undefined;}
if(ret===""&&!isAttached(elem)){ret=jQuery.style(elem,name);}
if(!support.pixelBoxStyles()&&rnumnonpx.test(ret)&&rboxStyle.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth;}}
return ret!==undefined?ret+"":ret;}
function addGetHookIf(conditionFn,hookFn){return{get:function(){if(conditionFn()){delete this.get;return;}
return(this.get=hookFn).apply(this,arguments);}};}
var cssPrefixes=["Webkit","Moz","ms"],emptyStyle=document.createElement("div").style,vendorProps={};function vendorPropName(name){var capName=name[0].toUpperCase()+name.slice(1),i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in emptyStyle){return name;}}}
function finalPropName(name){var final=jQuery.cssProps[name]||vendorProps[name];if(final){return final;}
if(name in emptyStyle){return name;}
return vendorProps[name]=vendorPropName(name)||name;}
var
rdisplayswap=/^(none|table(?!-c[ea]).+)/,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"};function setPositiveNumber(_elem,value,subtract){var matches=rcssNum.exec(value);return matches?Math.max(0,matches[2]-(subtract||0))+(matches[3]||"px"):value;}
function boxModelAdjustment(elem,dimension,box,isBorderBox,styles,computedVal){var i=dimension==="width"?1:0,extra=0,delta=0;if(box===(isBorderBox?"border":"content")){return 0;}
for(;i<4;i+=2){if(box==="margin"){delta+=jQuery.css(elem,box+cssExpand[i],true,styles);}
if(!isBorderBox){delta+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(box!=="padding"){delta+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}else{extra+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}else{if(box==="content"){delta-=jQuery.css(elem,"padding"+cssExpand[i],true,styles);}
if(box!=="margin"){delta-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}}
if(!isBorderBox&&computedVal>=0){delta+=Math.max(0,Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-
computedVal-
delta-
extra-
0.5))||0;}
return delta;}
function getWidthOrHeight(elem,dimension,extra){var styles=getStyles(elem),boxSizingNeeded=!support.boxSizingReliable()||extra,isBorderBox=boxSizingNeeded&&jQuery.css(elem,"boxSizing",false,styles)==="border-box",valueIsBorderBox=isBorderBox,val=curCSS(elem,dimension,styles),offsetProp="offset"+dimension[0].toUpperCase()+dimension.slice(1);if(rnumnonpx.test(val)){if(!extra){return val;}
val="auto";}
if((!support.boxSizingReliable()&&isBorderBox||!support.reliableTrDimensions()&&nodeName(elem,"tr")||val==="auto"||!parseFloat(val)&&jQuery.css(elem,"display",false,styles)==="inline")&&elem.getClientRects().length){isBorderBox=jQuery.css(elem,"boxSizing",false,styles)==="border-box";valueIsBorderBox=offsetProp in elem;if(valueIsBorderBox){val=elem[offsetProp];}}
val=parseFloat(val)||0;return(val+
boxModelAdjustment(elem,dimension,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles,val))+"px";}
jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret;}}}},cssNumber:{"animationIterationCount":true,"columnCount":true,"fillOpacity":true,"flexGrow":true,"flexShrink":true,"fontWeight":true,"gridArea":true,"gridColumn":true,"gridColumnEnd":true,"gridColumnStart":true,"gridRow":true,"gridRowEnd":true,"gridRowStart":true,"lineHeight":true,"opacity":true,"order":true,"orphans":true,"widows":true,"zIndex":true,"zoom":true},cssProps:{},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return;}
var ret,type,hooks,origName=camelCase(name),isCustomProp=rcustomProp.test(name),style=elem.style;if(!isCustomProp){name=finalPropName(origName);}
hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rcssNum.exec(value))&&ret[1]){value=adjustCSS(elem,name,ret);type="number";}
if(value==null||value!==value){return;}
if(type==="number"&&!isCustomProp){value+=ret&&ret[3]||(jQuery.cssNumber[origName]?"":"px");}
if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){style[name]="inherit";}
if(!hooks||!("set"in hooks)||(value=hooks.set(elem,value,extra))!==undefined){if(isCustomProp){style.setProperty(name,value);}else{style[name]=value;}}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret;}
return style[name];}},css:function(elem,name,extra,styles){var val,num,hooks,origName=camelCase(name),isCustomProp=rcustomProp.test(name);if(!isCustomProp){name=finalPropName(origName);}
hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get"in hooks){val=hooks.get(elem,true,extra);}
if(val===undefined){val=curCSS(elem,name,styles);}
if(val==="normal"&&name in cssNormalTransform){val=cssNormalTransform[name];}
if(extra===""||extra){num=parseFloat(val);return extra===true||isFinite(num)?num||0:val;}
return val;}});jQuery.each(["height","width"],function(_i,dimension){jQuery.cssHooks[dimension]={get:function(elem,computed,extra){if(computed){return rdisplayswap.test(jQuery.css(elem,"display"))&&(!elem.getClientRects().length||!elem.getBoundingClientRect().width)?swap(elem,cssShow,function(){return getWidthOrHeight(elem,dimension,extra);}):getWidthOrHeight(elem,dimension,extra);}},set:function(elem,value,extra){var matches,styles=getStyles(elem),scrollboxSizeBuggy=!support.scrollboxSize()&&styles.position==="absolute",boxSizingNeeded=scrollboxSizeBuggy||extra,isBorderBox=boxSizingNeeded&&jQuery.css(elem,"boxSizing",false,styles)==="border-box",subtract=extra?boxModelAdjustment(elem,dimension,extra,isBorderBox,styles):0;if(isBorderBox&&scrollboxSizeBuggy){subtract-=Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-
parseFloat(styles[dimension])-
boxModelAdjustment(elem,dimension,"border",false,styles)-
0.5);}
if(subtract&&(matches=rcssNum.exec(value))&&(matches[3]||"px")!=="px"){elem.style[dimension]=value;value=jQuery.css(elem,dimension);}
return setPositiveNumber(elem,value,subtract);}};});jQuery.cssHooks.marginLeft=addGetHookIf(support.reliableMarginLeft,function(elem,computed){if(computed){return(parseFloat(curCSS(elem,"marginLeft"))||elem.getBoundingClientRect().left-
swap(elem,{marginLeft:0},function(){return elem.getBoundingClientRect().left;}))+"px";}});jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value==="string"?value.split(" "):[value];for(;i<4;i++){expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0];}
return expanded;}};if(prefix!=="margin"){jQuery.cssHooks[prefix+suffix].set=setPositiveNumber;}});jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(Array.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++){map[name[i]]=jQuery.css(elem,name[i],false,styles);}
return map;}
return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name);},name,value,arguments.length>1);}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing);}
jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||jQuery.easing._default;this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?"":"px");},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this);},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration){this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration);}else{this.pos=eased=percent;}
this.now=(this.end-this.start)*eased+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this);}
if(hooks&&hooks.set){hooks.set(this);}else{Tween.propHooks._default.set(this);}
return this;}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem.nodeType!==1||tween.elem[tween.prop]!=null&&tween.elem.style[tween.prop]==null){return tween.elem[tween.prop];}
result=jQuery.css(tween.elem,tween.prop,"");return!result||result==="auto"?0:result;},set:function(tween){if(jQuery.fx.step[tween.prop]){jQuery.fx.step[tween.prop](tween);}else if(tween.elem.nodeType===1&&(jQuery.cssHooks[tween.prop]||tween.elem.style[finalPropName(tween.prop)]!=null)){jQuery.style(tween.elem,tween.prop,tween.now+tween.unit);}else{tween.elem[tween.prop]=tween.now;}}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now;}}};jQuery.easing={linear:function(p){return p;},swing:function(p){return 0.5-Math.cos(p*Math.PI)/2;},_default:"swing"};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var
fxNow,inProgress,rfxtypes=/^(?:toggle|show|hide)$/,rrun=/queueHooks$/;function schedule(){if(inProgress){if(document.hidden===false&&window.requestAnimationFrame){window.requestAnimationFrame(schedule);}else{window.setTimeout(schedule,jQuery.fx.interval);}
jQuery.fx.tick();}}
function createFxNow(){window.setTimeout(function(){fxNow=undefined;});return(fxNow=Date.now());}
function genFx(type,includeWidth){var which,i=0,attrs={height:type};includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs["margin"+which]=attrs["padding"+which]=type;}
if(includeWidth){attrs.opacity=attrs.width=type;}
return attrs;}
function createTween(value,prop,animation){var tween,collection=(Animation.tweeners[prop]||[]).concat(Animation.tweeners["*"]),index=0,length=collection.length;for(;index<length;index++){if((tween=collection[index].call(animation,prop,value))){return tween;}}}
function defaultPrefilter(elem,props,opts){var prop,value,toggle,hooks,oldfire,propTween,restoreDisplay,display,isBox="width"in props||"height"in props,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHiddenWithinTree(elem),dataShow=dataPriv.get(elem,"fxshow");if(!opts.queue){hooks=jQuery._queueHooks(elem,"fx");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued){oldfire();}};}
hooks.unqueued++;anim.always(function(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length){hooks.empty.fire();}});});}
for(prop in props){value=props[prop];if(rfxtypes.test(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show")){if(value==="show"&&dataShow&&dataShow[prop]!==undefined){hidden=true;}else{continue;}}
orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop);}}
propTween=!jQuery.isEmptyObject(props);if(!propTween&&jQuery.isEmptyObject(orig)){return;}
if(isBox&&elem.nodeType===1){opts.overflow=[style.overflow,style.overflowX,style.overflowY];restoreDisplay=dataShow&&dataShow.display;if(restoreDisplay==null){restoreDisplay=dataPriv.get(elem,"display");}
display=jQuery.css(elem,"display");if(display==="none"){if(restoreDisplay){display=restoreDisplay;}else{showHide([elem],true);restoreDisplay=elem.style.display||restoreDisplay;display=jQuery.css(elem,"display");showHide([elem]);}}
if(display==="inline"||display==="inline-block"&&restoreDisplay!=null){if(jQuery.css(elem,"float")==="none"){if(!propTween){anim.done(function(){style.display=restoreDisplay;});if(restoreDisplay==null){display=style.display;restoreDisplay=display==="none"?"":display;}}
style.display="inline-block";}}}
if(opts.overflow){style.overflow="hidden";anim.always(function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2];});}
propTween=false;for(prop in orig){if(!propTween){if(dataShow){if("hidden"in dataShow){hidden=dataShow.hidden;}}else{dataShow=dataPriv.access(elem,"fxshow",{display:restoreDisplay});}
if(toggle){dataShow.hidden=!hidden;}
if(hidden){showHide([elem],true);}
anim.done(function(){if(!hidden){showHide([elem]);}
dataPriv.remove(elem,"fxshow");for(prop in orig){jQuery.style(elem,prop,orig[prop]);}});}
propTween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=propTween.start;if(hidden){propTween.end=propTween.start;propTween.start=0;}}}}
function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=camelCase(index);easing=specialEasing[name];value=props[index];if(Array.isArray(value)){easing=value[1];value=props[index]=value[0];}
if(index!==name){props[name]=value;delete props[index];}
hooks=jQuery.cssHooks[name];if(hooks&&"expand"in hooks){value=hooks.expand(value);delete props[name];for(index in value){if(!(index in props)){props[index]=value[index];specialEasing[index]=easing;}}}else{specialEasing[name]=easing;}}}
function Animation(elem,properties,options){var result,stopped,index=0,length=Animation.prefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem;}),tick=function(){if(stopped){return false;}
var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++){animation.tweens[index].run(percent);}
deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length){return remaining;}
if(!length){deferred.notifyWith(elem,[animation,1,0]);}
deferred.resolveWith(elem,[animation]);return false;},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{},easing:jQuery.easing._default},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween;},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped){return this;}
stopped=true;for(;index<length;index++){animation.tweens[index].run(1);}
if(gotoEnd){deferred.notifyWith(elem,[animation,1,0]);deferred.resolveWith(elem,[animation,gotoEnd]);}else{deferred.rejectWith(elem,[animation,gotoEnd]);}
return this;}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=Animation.prefilters[index].call(animation,elem,props,animation.opts);if(result){if(isFunction(result.stop)){jQuery._queueHooks(animation.elem,animation.opts.queue).stop=result.stop.bind(result);}
return result;}}
jQuery.map(props,createTween,animation);if(isFunction(animation.opts.start)){animation.opts.start.call(elem,animation);}
animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));return animation;}
jQuery.Animation=jQuery.extend(Animation,{tweeners:{"*":[function(prop,value){var tween=this.createTween(prop,value);adjustCSS(tween.elem,prop,rcssNum.exec(value),tween);return tween;}]},tweener:function(props,callback){if(isFunction(props)){callback=props;props=["*"];}else{props=props.match(rnothtmlwhite);}
var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];Animation.tweeners[prop]=Animation.tweeners[prop]||[];Animation.tweeners[prop].unshift(callback);}},prefilters:[defaultPrefilter],prefilter:function(callback,prepend){if(prepend){Animation.prefilters.unshift(callback);}else{Animation.prefilters.push(callback);}}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!isFunction(easing)&&easing};if(jQuery.fx.off){opt.duration=0;}else{if(typeof opt.duration!=="number"){if(opt.duration in jQuery.fx.speeds){opt.duration=jQuery.fx.speeds[opt.duration];}else{opt.duration=jQuery.fx.speeds._default;}}}
if(opt.queue==null||opt.queue===true){opt.queue="fx";}
opt.old=opt.complete;opt.complete=function(){if(isFunction(opt.old)){opt.old.call(this);}
if(opt.queue){jQuery.dequeue(this,opt.queue);}};return opt;};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHiddenWithinTree).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback);},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||dataPriv.get(this,"finish")){anim.stop(true);}};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation);},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd);};if(typeof type!=="string"){gotoEnd=clearQueue;clearQueue=type;type=undefined;}
if(clearQueue){this.queue(type||"fx",[]);}
return this.each(function(){var dequeue=true,index=type!=null&&type+"queueHooks",timers=jQuery.timers,data=dataPriv.get(this);if(index){if(data[index]&&data[index].stop){stopQueue(data[index]);}}else{for(index in data){if(data[index]&&data[index].stop&&rrun.test(index)){stopQueue(data[index]);}}}
for(index=timers.length;index--;){if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1);}}
if(dequeue||!gotoEnd){jQuery.dequeue(this,type);}});},finish:function(type){if(type!==false){type=type||"fx";}
return this.each(function(){var index,data=dataPriv.get(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true);}
for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1);}}
for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this);}}
delete data.finish;});}});jQuery.each(["toggle","show","hide"],function(_i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed==="boolean"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback);};});jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback);};});jQuery.timers=[];jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;fxNow=Date.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1);}}
if(!timers.length){jQuery.fx.stop();}
fxNow=undefined;};jQuery.fx.timer=function(timer){jQuery.timers.push(timer);jQuery.fx.start();};jQuery.fx.interval=13;jQuery.fx.start=function(){if(inProgress){return;}
inProgress=true;schedule();};jQuery.fx.stop=function(){inProgress=null;};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(next,hooks){var timeout=window.setTimeout(next,time);hooks.stop=function(){window.clearTimeout(timeout);};});};(function(){var input=document.createElement("input"),select=document.createElement("select"),opt=select.appendChild(document.createElement("option"));input.type="checkbox";support.checkOn=input.value!=="";support.optSelected=opt.selected;input=document.createElement("input");input.value="t";input.type="radio";support.radioValue=input.value==="t";})();var boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1);},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name);});}});jQuery.extend({attr:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2){return;}
if(typeof elem.getAttribute==="undefined"){return jQuery.prop(elem,name,value);}
if(nType!==1||!jQuery.isXMLDoc(elem)){hooks=jQuery.attrHooks[name.toLowerCase()]||(jQuery.expr.match.bool.test(name)?boolHook:undefined);}
if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);return;}
if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret;}
elem.setAttribute(name,value+"");return value;}
if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret;}
ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret;},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val;}
return value;}}}},removeAttr:function(elem,value){var name,i=0,attrNames=value&&value.match(rnothtmlwhite);if(attrNames&&elem.nodeType===1){while((name=attrNames[i++])){elem.removeAttribute(name);}}}});boolHook={set:function(elem,value,name){if(value===false){jQuery.removeAttr(elem,name);}else{elem.setAttribute(name,name);}
return name;}};jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(_i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle,lowercaseName=name.toLowerCase();if(!isXML){handle=attrHandle[lowercaseName];attrHandle[lowercaseName]=ret;ret=getter(elem,name,isXML)!=null?lowercaseName:null;attrHandle[lowercaseName]=handle;}
return ret;};});var rfocusable=/^(?:input|select|textarea|button)$/i,rclickable=/^(?:a|area)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1);},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name];});}});jQuery.extend({prop:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2){return;}
if(nType!==1||!jQuery.isXMLDoc(elem)){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name];}
if(value!==undefined){if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret;}
return(elem[name]=value);}
if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret;}
return elem[name];},propHooks:{tabIndex:{get:function(elem){var tabindex=jQuery.find.attr(elem,"tabindex");if(tabindex){return parseInt(tabindex,10);}
if(rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href){return 0;}
return-1;}}},propFix:{"for":"htmlFor","class":"className"}});if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent&&parent.parentNode){parent.parentNode.selectedIndex;}
return null;},set:function(elem){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex;}}}};}
jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this;});function stripAndCollapse(value){var tokens=value.match(rnothtmlwhite)||[];return tokens.join(" ");}
function getClass(elem){return elem.getAttribute&&elem.getAttribute("class")||"";}
function classesToArray(value){if(Array.isArray(value)){return value;}
if(typeof value==="string"){return value.match(rnothtmlwhite)||[];}
return[];}
jQuery.fn.extend({addClass:function(value){var classNames,cur,curValue,className,i,finalValue;if(isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,getClass(this)));});}
classNames=classesToArray(value);if(classNames.length){return this.each(function(){curValue=getClass(this);cur=this.nodeType===1&&(" "+stripAndCollapse(curValue)+" ");if(cur){for(i=0;i<classNames.length;i++){className=classNames[i];if(cur.indexOf(" "+className+" ")<0){cur+=className+" ";}}
finalValue=stripAndCollapse(cur);if(curValue!==finalValue){this.setAttribute("class",finalValue);}}});}
return this;},removeClass:function(value){var classNames,cur,curValue,className,i,finalValue;if(isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,getClass(this)));});}
if(!arguments.length){return this.attr("class","");}
classNames=classesToArray(value);if(classNames.length){return this.each(function(){curValue=getClass(this);cur=this.nodeType===1&&(" "+stripAndCollapse(curValue)+" ");if(cur){for(i=0;i<classNames.length;i++){className=classNames[i];while(cur.indexOf(" "+className+" ")>-1){cur=cur.replace(" "+className+" "," ");}}
finalValue=stripAndCollapse(cur);if(curValue!==finalValue){this.setAttribute("class",finalValue);}}});}
return this;},toggleClass:function(value,stateVal){var classNames,className,i,self,type=typeof value,isValidValue=type==="string"||Array.isArray(value);if(isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(value.call(this,i,getClass(this),stateVal),stateVal);});}
if(typeof stateVal==="boolean"&&isValidValue){return stateVal?this.addClass(value):this.removeClass(value);}
classNames=classesToArray(value);return this.each(function(){if(isValidValue){self=jQuery(this);for(i=0;i<classNames.length;i++){className=classNames[i];if(self.hasClass(className)){self.removeClass(className);}else{self.addClass(className);}}}else if(value===undefined||type==="boolean"){className=getClass(this);if(className){dataPriv.set(this,"__className__",className);}
if(this.setAttribute){this.setAttribute("class",className||value===false?"":dataPriv.get(this,"__className__")||"");}}});},hasClass:function(selector){var className,elem,i=0;className=" "+selector+" ";while((elem=this[i++])){if(elem.nodeType===1&&(" "+stripAndCollapse(getClass(elem))+" ").indexOf(className)>-1){return true;}}
return false;}});var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,valueIsFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&"get"in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret;}
ret=elem.value;if(typeof ret==="string"){return ret.replace(rreturn,"");}
return ret==null?"":ret;}
return;}
valueIsFunction=isFunction(value);return this.each(function(i){var val;if(this.nodeType!==1){return;}
if(valueIsFunction){val=value.call(this,i,jQuery(this).val());}else{val=value;}
if(val==null){val="";}else if(typeof val==="number"){val+="";}else if(Array.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+"";});}
hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set"in hooks)||hooks.set(this,val,"value")===undefined){this.value=val;}});}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return val!=null?val:stripAndCollapse(jQuery.text(elem));}},select:{get:function(elem){var value,option,i,options=elem.options,index=elem.selectedIndex,one=elem.type==="select-one",values=one?null:[],max=one?index+1:options.length;if(index<0){i=max;}else{i=one?index:0;}
for(;i<max;i++){option=options[i];if((option.selected||i===index)&&!option.disabled&&(!option.parentNode.disabled||!nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value;}
values.push(value);}}
return values;},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if(option.selected=jQuery.inArray(jQuery.valHooks.option.get(option),values)>-1){optionSet=true;}}
if(!optionSet){elem.selectedIndex=-1;}
return values;}}}});jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(Array.isArray(value)){return(elem.checked=jQuery.inArray(jQuery(elem).val(),value)>-1);}}};if(!support.checkOn){jQuery.valHooks[this].get=function(elem){return elem.getAttribute("value")===null?"on":elem.value;};}});support.focusin="onfocusin"in window;var rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,stopPropagationCallback=function(e){e.stopPropagation();};jQuery.extend(jQuery.event,{trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,lastElement,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];cur=lastElement=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8){return;}
if(rfocusMorph.test(type+jQuery.event.triggered)){return;}
if(type.indexOf(".")>-1){namespaces=type.split(".");type=namespaces.shift();namespaces.sort();}
ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.rnamespace=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target){event.target=elem;}
data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return;}
if(!onlyHandlers&&!special.noBubble&&!isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type)){cur=cur.parentNode;}
for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur;}
if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window);}}
i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){lastElement=cur;event.type=i>1?bubbleType:special.bindType||type;handle=(dataPriv.get(cur,"events")||Object.create(null))[event.type]&&dataPriv.get(cur,"handle");if(handle){handle.apply(cur,data);}
handle=ontype&&cur[ontype];if(handle&&handle.apply&&acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false){event.preventDefault();}}}
event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&acceptData(elem)){if(ontype&&isFunction(elem[type])&&!isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null;}
jQuery.event.triggered=type;if(event.isPropagationStopped()){lastElement.addEventListener(type,stopPropagationCallback);}
elem[type]();if(event.isPropagationStopped()){lastElement.removeEventListener(type,stopPropagationCallback);}
jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp;}}}}
return event.result;},simulate:function(type,elem,event){var e=jQuery.extend(new jQuery.Event(),event,{type:type,isSimulated:true});jQuery.event.trigger(e,null,elem);}});jQuery.fn.extend({trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},triggerHandler:function(type,data){var elem=this[0];if(elem){return jQuery.event.trigger(type,data,elem,true);}}});if(!support.focusin){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event));};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this.document||this,attaches=dataPriv.access(doc,fix);if(!attaches){doc.addEventListener(orig,handler,true);}
dataPriv.access(doc,fix,(attaches||0)+1);},teardown:function(){var doc=this.ownerDocument||this.document||this,attaches=dataPriv.access(doc,fix)-1;if(!attaches){doc.removeEventListener(orig,handler,true);dataPriv.remove(doc,fix);}else{dataPriv.access(doc,fix,attaches);}}};});}
var location=window.location;var nonce={guid:Date.now()};var rquery=(/\?/);jQuery.parseXML=function(data){var xml,parserErrorElem;if(!data||typeof data!=="string"){return null;}
try{xml=(new window.DOMParser()).parseFromString(data,"text/xml");}catch(e){}
parserErrorElem=xml&&xml.getElementsByTagName("parsererror")[0];if(!xml||parserErrorElem){jQuery.error("Invalid XML: "+(parserErrorElem?jQuery.map(parserErrorElem.childNodes,function(el){return el.textContent;}).join("\n"):data));}
return xml;};var
rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(Array.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v);}else{buildParams(prefix+"["+(typeof v==="object"&&v!=null?i:"")+"]",v,traditional,add);}});}else if(!traditional&&toType(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add);}}else{add(prefix,obj);}}
jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,valueOrFunction){var value=isFunction(valueOrFunction)?valueOrFunction():valueOrFunction;s[s.length]=encodeURIComponent(key)+"="+
encodeURIComponent(value==null?"":value);};if(a==null){return"";}
if(Array.isArray(a)||(a.jquery&&!jQuery.isPlainObject(a))){jQuery.each(a,function(){add(this.name,this.value);});}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add);}}
return s.join("&");};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this;}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type));}).map(function(_i,elem){var val=jQuery(this).val();if(val==null){return null;}
if(Array.isArray(val)){return jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")};});}
return{name:elem.name,value:val.replace(rCRLF,"\r\n")};}).get();}});var
r20=/%20/g,rhash=/#.*$/,rantiCache=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/mg,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,prefilters={},transports={},allTypes="*/".concat("*"),originAnchor=document.createElement("a");originAnchor.href=location.href;function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*";}
var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnothtmlwhite)||[];if(isFunction(func)){while((dataType=dataTypes[i++])){if(dataType[0]==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func);}else{(structure[dataType]=structure[dataType]||[]).push(func);}}}};}
function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=(structure===transports);function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false;}else if(seekingTransport){return!(selected=dataTypeOrTransport);}});return selected;}
return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*");}
function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:(deep||(deep={})))[key]=src[key];}}
if(deep){jQuery.extend(true,target,deep);}
return target;}
function ajaxHandleResponses(s,jqXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("Content-Type");}}
if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break;}}}
if(dataTypes[0]in responses){finalDataType=dataTypes[0];}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break;}
if(!firstDataType){firstDataType=type;}}
finalDataType=finalDataType||firstDataType;}
if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType);}
return responses[finalDataType];}}
function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv];}}
current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response;}
if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType);}
prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev;}else if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2];}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1]);}
break;}}}}
if(conv!==true){if(conv&&s.throws){response=conv(response);}else{try{response=conv(response);}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current};}}}}}}
return{state:"success",data:response};}
jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:location.href,type:"GET",isLocal:rlocalProtocol.test(location.protocol),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":JSON.parse,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target);},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined;}
options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,urlAnchor,completed,fireGlobals,i,uncached,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(completed){if(!responseHeaders){responseHeaders={};while((match=rheaders.exec(responseHeadersString))){responseHeaders[match[1].toLowerCase()+" "]=(responseHeaders[match[1].toLowerCase()+" "]||[]).concat(match[2]);}}
match=responseHeaders[key.toLowerCase()+" "];}
return match==null?null:match.join(", ");},getAllResponseHeaders:function(){return completed?responseHeadersString:null;},setRequestHeader:function(name,value){if(completed==null){name=requestHeadersNames[name.toLowerCase()]=requestHeadersNames[name.toLowerCase()]||name;requestHeaders[name]=value;}
return this;},overrideMimeType:function(type){if(completed==null){s.mimeType=type;}
return this;},statusCode:function(map){var code;if(map){if(completed){jqXHR.always(map[jqXHR.status]);}else{for(code in map){statusCode[code]=[statusCode[code],map[code]];}}}
return this;},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText);}
done(0,finalText);return this;}};deferred.promise(jqXHR);s.url=((url||s.url||location.href)+"").replace(rprotocol,location.protocol+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=(s.dataType||"*").toLowerCase().match(rnothtmlwhite)||[""];if(s.crossDomain==null){urlAnchor=document.createElement("a");try{urlAnchor.href=s.url;urlAnchor.href=urlAnchor.href;s.crossDomain=originAnchor.protocol+"//"+originAnchor.host!==urlAnchor.protocol+"//"+urlAnchor.host;}catch(e){s.crossDomain=true;}}
if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional);}
inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(completed){return jqXHR;}
fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart");}
s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url.replace(rhash,"");if(!s.hasContent){uncached=s.url.slice(cacheURL.length);if(s.data&&(s.processData||typeof s.data==="string")){cacheURL+=(rquery.test(cacheURL)?"&":"?")+s.data;delete s.data;}
if(s.cache===false){cacheURL=cacheURL.replace(rantiCache,"$1");uncached=(rquery.test(cacheURL)?"&":"?")+"_="+(nonce.guid++)+
uncached;}
s.url=cacheURL+uncached;}else if(s.data&&s.processData&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0){s.data=s.data.replace(r20,"+");}
if(s.ifModified){if(jQuery.lastModified[cacheURL]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]);}
if(jQuery.etag[cacheURL]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL]);}}
if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType);}
jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+
(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i]);}
if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||completed)){return jqXHR.abort();}
strAbort="abort";completeDeferred.add(s.complete);jqXHR.done(s.success);jqXHR.fail(s.error);transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport");}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s]);}
if(completed){return jqXHR;}
if(s.async&&s.timeout>0){timeoutTimer=window.setTimeout(function(){jqXHR.abort("timeout");},s.timeout);}
try{completed=false;transport.send(requestHeaders,done);}catch(e){if(completed){throw e;}
done(-1,e);}}
function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(completed){return;}
completed=true;if(timeoutTimer){window.clearTimeout(timeoutTimer);}
transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses);}
if(!isSuccess&&jQuery.inArray("script",s.dataTypes)>-1&&jQuery.inArray("json",s.dataTypes)<0){s.converters["text script"]=function(){};}
response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader("Last-Modified");if(modified){jQuery.lastModified[cacheURL]=modified;}
modified=jqXHR.getResponseHeader("etag");if(modified){jQuery.etag[cacheURL]=modified;}}
if(status===204||s.type==="HEAD"){statusText="nocontent";}else if(status===304){statusText="notmodified";}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error;}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0;}}}
jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR]);}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error]);}
jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error]);}
completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!(--jQuery.active)){jQuery.event.trigger("ajaxStop");}}}
return jqXHR;},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script");}});jQuery.each(["get","post"],function(_i,method){jQuery[method]=function(url,data,callback,type){if(isFunction(data)){type=type||callback;callback=data;data=undefined;}
return jQuery.ajax(jQuery.extend({url:url,type:method,dataType:type,data:data,success:callback},jQuery.isPlainObject(url)&&url));};});jQuery.ajaxPrefilter(function(s){var i;for(i in s.headers){if(i.toLowerCase()==="content-type"){s.contentType=s.headers[i]||"";}}});jQuery._evalUrl=function(url,options,doc){return jQuery.ajax({url:url,type:"GET",dataType:"script",cache:true,async:false,global:false,converters:{"text script":function(){}},dataFilter:function(response){jQuery.globalEval(response,options,doc);}});};jQuery.fn.extend({wrapAll:function(html){var wrap;if(this[0]){if(isFunction(html)){html=html.call(this[0]);}
wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0]);}
wrap.map(function(){var elem=this;while(elem.firstElementChild){elem=elem.firstElementChild;}
return elem;}).append(this);}
return this;},wrapInner:function(html){if(isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i));});}
return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html);}else{self.append(html);}});},wrap:function(html){var htmlIsFunction=isFunction(html);return this.each(function(i){jQuery(this).wrapAll(htmlIsFunction?html.call(this,i):html);});},unwrap:function(selector){this.parent(selector).not("body").each(function(){jQuery(this).replaceWith(this.childNodes);});return this;}});jQuery.expr.pseudos.hidden=function(elem){return!jQuery.expr.pseudos.visible(elem);};jQuery.expr.pseudos.visible=function(elem){return!!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length);};jQuery.ajaxSettings.xhr=function(){try{return new window.XMLHttpRequest();}catch(e){}};var xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();support.cors=!!xhrSupported&&("withCredentials"in xhrSupported);support.ajax=xhrSupported=!!xhrSupported;jQuery.ajaxTransport(function(options){var callback,errorCallback;if(support.cors||xhrSupported&&!options.crossDomain){return{send:function(headers,complete){var i,xhr=options.xhr();xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i];}}
if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType);}
if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest";}
for(i in headers){xhr.setRequestHeader(i,headers[i]);}
callback=function(type){return function(){if(callback){callback=errorCallback=xhr.onload=xhr.onerror=xhr.onabort=xhr.ontimeout=xhr.onreadystatechange=null;if(type==="abort"){xhr.abort();}else if(type==="error"){if(typeof xhr.status!=="number"){complete(0,"error");}else{complete(xhr.status,xhr.statusText);}}else{complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,(xhr.responseType||"text")!=="text"||typeof xhr.responseText!=="string"?{binary:xhr.response}:{text:xhr.responseText},xhr.getAllResponseHeaders());}}};};xhr.onload=callback();errorCallback=xhr.onerror=xhr.ontimeout=callback("error");if(xhr.onabort!==undefined){xhr.onabort=errorCallback;}else{xhr.onreadystatechange=function(){if(xhr.readyState===4){window.setTimeout(function(){if(callback){errorCallback();}});}};}
callback=callback("abort");try{xhr.send(options.hasContent&&options.data||null);}catch(e){if(callback){throw e;}}},abort:function(){if(callback){callback();}}};}});jQuery.ajaxPrefilter(function(s){if(s.crossDomain){s.contents.script=false;}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, "+"application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(text){jQuery.globalEval(text);return text;}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false;}
if(s.crossDomain){s.type="GET";}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain||s.scriptAttrs){var script,callback;return{send:function(_,complete){script=jQuery("<script>").attr(s.scriptAttrs||{}).prop({charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove();callback=null;if(evt){complete(evt.type==="error"?404:200,evt.type);}});document.head.appendChild(script[0]);},abort:function(){if(callback){callback();}}};}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||(jQuery.expando+"_"+(nonce.guid++));this[callback]=true;return callback;}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?"url":typeof s.data==="string"&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&rjsonp.test(s.data)&&"data");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName);}else if(s.jsonp!==false){s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName;}
s.converters["script json"]=function(){if(!responseContainer){jQuery.error(callbackName+" was not called");}
return responseContainer[0];};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments;};jqXHR.always(function(){if(overwritten===undefined){jQuery(window).removeProp(callbackName);}else{window[callbackName]=overwritten;}
if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName);}
if(responseContainer&&isFunction(overwritten)){overwritten(responseContainer[0]);}
responseContainer=overwritten=undefined;});return"script";}});support.createHTMLDocument=(function(){var body=document.implementation.createHTMLDocument("").body;body.innerHTML="<form></form><form></form>";return body.childNodes.length===2;})();jQuery.parseHTML=function(data,context,keepScripts){if(typeof data!=="string"){return[];}
if(typeof context==="boolean"){keepScripts=context;context=false;}
var base,parsed,scripts;if(!context){if(support.createHTMLDocument){context=document.implementation.createHTMLDocument("");base=context.createElement("base");base.href=document.location.href;context.head.appendChild(base);}else{context=document;}}
parsed=rsingleTag.exec(data);scripts=!keepScripts&&[];if(parsed){return[context.createElement(parsed[1])];}
parsed=buildFragment([data],context,scripts);if(scripts&&scripts.length){jQuery(scripts).remove();}
return jQuery.merge([],parsed.childNodes);};jQuery.fn.load=function(url,params,callback){var selector,type,response,self=this,off=url.indexOf(" ");if(off>-1){selector=stripAndCollapse(url.slice(off));url=url.slice(0,off);}
if(isFunction(params)){callback=params;params=undefined;}else if(params&&typeof params==="object"){type="POST";}
if(self.length>0){jQuery.ajax({url:url,type:type||"GET",dataType:"html",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText);}).always(callback&&function(jqXHR,status){self.each(function(){callback.apply(this,response||[jqXHR.responseText,status,jqXHR]);});});}
return this;};jQuery.expr.pseudos.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem;}).length;};jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};if(position==="static"){elem.style.position="relative";}
curOffset=curElem.offset();curCSSTop=jQuery.css(elem,"top");curCSSLeft=jQuery.css(elem,"left");calculatePosition=(position==="absolute"||position==="fixed")&&(curCSSTop+curCSSLeft).indexOf("auto")>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left;}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0;}
if(isFunction(options)){options=options.call(elem,i,jQuery.extend({},curOffset));}
if(options.top!=null){props.top=(options.top-curOffset.top)+curTop;}
if(options.left!=null){props.left=(options.left-curOffset.left)+curLeft;}
if("using"in options){options.using.call(elem,props);}else{curElem.css(props);}}};jQuery.fn.extend({offset:function(options){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i);});}
var rect,win,elem=this[0];if(!elem){return;}
if(!elem.getClientRects().length){return{top:0,left:0};}
rect=elem.getBoundingClientRect();win=elem.ownerDocument.defaultView;return{top:rect.top+win.pageYOffset,left:rect.left+win.pageXOffset};},position:function(){if(!this[0]){return;}
var offsetParent,offset,doc,elem=this[0],parentOffset={top:0,left:0};if(jQuery.css(elem,"position")==="fixed"){offset=elem.getBoundingClientRect();}else{offset=this.offset();doc=elem.ownerDocument;offsetParent=elem.offsetParent||doc.documentElement;while(offsetParent&&(offsetParent===doc.body||offsetParent===doc.documentElement)&&jQuery.css(offsetParent,"position")==="static"){offsetParent=offsetParent.parentNode;}
if(offsetParent&&offsetParent!==elem&&offsetParent.nodeType===1){parentOffset=jQuery(offsetParent).offset();parentOffset.top+=jQuery.css(offsetParent,"borderTopWidth",true);parentOffset.left+=jQuery.css(offsetParent,"borderLeftWidth",true);}}
return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)};},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent;while(offsetParent&&jQuery.css(offsetParent,"position")==="static"){offsetParent=offsetParent.offsetParent;}
return offsetParent||documentElement;});}});jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top="pageYOffset"===prop;jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win;if(isWindow(elem)){win=elem;}else if(elem.nodeType===9){win=elem.defaultView;}
if(val===undefined){return win?win[prop]:elem[method];}
if(win){win.scrollTo(!top?val:win.pageXOffset,top?val:win.pageYOffset);}else{elem[method]=val;}},method,val,arguments.length);};});jQuery.each(["top","left"],function(_i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed;}});});jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),extra=defaultExtra||(margin===true||value===true?"margin":"border");return access(this,function(elem,type,value){var doc;if(isWindow(elem)){return funcName.indexOf("outer")===0?elem["inner"+name]:elem.document.documentElement["client"+name];}
if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name]);}
return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra);},type,chainable?margin:undefined,chainable);};});});jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(_i,type){jQuery.fn[type]=function(fn){return this.on(type,fn);};});jQuery.fn.extend({bind:function(types,data,fn){return this.on(types,null,data,fn);},unbind:function(types,fn){return this.off(types,null,fn);},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn);},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn);},hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver);}});jQuery.each(("blur focus focusin focusout resize scroll click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup contextmenu").split(" "),function(_i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name);};});var rtrim=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;jQuery.proxy=function(fn,context){var tmp,args,proxy;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp;}
if(!isFunction(fn)){return undefined;}
args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)));};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy;};jQuery.holdReady=function(hold){if(hold){jQuery.readyWait++;}else{jQuery.ready(true);}};jQuery.isArray=Array.isArray;jQuery.parseJSON=JSON.parse;jQuery.nodeName=nodeName;jQuery.isFunction=isFunction;jQuery.isWindow=isWindow;jQuery.camelCase=camelCase;jQuery.type=toType;jQuery.now=Date.now;jQuery.isNumeric=function(obj){var type=jQuery.type(obj);return(type==="number"||type==="string")&&!isNaN(obj-parseFloat(obj));};jQuery.trim=function(text){return text==null?"":(text+"").replace(rtrim,"$1");};if(typeof define==="function"&&define.amd){define("jquery",[],function(){return jQuery;});}
var
_jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery){window.$=_$;}
if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery;}
return jQuery;};if(typeof noGlobal==="undefined"){window.jQuery=window.$=jQuery;}
return jQuery;});;

/* /web/static/lib/popper/popper.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(exports):typeof define==='function'&&define.amd?define(['exports'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,factory(global.Popper={}));}(this,(function(exports){'use strict';function getWindow(node){if(node==null){return window;}
if(node.toString()!=='[object Window]'){var ownerDocument=node.ownerDocument;return ownerDocument?ownerDocument.defaultView||window:window;}
return node;}
function isElement(node){var OwnElement=getWindow(node).Element;return node instanceof OwnElement||node.nodeType===Node.ELEMENT_NODE;}
function isHTMLElement(node){var OwnElement=getWindow(node).HTMLElement;return node instanceof OwnElement||node.nodeType===Node.ELEMENT_NODE;}
function isShadowRoot(node){if(typeof ShadowRoot==='undefined'){return false;}
var OwnElement=getWindow(node).ShadowRoot;return node instanceof OwnElement||node instanceof ShadowRoot;}
var max=Math.max;var min=Math.min;var round=Math.round;function getBoundingClientRect(element,includeScale){if(includeScale===void 0){includeScale=false;}
var rect=element.getBoundingClientRect();var scaleX=1;var scaleY=1;if(isHTMLElement(element)&&includeScale){var offsetHeight=element.offsetHeight;var offsetWidth=element.offsetWidth;if(offsetWidth>0){scaleX=round(rect.width)/offsetWidth||1;}
if(offsetHeight>0){scaleY=round(rect.height)/offsetHeight||1;}}
return{width:rect.width/scaleX,height:rect.height/scaleY,top:rect.top/scaleY,right:rect.right/scaleX,bottom:rect.bottom/scaleY,left:rect.left/scaleX,x:rect.left/scaleX,y:rect.top/scaleY};}
function getWindowScroll(node){var win=getWindow(node);var scrollLeft=win.pageXOffset;var scrollTop=win.pageYOffset;return{scrollLeft:scrollLeft,scrollTop:scrollTop};}
function getHTMLElementScroll(element){return{scrollLeft:element.scrollLeft,scrollTop:element.scrollTop};}
function getNodeScroll(node){if(node===getWindow(node)||!isHTMLElement(node)){return getWindowScroll(node);}else{return getHTMLElementScroll(node);}}
function getNodeName(element){return element?(element.nodeName||'').toLowerCase():null;}
function getDocumentElement(element){return((isElement(element)?element.ownerDocument:element.document)||window.document).documentElement;}
function getWindowScrollBarX(element){return getBoundingClientRect(getDocumentElement(element)).left+getWindowScroll(element).scrollLeft;}
function getComputedStyle(element){return getWindow(element).getComputedStyle(element);}
function isScrollParent(element){var _getComputedStyle=getComputedStyle(element),overflow=_getComputedStyle.overflow,overflowX=_getComputedStyle.overflowX,overflowY=_getComputedStyle.overflowY;return/auto|scroll|overlay|hidden/.test(overflow+overflowY+overflowX);}
function isElementScaled(element){var rect=element.getBoundingClientRect();var scaleX=round(rect.width)/element.offsetWidth||1;var scaleY=round(rect.height)/element.offsetHeight||1;return scaleX!==1||scaleY!==1;}
function getCompositeRect(elementOrVirtualElement,offsetParent,isFixed){if(isFixed===void 0){isFixed=false;}
var isOffsetParentAnElement=isHTMLElement(offsetParent);var offsetParentIsScaled=isHTMLElement(offsetParent)&&isElementScaled(offsetParent);var documentElement=getDocumentElement(offsetParent);var rect=getBoundingClientRect(elementOrVirtualElement,offsetParentIsScaled);var scroll={scrollLeft:0,scrollTop:0};var offsets={x:0,y:0};if(isOffsetParentAnElement||!isOffsetParentAnElement&&!isFixed){if(getNodeName(offsetParent)!=='body'||isScrollParent(documentElement)){scroll=getNodeScroll(offsetParent);}
if(isHTMLElement(offsetParent)){offsets=getBoundingClientRect(offsetParent,true);offsets.x+=offsetParent.clientLeft;offsets.y+=offsetParent.clientTop;}else if(documentElement){offsets.x=getWindowScrollBarX(documentElement);}}
return{x:rect.left+scroll.scrollLeft-offsets.x,y:rect.top+scroll.scrollTop-offsets.y,width:rect.width,height:rect.height};}
function getLayoutRect(element){var clientRect=getBoundingClientRect(element);var width=element.offsetWidth;var height=element.offsetHeight;if(Math.abs(clientRect.width-width)<=1){width=clientRect.width;}
if(Math.abs(clientRect.height-height)<=1){height=clientRect.height;}
return{x:element.offsetLeft,y:element.offsetTop,width:width,height:height};}
function getParentNode(element){if(getNodeName(element)==='html'){return element;}
return(element.assignedSlot||element.parentNode||(isShadowRoot(element)?element.host:null)||getDocumentElement(element));}
function getScrollParent(node){if(['html','body','#document'].indexOf(getNodeName(node))>=0){return node.ownerDocument.body;}
if(isHTMLElement(node)&&isScrollParent(node)){return node;}
return getScrollParent(getParentNode(node));}
function listScrollParents(element,list){var _element$ownerDocumen;if(list===void 0){list=[];}
var scrollParent=getScrollParent(element);var isBody=scrollParent===((_element$ownerDocumen=element.ownerDocument)==null?void 0:_element$ownerDocumen.body);var win=getWindow(scrollParent);var target=isBody?[win].concat(win.visualViewport||[],isScrollParent(scrollParent)?scrollParent:[]):scrollParent;var updatedList=list.concat(target);return isBody?updatedList:updatedList.concat(listScrollParents(getParentNode(target)));}
function isTableElement(element){return['table','td','th'].indexOf(getNodeName(element))>=0;}
function getTrueOffsetParent(element){if(!isHTMLElement(element)||getComputedStyle(element).position==='fixed'){return null;}
return element.offsetParent;}
function getContainingBlock(element){var isFirefox=navigator.userAgent.toLowerCase().indexOf('firefox')!==-1;var isIE=navigator.userAgent.indexOf('Trident')!==-1;if(isIE&&isHTMLElement(element)){var elementCss=getComputedStyle(element);if(elementCss.position==='fixed'){return null;}}
var currentNode=getParentNode(element);while(isHTMLElement(currentNode)&&['html','body'].indexOf(getNodeName(currentNode))<0){var css=getComputedStyle(currentNode);if(css.transform!=='none'||css.perspective!=='none'||css.contain==='paint'||['transform','perspective'].indexOf(css.willChange)!==-1||isFirefox&&css.willChange==='filter'||isFirefox&&css.filter&&css.filter!=='none'){return currentNode;}else{currentNode=currentNode.parentNode;}}
return null;}
function getOffsetParent(element){var window=getWindow(element);var offsetParent=getTrueOffsetParent(element);while(offsetParent&&isTableElement(offsetParent)&&getComputedStyle(offsetParent).position==='static'){offsetParent=getTrueOffsetParent(offsetParent);}
if(offsetParent&&(getNodeName(offsetParent)==='html'||getNodeName(offsetParent)==='body'&&getComputedStyle(offsetParent).position==='static')){return window;}
return offsetParent||getContainingBlock(element)||window;}
var top='top';var bottom='bottom';var right='right';var left='left';var auto='auto';var basePlacements=[top,bottom,right,left];var start='start';var end='end';var clippingParents='clippingParents';var viewport='viewport';var popper='popper';var reference='reference';var variationPlacements=basePlacements.reduce(function(acc,placement){return acc.concat([placement+"-"+start,placement+"-"+end]);},[]);var placements=[].concat(basePlacements,[auto]).reduce(function(acc,placement){return acc.concat([placement,placement+"-"+start,placement+"-"+end]);},[]);var beforeRead='beforeRead';var read='read';var afterRead='afterRead';var beforeMain='beforeMain';var main='main';var afterMain='afterMain';var beforeWrite='beforeWrite';var write='write';var afterWrite='afterWrite';var modifierPhases=[beforeRead,read,afterRead,beforeMain,main,afterMain,beforeWrite,write,afterWrite];function order(modifiers){var map=new Map();var visited=new Set();var result=[];modifiers.forEach(function(modifier){map.set(modifier.name,modifier);});function sort(modifier){visited.add(modifier.name);var requires=[].concat(modifier.requires||[],modifier.requiresIfExists||[]);requires.forEach(function(dep){if(!visited.has(dep)){var depModifier=map.get(dep);if(depModifier){sort(depModifier);}}});result.push(modifier);}
modifiers.forEach(function(modifier){if(!visited.has(modifier.name)){sort(modifier);}});return result;}
function orderModifiers(modifiers){var orderedModifiers=order(modifiers);return modifierPhases.reduce(function(acc,phase){return acc.concat(orderedModifiers.filter(function(modifier){return modifier.phase===phase;}));},[]);}
function debounce(fn){var pending;return function(){if(!pending){pending=new Promise(function(resolve){Promise.resolve().then(function(){pending=undefined;resolve(fn());});});}
return pending;};}
function format(str){for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key];}
return[].concat(args).reduce(function(p,c){return p.replace(/%s/,c);},str);}
var INVALID_MODIFIER_ERROR='Popper: modifier "%s" provided an invalid %s property, expected %s but got %s';var MISSING_DEPENDENCY_ERROR='Popper: modifier "%s" requires "%s", but "%s" modifier is not available';var VALID_PROPERTIES=['name','enabled','phase','fn','effect','requires','options'];function validateModifiers(modifiers){modifiers.forEach(function(modifier){[].concat(Object.keys(modifier),VALID_PROPERTIES).filter(function(value,index,self){return self.indexOf(value)===index;}).forEach(function(key){switch(key){case'name':if(typeof modifier.name!=='string'){console.error(format(INVALID_MODIFIER_ERROR,String(modifier.name),'"name"','"string"',"\""+String(modifier.name)+"\""));}
break;case'enabled':if(typeof modifier.enabled!=='boolean'){console.error(format(INVALID_MODIFIER_ERROR,modifier.name,'"enabled"','"boolean"',"\""+String(modifier.enabled)+"\""));}
break;case'phase':if(modifierPhases.indexOf(modifier.phase)<0){console.error(format(INVALID_MODIFIER_ERROR,modifier.name,'"phase"',"either "+modifierPhases.join(', '),"\""+String(modifier.phase)+"\""));}
break;case'fn':if(typeof modifier.fn!=='function'){console.error(format(INVALID_MODIFIER_ERROR,modifier.name,'"fn"','"function"',"\""+String(modifier.fn)+"\""));}
break;case'effect':if(modifier.effect!=null&&typeof modifier.effect!=='function'){console.error(format(INVALID_MODIFIER_ERROR,modifier.name,'"effect"','"function"',"\""+String(modifier.fn)+"\""));}
break;case'requires':if(modifier.requires!=null&&!Array.isArray(modifier.requires)){console.error(format(INVALID_MODIFIER_ERROR,modifier.name,'"requires"','"array"',"\""+String(modifier.requires)+"\""));}
break;case'requiresIfExists':if(!Array.isArray(modifier.requiresIfExists)){console.error(format(INVALID_MODIFIER_ERROR,modifier.name,'"requiresIfExists"','"array"',"\""+String(modifier.requiresIfExists)+"\""));}
break;case'options':case'data':break;default:console.error("PopperJS: an invalid property has been provided to the \""+modifier.name+"\" modifier, valid properties are "+VALID_PROPERTIES.map(function(s){return"\""+s+"\"";}).join(', ')+"; but \""+key+"\" was provided.");}
modifier.requires&&modifier.requires.forEach(function(requirement){if(modifiers.find(function(mod){return mod.name===requirement;})==null){console.error(format(MISSING_DEPENDENCY_ERROR,String(modifier.name),requirement,requirement));}});});});}
function uniqueBy(arr,fn){var identifiers=new Set();return arr.filter(function(item){var identifier=fn(item);if(!identifiers.has(identifier)){identifiers.add(identifier);return true;}});}
function getBasePlacement(placement){return placement.split('-')[0];}
function mergeByName(modifiers){var merged=modifiers.reduce(function(merged,current){var existing=merged[current.name];merged[current.name]=existing?Object.assign({},existing,current,{options:Object.assign({},existing.options,current.options),data:Object.assign({},existing.data,current.data)}):current;return merged;},{});return Object.keys(merged).map(function(key){return merged[key];});}
function getViewportRect(element){var win=getWindow(element);var html=getDocumentElement(element);var visualViewport=win.visualViewport;var width=html.clientWidth;var height=html.clientHeight;var x=0;var y=0;if(visualViewport){width=visualViewport.width;height=visualViewport.height;if(!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)){x=visualViewport.offsetLeft;y=visualViewport.offsetTop;}}
return{width:width,height:height,x:x+getWindowScrollBarX(element),y:y};}
function getDocumentRect(element){var _element$ownerDocumen;var html=getDocumentElement(element);var winScroll=getWindowScroll(element);var body=(_element$ownerDocumen=element.ownerDocument)==null?void 0:_element$ownerDocumen.body;var width=max(html.scrollWidth,html.clientWidth,body?body.scrollWidth:0,body?body.clientWidth:0);var height=max(html.scrollHeight,html.clientHeight,body?body.scrollHeight:0,body?body.clientHeight:0);var x=-winScroll.scrollLeft+getWindowScrollBarX(element);var y=-winScroll.scrollTop;if(getComputedStyle(body||html).direction==='rtl'){x+=max(html.clientWidth,body?body.clientWidth:0)-width;}
return{width:width,height:height,x:x,y:y};}
function contains(parent,child){var rootNode=child.getRootNode&&child.getRootNode();if(parent.contains(child)){return true;}
else if(rootNode&&isShadowRoot(rootNode)){var next=child;do{if(next&&parent.isSameNode(next)){return true;}
next=next.parentNode||next.host;}while(next);}
return false;}
function rectToClientRect(rect){return Object.assign({},rect,{left:rect.x,top:rect.y,right:rect.x+rect.width,bottom:rect.y+rect.height});}
function getInnerBoundingClientRect(element){var rect=getBoundingClientRect(element);rect.top=rect.top+element.clientTop;rect.left=rect.left+element.clientLeft;rect.bottom=rect.top+element.clientHeight;rect.right=rect.left+element.clientWidth;rect.width=element.clientWidth;rect.height=element.clientHeight;rect.x=rect.left;rect.y=rect.top;return rect;}
function getClientRectFromMixedType(element,clippingParent){return clippingParent===viewport?rectToClientRect(getViewportRect(element)):isElement(clippingParent)?getInnerBoundingClientRect(clippingParent):rectToClientRect(getDocumentRect(getDocumentElement(element)));}
function getClippingParents(element){var clippingParents=listScrollParents(getParentNode(element));var canEscapeClipping=['absolute','fixed'].indexOf(getComputedStyle(element).position)>=0;var clipperElement=canEscapeClipping&&isHTMLElement(element)?getOffsetParent(element):element;if(!isElement(clipperElement)){return[];}
return clippingParents.filter(function(clippingParent){return isElement(clippingParent)&&contains(clippingParent,clipperElement)&&getNodeName(clippingParent)!=='body';});}
function getClippingRect(element,boundary,rootBoundary){var mainClippingParents=boundary==='clippingParents'?getClippingParents(element):[].concat(boundary);var clippingParents=[].concat(mainClippingParents,[rootBoundary]);var firstClippingParent=clippingParents[0];var clippingRect=clippingParents.reduce(function(accRect,clippingParent){var rect=getClientRectFromMixedType(element,clippingParent);accRect.top=max(rect.top,accRect.top);accRect.right=min(rect.right,accRect.right);accRect.bottom=min(rect.bottom,accRect.bottom);accRect.left=max(rect.left,accRect.left);return accRect;},getClientRectFromMixedType(element,firstClippingParent));clippingRect.width=clippingRect.right-clippingRect.left;clippingRect.height=clippingRect.bottom-clippingRect.top;clippingRect.x=clippingRect.left;clippingRect.y=clippingRect.top;return clippingRect;}
function getVariation(placement){return placement.split('-')[1];}
function getMainAxisFromPlacement(placement){return['top','bottom'].indexOf(placement)>=0?'x':'y';}
function computeOffsets(_ref){var reference=_ref.reference,element=_ref.element,placement=_ref.placement;var basePlacement=placement?getBasePlacement(placement):null;var variation=placement?getVariation(placement):null;var commonX=reference.x+reference.width/2-element.width/2;var commonY=reference.y+reference.height/2-element.height/2;var offsets;switch(basePlacement){case top:offsets={x:commonX,y:reference.y-element.height};break;case bottom:offsets={x:commonX,y:reference.y+reference.height};break;case right:offsets={x:reference.x+reference.width,y:commonY};break;case left:offsets={x:reference.x-element.width,y:commonY};break;default:offsets={x:reference.x,y:reference.y};}
var mainAxis=basePlacement?getMainAxisFromPlacement(basePlacement):null;if(mainAxis!=null){var len=mainAxis==='y'?'height':'width';switch(variation){case start:offsets[mainAxis]=offsets[mainAxis]-(reference[len]/2-element[len]/2);break;case end:offsets[mainAxis]=offsets[mainAxis]+(reference[len]/2-element[len]/2);break;}}
return offsets;}
function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0};}
function mergePaddingObject(paddingObject){return Object.assign({},getFreshSideObject(),paddingObject);}
function expandToHashMap(value,keys){return keys.reduce(function(hashMap,key){hashMap[key]=value;return hashMap;},{});}
function detectOverflow(state,options){if(options===void 0){options={};}
var _options=options,_options$placement=_options.placement,placement=_options$placement===void 0?state.placement:_options$placement,_options$boundary=_options.boundary,boundary=_options$boundary===void 0?clippingParents:_options$boundary,_options$rootBoundary=_options.rootBoundary,rootBoundary=_options$rootBoundary===void 0?viewport:_options$rootBoundary,_options$elementConte=_options.elementContext,elementContext=_options$elementConte===void 0?popper:_options$elementConte,_options$altBoundary=_options.altBoundary,altBoundary=_options$altBoundary===void 0?false:_options$altBoundary,_options$padding=_options.padding,padding=_options$padding===void 0?0:_options$padding;var paddingObject=mergePaddingObject(typeof padding!=='number'?padding:expandToHashMap(padding,basePlacements));var altContext=elementContext===popper?reference:popper;var popperRect=state.rects.popper;var element=state.elements[altBoundary?altContext:elementContext];var clippingClientRect=getClippingRect(isElement(element)?element:element.contextElement||getDocumentElement(state.elements.popper),boundary,rootBoundary);var referenceClientRect=getBoundingClientRect(state.elements.reference);var popperOffsets=computeOffsets({reference:referenceClientRect,element:popperRect,strategy:'absolute',placement:placement});var popperClientRect=rectToClientRect(Object.assign({},popperRect,popperOffsets));var elementClientRect=elementContext===popper?popperClientRect:referenceClientRect;var overflowOffsets={top:clippingClientRect.top-elementClientRect.top+paddingObject.top,bottom:elementClientRect.bottom-clippingClientRect.bottom+paddingObject.bottom,left:clippingClientRect.left-elementClientRect.left+paddingObject.left,right:elementClientRect.right-clippingClientRect.right+paddingObject.right};var offsetData=state.modifiersData.offset;if(elementContext===popper&&offsetData){var offset=offsetData[placement];Object.keys(overflowOffsets).forEach(function(key){var multiply=[right,bottom].indexOf(key)>=0?1:-1;var axis=[top,bottom].indexOf(key)>=0?'y':'x';overflowOffsets[key]+=offset[axis]*multiply;});}
return overflowOffsets;}
var INVALID_ELEMENT_ERROR='Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';var INFINITE_LOOP_ERROR='Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';var DEFAULT_OPTIONS={placement:'bottom',modifiers:[],strategy:'absolute'};function areValidElements(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}
return!args.some(function(element){return!(element&&typeof element.getBoundingClientRect==='function');});}
function popperGenerator(generatorOptions){if(generatorOptions===void 0){generatorOptions={};}
var _generatorOptions=generatorOptions,_generatorOptions$def=_generatorOptions.defaultModifiers,defaultModifiers=_generatorOptions$def===void 0?[]:_generatorOptions$def,_generatorOptions$def2=_generatorOptions.defaultOptions,defaultOptions=_generatorOptions$def2===void 0?DEFAULT_OPTIONS:_generatorOptions$def2;return function createPopper(reference,popper,options){if(options===void 0){options=defaultOptions;}
var state={placement:'bottom',orderedModifiers:[],options:Object.assign({},DEFAULT_OPTIONS,defaultOptions),modifiersData:{},elements:{reference:reference,popper:popper},attributes:{},styles:{}};var effectCleanupFns=[];var isDestroyed=false;var instance={state:state,setOptions:function setOptions(setOptionsAction){var options=typeof setOptionsAction==='function'?setOptionsAction(state.options):setOptionsAction;cleanupModifierEffects();state.options=Object.assign({},defaultOptions,state.options,options);state.scrollParents={reference:isElement(reference)?listScrollParents(reference):reference.contextElement?listScrollParents(reference.contextElement):[],popper:listScrollParents(popper)};var orderedModifiers=orderModifiers(mergeByName([].concat(defaultModifiers,state.options.modifiers)));state.orderedModifiers=orderedModifiers.filter(function(m){return m.enabled;});{var modifiers=uniqueBy([].concat(orderedModifiers,state.options.modifiers),function(_ref){var name=_ref.name;return name;});validateModifiers(modifiers);if(getBasePlacement(state.options.placement)===auto){var flipModifier=state.orderedModifiers.find(function(_ref2){var name=_ref2.name;return name==='flip';});if(!flipModifier){console.error(['Popper: "auto" placements require the "flip" modifier be','present and enabled to work.'].join(' '));}}
var _getComputedStyle=getComputedStyle(popper),marginTop=_getComputedStyle.marginTop,marginRight=_getComputedStyle.marginRight,marginBottom=_getComputedStyle.marginBottom,marginLeft=_getComputedStyle.marginLeft;if([marginTop,marginRight,marginBottom,marginLeft].some(function(margin){return parseFloat(margin);})){console.warn(['Popper: CSS "margin" styles cannot be used to apply padding','between the popper and its reference element or boundary.','To replicate margin, use the `offset` modifier, as well as','the `padding` option in the `preventOverflow` and `flip`','modifiers.'].join(' '));}}
runModifierEffects();return instance.update();},forceUpdate:function forceUpdate(){if(isDestroyed){return;}
var _state$elements=state.elements,reference=_state$elements.reference,popper=_state$elements.popper;if(!areValidElements(reference,popper)){{console.error(INVALID_ELEMENT_ERROR);}
return;}
state.rects={reference:getCompositeRect(reference,getOffsetParent(popper),state.options.strategy==='fixed'),popper:getLayoutRect(popper)};state.reset=false;state.placement=state.options.placement;state.orderedModifiers.forEach(function(modifier){return state.modifiersData[modifier.name]=Object.assign({},modifier.data);});var __debug_loops__=0;for(var index=0;index<state.orderedModifiers.length;index++){{__debug_loops__+=1;if(__debug_loops__>100){console.error(INFINITE_LOOP_ERROR);break;}}
if(state.reset===true){state.reset=false;index=-1;continue;}
var _state$orderedModifie=state.orderedModifiers[index],fn=_state$orderedModifie.fn,_state$orderedModifie2=_state$orderedModifie.options,_options=_state$orderedModifie2===void 0?{}:_state$orderedModifie2,name=_state$orderedModifie.name;if(typeof fn==='function'){state=fn({state:state,options:_options,name:name,instance:instance})||state;}}},update:debounce(function(){return new Promise(function(resolve){instance.forceUpdate();resolve(state);});}),destroy:function destroy(){cleanupModifierEffects();isDestroyed=true;}};if(!areValidElements(reference,popper)){{console.error(INVALID_ELEMENT_ERROR);}
return instance;}
instance.setOptions(options).then(function(state){if(!isDestroyed&&options.onFirstUpdate){options.onFirstUpdate(state);}});function runModifierEffects(){state.orderedModifiers.forEach(function(_ref3){var name=_ref3.name,_ref3$options=_ref3.options,options=_ref3$options===void 0?{}:_ref3$options,effect=_ref3.effect;if(typeof effect==='function'){var cleanupFn=effect({state:state,name:name,instance:instance,options:options});var noopFn=function noopFn(){};effectCleanupFns.push(cleanupFn||noopFn);}});}
function cleanupModifierEffects(){effectCleanupFns.forEach(function(fn){return fn();});effectCleanupFns=[];}
return instance;};}
var passive={passive:true};function effect$2(_ref){var state=_ref.state,instance=_ref.instance,options=_ref.options;var _options$scroll=options.scroll,scroll=_options$scroll===void 0?true:_options$scroll,_options$resize=options.resize,resize=_options$resize===void 0?true:_options$resize;var window=getWindow(state.elements.popper);var scrollParents=[].concat(state.scrollParents.reference,state.scrollParents.popper);if(scroll){scrollParents.forEach(function(scrollParent){scrollParent.addEventListener('scroll',instance.update,passive);});}
if(resize){window.addEventListener('resize',instance.update,passive);}
return function(){if(scroll){scrollParents.forEach(function(scrollParent){scrollParent.removeEventListener('scroll',instance.update,passive);});}
if(resize){window.removeEventListener('resize',instance.update,passive);}};}
var eventListeners={name:'eventListeners',enabled:true,phase:'write',fn:function fn(){},effect:effect$2,data:{}};function popperOffsets(_ref){var state=_ref.state,name=_ref.name;state.modifiersData[name]=computeOffsets({reference:state.rects.reference,element:state.rects.popper,strategy:'absolute',placement:state.placement});}
var popperOffsets$1={name:'popperOffsets',enabled:true,phase:'read',fn:popperOffsets,data:{}};var unsetSides={top:'auto',right:'auto',bottom:'auto',left:'auto'};function roundOffsetsByDPR(_ref){var x=_ref.x,y=_ref.y;var win=window;var dpr=win.devicePixelRatio||1;return{x:round(x*dpr)/dpr||0,y:round(y*dpr)/dpr||0};}
function mapToStyles(_ref2){var _Object$assign2;var popper=_ref2.popper,popperRect=_ref2.popperRect,placement=_ref2.placement,variation=_ref2.variation,offsets=_ref2.offsets,position=_ref2.position,gpuAcceleration=_ref2.gpuAcceleration,adaptive=_ref2.adaptive,roundOffsets=_ref2.roundOffsets,isFixed=_ref2.isFixed;var _offsets$x=offsets.x,x=_offsets$x===void 0?0:_offsets$x,_offsets$y=offsets.y,y=_offsets$y===void 0?0:_offsets$y;var _ref3=typeof roundOffsets==='function'?roundOffsets({x:x,y:y}):{x:x,y:y};x=_ref3.x;y=_ref3.y;var hasX=offsets.hasOwnProperty('x');var hasY=offsets.hasOwnProperty('y');var sideX=left;var sideY=top;var win=window;if(adaptive){var offsetParent=getOffsetParent(popper);var heightProp='clientHeight';var widthProp='clientWidth';if(offsetParent===getWindow(popper)){offsetParent=getDocumentElement(popper);if(getComputedStyle(offsetParent).position!=='static'&&position==='absolute'){heightProp='scrollHeight';widthProp='scrollWidth';}}
offsetParent=offsetParent;if(placement===top||(placement===left||placement===right)&&variation===end){sideY=bottom;var offsetY=isFixed&&win.visualViewport?win.visualViewport.height:offsetParent[heightProp];y-=offsetY-popperRect.height;y*=gpuAcceleration?1:-1;}
if(placement===left||(placement===top||placement===bottom)&&variation===end){sideX=right;var offsetX=isFixed&&win.visualViewport?win.visualViewport.width:offsetParent[widthProp];x-=offsetX-popperRect.width;x*=gpuAcceleration?1:-1;}}
var commonStyles=Object.assign({position:position},adaptive&&unsetSides);var _ref4=roundOffsets===true?roundOffsetsByDPR({x:x,y:y}):{x:x,y:y};x=_ref4.x;y=_ref4.y;if(gpuAcceleration){var _Object$assign;return Object.assign({},commonStyles,(_Object$assign={},_Object$assign[sideY]=hasY?'0':'',_Object$assign[sideX]=hasX?'0':'',_Object$assign.transform=(win.devicePixelRatio||1)<=1?"translate("+x+"px, "+y+"px)":"translate3d("+x+"px, "+y+"px, 0)",_Object$assign));}
return Object.assign({},commonStyles,(_Object$assign2={},_Object$assign2[sideY]=hasY?y+"px":'',_Object$assign2[sideX]=hasX?x+"px":'',_Object$assign2.transform='',_Object$assign2));}
function computeStyles(_ref5){var state=_ref5.state,options=_ref5.options;var _options$gpuAccelerat=options.gpuAcceleration,gpuAcceleration=_options$gpuAccelerat===void 0?true:_options$gpuAccelerat,_options$adaptive=options.adaptive,adaptive=_options$adaptive===void 0?true:_options$adaptive,_options$roundOffsets=options.roundOffsets,roundOffsets=_options$roundOffsets===void 0?true:_options$roundOffsets;{var transitionProperty=getComputedStyle(state.elements.popper).transitionProperty||'';if(adaptive&&['transform','top','right','bottom','left'].some(function(property){return transitionProperty.indexOf(property)>=0;})){console.warn(['Popper: Detected CSS transitions on at least one of the following','CSS properties: "transform", "top", "right", "bottom", "left".','\n\n','Disable the "computeStyles" modifier\'s `adaptive` option to allow','for smooth transitions, or remove these properties from the CSS','transition declaration on the popper element if only transitioning','opacity or background-color for example.','\n\n','We recommend using the popper element as a wrapper around an inner','element that can have any CSS property transitioned for animations.'].join(' '));}}
var commonStyles={placement:getBasePlacement(state.placement),variation:getVariation(state.placement),popper:state.elements.popper,popperRect:state.rects.popper,gpuAcceleration:gpuAcceleration,isFixed:state.options.strategy==='fixed'};if(state.modifiersData.popperOffsets!=null){state.styles.popper=Object.assign({},state.styles.popper,mapToStyles(Object.assign({},commonStyles,{offsets:state.modifiersData.popperOffsets,position:state.options.strategy,adaptive:adaptive,roundOffsets:roundOffsets})));}
if(state.modifiersData.arrow!=null){state.styles.arrow=Object.assign({},state.styles.arrow,mapToStyles(Object.assign({},commonStyles,{offsets:state.modifiersData.arrow,position:'absolute',adaptive:false,roundOffsets:roundOffsets})));}
state.attributes.popper=Object.assign({},state.attributes.popper,{'data-popper-placement':state.placement});}
var computeStyles$1={name:'computeStyles',enabled:true,phase:'beforeWrite',fn:computeStyles,data:{}};function applyStyles(_ref){var state=_ref.state;Object.keys(state.elements).forEach(function(name){var style=state.styles[name]||{};var attributes=state.attributes[name]||{};var element=state.elements[name];if(!isHTMLElement(element)||!getNodeName(element)){return;}
Object.assign(element.style,style);Object.keys(attributes).forEach(function(name){var value=attributes[name];if(value===false){element.removeAttribute(name);}else{element.setAttribute(name,value===true?'':value);}});});}
function effect$1(_ref2){var state=_ref2.state;var initialStyles={popper:{position:state.options.strategy,left:'0',top:'0',margin:'0'},arrow:{position:'absolute'},reference:{}};Object.assign(state.elements.popper.style,initialStyles.popper);state.styles=initialStyles;if(state.elements.arrow){Object.assign(state.elements.arrow.style,initialStyles.arrow);}
return function(){Object.keys(state.elements).forEach(function(name){var element=state.elements[name];var attributes=state.attributes[name]||{};var styleProperties=Object.keys(state.styles.hasOwnProperty(name)?state.styles[name]:initialStyles[name]);var style=styleProperties.reduce(function(style,property){style[property]='';return style;},{});if(!isHTMLElement(element)||!getNodeName(element)){return;}
Object.assign(element.style,style);Object.keys(attributes).forEach(function(attribute){element.removeAttribute(attribute);});});};}
var applyStyles$1={name:'applyStyles',enabled:true,phase:'write',fn:applyStyles,effect:effect$1,requires:['computeStyles']};function distanceAndSkiddingToXY(placement,rects,offset){var basePlacement=getBasePlacement(placement);var invertDistance=[left,top].indexOf(basePlacement)>=0?-1:1;var _ref=typeof offset==='function'?offset(Object.assign({},rects,{placement:placement})):offset,skidding=_ref[0],distance=_ref[1];skidding=skidding||0;distance=(distance||0)*invertDistance;return[left,right].indexOf(basePlacement)>=0?{x:distance,y:skidding}:{x:skidding,y:distance};}
function offset(_ref2){var state=_ref2.state,options=_ref2.options,name=_ref2.name;var _options$offset=options.offset,offset=_options$offset===void 0?[0,0]:_options$offset;var data=placements.reduce(function(acc,placement){acc[placement]=distanceAndSkiddingToXY(placement,state.rects,offset);return acc;},{});var _data$state$placement=data[state.placement],x=_data$state$placement.x,y=_data$state$placement.y;if(state.modifiersData.popperOffsets!=null){state.modifiersData.popperOffsets.x+=x;state.modifiersData.popperOffsets.y+=y;}
state.modifiersData[name]=data;}
var offset$1={name:'offset',enabled:true,phase:'main',requires:['popperOffsets'],fn:offset};var hash$1={left:'right',right:'left',bottom:'top',top:'bottom'};function getOppositePlacement(placement){return placement.replace(/left|right|bottom|top/g,function(matched){return hash$1[matched];});}
var hash={start:'end',end:'start'};function getOppositeVariationPlacement(placement){return placement.replace(/start|end/g,function(matched){return hash[matched];});}
function computeAutoPlacement(state,options){if(options===void 0){options={};}
var _options=options,placement=_options.placement,boundary=_options.boundary,rootBoundary=_options.rootBoundary,padding=_options.padding,flipVariations=_options.flipVariations,_options$allowedAutoP=_options.allowedAutoPlacements,allowedAutoPlacements=_options$allowedAutoP===void 0?placements:_options$allowedAutoP;var variation=getVariation(placement);var placements$1=variation?flipVariations?variationPlacements:variationPlacements.filter(function(placement){return getVariation(placement)===variation;}):basePlacements;var allowedPlacements=placements$1.filter(function(placement){return allowedAutoPlacements.indexOf(placement)>=0;});if(allowedPlacements.length===0){allowedPlacements=placements$1;{console.error(['Popper: The `allowedAutoPlacements` option did not allow any','placements. Ensure the `placement` option matches the variation','of the allowed placements.','For example, "auto" cannot be used to allow "bottom-start".','Use "auto-start" instead.'].join(' '));}}
var overflows=allowedPlacements.reduce(function(acc,placement){acc[placement]=detectOverflow(state,{placement:placement,boundary:boundary,rootBoundary:rootBoundary,padding:padding})[getBasePlacement(placement)];return acc;},{});return Object.keys(overflows).sort(function(a,b){return overflows[a]-overflows[b];});}
function getExpandedFallbackPlacements(placement){if(getBasePlacement(placement)===auto){return[];}
var oppositePlacement=getOppositePlacement(placement);return[getOppositeVariationPlacement(placement),oppositePlacement,getOppositeVariationPlacement(oppositePlacement)];}
function flip(_ref){var state=_ref.state,options=_ref.options,name=_ref.name;if(state.modifiersData[name]._skip){return;}
var _options$mainAxis=options.mainAxis,checkMainAxis=_options$mainAxis===void 0?true:_options$mainAxis,_options$altAxis=options.altAxis,checkAltAxis=_options$altAxis===void 0?true:_options$altAxis,specifiedFallbackPlacements=options.fallbackPlacements,padding=options.padding,boundary=options.boundary,rootBoundary=options.rootBoundary,altBoundary=options.altBoundary,_options$flipVariatio=options.flipVariations,flipVariations=_options$flipVariatio===void 0?true:_options$flipVariatio,allowedAutoPlacements=options.allowedAutoPlacements;var preferredPlacement=state.options.placement;var basePlacement=getBasePlacement(preferredPlacement);var isBasePlacement=basePlacement===preferredPlacement;var fallbackPlacements=specifiedFallbackPlacements||(isBasePlacement||!flipVariations?[getOppositePlacement(preferredPlacement)]:getExpandedFallbackPlacements(preferredPlacement));var placements=[preferredPlacement].concat(fallbackPlacements).reduce(function(acc,placement){return acc.concat(getBasePlacement(placement)===auto?computeAutoPlacement(state,{placement:placement,boundary:boundary,rootBoundary:rootBoundary,padding:padding,flipVariations:flipVariations,allowedAutoPlacements:allowedAutoPlacements}):placement);},[]);var referenceRect=state.rects.reference;var popperRect=state.rects.popper;var checksMap=new Map();var makeFallbackChecks=true;var firstFittingPlacement=placements[0];for(var i=0;i<placements.length;i++){var placement=placements[i];var _basePlacement=getBasePlacement(placement);var isStartVariation=getVariation(placement)===start;var isVertical=[top,bottom].indexOf(_basePlacement)>=0;var len=isVertical?'width':'height';var overflow=detectOverflow(state,{placement:placement,boundary:boundary,rootBoundary:rootBoundary,altBoundary:altBoundary,padding:padding});var mainVariationSide=isVertical?isStartVariation?right:left:isStartVariation?bottom:top;if(referenceRect[len]>popperRect[len]){mainVariationSide=getOppositePlacement(mainVariationSide);}
var altVariationSide=getOppositePlacement(mainVariationSide);var checks=[];if(checkMainAxis){checks.push(overflow[_basePlacement]<=0);}
if(checkAltAxis){checks.push(overflow[mainVariationSide]<=0,overflow[altVariationSide]<=0);}
if(checks.every(function(check){return check;})){firstFittingPlacement=placement;makeFallbackChecks=false;break;}
checksMap.set(placement,checks);}
if(makeFallbackChecks){var numberOfChecks=flipVariations?3:1;var _loop=function _loop(_i){var fittingPlacement=placements.find(function(placement){var checks=checksMap.get(placement);if(checks){return checks.slice(0,_i).every(function(check){return check;});}});if(fittingPlacement){firstFittingPlacement=fittingPlacement;return"break";}};for(var _i=numberOfChecks;_i>0;_i--){var _ret=_loop(_i);if(_ret==="break")break;}}
if(state.placement!==firstFittingPlacement){state.modifiersData[name]._skip=true;state.placement=firstFittingPlacement;state.reset=true;}}
var flip$1={name:'flip',enabled:true,phase:'main',fn:flip,requiresIfExists:['offset'],data:{_skip:false}};function getAltAxis(axis){return axis==='x'?'y':'x';}
function within(min$1,value,max$1){return max(min$1,min(value,max$1));}
function withinMaxClamp(min,value,max){var v=within(min,value,max);return v>max?max:v;}
function preventOverflow(_ref){var state=_ref.state,options=_ref.options,name=_ref.name;var _options$mainAxis=options.mainAxis,checkMainAxis=_options$mainAxis===void 0?true:_options$mainAxis,_options$altAxis=options.altAxis,checkAltAxis=_options$altAxis===void 0?false:_options$altAxis,boundary=options.boundary,rootBoundary=options.rootBoundary,altBoundary=options.altBoundary,padding=options.padding,_options$tether=options.tether,tether=_options$tether===void 0?true:_options$tether,_options$tetherOffset=options.tetherOffset,tetherOffset=_options$tetherOffset===void 0?0:_options$tetherOffset;var overflow=detectOverflow(state,{boundary:boundary,rootBoundary:rootBoundary,padding:padding,altBoundary:altBoundary});var basePlacement=getBasePlacement(state.placement);var variation=getVariation(state.placement);var isBasePlacement=!variation;var mainAxis=getMainAxisFromPlacement(basePlacement);var altAxis=getAltAxis(mainAxis);var popperOffsets=state.modifiersData.popperOffsets;var referenceRect=state.rects.reference;var popperRect=state.rects.popper;var tetherOffsetValue=typeof tetherOffset==='function'?tetherOffset(Object.assign({},state.rects,{placement:state.placement})):tetherOffset;var normalizedTetherOffsetValue=typeof tetherOffsetValue==='number'?{mainAxis:tetherOffsetValue,altAxis:tetherOffsetValue}:Object.assign({mainAxis:0,altAxis:0},tetherOffsetValue);var offsetModifierState=state.modifiersData.offset?state.modifiersData.offset[state.placement]:null;var data={x:0,y:0};if(!popperOffsets){return;}
if(checkMainAxis){var _offsetModifierState$;var mainSide=mainAxis==='y'?top:left;var altSide=mainAxis==='y'?bottom:right;var len=mainAxis==='y'?'height':'width';var offset=popperOffsets[mainAxis];var min$1=offset+overflow[mainSide];var max$1=offset-overflow[altSide];var additive=tether?-popperRect[len]/2:0;var minLen=variation===start?referenceRect[len]:popperRect[len];var maxLen=variation===start?-popperRect[len]:-referenceRect[len];var arrowElement=state.elements.arrow;var arrowRect=tether&&arrowElement?getLayoutRect(arrowElement):{width:0,height:0};var arrowPaddingObject=state.modifiersData['arrow#persistent']?state.modifiersData['arrow#persistent'].padding:getFreshSideObject();var arrowPaddingMin=arrowPaddingObject[mainSide];var arrowPaddingMax=arrowPaddingObject[altSide];var arrowLen=within(0,referenceRect[len],arrowRect[len]);var minOffset=isBasePlacement?referenceRect[len]/2-additive-arrowLen-arrowPaddingMin-normalizedTetherOffsetValue.mainAxis:minLen-arrowLen-arrowPaddingMin-normalizedTetherOffsetValue.mainAxis;var maxOffset=isBasePlacement?-referenceRect[len]/2+additive+arrowLen+arrowPaddingMax+normalizedTetherOffsetValue.mainAxis:maxLen+arrowLen+arrowPaddingMax+normalizedTetherOffsetValue.mainAxis;var arrowOffsetParent=state.elements.arrow&&getOffsetParent(state.elements.arrow);var clientOffset=arrowOffsetParent?mainAxis==='y'?arrowOffsetParent.clientTop||0:arrowOffsetParent.clientLeft||0:0;var offsetModifierValue=(_offsetModifierState$=offsetModifierState==null?void 0:offsetModifierState[mainAxis])!=null?_offsetModifierState$:0;var tetherMin=offset+minOffset-offsetModifierValue-clientOffset;var tetherMax=offset+maxOffset-offsetModifierValue;var preventedOffset=within(tether?min(min$1,tetherMin):min$1,offset,tether?max(max$1,tetherMax):max$1);popperOffsets[mainAxis]=preventedOffset;data[mainAxis]=preventedOffset-offset;}
if(checkAltAxis){var _offsetModifierState$2;var _mainSide=mainAxis==='x'?top:left;var _altSide=mainAxis==='x'?bottom:right;var _offset=popperOffsets[altAxis];var _len=altAxis==='y'?'height':'width';var _min=_offset+overflow[_mainSide];var _max=_offset-overflow[_altSide];var isOriginSide=[top,left].indexOf(basePlacement)!==-1;var _offsetModifierValue=(_offsetModifierState$2=offsetModifierState==null?void 0:offsetModifierState[altAxis])!=null?_offsetModifierState$2:0;var _tetherMin=isOriginSide?_min:_offset-referenceRect[_len]-popperRect[_len]-_offsetModifierValue+normalizedTetherOffsetValue.altAxis;var _tetherMax=isOriginSide?_offset+referenceRect[_len]+popperRect[_len]-_offsetModifierValue-normalizedTetherOffsetValue.altAxis:_max;var _preventedOffset=tether&&isOriginSide?withinMaxClamp(_tetherMin,_offset,_tetherMax):within(tether?_tetherMin:_min,_offset,tether?_tetherMax:_max);popperOffsets[altAxis]=_preventedOffset;data[altAxis]=_preventedOffset-_offset;}
state.modifiersData[name]=data;}
var preventOverflow$1={name:'preventOverflow',enabled:true,phase:'main',fn:preventOverflow,requiresIfExists:['offset']};var toPaddingObject=function toPaddingObject(padding,state){padding=typeof padding==='function'?padding(Object.assign({},state.rects,{placement:state.placement})):padding;return mergePaddingObject(typeof padding!=='number'?padding:expandToHashMap(padding,basePlacements));};function arrow(_ref){var _state$modifiersData$;var state=_ref.state,name=_ref.name,options=_ref.options;var arrowElement=state.elements.arrow;var popperOffsets=state.modifiersData.popperOffsets;var basePlacement=getBasePlacement(state.placement);var axis=getMainAxisFromPlacement(basePlacement);var isVertical=[left,right].indexOf(basePlacement)>=0;var len=isVertical?'height':'width';if(!arrowElement||!popperOffsets){return;}
var paddingObject=toPaddingObject(options.padding,state);var arrowRect=getLayoutRect(arrowElement);var minProp=axis==='y'?top:left;var maxProp=axis==='y'?bottom:right;var endDiff=state.rects.reference[len]+state.rects.reference[axis]-popperOffsets[axis]-state.rects.popper[len];var startDiff=popperOffsets[axis]-state.rects.reference[axis];var arrowOffsetParent=getOffsetParent(arrowElement);var clientSize=arrowOffsetParent?axis==='y'?arrowOffsetParent.clientHeight||0:arrowOffsetParent.clientWidth||0:0;var centerToReference=endDiff/2-startDiff/2;var min=paddingObject[minProp];var max=clientSize-arrowRect[len]-paddingObject[maxProp];var center=clientSize/2-arrowRect[len]/2+centerToReference;var offset=within(min,center,max);var axisProp=axis;state.modifiersData[name]=(_state$modifiersData$={},_state$modifiersData$[axisProp]=offset,_state$modifiersData$.centerOffset=offset-center,_state$modifiersData$);}
function effect(_ref2){var state=_ref2.state,options=_ref2.options;var _options$element=options.element,arrowElement=_options$element===void 0?'[data-popper-arrow]':_options$element;if(arrowElement==null){return;}
if(typeof arrowElement==='string'){arrowElement=state.elements.popper.querySelector(arrowElement);if(!arrowElement){return;}}
{if(!isHTMLElement(arrowElement)){console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).','To use an SVG arrow, wrap it in an HTMLElement that will be used as','the arrow.'].join(' '));}}
if(!contains(state.elements.popper,arrowElement)){{console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper','element.'].join(' '));}
return;}
state.elements.arrow=arrowElement;}
var arrow$1={name:'arrow',enabled:true,phase:'main',fn:arrow,effect:effect,requires:['popperOffsets'],requiresIfExists:['preventOverflow']};function getSideOffsets(overflow,rect,preventedOffsets){if(preventedOffsets===void 0){preventedOffsets={x:0,y:0};}
return{top:overflow.top-rect.height-preventedOffsets.y,right:overflow.right-rect.width+preventedOffsets.x,bottom:overflow.bottom-rect.height+preventedOffsets.y,left:overflow.left-rect.width-preventedOffsets.x};}
function isAnySideFullyClipped(overflow){return[top,right,bottom,left].some(function(side){return overflow[side]>=0;});}
function hide(_ref){var state=_ref.state,name=_ref.name;var referenceRect=state.rects.reference;var popperRect=state.rects.popper;var preventedOffsets=state.modifiersData.preventOverflow;var referenceOverflow=detectOverflow(state,{elementContext:'reference'});var popperAltOverflow=detectOverflow(state,{altBoundary:true});var referenceClippingOffsets=getSideOffsets(referenceOverflow,referenceRect);var popperEscapeOffsets=getSideOffsets(popperAltOverflow,popperRect,preventedOffsets);var isReferenceHidden=isAnySideFullyClipped(referenceClippingOffsets);var hasPopperEscaped=isAnySideFullyClipped(popperEscapeOffsets);state.modifiersData[name]={referenceClippingOffsets:referenceClippingOffsets,popperEscapeOffsets:popperEscapeOffsets,isReferenceHidden:isReferenceHidden,hasPopperEscaped:hasPopperEscaped};state.attributes.popper=Object.assign({},state.attributes.popper,{'data-popper-reference-hidden':isReferenceHidden,'data-popper-escaped':hasPopperEscaped});}
var hide$1={name:'hide',enabled:true,phase:'main',requiresIfExists:['preventOverflow'],fn:hide};var defaultModifiers$1=[eventListeners,popperOffsets$1,computeStyles$1,applyStyles$1];var createPopper$1=popperGenerator({defaultModifiers:defaultModifiers$1});var defaultModifiers=[eventListeners,popperOffsets$1,computeStyles$1,applyStyles$1,offset$1,flip$1,preventOverflow$1,arrow$1,hide$1];var createPopper=popperGenerator({defaultModifiers:defaultModifiers});exports.applyStyles=applyStyles$1;exports.arrow=arrow$1;exports.computeStyles=computeStyles$1;exports.createPopper=createPopper;exports.createPopperLite=createPopper$1;exports.defaultModifiers=defaultModifiers;exports.detectOverflow=detectOverflow;exports.eventListeners=eventListeners;exports.flip=flip$1;exports.hide=hide$1;exports.offset=offset$1;exports.popperGenerator=popperGenerator;exports.popperOffsets=popperOffsets$1;exports.preventOverflow=preventOverflow$1;Object.defineProperty(exports,'__esModule',{value:true});})));;

/* /web/static/lib/bootstrap/js/dist/dom/data.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define(factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Data=factory());})(this,(function(){'use strict';const elementMap=new Map();const data={set(element,key,instance){if(!elementMap.has(element)){elementMap.set(element,new Map());}
const instanceMap=elementMap.get(element);if(!instanceMap.has(key)&&instanceMap.size!==0){console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);return;}
instanceMap.set(key,instance);},get(element,key){if(elementMap.has(element)){return elementMap.get(element).get(key)||null;}
return null;},remove(element,key){if(!elementMap.has(element)){return;}
const instanceMap=elementMap.get(element);instanceMap.delete(key);if(instanceMap.size===0){elementMap.delete(element);}}};return data;}));;

/* /web/static/lib/bootstrap/js/dist/dom/event-handler.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define(factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.EventHandler=factory());})(this,(function(){'use strict';const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const namespaceRegex=/[^.]*(?=\..*)\.|.*/;const stripNameRegex=/\..*/;const stripUidRegex=/::\d+$/;const eventRegistry={};let uidEvent=1;const customEvents={mouseenter:'mouseover',mouseleave:'mouseout'};const customEventsRegex=/^(mouseenter|mouseleave)/i;const nativeEvents=new Set(['click','dblclick','mouseup','mousedown','contextmenu','mousewheel','DOMMouseScroll','mouseover','mouseout','mousemove','selectstart','selectend','keydown','keypress','keyup','orientationchange','touchstart','touchmove','touchend','touchcancel','pointerdown','pointermove','pointerup','pointerleave','pointercancel','gesturestart','gesturechange','gestureend','focus','blur','change','reset','select','submit','focusin','focusout','load','unload','beforeunload','resize','move','DOMContentLoaded','readystatechange','error','abort','scroll']);function getUidEvent(element,uid){return uid&&`${uid}::${uidEvent++}`||element.uidEvent||uidEvent++;}
function getEvent(element){const uid=getUidEvent(element);element.uidEvent=uid;eventRegistry[uid]=eventRegistry[uid]||{};return eventRegistry[uid];}
function bootstrapHandler(element,fn){return function handler(event){event.delegateTarget=element;if(handler.oneOff){EventHandler.off(element,event.type,fn);}
return fn.apply(element,[event]);};}
function bootstrapDelegationHandler(element,selector,fn){return function handler(event){const domElements=element.querySelectorAll(selector);for(let{target}=event;target&&target!==this;target=target.parentNode){for(let i=domElements.length;i--;){if(domElements[i]===target){event.delegateTarget=target;if(handler.oneOff){EventHandler.off(element,event.type,selector,fn);}
return fn.apply(target,[event]);}}}
return null;};}
function findHandler(events,handler,delegationSelector=null){const uidEventList=Object.keys(events);for(let i=0,len=uidEventList.length;i<len;i++){const event=events[uidEventList[i]];if(event.originalHandler===handler&&event.delegationSelector===delegationSelector){return event;}}
return null;}
function normalizeParams(originalTypeEvent,handler,delegationFn){const delegation=typeof handler==='string';const originalHandler=delegation?delegationFn:handler;let typeEvent=getTypeEvent(originalTypeEvent);const isNative=nativeEvents.has(typeEvent);if(!isNative){typeEvent=originalTypeEvent;}
return[delegation,originalHandler,typeEvent];}
function addHandler(element,originalTypeEvent,handler,delegationFn,oneOff){if(typeof originalTypeEvent!=='string'||!element){return;}
if(!handler){handler=delegationFn;delegationFn=null;}
if(customEventsRegex.test(originalTypeEvent)){const wrapFn=fn=>{return function(event){if(!event.relatedTarget||event.relatedTarget!==event.delegateTarget&&!event.delegateTarget.contains(event.relatedTarget)){return fn.call(this,event);}};};if(delegationFn){delegationFn=wrapFn(delegationFn);}else{handler=wrapFn(handler);}}
const[delegation,originalHandler,typeEvent]=normalizeParams(originalTypeEvent,handler,delegationFn);const events=getEvent(element);const handlers=events[typeEvent]||(events[typeEvent]={});const previousFn=findHandler(handlers,originalHandler,delegation?handler:null);if(previousFn){previousFn.oneOff=previousFn.oneOff&&oneOff;return;}
const uid=getUidEvent(originalHandler,originalTypeEvent.replace(namespaceRegex,''));const fn=delegation?bootstrapDelegationHandler(element,handler,delegationFn):bootstrapHandler(element,handler);fn.delegationSelector=delegation?handler:null;fn.originalHandler=originalHandler;fn.oneOff=oneOff;fn.uidEvent=uid;handlers[uid]=fn;element.addEventListener(typeEvent,fn,delegation);}
function removeHandler(element,events,typeEvent,handler,delegationSelector){const fn=findHandler(events[typeEvent],handler,delegationSelector);if(!fn){return;}
element.removeEventListener(typeEvent,fn,Boolean(delegationSelector));delete events[typeEvent][fn.uidEvent];}
function removeNamespacedHandlers(element,events,typeEvent,namespace){const storeElementEvent=events[typeEvent]||{};Object.keys(storeElementEvent).forEach(handlerKey=>{if(handlerKey.includes(namespace)){const event=storeElementEvent[handlerKey];removeHandler(element,events,typeEvent,event.originalHandler,event.delegationSelector);}});}
function getTypeEvent(event){event=event.replace(stripNameRegex,'');return customEvents[event]||event;}
const EventHandler={on(element,event,handler,delegationFn){addHandler(element,event,handler,delegationFn,false);},one(element,event,handler,delegationFn){addHandler(element,event,handler,delegationFn,true);},off(element,originalTypeEvent,handler,delegationFn){if(typeof originalTypeEvent!=='string'||!element){return;}
const[delegation,originalHandler,typeEvent]=normalizeParams(originalTypeEvent,handler,delegationFn);const inNamespace=typeEvent!==originalTypeEvent;const events=getEvent(element);const isNamespace=originalTypeEvent.startsWith('.');if(typeof originalHandler!=='undefined'){if(!events||!events[typeEvent]){return;}
removeHandler(element,events,typeEvent,originalHandler,delegation?handler:null);return;}
if(isNamespace){Object.keys(events).forEach(elementEvent=>{removeNamespacedHandlers(element,events,elementEvent,originalTypeEvent.slice(1));});}
const storeElementEvent=events[typeEvent]||{};Object.keys(storeElementEvent).forEach(keyHandlers=>{const handlerKey=keyHandlers.replace(stripUidRegex,'');if(!inNamespace||originalTypeEvent.includes(handlerKey)){const event=storeElementEvent[keyHandlers];removeHandler(element,events,typeEvent,event.originalHandler,event.delegationSelector);}});},trigger(element,event,args){if(typeof event!=='string'||!element){return null;}
const $=getjQuery();const typeEvent=getTypeEvent(event);const inNamespace=event!==typeEvent;const isNative=nativeEvents.has(typeEvent);let jQueryEvent;let bubbles=true;let nativeDispatch=true;let defaultPrevented=false;let evt=null;if(inNamespace&&$){jQueryEvent=$.Event(event,args);$(element).trigger(jQueryEvent);bubbles=!jQueryEvent.isPropagationStopped();nativeDispatch=!jQueryEvent.isImmediatePropagationStopped();defaultPrevented=jQueryEvent.isDefaultPrevented();}
if(isNative){evt=document.createEvent('HTMLEvents');evt.initEvent(typeEvent,bubbles,true);}else{evt=new CustomEvent(event,{bubbles,cancelable:true});}
if(typeof args!=='undefined'){Object.keys(args).forEach(key=>{Object.defineProperty(evt,key,{get(){return args[key];}});});}
if(defaultPrevented){evt.preventDefault();}
if(nativeDispatch){element.dispatchEvent(evt);}
if(evt.defaultPrevented&&typeof jQueryEvent!=='undefined'){jQueryEvent.preventDefault();}
return evt;}};return EventHandler;}));;

/* /web/static/lib/bootstrap/js/dist/dom/manipulator.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define(factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Manipulator=factory());})(this,(function(){'use strict';function normalizeData(val){if(val==='true'){return true;}
if(val==='false'){return false;}
if(val===Number(val).toString()){return Number(val);}
if(val===''||val==='null'){return null;}
return val;}
function normalizeDataKey(key){return key.replace(/[A-Z]/g,chr=>`-${chr.toLowerCase()}`);}
const Manipulator={setDataAttribute(element,key,value){element.setAttribute(`data-bs-${normalizeDataKey(key)}`,value);},removeDataAttribute(element,key){element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);},getDataAttributes(element){if(!element){return{};}
const attributes={};Object.keys(element.dataset).filter(key=>key.startsWith('bs')).forEach(key=>{let pureKey=key.replace(/^bs/,'');pureKey=pureKey.charAt(0).toLowerCase()+pureKey.slice(1,pureKey.length);attributes[pureKey]=normalizeData(element.dataset[key]);});return attributes;},getDataAttribute(element,key){return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));},offset(element){const rect=element.getBoundingClientRect();return{top:rect.top+window.pageYOffset,left:rect.left+window.pageXOffset};},position(element){return{top:element.offsetTop,left:element.offsetLeft};}};return Manipulator;}));;

/* /web/static/lib/bootstrap/js/dist/dom/selector-engine.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define(factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.SelectorEngine=factory());})(this,(function(){'use strict';const isElement=obj=>{if(!obj||typeof obj!=='object'){return false;}
if(typeof obj.jquery!=='undefined'){obj=obj[0];}
return typeof obj.nodeType!=='undefined';};const isVisible=element=>{if(!isElement(element)||element.getClientRects().length===0){return false;}
return getComputedStyle(element).getPropertyValue('visibility')==='visible';};const isDisabled=element=>{if(!element||element.nodeType!==Node.ELEMENT_NODE){return true;}
if(element.classList.contains('disabled')){return true;}
if(typeof element.disabled!=='undefined'){return element.disabled;}
return element.hasAttribute('disabled')&&element.getAttribute('disabled')!=='false';};const NODE_TEXT=3;const SelectorEngine={find(selector,element=document.documentElement){return[].concat(...Element.prototype.querySelectorAll.call(element,selector));},findOne(selector,element=document.documentElement){return Element.prototype.querySelector.call(element,selector);},children(element,selector){return[].concat(...element.children).filter(child=>child.matches(selector));},parents(element,selector){const parents=[];let ancestor=element.parentNode;while(ancestor&&ancestor.nodeType===Node.ELEMENT_NODE&&ancestor.nodeType!==NODE_TEXT){if(ancestor.matches(selector)){parents.push(ancestor);}
ancestor=ancestor.parentNode;}
return parents;},prev(element,selector){let previous=element.previousElementSibling;while(previous){if(previous.matches(selector)){return[previous];}
previous=previous.previousElementSibling;}
return[];},next(element,selector){let next=element.nextElementSibling;while(next){if(next.matches(selector)){return[next];}
next=next.nextElementSibling;}
return[];},focusableChildren(element){const focusables=['a','button','input','textarea','select','details','[tabindex]','[contenteditable="true"]'].map(selector=>`${selector}:not([tabindex^="-"])`).join(', ');return this.find(focusables,element).filter(el=>!isDisabled(el)&&isVisible(el));}};return SelectorEngine;}));;

/* /web/static/lib/bootstrap/js/dist/base-component.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('./dom/data.js'),require('./dom/event-handler.js')):typeof define==='function'&&define.amd?define(['./dom/data','./dom/event-handler'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Base=factory(global.Data,global.EventHandler));})(this,(function(Data,EventHandler){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};const Data__default=_interopDefaultLegacy(Data);const EventHandler__default=_interopDefaultLegacy(EventHandler);const MILLISECONDS_MULTIPLIER=1000;const TRANSITION_END='transitionend';const getTransitionDurationFromElement=element=>{if(!element){return 0;}
let{transitionDuration,transitionDelay}=window.getComputedStyle(element);const floatTransitionDuration=Number.parseFloat(transitionDuration);const floatTransitionDelay=Number.parseFloat(transitionDelay);if(!floatTransitionDuration&&!floatTransitionDelay){return 0;}
transitionDuration=transitionDuration.split(',')[0];transitionDelay=transitionDelay.split(',')[0];return(Number.parseFloat(transitionDuration)+Number.parseFloat(transitionDelay))*MILLISECONDS_MULTIPLIER;};const triggerTransitionEnd=element=>{element.dispatchEvent(new Event(TRANSITION_END));};const isElement=obj=>{if(!obj||typeof obj!=='object'){return false;}
if(typeof obj.jquery!=='undefined'){obj=obj[0];}
return typeof obj.nodeType!=='undefined';};const getElement=obj=>{if(isElement(obj)){return obj.jquery?obj[0]:obj;}
if(typeof obj==='string'&&obj.length>0){return document.querySelector(obj);}
return null;};const execute=callback=>{if(typeof callback==='function'){callback();}};const executeAfterTransition=(callback,transitionElement,waitForTransition=true)=>{if(!waitForTransition){execute(callback);return;}
const durationPadding=5;const emulatedDuration=getTransitionDurationFromElement(transitionElement)+durationPadding;let called=false;const handler=({target})=>{if(target!==transitionElement){return;}
called=true;transitionElement.removeEventListener(TRANSITION_END,handler);execute(callback);};transitionElement.addEventListener(TRANSITION_END,handler);setTimeout(()=>{if(!called){triggerTransitionEnd(transitionElement);}},emulatedDuration);};const VERSION='5.1.3';class BaseComponent{constructor(element){element=getElement(element);if(!element){return;}
this._element=element;Data__default.default.set(this._element,this.constructor.DATA_KEY,this);}
dispose(){Data__default.default.remove(this._element,this.constructor.DATA_KEY);EventHandler__default.default.off(this._element,this.constructor.EVENT_KEY);Object.getOwnPropertyNames(this).forEach(propertyName=>{this[propertyName]=null;});}
_queueCallback(callback,element,isAnimated=true){executeAfterTransition(callback,element,isAnimated);}
static getInstance(element){return Data__default.default.get(getElement(element),this.DATA_KEY);}
static getOrCreateInstance(element,config={}){return this.getInstance(element)||new this(element,typeof config==='object'?config:null);}
static get VERSION(){return VERSION;}
static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!');}
static get DATA_KEY(){return`bs.${this.NAME}`;}
static get EVENT_KEY(){return`.${this.DATA_KEY}`;}}
return BaseComponent;}));;

/* /web/static/lib/bootstrap/js/dist/alert.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('./dom/event-handler.js'),require('./base-component.js')):typeof define==='function'&&define.amd?define(['./dom/event-handler','./base-component'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Alert=factory(global.EventHandler,global.Base));})(this,(function(EventHandler,BaseComponent){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};const EventHandler__default=_interopDefaultLegacy(EventHandler);const BaseComponent__default=_interopDefaultLegacy(BaseComponent);const getSelector=element=>{let selector=element.getAttribute('data-bs-target');if(!selector||selector==='#'){let hrefAttr=element.getAttribute('href');if(!hrefAttr||!hrefAttr.includes('#')&&!hrefAttr.startsWith('.')){return null;}
if(hrefAttr.includes('#')&&!hrefAttr.startsWith('#')){hrefAttr=`#${hrefAttr.split('#')[1]}`;}
selector=hrefAttr&&hrefAttr!=='#'?hrefAttr.trim():null;}
return selector;};const getElementFromSelector=element=>{const selector=getSelector(element);return selector?document.querySelector(selector):null;};const isDisabled=element=>{if(!element||element.nodeType!==Node.ELEMENT_NODE){return true;}
if(element.classList.contains('disabled')){return true;}
if(typeof element.disabled!=='undefined'){return element.disabled;}
return element.hasAttribute('disabled')&&element.getAttribute('disabled')!=='false';};const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const enableDismissTrigger=(component,method='hide')=>{const clickEvent=`click.dismiss${component.EVENT_KEY}`;const name=component.NAME;EventHandler__default.default.on(document,clickEvent,`[data-bs-dismiss="${name}"]`,function(event){if(['A','AREA'].includes(this.tagName)){event.preventDefault();}
if(isDisabled(this)){return;}
const target=getElementFromSelector(this)||this.closest(`.${name}`);const instance=component.getOrCreateInstance(target);instance[method]();});};const NAME='alert';const DATA_KEY='bs.alert';const EVENT_KEY=`.${DATA_KEY}`;const EVENT_CLOSE=`close${EVENT_KEY}`;const EVENT_CLOSED=`closed${EVENT_KEY}`;const CLASS_NAME_FADE='fade';const CLASS_NAME_SHOW='show';class Alert extends BaseComponent__default.default{static get NAME(){return NAME;}
close(){const closeEvent=EventHandler__default.default.trigger(this._element,EVENT_CLOSE);if(closeEvent.defaultPrevented){return;}
this._element.classList.remove(CLASS_NAME_SHOW);const isAnimated=this._element.classList.contains(CLASS_NAME_FADE);this._queueCallback(()=>this._destroyElement(),this._element,isAnimated);}
_destroyElement(){this._element.remove();EventHandler__default.default.trigger(this._element,EVENT_CLOSED);this.dispose();}
static jQueryInterface(config){return this.each(function(){const data=Alert.getOrCreateInstance(this);if(typeof config!=='string'){return;}
if(data[config]===undefined||config.startsWith('_')||config==='constructor'){throw new TypeError(`No method named "${config}"`);}
data[config](this);});}}
enableDismissTrigger(Alert,'close');defineJQueryPlugin(Alert);return Alert;}));;

/* /web/static/lib/bootstrap/js/dist/button.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('./dom/event-handler.js'),require('./base-component.js')):typeof define==='function'&&define.amd?define(['./dom/event-handler','./base-component'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Button=factory(global.EventHandler,global.Base));})(this,(function(EventHandler,BaseComponent){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};const EventHandler__default=_interopDefaultLegacy(EventHandler);const BaseComponent__default=_interopDefaultLegacy(BaseComponent);const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const NAME='button';const DATA_KEY='bs.button';const EVENT_KEY=`.${DATA_KEY}`;const DATA_API_KEY='.data-api';const CLASS_NAME_ACTIVE='active';const SELECTOR_DATA_TOGGLE='[data-bs-toggle="button"]';const EVENT_CLICK_DATA_API=`click${EVENT_KEY}${DATA_API_KEY}`;class Button extends BaseComponent__default.default{static get NAME(){return NAME;}
toggle(){this._element.setAttribute('aria-pressed',this._element.classList.toggle(CLASS_NAME_ACTIVE));}
static jQueryInterface(config){return this.each(function(){const data=Button.getOrCreateInstance(this);if(config==='toggle'){data[config]();}});}}
EventHandler__default.default.on(document,EVENT_CLICK_DATA_API,SELECTOR_DATA_TOGGLE,event=>{event.preventDefault();const button=event.target.closest(SELECTOR_DATA_TOGGLE);const data=Button.getOrCreateInstance(button);data.toggle();});defineJQueryPlugin(Button);return Button;}));;

/* /web/static/lib/bootstrap/js/dist/carousel.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('./dom/event-handler.js'),require('./dom/manipulator.js'),require('./dom/selector-engine.js'),require('./base-component.js')):typeof define==='function'&&define.amd?define(['./dom/event-handler','./dom/manipulator','./dom/selector-engine','./base-component'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Carousel=factory(global.EventHandler,global.Manipulator,global.SelectorEngine,global.Base));})(this,(function(EventHandler,Manipulator,SelectorEngine,BaseComponent){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};const EventHandler__default=_interopDefaultLegacy(EventHandler);const Manipulator__default=_interopDefaultLegacy(Manipulator);const SelectorEngine__default=_interopDefaultLegacy(SelectorEngine);const BaseComponent__default=_interopDefaultLegacy(BaseComponent);const TRANSITION_END='transitionend';const toType=obj=>{if(obj===null||obj===undefined){return`${obj}`;}
return{}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();};const getSelector=element=>{let selector=element.getAttribute('data-bs-target');if(!selector||selector==='#'){let hrefAttr=element.getAttribute('href');if(!hrefAttr||!hrefAttr.includes('#')&&!hrefAttr.startsWith('.')){return null;}
if(hrefAttr.includes('#')&&!hrefAttr.startsWith('#')){hrefAttr=`#${hrefAttr.split('#')[1]}`;}
selector=hrefAttr&&hrefAttr!=='#'?hrefAttr.trim():null;}
return selector;};const getElementFromSelector=element=>{const selector=getSelector(element);return selector?document.querySelector(selector):null;};const triggerTransitionEnd=element=>{element.dispatchEvent(new Event(TRANSITION_END));};const isElement=obj=>{if(!obj||typeof obj!=='object'){return false;}
if(typeof obj.jquery!=='undefined'){obj=obj[0];}
return typeof obj.nodeType!=='undefined';};const typeCheckConfig=(componentName,config,configTypes)=>{Object.keys(configTypes).forEach(property=>{const expectedTypes=configTypes[property];const value=config[property];const valueType=value&&isElement(value)?'element':toType(value);if(!new RegExp(expectedTypes).test(valueType)){throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);}});};const isVisible=element=>{if(!isElement(element)||element.getClientRects().length===0){return false;}
return getComputedStyle(element).getPropertyValue('visibility')==='visible';};const reflow=element=>{element.offsetHeight;};const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const isRTL=()=>document.documentElement.dir==='rtl';const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const getNextActiveElement=(list,activeElement,shouldGetNext,isCycleAllowed)=>{let index=list.indexOf(activeElement);if(index===-1){return list[!shouldGetNext&&isCycleAllowed?list.length-1:0];}
const listLength=list.length;index+=shouldGetNext?1:-1;if(isCycleAllowed){index=(index+listLength)%listLength;}
return list[Math.max(0,Math.min(index,listLength-1))];};const NAME='carousel';const DATA_KEY='bs.carousel';const EVENT_KEY=`.${DATA_KEY}`;const DATA_API_KEY='.data-api';const ARROW_LEFT_KEY='ArrowLeft';const ARROW_RIGHT_KEY='ArrowRight';const TOUCHEVENT_COMPAT_WAIT=500;const SWIPE_THRESHOLD=40;const Default={interval:5000,keyboard:true,slide:false,pause:'hover',wrap:true,touch:true};const DefaultType={interval:'(number|boolean)',keyboard:'boolean',slide:'(boolean|string)',pause:'(string|boolean)',wrap:'boolean',touch:'boolean'};const ORDER_NEXT='next';const ORDER_PREV='prev';const DIRECTION_LEFT='left';const DIRECTION_RIGHT='right';const KEY_TO_DIRECTION={[ARROW_LEFT_KEY]:DIRECTION_RIGHT,[ARROW_RIGHT_KEY]:DIRECTION_LEFT};const EVENT_SLIDE=`slide${EVENT_KEY}`;const EVENT_SLID=`slid${EVENT_KEY}`;const EVENT_KEYDOWN=`keydown${EVENT_KEY}`;const EVENT_MOUSEENTER=`mouseenter${EVENT_KEY}`;const EVENT_MOUSELEAVE=`mouseleave${EVENT_KEY}`;const EVENT_TOUCHSTART=`touchstart${EVENT_KEY}`;const EVENT_TOUCHMOVE=`touchmove${EVENT_KEY}`;const EVENT_TOUCHEND=`touchend${EVENT_KEY}`;const EVENT_POINTERDOWN=`pointerdown${EVENT_KEY}`;const EVENT_POINTERUP=`pointerup${EVENT_KEY}`;const EVENT_DRAG_START=`dragstart${EVENT_KEY}`;const EVENT_LOAD_DATA_API=`load${EVENT_KEY}${DATA_API_KEY}`;const EVENT_CLICK_DATA_API=`click${EVENT_KEY}${DATA_API_KEY}`;const CLASS_NAME_CAROUSEL='carousel';const CLASS_NAME_ACTIVE='active';const CLASS_NAME_SLIDE='slide';const CLASS_NAME_END='carousel-item-end';const CLASS_NAME_START='carousel-item-start';const CLASS_NAME_NEXT='carousel-item-next';const CLASS_NAME_PREV='carousel-item-prev';const CLASS_NAME_POINTER_EVENT='pointer-event';const SELECTOR_ACTIVE='.active';const SELECTOR_ACTIVE_ITEM='.active.carousel-item';const SELECTOR_ITEM='.carousel-item';const SELECTOR_ITEM_IMG='.carousel-item img';const SELECTOR_NEXT_PREV='.carousel-item-next, .carousel-item-prev';const SELECTOR_INDICATORS='.carousel-indicators';const SELECTOR_INDICATOR='[data-bs-target]';const SELECTOR_DATA_SLIDE='[data-bs-slide], [data-bs-slide-to]';const SELECTOR_DATA_RIDE='[data-bs-ride="carousel"]';const POINTER_TYPE_TOUCH='touch';const POINTER_TYPE_PEN='pen';class Carousel extends BaseComponent__default.default{constructor(element,config){super(element);this._items=null;this._interval=null;this._activeElement=null;this._isPaused=false;this._isSliding=false;this.touchTimeout=null;this.touchStartX=0;this.touchDeltaX=0;this._config=this._getConfig(config);this._indicatorsElement=SelectorEngine__default.default.findOne(SELECTOR_INDICATORS,this._element);this._touchSupported='ontouchstart'in document.documentElement||navigator.maxTouchPoints>0;this._pointerEvent=Boolean(window.PointerEvent);this._addEventListeners();}
static get Default(){return Default;}
static get NAME(){return NAME;}
next(){this._slide(ORDER_NEXT);}
nextWhenVisible(){if(!document.hidden&&isVisible(this._element)){this.next();}}
prev(){this._slide(ORDER_PREV);}
pause(event){if(!event){this._isPaused=true;}
if(SelectorEngine__default.default.findOne(SELECTOR_NEXT_PREV,this._element)){triggerTransitionEnd(this._element);this.cycle(true);}
clearInterval(this._interval);this._interval=null;}
cycle(event){if(!event){this._isPaused=false;}
if(this._interval){clearInterval(this._interval);this._interval=null;}
if(this._config&&this._config.interval&&!this._isPaused){this._updateInterval();this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval);}}
to(index){this._activeElement=SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM,this._element);const activeIndex=this._getItemIndex(this._activeElement);if(index>this._items.length-1||index<0){return;}
if(this._isSliding){EventHandler__default.default.one(this._element,EVENT_SLID,()=>this.to(index));return;}
if(activeIndex===index){this.pause();this.cycle();return;}
const order=index>activeIndex?ORDER_NEXT:ORDER_PREV;this._slide(order,this._items[index]);}
_getConfig(config){config={...Default,...Manipulator__default.default.getDataAttributes(this._element),...(typeof config==='object'?config:{})};typeCheckConfig(NAME,config,DefaultType);return config;}
_handleSwipe(){const absDeltax=Math.abs(this.touchDeltaX);if(absDeltax<=SWIPE_THRESHOLD){return;}
const direction=absDeltax/this.touchDeltaX;this.touchDeltaX=0;if(!direction){return;}
this._slide(direction>0?DIRECTION_RIGHT:DIRECTION_LEFT);}
_addEventListeners(){if(this._config.keyboard){EventHandler__default.default.on(this._element,EVENT_KEYDOWN,event=>this._keydown(event));}
if(this._config.pause==='hover'){EventHandler__default.default.on(this._element,EVENT_MOUSEENTER,event=>this.pause(event));EventHandler__default.default.on(this._element,EVENT_MOUSELEAVE,event=>this.cycle(event));}
if(this._config.touch&&this._touchSupported){this._addTouchEventListeners();}}
_addTouchEventListeners(){const hasPointerPenTouch=event=>{return this._pointerEvent&&(event.pointerType===POINTER_TYPE_PEN||event.pointerType===POINTER_TYPE_TOUCH);};const start=event=>{if(hasPointerPenTouch(event)){this.touchStartX=event.clientX;}else if(!this._pointerEvent){this.touchStartX=event.touches[0].clientX;}};const move=event=>{this.touchDeltaX=event.touches&&event.touches.length>1?0:event.touches[0].clientX-this.touchStartX;};const end=event=>{if(hasPointerPenTouch(event)){this.touchDeltaX=event.clientX-this.touchStartX;}
this._handleSwipe();if(this._config.pause==='hover'){this.pause();if(this.touchTimeout){clearTimeout(this.touchTimeout);}
this.touchTimeout=setTimeout(event=>this.cycle(event),TOUCHEVENT_COMPAT_WAIT+this._config.interval);}};SelectorEngine__default.default.find(SELECTOR_ITEM_IMG,this._element).forEach(itemImg=>{EventHandler__default.default.on(itemImg,EVENT_DRAG_START,event=>event.preventDefault());});if(this._pointerEvent){EventHandler__default.default.on(this._element,EVENT_POINTERDOWN,event=>start(event));EventHandler__default.default.on(this._element,EVENT_POINTERUP,event=>end(event));this._element.classList.add(CLASS_NAME_POINTER_EVENT);}else{EventHandler__default.default.on(this._element,EVENT_TOUCHSTART,event=>start(event));EventHandler__default.default.on(this._element,EVENT_TOUCHMOVE,event=>move(event));EventHandler__default.default.on(this._element,EVENT_TOUCHEND,event=>end(event));}}
_keydown(event){if(/input|textarea/i.test(event.target.tagName)){return;}
const direction=KEY_TO_DIRECTION[event.key];if(direction){event.preventDefault();this._slide(direction);}}
_getItemIndex(element){this._items=element&&element.parentNode?SelectorEngine__default.default.find(SELECTOR_ITEM,element.parentNode):[];return this._items.indexOf(element);}
_getItemByOrder(order,activeElement){const isNext=order===ORDER_NEXT;return getNextActiveElement(this._items,activeElement,isNext,this._config.wrap);}
_triggerSlideEvent(relatedTarget,eventDirectionName){const targetIndex=this._getItemIndex(relatedTarget);const fromIndex=this._getItemIndex(SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM,this._element));return EventHandler__default.default.trigger(this._element,EVENT_SLIDE,{relatedTarget,direction:eventDirectionName,from:fromIndex,to:targetIndex});}
_setActiveIndicatorElement(element){if(this._indicatorsElement){const activeIndicator=SelectorEngine__default.default.findOne(SELECTOR_ACTIVE,this._indicatorsElement);activeIndicator.classList.remove(CLASS_NAME_ACTIVE);activeIndicator.removeAttribute('aria-current');const indicators=SelectorEngine__default.default.find(SELECTOR_INDICATOR,this._indicatorsElement);for(let i=0;i<indicators.length;i++){if(Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'),10)===this._getItemIndex(element)){indicators[i].classList.add(CLASS_NAME_ACTIVE);indicators[i].setAttribute('aria-current','true');break;}}}}
_updateInterval(){const element=this._activeElement||SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM,this._element);if(!element){return;}
const elementInterval=Number.parseInt(element.getAttribute('data-bs-interval'),10);if(elementInterval){this._config.defaultInterval=this._config.defaultInterval||this._config.interval;this._config.interval=elementInterval;}else{this._config.interval=this._config.defaultInterval||this._config.interval;}}
_slide(directionOrOrder,element){const order=this._directionToOrder(directionOrOrder);const activeElement=SelectorEngine__default.default.findOne(SELECTOR_ACTIVE_ITEM,this._element);const activeElementIndex=this._getItemIndex(activeElement);const nextElement=element||this._getItemByOrder(order,activeElement);const nextElementIndex=this._getItemIndex(nextElement);const isCycling=Boolean(this._interval);const isNext=order===ORDER_NEXT;const directionalClassName=isNext?CLASS_NAME_START:CLASS_NAME_END;const orderClassName=isNext?CLASS_NAME_NEXT:CLASS_NAME_PREV;const eventDirectionName=this._orderToDirection(order);if(nextElement&&nextElement.classList.contains(CLASS_NAME_ACTIVE)){this._isSliding=false;return;}
if(this._isSliding){return;}
const slideEvent=this._triggerSlideEvent(nextElement,eventDirectionName);if(slideEvent.defaultPrevented){return;}
if(!activeElement||!nextElement){return;}
this._isSliding=true;if(isCycling){this.pause();}
this._setActiveIndicatorElement(nextElement);this._activeElement=nextElement;const triggerSlidEvent=()=>{EventHandler__default.default.trigger(this._element,EVENT_SLID,{relatedTarget:nextElement,direction:eventDirectionName,from:activeElementIndex,to:nextElementIndex});};if(this._element.classList.contains(CLASS_NAME_SLIDE)){nextElement.classList.add(orderClassName);reflow(nextElement);activeElement.classList.add(directionalClassName);nextElement.classList.add(directionalClassName);const completeCallBack=()=>{nextElement.classList.remove(directionalClassName,orderClassName);nextElement.classList.add(CLASS_NAME_ACTIVE);activeElement.classList.remove(CLASS_NAME_ACTIVE,orderClassName,directionalClassName);this._isSliding=false;setTimeout(triggerSlidEvent,0);};this._queueCallback(completeCallBack,activeElement,true);}else{activeElement.classList.remove(CLASS_NAME_ACTIVE);nextElement.classList.add(CLASS_NAME_ACTIVE);this._isSliding=false;triggerSlidEvent();}
if(isCycling){this.cycle();}}
_directionToOrder(direction){if(![DIRECTION_RIGHT,DIRECTION_LEFT].includes(direction)){return direction;}
if(isRTL()){return direction===DIRECTION_LEFT?ORDER_PREV:ORDER_NEXT;}
return direction===DIRECTION_LEFT?ORDER_NEXT:ORDER_PREV;}
_orderToDirection(order){if(![ORDER_NEXT,ORDER_PREV].includes(order)){return order;}
if(isRTL()){return order===ORDER_PREV?DIRECTION_LEFT:DIRECTION_RIGHT;}
return order===ORDER_PREV?DIRECTION_RIGHT:DIRECTION_LEFT;}
static carouselInterface(element,config){const data=Carousel.getOrCreateInstance(element,config);let{_config}=data;if(typeof config==='object'){_config={..._config,...config};}
const action=typeof config==='string'?config:_config.slide;if(typeof config==='number'){data.to(config);}else if(typeof action==='string'){if(typeof data[action]==='undefined'){throw new TypeError(`No method named "${action}"`);}
data[action]();}else if(_config.interval&&_config.ride){data.pause();data.cycle();}}
static jQueryInterface(config){return this.each(function(){Carousel.carouselInterface(this,config);});}
static dataApiClickHandler(event){const target=getElementFromSelector(this);if(!target||!target.classList.contains(CLASS_NAME_CAROUSEL)){return;}
const config={...Manipulator__default.default.getDataAttributes(target),...Manipulator__default.default.getDataAttributes(this)};const slideIndex=this.getAttribute('data-bs-slide-to');if(slideIndex){config.interval=false;}
Carousel.carouselInterface(target,config);if(slideIndex){Carousel.getInstance(target).to(slideIndex);}
event.preventDefault();}}
EventHandler__default.default.on(document,EVENT_CLICK_DATA_API,SELECTOR_DATA_SLIDE,Carousel.dataApiClickHandler);EventHandler__default.default.on(window,EVENT_LOAD_DATA_API,()=>{const carousels=SelectorEngine__default.default.find(SELECTOR_DATA_RIDE);for(let i=0,len=carousels.length;i<len;i++){Carousel.carouselInterface(carousels[i],Carousel.getInstance(carousels[i]));}});defineJQueryPlugin(Carousel);return Carousel;}));;

/* /web/static/lib/bootstrap/js/dist/collapse.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('./dom/data.js'),require('./dom/event-handler.js'),require('./dom/manipulator.js'),require('./dom/selector-engine.js'),require('./base-component.js')):typeof define==='function'&&define.amd?define(['./dom/data','./dom/event-handler','./dom/manipulator','./dom/selector-engine','./base-component'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Collapse=factory(global.Data,global.EventHandler,global.Manipulator,global.SelectorEngine,global.Base));})(this,(function(Data,EventHandler,Manipulator,SelectorEngine,BaseComponent){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};const Data__default=_interopDefaultLegacy(Data);const EventHandler__default=_interopDefaultLegacy(EventHandler);const Manipulator__default=_interopDefaultLegacy(Manipulator);const SelectorEngine__default=_interopDefaultLegacy(SelectorEngine);const BaseComponent__default=_interopDefaultLegacy(BaseComponent);const toType=obj=>{if(obj===null||obj===undefined){return`${obj}`;}
return{}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();};const getSelector=element=>{let selector=element.getAttribute('data-bs-target');if(!selector||selector==='#'){let hrefAttr=element.getAttribute('href');if(!hrefAttr||!hrefAttr.includes('#')&&!hrefAttr.startsWith('.')){return null;}
if(hrefAttr.includes('#')&&!hrefAttr.startsWith('#')){hrefAttr=`#${hrefAttr.split('#')[1]}`;}
selector=hrefAttr&&hrefAttr!=='#'?hrefAttr.trim():null;}
return selector;};const getSelectorFromElement=element=>{const selector=getSelector(element);if(selector){return document.querySelector(selector)?selector:null;}
return null;};const getElementFromSelector=element=>{const selector=getSelector(element);return selector?document.querySelector(selector):null;};const isElement=obj=>{if(!obj||typeof obj!=='object'){return false;}
if(typeof obj.jquery!=='undefined'){obj=obj[0];}
return typeof obj.nodeType!=='undefined';};const getElement=obj=>{if(isElement(obj)){return obj.jquery?obj[0]:obj;}
if(typeof obj==='string'&&obj.length>0){return document.querySelector(obj);}
return null;};const typeCheckConfig=(componentName,config,configTypes)=>{Object.keys(configTypes).forEach(property=>{const expectedTypes=configTypes[property];const value=config[property];const valueType=value&&isElement(value)?'element':toType(value);if(!new RegExp(expectedTypes).test(valueType)){throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);}});};const reflow=element=>{element.offsetHeight;};const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const NAME='collapse';const DATA_KEY='bs.collapse';const EVENT_KEY=`.${DATA_KEY}`;const DATA_API_KEY='.data-api';const Default={toggle:true,parent:null};const DefaultType={toggle:'boolean',parent:'(null|element)'};const EVENT_SHOW=`show${EVENT_KEY}`;const EVENT_SHOWN=`shown${EVENT_KEY}`;const EVENT_HIDE=`hide${EVENT_KEY}`;const EVENT_HIDDEN=`hidden${EVENT_KEY}`;const EVENT_CLICK_DATA_API=`click${EVENT_KEY}${DATA_API_KEY}`;const CLASS_NAME_SHOW='show';const CLASS_NAME_COLLAPSE='collapse';const CLASS_NAME_COLLAPSING='collapsing';const CLASS_NAME_COLLAPSED='collapsed';const CLASS_NAME_DEEPER_CHILDREN=`:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;const CLASS_NAME_HORIZONTAL='collapse-horizontal';const WIDTH='width';const HEIGHT='height';const SELECTOR_ACTIVES='.collapse.show, .collapse.collapsing';const SELECTOR_DATA_TOGGLE='[data-bs-toggle="collapse"]';class Collapse extends BaseComponent__default.default{constructor(element,config){super(element);this._isTransitioning=false;this._config=this._getConfig(config);this._triggerArray=[];const toggleList=SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE);for(let i=0,len=toggleList.length;i<len;i++){const elem=toggleList[i];const selector=getSelectorFromElement(elem);const filterElement=SelectorEngine__default.default.find(selector).filter(foundElem=>foundElem===this._element);if(selector!==null&&filterElement.length){this._selector=selector;this._triggerArray.push(elem);}}
this._initializeChildren();if(!this._config.parent){this._addAriaAndCollapsedClass(this._triggerArray,this._isShown());}
if(this._config.toggle){this.toggle();}}
static get Default(){return Default;}
static get NAME(){return NAME;}
toggle(){if(this._isShown()){this.hide();}else{this.show();}}
show(){if(this._isTransitioning||this._isShown()){return;}
let actives=[];let activesData;if(this._config.parent){const children=SelectorEngine__default.default.find(CLASS_NAME_DEEPER_CHILDREN,this._config.parent);actives=SelectorEngine__default.default.find(SELECTOR_ACTIVES,this._config.parent).filter(elem=>!children.includes(elem));}
const container=SelectorEngine__default.default.findOne(this._selector);if(actives.length){const tempActiveData=actives.find(elem=>container!==elem);activesData=tempActiveData?Collapse.getInstance(tempActiveData):null;if(activesData&&activesData._isTransitioning){return;}}
const startEvent=EventHandler__default.default.trigger(this._element,EVENT_SHOW);if(startEvent.defaultPrevented){return;}
actives.forEach(elemActive=>{if(container!==elemActive){Collapse.getOrCreateInstance(elemActive,{toggle:false}).hide();}
if(!activesData){Data__default.default.set(elemActive,DATA_KEY,null);}});const dimension=this._getDimension();this._element.classList.remove(CLASS_NAME_COLLAPSE);this._element.classList.add(CLASS_NAME_COLLAPSING);this._element.style[dimension]=0;this._addAriaAndCollapsedClass(this._triggerArray,true);this._isTransitioning=true;const complete=()=>{this._isTransitioning=false;this._element.classList.remove(CLASS_NAME_COLLAPSING);this._element.classList.add(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW);this._element.style[dimension]='';EventHandler__default.default.trigger(this._element,EVENT_SHOWN);};const capitalizedDimension=dimension[0].toUpperCase()+dimension.slice(1);const scrollSize=`scroll${capitalizedDimension}`;this._queueCallback(complete,this._element,true);this._element.style[dimension]=`${this._element[scrollSize]}px`;}
hide(){if(this._isTransitioning||!this._isShown()){return;}
const startEvent=EventHandler__default.default.trigger(this._element,EVENT_HIDE);if(startEvent.defaultPrevented){return;}
const dimension=this._getDimension();this._element.style[dimension]=`${this._element.getBoundingClientRect()[dimension]}px`;reflow(this._element);this._element.classList.add(CLASS_NAME_COLLAPSING);this._element.classList.remove(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW);const triggerArrayLength=this._triggerArray.length;for(let i=0;i<triggerArrayLength;i++){const trigger=this._triggerArray[i];const elem=getElementFromSelector(trigger);if(elem&&!this._isShown(elem)){this._addAriaAndCollapsedClass([trigger],false);}}
this._isTransitioning=true;const complete=()=>{this._isTransitioning=false;this._element.classList.remove(CLASS_NAME_COLLAPSING);this._element.classList.add(CLASS_NAME_COLLAPSE);EventHandler__default.default.trigger(this._element,EVENT_HIDDEN);};this._element.style[dimension]='';this._queueCallback(complete,this._element,true);}
_isShown(element=this._element){return element.classList.contains(CLASS_NAME_SHOW);}
_getConfig(config){config={...Default,...Manipulator__default.default.getDataAttributes(this._element),...config};config.toggle=Boolean(config.toggle);config.parent=getElement(config.parent);typeCheckConfig(NAME,config,DefaultType);return config;}
_getDimension(){return this._element.classList.contains(CLASS_NAME_HORIZONTAL)?WIDTH:HEIGHT;}
_initializeChildren(){if(!this._config.parent){return;}
const children=SelectorEngine__default.default.find(CLASS_NAME_DEEPER_CHILDREN,this._config.parent);SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE,this._config.parent).filter(elem=>!children.includes(elem)).forEach(element=>{const selected=getElementFromSelector(element);if(selected){this._addAriaAndCollapsedClass([element],this._isShown(selected));}});}
_addAriaAndCollapsedClass(triggerArray,isOpen){if(!triggerArray.length){return;}
triggerArray.forEach(elem=>{if(isOpen){elem.classList.remove(CLASS_NAME_COLLAPSED);}else{elem.classList.add(CLASS_NAME_COLLAPSED);}
elem.setAttribute('aria-expanded',isOpen);});}
static jQueryInterface(config){return this.each(function(){const _config={};if(typeof config==='string'&&/show|hide/.test(config)){_config.toggle=false;}
const data=Collapse.getOrCreateInstance(this,_config);if(typeof config==='string'){if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`);}
data[config]();}});}}
EventHandler__default.default.on(document,EVENT_CLICK_DATA_API,SELECTOR_DATA_TOGGLE,function(event){if(event.target.tagName==='A'||event.delegateTarget&&event.delegateTarget.tagName==='A'){event.preventDefault();}
const selector=getSelectorFromElement(this);const selectorElements=SelectorEngine__default.default.find(selector);selectorElements.forEach(element=>{Collapse.getOrCreateInstance(element,{toggle:false}).toggle();});});defineJQueryPlugin(Collapse);return Collapse;}));;

/* /web/static/lib/bootstrap/js/dist/dropdown.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('@popperjs/core'),require('./dom/event-handler.js'),require('./dom/manipulator.js'),require('./dom/selector-engine.js'),require('./base-component.js')):typeof define==='function'&&define.amd?define(['@popperjs/core','./dom/event-handler','./dom/manipulator','./dom/selector-engine','./base-component'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Dropdown=factory(global.Popper,global.EventHandler,global.Manipulator,global.SelectorEngine,global.Base));})(this,(function(Popper,EventHandler,Manipulator,SelectorEngine,BaseComponent){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};function _interopNamespace(e){if(e&&e.__esModule)return e;const n=Object.create(null);if(e){for(const k in e){if(k!=='default'){const d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:()=>e[k]});}}}
n.default=e;return Object.freeze(n);}
const Popper__namespace=_interopNamespace(Popper);const EventHandler__default=_interopDefaultLegacy(EventHandler);const Manipulator__default=_interopDefaultLegacy(Manipulator);const SelectorEngine__default=_interopDefaultLegacy(SelectorEngine);const BaseComponent__default=_interopDefaultLegacy(BaseComponent);const toType=obj=>{if(obj===null||obj===undefined){return`${obj}`;}
return{}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();};const getSelector=element=>{let selector=element.getAttribute('data-bs-target');if(!selector||selector==='#'){let hrefAttr=element.getAttribute('href');if(!hrefAttr||!hrefAttr.includes('#')&&!hrefAttr.startsWith('.')){return null;}
if(hrefAttr.includes('#')&&!hrefAttr.startsWith('#')){hrefAttr=`#${hrefAttr.split('#')[1]}`;}
selector=hrefAttr&&hrefAttr!=='#'?hrefAttr.trim():null;}
return selector;};const getElementFromSelector=element=>{const selector=getSelector(element);return selector?document.querySelector(selector):null;};const isElement=obj=>{if(!obj||typeof obj!=='object'){return false;}
if(typeof obj.jquery!=='undefined'){obj=obj[0];}
return typeof obj.nodeType!=='undefined';};const getElement=obj=>{if(isElement(obj)){return obj.jquery?obj[0]:obj;}
if(typeof obj==='string'&&obj.length>0){return document.querySelector(obj);}
return null;};const typeCheckConfig=(componentName,config,configTypes)=>{Object.keys(configTypes).forEach(property=>{const expectedTypes=configTypes[property];const value=config[property];const valueType=value&&isElement(value)?'element':toType(value);if(!new RegExp(expectedTypes).test(valueType)){throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);}});};const isVisible=element=>{if(!isElement(element)||element.getClientRects().length===0){return false;}
return getComputedStyle(element).getPropertyValue('visibility')==='visible';};const isDisabled=element=>{if(!element||element.nodeType!==Node.ELEMENT_NODE){return true;}
if(element.classList.contains('disabled')){return true;}
if(typeof element.disabled!=='undefined'){return element.disabled;}
return element.hasAttribute('disabled')&&element.getAttribute('disabled')!=='false';};const noop=()=>{};const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const isRTL=()=>document.documentElement.dir==='rtl';const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const getNextActiveElement=(list,activeElement,shouldGetNext,isCycleAllowed)=>{let index=list.indexOf(activeElement);if(index===-1){return list[!shouldGetNext&&isCycleAllowed?list.length-1:0];}
const listLength=list.length;index+=shouldGetNext?1:-1;if(isCycleAllowed){index=(index+listLength)%listLength;}
return list[Math.max(0,Math.min(index,listLength-1))];};const NAME='dropdown';const DATA_KEY='bs.dropdown';const EVENT_KEY=`.${DATA_KEY}`;const DATA_API_KEY='.data-api';const ESCAPE_KEY='Escape';const SPACE_KEY='Space';const TAB_KEY='Tab';const ARROW_UP_KEY='ArrowUp';const ARROW_DOWN_KEY='ArrowDown';const RIGHT_MOUSE_BUTTON=2;const REGEXP_KEYDOWN=new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`);const EVENT_HIDE=`hide${EVENT_KEY}`;const EVENT_HIDDEN=`hidden${EVENT_KEY}`;const EVENT_SHOW=`show${EVENT_KEY}`;const EVENT_SHOWN=`shown${EVENT_KEY}`;const EVENT_CLICK_DATA_API=`click${EVENT_KEY}${DATA_API_KEY}`;const EVENT_KEYDOWN_DATA_API=`keydown${EVENT_KEY}${DATA_API_KEY}`;const EVENT_KEYUP_DATA_API=`keyup${EVENT_KEY}${DATA_API_KEY}`;const CLASS_NAME_SHOW='show';const CLASS_NAME_DROPUP='dropup';const CLASS_NAME_DROPEND='dropend';const CLASS_NAME_DROPSTART='dropstart';const CLASS_NAME_NAVBAR='navbar';const SELECTOR_DATA_TOGGLE='[data-bs-toggle="dropdown"]';const SELECTOR_MENU='.dropdown-menu:not(.o-dropdown--menu)';const SELECTOR_MENU_NOT_SUB='.dropdown-menu:not(.o-dropdown--menu):not(.o_wysiwyg_submenu)';const SELECTOR_NAVBAR_NAV='.navbar-nav';const SELECTOR_VISIBLE_ITEMS='.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';const PLACEMENT_TOP=isRTL()?'top-end':'top-start';const PLACEMENT_TOPEND=isRTL()?'top-start':'top-end';const PLACEMENT_BOTTOM=isRTL()?'bottom-end':'bottom-start';const PLACEMENT_BOTTOMEND=isRTL()?'bottom-start':'bottom-end';const PLACEMENT_RIGHT=isRTL()?'left-start':'right-start';const PLACEMENT_LEFT=isRTL()?'right-start':'left-start';const Default={offset:[0,2],boundary:'clippingParents',reference:'toggle',display:'dynamic',popperConfig:null,autoClose:true};const DefaultType={offset:'(array|string|function)',boundary:'(string|element)',reference:'(string|element|object)',display:'string',popperConfig:'(null|object|function)',autoClose:'(boolean|string)'};class Dropdown extends BaseComponent__default.default{constructor(element,config){super(element);this._popper=null;this._config=this._getConfig(config);this._menu=this._getMenuElement();this._inNavbar=this._detectNavbar();}
static get Default(){return Default;}
static get DefaultType(){return DefaultType;}
static get NAME(){return NAME;}
toggle(){return this._isShown()?this.hide():this.show();}
show(){if(isDisabled(this._element)||this._isShown(this._menu)){return;}
const relatedTarget={relatedTarget:this._element};const showEvent=EventHandler__default.default.trigger(this._element,EVENT_SHOW,relatedTarget);if(showEvent.defaultPrevented){return;}
const parent=Dropdown.getParentFromElement(this._element);if(this._inNavbar){Manipulator__default.default.setDataAttribute(this._menu,'popper','none');}else{this._createPopper(parent);}
if('ontouchstart'in document.documentElement&&!parent.closest(SELECTOR_NAVBAR_NAV)){[].concat(...document.body.children).forEach(elem=>EventHandler__default.default.on(elem,'mouseover',noop));}
this._element.focus();this._element.setAttribute('aria-expanded',true);this._menu.classList.add(CLASS_NAME_SHOW);this._element.classList.add(CLASS_NAME_SHOW);EventHandler__default.default.trigger(this._element,EVENT_SHOWN,relatedTarget);}
hide(){if(isDisabled(this._element)||!this._isShown(this._menu)){return;}
const relatedTarget={relatedTarget:this._element};this._completeHide(relatedTarget);}
dispose(){if(this._popper){this._popper.destroy();}
super.dispose();}
update(){this._inNavbar=this._detectNavbar();if(this._popper){this._popper.update();}}
_completeHide(relatedTarget){const hideEvent=EventHandler__default.default.trigger(this._element,EVENT_HIDE,relatedTarget);if(hideEvent.defaultPrevented){return;}
if('ontouchstart'in document.documentElement){[].concat(...document.body.children).forEach(elem=>EventHandler__default.default.off(elem,'mouseover',noop));}
if(this._popper){this._popper.destroy();}
this._menu.classList.remove(CLASS_NAME_SHOW);this._element.classList.remove(CLASS_NAME_SHOW);this._element.setAttribute('aria-expanded','false');Manipulator__default.default.removeDataAttribute(this._menu,'popper');EventHandler__default.default.trigger(this._element,EVENT_HIDDEN,relatedTarget);}
_getConfig(config){config={...this.constructor.Default,...Manipulator__default.default.getDataAttributes(this._element),...config};typeCheckConfig(NAME,config,this.constructor.DefaultType);if(typeof config.reference==='object'&&!isElement(config.reference)&&typeof config.reference.getBoundingClientRect!=='function'){throw new TypeError(`${NAME.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);}
return config;}
_createPopper(parent){if(typeof Popper__namespace==='undefined'){throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');}
let referenceElement=this._element;if(this._config.reference==='parent'){referenceElement=parent;}else if(isElement(this._config.reference)){referenceElement=getElement(this._config.reference);}else if(typeof this._config.reference==='object'){referenceElement=this._config.reference;}
const popperConfig=this._getPopperConfig();const isDisplayStatic=popperConfig.modifiers.find(modifier=>modifier.name==='applyStyles'&&modifier.enabled===false);this._popper=Popper__namespace.createPopper(referenceElement,this._menu,popperConfig);if(isDisplayStatic){Manipulator__default.default.setDataAttribute(this._menu,'popper','static');}}
_isShown(element=this._element){return element.classList.contains(CLASS_NAME_SHOW);}
_getMenuElement(){return SelectorEngine__default.default.next(this._element,SELECTOR_MENU)[0];}
_getPlacement(){const parentDropdown=this._element.parentNode;if(parentDropdown.classList.contains(CLASS_NAME_DROPEND)){return PLACEMENT_RIGHT;}
if(parentDropdown.classList.contains(CLASS_NAME_DROPSTART)){return PLACEMENT_LEFT;}
const isEnd=getComputedStyle(this._menu).getPropertyValue('--bs-position').trim()==='end';if(parentDropdown.classList.contains(CLASS_NAME_DROPUP)){return isEnd?PLACEMENT_TOPEND:PLACEMENT_TOP;}
return isEnd?PLACEMENT_BOTTOMEND:PLACEMENT_BOTTOM;}
_detectNavbar(){return this._element.closest(`.${CLASS_NAME_NAVBAR}`)!==null;}
_getOffset(){const{offset}=this._config;if(typeof offset==='string'){return offset.split(',').map(val=>Number.parseInt(val,10));}
if(typeof offset==='function'){return popperData=>offset(popperData,this._element);}
return offset;}
_getPopperConfig(){const defaultBsPopperConfig={placement:this._getPlacement(),modifiers:[{name:'preventOverflow',options:{boundary:this._config.boundary}},{name:'offset',options:{offset:this._getOffset()}}]};if(this._config.display==='static'){defaultBsPopperConfig.modifiers=[{name:'applyStyles',enabled:false}];}
return{...defaultBsPopperConfig,...(typeof this._config.popperConfig==='function'?this._config.popperConfig(defaultBsPopperConfig):this._config.popperConfig)};}
_selectMenuItem({key,target}){const items=SelectorEngine__default.default.find(SELECTOR_VISIBLE_ITEMS,this._menu).filter(isVisible);if(!items.length){return;}
getNextActiveElement(items,target,key===ARROW_DOWN_KEY,!items.includes(target)).focus();}
static jQueryInterface(config){return this.each(function(){const data=Dropdown.getOrCreateInstance(this,config);if(typeof config!=='string'){return;}
if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`);}
data[config]();});}
static clearMenus(event){if(event&&(event.button===RIGHT_MOUSE_BUTTON||event.type==='keyup'&&event.key!==TAB_KEY)){return;}
const toggles=SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE);for(let i=0,len=toggles.length;i<len;i++){const context=Dropdown.getInstance(toggles[i]);if(!context||context._config.autoClose===false){continue;}
if(!context._isShown()){continue;}
const relatedTarget={relatedTarget:context._element};if(event){const composedPath=event.composedPath();const isMenuTarget=composedPath.includes(context._menu);if(composedPath.includes(context._element)||context._config.autoClose==='inside'&&!isMenuTarget||context._config.autoClose==='outside'&&isMenuTarget){continue;}
if(context._menu.contains(event.target)&&(event.type==='keyup'&&event.key===TAB_KEY||/input|select|option|textarea|form/i.test(event.target.tagName))){continue;}
if(event.type==='click'){relatedTarget.clickEvent=event;}}
context._completeHide(relatedTarget);}}
static getParentFromElement(element){return getElementFromSelector(element)||element.parentNode;}
static dataApiKeydownHandler(event){if(/input|textarea/i.test(event.target.tagName)?event.key===SPACE_KEY||event.key!==ESCAPE_KEY&&(event.key!==ARROW_DOWN_KEY&&event.key!==ARROW_UP_KEY||event.target.closest(SELECTOR_MENU)):!REGEXP_KEYDOWN.test(event.key)){return;}
const isActive=this.classList.contains(CLASS_NAME_SHOW);if(!isActive&&event.key===ESCAPE_KEY){return;}
event.preventDefault();event.stopPropagation();if(isDisabled(this)){return;}
const getToggleButton=this.matches(SELECTOR_DATA_TOGGLE)?this:SelectorEngine__default.default.prev(this,SELECTOR_DATA_TOGGLE)[0];const instance=Dropdown.getOrCreateInstance(getToggleButton);if(event.key===ESCAPE_KEY){instance.hide();return;}
if(event.key===ARROW_UP_KEY||event.key===ARROW_DOWN_KEY){if(!isActive){instance.show();}
instance._selectMenuItem(event);return;}
if(!isActive||event.key===SPACE_KEY){Dropdown.clearMenus();}}}
EventHandler__default.default.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_DATA_TOGGLE,Dropdown.dataApiKeydownHandler);EventHandler__default.default.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_MENU_NOT_SUB,Dropdown.dataApiKeydownHandler);EventHandler__default.default.on(document,EVENT_CLICK_DATA_API,Dropdown.clearMenus);EventHandler__default.default.on(document,EVENT_KEYUP_DATA_API,Dropdown.clearMenus);EventHandler__default.default.on(document,EVENT_CLICK_DATA_API,SELECTOR_DATA_TOGGLE,function(event){event.preventDefault();Dropdown.getOrCreateInstance(this).toggle();});defineJQueryPlugin(Dropdown);return Dropdown;}));;

/* /web/static/lib/bootstrap/js/dist/modal.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('./dom/event-handler.js'),require('./dom/manipulator.js'),require('./dom/selector-engine.js'),require('./base-component.js')):typeof define==='function'&&define.amd?define(['./dom/event-handler','./dom/manipulator','./dom/selector-engine','./base-component'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Modal=factory(global.EventHandler,global.Manipulator,global.SelectorEngine,global.Base));})(this,(function(EventHandler,Manipulator,SelectorEngine,BaseComponent){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};const EventHandler__default=_interopDefaultLegacy(EventHandler);const Manipulator__default=_interopDefaultLegacy(Manipulator);const SelectorEngine__default=_interopDefaultLegacy(SelectorEngine);const BaseComponent__default=_interopDefaultLegacy(BaseComponent);const MILLISECONDS_MULTIPLIER=1000;const TRANSITION_END='transitionend';const toType=obj=>{if(obj===null||obj===undefined){return`${obj}`;}
return{}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();};const getSelector=element=>{let selector=element.getAttribute('data-bs-target');if(!selector||selector==='#'){let hrefAttr=element.getAttribute('href');if(!hrefAttr||!hrefAttr.includes('#')&&!hrefAttr.startsWith('.')){return null;}
if(hrefAttr.includes('#')&&!hrefAttr.startsWith('#')){hrefAttr=`#${hrefAttr.split('#')[1]}`;}
selector=hrefAttr&&hrefAttr!=='#'?hrefAttr.trim():null;}
return selector;};const getElementFromSelector=element=>{const selector=getSelector(element);return selector?document.querySelector(selector):null;};const getTransitionDurationFromElement=element=>{if(!element){return 0;}
let{transitionDuration,transitionDelay}=window.getComputedStyle(element);const floatTransitionDuration=Number.parseFloat(transitionDuration);const floatTransitionDelay=Number.parseFloat(transitionDelay);if(!floatTransitionDuration&&!floatTransitionDelay){return 0;}
transitionDuration=transitionDuration.split(',')[0];transitionDelay=transitionDelay.split(',')[0];return(Number.parseFloat(transitionDuration)+Number.parseFloat(transitionDelay))*MILLISECONDS_MULTIPLIER;};const triggerTransitionEnd=element=>{element.dispatchEvent(new Event(TRANSITION_END));};const isElement=obj=>{if(!obj||typeof obj!=='object'){return false;}
if(typeof obj.jquery!=='undefined'){obj=obj[0];}
return typeof obj.nodeType!=='undefined';};const getElement=obj=>{if(isElement(obj)){return obj.jquery?obj[0]:obj;}
if(typeof obj==='string'&&obj.length>0){return document.querySelector(obj);}
return null;};const typeCheckConfig=(componentName,config,configTypes)=>{Object.keys(configTypes).forEach(property=>{const expectedTypes=configTypes[property];const value=config[property];const valueType=value&&isElement(value)?'element':toType(value);if(!new RegExp(expectedTypes).test(valueType)){throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);}});};const isVisible=element=>{if(!isElement(element)||element.getClientRects().length===0){return false;}
return getComputedStyle(element).getPropertyValue('visibility')==='visible';};const isDisabled=element=>{if(!element||element.nodeType!==Node.ELEMENT_NODE){return true;}
if(element.classList.contains('disabled')){return true;}
if(typeof element.disabled!=='undefined'){return element.disabled;}
return element.hasAttribute('disabled')&&element.getAttribute('disabled')!=='false';};const reflow=element=>{element.offsetHeight;};const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const isRTL=()=>document.documentElement.dir==='rtl';const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const execute=callback=>{if(typeof callback==='function'){callback();}};const executeAfterTransition=(callback,transitionElement,waitForTransition=true)=>{if(!waitForTransition){execute(callback);return;}
const durationPadding=5;const emulatedDuration=getTransitionDurationFromElement(transitionElement)+durationPadding;let called=false;const handler=({target})=>{if(target!==transitionElement){return;}
called=true;transitionElement.removeEventListener(TRANSITION_END,handler);execute(callback);};transitionElement.addEventListener(TRANSITION_END,handler);setTimeout(()=>{if(!called){triggerTransitionEnd(transitionElement);}},emulatedDuration);};const SELECTOR_FIXED_CONTENT='.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';const SELECTOR_STICKY_CONTENT='.sticky-top';class ScrollBarHelper{constructor(){this._element=document.body;}
getWidth(){const documentWidth=document.documentElement.clientWidth;return Math.abs(window.innerWidth-documentWidth);}
hide(){const width=this.getWidth();this._disableOverFlow();this._setElementAttributes(this._element,'paddingRight',calculatedValue=>calculatedValue+width);this._setElementAttributes(SELECTOR_FIXED_CONTENT,'paddingRight',calculatedValue=>calculatedValue+width);this._setElementAttributes(SELECTOR_STICKY_CONTENT,'marginRight',calculatedValue=>calculatedValue-width);}
_disableOverFlow(){this._saveInitialAttribute(this._element,'overflow');this._element.style.overflow='hidden';}
_setElementAttributes(selector,styleProp,callback){const scrollbarWidth=this.getWidth();const manipulationCallBack=element=>{if(element!==this._element&&window.innerWidth>element.clientWidth+scrollbarWidth){return;}
this._saveInitialAttribute(element,styleProp);const calculatedValue=window.getComputedStyle(element)[styleProp];element.style[styleProp]=`${callback(Number.parseFloat(calculatedValue))}px`;};this._applyManipulationCallback(selector,manipulationCallBack);}
reset(){this._resetElementAttributes(this._element,'overflow');this._resetElementAttributes(this._element,'paddingRight');this._resetElementAttributes(SELECTOR_FIXED_CONTENT,'paddingRight');this._resetElementAttributes(SELECTOR_STICKY_CONTENT,'marginRight');}
_saveInitialAttribute(element,styleProp){const actualValue=element.style[styleProp];if(actualValue){Manipulator__default.default.setDataAttribute(element,styleProp,actualValue);}}
_resetElementAttributes(selector,styleProp){const manipulationCallBack=element=>{const value=Manipulator__default.default.getDataAttribute(element,styleProp);if(typeof value==='undefined'){element.style.removeProperty(styleProp);}else{Manipulator__default.default.removeDataAttribute(element,styleProp);element.style[styleProp]=value;}};this._applyManipulationCallback(selector,manipulationCallBack);}
_applyManipulationCallback(selector,callBack){if(isElement(selector)){callBack(selector);}else{SelectorEngine__default.default.find(selector,this._element).forEach(callBack);}}
isOverflowing(){return this.getWidth()>0;}}
const Default$2={className:'modal-backdrop',isVisible:true,isAnimated:false,rootElement:'body',clickCallback:null};const DefaultType$2={className:'string',isVisible:'boolean',isAnimated:'boolean',rootElement:'(element|string)',clickCallback:'(function|null)'};const NAME$2='backdrop';const CLASS_NAME_FADE$1='fade';const CLASS_NAME_SHOW$1='show';const EVENT_MOUSEDOWN=`mousedown.bs.${NAME$2}`;class Backdrop{constructor(config){this._config=this._getConfig(config);this._isAppended=false;this._element=null;}
show(callback){if(!this._config.isVisible){execute(callback);return;}
this._append();if(this._config.isAnimated){reflow(this._getElement());}
this._getElement().classList.add(CLASS_NAME_SHOW$1);this._emulateAnimation(()=>{execute(callback);});}
hide(callback){if(!this._config.isVisible){execute(callback);return;}
this._getElement().classList.remove(CLASS_NAME_SHOW$1);this._emulateAnimation(()=>{this.dispose();execute(callback);});}
_getElement(){if(!this._element){const backdrop=document.createElement('div');backdrop.className=this._config.className;if(this._config.isAnimated){backdrop.classList.add(CLASS_NAME_FADE$1);}
this._element=backdrop;}
return this._element;}
_getConfig(config){config={...Default$2,...(typeof config==='object'?config:{})};config.rootElement=getElement(config.rootElement);typeCheckConfig(NAME$2,config,DefaultType$2);return config;}
_append(){if(this._isAppended){return;}
this._config.rootElement.append(this._getElement());EventHandler__default.default.on(this._getElement(),EVENT_MOUSEDOWN,()=>{execute(this._config.clickCallback);});this._isAppended=true;}
dispose(){if(!this._isAppended){return;}
EventHandler__default.default.off(this._element,EVENT_MOUSEDOWN);this._element.remove();this._isAppended=false;}
_emulateAnimation(callback){executeAfterTransition(callback,this._getElement(),this._config.isAnimated);}}
const Default$1={trapElement:null,autofocus:true};const DefaultType$1={trapElement:'element',autofocus:'boolean'};const NAME$1='focustrap';const DATA_KEY$1='bs.focustrap';const EVENT_KEY$1=`.${DATA_KEY$1}`;const EVENT_FOCUSIN=`focusin${EVENT_KEY$1}`;const EVENT_KEYDOWN_TAB=`keydown.tab${EVENT_KEY$1}`;const TAB_KEY='Tab';const TAB_NAV_FORWARD='forward';const TAB_NAV_BACKWARD='backward';class FocusTrap{constructor(config){this._config=this._getConfig(config);this._isActive=false;this._lastTabNavDirection=null;}
activate(){const{trapElement,autofocus}=this._config;if(this._isActive){return;}
if(autofocus){trapElement.focus();}
EventHandler__default.default.off(document,EVENT_KEY$1);EventHandler__default.default.on(document,EVENT_FOCUSIN,event=>this._handleFocusin(event));EventHandler__default.default.on(document,EVENT_KEYDOWN_TAB,event=>this._handleKeydown(event));this._isActive=true;}
deactivate(){if(!this._isActive){return;}
this._isActive=false;EventHandler__default.default.off(document,EVENT_KEY$1);}
_handleFocusin(event){const{target}=event;const{trapElement}=this._config;if(target===document||target===trapElement||trapElement.contains(target)){return;}
const elements=SelectorEngine__default.default.focusableChildren(trapElement);if(elements.length===0){trapElement.focus();}else if(this._lastTabNavDirection===TAB_NAV_BACKWARD){elements[elements.length-1].focus();}else{elements[0].focus();}}
_handleKeydown(event){if(event.key!==TAB_KEY){return;}
this._lastTabNavDirection=event.shiftKey?TAB_NAV_BACKWARD:TAB_NAV_FORWARD;}
_getConfig(config){config={...Default$1,...(typeof config==='object'?config:{})};typeCheckConfig(NAME$1,config,DefaultType$1);return config;}}
const enableDismissTrigger=(component,method='hide')=>{const clickEvent=`click.dismiss${component.EVENT_KEY}`;const name=component.NAME;EventHandler__default.default.on(document,clickEvent,`[data-bs-dismiss="${name}"]`,function(event){if(['A','AREA'].includes(this.tagName)){event.preventDefault();}
if(isDisabled(this)){return;}
const target=getElementFromSelector(this)||this.closest(`.${name}`);const instance=component.getOrCreateInstance(target);instance[method]();});};const NAME='modal';const DATA_KEY='bs.modal';const EVENT_KEY=`.${DATA_KEY}`;const DATA_API_KEY='.data-api';const ESCAPE_KEY='Escape';const Default={backdrop:true,keyboard:true,focus:true};const DefaultType={backdrop:'(boolean|string)',keyboard:'boolean',focus:'boolean'};const EVENT_HIDE=`hide${EVENT_KEY}`;const EVENT_HIDE_PREVENTED=`hidePrevented${EVENT_KEY}`;const EVENT_HIDDEN=`hidden${EVENT_KEY}`;const EVENT_SHOW=`show${EVENT_KEY}`;const EVENT_SHOWN=`shown${EVENT_KEY}`;const EVENT_RESIZE=`resize${EVENT_KEY}`;const EVENT_CLICK_DISMISS=`click.dismiss${EVENT_KEY}`;const EVENT_KEYDOWN_DISMISS=`keydown.dismiss${EVENT_KEY}`;const EVENT_MOUSEUP_DISMISS=`mouseup.dismiss${EVENT_KEY}`;const EVENT_MOUSEDOWN_DISMISS=`mousedown.dismiss${EVENT_KEY}`;const EVENT_CLICK_DATA_API=`click${EVENT_KEY}${DATA_API_KEY}`;const CLASS_NAME_OPEN='modal-open';const CLASS_NAME_FADE='fade';const CLASS_NAME_SHOW='show';const CLASS_NAME_STATIC='modal-static';const OPEN_SELECTOR='.modal.show';const SELECTOR_DIALOG='.modal-dialog';const SELECTOR_MODAL_BODY='.modal-body';const SELECTOR_DATA_TOGGLE='[data-bs-toggle="modal"]';class Modal extends BaseComponent__default.default{constructor(element,config){super(element);this._config=this._getConfig(config);this._dialog=SelectorEngine__default.default.findOne(SELECTOR_DIALOG,this._element);this._backdrop=this._initializeBackDrop();this._focustrap=this._initializeFocusTrap();this._isShown=false;this._ignoreBackdropClick=false;this._isTransitioning=false;this._scrollBar=new ScrollBarHelper();}
static get Default(){return Default;}
static get NAME(){return NAME;}
toggle(relatedTarget){return this._isShown?this.hide():this.show(relatedTarget);}
show(relatedTarget){if(this._isShown||this._isTransitioning){return;}
const showEvent=EventHandler__default.default.trigger(this._element,EVENT_SHOW,{relatedTarget});if(showEvent.defaultPrevented){return;}
this._isShown=true;if(this._isAnimated()){this._isTransitioning=true;}
this._scrollBar.hide();document.body.classList.add(CLASS_NAME_OPEN);this._adjustDialog();this._setEscapeEvent();this._setResizeEvent();EventHandler__default.default.on(this._dialog,EVENT_MOUSEDOWN_DISMISS,()=>{EventHandler__default.default.one(this._element,EVENT_MOUSEUP_DISMISS,event=>{if(event.target===this._element){this._ignoreBackdropClick=true;}});});this._showBackdrop(()=>this._showElement(relatedTarget));}
hide(){if(!this._isShown||this._isTransitioning){return;}
const hideEvent=EventHandler__default.default.trigger(this._element,EVENT_HIDE);if(hideEvent.defaultPrevented){return;}
this._isShown=false;const isAnimated=this._isAnimated();if(isAnimated){this._isTransitioning=true;}
this._setEscapeEvent();this._setResizeEvent();this._focustrap.deactivate();this._element.classList.remove(CLASS_NAME_SHOW);EventHandler__default.default.off(this._element,EVENT_CLICK_DISMISS);EventHandler__default.default.off(this._dialog,EVENT_MOUSEDOWN_DISMISS);this._queueCallback(()=>this._hideModal(),this._element,isAnimated);}
dispose(){[window,this._dialog].forEach(htmlElement=>EventHandler__default.default.off(htmlElement,EVENT_KEY));this._backdrop.dispose();this._focustrap.deactivate();super.dispose();}
handleUpdate(){this._adjustDialog();}
_initializeBackDrop(){return new Backdrop({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()});}
_initializeFocusTrap(){return new FocusTrap({trapElement:this._element});}
_getConfig(config){config={...Default,...Manipulator__default.default.getDataAttributes(this._element),...(typeof config==='object'?config:{})};typeCheckConfig(NAME,config,DefaultType);return config;}
_showElement(relatedTarget){const isAnimated=this._isAnimated();const modalBody=SelectorEngine__default.default.findOne(SELECTOR_MODAL_BODY,this._dialog);if(!this._element.parentNode||this._element.parentNode.nodeType!==Node.ELEMENT_NODE){document.body.append(this._element);}
this._element.style.display='block';this._element.removeAttribute('aria-hidden');this._element.setAttribute('aria-modal',true);this._element.setAttribute('role','dialog');this._element.scrollTop=0;if(modalBody){modalBody.scrollTop=0;}
if(isAnimated){reflow(this._element);}
this._element.classList.add(CLASS_NAME_SHOW);const transitionComplete=()=>{if(this._config.focus){this._focustrap.activate();}
this._isTransitioning=false;EventHandler__default.default.trigger(this._element,EVENT_SHOWN,{relatedTarget});};this._queueCallback(transitionComplete,this._dialog,isAnimated);}
_setEscapeEvent(){if(this._isShown){EventHandler__default.default.on(this._element,EVENT_KEYDOWN_DISMISS,event=>{if(this._config.keyboard&&event.key===ESCAPE_KEY){event.preventDefault();this.hide();}else if(!this._config.keyboard&&event.key===ESCAPE_KEY){this._triggerBackdropTransition();}});}else{EventHandler__default.default.off(this._element,EVENT_KEYDOWN_DISMISS);}}
_setResizeEvent(){if(this._isShown){EventHandler__default.default.on(window,EVENT_RESIZE,()=>this._adjustDialog());}else{EventHandler__default.default.off(window,EVENT_RESIZE);}}
_hideModal(){this._element.style.display='none';this._element.setAttribute('aria-hidden',true);this._element.removeAttribute('aria-modal');this._element.removeAttribute('role');this._isTransitioning=false;this._backdrop.hide(()=>{document.body.classList.remove(CLASS_NAME_OPEN);this._resetAdjustments();this._scrollBar.reset();EventHandler__default.default.trigger(this._element,EVENT_HIDDEN);});}
_showBackdrop(callback){EventHandler__default.default.on(this._element,EVENT_CLICK_DISMISS,event=>{if(this._ignoreBackdropClick){this._ignoreBackdropClick=false;return;}
if(event.target!==event.currentTarget){return;}
if(this._config.backdrop===true){this.hide();}else if(this._config.backdrop==='static'){this._triggerBackdropTransition();}});this._backdrop.show(callback);}
_isAnimated(){return this._element.classList.contains(CLASS_NAME_FADE);}
_triggerBackdropTransition(){const hideEvent=EventHandler__default.default.trigger(this._element,EVENT_HIDE_PREVENTED);if(hideEvent.defaultPrevented){return;}
const{classList,scrollHeight,style}=this._element;const isModalOverflowing=scrollHeight>document.documentElement.clientHeight;if(!isModalOverflowing&&style.overflowY==='hidden'||classList.contains(CLASS_NAME_STATIC)){return;}
if(!isModalOverflowing){style.overflowY='hidden';}
classList.add(CLASS_NAME_STATIC);this._queueCallback(()=>{classList.remove(CLASS_NAME_STATIC);if(!isModalOverflowing){this._queueCallback(()=>{style.overflowY='';},this._dialog);}},this._dialog);this._element.focus();}
_adjustDialog(){const isModalOverflowing=this._element.scrollHeight>document.documentElement.clientHeight;const scrollbarWidth=this._scrollBar.getWidth();const isBodyOverflowing=scrollbarWidth>0;if(!isBodyOverflowing&&isModalOverflowing&&!isRTL()||isBodyOverflowing&&!isModalOverflowing&&isRTL()){this._element.style.paddingLeft=`${scrollbarWidth}px`;}
if(isBodyOverflowing&&!isModalOverflowing&&!isRTL()||!isBodyOverflowing&&isModalOverflowing&&isRTL()){this._element.style.paddingRight=`${scrollbarWidth}px`;}}
_resetAdjustments(){this._element.style.paddingLeft='';this._element.style.paddingRight='';}
static jQueryInterface(config,relatedTarget){return this.each(function(){const data=Modal.getOrCreateInstance(this,config);if(typeof config!=='string'){return;}
if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`);}
data[config](relatedTarget);});}}
EventHandler__default.default.on(document,EVENT_CLICK_DATA_API,SELECTOR_DATA_TOGGLE,function(event){const target=getElementFromSelector(this);if(['A','AREA'].includes(this.tagName)){event.preventDefault();}
EventHandler__default.default.one(target,EVENT_SHOW,showEvent=>{if(showEvent.defaultPrevented){return;}
EventHandler__default.default.one(target,EVENT_HIDDEN,()=>{if(isVisible(this)){this.focus();}});});const allReadyOpen=SelectorEngine__default.default.findOne(OPEN_SELECTOR);if(allReadyOpen){Modal.getInstance(allReadyOpen).hide();}
const data=Modal.getOrCreateInstance(target);data.toggle(this);});enableDismissTrigger(Modal);defineJQueryPlugin(Modal);return Modal;}));;

/* /web/static/lib/bootstrap/js/dist/offcanvas.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('./dom/selector-engine.js'),require('./dom/manipulator.js'),require('./dom/event-handler.js'),require('./base-component.js')):typeof define==='function'&&define.amd?define(['./dom/selector-engine','./dom/manipulator','./dom/event-handler','./base-component'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Offcanvas=factory(global.SelectorEngine,global.Manipulator,global.EventHandler,global.Base));})(this,(function(SelectorEngine,Manipulator,EventHandler,BaseComponent){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};const SelectorEngine__default=_interopDefaultLegacy(SelectorEngine);const Manipulator__default=_interopDefaultLegacy(Manipulator);const EventHandler__default=_interopDefaultLegacy(EventHandler);const BaseComponent__default=_interopDefaultLegacy(BaseComponent);const MILLISECONDS_MULTIPLIER=1000;const TRANSITION_END='transitionend';const toType=obj=>{if(obj===null||obj===undefined){return`${obj}`;}
return{}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();};const getSelector=element=>{let selector=element.getAttribute('data-bs-target');if(!selector||selector==='#'){let hrefAttr=element.getAttribute('href');if(!hrefAttr||!hrefAttr.includes('#')&&!hrefAttr.startsWith('.')){return null;}
if(hrefAttr.includes('#')&&!hrefAttr.startsWith('#')){hrefAttr=`#${hrefAttr.split('#')[1]}`;}
selector=hrefAttr&&hrefAttr!=='#'?hrefAttr.trim():null;}
return selector;};const getElementFromSelector=element=>{const selector=getSelector(element);return selector?document.querySelector(selector):null;};const getTransitionDurationFromElement=element=>{if(!element){return 0;}
let{transitionDuration,transitionDelay}=window.getComputedStyle(element);const floatTransitionDuration=Number.parseFloat(transitionDuration);const floatTransitionDelay=Number.parseFloat(transitionDelay);if(!floatTransitionDuration&&!floatTransitionDelay){return 0;}
transitionDuration=transitionDuration.split(',')[0];transitionDelay=transitionDelay.split(',')[0];return(Number.parseFloat(transitionDuration)+Number.parseFloat(transitionDelay))*MILLISECONDS_MULTIPLIER;};const triggerTransitionEnd=element=>{element.dispatchEvent(new Event(TRANSITION_END));};const isElement=obj=>{if(!obj||typeof obj!=='object'){return false;}
if(typeof obj.jquery!=='undefined'){obj=obj[0];}
return typeof obj.nodeType!=='undefined';};const getElement=obj=>{if(isElement(obj)){return obj.jquery?obj[0]:obj;}
if(typeof obj==='string'&&obj.length>0){return document.querySelector(obj);}
return null;};const typeCheckConfig=(componentName,config,configTypes)=>{Object.keys(configTypes).forEach(property=>{const expectedTypes=configTypes[property];const value=config[property];const valueType=value&&isElement(value)?'element':toType(value);if(!new RegExp(expectedTypes).test(valueType)){throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);}});};const isVisible=element=>{if(!isElement(element)||element.getClientRects().length===0){return false;}
return getComputedStyle(element).getPropertyValue('visibility')==='visible';};const isDisabled=element=>{if(!element||element.nodeType!==Node.ELEMENT_NODE){return true;}
if(element.classList.contains('disabled')){return true;}
if(typeof element.disabled!=='undefined'){return element.disabled;}
return element.hasAttribute('disabled')&&element.getAttribute('disabled')!=='false';};const reflow=element=>{element.offsetHeight;};const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const execute=callback=>{if(typeof callback==='function'){callback();}};const executeAfterTransition=(callback,transitionElement,waitForTransition=true)=>{if(!waitForTransition){execute(callback);return;}
const durationPadding=5;const emulatedDuration=getTransitionDurationFromElement(transitionElement)+durationPadding;let called=false;const handler=({target})=>{if(target!==transitionElement){return;}
called=true;transitionElement.removeEventListener(TRANSITION_END,handler);execute(callback);};transitionElement.addEventListener(TRANSITION_END,handler);setTimeout(()=>{if(!called){triggerTransitionEnd(transitionElement);}},emulatedDuration);};const SELECTOR_FIXED_CONTENT='.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';const SELECTOR_STICKY_CONTENT='.sticky-top';class ScrollBarHelper{constructor(){this._element=document.body;}
getWidth(){const documentWidth=document.documentElement.clientWidth;return Math.abs(window.innerWidth-documentWidth);}
hide(){const width=this.getWidth();this._disableOverFlow();this._setElementAttributes(this._element,'paddingRight',calculatedValue=>calculatedValue+width);this._setElementAttributes(SELECTOR_FIXED_CONTENT,'paddingRight',calculatedValue=>calculatedValue+width);this._setElementAttributes(SELECTOR_STICKY_CONTENT,'marginRight',calculatedValue=>calculatedValue-width);}
_disableOverFlow(){this._saveInitialAttribute(this._element,'overflow');this._element.style.overflow='hidden';}
_setElementAttributes(selector,styleProp,callback){const scrollbarWidth=this.getWidth();const manipulationCallBack=element=>{if(element!==this._element&&window.innerWidth>element.clientWidth+scrollbarWidth){return;}
this._saveInitialAttribute(element,styleProp);const calculatedValue=window.getComputedStyle(element)[styleProp];element.style[styleProp]=`${callback(Number.parseFloat(calculatedValue))}px`;};this._applyManipulationCallback(selector,manipulationCallBack);}
reset(){this._resetElementAttributes(this._element,'overflow');this._resetElementAttributes(this._element,'paddingRight');this._resetElementAttributes(SELECTOR_FIXED_CONTENT,'paddingRight');this._resetElementAttributes(SELECTOR_STICKY_CONTENT,'marginRight');}
_saveInitialAttribute(element,styleProp){const actualValue=element.style[styleProp];if(actualValue){Manipulator__default.default.setDataAttribute(element,styleProp,actualValue);}}
_resetElementAttributes(selector,styleProp){const manipulationCallBack=element=>{const value=Manipulator__default.default.getDataAttribute(element,styleProp);if(typeof value==='undefined'){element.style.removeProperty(styleProp);}else{Manipulator__default.default.removeDataAttribute(element,styleProp);element.style[styleProp]=value;}};this._applyManipulationCallback(selector,manipulationCallBack);}
_applyManipulationCallback(selector,callBack){if(isElement(selector)){callBack(selector);}else{SelectorEngine__default.default.find(selector,this._element).forEach(callBack);}}
isOverflowing(){return this.getWidth()>0;}}
const Default$2={className:'modal-backdrop',isVisible:true,isAnimated:false,rootElement:'body',clickCallback:null};const DefaultType$2={className:'string',isVisible:'boolean',isAnimated:'boolean',rootElement:'(element|string)',clickCallback:'(function|null)'};const NAME$2='backdrop';const CLASS_NAME_FADE='fade';const CLASS_NAME_SHOW$1='show';const EVENT_MOUSEDOWN=`mousedown.bs.${NAME$2}`;class Backdrop{constructor(config){this._config=this._getConfig(config);this._isAppended=false;this._element=null;}
show(callback){if(!this._config.isVisible){execute(callback);return;}
this._append();if(this._config.isAnimated){reflow(this._getElement());}
this._getElement().classList.add(CLASS_NAME_SHOW$1);this._emulateAnimation(()=>{execute(callback);});}
hide(callback){if(!this._config.isVisible){execute(callback);return;}
this._getElement().classList.remove(CLASS_NAME_SHOW$1);this._emulateAnimation(()=>{this.dispose();execute(callback);});}
_getElement(){if(!this._element){const backdrop=document.createElement('div');backdrop.className=this._config.className;if(this._config.isAnimated){backdrop.classList.add(CLASS_NAME_FADE);}
this._element=backdrop;}
return this._element;}
_getConfig(config){config={...Default$2,...(typeof config==='object'?config:{})};config.rootElement=getElement(config.rootElement);typeCheckConfig(NAME$2,config,DefaultType$2);return config;}
_append(){if(this._isAppended){return;}
this._config.rootElement.append(this._getElement());EventHandler__default.default.on(this._getElement(),EVENT_MOUSEDOWN,()=>{execute(this._config.clickCallback);});this._isAppended=true;}
dispose(){if(!this._isAppended){return;}
EventHandler__default.default.off(this._element,EVENT_MOUSEDOWN);this._element.remove();this._isAppended=false;}
_emulateAnimation(callback){executeAfterTransition(callback,this._getElement(),this._config.isAnimated);}}
const Default$1={trapElement:null,autofocus:true};const DefaultType$1={trapElement:'element',autofocus:'boolean'};const NAME$1='focustrap';const DATA_KEY$1='bs.focustrap';const EVENT_KEY$1=`.${DATA_KEY$1}`;const EVENT_FOCUSIN=`focusin${EVENT_KEY$1}`;const EVENT_KEYDOWN_TAB=`keydown.tab${EVENT_KEY$1}`;const TAB_KEY='Tab';const TAB_NAV_FORWARD='forward';const TAB_NAV_BACKWARD='backward';class FocusTrap{constructor(config){this._config=this._getConfig(config);this._isActive=false;this._lastTabNavDirection=null;}
activate(){const{trapElement,autofocus}=this._config;if(this._isActive){return;}
if(autofocus){trapElement.focus();}
EventHandler__default.default.off(document,EVENT_KEY$1);EventHandler__default.default.on(document,EVENT_FOCUSIN,event=>this._handleFocusin(event));EventHandler__default.default.on(document,EVENT_KEYDOWN_TAB,event=>this._handleKeydown(event));this._isActive=true;}
deactivate(){if(!this._isActive){return;}
this._isActive=false;EventHandler__default.default.off(document,EVENT_KEY$1);}
_handleFocusin(event){const{target}=event;const{trapElement}=this._config;if(target===document||target===trapElement||trapElement.contains(target)){return;}
const elements=SelectorEngine__default.default.focusableChildren(trapElement);if(elements.length===0){trapElement.focus();}else if(this._lastTabNavDirection===TAB_NAV_BACKWARD){elements[elements.length-1].focus();}else{elements[0].focus();}}
_handleKeydown(event){if(event.key!==TAB_KEY){return;}
this._lastTabNavDirection=event.shiftKey?TAB_NAV_BACKWARD:TAB_NAV_FORWARD;}
_getConfig(config){config={...Default$1,...(typeof config==='object'?config:{})};typeCheckConfig(NAME$1,config,DefaultType$1);return config;}}
const enableDismissTrigger=(component,method='hide')=>{const clickEvent=`click.dismiss${component.EVENT_KEY}`;const name=component.NAME;EventHandler__default.default.on(document,clickEvent,`[data-bs-dismiss="${name}"]`,function(event){if(['A','AREA'].includes(this.tagName)){event.preventDefault();}
if(isDisabled(this)){return;}
const target=getElementFromSelector(this)||this.closest(`.${name}`);const instance=component.getOrCreateInstance(target);instance[method]();});};const NAME='offcanvas';const DATA_KEY='bs.offcanvas';const EVENT_KEY=`.${DATA_KEY}`;const DATA_API_KEY='.data-api';const EVENT_LOAD_DATA_API=`load${EVENT_KEY}${DATA_API_KEY}`;const ESCAPE_KEY='Escape';const Default={backdrop:true,keyboard:true,scroll:false};const DefaultType={backdrop:'boolean',keyboard:'boolean',scroll:'boolean'};const CLASS_NAME_SHOW='show';const CLASS_NAME_BACKDROP='offcanvas-backdrop';const OPEN_SELECTOR='.offcanvas.show';const EVENT_SHOW=`show${EVENT_KEY}`;const EVENT_SHOWN=`shown${EVENT_KEY}`;const EVENT_HIDE=`hide${EVENT_KEY}`;const EVENT_HIDDEN=`hidden${EVENT_KEY}`;const EVENT_CLICK_DATA_API=`click${EVENT_KEY}${DATA_API_KEY}`;const EVENT_KEYDOWN_DISMISS=`keydown.dismiss${EVENT_KEY}`;const SELECTOR_DATA_TOGGLE='[data-bs-toggle="offcanvas"]';class Offcanvas extends BaseComponent__default.default{constructor(element,config){super(element);this._config=this._getConfig(config);this._isShown=false;this._backdrop=this._initializeBackDrop();this._focustrap=this._initializeFocusTrap();this._addEventListeners();}
static get NAME(){return NAME;}
static get Default(){return Default;}
toggle(relatedTarget){return this._isShown?this.hide():this.show(relatedTarget);}
show(relatedTarget){if(this._isShown){return;}
const showEvent=EventHandler__default.default.trigger(this._element,EVENT_SHOW,{relatedTarget});if(showEvent.defaultPrevented){return;}
this._isShown=true;this._element.style.visibility='visible';this._backdrop.show();if(!this._config.scroll){new ScrollBarHelper().hide();}
this._element.removeAttribute('aria-hidden');this._element.setAttribute('aria-modal',true);this._element.setAttribute('role','dialog');this._element.classList.add(CLASS_NAME_SHOW);const completeCallBack=()=>{if(!this._config.scroll){this._focustrap.activate();}
EventHandler__default.default.trigger(this._element,EVENT_SHOWN,{relatedTarget});};this._queueCallback(completeCallBack,this._element,true);}
hide(){if(!this._isShown){return;}
const hideEvent=EventHandler__default.default.trigger(this._element,EVENT_HIDE);if(hideEvent.defaultPrevented){return;}
this._focustrap.deactivate();this._element.blur();this._isShown=false;this._element.classList.remove(CLASS_NAME_SHOW);this._backdrop.hide();const completeCallback=()=>{this._element.setAttribute('aria-hidden',true);this._element.removeAttribute('aria-modal');this._element.removeAttribute('role');this._element.style.visibility='hidden';if(!this._config.scroll){new ScrollBarHelper().reset();}
EventHandler__default.default.trigger(this._element,EVENT_HIDDEN);};this._queueCallback(completeCallback,this._element,true);}
dispose(){this._backdrop.dispose();this._focustrap.deactivate();super.dispose();}
_getConfig(config){config={...Default,...Manipulator__default.default.getDataAttributes(this._element),...(typeof config==='object'?config:{})};typeCheckConfig(NAME,config,DefaultType);return config;}
_initializeBackDrop(){return new Backdrop({className:CLASS_NAME_BACKDROP,isVisible:this._config.backdrop,isAnimated:true,rootElement:this._element.parentNode,clickCallback:()=>this.hide()});}
_initializeFocusTrap(){return new FocusTrap({trapElement:this._element});}
_addEventListeners(){EventHandler__default.default.on(this._element,EVENT_KEYDOWN_DISMISS,event=>{if(this._config.keyboard&&event.key===ESCAPE_KEY){this.hide();}});}
static jQueryInterface(config){return this.each(function(){const data=Offcanvas.getOrCreateInstance(this,config);if(typeof config!=='string'){return;}
if(data[config]===undefined||config.startsWith('_')||config==='constructor'){throw new TypeError(`No method named "${config}"`);}
data[config](this);});}}
EventHandler__default.default.on(document,EVENT_CLICK_DATA_API,SELECTOR_DATA_TOGGLE,function(event){const target=getElementFromSelector(this);if(['A','AREA'].includes(this.tagName)){event.preventDefault();}
if(isDisabled(this)){return;}
EventHandler__default.default.one(target,EVENT_HIDDEN,()=>{if(isVisible(this)){this.focus();}});const allReadyOpen=SelectorEngine__default.default.findOne(OPEN_SELECTOR);if(allReadyOpen&&allReadyOpen!==target){Offcanvas.getInstance(allReadyOpen).hide();}
const data=Offcanvas.getOrCreateInstance(target);data.toggle(this);});EventHandler__default.default.on(window,EVENT_LOAD_DATA_API,()=>SelectorEngine__default.default.find(OPEN_SELECTOR).forEach(el=>Offcanvas.getOrCreateInstance(el).show()));enableDismissTrigger(Offcanvas);defineJQueryPlugin(Offcanvas);return Offcanvas;}));;

/* /web/static/lib/bootstrap/js/dist/tooltip.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('@popperjs/core'),require('./dom/data.js'),require('./dom/event-handler.js'),require('./dom/manipulator.js'),require('./dom/selector-engine.js'),require('./base-component.js')):typeof define==='function'&&define.amd?define(['@popperjs/core','./dom/data','./dom/event-handler','./dom/manipulator','./dom/selector-engine','./base-component'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Tooltip=factory(global.Popper,global.Data,global.EventHandler,global.Manipulator,global.SelectorEngine,global.Base));})(this,(function(Popper,Data,EventHandler,Manipulator,SelectorEngine,BaseComponent){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};function _interopNamespace(e){if(e&&e.__esModule)return e;const n=Object.create(null);if(e){for(const k in e){if(k!=='default'){const d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:()=>e[k]});}}}
n.default=e;return Object.freeze(n);}
const Popper__namespace=_interopNamespace(Popper);const Data__default=_interopDefaultLegacy(Data);const EventHandler__default=_interopDefaultLegacy(EventHandler);const Manipulator__default=_interopDefaultLegacy(Manipulator);const SelectorEngine__default=_interopDefaultLegacy(SelectorEngine);const BaseComponent__default=_interopDefaultLegacy(BaseComponent);const MAX_UID=1000000;const toType=obj=>{if(obj===null||obj===undefined){return`${obj}`;}
return{}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();};const getUID=prefix=>{do{prefix+=Math.floor(Math.random()*MAX_UID);}while(document.getElementById(prefix));return prefix;};const isElement=obj=>{if(!obj||typeof obj!=='object'){return false;}
if(typeof obj.jquery!=='undefined'){obj=obj[0];}
return typeof obj.nodeType!=='undefined';};const getElement=obj=>{if(isElement(obj)){return obj.jquery?obj[0]:obj;}
if(typeof obj==='string'&&obj.length>0){return document.querySelector(obj);}
return null;};const typeCheckConfig=(componentName,config,configTypes)=>{Object.keys(configTypes).forEach(property=>{const expectedTypes=configTypes[property];const value=config[property];const valueType=value&&isElement(value)?'element':toType(value);if(!new RegExp(expectedTypes).test(valueType)){throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);}});};const findShadowRoot=element=>{if(!document.documentElement.attachShadow){return null;}
if(typeof element.getRootNode==='function'){const root=element.getRootNode();return root instanceof ShadowRoot?root:null;}
if(element instanceof ShadowRoot){return element;}
if(!element.parentNode){return null;}
return findShadowRoot(element.parentNode);};const noop=()=>{};const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const isRTL=()=>document.documentElement.dir==='rtl';const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const uriAttributes=new Set(['background','cite','href','itemtype','longdesc','poster','src','xlink:href']);const ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i;const SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;const DATA_URL_PATTERN=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;const allowedAttribute=(attribute,allowedAttributeList)=>{const attributeName=attribute.nodeName.toLowerCase();if(allowedAttributeList.includes(attributeName)){if(uriAttributes.has(attributeName)){return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue)||DATA_URL_PATTERN.test(attribute.nodeValue));}
return true;}
const regExp=allowedAttributeList.filter(attributeRegex=>attributeRegex instanceof RegExp);for(let i=0,len=regExp.length;i<len;i++){if(regExp[i].test(attributeName)){return true;}}
return false;};const DefaultAllowlist={'*':['class','dir','id','lang','role',ARIA_ATTRIBUTE_PATTERN],a:['target','href','title','rel'],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:['src','srcset','alt','title','width','height'],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function sanitizeHtml(unsafeHtml,allowList,sanitizeFn){if(!unsafeHtml.length){return unsafeHtml;}
if(sanitizeFn&&typeof sanitizeFn==='function'){return sanitizeFn(unsafeHtml);}
const domParser=new window.DOMParser();const createdDocument=domParser.parseFromString(unsafeHtml,'text/html');const elements=[].concat(...createdDocument.body.querySelectorAll('*'));for(let i=0,len=elements.length;i<len;i++){const element=elements[i];const elementName=element.nodeName.toLowerCase();if(!Object.keys(allowList).includes(elementName)){element.remove();continue;}
const attributeList=[].concat(...element.attributes);const allowedAttributes=[].concat(allowList['*']||[],allowList[elementName]||[]);attributeList.forEach(attribute=>{if(!allowedAttribute(attribute,allowedAttributes)){element.removeAttribute(attribute.nodeName);}});}
return createdDocument.body.innerHTML;}
const NAME='tooltip';const DATA_KEY='bs.tooltip';const EVENT_KEY=`.${DATA_KEY}`;const CLASS_PREFIX='bs-tooltip';const DISALLOWED_ATTRIBUTES=new Set(['sanitize','allowList','sanitizeFn']);const DefaultType={animation:'boolean',template:'string',title:'(string|element|function)',trigger:'string',delay:'(number|object)',html:'boolean',selector:'(string|boolean)',placement:'(string|function)',offset:'(array|string|function)',container:'(string|element|boolean)',fallbackPlacements:'array',boundary:'(string|element)',customClass:'(string|function)',sanitize:'boolean',sanitizeFn:'(null|function)',allowList:'object',popperConfig:'(null|object|function)'};const AttachmentMap={AUTO:'auto',TOP:'top',RIGHT:isRTL()?'left':'right',BOTTOM:'bottom',LEFT:isRTL()?'right':'left'};const Default={animation:true,template:'<div class="tooltip" role="tooltip">'+'<div class="tooltip-arrow"></div>'+'<div class="tooltip-inner"></div>'+'</div>',trigger:'hover focus',title:'',delay:0,html:false,selector:false,placement:'top',offset:[0,0],container:false,fallbackPlacements:['top','right','bottom','left'],boundary:'clippingParents',customClass:'',sanitize:true,sanitizeFn:null,allowList:DefaultAllowlist,popperConfig:null};const Event={HIDE:`hide${EVENT_KEY}`,HIDDEN:`hidden${EVENT_KEY}`,SHOW:`show${EVENT_KEY}`,SHOWN:`shown${EVENT_KEY}`,INSERTED:`inserted${EVENT_KEY}`,CLICK:`click${EVENT_KEY}`,FOCUSIN:`focusin${EVENT_KEY}`,FOCUSOUT:`focusout${EVENT_KEY}`,MOUSEENTER:`mouseenter${EVENT_KEY}`,MOUSELEAVE:`mouseleave${EVENT_KEY}`};const CLASS_NAME_FADE='fade';const CLASS_NAME_MODAL='modal';const CLASS_NAME_SHOW='show';const HOVER_STATE_SHOW='show';const HOVER_STATE_OUT='out';const SELECTOR_TOOLTIP_INNER='.tooltip-inner';const SELECTOR_MODAL=`.${CLASS_NAME_MODAL}`;const EVENT_MODAL_HIDE='hide.bs.modal';const TRIGGER_HOVER='hover';const TRIGGER_FOCUS='focus';const TRIGGER_CLICK='click';const TRIGGER_MANUAL='manual';class Tooltip extends BaseComponent__default.default{constructor(element,config){if(typeof Popper__namespace==='undefined'){throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');}
super(element);this._isEnabled=true;this._timeout=0;this._hoverState='';this._activeTrigger={};this._popper=null;this._config=this._getConfig(config);this.tip=null;this._setListeners();}
static get Default(){return Default;}
static get NAME(){return NAME;}
static get Event(){return Event;}
static get DefaultType(){return DefaultType;}
enable(){this._isEnabled=true;}
disable(){this._isEnabled=false;}
toggleEnabled(){this._isEnabled=!this._isEnabled;}
toggle(event){if(!this._isEnabled){return;}
if(event){const context=this._initializeOnDelegatedTarget(event);context._activeTrigger.click=!context._activeTrigger.click;if(context._isWithActiveTrigger()){context._enter(null,context);}else{context._leave(null,context);}}else{if(this.getTipElement().classList.contains(CLASS_NAME_SHOW)){this._leave(null,this);return;}
this._enter(null,this);}}
dispose(){clearTimeout(this._timeout);EventHandler__default.default.off(this._element.closest(SELECTOR_MODAL),EVENT_MODAL_HIDE,this._hideModalHandler);if(this.tip){this.tip.remove();}
this._disposePopper();super.dispose();}
show(){if(this._element.style.display==='none'){throw new Error('Please use show on visible elements');}
if(!(this.isWithContent()&&this._isEnabled)){return;}
const showEvent=EventHandler__default.default.trigger(this._element,this.constructor.Event.SHOW);const shadowRoot=findShadowRoot(this._element);const isInTheDom=shadowRoot===null?this._element.ownerDocument.documentElement.contains(this._element):shadowRoot.contains(this._element);if(showEvent.defaultPrevented||!isInTheDom){return;}
if(this.constructor.NAME==='tooltip'&&this.tip&&this.getTitle()!==this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML){this._disposePopper();this.tip.remove();this.tip=null;}
const tip=this.getTipElement();const tipId=getUID(this.constructor.NAME);tip.setAttribute('id',tipId);this._element.setAttribute('aria-describedby',tipId);if(this._config.animation){tip.classList.add(CLASS_NAME_FADE);}
const placement=typeof this._config.placement==='function'?this._config.placement.call(this,tip,this._element):this._config.placement;const attachment=this._getAttachment(placement);this._addAttachmentClass(attachment);const{container}=this._config;Data__default.default.set(tip,this.constructor.DATA_KEY,this);if(!this._element.ownerDocument.documentElement.contains(this.tip)){container.append(tip);EventHandler__default.default.trigger(this._element,this.constructor.Event.INSERTED);}
if(this._popper){this._popper.update();}else{this._popper=Popper__namespace.createPopper(this._element,tip,this._getPopperConfig(attachment));}
tip.classList.add(CLASS_NAME_SHOW);const customClass=this._resolvePossibleFunction(this._config.customClass);if(customClass){tip.classList.add(...customClass.split(' '));}
if('ontouchstart'in document.documentElement){[].concat(...document.body.children).forEach(element=>{EventHandler__default.default.on(element,'mouseover',noop);});}
const complete=()=>{const prevHoverState=this._hoverState;this._hoverState=null;EventHandler__default.default.trigger(this._element,this.constructor.Event.SHOWN);if(prevHoverState===HOVER_STATE_OUT){this._leave(null,this);}};const isAnimated=this.tip.classList.contains(CLASS_NAME_FADE);this._queueCallback(complete,this.tip,isAnimated);}
hide(){if(!this._popper){return;}
const tip=this.getTipElement();const complete=()=>{if(!this._element||!this._config){return;}
if(this._isWithActiveTrigger()){return;}
if(this._hoverState!==HOVER_STATE_SHOW){tip.remove();}
this._cleanTipClass();this._element.removeAttribute('aria-describedby');EventHandler__default.default.trigger(this._element,this.constructor.Event.HIDDEN);this._disposePopper();};const hideEvent=EventHandler__default.default.trigger(this._element,this.constructor.Event.HIDE);if(hideEvent.defaultPrevented){return;}
tip.classList.remove(CLASS_NAME_SHOW);if('ontouchstart'in document.documentElement){[].concat(...document.body.children).forEach(element=>EventHandler__default.default.off(element,'mouseover',noop));}
this._activeTrigger[TRIGGER_CLICK]=false;this._activeTrigger[TRIGGER_FOCUS]=false;this._activeTrigger[TRIGGER_HOVER]=false;const isAnimated=this.tip.classList.contains(CLASS_NAME_FADE);this._queueCallback(complete,this.tip,isAnimated);this._hoverState='';}
update(){if(this._popper!==null){this._popper.update();}}
isWithContent(){return Boolean(this.getTitle());}
getTipElement(){if(this.tip){return this.tip;}
const element=document.createElement('div');element.innerHTML=this._config.template;const tip=element.children[0];this.setContent(tip);tip.classList.remove(CLASS_NAME_FADE,CLASS_NAME_SHOW);this.tip=tip;return this.tip;}
setContent(tip){this._sanitizeAndSetContent(tip,this.getTitle(),SELECTOR_TOOLTIP_INNER);}
_sanitizeAndSetContent(template,content,selector){const templateElement=SelectorEngine__default.default.findOne(selector,template);if(!content&&templateElement){templateElement.remove();return;}
this.setElementContent(templateElement,content);}
setElementContent(element,content){if(element===null){return;}
if(isElement(content)){content=getElement(content);if(this._config.html){if(content.parentNode!==element){element.innerHTML='';element.append(content);}}else{element.textContent=content.textContent;}
return;}
if(this._config.html){if(this._config.sanitize){content=sanitizeHtml(content,this._config.allowList,this._config.sanitizeFn);}
element.innerHTML=content;}else{element.textContent=content;}}
getTitle(){const title=this._element.getAttribute('data-bs-original-title')||this._config.title;return this._resolvePossibleFunction(title);}
updateAttachment(attachment){if(attachment==='right'){return'end';}
if(attachment==='left'){return'start';}
return attachment;}
_initializeOnDelegatedTarget(event,context){return context||this.constructor.getOrCreateInstance(event.delegateTarget,this._getDelegateConfig());}
_getOffset(){const{offset}=this._config;if(typeof offset==='string'){return offset.split(',').map(val=>Number.parseInt(val,10));}
if(typeof offset==='function'){return popperData=>offset(popperData,this._element);}
return offset;}
_resolvePossibleFunction(content){return typeof content==='function'?content.call(this._element):content;}
_getPopperConfig(attachment){const defaultBsPopperConfig={placement:attachment,modifiers:[{name:'flip',options:{fallbackPlacements:this._config.fallbackPlacements}},{name:'offset',options:{offset:this._getOffset()}},{name:'preventOverflow',options:{boundary:this._config.boundary}},{name:'arrow',options:{element:`.${this.constructor.NAME}-arrow`}},{name:'onChange',enabled:true,phase:'afterWrite',fn:data=>this._handlePopperPlacementChange(data)}],onFirstUpdate:data=>{if(data.options.placement!==data.placement){this._handlePopperPlacementChange(data);}}};return{...defaultBsPopperConfig,...(typeof this._config.popperConfig==='function'?this._config.popperConfig(defaultBsPopperConfig):this._config.popperConfig)};}
_addAttachmentClass(attachment){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(attachment)}`);}
_getAttachment(placement){return AttachmentMap[placement.toUpperCase()];}
_setListeners(){const triggers=this._config.trigger.split(' ');triggers.forEach(trigger=>{if(trigger==='click'){EventHandler__default.default.on(this._element,this.constructor.Event.CLICK,this._config.selector,event=>this.toggle(event));}else if(trigger!==TRIGGER_MANUAL){const eventIn=trigger===TRIGGER_HOVER?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN;const eventOut=trigger===TRIGGER_HOVER?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;EventHandler__default.default.on(this._element,eventIn,this._config.selector,event=>this._enter(event));EventHandler__default.default.on(this._element,eventOut,this._config.selector,event=>this._leave(event));}});this._hideModalHandler=()=>{if(this._element){this.hide();}};EventHandler__default.default.on(this._element.closest(SELECTOR_MODAL),EVENT_MODAL_HIDE,this._hideModalHandler);if(this._config.selector){this._config={...this._config,trigger:'manual',selector:''};}else{this._fixTitle();}}
_fixTitle(){const title=this._element.getAttribute('title');const originalTitleType=typeof this._element.getAttribute('data-bs-original-title');if(title||originalTitleType!=='string'){this._element.setAttribute('data-bs-original-title',title||'');if(title&&!this._element.getAttribute('aria-label')&&!this._element.textContent){this._element.setAttribute('aria-label',title);}
this._element.setAttribute('title','');}}
_enter(event,context){context=this._initializeOnDelegatedTarget(event,context);if(event){context._activeTrigger[event.type==='focusin'?TRIGGER_FOCUS:TRIGGER_HOVER]=true;}
if(context.getTipElement().classList.contains(CLASS_NAME_SHOW)||context._hoverState===HOVER_STATE_SHOW){context._hoverState=HOVER_STATE_SHOW;return;}
clearTimeout(context._timeout);context._hoverState=HOVER_STATE_SHOW;if(!context._config.delay||!context._config.delay.show){context.show();return;}
context._timeout=setTimeout(()=>{if(context._hoverState===HOVER_STATE_SHOW){context.show();}},context._config.delay.show);}
_leave(event,context){context=this._initializeOnDelegatedTarget(event,context);if(event){context._activeTrigger[event.type==='focusout'?TRIGGER_FOCUS:TRIGGER_HOVER]=context._element.contains(event.relatedTarget);}
if(context._isWithActiveTrigger()){return;}
clearTimeout(context._timeout);context._hoverState=HOVER_STATE_OUT;if(!context._config.delay||!context._config.delay.hide){context.hide();return;}
context._timeout=setTimeout(()=>{if(context._hoverState===HOVER_STATE_OUT){context.hide();}},context._config.delay.hide);}
_isWithActiveTrigger(){for(const trigger in this._activeTrigger){if(this._activeTrigger[trigger]){return true;}}
return false;}
_getConfig(config){const dataAttributes=Manipulator__default.default.getDataAttributes(this._element);Object.keys(dataAttributes).forEach(dataAttr=>{if(DISALLOWED_ATTRIBUTES.has(dataAttr)){delete dataAttributes[dataAttr];}});config={...this.constructor.Default,...dataAttributes,...(typeof config==='object'&&config?config:{})};config.container=config.container===false?document.body:getElement(config.container);if(typeof config.delay==='number'){config.delay={show:config.delay,hide:config.delay};}
if(typeof config.title==='number'){config.title=config.title.toString();}
if(typeof config.content==='number'){config.content=config.content.toString();}
typeCheckConfig(NAME,config,this.constructor.DefaultType);if(config.sanitize){config.template=sanitizeHtml(config.template,config.allowList,config.sanitizeFn);}
return config;}
_getDelegateConfig(){const config={};for(const key in this._config){if(this.constructor.Default[key]!==this._config[key]){config[key]=this._config[key];}}
return config;}
_cleanTipClass(){const tip=this.getTipElement();const basicClassPrefixRegex=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,'g');const tabClass=tip.getAttribute('class').match(basicClassPrefixRegex);if(tabClass!==null&&tabClass.length>0){tabClass.map(token=>token.trim()).forEach(tClass=>tip.classList.remove(tClass));}}
_getBasicClassPrefix(){return CLASS_PREFIX;}
_handlePopperPlacementChange(popperData){const{state}=popperData;if(!state){return;}
this.tip=state.elements.popper;this._cleanTipClass();this._addAttachmentClass(this._getAttachment(state.placement));}
_disposePopper(){if(this._popper){this._popper.destroy();this._popper=null;}}
static jQueryInterface(config){return this.each(function(){const data=Tooltip.getOrCreateInstance(this,config);if(typeof config==='string'){if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`);}
data[config]();}});}}
defineJQueryPlugin(Tooltip);return Tooltip;}));;

/* /web/static/lib/bootstrap/js/dist/popover.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('./tooltip.js')):typeof define==='function'&&define.amd?define(['./tooltip'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Popover=factory(global.Tooltip));})(this,(function(Tooltip){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};const Tooltip__default=_interopDefaultLegacy(Tooltip);const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const NAME='popover';const DATA_KEY='bs.popover';const EVENT_KEY=`.${DATA_KEY}`;const CLASS_PREFIX='bs-popover';const Default={...Tooltip__default.default.Default,placement:'right',offset:[0,8],trigger:'click',content:'',template:'<div class="popover" role="tooltip">'+'<div class="popover-arrow"></div>'+'<h3 class="popover-header"></h3>'+'<div class="popover-body"></div>'+'</div>'};const DefaultType={...Tooltip__default.default.DefaultType,content:'(string|element|function)'};const Event={HIDE:`hide${EVENT_KEY}`,HIDDEN:`hidden${EVENT_KEY}`,SHOW:`show${EVENT_KEY}`,SHOWN:`shown${EVENT_KEY}`,INSERTED:`inserted${EVENT_KEY}`,CLICK:`click${EVENT_KEY}`,FOCUSIN:`focusin${EVENT_KEY}`,FOCUSOUT:`focusout${EVENT_KEY}`,MOUSEENTER:`mouseenter${EVENT_KEY}`,MOUSELEAVE:`mouseleave${EVENT_KEY}`};const SELECTOR_TITLE='.popover-header';const SELECTOR_CONTENT='.popover-body';class Popover extends Tooltip__default.default{static get Default(){return Default;}
static get NAME(){return NAME;}
static get Event(){return Event;}
static get DefaultType(){return DefaultType;}
isWithContent(){return this.getTitle()||this._getContent();}
setContent(tip){this._sanitizeAndSetContent(tip,this.getTitle(),SELECTOR_TITLE);this._sanitizeAndSetContent(tip,this._getContent(),SELECTOR_CONTENT);}
_getContent(){return this._resolvePossibleFunction(this._config.content);}
_getBasicClassPrefix(){return CLASS_PREFIX;}
static jQueryInterface(config){return this.each(function(){const data=Popover.getOrCreateInstance(this,config);if(typeof config==='string'){if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`);}
data[config]();}});}}
defineJQueryPlugin(Popover);return Popover;}));;

/* /web/static/lib/bootstrap/js/dist/scrollspy.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('./dom/event-handler.js'),require('./dom/manipulator.js'),require('./dom/selector-engine.js'),require('./base-component.js')):typeof define==='function'&&define.amd?define(['./dom/event-handler','./dom/manipulator','./dom/selector-engine','./base-component'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.ScrollSpy=factory(global.EventHandler,global.Manipulator,global.SelectorEngine,global.Base));})(this,(function(EventHandler,Manipulator,SelectorEngine,BaseComponent){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};const EventHandler__default=_interopDefaultLegacy(EventHandler);const Manipulator__default=_interopDefaultLegacy(Manipulator);const SelectorEngine__default=_interopDefaultLegacy(SelectorEngine);const BaseComponent__default=_interopDefaultLegacy(BaseComponent);const toType=obj=>{if(obj===null||obj===undefined){return`${obj}`;}
return{}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();};const getSelector=element=>{let selector=element.getAttribute('data-bs-target');if(!selector||selector==='#'){let hrefAttr=element.getAttribute('href');if(!hrefAttr||!hrefAttr.includes('#')&&!hrefAttr.startsWith('.')){return null;}
if(hrefAttr.includes('#')&&!hrefAttr.startsWith('#')){hrefAttr=`#${hrefAttr.split('#')[1]}`;}
selector=hrefAttr&&hrefAttr!=='#'?hrefAttr.trim():null;}
return selector;};const getSelectorFromElement=element=>{const selector=getSelector(element);if(selector){return document.querySelector(selector)?selector:null;}
return null;};const isElement=obj=>{if(!obj||typeof obj!=='object'){return false;}
if(typeof obj.jquery!=='undefined'){obj=obj[0];}
return typeof obj.nodeType!=='undefined';};const getElement=obj=>{if(isElement(obj)){return obj.jquery?obj[0]:obj;}
if(typeof obj==='string'&&obj.length>0){return document.querySelector(obj);}
return null;};const typeCheckConfig=(componentName,config,configTypes)=>{Object.keys(configTypes).forEach(property=>{const expectedTypes=configTypes[property];const value=config[property];const valueType=value&&isElement(value)?'element':toType(value);if(!new RegExp(expectedTypes).test(valueType)){throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);}});};const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const NAME='scrollspy';const DATA_KEY='bs.scrollspy';const EVENT_KEY=`.${DATA_KEY}`;const DATA_API_KEY='.data-api';const Default={offset:10,method:'auto',target:''};const DefaultType={offset:'number',method:'string',target:'(string|element)'};const EVENT_ACTIVATE=`activate${EVENT_KEY}`;const EVENT_SCROLL=`scroll${EVENT_KEY}`;const EVENT_LOAD_DATA_API=`load${EVENT_KEY}${DATA_API_KEY}`;const CLASS_NAME_DROPDOWN_ITEM='dropdown-item';const CLASS_NAME_ACTIVE='active';const SELECTOR_DATA_SPY='[data-bs-spy="scroll"]';const SELECTOR_NAV_LIST_GROUP='.nav, .list-group';const SELECTOR_NAV_LINKS='.nav-link';const SELECTOR_NAV_ITEMS='.nav-item';const SELECTOR_LIST_ITEMS='.list-group-item';const SELECTOR_LINK_ITEMS=`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}, .${CLASS_NAME_DROPDOWN_ITEM}`;const SELECTOR_DROPDOWN='.dropdown';const SELECTOR_DROPDOWN_TOGGLE='.dropdown-toggle';const METHOD_OFFSET='offset';const METHOD_POSITION='position';class ScrollSpy extends BaseComponent__default.default{constructor(element,config){super(element);this._scrollElement=this._element.tagName==='BODY'?window:this._element;this._config=this._getConfig(config);this._offsets=[];this._targets=[];this._activeTarget=null;this._scrollHeight=0;EventHandler__default.default.on(this._scrollElement,EVENT_SCROLL,()=>this._process());this.refresh();this._process();}
static get Default(){return Default;}
static get NAME(){return NAME;}
refresh(){const autoMethod=this._scrollElement===this._scrollElement.window?METHOD_OFFSET:METHOD_POSITION;const offsetMethod=this._config.method==='auto'?autoMethod:this._config.method;const offsetBase=offsetMethod===METHOD_POSITION?this._getScrollTop():0;this._offsets=[];this._targets=[];this._scrollHeight=this._getScrollHeight();const targets=SelectorEngine__default.default.find(SELECTOR_LINK_ITEMS,this._config.target);targets.map(element=>{const targetSelector=getSelectorFromElement(element);const target=targetSelector?SelectorEngine__default.default.findOne(targetSelector):null;if(target){const targetBCR=target.getBoundingClientRect();if(targetBCR.width||targetBCR.height){return[Manipulator__default.default[offsetMethod](target).top+offsetBase,targetSelector];}}
return null;}).filter(item=>item).sort((a,b)=>a[0]-b[0]).forEach(item=>{this._offsets.push(item[0]);this._targets.push(item[1]);});}
dispose(){EventHandler__default.default.off(this._scrollElement,EVENT_KEY);super.dispose();}
_getConfig(config){config={...Default,...Manipulator__default.default.getDataAttributes(this._element),...(typeof config==='object'&&config?config:{})};config.target=getElement(config.target)||document.documentElement;typeCheckConfig(NAME,config,DefaultType);return config;}
_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop;}
_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight);}
_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height;}
_process(){const scrollTop=this._getScrollTop()+this._config.offset;const scrollHeight=this._getScrollHeight();const maxScroll=this._config.offset+scrollHeight-this._getOffsetHeight();if(this._scrollHeight!==scrollHeight){this.refresh();}
if(scrollTop>=maxScroll){const target=this._targets[this._targets.length-1];if(this._activeTarget!==target){this._activate(target);}
return;}
if(this._activeTarget&&scrollTop<this._offsets[0]&&this._offsets[0]>0){this._activeTarget=null;this._clear();return;}
for(let i=this._offsets.length;i--;){const isActiveTarget=this._activeTarget!==this._targets[i]&&scrollTop>=this._offsets[i]&&(typeof this._offsets[i+1]==='undefined'||scrollTop<this._offsets[i+1]);if(isActiveTarget){this._activate(this._targets[i]);}}}
_activate(target){this._activeTarget=target;this._clear();const queries=SELECTOR_LINK_ITEMS.split(',').map(selector=>`${selector}[data-bs-target="${target}"],${selector}[href="${target}"]`);const link=SelectorEngine__default.default.findOne(queries.join(','),this._config.target);link.classList.add(CLASS_NAME_ACTIVE);if(link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)){SelectorEngine__default.default.findOne(SELECTOR_DROPDOWN_TOGGLE,link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);}else{SelectorEngine__default.default.parents(link,SELECTOR_NAV_LIST_GROUP).forEach(listGroup=>{SelectorEngine__default.default.prev(listGroup,`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(item=>item.classList.add(CLASS_NAME_ACTIVE));SelectorEngine__default.default.prev(listGroup,SELECTOR_NAV_ITEMS).forEach(navItem=>{SelectorEngine__default.default.children(navItem,SELECTOR_NAV_LINKS).forEach(item=>item.classList.add(CLASS_NAME_ACTIVE));});});}
EventHandler__default.default.trigger(this._scrollElement,EVENT_ACTIVATE,{relatedTarget:target});}
_clear(){SelectorEngine__default.default.find(SELECTOR_LINK_ITEMS,this._config.target).filter(node=>node.classList.contains(CLASS_NAME_ACTIVE)).forEach(node=>node.classList.remove(CLASS_NAME_ACTIVE));}
static jQueryInterface(config){return this.each(function(){const data=ScrollSpy.getOrCreateInstance(this,config);if(typeof config!=='string'){return;}
if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`);}
data[config]();});}}
EventHandler__default.default.on(window,EVENT_LOAD_DATA_API,()=>{SelectorEngine__default.default.find(SELECTOR_DATA_SPY).forEach(spy=>new ScrollSpy(spy));});defineJQueryPlugin(ScrollSpy);return ScrollSpy;}));;

/* /web/static/lib/bootstrap/js/dist/tab.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('./dom/event-handler.js'),require('./dom/selector-engine.js'),require('./base-component.js')):typeof define==='function'&&define.amd?define(['./dom/event-handler','./dom/selector-engine','./base-component'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Tab=factory(global.EventHandler,global.SelectorEngine,global.Base));})(this,(function(EventHandler,SelectorEngine,BaseComponent){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};const EventHandler__default=_interopDefaultLegacy(EventHandler);const SelectorEngine__default=_interopDefaultLegacy(SelectorEngine);const BaseComponent__default=_interopDefaultLegacy(BaseComponent);const getSelector=element=>{let selector=element.getAttribute('data-bs-target');if(!selector||selector==='#'){let hrefAttr=element.getAttribute('href');if(!hrefAttr||!hrefAttr.includes('#')&&!hrefAttr.startsWith('.')){return null;}
if(hrefAttr.includes('#')&&!hrefAttr.startsWith('#')){hrefAttr=`#${hrefAttr.split('#')[1]}`;}
selector=hrefAttr&&hrefAttr!=='#'?hrefAttr.trim():null;}
return selector;};const getElementFromSelector=element=>{const selector=getSelector(element);return selector?document.querySelector(selector):null;};const isDisabled=element=>{if(!element||element.nodeType!==Node.ELEMENT_NODE){return true;}
if(element.classList.contains('disabled')){return true;}
if(typeof element.disabled!=='undefined'){return element.disabled;}
return element.hasAttribute('disabled')&&element.getAttribute('disabled')!=='false';};const reflow=element=>{element.offsetHeight;};const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const NAME='tab';const DATA_KEY='bs.tab';const EVENT_KEY=`.${DATA_KEY}`;const DATA_API_KEY='.data-api';const EVENT_HIDE=`hide${EVENT_KEY}`;const EVENT_HIDDEN=`hidden${EVENT_KEY}`;const EVENT_SHOW=`show${EVENT_KEY}`;const EVENT_SHOWN=`shown${EVENT_KEY}`;const EVENT_CLICK_DATA_API=`click${EVENT_KEY}${DATA_API_KEY}`;const CLASS_NAME_DROPDOWN_MENU='dropdown-menu';const CLASS_NAME_ACTIVE='active';const CLASS_NAME_FADE='fade';const CLASS_NAME_SHOW='show';const SELECTOR_DROPDOWN='.dropdown';const SELECTOR_NAV_LIST_GROUP='.nav, .list-group';const SELECTOR_ACTIVE='.active';const SELECTOR_ACTIVE_UL=':scope > li > .active';const SELECTOR_DATA_TOGGLE='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';const SELECTOR_DROPDOWN_TOGGLE='.dropdown-toggle';const SELECTOR_DROPDOWN_ACTIVE_CHILD=':scope > .dropdown-menu .active';class Tab extends BaseComponent__default.default{static get NAME(){return NAME;}
show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(CLASS_NAME_ACTIVE)){return;}
let previous;const target=getElementFromSelector(this._element);const listElement=this._element.closest(SELECTOR_NAV_LIST_GROUP);if(listElement){const itemSelector=listElement.nodeName==='UL'||listElement.nodeName==='OL'?SELECTOR_ACTIVE_UL:SELECTOR_ACTIVE;previous=SelectorEngine__default.default.find(itemSelector,listElement);previous=previous[previous.length-1];}
const hideEvent=previous?EventHandler__default.default.trigger(previous,EVENT_HIDE,{relatedTarget:this._element}):null;const showEvent=EventHandler__default.default.trigger(this._element,EVENT_SHOW,{relatedTarget:previous});if(showEvent.defaultPrevented||hideEvent!==null&&hideEvent.defaultPrevented){return;}
this._activate(this._element,listElement);const complete=()=>{EventHandler__default.default.trigger(previous,EVENT_HIDDEN,{relatedTarget:this._element});EventHandler__default.default.trigger(this._element,EVENT_SHOWN,{relatedTarget:previous});};if(target){this._activate(target,target.parentNode,complete);}else{complete();}}
_activate(element,container,callback){const activeElements=container&&(container.nodeName==='UL'||container.nodeName==='OL')?SelectorEngine__default.default.find(SELECTOR_ACTIVE_UL,container):SelectorEngine__default.default.children(container,SELECTOR_ACTIVE);const active=activeElements[0];const isTransitioning=callback&&active&&active.classList.contains(CLASS_NAME_FADE);const complete=()=>this._transitionComplete(element,active,callback);if(active&&isTransitioning){active.classList.remove(CLASS_NAME_SHOW);this._queueCallback(complete,element,true);}else{complete();}}
_transitionComplete(element,active,callback){if(active){active.classList.remove(CLASS_NAME_ACTIVE);const dropdownChild=SelectorEngine__default.default.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD,active.parentNode);if(dropdownChild){dropdownChild.classList.remove(CLASS_NAME_ACTIVE);}
if(active.getAttribute('role')==='tab'){active.setAttribute('aria-selected',false);}}
element.classList.add(CLASS_NAME_ACTIVE);if(element.getAttribute('role')==='tab'){element.setAttribute('aria-selected',true);}
reflow(element);if(element.classList.contains(CLASS_NAME_FADE)){element.classList.add(CLASS_NAME_SHOW);}
let parent=element.parentNode;if(parent&&parent.nodeName==='LI'){parent=parent.parentNode;}
if(parent&&parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)){const dropdownElement=element.closest(SELECTOR_DROPDOWN);if(dropdownElement){SelectorEngine__default.default.find(SELECTOR_DROPDOWN_TOGGLE,dropdownElement).forEach(dropdown=>dropdown.classList.add(CLASS_NAME_ACTIVE));}
element.setAttribute('aria-expanded',true);}
if(callback){callback();}}
static jQueryInterface(config){return this.each(function(){const data=Tab.getOrCreateInstance(this);if(typeof config==='string'){if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`);}
data[config]();}});}}
EventHandler__default.default.on(document,EVENT_CLICK_DATA_API,SELECTOR_DATA_TOGGLE,function(event){if(['A','AREA'].includes(this.tagName)){event.preventDefault();}
if(isDisabled(this)){return;}
const data=Tab.getOrCreateInstance(this);data.show();});defineJQueryPlugin(Tab);return Tab;}));;

/* /web/static/lib/bootstrap/js/dist/toast.js */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('./dom/event-handler.js'),require('./dom/manipulator.js'),require('./base-component.js')):typeof define==='function'&&define.amd?define(['./dom/event-handler','./dom/manipulator','./base-component'],factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.Toast=factory(global.EventHandler,global.Manipulator,global.Base));})(this,(function(EventHandler,Manipulator,BaseComponent){'use strict';const _interopDefaultLegacy=e=>e&&typeof e==='object'&&'default'in e?e:{default:e};const EventHandler__default=_interopDefaultLegacy(EventHandler);const Manipulator__default=_interopDefaultLegacy(Manipulator);const BaseComponent__default=_interopDefaultLegacy(BaseComponent);const toType=obj=>{if(obj===null||obj===undefined){return`${obj}`;}
return{}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();};const getSelector=element=>{let selector=element.getAttribute('data-bs-target');if(!selector||selector==='#'){let hrefAttr=element.getAttribute('href');if(!hrefAttr||!hrefAttr.includes('#')&&!hrefAttr.startsWith('.')){return null;}
if(hrefAttr.includes('#')&&!hrefAttr.startsWith('#')){hrefAttr=`#${hrefAttr.split('#')[1]}`;}
selector=hrefAttr&&hrefAttr!=='#'?hrefAttr.trim():null;}
return selector;};const getElementFromSelector=element=>{const selector=getSelector(element);return selector?document.querySelector(selector):null;};const isElement=obj=>{if(!obj||typeof obj!=='object'){return false;}
if(typeof obj.jquery!=='undefined'){obj=obj[0];}
return typeof obj.nodeType!=='undefined';};const typeCheckConfig=(componentName,config,configTypes)=>{Object.keys(configTypes).forEach(property=>{const expectedTypes=configTypes[property];const value=config[property];const valueType=value&&isElement(value)?'element':toType(value);if(!new RegExp(expectedTypes).test(valueType)){throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);}});};const isDisabled=element=>{if(!element||element.nodeType!==Node.ELEMENT_NODE){return true;}
if(element.classList.contains('disabled')){return true;}
if(typeof element.disabled!=='undefined'){return element.disabled;}
return element.hasAttribute('disabled')&&element.getAttribute('disabled')!=='false';};const reflow=element=>{element.offsetHeight;};const getjQuery=()=>{const{jQuery}=window;if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){return jQuery;}
return null;};const DOMContentLoadedCallbacks=[];const onDOMContentLoaded=callback=>{if(document.readyState==='loading'){if(!DOMContentLoadedCallbacks.length){document.addEventListener('DOMContentLoaded',()=>{DOMContentLoadedCallbacks.forEach(callback=>callback());});}
DOMContentLoadedCallbacks.push(callback);}else{callback();}};const defineJQueryPlugin=plugin=>{onDOMContentLoaded(()=>{const $=getjQuery();if($){const name=plugin.NAME;const JQUERY_NO_CONFLICT=$.fn[name];$.fn[name]=plugin.jQueryInterface;$.fn[name].Constructor=plugin;$.fn[name].noConflict=()=>{$.fn[name]=JQUERY_NO_CONFLICT;return plugin.jQueryInterface;};}});};const enableDismissTrigger=(component,method='hide')=>{const clickEvent=`click.dismiss${component.EVENT_KEY}`;const name=component.NAME;EventHandler__default.default.on(document,clickEvent,`[data-bs-dismiss="${name}"]`,function(event){if(['A','AREA'].includes(this.tagName)){event.preventDefault();}
if(isDisabled(this)){return;}
const target=getElementFromSelector(this)||this.closest(`.${name}`);const instance=component.getOrCreateInstance(target);instance[method]();});};const NAME='toast';const DATA_KEY='bs.toast';const EVENT_KEY=`.${DATA_KEY}`;const EVENT_MOUSEOVER=`mouseover${EVENT_KEY}`;const EVENT_MOUSEOUT=`mouseout${EVENT_KEY}`;const EVENT_FOCUSIN=`focusin${EVENT_KEY}`;const EVENT_FOCUSOUT=`focusout${EVENT_KEY}`;const EVENT_HIDE=`hide${EVENT_KEY}`;const EVENT_HIDDEN=`hidden${EVENT_KEY}`;const EVENT_SHOW=`show${EVENT_KEY}`;const EVENT_SHOWN=`shown${EVENT_KEY}`;const CLASS_NAME_FADE='fade';const CLASS_NAME_HIDE='hide';const CLASS_NAME_SHOW='show';const CLASS_NAME_SHOWING='showing';const DefaultType={animation:'boolean',autohide:'boolean',delay:'number'};const Default={animation:true,autohide:true,delay:5000};class Toast extends BaseComponent__default.default{constructor(element,config){super(element);this._config=this._getConfig(config);this._timeout=null;this._hasMouseInteraction=false;this._hasKeyboardInteraction=false;this._setListeners();}
static get DefaultType(){return DefaultType;}
static get Default(){return Default;}
static get NAME(){return NAME;}
show(){const showEvent=EventHandler__default.default.trigger(this._element,EVENT_SHOW);if(showEvent.defaultPrevented){return;}
this._clearTimeout();if(this._config.animation){this._element.classList.add(CLASS_NAME_FADE);}
const complete=()=>{this._element.classList.remove(CLASS_NAME_SHOWING);EventHandler__default.default.trigger(this._element,EVENT_SHOWN);this._maybeScheduleHide();};this._element.classList.remove(CLASS_NAME_HIDE);reflow(this._element);this._element.classList.add(CLASS_NAME_SHOW);this._element.classList.add(CLASS_NAME_SHOWING);this._queueCallback(complete,this._element,this._config.animation);}
hide(){if(!this._element.classList.contains(CLASS_NAME_SHOW)){return;}
const hideEvent=EventHandler__default.default.trigger(this._element,EVENT_HIDE);if(hideEvent.defaultPrevented){return;}
const complete=()=>{this._element.classList.add(CLASS_NAME_HIDE);this._element.classList.remove(CLASS_NAME_SHOWING);this._element.classList.remove(CLASS_NAME_SHOW);EventHandler__default.default.trigger(this._element,EVENT_HIDDEN);};this._element.classList.add(CLASS_NAME_SHOWING);this._queueCallback(complete,this._element,this._config.animation);}
dispose(){this._clearTimeout();if(this._element.classList.contains(CLASS_NAME_SHOW)){this._element.classList.remove(CLASS_NAME_SHOW);}
super.dispose();}
_getConfig(config){config={...Default,...Manipulator__default.default.getDataAttributes(this._element),...(typeof config==='object'&&config?config:{})};typeCheckConfig(NAME,config,this.constructor.DefaultType);return config;}
_maybeScheduleHide(){if(!this._config.autohide){return;}
if(this._hasMouseInteraction||this._hasKeyboardInteraction){return;}
this._timeout=setTimeout(()=>{this.hide();},this._config.delay);}
_onInteraction(event,isInteracting){switch(event.type){case'mouseover':case'mouseout':this._hasMouseInteraction=isInteracting;break;case'focusin':case'focusout':this._hasKeyboardInteraction=isInteracting;break;}
if(isInteracting){this._clearTimeout();return;}
const nextElement=event.relatedTarget;if(this._element===nextElement||this._element.contains(nextElement)){return;}
this._maybeScheduleHide();}
_setListeners(){EventHandler__default.default.on(this._element,EVENT_MOUSEOVER,event=>this._onInteraction(event,true));EventHandler__default.default.on(this._element,EVENT_MOUSEOUT,event=>this._onInteraction(event,false));EventHandler__default.default.on(this._element,EVENT_FOCUSIN,event=>this._onInteraction(event,true));EventHandler__default.default.on(this._element,EVENT_FOCUSOUT,event=>this._onInteraction(event,false));}
_clearTimeout(){clearTimeout(this._timeout);this._timeout=null;}
static jQueryInterface(config){return this.each(function(){const data=Toast.getOrCreateInstance(this,config);if(typeof config==='string'){if(typeof data[config]==='undefined'){throw new TypeError(`No method named "${config}"`);}
data[config](this);}});}}
enableDismissTrigger(Toast);defineJQueryPlugin(Toast);return Toast;}));;

/* /web/static/lib/select2/select2.js */
(function($){if(typeof $.fn.each2=="undefined"){$.extend($.fn,{each2:function(c){var j=$([0]),i=-1,l=this.length;while(++i<l&&(j.context=j[0]=this[i])&&c.call(j[0],i,j)!==false);return this;}});}})(jQuery);(function($,undefined){"use strict";if(window.Select2!==undefined){return;}
var AbstractSelect2,SingleSelect2,MultiSelect2,nextUid,sizer,lastMousePosition={x:0,y:0},$document,scrollBarDimensions,KEY={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,isArrow:function(k){k=k.which?k.which:k;switch(k){case KEY.LEFT:case KEY.RIGHT:case KEY.UP:case KEY.DOWN:return true;}
return false;},isControl:function(e){var k=e.which;switch(k){case KEY.SHIFT:case KEY.CTRL:case KEY.ALT:return true;}
if(e.metaKey)return true;return false;},isFunctionKey:function(k){k=k.which?k.which:k;return k>=112&&k<=123;}},MEASURE_SCROLLBAR_TEMPLATE="<div class='select2-measure-scrollbar'></div>",DIACRITICS={"\u24B6":"A","\uFF21":"A","\u00C0":"A","\u00C1":"A","\u00C2":"A","\u1EA6":"A","\u1EA4":"A","\u1EAA":"A","\u1EA8":"A","\u00C3":"A","\u0100":"A","\u0102":"A","\u1EB0":"A","\u1EAE":"A","\u1EB4":"A","\u1EB2":"A","\u0226":"A","\u01E0":"A","\u00C4":"A","\u01DE":"A","\u1EA2":"A","\u00C5":"A","\u01FA":"A","\u01CD":"A","\u0200":"A","\u0202":"A","\u1EA0":"A","\u1EAC":"A","\u1EB6":"A","\u1E00":"A","\u0104":"A","\u023A":"A","\u2C6F":"A","\uA732":"AA","\u00C6":"AE","\u01FC":"AE","\u01E2":"AE","\uA734":"AO","\uA736":"AU","\uA738":"AV","\uA73A":"AV","\uA73C":"AY","\u24B7":"B","\uFF22":"B","\u1E02":"B","\u1E04":"B","\u1E06":"B","\u0243":"B","\u0182":"B","\u0181":"B","\u24B8":"C","\uFF23":"C","\u0106":"C","\u0108":"C","\u010A":"C","\u010C":"C","\u00C7":"C","\u1E08":"C","\u0187":"C","\u023B":"C","\uA73E":"C","\u24B9":"D","\uFF24":"D","\u1E0A":"D","\u010E":"D","\u1E0C":"D","\u1E10":"D","\u1E12":"D","\u1E0E":"D","\u0110":"D","\u018B":"D","\u018A":"D","\u0189":"D","\uA779":"D","\u01F1":"DZ","\u01C4":"DZ","\u01F2":"Dz","\u01C5":"Dz","\u24BA":"E","\uFF25":"E","\u00C8":"E","\u00C9":"E","\u00CA":"E","\u1EC0":"E","\u1EBE":"E","\u1EC4":"E","\u1EC2":"E","\u1EBC":"E","\u0112":"E","\u1E14":"E","\u1E16":"E","\u0114":"E","\u0116":"E","\u00CB":"E","\u1EBA":"E","\u011A":"E","\u0204":"E","\u0206":"E","\u1EB8":"E","\u1EC6":"E","\u0228":"E","\u1E1C":"E","\u0118":"E","\u1E18":"E","\u1E1A":"E","\u0190":"E","\u018E":"E","\u24BB":"F","\uFF26":"F","\u1E1E":"F","\u0191":"F","\uA77B":"F","\u24BC":"G","\uFF27":"G","\u01F4":"G","\u011C":"G","\u1E20":"G","\u011E":"G","\u0120":"G","\u01E6":"G","\u0122":"G","\u01E4":"G","\u0193":"G","\uA7A0":"G","\uA77D":"G","\uA77E":"G","\u24BD":"H","\uFF28":"H","\u0124":"H","\u1E22":"H","\u1E26":"H","\u021E":"H","\u1E24":"H","\u1E28":"H","\u1E2A":"H","\u0126":"H","\u2C67":"H","\u2C75":"H","\uA78D":"H","\u24BE":"I","\uFF29":"I","\u00CC":"I","\u00CD":"I","\u00CE":"I","\u0128":"I","\u012A":"I","\u012C":"I","\u0130":"I","\u00CF":"I","\u1E2E":"I","\u1EC8":"I","\u01CF":"I","\u0208":"I","\u020A":"I","\u1ECA":"I","\u012E":"I","\u1E2C":"I","\u0197":"I","\u24BF":"J","\uFF2A":"J","\u0134":"J","\u0248":"J","\u24C0":"K","\uFF2B":"K","\u1E30":"K","\u01E8":"K","\u1E32":"K","\u0136":"K","\u1E34":"K","\u0198":"K","\u2C69":"K","\uA740":"K","\uA742":"K","\uA744":"K","\uA7A2":"K","\u24C1":"L","\uFF2C":"L","\u013F":"L","\u0139":"L","\u013D":"L","\u1E36":"L","\u1E38":"L","\u013B":"L","\u1E3C":"L","\u1E3A":"L","\u0141":"L","\u023D":"L","\u2C62":"L","\u2C60":"L","\uA748":"L","\uA746":"L","\uA780":"L","\u01C7":"LJ","\u01C8":"Lj","\u24C2":"M","\uFF2D":"M","\u1E3E":"M","\u1E40":"M","\u1E42":"M","\u2C6E":"M","\u019C":"M","\u24C3":"N","\uFF2E":"N","\u01F8":"N","\u0143":"N","\u00D1":"N","\u1E44":"N","\u0147":"N","\u1E46":"N","\u0145":"N","\u1E4A":"N","\u1E48":"N","\u0220":"N","\u019D":"N","\uA790":"N","\uA7A4":"N","\u01CA":"NJ","\u01CB":"Nj","\u24C4":"O","\uFF2F":"O","\u00D2":"O","\u00D3":"O","\u00D4":"O","\u1ED2":"O","\u1ED0":"O","\u1ED6":"O","\u1ED4":"O","\u00D5":"O","\u1E4C":"O","\u022C":"O","\u1E4E":"O","\u014C":"O","\u1E50":"O","\u1E52":"O","\u014E":"O","\u022E":"O","\u0230":"O","\u00D6":"O","\u022A":"O","\u1ECE":"O","\u0150":"O","\u01D1":"O","\u020C":"O","\u020E":"O","\u01A0":"O","\u1EDC":"O","\u1EDA":"O","\u1EE0":"O","\u1EDE":"O","\u1EE2":"O","\u1ECC":"O","\u1ED8":"O","\u01EA":"O","\u01EC":"O","\u00D8":"O","\u01FE":"O","\u0186":"O","\u019F":"O","\uA74A":"O","\uA74C":"O","\u01A2":"OI","\uA74E":"OO","\u0222":"OU","\u24C5":"P","\uFF30":"P","\u1E54":"P","\u1E56":"P","\u01A4":"P","\u2C63":"P","\uA750":"P","\uA752":"P","\uA754":"P","\u24C6":"Q","\uFF31":"Q","\uA756":"Q","\uA758":"Q","\u024A":"Q","\u24C7":"R","\uFF32":"R","\u0154":"R","\u1E58":"R","\u0158":"R","\u0210":"R","\u0212":"R","\u1E5A":"R","\u1E5C":"R","\u0156":"R","\u1E5E":"R","\u024C":"R","\u2C64":"R","\uA75A":"R","\uA7A6":"R","\uA782":"R","\u24C8":"S","\uFF33":"S","\u1E9E":"S","\u015A":"S","\u1E64":"S","\u015C":"S","\u1E60":"S","\u0160":"S","\u1E66":"S","\u1E62":"S","\u1E68":"S","\u0218":"S","\u015E":"S","\u2C7E":"S","\uA7A8":"S","\uA784":"S","\u24C9":"T","\uFF34":"T","\u1E6A":"T","\u0164":"T","\u1E6C":"T","\u021A":"T","\u0162":"T","\u1E70":"T","\u1E6E":"T","\u0166":"T","\u01AC":"T","\u01AE":"T","\u023E":"T","\uA786":"T","\uA728":"TZ","\u24CA":"U","\uFF35":"U","\u00D9":"U","\u00DA":"U","\u00DB":"U","\u0168":"U","\u1E78":"U","\u016A":"U","\u1E7A":"U","\u016C":"U","\u00DC":"U","\u01DB":"U","\u01D7":"U","\u01D5":"U","\u01D9":"U","\u1EE6":"U","\u016E":"U","\u0170":"U","\u01D3":"U","\u0214":"U","\u0216":"U","\u01AF":"U","\u1EEA":"U","\u1EE8":"U","\u1EEE":"U","\u1EEC":"U","\u1EF0":"U","\u1EE4":"U","\u1E72":"U","\u0172":"U","\u1E76":"U","\u1E74":"U","\u0244":"U","\u24CB":"V","\uFF36":"V","\u1E7C":"V","\u1E7E":"V","\u01B2":"V","\uA75E":"V","\u0245":"V","\uA760":"VY","\u24CC":"W","\uFF37":"W","\u1E80":"W","\u1E82":"W","\u0174":"W","\u1E86":"W","\u1E84":"W","\u1E88":"W","\u2C72":"W","\u24CD":"X","\uFF38":"X","\u1E8A":"X","\u1E8C":"X","\u24CE":"Y","\uFF39":"Y","\u1EF2":"Y","\u00DD":"Y","\u0176":"Y","\u1EF8":"Y","\u0232":"Y","\u1E8E":"Y","\u0178":"Y","\u1EF6":"Y","\u1EF4":"Y","\u01B3":"Y","\u024E":"Y","\u1EFE":"Y","\u24CF":"Z","\uFF3A":"Z","\u0179":"Z","\u1E90":"Z","\u017B":"Z","\u017D":"Z","\u1E92":"Z","\u1E94":"Z","\u01B5":"Z","\u0224":"Z","\u2C7F":"Z","\u2C6B":"Z","\uA762":"Z","\u24D0":"a","\uFF41":"a","\u1E9A":"a","\u00E0":"a","\u00E1":"a","\u00E2":"a","\u1EA7":"a","\u1EA5":"a","\u1EAB":"a","\u1EA9":"a","\u00E3":"a","\u0101":"a","\u0103":"a","\u1EB1":"a","\u1EAF":"a","\u1EB5":"a","\u1EB3":"a","\u0227":"a","\u01E1":"a","\u00E4":"a","\u01DF":"a","\u1EA3":"a","\u00E5":"a","\u01FB":"a","\u01CE":"a","\u0201":"a","\u0203":"a","\u1EA1":"a","\u1EAD":"a","\u1EB7":"a","\u1E01":"a","\u0105":"a","\u2C65":"a","\u0250":"a","\uA733":"aa","\u00E6":"ae","\u01FD":"ae","\u01E3":"ae","\uA735":"ao","\uA737":"au","\uA739":"av","\uA73B":"av","\uA73D":"ay","\u24D1":"b","\uFF42":"b","\u1E03":"b","\u1E05":"b","\u1E07":"b","\u0180":"b","\u0183":"b","\u0253":"b","\u24D2":"c","\uFF43":"c","\u0107":"c","\u0109":"c","\u010B":"c","\u010D":"c","\u00E7":"c","\u1E09":"c","\u0188":"c","\u023C":"c","\uA73F":"c","\u2184":"c","\u24D3":"d","\uFF44":"d","\u1E0B":"d","\u010F":"d","\u1E0D":"d","\u1E11":"d","\u1E13":"d","\u1E0F":"d","\u0111":"d","\u018C":"d","\u0256":"d","\u0257":"d","\uA77A":"d","\u01F3":"dz","\u01C6":"dz","\u24D4":"e","\uFF45":"e","\u00E8":"e","\u00E9":"e","\u00EA":"e","\u1EC1":"e","\u1EBF":"e","\u1EC5":"e","\u1EC3":"e","\u1EBD":"e","\u0113":"e","\u1E15":"e","\u1E17":"e","\u0115":"e","\u0117":"e","\u00EB":"e","\u1EBB":"e","\u011B":"e","\u0205":"e","\u0207":"e","\u1EB9":"e","\u1EC7":"e","\u0229":"e","\u1E1D":"e","\u0119":"e","\u1E19":"e","\u1E1B":"e","\u0247":"e","\u025B":"e","\u01DD":"e","\u24D5":"f","\uFF46":"f","\u1E1F":"f","\u0192":"f","\uA77C":"f","\u24D6":"g","\uFF47":"g","\u01F5":"g","\u011D":"g","\u1E21":"g","\u011F":"g","\u0121":"g","\u01E7":"g","\u0123":"g","\u01E5":"g","\u0260":"g","\uA7A1":"g","\u1D79":"g","\uA77F":"g","\u24D7":"h","\uFF48":"h","\u0125":"h","\u1E23":"h","\u1E27":"h","\u021F":"h","\u1E25":"h","\u1E29":"h","\u1E2B":"h","\u1E96":"h","\u0127":"h","\u2C68":"h","\u2C76":"h","\u0265":"h","\u0195":"hv","\u24D8":"i","\uFF49":"i","\u00EC":"i","\u00ED":"i","\u00EE":"i","\u0129":"i","\u012B":"i","\u012D":"i","\u00EF":"i","\u1E2F":"i","\u1EC9":"i","\u01D0":"i","\u0209":"i","\u020B":"i","\u1ECB":"i","\u012F":"i","\u1E2D":"i","\u0268":"i","\u0131":"i","\u24D9":"j","\uFF4A":"j","\u0135":"j","\u01F0":"j","\u0249":"j","\u24DA":"k","\uFF4B":"k","\u1E31":"k","\u01E9":"k","\u1E33":"k","\u0137":"k","\u1E35":"k","\u0199":"k","\u2C6A":"k","\uA741":"k","\uA743":"k","\uA745":"k","\uA7A3":"k","\u24DB":"l","\uFF4C":"l","\u0140":"l","\u013A":"l","\u013E":"l","\u1E37":"l","\u1E39":"l","\u013C":"l","\u1E3D":"l","\u1E3B":"l","\u017F":"l","\u0142":"l","\u019A":"l","\u026B":"l","\u2C61":"l","\uA749":"l","\uA781":"l","\uA747":"l","\u01C9":"lj","\u24DC":"m","\uFF4D":"m","\u1E3F":"m","\u1E41":"m","\u1E43":"m","\u0271":"m","\u026F":"m","\u24DD":"n","\uFF4E":"n","\u01F9":"n","\u0144":"n","\u00F1":"n","\u1E45":"n","\u0148":"n","\u1E47":"n","\u0146":"n","\u1E4B":"n","\u1E49":"n","\u019E":"n","\u0272":"n","\u0149":"n","\uA791":"n","\uA7A5":"n","\u01CC":"nj","\u24DE":"o","\uFF4F":"o","\u00F2":"o","\u00F3":"o","\u00F4":"o","\u1ED3":"o","\u1ED1":"o","\u1ED7":"o","\u1ED5":"o","\u00F5":"o","\u1E4D":"o","\u022D":"o","\u1E4F":"o","\u014D":"o","\u1E51":"o","\u1E53":"o","\u014F":"o","\u022F":"o","\u0231":"o","\u00F6":"o","\u022B":"o","\u1ECF":"o","\u0151":"o","\u01D2":"o","\u020D":"o","\u020F":"o","\u01A1":"o","\u1EDD":"o","\u1EDB":"o","\u1EE1":"o","\u1EDF":"o","\u1EE3":"o","\u1ECD":"o","\u1ED9":"o","\u01EB":"o","\u01ED":"o","\u00F8":"o","\u01FF":"o","\u0254":"o","\uA74B":"o","\uA74D":"o","\u0275":"o","\u01A3":"oi","\u0223":"ou","\uA74F":"oo","\u24DF":"p","\uFF50":"p","\u1E55":"p","\u1E57":"p","\u01A5":"p","\u1D7D":"p","\uA751":"p","\uA753":"p","\uA755":"p","\u24E0":"q","\uFF51":"q","\u024B":"q","\uA757":"q","\uA759":"q","\u24E1":"r","\uFF52":"r","\u0155":"r","\u1E59":"r","\u0159":"r","\u0211":"r","\u0213":"r","\u1E5B":"r","\u1E5D":"r","\u0157":"r","\u1E5F":"r","\u024D":"r","\u027D":"r","\uA75B":"r","\uA7A7":"r","\uA783":"r","\u24E2":"s","\uFF53":"s","\u00DF":"s","\u015B":"s","\u1E65":"s","\u015D":"s","\u1E61":"s","\u0161":"s","\u1E67":"s","\u1E63":"s","\u1E69":"s","\u0219":"s","\u015F":"s","\u023F":"s","\uA7A9":"s","\uA785":"s","\u1E9B":"s","\u24E3":"t","\uFF54":"t","\u1E6B":"t","\u1E97":"t","\u0165":"t","\u1E6D":"t","\u021B":"t","\u0163":"t","\u1E71":"t","\u1E6F":"t","\u0167":"t","\u01AD":"t","\u0288":"t","\u2C66":"t","\uA787":"t","\uA729":"tz","\u24E4":"u","\uFF55":"u","\u00F9":"u","\u00FA":"u","\u00FB":"u","\u0169":"u","\u1E79":"u","\u016B":"u","\u1E7B":"u","\u016D":"u","\u00FC":"u","\u01DC":"u","\u01D8":"u","\u01D6":"u","\u01DA":"u","\u1EE7":"u","\u016F":"u","\u0171":"u","\u01D4":"u","\u0215":"u","\u0217":"u","\u01B0":"u","\u1EEB":"u","\u1EE9":"u","\u1EEF":"u","\u1EED":"u","\u1EF1":"u","\u1EE5":"u","\u1E73":"u","\u0173":"u","\u1E77":"u","\u1E75":"u","\u0289":"u","\u24E5":"v","\uFF56":"v","\u1E7D":"v","\u1E7F":"v","\u028B":"v","\uA75F":"v","\u028C":"v","\uA761":"vy","\u24E6":"w","\uFF57":"w","\u1E81":"w","\u1E83":"w","\u0175":"w","\u1E87":"w","\u1E85":"w","\u1E98":"w","\u1E89":"w","\u2C73":"w","\u24E7":"x","\uFF58":"x","\u1E8B":"x","\u1E8D":"x","\u24E8":"y","\uFF59":"y","\u1EF3":"y","\u00FD":"y","\u0177":"y","\u1EF9":"y","\u0233":"y","\u1E8F":"y","\u00FF":"y","\u1EF7":"y","\u1E99":"y","\u1EF5":"y","\u01B4":"y","\u024F":"y","\u1EFF":"y","\u24E9":"z","\uFF5A":"z","\u017A":"z","\u1E91":"z","\u017C":"z","\u017E":"z","\u1E93":"z","\u1E95":"z","\u01B6":"z","\u0225":"z","\u0240":"z","\u2C6C":"z","\uA763":"z","\u0386":"\u0391","\u0388":"\u0395","\u0389":"\u0397","\u038A":"\u0399","\u03AA":"\u0399","\u038C":"\u039F","\u038E":"\u03A5","\u03AB":"\u03A5","\u038F":"\u03A9","\u03AC":"\u03B1","\u03AD":"\u03B5","\u03AE":"\u03B7","\u03AF":"\u03B9","\u03CA":"\u03B9","\u0390":"\u03B9","\u03CC":"\u03BF","\u03CD":"\u03C5","\u03CB":"\u03C5","\u03B0":"\u03C5","\u03C9":"\u03C9","\u03C2":"\u03C3"};$document=$(document);nextUid=(function(){var counter=1;return function(){return counter++;};}());function reinsertElement(element){var placeholder=$(document.createTextNode(''));element.before(placeholder);placeholder.before(element);placeholder.remove();}
function stripDiacritics(str){function match(a){return DIACRITICS[a]||a;}
return str.replace(/[^\u0000-\u007E]/g,match);}
function indexOf(value,array){var i=0,l=array.length;for(;i<l;i=i+1){if(equal(value,array[i]))return i;}
return-1;}
function measureScrollbar(){var $template=$(MEASURE_SCROLLBAR_TEMPLATE);$template.appendTo(document.body);var dim={width:$template.width()-$template[0].clientWidth,height:$template.height()-$template[0].clientHeight};$template.remove();return dim;}
function equal(a,b){if(a===b)return true;if(a===undefined||b===undefined)return false;if(a===null||b===null)return false;if(a.constructor===String)return a+''===b+'';if(b.constructor===String)return b+''===a+'';return false;}
function splitVal(string,separator,transform){var val,i,l;if(string===null||string.length<1)return[];val=string.split(separator);for(i=0,l=val.length;i<l;i=i+1)val[i]=transform(val[i]);return val;}
function getSideBorderPadding(element){return element.outerWidth(false)-element.width();}
function installKeyUpChangeEvent(element){var key="keyup-change-value";element.on("keydown",function(){if($.data(element,key)===undefined){$.data(element,key,element.val());}});element.on("keyup",function(){var val=$.data(element,key);if(val!==undefined&&element.val()!==val){$.removeData(element,key);element.trigger("keyup-change");}});}
function installFilteredMouseMove(element){element.on("mousemove",function(e){var lastpos=lastMousePosition;if(lastpos===undefined||lastpos.x!==e.pageX||lastpos.y!==e.pageY){$(e.target).trigger("mousemove-filtered",e);}});}
function debounce(quietMillis,fn,ctx){ctx=ctx||undefined;var timeout;return function(){var args=arguments;window.clearTimeout(timeout);timeout=window.setTimeout(function(){fn.apply(ctx,args);},quietMillis);};}
function installDebouncedScroll(threshold,element){var notify=debounce(threshold,function(e){element.trigger("scroll-debounced",e);});element.on("scroll",function(e){if(indexOf(e.target,element.get())>=0)notify(e);});}
function focus($el){if($el[0]===document.activeElement)return;window.setTimeout(function(){var el=$el[0],pos=$el.val().length,range;$el.focus();var isVisible=(el.offsetWidth>0||el.offsetHeight>0);if(isVisible&&el===document.activeElement){if(el.setSelectionRange)
{el.setSelectionRange(pos,pos);}
else if(el.createTextRange){range=el.createTextRange();range.collapse(false);range.select();}}},0);}
function getCursorInfo(el){el=$(el)[0];var offset=0;var length=0;if('selectionStart'in el){offset=el.selectionStart;length=el.selectionEnd-offset;}else if('selection'in document){el.focus();var sel=document.selection.createRange();length=document.selection.createRange().text.length;sel.moveStart('character',-el.value.length);offset=sel.text.length-length;}
return{offset:offset,length:length};}
function killEvent(event){event.preventDefault();event.stopPropagation();}
function killEventImmediately(event){event.preventDefault();event.stopImmediatePropagation();}
function measureTextWidth(e){if(!sizer){var style=e[0].currentStyle||window.getComputedStyle(e[0],null);sizer=$(document.createElement("div")).css({position:"absolute",left:"-10000px",top:"-10000px",display:"none",fontSize:style.fontSize,fontFamily:style.fontFamily,fontStyle:style.fontStyle,fontWeight:style.fontWeight,letterSpacing:style.letterSpacing,textTransform:style.textTransform,whiteSpace:"nowrap"});sizer.attr("class","select2-sizer");$(document.body).append(sizer);}
sizer.text(e.val());return sizer.width();}
function syncCssClasses(dest,src,adapter){var classes,replacements=[],adapted;classes=$.trim(dest.attr("class"));if(classes){classes=''+classes;$(classes.split(/\s+/)).each2(function(){if(this.indexOf("select2-")===0){replacements.push(this);}});}
classes=$.trim(src.attr("class"));if(classes){classes=''+classes;$(classes.split(/\s+/)).each2(function(){if(this.indexOf("select2-")!==0){adapted=adapter(this);if(adapted){replacements.push(adapted);}}});}
dest.attr("class",replacements.join(" "));}
function markMatch(text,term,markup,escapeMarkup){var match=stripDiacritics(text.toUpperCase()).indexOf(stripDiacritics(term.toUpperCase())),tl=term.length;if(match<0){markup.push(escapeMarkup(text));return;}
markup.push(escapeMarkup(text.substring(0,match)));markup.push("<span class='select2-match'>");markup.push(escapeMarkup(text.substring(match,match+tl)));markup.push("</span>");markup.push(escapeMarkup(text.substring(match+tl,text.length)));}
function defaultEscapeMarkup(markup){var replace_map={'\\':'&#92;','&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;',"/":'&#47;'};return String(markup).replace(/[&<>"'\/\\]/g,function(match){return replace_map[match];});}
function ajax(options){var timeout,handler=null,quietMillis=options.quietMillis||100,ajaxUrl=options.url,self=this;return function(query){window.clearTimeout(timeout);timeout=window.setTimeout(function(){var data=options.data,url=ajaxUrl,transport=options.transport||$.fn.select2.ajaxDefaults.transport,deprecated={type:options.type||'GET',cache:options.cache||false,jsonpCallback:options.jsonpCallback||undefined,dataType:options.dataType||"json"},params=$.extend({},$.fn.select2.ajaxDefaults.params,deprecated);data=data?data.call(self,query.term,query.page,query.context):null;url=(typeof url==='function')?url.call(self,query.term,query.page,query.context):url;if(handler&&typeof handler.abort==="function"){handler.abort();}
if(options.params){if($.isFunction(options.params)){$.extend(params,options.params.call(self));}else{$.extend(params,options.params);}}
$.extend(params,{url:url,dataType:options.dataType,data:data,success:function(data){var results=options.results(data,query.page,query);query.callback(results);},error:function(jqXHR,textStatus,errorThrown){var results={hasError:true,jqXHR:jqXHR,textStatus:textStatus,errorThrown:errorThrown};query.callback(results);}});handler=transport.call(self,params);},quietMillis);};}
function local(options){var data=options,dataText,tmp,text=function(item){return""+item.text;};if($.isArray(data)){tmp=data;data={results:tmp};}
if($.isFunction(data)===false){tmp=data;data=function(){return tmp;};}
var dataItem=data();if(dataItem.text){text=dataItem.text;if(!$.isFunction(text)){dataText=dataItem.text;text=function(item){return item[dataText];};}}
return function(query){var t=query.term,filtered={results:[]},process;if(t===""){query.callback(data());return;}
process=function(datum,collection){var group,attr;datum=datum[0];if(datum.children){group={};for(attr in datum){if(datum.hasOwnProperty(attr))group[attr]=datum[attr];}
group.children=[];$(datum.children).each2(function(i,childDatum){process(childDatum,group.children);});if(group.children.length||query.matcher(t,text(group),datum)){collection.push(group);}}else{if(query.matcher(t,text(datum),datum)){collection.push(datum);}}};$(data().results).each2(function(i,datum){process(datum,filtered.results);});query.callback(filtered);};}
function tags(data){var isFunc=$.isFunction(data);return function(query){var t=query.term,filtered={results:[]};var result=isFunc?data(query):data;if($.isArray(result)){$(result).each(function(){var isObject=this.text!==undefined,text=isObject?this.text:this;if(t===""||query.matcher(t,text)){filtered.results.push(isObject?this:{id:this,text:this});}});query.callback(filtered);}};}
function checkFormatter(formatter,formatterName){if($.isFunction(formatter))return true;if(!formatter)return false;if(typeof(formatter)==='string')return true;throw new Error(formatterName+" must be a string, function, or falsy value");}
function evaluate(val,context){if($.isFunction(val)){var args=Array.prototype.slice.call(arguments,2);return val.apply(context,args);}
return val;}
function countResults(results){var count=0;$.each(results,function(i,item){if(item.children){count+=countResults(item.children);}else{count++;}});return count;}
function defaultTokenizer(input,selection,selectCallback,opts){var original=input,dupe=false,token,index,i,l,separator;if(!opts.createSearchChoice||!opts.tokenSeparators||opts.tokenSeparators.length<1)return undefined;while(true){index=-1;for(i=0,l=opts.tokenSeparators.length;i<l;i++){separator=opts.tokenSeparators[i];index=input.indexOf(separator);if(index>=0)break;}
if(index<0)break;token=input.substring(0,index);input=input.substring(index+separator.length);if(token.length>0){token=opts.createSearchChoice.call(this,token,selection);if(token!==undefined&&token!==null&&opts.id(token)!==undefined&&opts.id(token)!==null){dupe=false;for(i=0,l=selection.length;i<l;i++){if(equal(opts.id(token),opts.id(selection[i]))){dupe=true;break;}}
if(!dupe)selectCallback(token);}}}
if(original!==input)return input;}
function cleanupJQueryElements(){var self=this;$.each(arguments,function(i,element){self[element].remove();self[element]=null;});}
function clazz(SuperClass,methods){var constructor=function(){};constructor.prototype=new SuperClass;constructor.prototype.constructor=constructor;constructor.prototype.parent=SuperClass.prototype;constructor.prototype=$.extend(constructor.prototype,methods);return constructor;}
AbstractSelect2=clazz(Object,{bind:function(func){var self=this;return function(){func.apply(self,arguments);};},init:function(opts){var results,search,resultsSelector=".select2-results";this.opts=opts=this.prepareOpts(opts);this.id=opts.id;if(opts.element.data("select2")!==undefined&&opts.element.data("select2")!==null){opts.element.data("select2").destroy();}
this.container=this.createContainer();this.liveRegion=$('.select2-hidden-accessible');if(this.liveRegion.length==0){this.liveRegion=$("<span>",{role:"status","aria-live":"polite"}).addClass("select2-hidden-accessible").appendTo(document.body);}
this.containerId="s2id_"+(opts.element.attr("id")||"autogen"+nextUid());this.containerEventName=this.containerId.replace(/([.])/g,'_').replace(/([;&,\-\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,'\\$1');this.container.attr("id",this.containerId);this.container.attr("title",opts.element.attr("title"));this.body=$(document.body);syncCssClasses(this.container,this.opts.element,this.opts.adaptContainerCssClass);this.container.attr("style",opts.element.attr("style"));this.container.css(evaluate(opts.containerCss,this.opts.element));this.container.addClass(evaluate(opts.containerCssClass,this.opts.element));this.elementTabIndex=this.opts.element.attr("tabindex");this.opts.element.data("select2",this).attr("tabindex","-1").before(this.container).on("click.select2",killEvent);this.container.data("select2",this);this.dropdown=this.container.find(".select2-drop");syncCssClasses(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass);this.dropdown.addClass(evaluate(opts.dropdownCssClass,this.opts.element));this.dropdown.data("select2",this);this.dropdown.on("click",killEvent);this.results=results=this.container.find(resultsSelector);this.search=search=this.container.find("input.select2-input");this.queryCount=0;this.resultsPage=0;this.context=null;this.initContainer();this.container.on("click",killEvent);installFilteredMouseMove(this.results);this.dropdown.on("mousemove-filtered",resultsSelector,this.bind(this.highlightUnderEvent));this.dropdown.on("touchstart touchmove touchend",resultsSelector,this.bind(function(event){this._touchEvent=true;this.highlightUnderEvent(event);}));this.dropdown.on("touchmove",resultsSelector,this.bind(this.touchMoved));this.dropdown.on("touchstart touchend",resultsSelector,this.bind(this.clearTouchMoved));this.dropdown.on('click',this.bind(function(event){if(this._touchEvent){this._touchEvent=false;this.selectHighlighted();}}));installDebouncedScroll(80,this.results);this.dropdown.on("scroll-debounced",resultsSelector,this.bind(this.loadMoreIfNeeded));$(this.container).on("change",".select2-input",function(e){e.stopPropagation();});$(this.dropdown).on("change",".select2-input",function(e){e.stopPropagation();});if($.fn.mousewheel){results.mousewheel(function(e,delta,deltaX,deltaY){var top=results.scrollTop();if(deltaY>0&&top-deltaY<=0){results.scrollTop(0);killEvent(e);}else if(deltaY<0&&results.get(0).scrollHeight-results.scrollTop()+deltaY<=results.height()){results.scrollTop(results.get(0).scrollHeight-results.height());killEvent(e);}});}
installKeyUpChangeEvent(search);search.on("keyup-change input paste",this.bind(this.updateResults));search.on("focus",function(){search.addClass("select2-focused");});search.on("blur",function(){search.removeClass("select2-focused");});this.dropdown.on("mouseup",resultsSelector,this.bind(function(e){if($(e.target).closest(".select2-result-selectable").length>0){this.highlightUnderEvent(e);this.selectHighlighted(e);}}));this.dropdown.on("click mouseup mousedown touchstart touchend focusin",function(e){e.stopPropagation();});this.lastSearchTerm=undefined;if($.isFunction(this.opts.initSelection)){this.initSelection();this.monitorSource();}
if(opts.maximumInputLength!==null){this.search.attr("maxlength",opts.maximumInputLength);}
var disabled=opts.element.prop("disabled");if(disabled===undefined)disabled=false;this.enable(!disabled);var readonly=opts.element.prop("readonly");if(readonly===undefined)readonly=false;this.readonly(readonly);scrollBarDimensions=scrollBarDimensions||measureScrollbar();this.autofocus=opts.element.prop("autofocus");opts.element.prop("autofocus",false);if(this.autofocus)this.focus();this.search.attr("placeholder",opts.searchInputPlaceholder);},destroy:function(){var element=this.opts.element,select2=element.data("select2"),self=this;this.close();if(element.length&&element[0].detachEvent&&self._sync){element.each(function(){if(self._sync){this.detachEvent("onpropertychange",self._sync);}});}
if(this.propertyObserver){this.propertyObserver.disconnect();this.propertyObserver=null;}
this._sync=null;if(select2!==undefined){select2.container.remove();select2.liveRegion.remove();select2.dropdown.remove();element.removeData("select2").off(".select2");if(!element.is("input[type='hidden']")){element.show().prop("autofocus",this.autofocus||false);if(this.elementTabIndex){element.attr({tabindex:this.elementTabIndex});}else{element.removeAttr("tabindex");}
element.show();}else{element.css("display","");}}
cleanupJQueryElements.call(this,"container","liveRegion","dropdown","results","search");},optionToData:function(element){if(element.is("option")){return{id:element.prop("value"),text:element.text(),element:element.get(),css:element.attr("class"),disabled:element.prop("disabled"),locked:equal(element.attr("locked"),"locked")||equal(element.data("locked"),true)};}else if(element.is("optgroup")){return{text:element.attr("label"),children:[],element:element.get(),css:element.attr("class")};}},prepareOpts:function(opts){var element,select,idKey,ajaxUrl,self=this;element=opts.element;if(element.get(0).tagName.toLowerCase()==="select"){this.select=select=opts.element;}
if(select){$.each(["id","multiple","ajax","query","createSearchChoice","initSelection","data","tags"],function(){if(this in opts){throw new Error("Option '"+this+"' is not allowed for Select2 when attached to a <select> element.");}});}
opts.debug=opts.debug||$.fn.select2.defaults.debug;if(opts.debug&&console&&console.warn){if(opts.id!=null){console.warn('Select2: The `id` option has been removed in Select2 4.0.0, '+'consider renaming your `id` property or mapping the property before your data makes it to Select2. '+'You can read more at https://select2.github.io/announcements-4.0.html#changed-id');}
if(opts.text!=null){console.warn('Select2: The `text` option has been removed in Select2 4.0.0, '+'consider renaming your `text` property or mapping the property before your data makes it to Select2. '+'You can read more at https://select2.github.io/announcements-4.0.html#changed-id');}
if(opts.sortResults!=null){console.warn('Select2: the `sortResults` option has been renamed to `sorter` in Select2 4.0.0. ');}
if(opts.selectOnBlur!=null){console.warn('Select2: The `selectOnBlur` option has been renamed to `selectOnClose` in Select2 4.0.0.');}
if(opts.ajax!=null&&opts.ajax.results!=null){console.warn('Select2: The `ajax.results` option has been renamed to `ajax.processResults` in Select2 4.0.0.');}
if(opts.formatNoResults!=null){console.warn('Select2: The `formatNoResults` option has been renamed to `language.noResults` in Select2 4.0.0.');}
if(opts.formatSearching!=null){console.warn('Select2: The `formatSearching` option has been renamed to `language.searching` in Select2 4.0.0.');}
if(opts.formatInputTooShort!=null){console.warn('Select2: The `formatInputTooShort` option has been renamed to `language.inputTooShort` in Select2 4.0.0.');}
if(opts.formatInputTooLong!=null){console.warn('Select2: The `formatInputTooLong` option has been renamed to `language.inputTooLong` in Select2 4.0.0.');}
if(opts.formatLoading!=null){console.warn('Select2: The `formatLoading` option has been renamed to `language.loadingMore` in Select2 4.0.0.');}
if(opts.formatSelectionTooBig!=null){console.warn('Select2: The `formatSelectionTooBig` option has been renamed to `language.maximumSelected` in Select2 4.0.0.');}
if(opts.element.data('select2Tags')){console.warn('Select2: The `data-select2-tags` attribute has been renamed to `data-tags` in Select2 4.0.0.');}}
if(opts.element.data('tags')!=null){var elemTags=opts.element.data('tags');if(!$.isArray(elemTags)){elemTags=[];}
opts.element.data('select2Tags',elemTags);}
if(opts.sorter!=null){opts.sortResults=opts.sorter;}
if(opts.selectOnClose!=null){opts.selectOnBlur=opts.selectOnClose;}
if(opts.ajax!=null){if($.isFunction(opts.ajax.processResults)){opts.ajax.results=opts.ajax.processResults;}}
if(opts.language!=null){var lang=opts.language;if($.isFunction(lang.noMatches)){opts.formatNoMatches=lang.noMatches;}
if($.isFunction(lang.searching)){opts.formatSearching=lang.searching;}
if($.isFunction(lang.inputTooShort)){opts.formatInputTooShort=lang.inputTooShort;}
if($.isFunction(lang.inputTooLong)){opts.formatInputTooLong=lang.inputTooLong;}
if($.isFunction(lang.loadingMore)){opts.formatLoading=lang.loadingMore;}
if($.isFunction(lang.maximumSelected)){opts.formatSelectionTooBig=lang.maximumSelected;}}
opts=$.extend({},{populateResults:function(container,results,query){var populate,id=this.opts.id,liveRegion=this.liveRegion;populate=function(results,container,depth){var i,l,result,selectable,disabled,compound,node,label,innerContainer,formatted;results=opts.sortResults(results,container,query);var nodes=[];for(i=0,l=results.length;i<l;i=i+1){result=results[i];disabled=(result.disabled===true);selectable=(!disabled)&&(id(result)!==undefined);compound=result.children&&result.children.length>0;node=$("<li></li>");node.addClass("select2-results-dept-"+depth);node.addClass("select2-result");node.addClass(selectable?"select2-result-selectable":"select2-result-unselectable");if(disabled){node.addClass("select2-disabled");}
if(compound){node.addClass("select2-result-with-children");}
node.addClass(self.opts.formatResultCssClass(result));node.attr("role","presentation");label=$(document.createElement("div"));label.addClass("select2-result-label");label.attr("id","select2-result-label-"+nextUid());label.attr("role","option");formatted=opts.formatResult(result,label,query,self.opts.escapeMarkup);if(formatted!==undefined){label.html(formatted);node.append(label);}
if(compound){innerContainer=$("<ul></ul>");innerContainer.addClass("select2-result-sub");populate(result.children,innerContainer,depth+1);node.append(innerContainer);}
node.data("select2-data",result);nodes.push(node[0]);}
container.append(nodes);liveRegion.text(opts.formatMatches(results.length));};populate(results,container,0);}},$.fn.select2.defaults,opts);if(typeof(opts.id)!=="function"){idKey=opts.id;opts.id=function(e){return e[idKey];};}
if($.isArray(opts.element.data("select2Tags"))){if("tags"in opts){throw"tags specified as both an attribute 'data-select2-tags' and in options of Select2 "+opts.element.attr("id");}
opts.tags=opts.element.data("select2Tags");}
if(select){opts.query=this.bind(function(query){var data={results:[],more:false},term=query.term,children,placeholderOption,process;process=function(element,collection){var group;if(element.is("option")){if(query.matcher(term,element.text(),element)){collection.push(self.optionToData(element));}}else if(element.is("optgroup")){group=self.optionToData(element);element.children().each2(function(i,elm){process(elm,group.children);});if(group.children.length>0){collection.push(group);}}};children=element.children();if(this.getPlaceholder()!==undefined&&children.length>0){placeholderOption=this.getPlaceholderOption();if(placeholderOption){children=children.not(placeholderOption);}}
children.each2(function(i,elm){process(elm,data.results);});query.callback(data);});opts.id=function(e){return e.id;};}else{if(!("query"in opts)){if("ajax"in opts){ajaxUrl=opts.element.data("ajax-url");if(ajaxUrl&&ajaxUrl.length>0){opts.ajax.url=ajaxUrl;}
opts.query=ajax.call(opts.element,opts.ajax);}else if("data"in opts){opts.query=local(opts.data);}else if("tags"in opts){opts.query=tags(opts.tags);if(opts.createSearchChoice===undefined){opts.createSearchChoice=function(term){return{id:$.trim(term),text:$.trim(term)};};}
if(opts.initSelection===undefined){opts.initSelection=function(element,callback){var data=[];$(splitVal(element.val(),opts.separator,opts.transformVal)).each(function(){var obj={id:this,text:this},tags=opts.tags;if($.isFunction(tags))tags=tags();$(tags).each(function(){if(equal(this.id,obj.id)){obj=this;return false;}});data.push(obj);});callback(data);};}}}}
if(typeof(opts.query)!=="function"){throw"query function not defined for Select2 "+opts.element.attr("id");}
if(opts.createSearchChoicePosition==='top'){opts.createSearchChoicePosition=function(list,item){list.unshift(item);};}
else if(opts.createSearchChoicePosition==='bottom'){opts.createSearchChoicePosition=function(list,item){list.push(item);};}
else if(typeof(opts.createSearchChoicePosition)!=="function"){throw"invalid createSearchChoicePosition option must be 'top', 'bottom' or a custom function";}
return opts;},monitorSource:function(){var el=this.opts.element,observer,self=this;el.on("change.select2",this.bind(function(e){if(this.opts.element.data("select2-change-triggered")!==true){this.initSelection();}}));this._sync=this.bind(function(){var disabled=el.prop("disabled");if(disabled===undefined)disabled=false;this.enable(!disabled);var readonly=el.prop("readonly");if(readonly===undefined)readonly=false;this.readonly(readonly);if(this.container){syncCssClasses(this.container,this.opts.element,this.opts.adaptContainerCssClass);this.container.addClass(evaluate(this.opts.containerCssClass,this.opts.element));}
if(this.dropdown){syncCssClasses(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass);this.dropdown.addClass(evaluate(this.opts.dropdownCssClass,this.opts.element));}});if(el.length&&el[0].attachEvent){el.each(function(){this.attachEvent("onpropertychange",self._sync);});}
observer=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(observer!==undefined){if(this.propertyObserver){delete this.propertyObserver;this.propertyObserver=null;}
this.propertyObserver=new observer(function(mutations){$.each(mutations,self._sync);});this.propertyObserver.observe(el.get(0),{attributes:true,subtree:false});}},triggerSelect:function(data){var evt=$.Event("select2-selecting",{val:this.id(data),object:data,choice:data});this.opts.element.trigger(evt);return!evt.isDefaultPrevented();},triggerChange:function(details){details=details||{};details=$.extend({},details,{type:"change",val:this.val()});this.opts.element.data("select2-change-triggered",true);this.opts.element.trigger(details);this.opts.element.data("select2-change-triggered",false);this.opts.element.click();if(this.opts.blurOnChange)
this.opts.element.blur();},isInterfaceEnabled:function()
{return this.enabledInterface===true;},enableInterface:function(){var enabled=this._enabled&&!this._readonly,disabled=!enabled;if(enabled===this.enabledInterface)return false;this.container.toggleClass("select2-container-disabled",disabled);this.close();this.enabledInterface=enabled;return true;},enable:function(enabled){if(enabled===undefined)enabled=true;if(this._enabled===enabled)return;this._enabled=enabled;this.opts.element.prop("disabled",!enabled);this.enableInterface();},disable:function(){this.enable(false);},readonly:function(enabled){if(enabled===undefined)enabled=false;if(this._readonly===enabled)return;this._readonly=enabled;this.opts.element.prop("readonly",enabled);this.enableInterface();},opened:function(){return(this.container)?this.container.hasClass("select2-dropdown-open"):false;},positionDropdown:function(){var $dropdown=this.dropdown,container=this.container,offset=container.offset(),height=container.outerHeight(false),width=container.outerWidth(false),dropHeight=$dropdown.outerHeight(false),$window=$(window),windowWidth=$window.width(),windowHeight=$window.height(),viewPortRight=$window.scrollLeft()+windowWidth,viewportBottom=$window.scrollTop()+windowHeight,dropTop=offset.top+height,dropLeft=offset.left,enoughRoomBelow=dropTop+dropHeight<=viewportBottom,enoughRoomAbove=(offset.top-dropHeight)>=$window.scrollTop(),dropWidth=$dropdown.outerWidth(false),enoughRoomOnRight=function(){return dropLeft+dropWidth<=viewPortRight;},enoughRoomOnLeft=function(){return offset.left+viewPortRight+container.outerWidth(false)>dropWidth;},aboveNow=$dropdown.hasClass("select2-drop-above"),bodyOffset,above,changeDirection,css,resultsListNode;if(aboveNow){above=true;if(!enoughRoomAbove&&enoughRoomBelow){changeDirection=true;above=false;}}else{above=false;if(!enoughRoomBelow&&enoughRoomAbove){changeDirection=true;above=true;}}
if(changeDirection){$dropdown.hide();offset=this.container.offset();height=this.container.outerHeight(false);width=this.container.outerWidth(false);dropHeight=$dropdown.outerHeight(false);viewPortRight=$window.scrollLeft()+windowWidth;viewportBottom=$window.scrollTop()+windowHeight;dropTop=offset.top+height;dropLeft=offset.left;dropWidth=$dropdown.outerWidth(false);$dropdown.show();this.focusSearch();}
if(this.opts.dropdownAutoWidth){resultsListNode=$('.select2-results',$dropdown)[0];$dropdown.addClass('select2-drop-auto-width');$dropdown.css('width','');dropWidth=$dropdown.outerWidth(false)+(resultsListNode.scrollHeight===resultsListNode.clientHeight?0:scrollBarDimensions.width);dropWidth>width?width=dropWidth:dropWidth=width;dropHeight=$dropdown.outerHeight(false);}
else{this.container.removeClass('select2-drop-auto-width');}
if(this.body.css('position')!=='static'){bodyOffset=this.body.offset();dropTop-=bodyOffset.top;dropLeft-=bodyOffset.left;}
if(!enoughRoomOnRight()&&enoughRoomOnLeft()){dropLeft=offset.left+this.container.outerWidth(false)-dropWidth;}
css={left:dropLeft,width:width};if(above){this.container.addClass("select2-drop-above");$dropdown.addClass("select2-drop-above");dropHeight=$dropdown.outerHeight(false);css.top=offset.top-dropHeight;css.bottom='auto';}
else{css.top=dropTop;css.bottom='auto';this.container.removeClass("select2-drop-above");$dropdown.removeClass("select2-drop-above");}
css=$.extend(css,evaluate(this.opts.dropdownCss,this.opts.element));$dropdown.css(css);},shouldOpen:function(){var event;if(this.opened())return false;if(this._enabled===false||this._readonly===true)return false;event=$.Event("select2-opening");this.opts.element.trigger(event);return!event.isDefaultPrevented();},clearDropdownAlignmentPreference:function(){this.container.removeClass("select2-drop-above");this.dropdown.removeClass("select2-drop-above");},open:function(){if(!this.shouldOpen())return false;this.opening();$document.on("mousemove.select2Event",function(e){lastMousePosition.x=e.pageX;lastMousePosition.y=e.pageY;});return true;},opening:function(){var cid=this.containerEventName,scroll="scroll."+cid,resize="resize."+cid,orient="orientationchange."+cid,mask;this.container.addClass("select2-dropdown-open").addClass("select2-container-active");this.clearDropdownAlignmentPreference();if(this.dropdown[0]!==this.body.children().last()[0]){this.dropdown.detach().appendTo(this.body);}
mask=$("#select2-drop-mask");if(mask.length===0){mask=$(document.createElement("div"));mask.attr("id","select2-drop-mask").attr("class","select2-drop-mask");mask.hide();mask.appendTo(this.body);mask.on("mousedown touchstart click",function(e){reinsertElement(mask);var dropdown=$("#select2-drop"),self;if(dropdown.length>0){self=dropdown.data("select2");if(self.opts.selectOnBlur){self.selectHighlighted({noFocus:true});}
self.close();e.preventDefault();e.stopPropagation();}});}
if(this.dropdown.prev()[0]!==mask[0]){this.dropdown.before(mask);}
$("#select2-drop").removeAttr("id");this.dropdown.attr("id","select2-drop");mask.show();this.positionDropdown();this.dropdown.show();this.positionDropdown();this.dropdown.addClass("select2-drop-active");var that=this;this.container.parents().add(window).each(function(){$(this).on(resize+" "+scroll+" "+orient,function(e){if(that.opened())that.positionDropdown();});});},close:function(){if(!this.opened())return;var cid=this.containerEventName,scroll="scroll."+cid,resize="resize."+cid,orient="orientationchange."+cid;this.container.parents().add(window).each(function(){$(this).off(scroll).off(resize).off(orient);});this.clearDropdownAlignmentPreference();$("#select2-drop-mask").hide();this.dropdown.removeAttr("id");this.dropdown.hide();this.container.removeClass("select2-dropdown-open").removeClass("select2-container-active");this.results.empty();$document.off("mousemove.select2Event");this.clearSearch();this.search.removeClass("select2-active");this.search.removeAttr("aria-activedescendant");this.opts.element.trigger($.Event("select2-close"));},externalSearch:function(term){this.open();this.search.val(term);this.updateResults(false);},clearSearch:function(){},prefillNextSearchTerm:function(){if(this.search.val()!==""){return false;}
var nextSearchTerm=this.opts.nextSearchTerm(this.data(),this.lastSearchTerm);if(nextSearchTerm!==undefined){this.search.val(nextSearchTerm);this.search.select();return true;}
return false;},getMaximumSelectionSize:function(){return evaluate(this.opts.maximumSelectionSize,this.opts.element);},ensureHighlightVisible:function(){var results=this.results,children,index,child,hb,rb,y,more,topOffset;index=this.highlight();if(index<0)return;if(index==0){results.scrollTop(0);return;}
children=this.findHighlightableChoices().find('.select2-result-label');child=$(children[index]);topOffset=(child.offset()||{}).top||0;hb=topOffset+child.outerHeight(true);if(index===children.length-1){more=results.find("li.select2-more-results");if(more.length>0){hb=more.offset().top+more.outerHeight(true);}}
rb=results.offset().top+results.outerHeight(false);if(hb>rb){results.scrollTop(results.scrollTop()+(hb-rb));}
y=topOffset-results.offset().top;if(y<0&&child.css('display')!='none'){results.scrollTop(results.scrollTop()+y);}},findHighlightableChoices:function(){return this.results.find(".select2-result-selectable:not(.select2-disabled):not(.select2-selected)");},moveHighlight:function(delta){var choices=this.findHighlightableChoices(),index=this.highlight();while(index>-1&&index<choices.length){index+=delta;var choice=$(choices[index]);if(choice.hasClass("select2-result-selectable")&&!choice.hasClass("select2-disabled")&&!choice.hasClass("select2-selected")){this.highlight(index);break;}}},highlight:function(index){var choices=this.findHighlightableChoices(),choice,data;if(arguments.length===0){return indexOf(choices.filter(".select2-highlighted")[0],choices.get());}
if(index>=choices.length)index=choices.length-1;if(index<0)index=0;this.removeHighlight();choice=$(choices[index]);choice.addClass("select2-highlighted");this.search.attr("aria-activedescendant",choice.find(".select2-result-label").attr("id"));this.ensureHighlightVisible();this.liveRegion.text(choice.text());data=choice.data("select2-data");if(data){this.opts.element.trigger({type:"select2-highlight",val:this.id(data),choice:data});}},removeHighlight:function(){this.results.find(".select2-highlighted").removeClass("select2-highlighted");},touchMoved:function(){this._touchMoved=true;},clearTouchMoved:function(){this._touchMoved=false;},countSelectableResults:function(){return this.findHighlightableChoices().length;},highlightUnderEvent:function(event){var el=$(event.target).closest(".select2-result-selectable");if(el.length>0&&!el.is(".select2-highlighted")){var choices=this.findHighlightableChoices();this.highlight(choices.index(el));}else if(el.length==0){this.removeHighlight();}},loadMoreIfNeeded:function(){var results=this.results,more=results.find("li.select2-more-results"),below,page=this.resultsPage+1,self=this,term=this.search.val(),context=this.context;if(more.length===0)return;below=more.offset().top-results.offset().top-results.height();if(below<=this.opts.loadMorePadding){more.addClass("select2-active");this.opts.query({element:this.opts.element,term:term,page:page,context:context,matcher:this.opts.matcher,callback:this.bind(function(data){if(!self.opened())return;self.opts.populateResults.call(this,results,data.results,{term:term,page:page,context:context});self.postprocessResults(data,false,false);if(data.more===true){more.detach().appendTo(results).html(self.opts.escapeMarkup(evaluate(self.opts.formatLoadMore,self.opts.element,page+1)));window.setTimeout(function(){self.loadMoreIfNeeded();},10);}else{more.remove();}
self.positionDropdown();self.resultsPage=page;self.context=data.context;this.opts.element.trigger({type:"select2-loaded",items:data});})});}},tokenize:function(){},updateResults:function(initial){var search=this.search,results=this.results,opts=this.opts,data,self=this,input,term=search.val(),lastTerm=$.data(this.container,"select2-last-term"),queryNumber;if(initial!==true&&lastTerm&&equal(term,lastTerm))return;$.data(this.container,"select2-last-term",term);if(initial!==true&&(this.showSearchInput===false||!this.opened())){return;}
function postRender(){search.removeClass("select2-active");self.positionDropdown();if(results.find('.select2-no-results,.select2-selection-limit,.select2-searching').length){self.liveRegion.text(results.text());}
else{self.liveRegion.text(self.opts.formatMatches(results.find('.select2-result-selectable:not(".select2-selected")').length));}}
function render(html){results.html(html);postRender();}
queryNumber=++this.queryCount;var maxSelSize=this.getMaximumSelectionSize();if(maxSelSize>=1){data=this.data();if($.isArray(data)&&data.length>=maxSelSize&&checkFormatter(opts.formatSelectionTooBig,"formatSelectionTooBig")){render("<li class='select2-selection-limit'>"+evaluate(opts.formatSelectionTooBig,opts.element,maxSelSize)+"</li>");return;}}
if(search.val().length<opts.minimumInputLength){if(checkFormatter(opts.formatInputTooShort,"formatInputTooShort")){render("<li class='select2-no-results'>"+evaluate(opts.formatInputTooShort,opts.element,search.val(),opts.minimumInputLength)+"</li>");}else{render("");}
if(initial&&this.showSearch)this.showSearch(true);return;}
if(opts.maximumInputLength&&search.val().length>opts.maximumInputLength){if(checkFormatter(opts.formatInputTooLong,"formatInputTooLong")){render("<li class='select2-no-results'>"+evaluate(opts.formatInputTooLong,opts.element,search.val(),opts.maximumInputLength)+"</li>");}else{render("");}
return;}
if(opts.formatSearching&&this.findHighlightableChoices().length===0){render("<li class='select2-searching'>"+evaluate(opts.formatSearching,opts.element)+"</li>");}
search.addClass("select2-active");this.removeHighlight();input=this.tokenize();if(input!=undefined&&input!=null){search.val(input);}
this.resultsPage=1;opts.query({element:opts.element,term:search.val(),page:this.resultsPage,context:null,matcher:opts.matcher,callback:this.bind(function(data){var def;if(queryNumber!=this.queryCount){return;}
if(!this.opened()){this.search.removeClass("select2-active");return;}
if(data.hasError!==undefined&&checkFormatter(opts.formatAjaxError,"formatAjaxError")){render("<li class='select2-ajax-error'>"+evaluate(opts.formatAjaxError,opts.element,data.jqXHR,data.textStatus,data.errorThrown)+"</li>");return;}
this.context=(data.context===undefined)?null:data.context;if(this.opts.createSearchChoice&&search.val()!==""){def=this.opts.createSearchChoice.call(self,search.val(),data.results);if(def!==undefined&&def!==null&&self.id(def)!==undefined&&self.id(def)!==null){if($(data.results).filter(function(){return equal(self.id(this),self.id(def));}).length===0){this.opts.createSearchChoicePosition(data.results,def);}}}
if(data.results.length===0&&checkFormatter(opts.formatNoMatches,"formatNoMatches")){render("<li class='select2-no-results'>"+evaluate(opts.formatNoMatches,opts.element,search.val())+"</li>");if(this.showSearch){this.showSearch(search.val());}
return;}
results.empty();self.opts.populateResults.call(this,results,data.results,{term:search.val(),page:this.resultsPage,context:null});if(data.more===true&&checkFormatter(opts.formatLoadMore,"formatLoadMore")){results.append("<li class='select2-more-results'>"+opts.escapeMarkup(evaluate(opts.formatLoadMore,opts.element,this.resultsPage))+"</li>");window.setTimeout(function(){self.loadMoreIfNeeded();},10);}
this.postprocessResults(data,initial);postRender();this.opts.element.trigger({type:"select2-loaded",items:data});})});},cancel:function(){this.close();},blur:function(){if(this.opts.selectOnBlur)
this.selectHighlighted({noFocus:true});this.close();this.container.removeClass("select2-container-active");if(this.search[0]===document.activeElement){this.search.blur();}
this.clearSearch();this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");},focusSearch:function(){focus(this.search);},selectHighlighted:function(options){if(this._touchMoved){this.clearTouchMoved();return;}
var index=this.highlight(),highlighted=this.results.find(".select2-highlighted"),data=highlighted.closest('.select2-result').data("select2-data");if(data){this.highlight(index);this.onSelect(data,options);}else if(options&&options.noFocus){this.close();}},getPlaceholder:function(){var placeholderOption;return this.opts.element.attr("placeholder")||this.opts.element.attr("data-placeholder")||this.opts.element.data("placeholder")||this.opts.placeholder||((placeholderOption=this.getPlaceholderOption())!==undefined?placeholderOption.text():undefined);},getPlaceholderOption:function(){if(this.select){var firstOption=this.select.children('option').first();if(this.opts.placeholderOption!==undefined){return(this.opts.placeholderOption==="first"&&firstOption)||(typeof this.opts.placeholderOption==="function"&&this.opts.placeholderOption(this.select));}else if($.trim(firstOption.text())===""&&firstOption.val()===""){return firstOption;}}},initContainerWidth:function(){function resolveContainerWidth(){var style,attrs,matches,i,l,attr;if(this.opts.width==="off"){return null;}else if(this.opts.width==="element"){return this.opts.element.outerWidth(false)===0?'auto':this.opts.element.outerWidth(false)+'px';}else if(this.opts.width==="copy"||this.opts.width==="resolve"){style=this.opts.element.attr('style');if(typeof(style)==="string"){attrs=style.split(';');for(i=0,l=attrs.length;i<l;i=i+1){attr=attrs[i].replace(/\s/g,'');matches=attr.match(/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i);if(matches!==null&&matches.length>=1)
return matches[1];}}
if(this.opts.width==="resolve"){style=this.opts.element.css('width');if(style.indexOf("%")>0)return style;return(this.opts.element.outerWidth(false)===0?'auto':this.opts.element.outerWidth(false)+'px');}
return null;}else if($.isFunction(this.opts.width)){return this.opts.width();}else{return this.opts.width;}};var width=resolveContainerWidth.call(this);if(width!==null){this.container.css("width",width);}}});SingleSelect2=clazz(AbstractSelect2,{createContainer:function(){var container=$(document.createElement("div")).attr({"class":"select2-container"}).html(["<a href='javascript:void(0)' class='select2-choice' tabindex='-1'>","   <span class='select2-chosen'>&#160;</span><abbr class='select2-search-choice-close'></abbr>","   <span class='select2-arrow' role='presentation'><b role='presentation'></b></span>","</a>","<label for='' class='select2-offscreen'></label>","<input class='select2-focusser select2-offscreen' type='text' aria-haspopup='true' role='button' />","<div class='select2-drop select2-display-none'>","   <div class='select2-search'>","       <label for='' class='select2-offscreen'></label>","       <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input' role='combobox' aria-expanded='true'","       aria-autocomplete='list' />","   </div>","   <ul class='select2-results' role='listbox'>","   </ul>","</div>"].join(""));return container;},enableInterface:function(){if(this.parent.enableInterface.apply(this,arguments)){this.focusser.prop("disabled",!this.isInterfaceEnabled());}},opening:function(){var el,range,len;if(this.opts.minimumResultsForSearch>=0){this.showSearch(true);}
this.parent.opening.apply(this,arguments);if(this.showSearchInput!==false){this.search.val(this.focusser.val());}
if(this.opts.shouldFocusInput(this)){this.search.focus();el=this.search.get(0);if(el.createTextRange){range=el.createTextRange();range.collapse(false);range.select();}else if(el.setSelectionRange){len=this.search.val().length;el.setSelectionRange(len,len);}}
this.prefillNextSearchTerm();this.focusser.prop("disabled",true).val("");this.updateResults(true);this.opts.element.trigger($.Event("select2-open"));},close:function(){if(!this.opened())return;this.parent.close.apply(this,arguments);this.focusser.prop("disabled",false);if(this.opts.shouldFocusInput(this)){this.focusser.focus();}},focus:function(){if(this.opened()){this.close();}else{this.focusser.prop("disabled",false);if(this.opts.shouldFocusInput(this)){this.focusser.focus();}}},isFocused:function(){return this.container.hasClass("select2-container-active");},cancel:function(){this.parent.cancel.apply(this,arguments);this.focusser.prop("disabled",false);if(this.opts.shouldFocusInput(this)){this.focusser.focus();}},destroy:function(){$("label[for='"+this.focusser.attr('id')+"']").attr('for',this.opts.element.attr("id"));this.parent.destroy.apply(this,arguments);cleanupJQueryElements.call(this,"selection","focusser");},initContainer:function(){var selection,container=this.container,dropdown=this.dropdown,idSuffix=nextUid(),elementLabel;if(this.opts.minimumResultsForSearch<0){this.showSearch(false);}else{this.showSearch(true);}
this.selection=selection=container.find(".select2-choice");this.focusser=container.find(".select2-focusser");selection.find(".select2-chosen").attr("id","select2-chosen-"+idSuffix);this.focusser.attr("aria-labelledby","select2-chosen-"+idSuffix);this.results.attr("id","select2-results-"+idSuffix);this.search.attr("aria-owns","select2-results-"+idSuffix);this.focusser.attr("id","s2id_autogen"+idSuffix);elementLabel=$("label[for='"+this.opts.element.attr("id")+"']");this.opts.element.on('focus.select2',this.bind(function(){this.focus();}));this.focusser.prev().text(elementLabel.text()).attr('for',this.focusser.attr('id'));var originalTitle=this.opts.element.attr("title");this.opts.element.attr("title",(originalTitle||elementLabel.text()));this.focusser.attr("tabindex",this.elementTabIndex);this.search.attr("id",this.focusser.attr('id')+'_search');this.search.prev().text($("label[for='"+this.focusser.attr('id')+"']").text()).attr('for',this.search.attr('id'));this.search.on("keydown",this.bind(function(e){if(!this.isInterfaceEnabled())return;if(229==e.keyCode)return;if(e.which===KEY.PAGE_UP||e.which===KEY.PAGE_DOWN){killEvent(e);return;}
switch(e.which){case KEY.UP:case KEY.DOWN:this.moveHighlight((e.which===KEY.UP)?-1:1);killEvent(e);return;case KEY.ENTER:this.selectHighlighted();killEvent(e);return;case KEY.TAB:this.selectHighlighted({noFocus:true});return;case KEY.ESC:this.cancel(e);killEvent(e);return;}}));this.search.on("blur",this.bind(function(e){if(document.activeElement===this.body.get(0)){window.setTimeout(this.bind(function(){if(this.opened()&&this.results&&this.results.length>1){this.search.focus();}}),0);}}));this.focusser.on("keydown",this.bind(function(e){if(!this.isInterfaceEnabled())return;if(e.which===KEY.TAB||KEY.isControl(e)||KEY.isFunctionKey(e)||e.which===KEY.ESC){return;}
if(this.opts.openOnEnter===false&&e.which===KEY.ENTER){killEvent(e);return;}
if(e.which==KEY.DOWN||e.which==KEY.UP||(e.which==KEY.ENTER&&this.opts.openOnEnter)){if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey)return;this.open();killEvent(e);return;}
if(e.which==KEY.DELETE||e.which==KEY.BACKSPACE){if(this.opts.allowClear){this.clear();}
killEvent(e);return;}}));installKeyUpChangeEvent(this.focusser);this.focusser.on("keyup-change input",this.bind(function(e){if(this.opts.minimumResultsForSearch>=0){e.stopPropagation();if(this.opened())return;this.open();}}));selection.on("mousedown touchstart","abbr",this.bind(function(e){if(!this.isInterfaceEnabled()){return;}
this.clear();killEventImmediately(e);this.close();if(this.selection){this.selection.focus();}}));selection.on("mousedown touchstart",this.bind(function(e){reinsertElement(selection);if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger($.Event("select2-focus"));}
if(this.opened()){this.close();}else if(this.isInterfaceEnabled()){this.open();}
killEvent(e);}));dropdown.on("mousedown touchstart",this.bind(function(){if(this.opts.shouldFocusInput(this)){this.search.focus();}}));selection.on("focus",this.bind(function(e){killEvent(e);}));this.focusser.on("focus",this.bind(function(){if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger($.Event("select2-focus"));}
this.container.addClass("select2-container-active");})).on("blur",this.bind(function(){if(!this.opened()){this.container.removeClass("select2-container-active");this.opts.element.trigger($.Event("select2-blur"));}}));this.search.on("focus",this.bind(function(){if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger($.Event("select2-focus"));}
this.container.addClass("select2-container-active");}));this.initContainerWidth();this.opts.element.hide();this.setPlaceholder();},clear:function(triggerChange){var data=this.selection.data("select2-data");if(data){var evt=$.Event("select2-clearing");this.opts.element.trigger(evt);if(evt.isDefaultPrevented()){return;}
var placeholderOption=this.getPlaceholderOption();this.opts.element.val(placeholderOption?placeholderOption.val():"");this.selection.find(".select2-chosen").empty();this.selection.removeData("select2-data");this.setPlaceholder();if(triggerChange!==false){this.opts.element.trigger({type:"select2-removed",val:this.id(data),choice:data});this.triggerChange({removed:data});}}},initSelection:function(){var selected;if(this.isPlaceholderOptionSelected()){this.updateSelection(null);this.close();this.setPlaceholder();}else{var self=this;this.opts.initSelection.call(null,this.opts.element,function(selected){if(selected!==undefined&&selected!==null){self.updateSelection(selected);self.close();self.setPlaceholder();self.lastSearchTerm=self.search.val();}});}},isPlaceholderOptionSelected:function(){var placeholderOption;if(this.getPlaceholder()===undefined)return false;return((placeholderOption=this.getPlaceholderOption())!==undefined&&placeholderOption.prop("selected"))||(this.opts.element.val()==="")||(this.opts.element.val()===undefined)||(this.opts.element.val()===null);},prepareOpts:function(){var opts=this.parent.prepareOpts.apply(this,arguments),self=this;if(opts.element.get(0).tagName.toLowerCase()==="select"){opts.initSelection=function(element,callback){var selected=element.find("option").filter(function(){return this.selected&&!this.disabled});callback(self.optionToData(selected));};}else if("data"in opts){opts.initSelection=opts.initSelection||function(element,callback){var id=element.val();var match=null;opts.query({matcher:function(term,text,el){var is_match=equal(id,opts.id(el));if(is_match){match=el;}
return is_match;},callback:!$.isFunction(callback)?$.noop:function(){callback(match);}});};}
return opts;},getPlaceholder:function(){if(this.select){if(this.getPlaceholderOption()===undefined){return undefined;}}
return this.parent.getPlaceholder.apply(this,arguments);},setPlaceholder:function(){var placeholder=this.getPlaceholder();if(this.isPlaceholderOptionSelected()&&placeholder!==undefined){if(this.select&&this.getPlaceholderOption()===undefined)return;this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(placeholder));this.selection.addClass("select2-default");this.container.removeClass("select2-allowclear");}},postprocessResults:function(data,initial,noHighlightUpdate){var selected=0,self=this,showSearchInput=true;this.findHighlightableChoices().each2(function(i,elm){if(equal(self.id(elm.data("select2-data")),self.opts.element.val())){selected=i;return false;}});if(noHighlightUpdate!==false){if(initial===true&&selected>=0){this.highlight(selected);}else{this.highlight(0);}}
if(initial===true){var min=this.opts.minimumResultsForSearch;if(min>=0){this.showSearch(countResults(data.results)>=min);}}},showSearch:function(showSearchInput){if(this.showSearchInput===showSearchInput)return;this.showSearchInput=showSearchInput;this.dropdown.find(".select2-search").toggleClass("select2-search-hidden",!showSearchInput);this.dropdown.find(".select2-search").toggleClass("select2-offscreen",!showSearchInput);$(this.dropdown,this.container).toggleClass("select2-with-searchbox",showSearchInput);},onSelect:function(data,options){if(!this.triggerSelect(data)){return;}
var old=this.opts.element.val(),oldData=this.data();this.opts.element.val(this.id(data));this.updateSelection(data);this.opts.element.trigger({type:"select2-selected",val:this.id(data),choice:data});this.lastSearchTerm=this.search.val();this.close();if((!options||!options.noFocus)&&this.opts.shouldFocusInput(this)){this.focusser.focus();}
if(!equal(old,this.id(data))){this.triggerChange({added:data,removed:oldData});}},updateSelection:function(data){var container=this.selection.find(".select2-chosen"),formatted,cssClass;this.selection.data("select2-data",data);container.empty();if(data!==null){formatted=this.opts.formatSelection(data,container,this.opts.escapeMarkup);}
if(formatted!==undefined){container.append(formatted);}
cssClass=this.opts.formatSelectionCssClass(data,container);if(cssClass!==undefined){container.addClass(cssClass);}
this.selection.removeClass("select2-default");if(this.opts.allowClear&&this.getPlaceholder()!==undefined){this.container.addClass("select2-allowclear");}},val:function(){var val,triggerChange=false,data=null,self=this,oldData=this.data();if(arguments.length===0){return this.opts.element.val();}
val=arguments[0];if(arguments.length>1){triggerChange=arguments[1];if(this.opts.debug&&console&&console.warn){console.warn('Select2: The second option to `select2("val")` is not supported in Select2 4.0.0. '+'The `change` event will always be triggered in 4.0.0.');}}
if(this.select){if(this.opts.debug&&console&&console.warn){console.warn('Select2: Setting the value on a <select> using `select2("val")` is no longer supported in 4.0.0. '+'You can use the `.val(newValue).trigger("change")` method provided by jQuery instead.');}
this.select.val(val).find("option").filter(function(){return this.selected}).each2(function(i,elm){data=self.optionToData(elm);return false;});this.updateSelection(data);this.setPlaceholder();if(triggerChange){this.triggerChange({added:data,removed:oldData});}}else{if(!val&&val!==0){this.clear(triggerChange);return;}
if(this.opts.initSelection===undefined){throw new Error("cannot call val() if initSelection() is not defined");}
this.opts.element.val(val);this.opts.initSelection(this.opts.element,function(data){self.opts.element.val(!data?"":self.id(data));self.updateSelection(data);self.setPlaceholder();if(triggerChange){self.triggerChange({added:data,removed:oldData});}});}},clearSearch:function(){this.search.val("");this.focusser.val("");},data:function(value){var data,triggerChange=false;if(arguments.length===0){data=this.selection.data("select2-data");if(data==undefined)data=null;return data;}else{if(this.opts.debug&&console&&console.warn){console.warn('Select2: The `select2("data")` method can no longer set selected values in 4.0.0, '+'consider using the `.val()` method instead.');}
if(arguments.length>1){triggerChange=arguments[1];}
if(!value){this.clear(triggerChange);}else{data=this.data();this.opts.element.val(!value?"":this.id(value));this.updateSelection(value);if(triggerChange){this.triggerChange({added:value,removed:data});}}}}});MultiSelect2=clazz(AbstractSelect2,{createContainer:function(){var container=$(document.createElement("div")).attr({"class":"select2-container select2-container-multi"}).html(["<ul class='select2-choices'>","  <li class='select2-search-field'>","    <label for='' class='select2-offscreen'></label>","    <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'>","  </li>","</ul>","<div class='select2-drop select2-drop-multi select2-display-none'>","   <ul class='select2-results'>","   </ul>","</div>"].join(""));return container;},prepareOpts:function(){var opts=this.parent.prepareOpts.apply(this,arguments),self=this;if(opts.element.get(0).tagName.toLowerCase()==="select"){opts.initSelection=function(element,callback){var data=[];element.find("option").filter(function(){return this.selected&&!this.disabled}).each2(function(i,elm){data.push(self.optionToData(elm));});callback(data);};}else if("data"in opts){opts.initSelection=opts.initSelection||function(element,callback){var ids=splitVal(element.val(),opts.separator,opts.transformVal);var matches=[];opts.query({matcher:function(term,text,el){var is_match=$.grep(ids,function(id){return equal(id,opts.id(el));}).length;if(is_match){matches.push(el);}
return is_match;},callback:!$.isFunction(callback)?$.noop:function(){var ordered=[];for(var i=0;i<ids.length;i++){var id=ids[i];for(var j=0;j<matches.length;j++){var match=matches[j];if(equal(id,opts.id(match))){ordered.push(match);matches.splice(j,1);break;}}}
callback(ordered);}});};}
return opts;},selectChoice:function(choice){var selected=this.container.find(".select2-search-choice-focus");if(selected.length&&choice&&choice[0]==selected[0]){}else{if(selected.length){this.opts.element.trigger("choice-deselected",selected);}
selected.removeClass("select2-search-choice-focus");if(choice&&choice.length){this.close();choice.addClass("select2-search-choice-focus");this.opts.element.trigger("choice-selected",choice);}}},destroy:function(){$("label[for='"+this.search.attr('id')+"']").attr('for',this.opts.element.attr("id"));this.parent.destroy.apply(this,arguments);cleanupJQueryElements.call(this,"searchContainer","selection");},initContainer:function(){var selector=".select2-choices",selection;this.searchContainer=this.container.find(".select2-search-field");this.selection=selection=this.container.find(selector);var _this=this;this.selection.on("click",".select2-container:not(.select2-container-disabled) .select2-search-choice:not(.select2-locked)",function(e){_this.search[0].focus();_this.selectChoice($(this));});this.search.attr("id","s2id_autogen"+nextUid());this.search.prev().text($("label[for='"+this.opts.element.attr("id")+"']").text()).attr('for',this.search.attr('id'));this.opts.element.on('focus.select2',this.bind(function(){this.focus();}));this.search.on("input paste",this.bind(function(){if(this.search.attr('placeholder')&&this.search.val().length==0)return;if(!this.isInterfaceEnabled())return;if(!this.opened()){this.open();}}));this.search.attr("tabindex",this.elementTabIndex);this.keydowns=0;this.search.on("keydown",this.bind(function(e){if(!this.isInterfaceEnabled())return;++this.keydowns;var selected=selection.find(".select2-search-choice-focus");var prev=selected.prev(".select2-search-choice:not(.select2-locked)");var next=selected.next(".select2-search-choice:not(.select2-locked)");var pos=getCursorInfo(this.search);if(selected.length&&(e.which==KEY.LEFT||e.which==KEY.RIGHT||e.which==KEY.BACKSPACE||e.which==KEY.DELETE||e.which==KEY.ENTER)){var selectedChoice=selected;if(e.which==KEY.LEFT&&prev.length){selectedChoice=prev;}
else if(e.which==KEY.RIGHT){selectedChoice=next.length?next:null;}
else if(e.which===KEY.BACKSPACE){if(this.unselect(selected.first())){this.search.width(10);selectedChoice=prev.length?prev:next;}}else if(e.which==KEY.DELETE){if(this.unselect(selected.first())){this.search.width(10);selectedChoice=next.length?next:null;}}else if(e.which==KEY.ENTER){selectedChoice=null;}
this.selectChoice(selectedChoice);killEvent(e);if(!selectedChoice||!selectedChoice.length){this.open();}
return;}else if(((e.which===KEY.BACKSPACE&&this.keydowns==1)||e.which==KEY.LEFT)&&(pos.offset==0&&!pos.length)){this.selectChoice(selection.find(".select2-search-choice:not(.select2-locked)").last());killEvent(e);return;}else{this.selectChoice(null);}
if(this.opened()){switch(e.which){case KEY.UP:case KEY.DOWN:this.moveHighlight((e.which===KEY.UP)?-1:1);killEvent(e);return;case KEY.ENTER:this.selectHighlighted();killEvent(e);return;case KEY.TAB:this.selectHighlighted({noFocus:true});this.close();return;case KEY.ESC:this.cancel(e);killEvent(e);return;}}
if(e.which===KEY.TAB||KEY.isControl(e)||KEY.isFunctionKey(e)||e.which===KEY.BACKSPACE||e.which===KEY.ESC){return;}
if(e.which===KEY.ENTER){if(this.opts.openOnEnter===false){return;}else if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return;}}
this.open();if(e.which===KEY.PAGE_UP||e.which===KEY.PAGE_DOWN){killEvent(e);}
if(e.which===KEY.ENTER){killEvent(e);}}));this.search.on("keyup",this.bind(function(e){this.keydowns=0;this.resizeSearch();}));this.search.on("blur",this.bind(function(e){this.container.removeClass("select2-container-active");this.search.removeClass("select2-focused");this.selectChoice(null);if(!this.opened())this.clearSearch();e.stopImmediatePropagation();this.opts.element.trigger($.Event("select2-blur"));}));this.container.on("click",selector,this.bind(function(e){if(!this.isInterfaceEnabled())return;if($(e.target).closest(".select2-search-choice").length>0){return;}
this.selectChoice(null);this.clearPlaceholder();if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger($.Event("select2-focus"));}
this.open();this.focusSearch();e.preventDefault();}));this.container.on("focus",selector,this.bind(function(){if(!this.isInterfaceEnabled())return;if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger($.Event("select2-focus"));}
this.container.addClass("select2-container-active");this.dropdown.addClass("select2-drop-active");this.clearPlaceholder();}));this.initContainerWidth();this.opts.element.hide();this.clearSearch();},enableInterface:function(){if(this.parent.enableInterface.apply(this,arguments)){this.search.prop("disabled",!this.isInterfaceEnabled());}},initSelection:function(){var data;if(this.opts.element.val()===""&&this.opts.element.text()===""){this.updateSelection([]);this.close();this.clearSearch();}
if(this.select||this.opts.element.val()!==""){var self=this;this.opts.initSelection.call(null,this.opts.element,function(data){if(data!==undefined&&data!==null){self.updateSelection(data);self.close();self.clearSearch();}});}},clearSearch:function(){var placeholder=this.getPlaceholder(),maxWidth=this.getMaxSearchWidth();if(placeholder!==undefined&&this.getVal().length===0&&this.search.hasClass("select2-focused")===false){this.search.val(placeholder).addClass("select2-default");this.search.width(maxWidth>0?maxWidth:this.container.css("width"));}else{this.search.val("").width(10);}},clearPlaceholder:function(){if(this.search.hasClass("select2-default")){this.search.val("").removeClass("select2-default");}},opening:function(){this.clearPlaceholder();this.resizeSearch();this.parent.opening.apply(this,arguments);this.focusSearch();this.prefillNextSearchTerm();this.updateResults(true);if(this.opts.shouldFocusInput(this)){this.search.focus();}
this.opts.element.trigger($.Event("select2-open"));},close:function(){if(!this.opened())return;this.parent.close.apply(this,arguments);},focus:function(){this.close();this.search.focus();},isFocused:function(){return this.search.hasClass("select2-focused");},updateSelection:function(data){var ids={},filtered=[],self=this;$(data).each(function(){if(!(self.id(this)in ids)){ids[self.id(this)]=0;filtered.push(this);}});this.selection.find(".select2-search-choice").remove();this.addSelectedChoice(filtered);self.postprocessResults();},tokenize:function(){var input=this.search.val();input=this.opts.tokenizer.call(this,input,this.data(),this.bind(this.onSelect),this.opts);if(input!=null&&input!=undefined){this.search.val(input);if(input.length>0){this.open();}}},onSelect:function(data,options){if(!this.triggerSelect(data)||data.text===""){return;}
this.addSelectedChoice(data);this.opts.element.trigger({type:"selected",val:this.id(data),choice:data});this.lastSearchTerm=this.search.val();this.clearSearch();this.updateResults();if(this.select||!this.opts.closeOnSelect)this.postprocessResults(data,false,this.opts.closeOnSelect===true);if(this.opts.closeOnSelect){this.close();this.search.width(10);}else{if(this.countSelectableResults()>0){this.search.width(10);this.resizeSearch();if(this.getMaximumSelectionSize()>0&&this.val().length>=this.getMaximumSelectionSize()){this.updateResults(true);}else{if(this.prefillNextSearchTerm()){this.updateResults();}}
this.positionDropdown();}else{this.close();this.search.width(10);}}
this.triggerChange({added:data});if(!options||!options.noFocus)
this.focusSearch();},cancel:function(){this.close();this.focusSearch();},addSelectedChoice:function(data){var val=this.getVal(),self=this;$(data).each(function(){val.push(self.createChoice(this));});this.setVal(val);},createChoice:function(data){var enableChoice=!data.locked,enabledItem=$("<li class='select2-search-choice'>"+"    <div></div>"+"    <a href='#' class='select2-search-choice-close' tabindex='-1'></a>"+"</li>"),disabledItem=$("<li class='select2-search-choice select2-locked'>"+"<div></div>"+"</li>");var choice=enableChoice?enabledItem:disabledItem,id=this.id(data),formatted,cssClass;formatted=this.opts.formatSelection(data,choice.find("div"),this.opts.escapeMarkup);if(formatted!=undefined){choice.find("div").replaceWith($("<div></div>").html(formatted));}
cssClass=this.opts.formatSelectionCssClass(data,choice.find("div"));if(cssClass!=undefined){choice.addClass(cssClass);}
if(enableChoice){choice.find(".select2-search-choice-close").on("mousedown",killEvent).on("click dblclick",this.bind(function(e){if(!this.isInterfaceEnabled())return;this.unselect($(e.target));this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");killEvent(e);this.close();this.focusSearch();})).on("focus",this.bind(function(){if(!this.isInterfaceEnabled())return;this.container.addClass("select2-container-active");this.dropdown.addClass("select2-drop-active");}));}
choice.data("select2-data",data);choice.insertBefore(this.searchContainer);return id;},unselect:function(selected){var val=this.getVal(),data,index;selected=selected.closest(".select2-search-choice");if(selected.length===0){throw"Invalid argument: "+selected+". Must be .select2-search-choice";}
data=selected.data("select2-data");if(!data){return;}
var evt=$.Event("select2-removing");evt.val=this.id(data);evt.choice=data;this.opts.element.trigger(evt);if(evt.isDefaultPrevented()){return false;}
while((index=indexOf(this.id(data),val))>=0){val.splice(index,1);this.setVal(val);if(this.select)this.postprocessResults();}
selected.remove();this.opts.element.trigger({type:"select2-removed",val:this.id(data),choice:data});this.triggerChange({removed:data});return true;},postprocessResults:function(data,initial,noHighlightUpdate){var val=this.getVal(),choices=this.results.find(".select2-result"),compound=this.results.find(".select2-result-with-children"),self=this;choices.each2(function(i,choice){var id=self.id(choice.data("select2-data"));if(indexOf(id,val)>=0){choice.addClass("select2-selected");choice.find(".select2-result-selectable").addClass("select2-selected");}});compound.each2(function(i,choice){if(!choice.is('.select2-result-selectable')&&choice.find(".select2-result-selectable:not(.select2-selected)").length===0){choice.addClass("select2-selected");}});if(this.highlight()==-1&&noHighlightUpdate!==false&&this.opts.closeOnSelect===true){self.highlight(0);}
if(!this.opts.createSearchChoice&&!choices.filter('.select2-result:not(.select2-selected)').length>0){if(!data||data&&!data.more&&this.results.find(".select2-no-results").length===0){if(checkFormatter(self.opts.formatNoMatches,"formatNoMatches")){this.results.append("<li class='select2-no-results'>"+evaluate(self.opts.formatNoMatches,self.opts.element,self.search.val())+"</li>");}}}},getMaxSearchWidth:function(){return this.selection.width()-getSideBorderPadding(this.search);},resizeSearch:function(){var minimumWidth,left,maxWidth,containerLeft,searchWidth,sideBorderPadding=getSideBorderPadding(this.search);minimumWidth=measureTextWidth(this.search)+10;left=this.search.offset().left;maxWidth=this.selection.width();containerLeft=this.selection.offset().left;searchWidth=maxWidth-(left-containerLeft)-sideBorderPadding;if(searchWidth<minimumWidth){searchWidth=maxWidth-sideBorderPadding;}
if(searchWidth<40){searchWidth=maxWidth-sideBorderPadding;}
if(searchWidth<=0){searchWidth=minimumWidth;}
this.search.width(Math.floor(searchWidth));},getVal:function(){var val;if(this.select){val=this.select.val();return val===null?[]:val;}else{val=this.opts.element.val();return splitVal(val,this.opts.separator,this.opts.transformVal);}},setVal:function(val){if(this.select){this.select.val(val);}else{var unique=[],valMap={};$(val).each(function(){if(!(this in valMap)){unique.push(this);valMap[this]=0;}});this.opts.element.val(unique.length===0?"":unique.join(this.opts.separator));}},buildChangeDetails:function(old,current){var current=current.slice(0),old=old.slice(0);for(var i=0;i<current.length;i++){for(var j=0;j<old.length;j++){if(equal(this.opts.id(current[i]),this.opts.id(old[j]))){current.splice(i,1);i--;old.splice(j,1);break;}}}
return{added:current,removed:old};},val:function(val,triggerChange){var oldData,self=this;if(arguments.length===0){return this.getVal();}
oldData=this.data();if(!oldData.length)oldData=[];if(!val&&val!==0){this.opts.element.val("");this.updateSelection([]);this.clearSearch();if(triggerChange){this.triggerChange({added:this.data(),removed:oldData});}
return;}
this.setVal(val);if(this.select){this.opts.initSelection(this.select,this.bind(this.updateSelection));if(triggerChange){this.triggerChange(this.buildChangeDetails(oldData,this.data()));}}else{if(this.opts.initSelection===undefined){throw new Error("val() cannot be called if initSelection() is not defined");}
this.opts.initSelection(this.opts.element,function(data){var ids=$.map(data,self.id);self.setVal(ids);self.updateSelection(data);self.clearSearch();if(triggerChange){self.triggerChange(self.buildChangeDetails(oldData,self.data()));}});}
this.clearSearch();},onSortStart:function(){if(this.select){throw new Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.");}
this.search.width(0);this.searchContainer.hide();},onSortEnd:function(){var val=[],self=this;this.searchContainer.show();this.searchContainer.appendTo(this.searchContainer.parent());this.resizeSearch();this.selection.find(".select2-search-choice").each(function(){val.push(self.opts.id($(this).data("select2-data")));});this.setVal(val);this.triggerChange();},data:function(values,triggerChange){var self=this,ids,old;if(arguments.length===0){return this.selection.children(".select2-search-choice").map(function(){return $(this).data("select2-data");}).get();}else{old=this.data();if(!values){values=[];}
ids=$.map(values,function(e){return self.opts.id(e);});this.setVal(ids);this.updateSelection(values);this.clearSearch();if(triggerChange){this.triggerChange(this.buildChangeDetails(old,this.data()));}}}});$.fn.select2=function(){var args=Array.prototype.slice.call(arguments,0),opts,select2,method,value,multiple,allowedMethods=["val","destroy","opened","open","close","focus","isFocused","container","dropdown","onSortStart","onSortEnd","enable","disable","readonly","positionDropdown","data","search"],valueMethods=["opened","isFocused","container","dropdown"],propertyMethods=["val","data"],methodsMap={search:"externalSearch"};this.each(function(){if(args.length===0||typeof(args[0])==="object"){opts=args.length===0?{}:$.extend({},args[0]);opts.element=$(this);if(opts.element.get(0).tagName.toLowerCase()==="select"){multiple=opts.element.prop("multiple");}else{multiple=opts.multiple||false;if("tags"in opts){opts.multiple=multiple=true;}}
select2=multiple?new window.Select2["class"].multi():new window.Select2["class"].single();select2.init(opts);}else if(typeof(args[0])==="string"){if(indexOf(args[0],allowedMethods)<0){throw"Unknown method: "+args[0];}
value=undefined;select2=$(this).data("select2");if(select2===undefined)return;method=args[0];if(method==="container"){value=select2.container;}else if(method==="dropdown"){value=select2.dropdown;}else{if(methodsMap[method])method=methodsMap[method];value=select2[method].apply(select2,args.slice(1));}
if(indexOf(args[0],valueMethods)>=0||(indexOf(args[0],propertyMethods)>=0&&args.length==1)){return false;}}else{throw"Invalid arguments to select2 plugin: "+args;}});return(value===undefined)?this:value;};$.fn.select2.defaults={debug:false,width:"copy",loadMorePadding:0,closeOnSelect:true,openOnEnter:true,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(result,container,query,escapeMarkup){var markup=[];markMatch(this.text(result),query.term,markup,escapeMarkup);return markup.join("");},transformVal:function(val){return $.trim(val);},formatSelection:function(data,container,escapeMarkup){return data?escapeMarkup(this.text(data)):undefined;},sortResults:function(results,container,query){return results;},formatResultCssClass:function(data){return data.css;},formatSelectionCssClass:function(data,container){return undefined;},minimumResultsForSearch:0,minimumInputLength:0,maximumInputLength:null,maximumSelectionSize:0,id:function(e){return e==undefined?null:e.id;},text:function(e){if(e&&this.data&&this.data.text){if($.isFunction(this.data.text)){return this.data.text(e);}else{return e[this.data.text];}}else{return e.text;}},matcher:function(term,text){return stripDiacritics(''+text).toUpperCase().indexOf(stripDiacritics(''+term).toUpperCase())>=0;},separator:",",tokenSeparators:[],tokenizer:defaultTokenizer,escapeMarkup:defaultEscapeMarkup,blurOnChange:false,selectOnBlur:false,adaptContainerCssClass:function(c){return c;},adaptDropdownCssClass:function(c){return null;},nextSearchTerm:function(selectedObject,currentSearchTerm){return undefined;},searchInputPlaceholder:'',createSearchChoicePosition:'top',shouldFocusInput:function(instance){var supportsTouchEvents=(('ontouchstart'in window)||(navigator.msMaxTouchPoints>0));if(!supportsTouchEvents){return true;}
if(instance.opts.minimumResultsForSearch<0){return false;}
return true;}};$.fn.select2.locales=[];$.fn.select2.locales['en']={formatMatches:function(matches){if(matches===1){return"One result is available, press enter to select it.";}return matches+" results are available, use up and down arrow keys to navigate.";},formatNoMatches:function(){return"No matches found";},formatAjaxError:function(jqXHR,textStatus,errorThrown){return"Loading failed";},formatInputTooShort:function(input,min){var n=min-input.length;return"Please enter "+n+" or more character"+(n==1?"":"s");},formatInputTooLong:function(input,max){var n=input.length-max;return"Please delete "+n+" character"+(n==1?"":"s");},formatSelectionTooBig:function(limit){return"You can only select "+limit+" item"+(limit==1?"":"s");},formatLoadMore:function(pageNumber){return"Loading more results…";},formatSearching:function(){return"Searching…";}};$.extend($.fn.select2.defaults,$.fn.select2.locales['en']);$.fn.select2.ajaxDefaults={transport:$.ajax,params:{type:"GET",cache:false,dataType:"json"}};window.Select2={query:{ajax:ajax,local:local,tags:tags},util:{debounce:debounce,markMatch:markMatch,escapeMarkup:defaultEscapeMarkup,stripDiacritics:stripDiacritics},"class":{"abstract":AbstractSelect2,"single":SingleSelect2,"multi":MultiSelect2}};}(jQuery));;

/* /web/static/src/legacy/js/libs/bootstrap.js */
odoo.define('@web/legacy/js/libs/bootstrap',[],function(require){'use strict';let __exports={};let bsSanitizeAllowList=Tooltip.Default.allowList;bsSanitizeAllowList['*'].push('title','style',/^data-[\w-]+/);bsSanitizeAllowList.header=[];bsSanitizeAllowList.main=[];bsSanitizeAllowList.footer=[];bsSanitizeAllowList.caption=[];bsSanitizeAllowList.col=['span'];bsSanitizeAllowList.colgroup=['span'];bsSanitizeAllowList.table=[];bsSanitizeAllowList.thead=[];bsSanitizeAllowList.tbody=[];bsSanitizeAllowList.tfooter=[];bsSanitizeAllowList.tr=[];bsSanitizeAllowList.th=['colspan','rowspan'];bsSanitizeAllowList.td=['colspan','rowspan'];bsSanitizeAllowList.address=[];bsSanitizeAllowList.article=[];bsSanitizeAllowList.aside=[];bsSanitizeAllowList.blockquote=[];bsSanitizeAllowList.section=[];bsSanitizeAllowList.button=['type'];bsSanitizeAllowList.del=[];__exports.makeExtendedSanitizeWhiteList=makeExtendedSanitizeWhiteList;function makeExtendedSanitizeWhiteList(extensions){let allowList=Object.assign({},Tooltip.Default.allowList);Object.keys(extensions).forEach(key=>{allowList[key]=(allowList[key]||[]).concat(extensions[key]);});return allowList;}
Tooltip.Default.placement='auto';Tooltip.Default.fallbackPlacement=['bottom','right','left','top'];Tooltip.Default.html=true;Tooltip.Default.trigger='hover';Tooltip.Default.container='body';Tooltip.Default.boundary='window';Tooltip.Default.delay={show:1000,hide:0};const bootstrapShowFunction=Tooltip.prototype.show;Tooltip.prototype.show=function(){$('.tooltip').remove();const errorsToIgnore=["Please use show on visible elements"];try{return bootstrapShowFunction.call(this);}catch(error){if(errorsToIgnore.includes(error.message)){return 0;}
throw error;}};const bootstrapSetElementContent=Tooltip.prototype.setElementContent;Tooltip.prototype.setElementContent=function(element,content){if(content&&content.jquery&&content.length){const $rootElement=$('<div/>');$rootElement.append(content);content=$rootElement[0];}
return bootstrapSetElementContent.call(this,element,content);};const bootstrapSpyRefreshFunction=ScrollSpy.prototype.refresh;ScrollSpy.prototype.refresh=function(){bootstrapSpyRefreshFunction.apply(this,arguments);if(this._scrollElement===window||this._config.method!=='offset'){return;}
const baseScrollTop=this._getScrollTop();for(let i=0;i<this._offsets.length;i++){this._offsets[i]+=baseScrollTop;}};const bootstrapSpyProcessFunction=ScrollSpy.prototype._process;ScrollSpy.prototype._process=function(){bootstrapSpyProcessFunction.apply(this,arguments);if(this._activeTarget===null&&this._config.alwaysKeepFirstActive){this._activate(this._targets[0]);}};const bootstrapSpyActivateFunction=ScrollSpy.prototype._activate;ScrollSpy.prototype._activate=function(target){const element=document.querySelector(`[href="${target}"]`);if(!element||$(element).is(':hidden')){return;}
bootstrapSpyActivateFunction.apply(this,arguments);};Dropdown.prototype._detectNavbar=function(){return this._element.closest(".navbar-collapse.show");};const bsAdjustDialogFunction=Modal.prototype._adjustDialog;Modal.prototype._adjustDialog=function(){const document=this._element.ownerDocument;document.body.classList.remove('modal-open');const $scrollable=$().getScrollingElement(document);if(document.body.contains($scrollable[0])){$scrollable.compensateScrollbar(true);}
document.body.classList.add('modal-open');return bsAdjustDialogFunction.apply(this,arguments);};const bsResetAdjustmentsFunction=Modal.prototype._resetAdjustments;Modal.prototype._resetAdjustments=function(){const document=this._element.ownerDocument;document.body.classList.remove('modal-open');const $scrollable=$().getScrollingElement(document);if(document.body.contains($scrollable[0])){$scrollable.compensateScrollbar(false);}
return bsResetAdjustmentsFunction.apply(this,arguments);};return __exports;});;

/* /web/static/src/legacy/js/libs/jquery.js */
odoo.define('@web/legacy/js/libs/jquery',[],function(require){'use strict';let __exports={};$.extend($.expr[':'],{containsLike:function(element,index,matches){return element.innerHTML.toUpperCase().indexOf(matches[3].toUpperCase())>=0;},containsTextLike:function(element,index,matches){return element.innerText.toUpperCase().indexOf(matches[3].toUpperCase())>=0;},containsExact:function(element,index,matches){return $.trim(element.innerHTML)===matches[3];},containsExactText:function(element,index,matches){return element.innerText.trim()===matches[3].trim();},containsRegex:function(element,index,matches){var regreg=/^\/((?:\\\/|[^\/])+)\/([mig]{0,3})$/,reg=regreg.exec(matches[3]);return reg?new RegExp(reg[1],reg[2]).test($.trim(element.innerHTML)):false;},propChecked:function(element,index,matches){return $(element).prop("checked")===true;},propSelected:function(element,index,matches){return $(element).prop("selected")===true;},propValue:function(element,index,matches){return $(element).prop("value")===matches[3];},propValueContains:function(element,index,matches){return $(element).prop("value")&&$(element).prop("value").indexOf(matches[3])!==-1;},hasData:function(element){return!!_.toArray(element.dataset).length;},data:function(element,index,matches){return $(element).data(matches[3]);},hasVisibility:function(element,index,matches){var $element=$(element);if($(element).css('visibility')==='hidden'){return false;}
var $parent=$element.parent();if(!$parent.length||$element.is('html')){return true;}
return $parent.is(':hasVisibility');},hasOpacity:function(element,index,matches){var $element=$(element);if(parseFloat($(element).css('opacity'))<=0.01){return false;}
var $parent=$element.parent();if(!$parent.length||$element.is('html')){return true;}
return $parent.is(':hasOpacity');},});$.fn.extend({getAttributes:function(){var o={};if(this.length){var attrs=this[0].attributes;for(var i=0,l=attrs.length;i<l;i++){var attr=attrs.item(i);o[attr.name]=attr.value;}}
return o;},odooBounce:function(extraClass){for(const el of this){el.classList.add('o_catch_attention',extraClass);setTimeout(()=>el.classList.remove('o_catch_attention',extraClass),400);}
return this;},prependEvent:function(events,selector,data,handler){this.on.apply(this,arguments);events=events.split(' ');return this.each(function(){var el=this;events.forEach((evNameNamespaced)=>{var evName=evNameNamespaced.split('.')[0];var handler=$._data(el,'events')[evName].pop();$._data(el,'events')[evName].unshift(handler);});});},closestScrollable(){const document=this.length?this[0].ownerDocument:window.document;let $el=this;while($el[0]!==document.scrollingElement){if(!$el.length||$el[0]instanceof Document){return $();}
if($el.isScrollable()){return $el;}
$el=$el.parent();}
return $el;},compensateScrollbar(add=true,isScrollElement=true,cssProperty='padding-right'){for(const el of this){const scrollableEl=isScrollElement?el:$(el).parent().closestScrollable()[0];const isRTL=scrollableEl.matches(".o_rtl");if(isRTL){cssProperty=cssProperty.replace("right","left");}
el.style.removeProperty(cssProperty);if(!add){return;}
const style=window.getComputedStyle(el);const borderLeftWidth=Math.ceil(parseFloat(style.borderLeftWidth.replace('px','')));const borderRightWidth=Math.ceil(parseFloat(style.borderRightWidth.replace('px','')));const bordersWidth=borderLeftWidth+borderRightWidth;const newValue=parseInt(style[cssProperty])+scrollableEl.offsetWidth-scrollableEl.clientWidth-bordersWidth;el.style.setProperty(cssProperty,`${newValue}px`,'important');}},getScrollingElement(document=window.document){const $baseScrollingElement=$(document.scrollingElement);if($baseScrollingElement.isScrollable()&&$baseScrollingElement.hasScrollableContent()){return $baseScrollingElement;}
const bodyHeight=$(document.body).height();for(const el of document.body.children){if(bodyHeight-el.scrollHeight>1.5){continue;}
const $el=$(el);if($el.isScrollable()){return $el;}}
return $baseScrollingElement;},getScrollingTarget(contextItem=window.document){const isElement=obj=>obj&&obj.nodeType===Node.ELEMENT_NODE;const isJQuery=obj=>obj&&('jquery'in obj);const $scrollingElement=isElement(contextItem)?$(contextItem):isJQuery(contextItem)?contextItem:$().getScrollingElement(contextItem);const document=$scrollingElement[0].ownerDocument;return $scrollingElement.is(document.scrollingElement)?$(document.defaultView):$scrollingElement;},hasScrollableContent(){return this[0].scrollHeight>this[0].clientHeight;},isScrollable(){if(!this.length){return false;}
const overflow=this.css('overflow-y');const el=this[0];return overflow==='auto'||overflow==='scroll'||(overflow==='visible'&&el===el.ownerDocument.scrollingElement);},});const originalScrollTop=$.fn.scrollTop;$.fn.scrollTop=function(value){if(value!==undefined&&this.filter('html, body').length){const $withRealScrollable=this.not('html, body').add($().getScrollingElement(this[0].ownerDocument));originalScrollTop.apply($withRealScrollable,arguments);return this;}else if(value===undefined&&this.eq(0).is('html, body')){return originalScrollTop.apply($().getScrollingElement(this[0].ownerDocument),arguments);}
return originalScrollTop.apply(this,arguments);};const originalAnimate=$.fn.animate;$.fn.animate=function(properties,...rest){const props=Object.assign({},properties);if('scrollTop'in props&&this.filter('html, body').length){const $withRealScrollable=this.not('html, body').add($().getScrollingElement(this[0].ownerDocument));originalAnimate.call($withRealScrollable,{'scrollTop':props['scrollTop']},...rest);delete props['scrollTop'];}
if(!Object.keys(props).length){return this;}
return originalAnimate.call(this,props,...rest);};return __exports;});;

/* /website/static/src/libs/zoomodoo/zoomodoo.js */
odoo.define('@website/libs/zoomodoo/zoomodoo',[],function(require){'use strict';let __exports={};var dw,dh,rw,rh,lx,ly;var defaults={linkTag:'a',linkAttribute:'data-zoom-image',event:'click',timer:0,preventClicks:true,disabledOnMobile:true,beforeShow:$.noop,beforeHide:$.noop,onShow:$.noop,onHide:$.noop,onMove:$.noop,beforeAttach:$.noop};function ZoomOdoo(target,options){this.$target=$(target);this.opts=$.extend({},defaults,options,this.$target.data());if(this.isOpen===undefined){this._init();}}
ZoomOdoo.prototype._init=function(){if(window.outerWidth>467||!this.opts.disabledOnMobile){this.$link=this.$target.find(this.opts.linkTag).length&&this.$target.find(this.opts.linkTag)||this.$target;this.$image=this.$target.find('img').length&&this.$target.find('img')||this.$target;this.$flyout=$('<div class="zoomodoo-flyout" />');var $attach=this.$target;if(this.opts.attach!==undefined&&this.$target.closest(this.opts.attach).length){$attach=this.$target.closest(this.opts.attach);}
$attach.parent().on('mousemove.zoomodoo touchmove.zoomodoo',$.proxy(this._onMove,this));$attach.parent().on('mouseleave.zoomodoo touchend.zoomodoo',$.proxy(this._onLeave,this));this.$target.on(this.opts.event+'.zoomodoo touchstart.zoomodoo',$.proxy(this._onEnter,this));if(this.opts.preventClicks){this.$target.on('click.zoomodoo',function(e){e.preventDefault();});}else{var self=this;this.$target.on('click.zoomodoo',function(){self.hide();self.$target.unbind();});}}};ZoomOdoo.prototype.show=function(e,testMouseOver){var w1,h1,w2,h2;var self=this;if(this.opts.beforeShow.call(this)===false)return;if(!this.isReady){return this._loadImage(this.$link.attr(this.opts.linkAttribute),function(){if(self.isMouseOver||!testMouseOver){self.show(e);}});}
var $attach=this.$target;if(this.opts.attach!==undefined&&this.$target.closest(this.opts.attach).length){$attach=this.$target.closest(this.opts.attach);}
$attach.parent().find('.zoomodoo-flyout').remove();this.$flyout.removeAttr('style');$attach.parent().append(this.$flyout);if(this.opts.attachToTarget){this.opts.beforeAttach.call(this);this.$flyout.css('position','fixed');var flyoutOffset=this.$flyout.offset();if(flyoutOffset.left>0){var flyoutLeft=parseFloat(this.$flyout.css('left').replace('px',''));this.$flyout.css('left',flyoutLeft-flyoutOffset.left+'px');}
if(flyoutOffset.top>0){var flyoutTop=parseFloat(this.$flyout.css('top').replace('px',''));this.$flyout.css('top',flyoutTop-flyoutOffset.top+'px');}
if(this.$zoom.height()<this.$flyout.height()){this.$flyout.css('height',this.$zoom.height()+'px');}
if(this.$zoom.width()<this.$flyout.width()){this.$flyout.css('width',this.$zoom.width()+'px');}
var offset=this.$target.offset();var left=offset.left-this.$flyout.width();var top=offset.top;if(left<0){if(offset.left<($(document).width()/2)){left=offset.left+this.$target.width();}else{left=0;}}
if(left+this.$flyout.width()>$(document).width()){this.$flyout.css('width',$(document).width()-left+'px');}else if(left===0){this.$flyout.css('width',offset.left+'px');}
if((top+this.$flyout.height())>$(document).height()){top=$(document).height()-this.$flyout.height();}
this.$flyout.css('transform','translate3d('+left+'px, '+top+'px, 0px)');}else{var rightAvailableSpace=document.body.clientWidth-this.$flyout[0].getBoundingClientRect().left;this.$flyout.css('max-width',rightAvailableSpace);}
w1=this.$target[0].offsetWidth;h1=this.$target[0].offsetHeight;w2=this.$flyout.width();h2=this.$flyout.height();dw=this.$zoom.width()-w2;dh=this.$zoom.height()-h2;if(dw<0)dw=0;if(dh<0)dh=0;rw=dw/w1;rh=dh/h1;this.isOpen=true;this.opts.onShow.call(this);if(e){this._move(e);}};ZoomOdoo.prototype._onEnter=function(e){var self=this;var touches=e.originalEvent.touches;e.preventDefault();this.isMouseOver=true;setTimeout(function(){if(self.isMouseOver&&(!touches||touches.length===1)){self.show(e,true);}},this.opts.timer);};ZoomOdoo.prototype._onMove=function(e){if(!this.isOpen)return;e.preventDefault();this._move(e);};ZoomOdoo.prototype._onLeave=function(){this.isMouseOver=false;if(this.isOpen){this.hide();}};ZoomOdoo.prototype._onLoad=function(e){if(!e.currentTarget.width)return;this.isReady=true;this.$flyout.html(this.$zoom);if(e.data.call){e.data();}};ZoomOdoo.prototype._loadImage=function(href,callback){var zoom=new Image();this.$zoom=$(zoom).on('load',callback,$.proxy(this._onLoad,this));zoom.style.position='absolute';zoom.src=href;};ZoomOdoo.prototype._move=function(e){if(e.type.indexOf('touch')===0){var touchlist=e.touches||e.originalEvent.touches;lx=touchlist[0].pageX;ly=touchlist[0].pageY;}else{lx=e.pageX||lx;ly=e.pageY||ly;}
var offset=this.$target.offset();var pt=ly-offset.top;var pl=lx-offset.left;var xt=Math.ceil(pt*rh);var xl=Math.ceil(pl*rw);if(!this.opts.attachToTarget&&(xl<0||xt<0||xl>dw||xt>dh||lx>(offset.left+this.$target.outerWidth()))){this.hide();}else{var top=xt*-1;var left=xl*-1;this.$zoom.css({top:top,left:left});this.opts.onMove.call(this,top,left);}};ZoomOdoo.prototype.hide=function(){if(!this.isOpen)return;if(this.opts.beforeHide.call(this)===false)return;this.$flyout.detach();this.isOpen=false;this.opts.onHide.call(this);};$.fn.zoomOdoo=function(options){return this.each(function(){var api=$.data(this,'zoomOdoo');if(!api){$.data(this,'zoomOdoo',new ZoomOdoo(this,options));}else if(api.isOpen===undefined){api._init();}});};return __exports;});;

/* /web/static/src/core/action_swiper/action_swiper.js */
odoo.define('@web/core/action_swiper/action_swiper',['@web/core/browser/browser','@web/core/l10n/localization','@web/core/utils/numbers','@odoo/owl','@web/core/utils/concurrency'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{localization}=require("@web/core/l10n/localization");const{clamp}=require("@web/core/utils/numbers");const{Component,onMounted,onWillUnmount,useRef,useState}=require("@odoo/owl");const{Deferred}=require("@web/core/utils/concurrency");const isScrollSwipable=(scrollables)=>{return{left:!scrollables.filter((e)=>e.scrollLeft!==0).length,right:!scrollables.filter((e)=>e.scrollLeft+Math.round(e.getBoundingClientRect().width)!==e.scrollWidth).length,};};const ActionSwiper=__exports.ActionSwiper=class ActionSwiper extends Component{setup(){this.actionTimeoutId=null;this.resetTimeoutId=null;this.defaultState={containerStyle:"",isSwiping:false,width:undefined,};this.root=useRef("root");this.targetContainer=useRef("targetContainer");this.state=useState({...this.defaultState});this.scrollables=undefined;this.startX=undefined;this.swipedDistance=0;this.isScrollValidated=false;onMounted(()=>{if(this.targetContainer.el){this.state.width=this.targetContainer.el.getBoundingClientRect().width;}
if(this.props.onLeftSwipe||this.props.onRightSwipe){const classes=new Set(this.root.el.classList);classes.delete("o_actionswiper");for(const className of classes){this.targetContainer.el.firstChild.classList.add(className);this.root.el.classList.remove(className);}}});onWillUnmount(()=>{browser.clearTimeout(this.actionTimeoutId);browser.clearTimeout(this.resetTimeoutId);});}
get localizedProps(){return{onLeftSwipe:localization.direction==="rtl"?this.props.onRightSwipe:this.props.onLeftSwipe,onRightSwipe:localization.direction==="rtl"?this.props.onLeftSwipe:this.props.onRightSwipe,};}
_onTouchEndSwipe(){if(this.state.isSwiping){this.state.isSwiping=false;if(this.localizedProps.onRightSwipe&&this.swipedDistance>this.state.width/this.props.swipeDistanceRatio){this.swipedDistance=this.state.width;this.handleSwipe(this.localizedProps.onRightSwipe.action);}else if(this.localizedProps.onLeftSwipe&&this.swipedDistance<-this.state.width/this.props.swipeDistanceRatio){this.swipedDistance=-this.state.width;this.handleSwipe(this.localizedProps.onLeftSwipe.action);}else{this.state.containerStyle="";}}}
_onTouchMoveSwipe(ev){if(this.state.isSwiping){if(this.props.swipeInvalid&&this.props.swipeInvalid()){this.state.isSwiping=false;return;}
const{onLeftSwipe,onRightSwipe}=this.localizedProps;this.swipedDistance=clamp(ev.touches[0].clientX-this.startX,onLeftSwipe?-this.state.width:0,onRightSwipe?this.state.width:0);if(Math.abs(this.swipedDistance)>40){ev.preventDefault();}
if(!this.isScrollValidated&&this.scrollables&&!isScrollSwipable(this.scrollables)[this.swipedDistance>0?"left":"right"]){return this._reset();}
this.isScrollValidated=true;if(this.props.animationOnMove){this.state.containerStyle=`transform: translateX(${this.swipedDistance}px)`;}}}
_onTouchStartSwipe(ev){this.scrollables=ev.composedPath().filter((e)=>e.nodeType===1&&this.targetContainer.el.contains(e)&&e.scrollWidth>e.getBoundingClientRect().width&&["auto","scroll"].includes(window.getComputedStyle(e)["overflow-x"]));if(!this.state.width){this.state.width=this.targetContainer&&this.targetContainer.el.getBoundingClientRect().width;}
this.state.isSwiping=true;this.isScrollValidated=false;this.startX=ev.touches[0].clientX;}
_reset(){Object.assign(this.state,{...this.defaultState});this.scrollables=undefined;this.startX=undefined;this.swipedDistance=0;this.isScrollValidated=false;}
handleSwipe(action){if(this.props.animationType==="bounce"){this.state.containerStyle=`transform: translateX(${this.swipedDistance}px)`;this.actionTimeoutId=browser.setTimeout(async()=>{await action(Promise.resolve());this._reset();},500);}else if(this.props.animationType==="forwards"){this.state.containerStyle=`transform: translateX(${this.swipedDistance}px)`;this.actionTimeoutId=browser.setTimeout(async()=>{const prom=new Deferred();await action(prom);this.state.isSwiping=true;this.state.containerStyle=`transform: translateX(${-this.swipedDistance}px)`;this.resetTimeoutId=browser.setTimeout(()=>{prom.resolve();this._reset();},100);},100);}else{return action(Promise.resolve());}}}
ActionSwiper.props={onLeftSwipe:{type:Object,args:{action:Function,icon:String,bgColor:String,},optional:true,},onRightSwipe:{type:Object,args:{action:Function,icon:String,bgColor:String,},optional:true,},slots:Object,animationOnMove:{type:Boolean,optional:true},animationType:{type:String,optional:true},swipeDistanceRatio:{type:Number,optional:true},swipeInvalid:{type:Function,optional:true},};ActionSwiper.defaultProps={onLeftSwipe:undefined,onRightSwipe:undefined,animationOnMove:true,animationType:"bounce",swipeDistanceRatio:2,};ActionSwiper.template="web.ActionSwiper";return __exports;});;

/* /web/static/src/core/assets.js */
odoo.define('@web/core/assets',['@web/core/utils/functions','@web/core/browser/browser','@web/core/registry','@web/session','@odoo/owl'],function(require){'use strict';let __exports={};const{memoize}=require("@web/core/utils/functions");const{browser}=require("@web/core/browser/browser");const{registry}=require("@web/core/registry");const{session}=require("@web/session");const{Component,xml,onWillStart,App}=require("@odoo/owl");const assets=__exports.assets={retries:{count:3,delay:5000,extraDelay:2500,},};class AssetsLoadingError extends Error{}
assets.loadJS=memoize(function loadJS(url){if(document.querySelector(`script[src="${url}"]`)){return Promise.resolve();}
const scriptEl=document.createElement("script");scriptEl.type="text/javascript";scriptEl.src=url;document.head.appendChild(scriptEl);return new Promise((resolve,reject)=>{scriptEl.addEventListener("load",()=>resolve(true));scriptEl.addEventListener("error",()=>{reject(new AssetsLoadingError(`The loading of ${url} failed`));});});});assets.loadCSS=memoize(function loadCSS(url,retryCount=0){if(document.querySelector(`link[href="${url}"]`)){return Promise.resolve();}
const linkEl=document.createElement("link");linkEl.type="text/css";linkEl.rel="stylesheet";linkEl.href=url;const promise=new Promise((resolve,reject)=>{linkEl.addEventListener("load",()=>resolve(true));linkEl.addEventListener("error",async()=>{if(retryCount<assets.retries.count){await new Promise((resolve)=>setTimeout(resolve,assets.retries.delay+assets.retries.extraDelay*retryCount));linkEl.remove();loadCSS(url,retryCount+1).then(resolve).catch(reject);}else{reject(new AssetsLoadingError(`The loading of ${url} failed`));}});});document.head.appendChild(linkEl);return promise;});assets.getBundle=memoize(async function getBundle(bundleName){const url=new URL(`/web/bundle/${bundleName}`,location.origin);for(const[key,value]of Object.entries(session.bundle_params||{})){url.searchParams.set(key,value);}
const response=await browser.fetch(url.href);const json=await response.json();const assets={cssLibs:[],cssContents:[],jsLibs:[],jsContents:[],};for(const key in json){const file=json[key];if(file.type==="link"){assets.cssLibs.push(file.src);}else if(file.type==="style"){assets.cssContents.push(file.content);}else{if(file.src){assets.jsLibs.push(file.src);}else{assets.jsContents.push(file.content);}}}
return assets;});assets.loadBundle=async function loadBundle(desc){if(typeof desc==="string"){desc=await assets.getBundle(desc);}
const promiseCSS=Promise.all((desc.cssLibs||[]).map(assets.loadCSS)).then(()=>{if(desc.cssContents&&desc.cssContents.length){const style=document.createElement("style");style.textContent=desc.cssContents.join("\n");document.head.appendChild(style);}});for(const urlData of desc.jsLibs||[]){if(typeof urlData==="string"){await assets.loadJS(urlData);}else{await Promise.all(urlData.map(loadJS));}}
if(desc.jsContents&&desc.jsContents.length){const script=document.createElement("script");script.type="text/javascript";script.textContent=desc.jsContents.join("\n");document.head.appendChild(script);}
await promiseCSS;for(const bundleName of desc.assetLibs||[]){if(typeof bundleName==="string"){await assets.loadBundle(bundleName);}else{await Promise.all(bundleName.map(async(bundleName)=>{return assets.loadBundle(bundleName);}));}}
odoo.loader.checkAndReportErrors();};const loadJS=__exports.loadJS=function(url){return assets.loadJS(url);};const loadCSS=__exports.loadCSS=function(url){return assets.loadCSS(url);};const getBundle=__exports.getBundle=function(bundleName){return assets.getBundle(bundleName);};const loadBundle=__exports.loadBundle=function(desc){return assets.loadBundle(desc);};const templates=__exports.templates=new DOMParser().parseFromString("<odoo/>","text/xml");registry.category("xml_templates").addEventListener("UPDATE",(ev)=>{const{operation,value}=ev.detail;if(operation==="add"){const doc=new DOMParser().parseFromString(value,"text/xml");if(doc.querySelector("parsererror")){let strError="";const nodes=doc.querySelectorAll("parsererror");for(const node of nodes){strError+=node.textContent.trim()+"\n";}
throw new Error(strError);}
for(const element of doc.querySelectorAll("templates > [t-name]")){templates.documentElement.appendChild(element);}
for(const app of App.apps){app.addTemplates(templates,app);}}});const LazyComponent=__exports.LazyComponent=class LazyComponent extends Component{setup(){onWillStart(async()=>{await loadBundle(this.props.bundle);this.Component=registry.category("lazy_components").get(this.props.Component);});}}
LazyComponent.template=xml`<t t-component="Component" t-props="props.props"/>`;LazyComponent.props={Component:String,bundle:String,props:{type:Object,optional:true},};return __exports;});;

/* /web/static/src/core/autocomplete/autocomplete.js */
odoo.define('@web/core/autocomplete/autocomplete',['@web/core/utils/concurrency','@web/core/utils/hooks','@web/core/utils/timing','@web/core/hotkeys/hotkey_service','@web/core/position_hook','@odoo/owl'],function(require){'use strict';let __exports={};const{Deferred}=require("@web/core/utils/concurrency");const{useAutofocus,useForwardRefToParent,useService}=require("@web/core/utils/hooks");const{useDebounced}=require("@web/core/utils/timing");const{getActiveHotkey}=require("@web/core/hotkeys/hotkey_service");const{usePosition}=require("@web/core/position_hook");const{Component,onWillUpdateProps,useExternalListener,useRef,useState}=require("@odoo/owl");const AutoComplete=__exports.AutoComplete=class AutoComplete extends Component{setup(){this.nextSourceId=0;this.nextOptionId=0;this.sources=[];this.inEdition=false;this.state=useState({navigationRev:0,optionsRev:0,open:false,activeSourceOption:null,value:this.props.value,});this.inputRef=useForwardRefToParent("input");if(this.props.autofocus){useAutofocus({refName:"input"});}
this.root=useRef("root");this.debouncedProcessInput=useDebounced(async()=>{const currentPromise=this.pendingPromise;this.pendingPromise=null;this.props.onInput({inputValue:this.inputRef.el.value,});try{await this.open(true);currentPromise.resolve();}catch{currentPromise.reject();}finally{if(currentPromise===this.loadingPromise){this.loadingPromise=null;}}},this.constructor.timeout);useExternalListener(window,"scroll",this.externalClose,true);useExternalListener(window,"pointerdown",this.externalClose,true);this.hotkey=useService("hotkey");this.hotkeysToRemove=[];onWillUpdateProps((nextProps)=>{if(this.props.value!==nextProps.value||this.forceValFromProp){this.forceValFromProp=false;if(!this.inEdition){this.state.value=nextProps.value;this.inputRef.el.value=nextProps.value;}
this.close();}});if(this.props.dropdown){usePosition("sourcesList",()=>this.targetDropdown,this.dropdownOptions);}else{this.open(false);}}
get targetDropdown(){return this.inputRef.el;}
get activeSourceOptionId(){if(!this.isOpened||!this.state.activeSourceOption){return undefined;}
const[sourceIndex,optionIndex]=this.state.activeSourceOption;const source=this.sources[sourceIndex];return`${this.props.id || "autocomplete"}_${sourceIndex}_${
            source.isLoading ? "loading" : optionIndex
        }`;}
get dropdownOptions(){return{position:"bottom-start",};}
get isOpened(){return this.state.open;}
get hasOptions(){for(const source of this.sources){if(source.isLoading||source.options.length){return true;}}
return false;}
get activeOption(){const[sourceIndex,optionIndex]=this.state.activeSourceOption;return this.sources[sourceIndex].options[optionIndex];}
open(useInput=false){this.state.open=true;return this.loadSources(useInput);}
close(){this.state.open=false;this.state.activeSourceOption=null;}
cancel(){if(this.inputRef.el.value.length){if(this.props.autoSelect){this.inputRef.el.value=this.props.value;this.props.onCancel();}}
this.close();}
async loadSources(useInput){this.sources=[];this.state.activeSourceOption=null;const proms=[];for(const pSource of this.props.sources){const source=this.makeSource(pSource);this.sources.push(source);const options=this.loadOptions(pSource.options,useInput?this.inputRef.el.value.trim():"");if(options instanceof Promise){source.isLoading=true;const prom=options.then((options)=>{source.options=options.map((option)=>this.makeOption(option));source.isLoading=false;this.state.optionsRev++;});proms.push(prom);}else{source.options=options.map((option)=>this.makeOption(option));}}
await Promise.all(proms);this.navigate(0);}
get displayOptions(){return!this.props.dropdown||(this.isOpened&&this.hasOptions);}
loadOptions(options,request){if(typeof options==="function"){return options(request);}else{return options;}}
makeOption(option){return Object.assign(Object.create(option),{id:++this.nextOptionId,});}
makeSource(source){return{id:++this.nextSourceId,options:[],isLoading:false,placeholder:source.placeholder,optionTemplate:source.optionTemplate,};}
isActiveSourceOption([sourceIndex,optionIndex]){return(this.state.activeSourceOption&&this.state.activeSourceOption[0]===sourceIndex&&this.state.activeSourceOption[1]===optionIndex);}
selectOption(option,params={}){this.inEdition=false;if(option.unselectable){this.inputRef.el.value="";this.close();return;}
if(this.props.resetOnSelect){this.inputRef.el.value="";}
this.forceValFromProp=true;this.props.onSelect(option,{...params,input:this.inputRef.el,});this.close();}
navigate(direction){let step=Math.sign(direction);if(!step){this.state.activeSourceOption=null;step=1;}else{this.state.navigationRev++;}
if(this.state.activeSourceOption){let[sourceIndex,optionIndex]=this.state.activeSourceOption;let source=this.sources[sourceIndex];optionIndex+=step;if(0>optionIndex||optionIndex>=source.options.length){sourceIndex+=step;source=this.sources[sourceIndex];while(source&&source.isLoading){sourceIndex+=step;source=this.sources[sourceIndex];}
if(source){optionIndex=step<0?source.options.length-1:0;}}
this.state.activeSourceOption=source?[sourceIndex,optionIndex]:null;}else{let sourceIndex=step<0?this.sources.length-1:0;let source=this.sources[sourceIndex];while(source&&source.isLoading){sourceIndex+=step;source=this.sources[sourceIndex];}
if(source){const optionIndex=step<0?source.options.length-1:0;if(optionIndex<source.options.length){this.state.activeSourceOption=[sourceIndex,optionIndex];}}}}
onInputBlur(){if(this.ignoreBlur){this.ignoreBlur=false;return;}
this.props.onBlur({inputValue:this.inputRef.el.value,});this.inEdition=false;}
onInputClick(){if(!this.isOpened){this.open(this.inputRef.el.value.trim()!==this.props.value.trim());}else{this.close();}}
onInputChange(ev){if(this.ignoreBlur){ev.stopImmediatePropagation();}
this.props.onChange({inputValue:this.inputRef.el.value,});}
async onInput(){this.inEdition=true;this.pendingPromise=this.pendingPromise||new Deferred();this.loadingPromise=this.pendingPromise;this.debouncedProcessInput();}
onInputFocus(ev){this.inputRef.el.setSelectionRange(0,this.inputRef.el.value.length);this.props.onFocus(ev);}
get autoCompleteRootClass(){let classList="";if(this.props.class){classList+=this.props.class;}
if(this.props.dropdown){classList+=" dropdown";}
return classList;}
get ulDropdownClass(){let classList="";if(this.props.dropdown){classList+=" dropdown-menu ui-autocomplete";}else{classList+=" list-group";}
return classList;}
async onInputKeydown(ev){const hotkey=getActiveHotkey(ev);const isSelectKey=hotkey==="enter"||hotkey==="tab";if(this.loadingPromise&&isSelectKey){if(hotkey==="enter"){ev.stopPropagation();ev.preventDefault();}
await this.loadingPromise;}
switch(hotkey){case"enter":if(!this.isOpened||!this.state.activeSourceOption){return;}
this.selectOption(this.activeOption);break;case"escape":if(!this.isOpened){return;}
this.cancel();break;case"tab":if(!this.isOpened){return;}
if(this.props.autoSelect&&this.state.activeSourceOption&&(this.state.navigationRev>0||this.inputRef.el.value.length>0)){this.selectOption(this.activeOption);}
this.close();return;case"arrowup":this.navigate(-1);if(!this.isOpened){this.open(true);}
break;case"arrowdown":this.navigate(+1);if(!this.isOpened){this.open(true);}
break;default:return;}
ev.stopPropagation();ev.preventDefault();}
onOptionMouseEnter(indices){this.state.activeSourceOption=indices;}
onOptionMouseLeave(){this.state.activeSourceOption=null;}
onOptionClick(option){this.selectOption(option);this.inputRef.el.focus();}
externalClose(ev){if(this.isOpened&&!this.root.el.contains(ev.target)){this.cancel();}}}
Object.assign(AutoComplete,{template:"web.AutoComplete",props:{value:{type:String,optional:true},id:{type:String,optional:true},onSelect:{type:Function},sources:{type:Array,element:{type:Object,shape:{placeholder:{type:String,optional:true},optionTemplate:{type:String,optional:true},options:[Array,Function],},},},placeholder:{type:String,optional:true},autoSelect:{type:Boolean,optional:true},resetOnSelect:{type:Boolean,optional:true},onCancel:{type:Function,optional:true},onInput:{type:Function,optional:true},onChange:{type:Function,optional:true},onBlur:{type:Function,optional:true},onFocus:{type:Function,optional:true},input:{type:Function,optional:true},dropdown:{type:Boolean,optional:true},autofocus:{type:Boolean,optional:true},class:{type:String,optional:true},},defaultProps:{value:"",placeholder:"",autoSelect:false,dropdown:true,onCancel:()=>{},onInput:()=>{},onChange:()=>{},onBlur:()=>{},onFocus:()=>{},},timeout:250,});return __exports;});;

/* /web/static/src/core/browser/browser.js */
odoo.define('@web/core/browser/browser',[],function(require){'use strict';let __exports={};let sessionStorage;let localStorage;try{sessionStorage=window.sessionStorage;localStorage=window.localStorage;localStorage.setItem("__localStorage__","true");localStorage.removeItem("__localStorage__");}catch{localStorage=makeRAMLocalStorage();sessionStorage=makeRAMLocalStorage();}
const browser=__exports.browser={addEventListener:window.addEventListener.bind(window),dispatchEvent:window.dispatchEvent.bind(window),AnalyserNode:window.AnalyserNode,Audio:window.Audio,AudioBufferSourceNode:window.AudioBufferSourceNode,AudioContext:window.AudioContext,AudioWorkletNode:window.AudioWorkletNode,BeforeInstallPromptEvent:window.BeforeInstallPromptEvent?.bind(window),GainNode:window.GainNode,MediaStreamAudioSourceNode:window.MediaStreamAudioSourceNode,removeEventListener:window.removeEventListener.bind(window),setTimeout:window.setTimeout.bind(window),clearTimeout:window.clearTimeout.bind(window),setInterval:window.setInterval.bind(window),clearInterval:window.clearInterval.bind(window),performance:window.performance,requestAnimationFrame:window.requestAnimationFrame.bind(window),cancelAnimationFrame:window.cancelAnimationFrame.bind(window),console:window.console,history:window.history,matchMedia:window.matchMedia.bind(window),navigator,Notification:window.Notification,open:window.open.bind(window),SharedWorker:window.SharedWorker,Worker:window.Worker,XMLHttpRequest:window.XMLHttpRequest,localStorage,sessionStorage,fetch:window.fetch.bind(window),innerHeight:window.innerHeight,innerWidth:window.innerWidth,ontouchstart:window.ontouchstart,BroadcastChannel:window.BroadcastChannel,};Object.defineProperty(browser,"location",{set(val){window.location=val;},get(){return window.location;},configurable:true,});Object.defineProperty(browser,"innerHeight",{get:()=>window.innerHeight,configurable:true,});Object.defineProperty(browser,"innerWidth",{get:()=>window.innerWidth,configurable:true,});__exports.makeRAMLocalStorage=makeRAMLocalStorage;function makeRAMLocalStorage(){let store={};return{setItem(key,value){const newValue=String(value);store[key]=newValue;window.dispatchEvent(new StorageEvent("storage",{key,newValue}));},getItem(key){return store[key];},clear(){store={};},removeItem(key){delete store[key];window.dispatchEvent(new StorageEvent("storage",{key,newValue:null}));},get length(){return Object.keys(store).length;},key(){return"";},};}
return __exports;});;

/* /web/static/src/core/browser/cookie.js */
odoo.define('@web/core/browser/cookie',[],function(require){'use strict';let __exports={};const COOKIE_TTL=24*60*60*365;const cookie=__exports.cookie={get _cookieMonster(){return document.cookie;},set _cookieMonster(value){document.cookie=value;},get(str){const parts=this._cookieMonster.split("; ");for(const part of parts){const[key,value]=part.split(/=(.*)/);if(key===str){return value||"";}}},set(key,value,ttl=COOKIE_TTL){let fullCookie=[];if(value!==undefined){fullCookie.push(`${key}=${value}`);}
fullCookie=fullCookie.concat(["path=/",`max-age=${ttl}`]);this._cookieMonster=fullCookie.join("; ");},delete(key){this.set(key,"kill",0);},};return __exports;});;

/* /web/static/src/core/browser/feature_detection.js */
odoo.define('@web/core/browser/feature_detection',['@web/core/browser/browser'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");__exports.isBrowserChrome=isBrowserChrome;function isBrowserChrome(){return/Chrome/i.test(browser.navigator.userAgent);}
__exports.isBrowserFirefox=isBrowserFirefox;function isBrowserFirefox(){return/Firefox/i.test(browser.navigator.userAgent);}
__exports.isBrowserSafari=isBrowserSafari;function isBrowserSafari(){return!isBrowserChrome()&&browser.navigator.userAgent.includes("Safari");}
__exports.isAndroid=isAndroid;function isAndroid(){return/Android/i.test(browser.navigator.userAgent);}
__exports.isIOS=isIOS;function isIOS(){return(/(iPad|iPhone|iPod)/i.test(browser.navigator.userAgent)||(browser.navigator.platform==="MacIntel"&&maxTouchPoints()>1));}
__exports.isOtherMobileOS=isOtherMobileOS;function isOtherMobileOS(){return/(webOS|BlackBerry|Windows Phone)/i.test(browser.navigator.userAgent);}
__exports.isMacOS=isMacOS;function isMacOS(){return/Mac/i.test(browser.navigator.userAgent);}
__exports.isMobileOS=isMobileOS;function isMobileOS(){return isAndroid()||isIOS()||isOtherMobileOS();}
__exports.isIosApp=isIosApp;function isIosApp(){return/OdooMobile \(iOS\)/i.test(browser.navigator.userAgent);}
__exports.isAndroidApp=isAndroidApp;function isAndroidApp(){return/OdooMobile.+Android/i.test(browser.navigator.userAgent);}
__exports.isDisplayStandalone=isDisplayStandalone;function isDisplayStandalone(){return browser.matchMedia("(display-mode: standalone)").matches;}
__exports.hasTouch=hasTouch;function hasTouch(){return browser.ontouchstart!==undefined||browser.matchMedia("(pointer:coarse)").matches;}
__exports.maxTouchPoints=maxTouchPoints;function maxTouchPoints(){return browser.navigator.maxTouchPoints||1;}
return __exports;});;

/* /web/static/src/core/browser/router_service.js */
odoo.define('@web/core/browser/router_service',['@web/core/registry','@web/core/utils/objects','@web/core/utils/urls','@web/core/browser/browser'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const{shallowEqual}=require("@web/core/utils/objects");const{objectToUrlEncodedString}=require("@web/core/utils/urls");const{browser}=require("@web/core/browser/browser");function cast(value){return!value||isNaN(value)?value:Number(value);}
function parseString(str){const parts=str.split("&");const result={};for(const part of parts){const[key,value]=part.split("=");const decoded=decodeURIComponent(value||"");result[key]=cast(decoded);}
return result;}
function applyLocking(lockedKeys,hash,currentHash,options={}){const newHash={};for(const key in hash){if("lock"in options){options.lock?lockedKeys.add(key):lockedKeys.delete(key);}else if(lockedKeys.has(key)){continue;}
newHash[key]=hash[key];}
for(const key in currentHash){if(lockedKeys.has(key)&&!(key in newHash)){newHash[key]=currentHash[key];}}
return newHash;}
function computeNewRoute(hash,replace,currentRoute){if(!replace){hash=Object.assign({},currentRoute.hash,hash);}
hash=sanitizeHash(hash);if(!shallowEqual(currentRoute.hash,hash)){return Object.assign({},currentRoute,{hash});}
return false;}
function sanitizeHash(hash){return Object.fromEntries(Object.entries(hash).filter(([,v])=>v!==undefined).map(([k,v])=>[k,cast(v)]));}
__exports.parseHash=parseHash;function parseHash(hash){return hash&&hash!=="#"?parseString(hash.slice(1)):{};}
__exports.parseSearchQuery=parseSearchQuery;function parseSearchQuery(search){return search?parseString(search.slice(1)):{};}
__exports.routeToUrl=routeToUrl;function routeToUrl(route){const search=objectToUrlEncodedString(route.search);const hash=objectToUrlEncodedString(route.hash);return route.pathname+(search?"?"+search:"")+(hash?"#"+hash:"");}
function getRoute(urlObj){const{pathname,search,hash}=urlObj;const searchQuery=parseSearchQuery(search);const hashQuery=parseHash(hash);return{pathname,search:searchQuery,hash:hashQuery};}
function makeRouter(env){const bus=env.bus;const lockedKeys=new Set();let current=getRoute(browser.location);let pushTimeout;browser.addEventListener("hashchange",(ev)=>{browser.clearTimeout(pushTimeout);const loc=new URL(ev.newURL);current=getRoute(loc);bus.trigger("ROUTE_CHANGE");});browser.addEventListener("pageshow",(ev)=>{if(ev.persisted){browser.clearTimeout(pushTimeout);bus.trigger("ROUTE_CHANGE");}});function makeDebouncedPush(mode){let allPushArgs=[];function doPush(){const replace=allPushArgs.some(([,options])=>options&&options.replace);const newHash=allPushArgs.reduce((finalHash,[hash,options])=>{hash=applyLocking(lockedKeys,hash,current.hash,options);if(finalHash){hash=applyLocking(lockedKeys,hash,finalHash,options);}
return Object.assign(finalHash||{},hash);},null);const newRoute=computeNewRoute(newHash,replace,current);if(!newRoute){return;}
const url=browser.location.origin+routeToUrl(newRoute);if(mode==="push"){browser.history.pushState({},"",url);}else{browser.history.replaceState({},"",url);}
current=getRoute(browser.location);}
return function pushOrReplaceState(hash,options){allPushArgs.push([hash,options]);browser.clearTimeout(pushTimeout);pushTimeout=browser.setTimeout(()=>{doPush();pushTimeout=null;allPushArgs=[];});};}
return{get current(){return current;},pushState:makeDebouncedPush("push"),replaceState:makeDebouncedPush("replace"),cancelPushes:()=>browser.clearTimeout(pushTimeout),};}
const routerService=__exports.routerService={start(env){return makeRouter(env);},};__exports.objectToQuery=objectToQuery;function objectToQuery(obj){const query={};Object.entries(obj).forEach(([k,v])=>{query[k]=v?String(v):v;});return query;}
registry.category("services").add("router",routerService);return __exports;});;

/* /web/static/src/core/browser/title_service.js */
odoo.define('@web/core/browser/title_service',['@web/core/registry'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const titleService=__exports.titleService={start(){const titleParts={};function getParts(){return Object.assign({},titleParts);}
function setParts(parts){for(const key in parts){const val=parts[key];if(!val){delete titleParts[key];}else{titleParts[key]=val;}}
document.title=Object.values(titleParts).join(" - ");}
return{get current(){return document.title;},getParts,setParts,};},};registry.category("services").add("title",titleService);return __exports;});;

/* /web/static/src/core/checkbox/checkbox.js */
odoo.define('@web/core/checkbox/checkbox',['@web/core/hotkeys/hotkey_hook','@odoo/owl'],function(require){'use strict';let __exports={};const{useHotkey}=require("@web/core/hotkeys/hotkey_hook");const{Component,useRef}=require("@odoo/owl");const CheckBox=__exports.CheckBox=class CheckBox extends Component{setup(){this.id=`checkbox-comp-${CheckBox.nextId++}`;this.rootRef=useRef("root");useHotkey("Enter",({area})=>{const oldValue=area.querySelector("input").checked;this.props.onChange(!oldValue);},{area:()=>this.rootRef.el,bypassEditableProtection:true});}
onClick(ev){if(ev.composedPath().find((el)=>["INPUT","LABEL"].includes(el.tagName))){ev.stopPropagation();return;}
const input=this.rootRef.el.querySelector("input");input.focus();if(!this.props.disabled){ev.stopPropagation();input.checked=!input.checked;this.props.onChange(input.checked);}}
onChange(ev){if(!this.props.disabled){this.props.onChange(ev.target.checked);}}}
CheckBox.template="web.CheckBox";CheckBox.nextId=1;CheckBox.defaultProps={onChange:()=>{},};CheckBox.props={id:{type:true,optional:true,},disabled:{type:Boolean,optional:true,},value:{type:Boolean,optional:true,},slots:{type:Object,optional:true,},onChange:{type:Function,optional:true,},className:{type:String,optional:true,},name:{type:String,optional:true,},};return __exports;});;

/* /web/static/src/core/code_editor/code_editor.js */
odoo.define('@web/core/code_editor/code_editor',['@odoo/owl','@web/core/assets','@web/core/utils/timing'],function(require){'use strict';let __exports={};const{Component,onWillDestroy,onWillStart,useEffect,useRef}=require("@odoo/owl");const{loadBundle}=require("@web/core/assets");const{useDebounced}=require("@web/core/utils/timing");function onResized(ref,callback){const _ref=typeof ref==="string"?useRef(ref):ref;const resizeObserver=new ResizeObserver(callback);useEffect((el)=>{if(el){resizeObserver.observe(el);return()=>resizeObserver.unobserve(el);}},()=>[_ref.el]);onWillDestroy(()=>{resizeObserver.disconnect();});}
const CodeEditor=__exports.CodeEditor=class CodeEditor extends Component{static template="web.CodeEditor";static components={};static props={mode:{type:String,optional:true,validate:(mode)=>CodeEditor.MODES.includes(mode),},value:{validate:(v)=>typeof v==="string",optional:true},readonly:{type:Boolean,optional:true},onChange:{type:Function,optional:true},onBlur:{type:Function,optional:true},class:{type:String,optional:true},theme:{type:String,optional:true,validate:(theme)=>CodeEditor.THEMES.includes(theme),},maxLines:{type:Number,optional:true},sessionId:{type:[Number,String],optional:true},};static defaultProps={readonly:false,value:"",onChange:()=>{},class:"",theme:"",sessionId:1,};static MODES=["js","xml","qweb","scss","python"];static THEMES=["","monokai"];setup(){this.editorRef=useRef("editorRef");onWillStart(async()=>await loadBundle("web.ace_lib"));const sessions={};let ignoredAceChange=false;useEffect((el)=>{if(!el){return;}
const aceEditor=window.ace.edit(el);this.aceEditor=aceEditor;this.aceEditor.setOptions({maxLines:this.props.maxLines,showPrintMargin:false,useWorker:false,});this.aceEditor.$blockScrolling=true;const session=aceEditor.getSession();if(!sessions[this.props.sessionId]){sessions[this.props.sessionId]=session;}
session.setValue(this.props.value);session.on("change",()=>{if(this.props.onChange&&!ignoredAceChange){this.props.onChange(this.aceEditor.getValue());}});this.aceEditor.on("blur",()=>{if(this.props.onBlur){this.props.onBlur();}});return()=>{aceEditor.destroy();};},()=>[this.editorRef.el]);useEffect((theme)=>this.aceEditor.setTheme(theme?`ace/theme/${theme}`:""),()=>[this.props.theme]);useEffect((readonly)=>{this.aceEditor.setOptions({readOnly:readonly,highlightActiveLine:!readonly,highlightGutterLine:!readonly,});this.aceEditor.renderer.setOptions({displayIndentGuides:!readonly,showGutter:!readonly,});this.aceEditor.renderer.$cursorLayer.element.style.display=readonly?"none":"block";},()=>[this.props.readonly]);useEffect((sessionId,mode,value)=>{let session=sessions[sessionId];if(session){if(session.getValue()!==value){ignoredAceChange=true;session.setValue(value);ignoredAceChange=false;}}else{session=new window.ace.EditSession(value);session.setUndoManager(new window.ace.UndoManager());session.setOptions({useWorker:false,tabSize:2,useSoftTabs:true,});session.on("change",()=>{if(this.props.onChange&&!ignoredAceChange){this.props.onChange(this.aceEditor.getValue());}});sessions[sessionId]=session;}
session.setMode(mode?`ace/mode/${mode}`:"");this.aceEditor.setSession(session);},()=>[this.props.sessionId,this.props.mode,this.props.value]);const debouncedResize=useDebounced(()=>{if(this.aceEditor){this.aceEditor.resize();}},250);onResized(this.editorRef,debouncedResize);}}
return __exports;});;

/* /web/static/src/core/colorlist/colorlist.js */
odoo.define('@web/core/colorlist/colorlist',['@web/core/l10n/translation','@odoo/owl'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{Component,useRef,useState,useExternalListener}=require("@odoo/owl");const ColorList=__exports.ColorList=class ColorList extends Component{setup(){this.colorlistRef=useRef("colorlist");this.state=useState({isExpanded:this.props.isExpanded});useExternalListener(window,"click",this.onOutsideClick);}
get colors(){return this.constructor.COLORS;}
onColorSelected(id){this.props.onColorSelected(id);if(!this.props.forceExpanded){this.state.isExpanded=false;}}
onOutsideClick(ev){if(this.colorlistRef.el.contains(ev.target)||this.props.forceExpanded){return;}
this.state.isExpanded=false;}
onToggle(ev){if(this.props.canToggle){ev.preventDefault();ev.stopPropagation();this.state.isExpanded=!this.state.isExpanded;this.colorlistRef.el.firstElementChild.focus();}}}
ColorList.COLORS=[_t("No color"),_t("Red"),_t("Orange"),_t("Yellow"),_t("Cyan"),_t("Purple"),_t("Almond"),_t("Teal"),_t("Blue"),_t("Raspberry"),_t("Green"),_t("Violet"),];ColorList.template="web.ColorList";ColorList.defaultProps={forceExpanded:false,isExpanded:false,};ColorList.props={canToggle:{type:Boolean,optional:true},colors:Array,forceExpanded:{type:Boolean,optional:true},isExpanded:{type:Boolean,optional:true},onColorSelected:Function,selectedColor:{type:Number,optional:true},};return __exports;});;

/* /web/static/src/core/colorpicker/colorpicker.js */
odoo.define('@web/core/colorpicker/colorpicker',['@web/core/utils/colors','@web/core/utils/functions','@web/core/utils/numbers','@web/core/utils/timing','@odoo/owl'],function(require){'use strict';let __exports={};const{convertCSSColorToRgba,convertRgbaToCSSColor,convertRgbToHsl,convertHslToRgb,}=require("@web/core/utils/colors");const{uniqueId}=require("@web/core/utils/functions");const{clamp}=require("@web/core/utils/numbers");const{throttleForAnimation,debounce}=require("@web/core/utils/timing");const{Component,useRef,onWillStart,onMounted,onWillUpdateProps,onWillDestroy,}=require("@odoo/owl");const Colorpicker=__exports.Colorpicker=class Colorpicker extends Component{static template="web.Colorpicker";static props={document:{type:true,optional:true},defaultColor:{type:String,optional:true},selectedColor:{type:String,optional:true},noTransparency:{type:Boolean,optional:true},colorPreview:{type:Boolean,optional:true},stopClickPropagation:{type:Boolean,optional:true},onColorSelect:{type:Function,optional:true},onColorPreview:{type:Function,optional:true},onInputEnter:{type:Function,optional:true},};static defaultProps={document:window.document,defaultColor:"#FF0000",noTransparency:false,colorPreview:false,stopClickPropagation:false,onColorSelect:()=>{},onColorPreview:()=>{},onInputEnter:()=>{},};elRef=useRef("el");setup(){onWillStart(()=>{this.init();});onMounted(async()=>{if(!this.elRef.el){await new Promise((resolve)=>{const observer=new MutationObserver(()=>{if(this.elRef.el){observer.disconnect();resolve();}});observer.observe(document.body,{childList:true,subtree:true});});}
this.el=this.elRef.el;this.$el=$(this.el);this.$el.on("click",this._onClick.bind(this));this.$el.on("keypress",this._onKeypress.bind(this));this.$el.on("mousedown",".o_color_pick_area",this._onMouseDownPicker.bind(this));this.$el.on("mousedown",".o_color_slider",this._onMouseDownSlider.bind(this));this.$el.on("mousedown",".o_opacity_slider",this._onMouseDownOpacitySlider.bind(this));const debouncedOnChangeInputs=debounce(this._onChangeInputs.bind(this),10,true);this.$el.on("change",".o_color_picker_inputs",debouncedOnChangeInputs);this.start();});onWillUpdateProps((newProps)=>{if(!this.el){return;}
const newSelectedColor=newProps.selectedColor?newProps.selectedColor:newProps.defaultColor;this.setSelectedColor(newSelectedColor);});onWillDestroy(()=>{this.destroy();});}
init(){this.pickerFlag=false;this.sliderFlag=false;this.opacitySliderFlag=false;this.colorComponents={};this.uniqueId=uniqueId("colorpicker");this.selectedHexValue="";}
start(){this.$colorpickerArea=this.$el.find(".o_color_pick_area");this.$colorpickerPointer=this.$el.find(".o_picker_pointer");this.$colorSlider=this.$el.find(".o_color_slider");this.$colorSliderPointer=this.$el.find(".o_slider_pointer");this.$opacitySlider=this.$el.find(".o_opacity_slider");this.$opacitySliderPointer=this.$el.find(".o_opacity_pointer");const defaultCssColor=this.props.selectedColor?this.props.selectedColor:this.props.defaultColor;const rgba=convertCSSColorToRgba(defaultCssColor);if(rgba){this._updateRgba(rgba.red,rgba.green,rgba.blue,rgba.opacity);}
Object.entries(this.colorComponents).forEach(([component,value])=>{const input=this.el.querySelector(`.o_${component}_input`);if(input){input.value=value;}});const resizeObserver=new window.ResizeObserver(()=>{this._updateUI();});resizeObserver.observe(this.el);this.$documents=$([window.top,...Array.from(window.top.frames).filter((frame)=>{try{const document=frame.document;return!!document;}catch{return false;}}),].map((w)=>w.document));this.throttleOnMouseMove=throttleForAnimation((ev)=>{this._onMouseMovePicker(ev);this._onMouseMoveSlider(ev);this._onMouseMoveOpacitySlider(ev);});this.$documents.on(`mousemove.${this.uniqueId}`,this.throttleOnMouseMove);this.$documents.on(`mouseup.${this.uniqueId}`,()=>{if(this.pickerFlag||this.sliderFlag||this.opacitySliderFlag){this._colorSelected();}
this.pickerFlag=false;this.sliderFlag=false;this.opacitySliderFlag=false;});this.previewActive=true;}
destroy(){if(this.throttleOnMouseMove){this.$documents.off(`.${this.uniqueId}`);this.throttleOnMouseMove.cancel();}}
setSelectedColor(color){const rgba=convertCSSColorToRgba(color);if(rgba){const oldPreviewActive=this.previewActive;this.previewActive=false;this._updateRgba(rgba.red,rgba.green,rgba.blue,rgba.opacity);this.previewActive=oldPreviewActive;this._updateUI();}}
_updateUI(){for(const[color,value]of Object.entries(this.colorComponents)){this.$el.find(`.o_${color}_input`).val(value);}
this.$el.find(".o_color_preview").css("background-color",this.colorComponents.cssColor);this.$colorpickerArea.css("background-color",`hsl(${this.colorComponents.hue}, 100%, 50%)`);const top=((100-this.colorComponents.lightness)*this.$colorpickerArea.height())/100;const left=(this.colorComponents.saturation*this.$colorpickerArea.width())/100;this.$colorpickerPointer.css({top:top-5+"px",left:left-5+"px",});const height=this.$colorSlider.height();const y=(this.colorComponents.hue*height)/360;this.$colorSliderPointer.css("top",Math.round(y-2));if(!this.props.noTransparency){const heightOpacity=this.$opacitySlider.height();const z=heightOpacity*(1-this.colorComponents.opacity/100.0);this.$opacitySliderPointer.css("top",Math.round(z-2));this.$opacitySlider.css("background","linear-gradient("+this.colorComponents.hex+" 0%, transparent 100%)");}}
_updateHex(hex){const rgb=convertCSSColorToRgba(hex);if(!rgb){return;}
Object.assign(this.colorComponents,{hex:hex},rgb,convertRgbToHsl(rgb.red,rgb.green,rgb.blue));this._updateCssColor();}
_updateRgba(r,g,b,a){const opacity=a||this.colorComponents.opacity;if(opacity<0.1&&(r>0.1||g>0.1||b>0.1)){a=100;}
const hex=convertRgbaToCSSColor(r,g,b);if(!hex){return;}
Object.assign(this.colorComponents,{red:r,green:g,blue:b},a===undefined?{}:{opacity:a},{hex:hex},convertRgbToHsl(r,g,b));this._updateCssColor();}
_updateHsl(h,s,l){let a=this.colorComponents.opacity;if(a<0.1&&l>0.1){a=100;}
const rgb=convertHslToRgb(h,s,l);if(!rgb){return;}
const hex=convertRgbaToCSSColor(rgb.red,rgb.green,rgb.blue);Object.assign(this.colorComponents,{hue:h,saturation:s,lightness:l},rgb,{hex:hex},{opacity:a});this._updateCssColor();}
_updateOpacity(a){if(a<0||a>100){return;}
Object.assign(this.colorComponents,{opacity:a});this._updateCssColor();}
_colorSelected(){this.props.onColorSelect(this.colorComponents);}
_updateCssColor(){const r=this.colorComponents.red;const g=this.colorComponents.green;const b=this.colorComponents.blue;const a=this.colorComponents.opacity;Object.assign(this.colorComponents,{cssColor:convertRgbaToCSSColor(r,g,b,a)});if(this.previewActive){this.props.onColorPreview(this.colorComponents);}}
_onKeypress(ev){if(ev.key==="Enter"){if(ev.target.tagName==="INPUT"){this._onChangeInputs(ev);}
ev.preventDefault();this.props.onInputEnter(ev);}}
_onClick(ev){if(this.props.stopClickPropagation){ev.stopPropagation();}
ev.originalEvent.__isColorpickerClick=true;$(ev.target).find("> .o_opacity_pointer, > .o_slider_pointer, > .o_picker_pointer").addBack(".o_opacity_pointer, .o_slider_pointer, .o_picker_pointer").focus();if(ev.target.dataset.colorMethod==="hex"&&!this.selectedHexValue){ev.target.select();this.selectedHexValue=ev.target.value;return;}
this.selectedHexValue="";}
_onMouseDownPicker(ev){this.pickerFlag=true;ev.preventDefault();this._onMouseMovePicker(ev);}
_onMouseMovePicker(ev){if(!this.pickerFlag){return;}
const offset=this.$colorpickerArea.offset();const top=ev.pageY-offset.top;const left=ev.pageX-offset.left;let saturation=Math.round((100*left)/this.$colorpickerArea.width());let lightness=Math.round((100*(this.$colorpickerArea.height()-top))/this.$colorpickerArea.height());saturation=clamp(saturation,0,100);lightness=clamp(lightness,0,100);this._updateHsl(this.colorComponents.hue,saturation,lightness);this._updateUI();}
_onMouseDownSlider(ev){this.sliderFlag=true;ev.preventDefault();this._onMouseMoveSlider(ev);}
_onMouseMoveSlider(ev){if(!this.sliderFlag){return;}
const y=ev.pageY-this.$colorSlider.offset().top;let hue=Math.round((360*y)/this.$colorSlider.height());hue=clamp(hue,0,360);this._updateHsl(hue,this.colorComponents.saturation,this.colorComponents.lightness);this._updateUI();}
_onMouseDownOpacitySlider(ev){this.opacitySliderFlag=true;ev.preventDefault();this._onMouseMoveOpacitySlider(ev);}
_onMouseMoveOpacitySlider(ev){if(!this.opacitySliderFlag||this.props.noTransparency){return;}
const y=ev.pageY-this.$opacitySlider.offset().top;let opacity=Math.round(100*(1-y/this.$opacitySlider.height()));opacity=clamp(opacity,0,100);this._updateOpacity(opacity);this._updateUI();}
_onChangeInputs(ev){switch($(ev.target).data("colorMethod")){case"hex":return;case"rgb":this._updateRgba(parseInt(this.$el.find(".o_red_input").val()),parseInt(this.$el.find(".o_green_input").val()),parseInt(this.$el.find(".o_blue_input").val()));break;case"hsl":this._updateHsl(parseInt(this.$el.find(".o_hue_input").val()),parseInt(this.$el.find(".o_saturation_input").val()),parseInt(this.$el.find(".o_lightness_input").val()));break;case"opacity":this._updateOpacity(parseInt(this.$el.find(".o_opacity_input").val()));break;}
this._updateUI();this._colorSelected();}
_onHexColorInput(ev){const hexColorValue=ev.target.value.replaceAll("#","");if(hexColorValue.length===6){this._updateHex(`#${hexColorValue}`);this._updateUI();this._colorSelected();}}}
return __exports;});;

/* /web/static/src/core/colors/colors.js */
odoo.define('@web/core/colors/colors',[],function(require){'use strict';let __exports={};const COLORS_BRIGHT=["#1f77b4","#ff7f0e","#aec7e8","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#875a7b","#c49c94","#e377c2","#dcd0d9","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#a5d8d7",];const COLORS_DARK=["#00ffff","#ff6347","#00ced1","#ffd700","#29ef29","#c5fabb","#fe4b4c","#ffb6c1","#ba87e9","#eadbf6","#c568af","#ecc1b8","#fda9e3","#BB86FC","#808080","#f2e8e8","#fcfe2d","#f8f8bc","#17becf","#10efed",];__exports.getColors=getColors;function getColors(colorScheme){return colorScheme==="dark"?COLORS_DARK:COLORS_BRIGHT;}
__exports.getColor=getColor;function getColor(index,colorScheme){const colors=getColors(colorScheme);return colors[index%colors.length];}
const DEFAULT_BG=__exports.DEFAULT_BG="#d3d3d3";__exports.getBorderWhite=getBorderWhite;function getBorderWhite(colorScheme){return colorScheme==="dark"?"rgba(0, 0, 0, 0.6)":"rgba(255,255,255,0.6)";}
const RGB_REGEX=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;__exports.hexToRGBA=hexToRGBA;function hexToRGBA(hex,opacity){const rgb=RGB_REGEX.exec(hex).slice(1,4).map((n)=>parseInt(n,16)).join(",");return`rgba(${rgb},${opacity})`;}
return __exports;});;

/* /web/static/src/core/commands/command_category.js */
odoo.define('@web/core/commands/command_category',['@web/core/registry'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const commandCategoryRegistry=registry.category("command_categories");commandCategoryRegistry.add("app",{},{sequence:10}).add("smart_action",{},{sequence:15}).add("actions",{},{sequence:30}).add("default",{},{sequence:50}).add("view_switcher",{},{sequence:100}).add("debug",{},{sequence:110}).add("disabled",{});return __exports;});;

/* /web/static/src/core/commands/command_hook.js */
odoo.define('@web/core/commands/command_hook',['@web/core/utils/hooks','@odoo/owl'],function(require){'use strict';let __exports={};const{useService}=require("@web/core/utils/hooks");const{useEffect}=require("@odoo/owl");__exports.useCommand=useCommand;function useCommand(name,action,options={}){const commandService=useService("command");useEffect(()=>commandService.add(name,action,options),()=>[]);}
return __exports;});;

/* /web/static/src/core/commands/command_palette.js */
odoo.define('@web/core/commands/command_palette',['@web/core/dialog/dialog','@web/core/hotkeys/hotkey_hook','@web/core/l10n/translation','@web/core/utils/concurrency','@web/core/utils/hooks','@web/core/utils/scrolling','@web/core/utils/search','@web/core/utils/timing','@web/core/browser/feature_detection','@web/core/utils/strings','@odoo/owl'],function(require){'use strict';let __exports={};const{Dialog}=require("@web/core/dialog/dialog");const{useHotkey}=require("@web/core/hotkeys/hotkey_hook");const{_t}=require("@web/core/l10n/translation");const{KeepLast,Race}=require("@web/core/utils/concurrency");const{useAutofocus,useService}=require("@web/core/utils/hooks");const{scrollTo}=require("@web/core/utils/scrolling");const{fuzzyLookup}=require("@web/core/utils/search");const{debounce}=require("@web/core/utils/timing");const{isMacOS,isMobileOS}=require("@web/core/browser/feature_detection");const{escapeRegExp}=require("@web/core/utils/strings");const{Component,onWillStart,onWillDestroy,EventBus,useRef,useState,markRaw,useExternalListener,}=require("@odoo/owl");const DEFAULT_PLACEHOLDER=_t("Search...");const DEFAULT_EMPTY_MESSAGE=_t("No result found");const FUZZY_NAMESPACES=["default"];function commandsWithinCategory(categoryName,categories){return(cmd)=>{const inCurrentCategory=categoryName===cmd.category;const fallbackCategory=categoryName==="default"&&!categories.includes(cmd.category);return inCurrentCategory||fallbackCategory;};}
__exports.splitCommandName=splitCommandName;function splitCommandName(name,searchValue){if(name){const splitName=name.split(new RegExp(`(${escapeRegExp(searchValue)})`,"ig"));return searchValue.length&&splitName.length>1?splitName:[name];}
return[];}
const DefaultCommandItem=__exports.DefaultCommandItem=class DefaultCommandItem extends Component{}
DefaultCommandItem.template="web.DefaultCommandItem";DefaultCommandItem.props={slots:{type:Object,optional:true},hotkey:{type:String,optional:true},hotkeyOptions:{type:String,optional:true},name:{type:String,optional:true},searchValue:{type:String,optional:true},executeCommand:{type:Function,optional:true},};const CommandPalette=__exports.CommandPalette=class CommandPalette extends Component{setup(){if(this.props.bus){const setConfig=({detail})=>this.setCommandPaletteConfig(detail);this.props.bus.addEventListener(`SET-CONFIG`,setConfig);onWillDestroy(()=>this.props.bus.removeEventListener(`SET-CONFIG`,setConfig));}
this.keyId=1;this.race=new Race();this.keepLast=new KeepLast();this._sessionId=CommandPalette.lastSessionId++;this.DefaultCommandItem=DefaultCommandItem;this.activeElement=useService("ui").activeElement;this.inputRef=useAutofocus();useHotkey("Enter",()=>this.executeSelectedCommand(),{bypassEditableProtection:true});useHotkey("Control+Enter",()=>this.executeSelectedCommand(true),{bypassEditableProtection:true,});useHotkey("ArrowUp",()=>this.selectCommandAndScrollTo("PREV"),{bypassEditableProtection:true,allowRepeat:true,});useHotkey("ArrowDown",()=>this.selectCommandAndScrollTo("NEXT"),{bypassEditableProtection:true,allowRepeat:true,});useExternalListener(window,"mousedown",this.onWindowMouseDown);this.state=useState({});this.root=useRef("root");this.listboxRef=useRef("listbox");onWillStart(()=>this.setCommandPaletteConfig(this.props.config));}
get commandsByCategory(){const categories=[];for(const category of this.categoryKeys){const commands=this.state.commands.filter(commandsWithinCategory(category,this.categoryKeys));if(commands.length){categories.push({commands,name:this.categoryNames[category],keyId:category,});}}
return categories;}
async setCommandPaletteConfig(config){this.configByNamespace=config.configByNamespace||{};this.state.FooterComponent=config.FooterComponent;this.providersByNamespace={default:[]};for(const provider of config.providers){const namespace=provider.namespace||"default";if(namespace in this.providersByNamespace){this.providersByNamespace[namespace].push(provider);}else{this.providersByNamespace[namespace]=[provider];}}
const{namespace,searchValue}=this.processSearchValue(config.searchValue||"");this.switchNamespace(namespace);this.state.searchValue=searchValue;await this.race.add(this.search(searchValue));}
async setCommands(namespace,options={}){this.categoryKeys=["default"];this.categoryNames={};const proms=this.providersByNamespace[namespace].map((provider)=>{const{provide}=provider;const result=provide(this.env,options);return result;});let commands=(await this.keepLast.add(Promise.all(proms))).flat();const namespaceConfig=this.configByNamespace[namespace]||{};if(options.searchValue&&FUZZY_NAMESPACES.includes(namespace)){commands=fuzzyLookup(options.searchValue,commands,(c)=>c.name);}else{if(namespaceConfig.categories){let commandsSorted=[];this.categoryKeys=namespaceConfig.categories;this.categoryNames=namespaceConfig.categoryNames||{};if(!this.categoryKeys.includes("default")){this.categoryKeys.push("default");}
for(const category of this.categoryKeys){commandsSorted=commandsSorted.concat(commands.filter(commandsWithinCategory(category,this.categoryKeys)));}
commands=commandsSorted;}}
this.state.commands=markRaw(commands.slice(0,100).map((command)=>({...command,keyId:this.keyId++,splitName:splitCommandName(command.name,options.searchValue),})));this.selectCommand(this.state.commands.length?0:-1);this.mouseSelectionActive=false;this.state.emptyMessage=(namespaceConfig.emptyMessage||DEFAULT_EMPTY_MESSAGE).toString();}
selectCommand(index){if(index===-1||index>=this.state.commands.length){this.state.selectedCommand=null;return;}
this.state.selectedCommand=markRaw(this.state.commands[index]);}
selectCommandAndScrollTo(type){this.mouseSelectionActive=false;const index=this.state.commands.indexOf(this.state.selectedCommand);if(index===-1){return;}
let nextIndex;if(type==="NEXT"){nextIndex=index<this.state.commands.length-1?index+1:0;}else if(type==="PREV"){nextIndex=index>0?index-1:this.state.commands.length-1;}
this.selectCommand(nextIndex);const command=this.listboxRef.el.querySelector(`#o_command_${nextIndex}`);scrollTo(command,{scrollable:this.listboxRef.el});}
onCommandClicked(event,index){event.preventDefault();this.selectCommand(index);const ctrlKey=isMacOS()?event.metaKey:event.ctrlKey;this.executeSelectedCommand(ctrlKey);}
async executeCommand(command){const config=await command.action();if(config){this.setCommandPaletteConfig(config);}else{this.props.close();}}
async executeSelectedCommand(ctrlKey){await this.searchValuePromise;const selectedCommand=this.state.selectedCommand;if(selectedCommand){if(!ctrlKey){this.executeCommand(selectedCommand);}else if(selectedCommand.href){window.open(selectedCommand.href,"_blank");}}}
onCommandMouseEnter(index){if(this.mouseSelectionActive){this.selectCommand(index);}else{this.mouseSelectionActive=true;}}
async search(searchValue){await this.setCommands(this.state.namespace,{searchValue,activeElement:this.activeElement,sessionId:this._sessionId,});if(this.inputRef.el){this.inputRef.el.focus();}}
debounceSearch(value){const{namespace,searchValue}=this.processSearchValue(value);if(namespace!=="default"&&this.state.namespace!==namespace){this.switchNamespace(namespace);}
this.state.searchValue=searchValue;this.searchValuePromise=this.lastDebounceSearch(searchValue).catch(()=>{this.searchValuePromise=null;});}
onSearchInput(ev){this.debounceSearch(ev.target.value);}
onKeyDown(ev){if(ev.key.toLowerCase()==="backspace"&&!ev.target.value.length&&!ev.repeat){this.switchNamespace("default");this.state.searchValue="";this.searchValuePromise=this.lastDebounceSearch("").catch(()=>{this.searchValuePromise=null;});}}
onWindowMouseDown(ev){if(!this.root.el.contains(ev.target)){this.props.close();}}
switchNamespace(namespace){if(this.lastDebounceSearch){this.lastDebounceSearch.cancel();}
const namespaceConfig=this.configByNamespace[namespace]||{};this.lastDebounceSearch=debounce((value)=>this.search(value),namespaceConfig.debounceDelay||0);this.state.namespace=namespace;this.state.placeholder=namespaceConfig.placeholder||DEFAULT_PLACEHOLDER.toString();}
processSearchValue(searchValue){let namespace="default";if(searchValue.length&&this.providersByNamespace[searchValue[0]]){namespace=searchValue[0];searchValue=searchValue.slice(1);}
return{namespace,searchValue};}
get isMacOS(){return isMacOS();}
get isMobileOS(){return isMobileOS();}}
CommandPalette.lastSessionId=0;CommandPalette.props={bus:{type:EventBus,optional:true},close:Function,config:Object,closeMe:{type:Function,optional:true},};CommandPalette.template="web.CommandPalette";CommandPalette.components={Dialog};return __exports;});;

/* /web/static/src/core/commands/command_service.js */
odoo.define('@web/core/commands/command_service',['@web/core/registry','@web/core/commands/command_palette','@odoo/owl'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const{CommandPalette}=require("@web/core/commands/command_palette");const{Component,EventBus}=require("@odoo/owl");const commandCategoryRegistry=registry.category("command_categories");const commandProviderRegistry=registry.category("command_provider");const commandSetupRegistry=registry.category("command_setup");class DefaultFooter extends Component{setup(){this.elements=commandSetupRegistry.getEntries().map((el)=>({namespace:el[0],name:el[1].name})).filter((el)=>el.name);}
onClick(namespace){this.props.switchNamespace(namespace);}}
DefaultFooter.template="web.DefaultFooter";const commandService=__exports.commandService={dependencies:["dialog","hotkey","ui"],start(env,{dialog,hotkey:hotkeyService,ui}){const registeredCommands=new Map();let nextToken=0;let isPaletteOpened=false;const bus=new EventBus();hotkeyService.add("control+k",openMainPalette,{bypassEditableProtection:true,global:true,});function openMainPalette(config={},onClose){const configByNamespace={};for(const provider of commandProviderRegistry.getAll()){const namespace=provider.namespace||"default";if(!configByNamespace[namespace]){configByNamespace[namespace]={categories:[],categoryNames:{},};}}
for(const[category,el]of commandCategoryRegistry.getEntries()){const namespace=el.namespace||"default";const name=el.name;if(namespace in configByNamespace){configByNamespace[namespace].categories.push(category);configByNamespace[namespace].categoryNames[category]=name;}}
for(const[namespace,{emptyMessage,debounceDelay,placeholder},]of commandSetupRegistry.getEntries()){if(namespace in configByNamespace){if(emptyMessage){configByNamespace[namespace].emptyMessage=emptyMessage;}
if(debounceDelay!==undefined){configByNamespace[namespace].debounceDelay=debounceDelay;}
if(placeholder){configByNamespace[namespace].placeholder=placeholder;}}}
config=Object.assign({configByNamespace,FooterComponent:DefaultFooter,providers:commandProviderRegistry.getAll(),},config);return openPalette(config,onClose);}
function openPalette(config,onClose){if(isPaletteOpened){bus.trigger("SET-CONFIG",config);return;}
isPaletteOpened=true;dialog.add(CommandPalette,{config,bus,},{onClose:()=>{isPaletteOpened=false;if(onClose){onClose();}},});}
function registerCommand(command,options){if(!command.name||!command.action||typeof command.action!=="function"){throw new Error("A Command must have a name and an action function.");}
const registration=Object.assign({},command,options);if(registration.identifier){const commandsArray=Array.from(registeredCommands.values());const sameName=commandsArray.find((com)=>com.name===registration.name);if(sameName){if(registration.identifier!==sameName.identifier){registration.name+=` (${registration.identifier})`;sameName.name+=` (${sameName.identifier})`;}}else{const sameFullName=commandsArray.find((com)=>com.name===registration.name+`(${registration.identifier})`);if(sameFullName){registration.name+=` (${registration.identifier})`;}}}
if(registration.hotkey){const action=async()=>{const commandService=env.services.command;const config=await command.action();if(!isPaletteOpened&&config){commandService.openPalette(config);}};registration.removeHotkey=hotkeyService.add(registration.hotkey,action,{...options.hotkeyOptions,global:registration.global,isAvailable:(...args)=>{let available=true;if(registration.isAvailable){available=registration.isAvailable(...args);}
if(available&&options.hotkeyOptions?.isAvailable){available=options.hotkeyOptions?.isAvailable(...args);}
return available;},});}
const token=nextToken++;registeredCommands.set(token,registration);if(!options.activeElement){Promise.resolve().then(()=>{registration.activeElement=ui.activeElement;});}
return token;}
function unregisterCommand(token){const cmd=registeredCommands.get(token);if(cmd&&cmd.removeHotkey){cmd.removeHotkey();}
registeredCommands.delete(token);}
return{add(name,action,options={}){const token=registerCommand({name,action},options);return()=>{unregisterCommand(token);};},getCommands(activeElement){return[...registeredCommands.values()].filter((command)=>command.activeElement===activeElement||command.global);},openMainPalette,openPalette,};},};registry.category("services").add("command",commandService);return __exports;});;

/* /web/static/src/core/commands/default_providers.js */
odoo.define('@web/core/commands/default_providers',['@web/core/browser/feature_detection','@web/core/hotkeys/hotkey_hook','@web/core/l10n/translation','@web/core/registry','@web/core/utils/strings','@web/core/utils/ui','@web/core/commands/command_palette','@odoo/owl'],function(require){'use strict';let __exports={};const{isMacOS}=require("@web/core/browser/feature_detection");const{useHotkey}=require("@web/core/hotkeys/hotkey_hook");const{_t}=require("@web/core/l10n/translation");const{registry}=require("@web/core/registry");const{capitalize}=require("@web/core/utils/strings");const{getVisibleElements}=require("@web/core/utils/ui");const{DefaultCommandItem}=require("@web/core/commands/command_palette");const{Component}=require("@odoo/owl");const commandSetupRegistry=registry.category("command_setup");commandSetupRegistry.add("default",{emptyMessage:_t("No command found"),placeholder:_t("Search for a command..."),});const HotkeyCommandItem=__exports.HotkeyCommandItem=class HotkeyCommandItem extends Component{setup(){useHotkey(this.props.hotkey,this.props.executeCommand);}
getKeysToPress(command){const{hotkey}=command;let result=hotkey.split("+");if(isMacOS()){result=result.map((x)=>x.replace("control","command")).map((x)=>x.replace("alt","control"));}
return result.map((key)=>key.toUpperCase());}}
HotkeyCommandItem.template="web.HotkeyCommandItem";const commandCategoryRegistry=registry.category("command_categories");const commandProviderRegistry=registry.category("command_provider");commandProviderRegistry.add("command",{provide:(env,options={})=>{const commands=env.services.command.getCommands(options.activeElement).map((cmd)=>{cmd.category=commandCategoryRegistry.contains(cmd.category)?cmd.category:"default";return cmd;}).filter((command)=>command.isAvailable===undefined||command.isAvailable());const uniqueCommands=commands.filter((obj,index)=>{return(index===commands.findIndex((o)=>obj.name===o.name&&obj.category===o.category));});return uniqueCommands.map((command)=>({Component:command.hotkey?HotkeyCommandItem:DefaultCommandItem,action:command.action,category:command.category,name:command.name,props:{hotkey:command.hotkey,hotkeyOptions:command.hotkeyOptions,},}));},});commandProviderRegistry.add("data-hotkeys",{provide:(env,options={})=>{const commands=[];const overlayModifier=registry.category("services").get("hotkey").overlayModifier;for(const el of getVisibleElements(options.activeElement,"[data-hotkey]:not(:disabled)")){const closest=el.closest("[data-command-category]");const category=closest?closest.dataset.commandCategory:"default";if(category==="disabled"){continue;}
const description=el.title||el.dataset.bsOriginalTitle||el.dataset.tooltip||el.placeholder||(el.innerText&&`${el.innerText.slice(0, 50)}${el.innerText.length > 50 ? "..." : ""}`)||_t("no description provided");commands.push({Component:HotkeyCommandItem,action:()=>{el.focus();el.click();},category,name:capitalize(description.trim().toLowerCase()),props:{hotkey:`${overlayModifier}+${el.dataset.hotkey}`,},});}
return commands;},});return __exports;});;

/* /web/static/src/core/confirmation_dialog/confirmation_dialog.js */
odoo.define('@web/core/confirmation_dialog/confirmation_dialog',['@web/core/dialog/dialog','@web/core/l10n/translation','@web/core/utils/hooks','@odoo/owl'],function(require){'use strict';let __exports={};const{Dialog}=require("@web/core/dialog/dialog");const{_t}=require("@web/core/l10n/translation");const{useChildRef}=require("@web/core/utils/hooks");const{Component}=require("@odoo/owl");const deleteConfirmationMessage=__exports.deleteConfirmationMessage=_t(`Ready to make your record disappear into thin air? Are you sure?
It will be gone forever!

Think twice before you click that 'Delete' button!`);const ConfirmationDialog=__exports.ConfirmationDialog=class ConfirmationDialog extends Component{setup(){this.env.dialogData.dismiss=()=>this._dismiss();this.modalRef=useChildRef();this.isProcess=false;}
async _cancel(){return this.execButton(this.props.cancel);}
async _confirm(){return this.execButton(this.props.confirm);}
async _dismiss(){return this.execButton(this.props.dismiss||this.props.cancel);}
setButtonsDisabled(disabled){this.isProcess=disabled;if(!this.modalRef.el){return;}
for(const button of[...this.modalRef.el.querySelectorAll(".modal-footer button")]){button.disabled=disabled;}}
async execButton(callback){if(this.isProcess){return;}
this.setButtonsDisabled(true);if(callback){let shouldClose;try{shouldClose=await callback();}catch(e){this.props.close();throw e;}
if(shouldClose===false){this.setButtonsDisabled(false);return;}}
this.props.close();}}
ConfirmationDialog.template="web.ConfirmationDialog";ConfirmationDialog.components={Dialog};ConfirmationDialog.props={close:Function,title:{validate:(m)=>{return(typeof m==="string"||(typeof m==="object"&&typeof m.toString==="function"));},optional:true,},body:String,confirm:{type:Function,optional:true},confirmLabel:{type:String,optional:true},confirmClass:{type:String,optional:true},cancel:{type:Function,optional:true},cancelLabel:{type:String,optional:true},dismiss:{type:Function,optional:true},};ConfirmationDialog.defaultProps={confirmLabel:_t("Ok"),cancelLabel:_t("Cancel"),confirmClass:"btn-primary",title:_t("Confirmation"),};const AlertDialog=__exports.AlertDialog=class AlertDialog extends ConfirmationDialog{}
AlertDialog.template="web.AlertDialog";AlertDialog.props={...ConfirmationDialog.props,contentClass:{type:String,optional:true},};AlertDialog.defaultProps={...ConfirmationDialog.defaultProps,title:_t("Alert"),};return __exports;});;

/* /web/static/src/core/context.js */
odoo.define('@web/core/context',['@web/core/py_js/py','@web/core/py_js/py_interpreter'],function(require){'use strict';let __exports={};const{evaluateExpr,parseExpr}=require("@web/core/py_js/py");const{evaluate}=require("@web/core/py_js/py_interpreter");__exports.makeContext=makeContext;function makeContext(contexts,initialEvaluationContext){const evaluationContext=Object.assign({},initialEvaluationContext);const context={};for(let ctx of contexts){if(ctx!==""){ctx=typeof ctx==="string"?evaluateExpr(ctx,evaluationContext):ctx;Object.assign(context,ctx);Object.assign(evaluationContext,context);}}
return context;}
__exports.evalPartialContext=evalPartialContext;function evalPartialContext(_context,evaluationContext={}){const ast=parseExpr(_context);const context={};for(const key in ast.value){const value=ast.value[key];try{context[key]=evaluate(value,evaluationContext);}catch{}}
return context;}
return __exports;});;

/* /web/static/src/core/currency.js */
odoo.define('@web/core/currency',['@web/core/utils/numbers','@web/session','@web/core/utils/strings'],function(require){'use strict';let __exports={};const{formatFloat,humanNumber}=require("@web/core/utils/numbers");const{session}=require("@web/session");const{nbsp}=require("@web/core/utils/strings");const currencies=__exports.currencies=session.currencies||{};delete session.currencies;__exports.getCurrency=getCurrency;function getCurrency(id){return currencies[id];}
__exports.formatCurrency=formatCurrency;function formatCurrency(amount,currencyId,options={}){const currency=getCurrency(currencyId);const digits=options.digits||(currency&&currency.digits);let formattedAmount;if(options.humanReadable){formattedAmount=humanNumber(amount,{decimals:digits?digits[1]:2});}else{formattedAmount=formatFloat(amount,{digits});}
if(!currency||options.noSymbol){return formattedAmount;}
const formatted=[currency.symbol,formattedAmount];if(currency.position==="after"){formatted.reverse();}
return formatted.join(nbsp);}
return __exports;});;

/* /web/static/src/core/datetime/datetime_hook.js */
odoo.define('@web/core/datetime/datetime_hook',['@odoo/owl','@web/core/popover/popover_hook','@web/core/utils/hooks'],function(require){'use strict';let __exports={};const{onPatched,onWillRender,useEffect,useRef}=require("@odoo/owl");const{usePopover}=require("@web/core/popover/popover_hook");const{useService}=require("@web/core/utils/hooks");__exports.useDateTimePicker=useDateTimePicker;function useDateTimePicker(hookParams){const datetimePicker=useService("datetime_picker");if(typeof hookParams.target==="string"){const target=useRef(hookParams.target);Object.defineProperty(hookParams,"target",{get(){return target.el;},});}
const inputRefs=[useRef("start-date"),useRef("end-date")];const getInputs=()=>inputRefs.map((ref)=>ref?.el);const{computeBasePickerProps,state,open,focusIfNeeded,enable}=datetimePicker.create(hookParams,getInputs,usePopover);onWillRender(computeBasePickerProps);useEffect(enable,getInputs);onPatched(focusIfNeeded);return{state,open};}
return __exports;});;

/* /web/static/src/core/datetime/datetime_input.js */
odoo.define('@web/core/datetime/datetime_input',['@odoo/owl','@web/core/utils/objects','@web/core/datetime/datetime_hook','@web/core/datetime/datetime_picker'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");const{omit}=require("@web/core/utils/objects");const{useDateTimePicker}=require("@web/core/datetime/datetime_hook");const{DateTimePicker}=require("@web/core/datetime/datetime_picker");const dateTimeInputOwnProps={format:{type:String,optional:true},id:{type:String,optional:true},onChange:{type:Function,optional:true},onApply:{type:Function,optional:true},placeholder:{type:String,optional:true},};const DateTimeInput=__exports.DateTimeInput=class DateTimeInput extends Component{static props={...DateTimePicker.props,...dateTimeInputOwnProps,};static template="web.DateTimeInput";setup(){const getPickerProps=()=>omit(this.props,...Object.keys(dateTimeInputOwnProps));useDateTimePicker({format:this.props.format,get pickerProps(){return getPickerProps();},onApply:(...args)=>this.props.onApply?.(...args),onChange:(...args)=>this.props.onChange?.(...args),});}}
return __exports;});;

/* /web/static/src/core/datetime/datetime_picker.js */
odoo.define('@web/core/datetime/datetime_picker',['@odoo/owl','@web/core/l10n/translation','@web/core/l10n/dates','@web/core/l10n/localization','@web/core/utils/arrays'],function(require){'use strict';let __exports={};const{Component,onWillRender,onWillUpdateProps,useState}=require("@odoo/owl");const{_t}=require("@web/core/l10n/translation");const{MAX_VALID_DATE,MIN_VALID_DATE,clampDate,is24HourFormat,isInRange,isMeridiemFormat,today,}=require("@web/core/l10n/dates");const{localization}=require("@web/core/l10n/localization");const{ensureArray}=require("@web/core/utils/arrays");const{DateTime,Info}=luxon;const earliest=(date1,date2)=>(date1<date2?date1:date2);const getStartOfDecade=(date)=>Math.floor(date.year/10)*10;const getStartOfCentury=(date)=>Math.floor(date.year/100)*100;const getStartOfWeek=(date)=>{const{weekStart}=localization;return date.set({weekday:date.weekday<weekStart?weekStart-7:weekStart});};const latest=(date1,date2)=>(date1>date2?date1:date2);const numberRange=(min,max)=>[...Array(max-min)].map((_,i)=>i+min);const parseLimitDate=(value,defaultValue)=>clampDate(value==="today"?today():value||defaultValue,MIN_VALID_DATE,MAX_VALID_DATE);const toDateItem=({isOutOfRange=false,isValid=true,label,range,extraClass})=>({id:range[0].toISODate(),includesToday:isInRange(today(),range),isOutOfRange,isValid,label:String(range[0][label]),range,extraClass,});const toWeekItem=(weekDayItems)=>({number:weekDayItems[3].range[0].weekNumber,days:weekDayItems,});const HOURS=numberRange(0,24).map((hour)=>[hour,String(hour)]);const MINUTES=numberRange(0,60).map((minute)=>[minute,String(minute||0).padStart(2,"0")]);const SECONDS=[...MINUTES];const MERIDIEMS=["AM","PM"];const PRECISION_LEVELS=new Map().set("days",{mainTitle:_t("Select month"),nextTitle:_t("Next month"),prevTitle:_t("Previous month"),step:{month:1},getTitle:(date,{additionalMonth})=>{const titles=[`${date.monthLong} ${date.year}`];if(additionalMonth){const next=date.plus({month:1});titles.push(`${next.monthLong} ${next.year}`);}
return titles;},getItems:(date,{additionalMonth,maxDate,minDate,showWeekNumbers,isDateValid,dayCellClass})=>{const startDates=[date];if(additionalMonth){startDates.push(date.plus({month:1}));}
return startDates.map((date,i)=>{const monthRange=[date.startOf("month"),date.endOf("month")];const weeks=[];let startOfNextWeek=getStartOfWeek(monthRange[0]);for(let w=0;w<6;w++){const weekDayItems=[];for(let d=0;d<7;d++){const day=startOfNextWeek.plus({day:d});const range=[day,day.endOf("day")];const dayItem=toDateItem({isOutOfRange:!isInRange(day,monthRange),isValid:isInRange(range,[minDate,maxDate])&&isDateValid?.(day),label:"day",range,extraClass:dayCellClass?.(day)||"",});weekDayItems.push(dayItem);if(d===6){startOfNextWeek=day.plus({day:1});}}
weeks.push(toWeekItem(weekDayItems));}
const daysOfWeek=weeks[0].days.map((d)=>[d.range[0].weekdayShort,d.range[0].weekdayLong,Info.weekdays("narrow",{locale:d.range[0].locale})[d.range[0].weekday-1],]);if(showWeekNumbers){daysOfWeek.unshift(["#",_t("Week numbers"),"#"]);}
return{id:`__month__${i}`,number:monthRange[0].month,daysOfWeek,weeks,};});},}).set("months",{mainTitle:_t("Select year"),nextTitle:_t("Next year"),prevTitle:_t("Previous year"),step:{year:1},getTitle:(date)=>String(date.year),getItems:(date,{maxDate,minDate})=>{const startOfYear=date.startOf("year");return numberRange(0,12).map((i)=>{const startOfMonth=startOfYear.plus({month:i});const range=[startOfMonth,startOfMonth.endOf("month")];return toDateItem({isValid:isInRange(range,[minDate,maxDate]),label:"monthShort",range,});});},}).set("years",{mainTitle:_t("Select decade"),nextTitle:_t("Next decade"),prevTitle:_t("Previous decade"),step:{year:10},getTitle:(date)=>`${getStartOfDecade(date) - 1} - ${getStartOfDecade(date) + 10}`,getItems:(date,{maxDate,minDate})=>{const startOfDecade=date.startOf("year").set({year:getStartOfDecade(date)});return numberRange(-GRID_MARGIN,GRID_COUNT+GRID_MARGIN).map((i)=>{const startOfYear=startOfDecade.plus({year:i});const range=[startOfYear,startOfYear.endOf("year")];return toDateItem({isOutOfRange:i<0||i>=GRID_COUNT,isValid:isInRange(range,[minDate,maxDate]),label:"year",range,});});},}).set("decades",{mainTitle:_t("Select century"),nextTitle:_t("Next century"),prevTitle:_t("Previous century"),step:{year:100},getTitle:(date)=>`${getStartOfCentury(date) - 10} - ${getStartOfCentury(date) + 100}`,getItems:(date,{maxDate,minDate})=>{const startOfCentury=date.startOf("year").set({year:getStartOfCentury(date)});return numberRange(-GRID_MARGIN,GRID_COUNT+GRID_MARGIN).map((i)=>{const startOfDecade=startOfCentury.plus({year:i*10});const range=[startOfDecade,startOfDecade.plus({year:10,millisecond:-1})];return toDateItem({label:"year",isOutOfRange:i<0||i>=GRID_COUNT,isValid:isInRange(range,[minDate,maxDate]),range,});});},});const GRID_COUNT=10;const GRID_MARGIN=1;const NULLABLE_DATETIME_PROPERTY=[DateTime,{value:false},{value:null}];const DateTimePicker=__exports.DateTimePicker=class DateTimePicker extends Component{static props={focusedDateIndex:{type:Number,optional:true},showWeekNumbers:{type:Boolean,optional:true},daysOfWeekFormat:{type:String,optional:true},maxDate:{type:[NULLABLE_DATETIME_PROPERTY,{value:"today"}],optional:true},maxPrecision:{type:[...PRECISION_LEVELS.keys()].map((value)=>({value})),optional:true,},minDate:{type:[NULLABLE_DATETIME_PROPERTY,{value:"today"}],optional:true},minPrecision:{type:[...PRECISION_LEVELS.keys()].map((value)=>({value})),optional:true,},onSelect:{type:Function,optional:true},range:{type:Boolean,optional:true},rounding:{type:Number,optional:true},slots:{type:Object,shape:{bottom_left:{type:Object,optional:true},buttons:{type:Object,optional:true},},optional:true,},type:{type:[{value:"date"},{value:"datetime"}],optional:true},value:{type:[NULLABLE_DATETIME_PROPERTY,{type:Array,element:NULLABLE_DATETIME_PROPERTY},],optional:true,},isDateValid:{type:Function,optional:true},dayCellClass:{type:Function,optional:true},};static defaultProps={focusedDateIndex:0,daysOfWeekFormat:"short",maxPrecision:"decades",minPrecision:"days",rounding:5,type:"datetime",};static template="web.DateTimePicker";get activePrecisionLevel(){return PRECISION_LEVELS.get(this.state.precision);}
get isLastPrecisionLevel(){return(this.allowedPrecisionLevels.indexOf(this.state.precision)===this.allowedPrecisionLevels.length-1);}
get titles(){return ensureArray(this.title);}
setup(){this.availableHours=HOURS;this.availableMinutes=MINUTES;this.allowedPrecisionLevels=[];this.items=[];this.title="";this.shouldAdjustFocusDate=false;this.state=useState({focusDate:null,hoveredDate:null,timeValues:[],precision:this.props.minPrecision,});this.onPropsUpdated(this.props);onWillUpdateProps((nextProps)=>this.onPropsUpdated(nextProps));onWillRender(()=>this.onWillRender());}
onPropsUpdated(props){this.values=ensureArray(props.value).map((value)=>value&&!value.isValid?null:value);this.availableHours=HOURS;this.availableMinutes=MINUTES.filter((minute)=>!(minute[0]%props.rounding));this.availableSeconds=props.rounding?[]:SECONDS;this.allowedPrecisionLevels=this.filterPrecisionLevels(props.minPrecision,props.maxPrecision);this.additionalMonth=props.range&&!this.env.isSmall;this.maxDate=parseLimitDate(props.maxDate,MAX_VALID_DATE);this.minDate=parseLimitDate(props.minDate,MIN_VALID_DATE);if(this.props.type==="date"){this.maxDate=this.maxDate.endOf("day");this.minDate=this.minDate.startOf("day");}
if(this.maxDate<this.minDate){throw new Error(`DateTimePicker error: given "maxDate" comes before "minDate".`);}
const timeValues=this.values.map((val)=>[(val||DateTime.local()).hour,val?.minute||0,val?.second||0,]);if(props.range){this.state.timeValues=timeValues;}else{this.state.timeValues=[];this.state.timeValues[props.focusedDateIndex]=timeValues[props.focusedDateIndex];}
this.shouldAdjustFocusDate=!props.range;this.adjustFocus(this.values,props.focusedDateIndex);this.handle12HourSystem();this.state.timeValues=this.state.timeValues.map((timeValue)=>timeValue.map(String));}
onWillRender(){const{hoveredDate}=this.state;const precision=this.activePrecisionLevel;const getterParams={additionalMonth:this.additionalMonth,maxDate:this.maxDate,minDate:this.minDate,showWeekNumbers:this.props.showWeekNumbers??!this.props.range,isDateValid:this.props.isDateValid,dayCellClass:this.props.dayCellClass,};const referenceDate=this.state.focusDate;this.title=precision.getTitle(referenceDate,getterParams);this.items=precision.getItems(referenceDate,getterParams);this.selectedRange=[...this.values];this.highlightedRange=[...this.values];if(hoveredDate){[this.selectedRange]=this.applyValueAtIndex(hoveredDate,this.props.focusedDateIndex);if(this.props.range&&this.selectedRange.every(Boolean)){this.highlightedRange=[earliest(this.selectedRange[0],this.values[0]),latest(this.selectedRange[1],this.values[1]),];}}}
adjustFocus(values,focusedDateIndex){if(!this.shouldAdjustFocusDate&&this.state.focusDate&&focusedDateIndex===this.props.focusedDateIndex){return;}
let dateToFocus=values[focusedDateIndex]||values[focusedDateIndex===1?0:1]||today();if(this.additionalMonth&&focusedDateIndex===1&&values[0]&&values[1]&&values[0].month!==values[1].month){dateToFocus=dateToFocus.minus({month:1});}
this.shouldAdjustFocusDate=false;this.state.focusDate=this.clamp(dateToFocus.startOf("month"));}
applyValueAtIndex(value,valueIndex){const result=[...this.values];if(this.props.range){if((result[0]&&value.endOf("day")<result[0].startOf("day"))||(result[1]&&!result[0])){valueIndex=0;}else if((result[1]&&result[1].endOf("day")<value.startOf("day"))||(result[0]&&!result[1])){valueIndex=1;}}
result[valueIndex]=value;return[result,valueIndex];}
clamp(value){return clampDate(value,this.minDate,this.maxDate);}
filterPrecisionLevels(minPrecision,maxPrecision){const levels=[...PRECISION_LEVELS.keys()];return levels.slice(levels.indexOf(minPrecision),levels.indexOf(maxPrecision)+1);}
getActiveRangeInfo({isOutOfRange,range}){const result={isSelected:!isOutOfRange&&isInRange(this.selectedRange,range),isSelectStart:false,isSelectEnd:false,isHighlighted:!isOutOfRange&&isInRange(this.highlightedRange,range),isHighlightStart:false,isHighlightEnd:false,isCurrent:false,};if(this.props.range){if(result.isSelected){const[selectStart,selectEnd]=this.selectedRange;result.isSelectStart=!selectStart||isInRange(selectStart,range);result.isSelectEnd=!selectEnd||isInRange(selectEnd,range);}
if(result.isHighlighted){const[currentStart,currentEnd]=this.highlightedRange;result.isHighlightStart=!currentStart||isInRange(currentStart,range);result.isHighlightEnd=!currentEnd||isInRange(currentEnd,range);}
result.isCurrent=!isOutOfRange&&(isInRange(this.values[0],range)||isInRange(this.values[1],range));}else{result.isSelectStart=result.isSelectEnd=result.isSelected;result.isHighlightStart=result.isHighlightEnd=result.isHighlighted;}
return result;}
getTimeValues(valueIndex){let[hour,minute,second]=this.state.timeValues[valueIndex].map(Number);if(this.is12HourFormat&&this.meridiems&&this.state.timeValues[valueIndex][3]==="PM"){hour+=12;}
return[hour,minute,second];}
handle12HourSystem(){if(isMeridiemFormat()){this.meridiems=MERIDIEMS.map((m)=>[m,m]);for(const timeValues of this.state.timeValues){if(timeValues){timeValues.push(MERIDIEMS[Math.floor(timeValues[0]/12)||0]);}}}
this.is12HourFormat=!is24HourFormat();if(this.is12HourFormat){this.availableHours=[[0,HOURS[12][1]],...HOURS.slice(1,12)];for(const timeValues of this.state.timeValues){if(timeValues){timeValues[0]%=12;}}}}
isSelectedDate({range}){return this.values.some((value)=>isInRange(value,range));}
next(ev){ev.preventDefault();const{step}=this.activePrecisionLevel;this.state.focusDate=this.clamp(this.state.focusDate.plus(step));}
previous(ev){ev.preventDefault();const{step}=this.activePrecisionLevel;this.state.focusDate=this.clamp(this.state.focusDate.minus(step));}
selectTime(valueIndex){const value=this.values[valueIndex]||today();this.validateAndSelect(value,valueIndex);}
validateAndSelect(value,valueIndex){if(!this.props.onSelect){return false;}
const[result,finalIndex]=this.applyValueAtIndex(value,valueIndex);if(this.props.type==="datetime"){const[hour,minute,second]=this.getTimeValues(finalIndex);result[finalIndex]=result[finalIndex].set({hour,minute,second});}
if(!isInRange(result[finalIndex],[this.minDate,this.maxDate])){return false;}
this.props.onSelect(result.length===2?result:result[0]);return true;}
zoomIn(date){const index=this.allowedPrecisionLevels.indexOf(this.state.precision)-1;if(index in this.allowedPrecisionLevels){this.state.focusDate=this.clamp(date);this.state.precision=this.allowedPrecisionLevels[index];return true;}
return false;}
zoomOut(){const index=this.allowedPrecisionLevels.indexOf(this.state.precision)+1;if(index in this.allowedPrecisionLevels){this.state.precision=this.allowedPrecisionLevels[index];return true;}
return false;}
zoomOrSelect(dateItem){if(!dateItem.isValid){return;}
if(this.zoomIn(dateItem.range[0])){return;}
const[value]=dateItem.range;const valueIndex=this.props.focusedDateIndex;const isValid=this.validateAndSelect(value,valueIndex);this.shouldAdjustFocusDate=isValid&&!this.props.range;}}
return __exports;});;

/* /web/static/src/core/datetime/datetime_picker_popover.js */
odoo.define('@web/core/datetime/datetime_picker_popover',['@odoo/owl','@web/core/hotkeys/hotkey_hook','@web/core/datetime/datetime_picker'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");const{useHotkey}=require("@web/core/hotkeys/hotkey_hook");const{DateTimePicker}=require("@web/core/datetime/datetime_picker");const DateTimePickerPopover=__exports.DateTimePickerPopover=class DateTimePickerPopover extends Component{static components={DateTimePicker};static props={close:Function,pickerProps:{type:Object,shape:DateTimePicker.props},};static template="web.DateTimePickerPopover";get isDateTimeRange(){return(this.props.pickerProps.type==="datetime"||Array.isArray(this.props.pickerProps.value));}
setup(){useHotkey("enter",()=>this.props.close());}}
return __exports;});;

/* /web/static/src/core/datetime/datetimepicker_service.js */
odoo.define('@web/core/datetime/datetimepicker_service',['@odoo/owl','@web/core/l10n/dates','@web/core/popover/popover_hook','@web/core/registry','@web/core/utils/arrays','@web/core/utils/objects','@web/core/datetime/datetime_picker','@web/core/datetime/datetime_picker_popover'],function(require){'use strict';let __exports={};const{markRaw,reactive}=require("@odoo/owl");const{areDatesEqual,formatDate,formatDateTime,parseDate,parseDateTime}=require("@web/core/l10n/dates");const{makePopover}=require("@web/core/popover/popover_hook");const{registry}=require("@web/core/registry");const{ensureArray,zip,zipWith}=require("@web/core/utils/arrays");const{deepCopy,shallowEqual}=require("@web/core/utils/objects");const{DateTimePicker}=require("@web/core/datetime/datetime_picker");const{DateTimePickerPopover}=require("@web/core/datetime/datetime_picker_popover");const arePropsEqual=(obj1,obj2)=>shallowEqual(obj1,obj2,(a,b)=>areDatesEqual(a,b)||shallowEqual(a,b));const FOCUS_CLASSNAME="text-primary";const formatters={date:formatDate,datetime:formatDateTime,};const listenedElements=new WeakSet();const parsers={date:parseDate,datetime:parseDateTime,};const datetimePickerService=__exports.datetimePickerService={dependencies:["popover"],start(env,{popover:popoverService}){return{create:(hookParams,getInputs=()=>[hookParams.target,null],createPopover=(...args)=>makePopover(popoverService,...args))=>{const popover=createPopover(DateTimePickerPopover,{onClose:()=>{if(!allowOnClose){return;}
updateValueFromInputs();apply();setFocusClass(null);if(restoreTargetMargin){restoreTargetMargin();restoreTargetMargin=null;}},});const apply=()=>{if(areDatesEqual(lastInitialProps?.value,deepCopy(pickerProps.value))){return;}
inputsChanged=ensureArray(pickerProps.value).map(()=>false);hookParams.onApply?.(pickerProps.value);};const computeBasePickerProps=()=>{const nextInitialProps=markValuesRaw(hookParams.pickerProps);const propsCopy=deepCopy(nextInitialProps);if(lastInitialProps&&arePropsEqual(lastInitialProps,propsCopy)){return;}
lastInitialProps=propsCopy;inputsChanged=ensureArray(lastInitialProps.value).map(()=>false);for(const[key,value]of Object.entries(nextInitialProps)){if(pickerProps[key]!==value&&!areDatesEqual(pickerProps[key],value)){pickerProps[key]=value;}}};const focusActiveInput=()=>{const inputEl=getInput(pickerProps.focusedDateIndex);if(!inputEl){shouldFocus=true;return;}
const{activeElement}=inputEl.ownerDocument;if(activeElement!==inputEl){inputEl.focus();}
setInputFocus(inputEl);};const getInput=(valueIndex)=>{const el=getInputs()[valueIndex];if(el&&document.body.contains(el)){return el;}
return null;};const getPopoverTarget=()=>{if(hookParams.target){return hookParams.target;}
if(pickerProps.range){let parentElement=getInput(0).parentElement;const inputEls=getInputs();while(parentElement&&!inputEls.every((inputEl)=>parentElement.contains(inputEl))){parentElement=parentElement.parentElement;}
return parentElement||getInput(0);}else{return getInput(0);}};const markValuesRaw=(obj)=>{const copy={};for(const[key,value]of Object.entries(obj)){if(value&&typeof value==="object"){copy[key]=markRaw(value);}else{copy[key]=value;}}
return copy;};const onInputChange=(ev)=>{updateValueFromInputs();inputsChanged[ev.target===getInput(1)?1:0]=true;if(!popover.isOpen||inputsChanged.every(Boolean)){saveAndClose();}};const onInputClick=({target})=>{openPicker(target===getInput(1)?1:0);};const onInputFocus=({target})=>{pickerProps.focusedDateIndex=target===getInput(1)?1:0;setInputFocus(target);};const onInputKeydown=(ev)=>{switch(ev.key){case"Enter":case"Escape":{return saveAndClose();}
case"Tab":{if(!getInput(0)||!getInput(1)||ev.target!==getInput(ev.shiftKey?1:0)){return saveAndClose();}}}};const openPicker=(inputIndex)=>{pickerProps.focusedDateIndex=inputIndex;if(!popover.isOpen){const popoverTarget=getPopoverTarget();if(env.isSmall){const{marginBottom}=popoverTarget.style;popoverTarget.style.marginBottom=`100vh`;popoverTarget.scrollIntoView(true);restoreTargetMargin=async()=>{popoverTarget.style.marginBottom=marginBottom;};}
popover.open(popoverTarget,{pickerProps});}
focusActiveInput();};const safeConvert=(operation,value)=>{const{type}=pickerProps;const convertFn=(operation==="format"?formatters:parsers)[type];try{return[convertFn(value,{format:hookParams.format}),null];}catch(error){if(error?.name==="ConversionError"){return[null,error];}else{throw error;}}};const saveAndClose=()=>{if(popover.isOpen){popover.close();}else{apply();}};const setFocusClass=(input)=>{for(const el of getInputs()){if(el){el.classList.toggle(FOCUS_CLASSNAME,popover.isOpen&&el===input);}}};const setInputFocus=(inputEl)=>{inputEl.selectionStart=0;inputEl.selectionEnd=inputEl.value.length;setFocusClass(inputEl);shouldFocus=false;};const updateInput=(el,value)=>{if(!el){return;}
const[formattedValue]=safeConvert("format",value);el.value=formattedValue||"";};const updateValue=(value)=>{const previousValue=pickerProps.value;pickerProps.value=value;if(areDatesEqual(previousValue,pickerProps.value)){return;}
if(pickerProps.range){const[prevStart,prevEnd]=ensureArray(previousValue);const[nextStart,nextEnd]=ensureArray(pickerProps.value);if((pickerProps.focusedDateIndex===0&&areDatesEqual(prevEnd,nextEnd))||(pickerProps.focusedDateIndex===1&&areDatesEqual(prevStart,nextStart))){pickerProps.focusedDateIndex=pickerProps.focusedDateIndex===1?0:1;}}
hookParams.onChange?.(pickerProps.value);};const updateValueFromInputs=()=>{const values=zipWith(getInputs(),ensureArray(pickerProps.value),(el,currentValue)=>{if(!el){return currentValue;}
const[parsedValue,error]=safeConvert("parse",el.value);if(error){updateInput(el,currentValue);return currentValue;}else{return parsedValue;}});updateValue(values.length===2?values:values[0]);};const rawPickerProps={...DateTimePicker.defaultProps,onSelect:(value)=>{value&&=markRaw(value);updateValue(value);if(!pickerProps.range&&pickerProps.type==="date"){saveAndClose();}},...markValuesRaw(hookParams.pickerProps),};const pickerProps=reactive(rawPickerProps,()=>{const currentIsRange=pickerProps.range;if(popover.isOpen&&lastIsRange!==currentIsRange){allowOnClose=false;popover.open(getPopoverTarget(),{pickerProps});allowOnClose=true;}
lastIsRange=currentIsRange;for(const[el,value]of zip(getInputs(),ensureArray(pickerProps.value),true)){if(el){updateInput(el,value);}}
shouldFocus=true;});let allowOnClose=true;let inputsChanged=[];let lastInitialProps=null;let lastIsRange=pickerProps.range;let restoreTargetMargin=null;let shouldFocus=false;return{state:pickerProps,open:openPicker,computeBasePickerProps,focusIfNeeded(){if(popover.isOpen&&shouldFocus){focusActiveInput();}},enable(){let editableInputs=0;for(const[el,value]of zip(getInputs(),ensureArray(pickerProps.value),true)){updateInput(el,value);if(el&&!el.disabled&&!el.readOnly&&!listenedElements.has(el)){listenedElements.add(el);el.addEventListener("change",onInputChange);el.addEventListener("click",onInputClick);el.addEventListener("focus",onInputFocus);el.addEventListener("keydown",onInputKeydown);editableInputs++;}}
const calendarIconGroupEl=getInput(0)?.parentElement.querySelector(".input-group-text .fa-calendar")?.parentElement;if(calendarIconGroupEl&&!listenedElements.has(calendarIconGroupEl)){listenedElements.add(calendarIconGroupEl);calendarIconGroupEl.classList.remove("pe-none");calendarIconGroupEl.classList.add("cursor-pointer");calendarIconGroupEl.addEventListener("click",()=>openPicker(0));}
if(!editableInputs&&popover.isOpen){saveAndClose();}
return()=>{};},get isOpen(){return popover.isOpen;},};},};},};registry.category("services").add("datetime_picker",datetimePickerService);return __exports;});;

/* /web/static/src/core/debug/debug_context.js */
odoo.define('@web/core/debug/debug_context',['@web/core/registry','@web/core/utils/functions','@odoo/owl'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const{memoize}=require("@web/core/utils/functions");const{useEffect,useEnv,useSubEnv}=require("@odoo/owl");const debugRegistry=registry.category("debug");const getAccessRights=memoize(async function getAccessRights(orm){const rightsToCheck={"ir.ui.view":"write","ir.rule":"read","ir.model.access":"read",};const proms=Object.entries(rightsToCheck).map(([model,operation])=>{return orm.call(model,"check_access_rights",[],{operation,raise_exception:false,});});const[canEditView,canSeeRecordRules,canSeeModelAccess]=await Promise.all(proms);const accessRights={canEditView,canSeeRecordRules,canSeeModelAccess};return accessRights;});class DebugContext{constructor(env,defaultCategories){this.orm=env.services.orm;this.categories=new Map(defaultCategories.map((cat)=>[cat,[{}]]));}
activateCategory(category,context){const contexts=this.categories.get(category)||new Set();contexts.add(context);this.categories.set(category,contexts);return()=>{contexts.delete(context);if(contexts.size===0){this.categories.delete(category);}};}
async getItems(env){const accessRights=await getAccessRights(this.orm);return[...this.categories.entries()].flatMap(([category,contexts])=>{return debugRegistry.category(category).getAll().map((factory)=>factory(Object.assign({env,accessRights},...contexts)));}).filter(Boolean).sort((x,y)=>{const xSeq=x.sequence||1000;const ySeq=y.sequence||1000;return xSeq-ySeq;});}}
const debugContextSymbol=Symbol("debugContext");__exports.createDebugContext=createDebugContext;function createDebugContext(env,{categories=[]}={}){return{[debugContextSymbol]:new DebugContext(env,categories)};}
__exports.useOwnDebugContext=useOwnDebugContext;function useOwnDebugContext({categories=[]}={}){useSubEnv(createDebugContext(useEnv(),{categories}));}
__exports.useEnvDebugContext=useEnvDebugContext;function useEnvDebugContext(){const debugContext=useEnv()[debugContextSymbol];if(!debugContext){throw new Error("There is no debug context available in the current environment.");}
return debugContext;}
__exports.useDebugCategory=useDebugCategory;function useDebugCategory(category,context={}){const env=useEnv();if(env.debug){const debugContext=useEnvDebugContext();useEffect(()=>debugContext.activateCategory(category,context),()=>[]);}}
return __exports;});;

/* /web/static/src/core/debug/debug_menu.js */
odoo.define('@web/core/debug/debug_menu',['@web/core/l10n/translation','@web/core/dropdown/dropdown','@web/core/dropdown/dropdown_item','@web/core/debug/debug_menu_basic','@web/core/commands/command_hook','@web/core/utils/hooks','@web/core/debug/debug_context'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{Dropdown}=require("@web/core/dropdown/dropdown");const{DropdownItem}=require("@web/core/dropdown/dropdown_item");const{DebugMenuBasic}=require("@web/core/debug/debug_menu_basic");const{useCommand}=require("@web/core/commands/command_hook");const{useService}=require("@web/core/utils/hooks");const{useEnvDebugContext}=require("@web/core/debug/debug_context");const DebugMenu=__exports.DebugMenu=class DebugMenu extends DebugMenuBasic{setup(){super.setup();const debugContext=useEnvDebugContext();this.command=useService("command");useCommand(_t("Debug tools..."),async()=>{const items=await debugContext.getItems(this.env);let index=0;const defaultCategories=items.filter((item)=>item.type==="separator").map(()=>(index+=1));const provider={async provide(){const categories=[...defaultCategories];let category=categories.shift();const result=[];items.forEach((item)=>{if(item.type==="item"){result.push({name:item.description.toString(),action:item.callback,category,});}else if(item.type==="separator"){category=categories.shift();}});return result;},};const configByNamespace={default:{categories:defaultCategories,emptyMessage:_t("No debug command found"),placeholder:_t("Choose a debug command..."),},};const commandPaletteConfig={configByNamespace,providers:[provider],};return commandPaletteConfig;},{category:"debug",});}}
DebugMenu.components={Dropdown,DropdownItem};DebugMenu.props={};return __exports;});;

/* /web/static/src/core/debug/debug_menu_basic.js */
odoo.define('@web/core/debug/debug_menu_basic',['@web/core/debug/debug_context','@web/core/dropdown/dropdown','@web/core/dropdown/dropdown_item','@odoo/owl'],function(require){'use strict';let __exports={};const{useEnvDebugContext}=require("@web/core/debug/debug_context");const{Dropdown}=require("@web/core/dropdown/dropdown");const{DropdownItem}=require("@web/core/dropdown/dropdown_item");const{Component}=require("@odoo/owl");const DebugMenuBasic=__exports.DebugMenuBasic=class DebugMenuBasic extends Component{setup(){const debugContext=useEnvDebugContext();this.getElements=async()=>{this.elements=await debugContext.getItems(this.env);};}}
DebugMenuBasic.components={Dropdown,DropdownItem,};DebugMenuBasic.template="web.DebugMenu";return __exports;});;

/* /web/static/src/core/debug/debug_menu_items.js */
odoo.define('@web/core/debug/debug_menu_items',['@web/core/l10n/translation','@web/core/browser/browser','@web/core/browser/router_service','@web/core/registry'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{browser}=require("@web/core/browser/browser");const{routeToUrl}=require("@web/core/browser/router_service");const{registry}=require("@web/core/registry");function activateAssetsDebugging({env}){return{type:"item",description:_t("Activate Assets Debugging"),callback:()=>{browser.location.search="?debug=assets";},sequence:410,};}
function activateTestsAssetsDebugging({env}){return{type:"item",description:_t("Activate Tests Assets Debugging"),callback:()=>{browser.location.search="?debug=assets,tests";},sequence:420,};}
__exports.regenerateAssets=regenerateAssets;function regenerateAssets({env}){return{type:"item",description:_t("Regenerate Assets Bundles"),callback:async()=>{await env.services.orm.call("ir.attachment","regenerate_assets_bundles",);browser.location.reload();},sequence:430,};}
__exports.becomeSuperuser=becomeSuperuser;function becomeSuperuser({env}){const becomeSuperuserURL=browser.location.origin+"/web/become";if(!env.services.user.isAdmin){return false;}
return{type:"item",description:_t("Become Superuser"),href:becomeSuperuserURL,callback:()=>{browser.open(becomeSuperuserURL,"_self");},sequence:440,};}
function leaveDebugMode({env}){return{type:"item",description:_t("Leave the Developer Tools"),callback:()=>{const route=env.services.router.current;route.search.debug="";browser.location.href=browser.location.origin+routeToUrl(route);},sequence:450,};}
registry.category("debug").category("default").add("activateAssetsDebugging",activateAssetsDebugging).add("regenerateAssets",regenerateAssets).add("becomeSuperuser",becomeSuperuser).add("leaveDebugMode",leaveDebugMode).add("activateTestsAssetsDebugging",activateTestsAssetsDebugging);return __exports;});;

/* /web/static/src/core/debug/debug_providers.js */
odoo.define('@web/core/debug/debug_providers',['@web/core/l10n/translation','@web/core/registry','@web/core/browser/browser','@web/core/browser/router_service'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{registry}=require("@web/core/registry");const{browser}=require("@web/core/browser/browser");const{routeToUrl}=require("@web/core/browser/router_service");const commandProviderRegistry=registry.category("command_provider");commandProviderRegistry.add("debug",{provide:(env,options)=>{const result=[];if(env.debug){if(!env.debug.includes("assets")){result.push({action(){browser.location.search="?debug=assets";},category:"debug",name:_t("Activate debug mode (with assets)"),});}
result.push({action(){const route=env.services.router.current;route.search.debug="";browser.location.href=browser.location.origin+routeToUrl(route);},category:"debug",name:_t("Deactivate debug mode"),});result.push({action(){const runTestsURL=browser.location.origin+"/web/tests?debug=assets";browser.open(runTestsURL);},category:"debug",name:_t("Run JS Tests"),});result.push({action(){const runTestsURL=browser.location.origin+"/web/tests/mobile?debug=assets";browser.open(runTestsURL);},category:"debug",name:_t("Run JS Mobile Tests"),});}else{const debugKey="debug";if(options.searchValue.toLowerCase()===debugKey){result.push({action(){browser.location.search="?debug=assets";},category:"debug",name:`${_t("Activate debug mode (with assets)")} (${debugKey})`,});}}
return result;},});return __exports;});;

/* /web/static/src/core/debug/debug_utils.js */
odoo.define('@web/core/debug/debug_utils',[],function(require){'use strict';let __exports={};__exports.editModelDebug=editModelDebug;function editModelDebug(env,title,model,id){return env.services.action.doAction({res_model:model,res_id:id,name:title,type:"ir.actions.act_window",views:[[false,"form"]],view_mode:"form",target:"current",});}
return __exports;});;

/* /web/static/src/core/debug/profiling/profiling_item.js */
odoo.define('@web/core/debug/profiling/profiling_item',['@web/core/dropdown/dropdown_item','@web/core/utils/hooks','@odoo/owl'],function(require){'use strict';let __exports={};const{DropdownItem}=require("@web/core/dropdown/dropdown_item");const{useBus,useService}=require("@web/core/utils/hooks");const{Component,EventBus}=require("@odoo/owl");const ProfilingItem=__exports.ProfilingItem=class ProfilingItem extends Component{setup(){this.profiling=useService("profiling");useBus(this.props.bus,"UPDATE",this.render);}
changeParam(param,ev){this.profiling.setParam(param,ev.target.value);}
toggleParam(param){const value=this.profiling.state.params.execution_context_qweb;this.profiling.setParam(param,!value);}
openProfiles(){if(this.env.services.action){this.env.services.action.doAction("base.action_menu_ir_profile");}else{window.location="/web/#action=base.action_menu_ir_profile";}}}
ProfilingItem.components={DropdownItem};ProfilingItem.template="web.DebugMenu.ProfilingItem";ProfilingItem.props={bus:{type:EventBus},};return __exports;});;

/* /web/static/src/core/debug/profiling/profiling_qweb.js */
odoo.define('@web/core/debug/profiling/profiling_qweb',['@web/core/registry','@web/core/utils/hooks','@web/core/assets','@web/core/utils/render','@web/core/utils/timing','@odoo/owl'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const{useService}=require("@web/core/utils/hooks");const{loadBundle}=require("@web/core/assets");const{renderToString}=require("@web/core/utils/render");const{useDebounced}=require("@web/core/utils/timing");const{Component,useState,useRef,onWillStart,onMounted,onWillUnmount}=require("@odoo/owl");class MenuItem extends Component{static template="web.ProfilingQwebView.menuitem";}
function processValue(value){const data=JSON.parse(value);for(const line of data[0].results.data){line.xpath=line.xpath.replace(/([^\]])\//g,"$1[1]/").replace(/([^\]])$/g,"$1[1]");}
return data;}
const ProfilingQwebView=__exports.ProfilingQwebView=class ProfilingQwebView extends Component{static template="web.ProfilingQwebView";static components={MenuItem};setup(){super.setup();this.orm=useService("orm");this.ace=useRef("ace");this.selector=useRef("selector");this.value=processValue(this.props.record.data[this.props.name]);this.state=useState({viewID:this.profile.data.length?this.profile.data[0].view_id:0,view:null,});this.renderProfilingInformation=useDebounced(this.renderProfilingInformation,100);onWillStart(async()=>{await loadBundle({jsLibs:["/web/static/lib/ace/ace.js",["/web/static/lib/ace/mode-python.js","/web/static/lib/ace/mode-xml.js","/web/static/lib/ace/mode-qweb.js",],],});await this._fetchViewData();this.state.view=this.viewObjects.find((view)=>view.id===this.state.viewID);});onMounted(()=>{this._startAce(this.ace.el);this._renderView();});onWillUnmount(()=>{if(this.aceEditor){this.aceEditor.destroy();}
this._unmoutInfo();});}
get profile(){return this.value?this.value[0].results:{archs:{},data:[]};}
async _fetchViewData(){const viewIDs=Array.from(new Set(this.profile.data.map((line)=>line.view_id)));const viewObjects=await this.orm.call("ir.ui.view","search_read",[],{fields:["id","display_name","key"],domain:[["id","in",viewIDs]],});for(const view of viewObjects){view.delay=0;view.query=0;const lines=this.profile.data.filter((l)=>l.view_id===view.id);const root=lines.find((l)=>l.xpath==="");if(root){view.delay+=root.delay;view.query+=root.query;}else{view.delay=lines.map((l)=>l.delay).reduce((a,b)=>a+b);view.query=lines.map((l)=>l.query).reduce((a,b)=>a+b);}
view.delay=Math.ceil(view.delay*10)/10;}
this.viewObjects=viewObjects;}
_formatDelay(delay){return delay?(Math.ceil(delay*10)/10).toFixed(1):".";}
_startAce(node){this.aceEditor=window.ace.edit(node);this.aceEditor.setOptions({maxLines:Infinity,showPrintMargin:false,highlightActiveLine:false,highlightGutterLine:true,readOnly:true,});this.aceEditor.renderer.setOptions({displayIndentGuides:true,showGutter:true,});this.aceEditor.renderer.$cursorLayer.element.style.display="none";this.aceEditor.$blockScrolling=true;this.aceSession=this.aceEditor.getSession();this.aceSession.setOptions({useWorker:false,mode:"ace/mode/qweb",tabSize:2,useSoftTabs:true,});this.aceEditor.renderer.on("afterRender",this.renderProfilingInformation.bind(this));}
renderProfilingInformation(){this._unmoutInfo();const flat={};const arch=[{xpath:"",children:[]}];const rows=this.ace.el.querySelectorAll(".ace_gutter .ace_gutter-cell");const elems=this.ace.el.querySelectorAll(".ace_tag-open, .ace_end-tag-close, .ace_end-tag-open, .ace_qweb");elems.forEach((node)=>{const parent=arch[arch.length-1];let xpath=parent.xpath;if(node.classList.contains("ace_end-tag-close")){let previous=node;while((previous=previous.previousElementSibling)){if(previous&&previous.classList.contains("ace_tag-name")){break;}}
const tag=previous&&previous.textContent;if(parent.tag===tag){arch.pop();}}else if(node.classList.contains("ace_end-tag-open")){const tag=node.nextElementSibling&&node.nextElementSibling.textContent;if(parent.tag===tag){arch.pop();}}else if(node.classList.contains("ace_qweb")){const directive=node.textContent;parent.directive.push({el:node,directive:directive,});let delay=0;let query=0;for(const line of this.profile.data){if(line.view_id===this.state.viewID&&line.xpath===xpath&&line.directive.includes(directive)){delay+=line.delay;query+=line.query;}}
if((delay||query)&&!node.querySelector(".o_info")){this._renderHover(delay,query,node);}}else if(node.classList.contains("ace_tag-open")){const nodeTagName=node.nextElementSibling;const aceLine=nodeTagName.parentNode;const index=[].indexOf.call(aceLine.parentNode.children,aceLine);const row=rows[index];xpath+="/"+nodeTagName.textContent;let i=1;while(flat[xpath+"["+i+"]"]){i++;}
xpath+="["+i+"]";flat[xpath]={xpath:xpath,tag:nodeTagName.textContent,children:[],directive:[],};arch.push(flat[xpath]);parent.children.push(flat[xpath]);const closed=!!row.querySelector(".ace_closed");const delays=[];const querys=[];const groups={};let displayDetail=false;for(const line of this.profile.data){if(line.view_id===this.state.viewID&&(closed?line.xpath.startsWith(xpath):line.xpath===xpath)){delays.push(line.delay);querys.push(line.query);const directive=line.directive.split("=")[0];if(!groups[directive]){groups[directive]={delays:[],querys:[],};}else{displayDetail=true;}
groups[directive].delays.push(this._formatDelay(line.delay));groups[directive].querys.push(line.query);}}
if(delays.length&&!row.querySelector(".o_info")){this._renderInfo(delays,querys,displayDetail,groups,row);}}
node.setAttribute("data-xpath",xpath);});}
_renderView(){const view=this.viewObjects.find((view)=>view.id===this.state.viewID);if(view){const arch=this.profile.archs[view.id]||"";if(this.aceSession.getValue()!==arch){this.aceSession.setValue(arch);}}else{this.aceSession.setValue("");}
this.state.view=view;}
_unmoutInfo(){if(this.hover){if(this.ace.el.querySelector(".o_ace_hover")){this.ace.el.querySelector(".o_ace_hover").remove();}}
if(this.info){if(this.ace.el.querySelector(".o_ace_info")){this.ace.el.querySelector(".o_ace_info").remove();}}}
_renderHover(delay,query,node){const xml=renderToString("web.ProfilingQwebView.hover",{delay:this._formatDelay(delay),query:query,});const div=new DOMParser().parseFromString(xml,"text/html").querySelector("div");node.insertBefore(div,node.firstChild);}
_renderInfo(delays,querys,displayDetail,groups,node){const xml=renderToString("web.ProfilingQwebView.info",{delay:this._formatDelay(delays.reduce((a,b)=>a+b,0)),query:querys.reduce((a,b)=>a+b,0)||".",displayDetail:displayDetail,groups:groups,});const div=new DOMParser().parseFromString(xml,"text/html").querySelector("div");node.insertBefore(div,node.firstChild);}
_onSelectView(ev){this.state.viewID=+ev.currentTarget.dataset.id;this._renderView();}}
const profilingQwebView=__exports.profilingQwebView={component:ProfilingQwebView,};registry.category("fields").add("profiling_qweb_view",profilingQwebView);return __exports;});;

/* /web/static/src/core/debug/profiling/profiling_service.js */
odoo.define('@web/core/debug/profiling/profiling_service',['@web/core/registry','@web/core/debug/profiling/profiling_item','@web/session','@web/core/debug/profiling/profiling_systray_item','@odoo/owl'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const{ProfilingItem}=require("@web/core/debug/profiling/profiling_item");const{session}=require("@web/session");const{profilingSystrayItem}=require("@web/core/debug/profiling/profiling_systray_item");const{EventBus,reactive}=require("@odoo/owl");const systrayRegistry=registry.category("systray");const profilingService={dependencies:["orm"],start(env,{orm}){if(!env.debug){return;}
function notify(){if(systrayRegistry.contains("web.profiling")&&state.isEnabled===false){systrayRegistry.remove("web.profiling",profilingSystrayItem);}
if(!systrayRegistry.contains("web.profiling")&&state.isEnabled===true){systrayRegistry.add("web.profiling",profilingSystrayItem,{sequence:99});}
bus.trigger("UPDATE");}
const state=reactive({session:session.profile_session||false,collectors:session.profile_collectors||["sql","traces_async"],params:session.profile_params||{},get isEnabled(){return Boolean(state.session);},},notify);const bus=new EventBus();notify();async function setProfiling(params){const kwargs=Object.assign({collectors:state.collectors,params:state.params,profile:state.isEnabled,},params);const resp=await orm.call("ir.profile","set_profiling",[],kwargs);if(resp.type){env.services.action.doAction(resp);}else{state.session=resp.session;state.collectors=resp.collectors;state.params=resp.params;}}
function profilingSeparator(){return{type:"separator",sequence:500,};}
function profilingItem(){return{type:"component",Component:ProfilingItem,props:{bus},sequence:510,};}
registry.category("debug").category("default").add("profilingSeparator",profilingSeparator).add("profilingItem",profilingItem);return{state,async toggleProfiling(){await setProfiling({profile:!state.isEnabled});},async toggleCollector(collector){const nextCollectors=state.collectors.slice();const index=nextCollectors.indexOf(collector);if(index>=0){nextCollectors.splice(index,1);}else{nextCollectors.push(collector);}
await setProfiling({collectors:nextCollectors});},async setParam(key,value){const nextParams=Object.assign({},state.params);nextParams[key]=value;await setProfiling({params:nextParams});},isCollectorEnabled(collector){return state.collectors.includes(collector);},};},};registry.category("services").add("profiling",profilingService);return __exports;});;

/* /web/static/src/core/debug/profiling/profiling_systray_item.js */
odoo.define('@web/core/debug/profiling/profiling_systray_item',['@odoo/owl'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");class ProfilingSystrayItem extends Component{}
ProfilingSystrayItem.template="web.ProfilingSystrayItem";const profilingSystrayItem=__exports.profilingSystrayItem={Component:ProfilingSystrayItem,};return __exports;});;

/* /web/static/src/core/dialog/dialog.js */
odoo.define('@web/core/dialog/dialog',['@web/core/hotkeys/hotkey_hook','@web/core/ui/ui_service','@web/core/utils/hooks','@odoo/owl','@web/core/utils/timing','@web/core/utils/draggable_hook_builder_owl'],function(require){'use strict';let __exports={};const{useHotkey}=require("@web/core/hotkeys/hotkey_hook");const{useActiveElement}=require("@web/core/ui/ui_service");const{useForwardRefToParent}=require("@web/core/utils/hooks");const{Component,onWillDestroy,useChildSubEnv,useExternalListener,useState}=require("@odoo/owl");const{throttleForAnimation}=require("@web/core/utils/timing");const{makeDraggableHook}=require("@web/core/utils/draggable_hook_builder_owl");const useDialogDraggable=makeDraggableHook({name:"useDialogDraggable",onWillStartDrag({ctx,addCleanup,addStyle,getRect}){const{height,width}=getRect(ctx.current.element);ctx.current.container=document.createElement("div");addStyle(ctx.current.container,{position:"fixed",top:"0",bottom:`${70 - height}px`,left:`${70 - width}px`,right:`${70 - width}px`,});ctx.current.element.after(ctx.current.container);addCleanup(()=>ctx.current.container.remove());},onDrop({ctx,getRect}){const{top,left}=getRect(ctx.current.element);return{left:left-ctx.current.elementRect.left,top:top-ctx.current.elementRect.top,};},});const Dialog=__exports.Dialog=class Dialog extends Component{setup(){this.modalRef=useForwardRefToParent("modalRef");useActiveElement("modalRef");this.data=useState(this.env.dialogData);useHotkey("escape",()=>this.onEscape());useHotkey("control+enter",()=>{const btns=document.querySelectorAll(".o_dialog:not(.o_inactive_modal) .modal-footer button");const firstVisibleBtn=Array.from(btns).find((btn)=>{const styles=getComputedStyle(btn);return styles.display!=="none";});if(firstVisibleBtn){firstVisibleBtn.click();}},{bypassEditableProtection:true});this.id=`dialog_${this.data.id}`;useChildSubEnv({inDialog:true,dialogId:this.id});this.position=useState({left:0,top:0});useDialogDraggable({enable:()=>!this.env.isSmall,ref:this.modalRef,elements:".modal-content",handle:".modal-header",ignore:"button",edgeScrolling:{enabled:false},onDrop:({top,left})=>{this.position.left+=left;this.position.top+=top;},});const throttledResize=throttleForAnimation(this.onResize.bind(this));useExternalListener(window,"resize",throttledResize);onWillDestroy(()=>{if(this.env.isSmall){this.data.scrollToOrigin();}});}
get isFullscreen(){return this.props.fullscreen||this.env.isSmall;}
get contentStyle(){return`top: ${this.position.top}px; left: ${this.position.left}px;`;}
onResize(){this.position.left=0;this.position.top=0;}
onEscape(){return this.dismiss();}
async dismiss(){if(this.data.dismiss){await this.data.dismiss();}
return this.data.close();}}
Dialog.template="web.Dialog";Dialog.props={contentClass:{type:String,optional:true},bodyClass:{type:String,optional:true},fullscreen:{type:Boolean,optional:true},footer:{type:Boolean,optional:true},header:{type:Boolean,optional:true},size:{type:String,optional:true,validate:(s)=>["sm","md","lg","xl","fs","fullscreen"].includes(s),},technical:{type:Boolean,optional:true},title:{type:String,optional:true},modalRef:{type:Function,optional:true},slots:{type:Object,shape:{default:Object,header:{type:Object,optional:true},footer:{type:Object,optional:true},},},withBodyPadding:{type:Boolean,optional:true},};Dialog.defaultProps={contentClass:"",bodyClass:"",fullscreen:false,footer:true,header:true,size:"lg",technical:true,title:"Odoo",withBodyPadding:true,};return __exports;});;

/* /web/static/src/core/dialog/dialog_service.js */
odoo.define('@web/core/dialog/dialog_service',['@web/core/registry','@odoo/owl','@web/core/utils/components'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const{Component,markRaw,reactive,xml}=require("@odoo/owl");const{WithEnv}=require("@web/core/utils/components");class DialogWrapper extends Component{static template=xml`
        <WithEnv env="{ dialogData: props.subEnv }">
            <t t-component="props.subComponent" t-props="props.subProps" />
        </WithEnv>
    `;static components={WithEnv};static props=["*"];}
const dialogService=__exports.dialogService={dependencies:["overlay"],start(env,{overlay}){const stack=[];let nextId=0;const deactivate=()=>{for(const subEnv of stack){subEnv.isActive=false;}};const add=(dialogClass,props,options={})=>{const id=nextId++;const close=()=>remove();const subEnv=reactive({id,close,isActive:true,});deactivate();stack.push(subEnv);document.body.classList.add("modal-open");const scrollOrigin={top:window.scrollY,left:window.scrollX};subEnv.scrollToOrigin=()=>{if(!stack.length){window.scrollTo(scrollOrigin);}};const remove=overlay.add(DialogWrapper,{subComponent:dialogClass,subProps:markRaw({...props,close}),subEnv,},{onRemove:()=>{stack.pop();deactivate();if(stack.length){stack.at(-1).isActive=true;}else{document.body.classList.remove("modal-open");}
options.onClose?.();},});return remove;};function closeAll(){for(const dialog of[...stack].reverse()){dialog.close();}}
return{add,closeAll};},};registry.category("services").add("dialog",dialogService);return __exports;});;

/* /web/static/src/core/domain.js */
odoo.define('@web/core/domain',['@web/core/utils/arrays','@web/core/py_js/py','@web/core/py_js/py_utils','@web/core/utils/strings'],function(require){'use strict';let __exports={};const{shallowEqual}=require("@web/core/utils/arrays");const{evaluate,formatAST,parseExpr}=require("@web/core/py_js/py");const{toPyValue}=require("@web/core/py_js/py_utils");const{escapeRegExp}=require("@web/core/utils/strings");const InvalidDomainError=__exports.InvalidDomainError=class InvalidDomainError extends Error{}
const Domain=__exports.Domain=class Domain{static combine(domains,operator){if(domains.length===0){return new Domain([]);}
const domain1=domains[0]instanceof Domain?domains[0]:new Domain(domains[0]);if(domains.length===1){return domain1;}
const domain2=Domain.combine(domains.slice(1),operator);const result=new Domain([]);const astValues1=domain1.ast.value;const astValues2=domain2.ast.value;const op=operator==="AND"?"&":"|";const combinedAST={type:4,value:astValues1.concat(astValues2)};result.ast=normalizeDomainAST(combinedAST,op);return result;}
static and(domains){return Domain.combine(domains,"AND");}
static or(domains){return Domain.combine(domains,"OR");}
static not(domain){const result=new Domain(domain);result.ast.value.unshift({type:1,value:"!"});return result;}
static removeDomainLeaves(domain,keysToRemove){function processLeaf(elements,idx,operatorCtx,newDomain){const leaf=elements[idx];if(leaf.type===10){if(keysToRemove.includes(leaf.value[0].value)){if(operatorCtx==="&"){newDomain.ast.value.push(...Domain.TRUE.ast.value);}else if(operatorCtx==="|"){newDomain.ast.value.push(...Domain.FALSE.ast.value);}}else{newDomain.ast.value.push(leaf);}
return 1;}else if(leaf.type===1){if(leaf.value==="|"&&elements[idx+1].type===10&&elements[idx+2].type===10&&keysToRemove.includes(elements[idx+1].value[0].value)&&keysToRemove.includes(elements[idx+2].value[0].value)){newDomain.ast.value.push(...Domain.TRUE.ast.value);return 3;}
newDomain.ast.value.push(leaf);if(leaf.value==="!"){return 1+processLeaf(elements,idx+1,"&",newDomain);}
const firstLeafSkip=processLeaf(elements,idx+1,leaf.value,newDomain);const secondLeafSkip=processLeaf(elements,idx+1+firstLeafSkip,leaf.value,newDomain);return 1+firstLeafSkip+secondLeafSkip;}
return 0;}
domain=new Domain(domain);if(domain.ast.value.length===0){return domain;}
const newDomain=new Domain([]);processLeaf(domain.ast.value,0,"&",newDomain);return newDomain;}
constructor(descr=[]){if(descr instanceof Domain){return new Domain(descr.toString());}else{let rawAST;try{rawAST=typeof descr==="string"?parseExpr(descr):toAST(descr);}catch(error){throw new InvalidDomainError(`Invalid domain representation: ${descr.toString()}`,{cause:error,});}
this.ast=normalizeDomainAST(rawAST);}}
contains(record){const expr=evaluate(this.ast,record);return matchDomain(record,expr);}
toString(){return formatAST(this.ast);}
toList(context){return evaluate(this.ast,context);}
toJson(){try{const evaluatedAsList=this.toList({});const evaluatedDomain=new Domain(evaluatedAsList);if(evaluatedDomain.toString()===this.toString()){return evaluatedAsList;}
return this.toString();}catch{return this.toString();}}}
__exports.evalDomain=evalDomain;function evalDomain(modifier,evalContext){if(modifier&&typeof modifier!=="boolean"){modifier=new Domain(modifier).contains(evalContext);}
return Boolean(modifier);}
const TRUE_LEAF=[1,"=",1];const FALSE_LEAF=[0,"=",1];const TRUE_DOMAIN=new Domain([TRUE_LEAF]);const FALSE_DOMAIN=new Domain([FALSE_LEAF]);Domain.TRUE=TRUE_DOMAIN;Domain.FALSE=FALSE_DOMAIN;function toAST(domain){const elems=domain.map((elem)=>{switch(elem){case"!":case"&":case"|":return{type:1,value:elem};default:return{type:10,value:elem.map(toPyValue),};}});return{type:4,value:elems};}
function normalizeDomainAST(domain,op="&"){if(domain.type!==4){if(domain.type===10){const value=domain.value;if(value.findIndex((e)=>e.type===10)===-1||!value.every((e)=>e.type===10||e.type===1)){throw new InvalidDomainError("Invalid domain AST");}}else{throw new InvalidDomainError("Invalid domain AST");}}
if(domain.value.length===0){return domain;}
let expected=1;for(const child of domain.value){switch(child.type){case 1:if(child.value==="&"||child.value==="|"){expected++;}else if(child.value!=="!"){throw new InvalidDomainError("Invalid domain AST");}
break;case 4:case 10:if(child.value.length===3){expected--;break;}
throw new InvalidDomainError("Invalid domain AST");default:throw new InvalidDomainError("Invalid domain AST");}}
const values=domain.value.slice();while(expected<0){expected++;values.unshift({type:1,value:op});}
if(expected>0){throw new InvalidDomainError(`invalid domain ${formatAST(domain)} (missing ${expected} segment(s))`);}
return{type:4,value:values};}
function matchCondition(record,condition){if(typeof condition==="boolean"){return condition;}
const[field,operator,value]=condition;if(typeof field==="string"){const names=field.split(".");if(names.length>=2){return matchCondition(record[names[0]],[names.slice(1).join("."),operator,value]);}}
let likeRegexp,ilikeRegexp;if(["like","not like","ilike","not ilike"].includes(operator)){likeRegexp=new RegExp(`(.*)${escapeRegExp(value).replaceAll("%", "(.*)")}(.*)`,"g");ilikeRegexp=new RegExp(`(.*)${escapeRegExp(value).replaceAll("%", "(.*)")}(.*)`,"gi");}
const fieldValue=typeof field==="number"?field:record[field];switch(operator){case"=?":if([false,null].includes(value)){return true;}
case"=":case"==":if(Array.isArray(fieldValue)&&Array.isArray(value)){return shallowEqual(fieldValue,value);}
return fieldValue===value;case"!=":case"<>":return!matchCondition(record,[field,"==",value]);case"<":return fieldValue<value;case"<=":return fieldValue<=value;case">":return fieldValue>value;case">=":return fieldValue>=value;case"in":{const val=Array.isArray(value)?value:[value];const fieldVal=Array.isArray(fieldValue)?fieldValue:[fieldValue];return fieldVal.some((fv)=>val.includes(fv));}
case"not in":{const val=Array.isArray(value)?value:[value];const fieldVal=Array.isArray(fieldValue)?fieldValue:[fieldValue];return!fieldVal.some((fv)=>val.includes(fv));}
case"like":if(fieldValue===false){return false;}
return Boolean(fieldValue.match(likeRegexp));case"not like":if(fieldValue===false){return false;}
return Boolean(!fieldValue.match(likeRegexp));case"=like":if(fieldValue===false){return false;}
return new RegExp(escapeRegExp(value).replace(/%/g,".*")).test(fieldValue);case"ilike":if(fieldValue===false){return false;}
return Boolean(fieldValue.match(ilikeRegexp));case"not ilike":if(fieldValue===false){return false;}
return Boolean(!fieldValue.match(ilikeRegexp));case"=ilike":if(fieldValue===false){return false;}
return new RegExp(escapeRegExp(value).replace(/%/g,".*"),"i").test(fieldValue);}
throw new InvalidDomainError("could not match domain");}
function makeOperators(record){const match=matchCondition.bind(null,record);return{"!":(x)=>!match(x),"&":(a,b)=>match(a)&&match(b),"|":(a,b)=>match(a)||match(b),};}
function matchDomain(record,domain){if(domain.length===0){return true;}
const operators=makeOperators(record);const reversedDomain=Array.from(domain).reverse();const condStack=[];for(const item of reversedDomain){const operator=typeof item==="string"&&operators[item];if(operator){const operands=condStack.splice(-operator.length);condStack.push(operator(...operands));}else{condStack.push(item);}}
return matchCondition(record,condStack.pop());}
return __exports;});;

/* /web/static/src/core/domain_selector/domain_selector.js */
odoo.define('@web/core/domain_selector/domain_selector',['@web/core/domain_selector/utils','@odoo/owl','@web/core/domain','@web/core/tree_editor/tree_editor','@web/core/tree_editor/condition_tree','@web/core/model_field_selector/utils','@web/core/checkbox/checkbox','@web/core/utils/objects','@web/core/domain_selector/domain_selector_operator_editor','@web/core/tree_editor/tree_editor_operator_editor','@web/core/l10n/translation','@web/core/model_field_selector/model_field_selector'],function(require){'use strict';let __exports={};const{extractPathsFromDomain,useGetDefaultCondition}=require("@web/core/domain_selector/utils");const{Component,onWillStart,onWillUpdateProps}=require("@odoo/owl");const{Domain}=require("@web/core/domain");const{TreeEditor}=require("@web/core/tree_editor/tree_editor");const{domainFromTree,treeFromDomain,formatValue,condition,}=require("@web/core/tree_editor/condition_tree");const{useLoadFieldInfo}=require("@web/core/model_field_selector/utils");const{CheckBox}=require("@web/core/checkbox/checkbox");const{deepEqual}=require("@web/core/utils/objects");const{getDomainDisplayedOperators}=require("@web/core/domain_selector/domain_selector_operator_editor");const{getOperatorEditorInfo}=require("@web/core/tree_editor/tree_editor_operator_editor");const{_t}=require("@web/core/l10n/translation");const{ModelFieldSelector}=require("@web/core/model_field_selector/model_field_selector");const ARCHIVED_CONDITION=condition("active","in",[true,false]);const ARCHIVED_DOMAIN=`[("active", "in", [True, False])]`;const DomainSelector=__exports.DomainSelector=class DomainSelector extends Component{static template="web.DomainSelector";static components={TreeEditor,CheckBox};static props={domain:String,resModel:String,className:{type:String,optional:true},defaultConnector:{type:[{value:"&"},{value:"|"}],optional:true},isDebugMode:{type:Boolean,optional:true},readonly:{type:Boolean,optional:true},update:{type:Function,optional:true},};static defaultProps={isDebugMode:false,readonly:true,update:()=>{},};setup(){this.loadFieldInfo=useLoadFieldInfo();this.getDefaultCondition=useGetDefaultCondition();this.tree=null;this.defaultCondition=null;this.fieldDefs={};this.showArchivedCheckbox=false;this.includeArchived=false;onWillStart(()=>this.onPropsUpdated(this.props));onWillUpdateProps((np)=>this.onPropsUpdated(np));}
async onPropsUpdated(p){let domain;let isSupported=true;try{domain=new Domain(p.domain);}catch{isSupported=false;}
if(!isSupported){this.tree=null;this.defaultCondition=null;this.fieldDefs={};this.showArchivedCheckbox=false;this.includeArchived=false;return;}
const paths=new Set([...extractPathsFromDomain(domain),"active"]);await this.loadFieldDefs(p.resModel,paths);const[defaultCondition]=await Promise.all([this.getDefaultCondition(p.resModel),this.loadFieldDefs(p.resModel,paths),]);this.tree=treeFromDomain(domain,{getFieldDef:this.getFieldDef.bind(this),distributeNot:!p.isDebugMode,});this.defaultCondition=defaultCondition;this.showArchivedCheckbox=Boolean(this.fieldDefs.active);this.includeArchived=false;if(this.showArchivedCheckbox){if(this.tree.value==="&"){this.tree.children=this.tree.children.filter((child)=>{if(deepEqual(child,ARCHIVED_CONDITION)){this.includeArchived=true;return false;}
return true;});if(this.tree.children.length===1){this.tree=this.tree.children[0];}}else if(deepEqual(this.tree,ARCHIVED_CONDITION)){this.includeArchived=true;this.tree=treeFromDomain(`[]`);}}}
getFieldDef(path){if(typeof path==="string"){return this.fieldDefs[path];}
return null;}
getDefaultOperator(fieldDef){return getDomainDisplayedOperators(fieldDef)[0];}
getOperatorEditorInfo(node){const fieldDef=this.getFieldDef(node.path);const operators=getDomainDisplayedOperators(fieldDef);return getOperatorEditorInfo(operators);}
getPathEditorInfo(){const{resModel,isDebugMode}=this.props;return{component:ModelFieldSelector,extractProps:({update,value:path})=>{return{path,update,resModel,isDebugMode,readonly:false,};},isSupported:(path)=>[0,1].includes(path)||typeof path==="string",defaultValue:()=>"id",stringify:(path)=>formatValue(path),message:_t("Invalid field chain"),};}
async loadFieldDefs(resModel,paths){const promises=[];const fieldDefs={};for(const path of paths){if(typeof path==="string"){promises.push(this.loadFieldInfo(resModel,path).then(({fieldDef})=>{fieldDefs[path]=fieldDef;}));}}
await Promise.all(promises);this.fieldDefs=fieldDefs;}
toggleIncludeArchived(){this.includeArchived=!this.includeArchived;this.update(this.tree);}
resetDomain(){this.props.update("[]");}
onDomainChange(domain){this.props.update(domain,true);}
update(tree){const archiveDomain=this.includeArchived?ARCHIVED_DOMAIN:`[]`;const domain=tree?Domain.and([domainFromTree(tree),archiveDomain]).toString():archiveDomain;this.props.update(domain);}}
return __exports;});;

/* /web/static/src/core/domain_selector/domain_selector_operator_editor.js */
odoo.define('@web/core/domain_selector/domain_selector_operator_editor',[],function(require){'use strict';let __exports={};__exports.getDomainDisplayedOperators=getDomainDisplayedOperators;function getDomainDisplayedOperators(fieldDef){if(!fieldDef){fieldDef={};}
const{type,is_property}=fieldDef;if(is_property){switch(type){case"many2many":case"tags":return["in","not in","set","not_set"];case"many2one":case"selection":return["=","!=","set","not_set"];}}
switch(type){case"boolean":return["is","is_not"];case"selection":return["=","!=","in","not in","set","not_set"];case"char":case"text":case"html":return["=","!=","ilike","not ilike","in","not in","set","not_set"];case"date":case"datetime":return["=","!=",">",">=","<","<=","between","set","not_set"];case"integer":case"float":case"monetary":return["=","!=",">",">=","<","<=","between","ilike","not ilike","set","not_set",];case"many2one":case"many2many":case"one2many":return["in","not in","=","!=","ilike","not ilike","set","not_set"];case"json":return["=","!=","ilike","not ilike","set","not_set"];case"properties":return["set","not_set"];case undefined:return["="];default:return["=","!=",">",">=","<","<=","ilike","not ilike","like","not like","=like","=ilike","child_of","parent_of","in","not in","set","not_set",];}}
return __exports;});;

/* /web/static/src/core/domain_selector/utils.js */
odoo.define('@web/core/domain_selector/utils',['@web/core/domain','@web/core/tree_editor/tree_editor_value_editors','@web/core/domain_selector/domain_selector_operator_editor','@web/core/utils/hooks','@web/core/l10n/translation','@web/core/tree_editor/condition_tree','@web/core/model_field_selector/utils','@web/core/tree_editor/utils'],function(require){'use strict';let __exports={};const{Domain}=require("@web/core/domain");const{getDefaultValue}=require("@web/core/tree_editor/tree_editor_value_editors");const{getDomainDisplayedOperators}=require("@web/core/domain_selector/domain_selector_operator_editor");const{useService}=require("@web/core/utils/hooks");const{_t}=require("@web/core/l10n/translation");const{toValue,domainFromTree,normalizeValue,formatValue:toString,createVirtualOperators,condition,}=require("@web/core/tree_editor/condition_tree");const{useLoadFieldInfo,useLoadPathDescription}=require("@web/core/model_field_selector/utils");const{extractIdsFromTree,getDefaultPath,getPathsInTree,leafToString,useLoadDisplayNames,}=require("@web/core/tree_editor/utils");__exports.extractPathsFromDomain=extractPathsFromDomain;function extractPathsFromDomain(domain){domain=new Domain(domain);const paths=new Set();for(const node of domain.ast.value){if([4,10].includes(node.type)){paths.add(toValue(node.value[0]));}}
return[...paths];}
function getDefaultCondition(fieldDefs){const defaultPath=getDefaultPath(fieldDefs);const fieldDef=fieldDefs[defaultPath];const operator=getDomainDisplayedOperators(fieldDef)[0];const value=getDefaultValue(fieldDef,operator);return condition(fieldDef.name,operator,value);}
function getDefaultDomain(fieldDefs){return domainFromTree(getDefaultCondition(fieldDefs));}
__exports.useGetDefaultCondition=useGetDefaultCondition;function useGetDefaultCondition(){const fieldService=useService("field");return async(resModel)=>{const fieldDefs=await fieldService.loadFields(resModel);return getDefaultCondition(fieldDefs);};}
__exports.useGetDefaultLeafDomain=useGetDefaultLeafDomain;function useGetDefaultLeafDomain(){const fieldService=useService("field");return async(resModel)=>{const fieldDefs=await fieldService.loadFields(resModel);return getDefaultDomain(fieldDefs);};}
function simplifyTree(tree){if(tree.type==="condition"){return tree;}
const processedChildren=tree.children.map(simplifyTree);if(tree.value==="&"){return{...tree,children:processedChildren};}
const children=[];const childrenByPath={};for(const child of processedChildren){if(child.type==="connector"||typeof child.path!=="string"||!["=","in"].includes(child.operator)){children.push(child);}else{if(!childrenByPath[child.path]){childrenByPath[child.path]=[];}
childrenByPath[child.path].push(child);}}
for(const path in childrenByPath){if(childrenByPath[path].length===1){children.push(childrenByPath[path][0]);continue;}
const value=[];for(const child of childrenByPath[path]){if(child.operator==="="){value.push(child.value);}else{value.push(...child.value);}}
children.push(condition(path,"in",normalizeValue(value)));}
if(children.length===1){return{...children[0]};}
return{...tree,children};}
__exports.getDomainTreeDescription=getDomainTreeDescription;function getDomainTreeDescription(tree,getFieldDef,getDescription,displayNames,isSubExpression=true){if(tree.type==="connector"){const childDescriptions=tree.children.map((c)=>getDomainTreeDescription(c,getFieldDef,getDescription,displayNames));const separator=tree.value==="&"?_t("and"):_t("or");let description=childDescriptions.join(` ${separator} `);if(isSubExpression||tree.negate){description=`( ${description} )`;}
if(tree.negate){description=`! ${description}`;}
return description;}
const{path}=tree;const fieldDef=getFieldDef(path);const{operatorDescription,valueDescription}=leafToString(tree,fieldDef,displayNames[fieldDef?.relation||fieldDef?.comodel]);let description=`${getDescription(path)} ${operatorDescription} `;if(valueDescription){const{values,join,addParenthesis}=valueDescription;const jointedValues=values.join(` ${join} `);description+=addParenthesis?`( ${jointedValues} )`:jointedValues;}
return description;}
__exports.useGetDomainTreeDescription=useGetDomainTreeDescription;function useGetDomainTreeDescription(fieldService,nameService){fieldService||=useService("field");nameService||=useService("name");const loadFieldInfo=useLoadFieldInfo(fieldService);const loadPathDescription=useLoadPathDescription(fieldService);const loadDisplayNames=useLoadDisplayNames(nameService);return async(resModel,tree)=>{tree=simplifyTree(tree);const paths=getPathsInTree(tree);const promises=[];const pathFieldDefs={};const pathDescriptions={};for(const path of paths){promises.push(loadPathDescription(resModel,path).then(({displayNames})=>{pathDescriptions[toString(path)]=displayNames.join(" 🠒 ");}),loadFieldInfo(resModel,path).then(({fieldDef})=>{pathFieldDefs[toString(path)]=fieldDef;}));}
await Promise.all(promises);const getFieldDef=(path)=>pathFieldDefs[toString(path)];const getDescription=(path)=>pathDescriptions[toString(path)];const idsByModel=extractIdsFromTree(tree,getFieldDef);const treeWithVirtualOperators=createVirtualOperators(tree,{getFieldDef});const displayNames=await loadDisplayNames(idsByModel);return getDomainTreeDescription(treeWithVirtualOperators,getFieldDef,getDescription,displayNames,false);};}
return __exports;});;

/* /web/static/src/core/domain_selector_dialog/domain_selector_dialog.js */
odoo.define('@web/core/domain_selector_dialog/domain_selector_dialog',['@web/core/l10n/translation','@odoo/owl','@web/core/dialog/dialog','@web/core/domain','@web/core/domain_selector/domain_selector','@web/core/utils/hooks'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{Component,useRef,useState}=require("@odoo/owl");const{Dialog}=require("@web/core/dialog/dialog");const{Domain}=require("@web/core/domain");const{DomainSelector}=require("@web/core/domain_selector/domain_selector");const{useService}=require("@web/core/utils/hooks");const DomainSelectorDialog=__exports.DomainSelectorDialog=class DomainSelectorDialog extends Component{static template="web.DomainSelectorDialog";static components={Dialog,DomainSelector,};static props={close:Function,onConfirm:Function,resModel:String,className:{type:String,optional:true},defaultConnector:{type:[{value:"&"},{value:"|"}],optional:true},domain:String,isDebugMode:{type:Boolean,optional:true},readonly:{type:Boolean,optional:true},text:{type:String,optional:true},confirmButtonText:{type:String,optional:true},disableConfirmButton:{type:Function,optional:true},discardButtonText:{type:String,optional:true},title:{type:String,optional:true},context:{type:Object,optional:true},};static defaultProps={isDebugMode:false,readonly:false,context:{},};setup(){this.notification=useService("notification");this.rpc=useService("rpc");this.orm=useService("orm");this.user=useService("user");this.state=useState({domain:this.props.domain});this.confirmButtonRef=useRef("confirm");}
get confirmButtonText(){return this.props.confirmButtonText||_t("Confirm");}
get dialogTitle(){return this.props.title||_t("Domain");}
get disabled(){if(this.props.disableConfirmButton){return this.props.disableConfirmButton(this.state.domain);}
return false;}
get discardButtonText(){return this.props.discardButtonText||_t("Discard");}
get domainSelectorProps(){return{className:this.props.className,resModel:this.props.resModel,readonly:this.props.readonly,isDebugMode:this.props.isDebugMode,defaultConnector:this.props.defaultConnector,domain:this.state.domain,update:(domain)=>{this.state.domain=domain;},};}
async onConfirm(){this.confirmButtonRef.el.disabled=true;let domain;let isValid;try{const evalContext={...this.user.context,...this.props.context};domain=new Domain(this.state.domain).toList(evalContext);}catch{isValid=false;}
if(isValid===undefined){isValid=await this.rpc("/web/domain/validate",{model:this.props.resModel,domain,});}
if(!isValid){if(this.confirmButtonRef.el){this.confirmButtonRef.el.disabled=false;}
this.notification.add(_t("Domain is invalid. Please correct it"),{type:"danger",});return;}
this.props.onConfirm(this.state.domain);this.props.close();}
onDiscard(){this.props.close();}}
return __exports;});;

/* /web/static/src/core/dropdown/accordion_item.js */
odoo.define('@web/core/dropdown/accordion_item',['@odoo/owl'],function(require){'use strict';let __exports={};const{Component,onPatched,useState}=require("@odoo/owl");const ACCORDION=__exports.ACCORDION=Symbol("Accordion");const AccordionItem=__exports.AccordionItem=class AccordionItem extends Component{static template="web.AccordionItem";static components={};static props={slots:{type:Object,shape:{default:{},},},description:String,selected:{type:Boolean,optional:true,},class:{type:String,optional:true,},};static defaultProps={class:"",selected:false,};setup(){this.state=useState({open:false,});this.parentComponent=this.env[ACCORDION];onPatched(()=>{this.parentComponent?.accordionStateChanged?.();});}}
return __exports;});;

/* /web/static/src/core/dropdown/checkbox_item.js */
odoo.define('@web/core/dropdown/checkbox_item',['@web/core/dropdown/dropdown_item'],function(require){'use strict';let __exports={};const{DropdownItem}=require("@web/core/dropdown/dropdown_item");const CheckboxItem=__exports.CheckboxItem=class CheckboxItem extends DropdownItem{}
CheckboxItem.template="web.CheckboxItem";CheckboxItem.props={...DropdownItem.props,checked:{type:Boolean,optional:false,},};return __exports;});;

/* /web/static/src/core/dropdown/dropdown.js */
odoo.define('@web/core/dropdown/dropdown',['@web/core/utils/hooks','@web/core/position_hook','@web/core/dropdown/dropdown_navigation_hook','@web/core/l10n/localization','@odoo/owl'],function(require){'use strict';let __exports={};const{useBus,useService}=require("@web/core/utils/hooks");const{usePosition}=require("@web/core/position_hook");const{useDropdownNavigation}=require("@web/core/dropdown/dropdown_navigation_hook");const{localization}=require("@web/core/l10n/localization");const{Component,EventBus,onWillStart,status,useEffect,useExternalListener,useRef,useState,useChildSubEnv,}=require("@odoo/owl");const DIRECTION_CARET_CLASS={bottom:"dropdown",top:"dropup",left:"dropstart",right:"dropend",};const DROPDOWN=__exports.DROPDOWN=Symbol("Dropdown");const Dropdown=__exports.Dropdown=class Dropdown extends Component{setup(){this.state=useState({open:this.props.startOpen,groupIsOpen:this.props.startOpen,directionCaretClass:null,});this.rootRef=useRef("root");onWillStart(()=>{if(this.state.open&&this.props.beforeOpen){return this.props.beforeOpen();}});useExternalListener(window,"click",this.onWindowClicked,{capture:true});useBus(Dropdown.bus,"state-changed",({detail})=>this.onDropdownStateChanged(detail));this.ui=useService("ui");useEffect(()=>{Promise.resolve().then(()=>{this.myActiveEl=this.ui.activeElement;});},()=>[]);this.parentDropdown=this.env[DROPDOWN];useChildSubEnv({[DROPDOWN]:{close:this.close.bind(this),closeAllParents:()=>{this.close();if(this.parentDropdown){this.parentDropdown.closeAllParents();}},},});useDropdownNavigation();const position=this.props.position||(this.parentDropdown?"right-start":"bottom-start");let[direction]=position.split("-");if(["left","right"].includes(direction)&&localization.direction==="rtl"){direction=direction==="left"?"right":"left";}
this.defaultDirection=direction;const positioningOptions={position,onPositioned:(el,{direction})=>{this.state.directionCaretClass=DIRECTION_CARET_CLASS[direction];},};if(this.props.container){positioningOptions.container=()=>typeof this.props.container==="function"?this.props.container():this.props.container;}
this.state.directionCaretClass=DIRECTION_CARET_CLASS[direction];this.togglerRef=useRef("togglerRef");if(this.props.toggler==="parent"){useEffect(()=>{const onClick=(ev)=>{if(this.rootRef.el.contains(ev.target)){return;}
this.toggle();};if(this.rootRef.el.parentElement.tabIndex===-1){this.rootRef.el.parentElement.tabIndex=-1;}
this.rootRef.el.parentElement.addEventListener("click",onClick);return()=>{this.rootRef.el.parentElement.removeEventListener("click",onClick);};},()=>[]);useEffect((open)=>{this.rootRef.el.parentElement.ariaExpanded=open?"true":"false";},()=>[this.state.open]);this.position=usePosition("menuRef",()=>this.rootRef.el.parentElement,positioningOptions);}else{const togglerRef=useRef("togglerRef");this.position=usePosition("menuRef",()=>togglerRef.el,positioningOptions);}
useEffect((isOpen)=>{if(isOpen){this.props.onOpened();}else{this.position.unlock();}},()=>[this.state.open]);}
async changeStateAndNotify(stateSlice){if(stateSlice.open&&this.props.beforeOpen){await this.props.beforeOpen();if(status(this)==="destroyed"){return;}}
if(!stateSlice.open){this.state.directionCaretClass=DIRECTION_CARET_CLASS[this.defaultDirection];}
Object.assign(this.state,stateSlice);const stateChangedPayload={emitter:this,newState:{...this.state},};Dropdown.bus.trigger("state-changed",stateChangedPayload);this.props.onStateChanged({...this.state});}
close(){return this.changeStateAndNotify({open:false,groupIsOpen:false});}
open(){return this.changeStateAndNotify({open:true,groupIsOpen:this.props.autoOpen});}
toggle(){const toggled=!this.state.open;return this.changeStateAndNotify({open:toggled,groupIsOpen:toggled&&this.props.autoOpen,});}
get showCaret(){return this.props.showCaret===undefined?this.parentDropdown:this.props.showCaret;}
onDropdownStateChanged(args){if(!this.rootRef.el||this.rootRef.el.contains(args.emitter.rootRef.el)||args.emitter.myActiveEl!==this.myActiveEl){return;}
if(args.emitter.rootRef.el.parentElement===this.rootRef.el.parentElement){this.state.groupIsOpen=args.newState.groupIsOpen&&this.props.autoOpen;if(this.state.open&&args.newState.open){this.state.open=false;}}else{if(this.state.open&&args.newState.open){this.close();}}}
onTogglerClick(){this.toggle();}
onTogglerMouseEnter(){if(this.state.groupIsOpen&&!this.state.open){this.togglerRef.el.focus();this.open();}}
isInActiveElement(){return this.ui.activeElement===this.myActiveEl;}
onWindowClicked(ev){if(!this.state.open){return;}
if(!this.isInActiveElement()){return;}
if(ev.target.closest(".o_datetime_picker")){return;}
const rootEl=this.props.toggler==="parent"?this.rootRef.el.parentElement:this.rootRef.el;const gotClickedInside=rootEl.contains(ev.target);if(!gotClickedInside){this.close();}}}
Dropdown.bus=new EventBus();Dropdown.defaultProps={menuDisplay:"d-block",autoOpen:true,holdOnHover:false,onOpened:()=>{},onStateChanged:()=>{},onScroll:()=>{},};Dropdown.props={class:{type:String,optional:true,},disabled:{type:Boolean,optional:true,},toggler:{type:String,optional:true,validate:(prop)=>["parent"].includes(prop),},skipTogglerTabbing:{type:Boolean,optional:true,},startOpen:{type:Boolean,optional:true,},autoOpen:{type:Boolean,optional:true,},menuClass:{type:String,optional:true,},menuDisplay:{type:String,optional:true,},beforeOpen:{type:Function,optional:true,},onOpened:{type:Function,optional:true,},onScroll:{type:Function,optional:true,},onStateChanged:{type:Function,optional:true,},togglerClass:{type:String,optional:true,},hotkey:{type:String,optional:true,},tooltip:{type:String,optional:true,},title:{type:String,optional:true,},position:{type:String,optional:true,},slots:{type:Object,optional:true,},showCaret:{type:Boolean,optional:true,},holdOnHover:{type:Boolean,optional:true,},container:{type:[Element,Function],optional:true,},};Dropdown.template="web.Dropdown";return __exports;});;

/* /web/static/src/core/dropdown/dropdown_item.js */
odoo.define('@web/core/dropdown/dropdown_item',['@web/core/dropdown/dropdown','@odoo/owl'],function(require){'use strict';let __exports={};const{DROPDOWN}=require("@web/core/dropdown/dropdown");const{Component}=require("@odoo/owl");const ParentClosingMode={None:"none",ClosestParent:"closest",AllParents:"all",};const DropdownItem=__exports.DropdownItem=class DropdownItem extends Component{onClick(ev){const{href,onSelected,parentClosingMode}=this.props;if(href){ev.preventDefault();}
if(onSelected){onSelected();}
const dropdown=this.env[DROPDOWN];if(!dropdown){return;}
const{ClosestParent,AllParents}=ParentClosingMode;switch(parentClosingMode){case ClosestParent:dropdown.close();break;case AllParents:dropdown.closeAllParents();break;}}
get dataAttributes(){const{dataset}=this.props;if(this.props.dataset){const attributes=Object.entries(dataset).map(([key,value])=>{return[`data-${key.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`)}`,value];});return Object.fromEntries(attributes);}
return{};}}
DropdownItem.template="web.DropdownItem";DropdownItem.props={onSelected:{type:Function,optional:true,},class:{type:[String,Object],optional:true,},parentClosingMode:{type:ParentClosingMode,optional:true,},hotkey:{type:String,optional:true,},href:{type:String,optional:true,},slots:{type:Object,optional:true,},title:{type:String,optional:true,},dataset:{type:Object,optional:true,},};DropdownItem.defaultProps={parentClosingMode:ParentClosingMode.AllParents,};return __exports;});;

/* /web/static/src/core/dropdown/dropdown_navigation_hook.js */
odoo.define('@web/core/dropdown/dropdown_navigation_hook',['@web/core/utils/hooks','@web/core/browser/browser','@web/core/l10n/localization','@web/core/utils/scrolling','@odoo/owl','@web/core/dropdown/accordion_item'],function(require){'use strict';let __exports={};const{useService}=require("@web/core/utils/hooks");const{browser}=require("@web/core/browser/browser");const{localization}=require("@web/core/l10n/localization");const{scrollTo}=require("@web/core/utils/scrolling");const{useChildSubEnv,useComponent,useEffect,useRef}=require("@odoo/owl");const{ACCORDION}=require("@web/core/dropdown/accordion_item");const ACTIVE_MENU_ELEMENT_CLASS="focus";const MENU_ELEMENTS_SELECTORS=[":scope > .dropdown-item",":scope > .dropdown",":scope > .o_accordion > .dropdown-item",":scope > .o_accordion > .o_accordion_values > .dropdown-item",":scope > .o_dropdown_container > .dropdown-item",":scope > .o_dropdown_container > .dropdown",":scope > .o_dropdown_container > .o_accordion > .dropdown-item",":scope > .o_dropdown_container > .o_accordion > .o_accordion_values > .dropdown-item",];const NEXT_ACTIVE_INDEX_FNS={FIRST:()=>0,LAST:(list)=>list.length-1,NEXT:(list,prevActiveIndex)=>(prevActiveIndex+1)%list.length,PREV:(list,prevActiveIndex)=>(prevActiveIndex<=0?list.length:prevActiveIndex)-1,};__exports.useDropdownNavigation=useDropdownNavigation;function useDropdownNavigation(){const comp=useComponent();if(comp.parentDropdown&&comp.props.toggler==="parent"){throw new Error("A nested Dropdown must use its standard toggler");}
const originalOnTogglerClick=comp.onTogglerClick.bind(comp);comp.onTogglerClick=(ev)=>{if(comp.parentDropdown&&!ev.__fromDropdownNavigation){return;}
originalOnTogglerClick();};const originalOnTogglerMouseEnter=comp.onTogglerMouseEnter.bind(comp);comp.onTogglerMouseEnter=()=>{if(comp.parentDropdown){return;}
originalOnTogglerMouseEnter();};let mouseSelectionActive=true;const menuRef=useRef("menuRef");let menuElements=[];let cleanupMenuElements;const refreshMenuElements=()=>{if(!comp.state.open){return;}
const addedListeners=[];const queryResult=menuRef.el.querySelectorAll(MENU_ELEMENTS_SELECTORS.join());for(const el of queryResult){const isSubDropdown=el.classList.contains("dropdown");const isSubDropdownOpen=()=>el.classList.contains("show");const navTarget=isSubDropdown?el.querySelector(":scope > .dropdown-toggle"):el;let subDropdownTimeout;const closeSubDropdown=()=>{browser.clearTimeout(subDropdownTimeout);subDropdownTimeout=browser.setTimeout(()=>{if(isSubDropdownOpen()){const ev=new MouseEvent("click",{bubbles:false});ev.__fromDropdownNavigation=true;navTarget.dispatchEvent(ev);}},200);};const openSubDropdown=(immediate=false)=>{browser.clearTimeout(subDropdownTimeout);subDropdownTimeout=browser.setTimeout(()=>{if(!isSubDropdownOpen()){const ev=new MouseEvent("click",{bubbles:false});ev.__fromDropdownNavigation=true;navTarget.dispatchEvent(ev);}},immediate?0:200);};const makeOnlyActive=()=>{for(const menuElement of menuElements){if(menuElement.el===el){continue;}
menuElement.navTarget.classList.remove(ACTIVE_MENU_ELEMENT_CLASS);if(menuElement.isSubDropdown){menuElement.closeSubDropdown();}}
navTarget.classList.add(ACTIVE_MENU_ELEMENT_CLASS);navTarget.focus();};const menuElement={el,get isActive(){return navTarget.classList.contains(ACTIVE_MENU_ELEMENT_CLASS);},makeOnlyActive,navTarget,get isSubDropdownOpen(){return isSubDropdownOpen();},isSubDropdown,closeSubDropdown,openSubDropdown,};menuElements.push(menuElement);const elementListeners={mouseenter:()=>{if(!mouseSelectionActive){mouseSelectionActive=true;}else{makeOnlyActive();if(isSubDropdown){openSubDropdown();}}},};for(const[eventType,listener]of Object.entries(elementListeners)){navTarget.addEventListener(eventType,listener);}
addedListeners.push([navTarget,elementListeners]);}
cleanupMenuElements=()=>{menuElements=[];mouseSelectionActive=true;for(const[navTarget,listeners]of addedListeners){for(const[eventType,listener]of Object.entries(listeners)){navTarget.removeEventListener(eventType,listener);}}};return()=>cleanupMenuElements();};useEffect(refreshMenuElements);useChildSubEnv({[ACCORDION]:{accordionStateChanged:()=>{cleanupMenuElements?.();refreshMenuElements();},},});const getActiveMenuElement=()=>{return menuElements.find((menuElement)=>menuElement.isActive);};const setActiveMenuElement=(menuElement)=>{if(menuElements.length){if(typeof menuElement==="string"){const prevIndex=menuElements.indexOf(getActiveMenuElement());const nextIndex=NEXT_ACTIVE_INDEX_FNS[menuElement](menuElements,prevIndex);menuElement=menuElements[nextIndex];}
menuElement.makeOnlyActive();scrollTo(menuElement.el,{scrollable:menuElement.el.parentElement});}};useEffect((open)=>{if(open&&comp.parentDropdown){setActiveMenuElement("FIRST");}},()=>[comp.state.open]);const hotkeyService=useService("hotkey");const closeAndRefocus=()=>{const toFocus=comp.props.toggler==="parent"?comp.rootRef.el.parentElement:comp.rootRef.el.querySelector(":scope > .dropdown-toggle");comp.close().then(()=>{toFocus.focus();});};const closeSubDropdown=comp.parentDropdown?closeAndRefocus:()=>{};const openSubDropdown=()=>{const menuElement=getActiveMenuElement();if(menuElement&&menuElement.isSubDropdown){menuElement.openSubDropdown(true);}};const selectActiveMenuElement=()=>{const menuElement=getActiveMenuElement();if(menuElement){if(menuElement.isSubDropdown){menuElement.openSubDropdown(true);}else{menuElement.navTarget.click();}}};let hotkeyRemoves=[];const hotkeyCallbacks={home:()=>setActiveMenuElement("FIRST"),end:()=>setActiveMenuElement("LAST"),tab:()=>setActiveMenuElement("NEXT"),"shift+tab":()=>setActiveMenuElement("PREV"),arrowdown:()=>setActiveMenuElement("NEXT"),arrowup:()=>setActiveMenuElement("PREV"),arrowleft:localization.direction==="rtl"?openSubDropdown:closeSubDropdown,arrowright:localization.direction==="rtl"?closeSubDropdown:openSubDropdown,enter:selectActiveMenuElement,escape:closeAndRefocus,};useEffect((open)=>{if(!open){return;}
for(const[hotkey,callback]of Object.entries(hotkeyCallbacks)){const callbackWrapper=()=>{const hasOpenedSubDropdown=menuElements.some((m)=>m.isSubDropdownOpen);if(!hasOpenedSubDropdown){mouseSelectionActive=false;callback.call(comp);}};hotkeyRemoves.push(hotkeyService.add(hotkey,callbackWrapper,{allowRepeat:true}));}
return()=>{for(const removeHotkey of hotkeyRemoves){removeHotkey();}
hotkeyRemoves=[];};},()=>[comp.state.open]);}
return __exports;});;

/* /web/static/src/core/effects/effect_service.js */
odoo.define('@web/core/effects/effect_service',['@web/core/l10n/translation','@web/core/registry','@web/core/effects/rainbow_man'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{registry}=require("@web/core/registry");const{RainbowMan}=require("@web/core/effects/rainbow_man");const effectRegistry=registry.category("effects");function rainbowMan(env,params={}){let message=params.message;if(message instanceof jQuery){console.log("Providing a jQuery element to an effect is deprecated. Note that all event handlers will be lost.");message=message.html();}else if(message instanceof Element){console.log("Providing an HTML element to an effect is deprecated. Note that all event handlers will be lost.");message=message.outerHTML;}else if(!message){message=_t("Well Done!");}
if(env.services.user.showEffect){const props={imgUrl:params.img_url||"/web/static/img/smile.svg",fadeout:params.fadeout||"medium",message,Component:params.Component,props:params.props,};return{Component:RainbowMan,props};}
env.services.notification.add(message);}
effectRegistry.add("rainbow_man",rainbowMan);const effectService=__exports.effectService={dependencies:["overlay"],start(env,{overlay}){const add=(params={})=>{const type=params.type||"rainbow_man";const effect=effectRegistry.get(type);const{Component,props}=effect(env,params)||{};if(Component){const remove=overlay.add(Component,{...props,close:()=>remove(),});}};return{add};},};registry.category("services").add("effect",effectService);return __exports;});;

/* /web/static/src/core/effects/rainbow_man.js */
odoo.define('@web/core/effects/rainbow_man',['@web/core/browser/browser','@odoo/owl'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{Component,useEffect,useExternalListener,useState}=require("@odoo/owl");const RainbowMan=__exports.RainbowMan=class RainbowMan extends Component{setup(){useExternalListener(document.body,"click",this.closeRainbowMan);this.state=useState({isFading:false});this.delay=RainbowMan.rainbowFadeouts[this.props.fadeout];if(this.delay){useEffect(()=>{const timeout=browser.setTimeout(()=>{this.state.isFading=true;},this.delay);return()=>browser.clearTimeout(timeout);},()=>[]);}}
onAnimationEnd(ev){if(this.delay&&ev.animationName==="reward-fading-reverse"){ev.stopPropagation();this.closeRainbowMan();}}
closeRainbowMan(){this.props.close();}}
RainbowMan.template="web.RainbowMan";RainbowMan.props={fadeout:String,close:Function,message:String,imgUrl:String,Component:{type:Function,optional:true},props:{type:Object,optional:true},};RainbowMan.rainbowFadeouts={slow:4500,medium:3500,fast:2000,no:false};return __exports;});;

/* /web/static/src/core/emoji_picker/emoji_picker.js */
odoo.define('@web/core/emoji_picker/emoji_picker',['@web/core/utils/misc','@odoo/owl','@web/core/assets','@web/core/browser/browser','@web/core/l10n/translation','@web/core/popover/popover_hook','@web/core/utils/search','@web/core/utils/hooks'],function(require){'use strict';let __exports={};const{markEventHandled}=require("@web/core/utils/misc");const{Component,onMounted,onPatched,onWillDestroy,onWillPatch,onWillStart,onWillUnmount,useEffect,useRef,useState,}=require("@odoo/owl");const{loadBundle}=require("@web/core/assets");const{browser}=require("@web/core/browser/browser");const{_t}=require("@web/core/l10n/translation");const{usePopover}=require("@web/core/popover/popover_hook");const{fuzzyLookup}=require("@web/core/utils/search");const{useAutofocus,useService}=require("@web/core/utils/hooks");__exports.useEmojiPicker=useEmojiPicker;function useEmojiPicker(ref,props,options={}){const targets=[];const popover=usePopover(EmojiPicker,{...options,animation:false});props.storeScroll={scrollValue:0,set:(value)=>{props.storeScroll.scrollValue=value;},get:()=>{return props.storeScroll.scrollValue;},};function add(ref,onSelect,{show=false}={}){const toggler=()=>toggle(ref,onSelect);targets.push([ref,toggler]);if(!ref.el){return;}
ref.el.addEventListener("click",toggler);ref.el.addEventListener("mouseenter",loadEmoji);if(show){ref.el.click();}}
function toggle(ref,onSelect=props.onSelect){if(popover.isOpen){popover.close();}else{popover.open(ref.el,{...props,onSelect});}}
if(ref){add(ref);}
onMounted(()=>{for(const[ref,toggle]of targets){if(!ref.el){continue;}
ref.el.addEventListener("click",toggle);ref.el.addEventListener("mouseenter",loadEmoji);}});onWillPatch(()=>{for(const[ref,toggle]of targets){if(!ref.el){continue;}
ref.el.removeEventListener("click",toggle);ref.el.removeEventListener("mouseenter",loadEmoji);}});onPatched(()=>{for(const[ref,toggle]of targets){if(!ref.el){continue;}
ref.el.addEventListener("click",toggle);ref.el.addEventListener("mouseenter",loadEmoji);}});return{add,get isOpen(){return popover.isOpen;},};}
const loader=__exports.loader={loadEmoji:()=>loadBundle("web.assets_emoji"),};__exports.loadEmoji=loadEmoji;async function loadEmoji(){try{await loader.loadEmoji();return odoo.loader.modules.get("@web/core/emoji_picker/emoji_data");}catch{return{emojis:[],categories:[]};}}
const EMOJI_PER_ROW=__exports.EMOJI_PER_ROW=9;const EmojiPicker=__exports.EmojiPicker=class EmojiPicker extends Component{static props=["close?","onClose?","onSelect","state?","storeScroll?"];static template="web.EmojiPicker";categories=null;emojis=null;shouldScrollElem=null;lastSearchTerm;setup(){this.gridRef=useRef("emoji-grid");this.ui=useState(useService("ui"));this.state=useState({activeEmojiIndex:0,categoryId:null,recent:JSON.parse(browser.localStorage.getItem("web.emoji.frequent")||"{}"),searchTerm:"",});const onStorage=(ev)=>{if(ev.key==="web.emoji.frequent"){this.state.recent=ev.newValue?JSON.parse(ev.newValue):{};}else if(ev.key===null){this.state.recent={};}};browser.addEventListener("storage",onStorage);onWillDestroy(()=>{browser.removeEventListener("storage",onStorage);});useAutofocus();onWillStart(async()=>{const{categories,emojis}=await loadEmoji();this.categories=categories;this.emojis=emojis;this.emojiByCodepoints=Object.fromEntries(this.emojis.map((emoji)=>[emoji.codepoints,emoji]));this.state.categoryId=this.categories[0]?.sortId;this.recentCategory={name:"Frequently used",displayName:_t("Frequently used"),title:"🕓",sortId:0,};});onMounted(()=>{if(this.emojis.length===0){return;}
this.highlightActiveCategory();if(this.props.storeScroll){this.gridRef.el.scrollTop=this.props.storeScroll.get();}});onPatched(()=>{if(this.emojis.length===0){return;}
if(this.shouldScrollElem){this.shouldScrollElem=false;const getElement=()=>this.gridRef.el.querySelector(`.o-EmojiPicker-category[data-category="${this.state.categoryId}"`);const elem=getElement();if(elem){elem.scrollIntoView();}else{this.shouldScrollElem=getElement;}}});useEffect(()=>{if(this.searchTerm){this.gridRef.el.scrollTop=0;this.state.categoryId=null;}else{if(this.lastSearchTerm){this.gridRef.el.scrollTop=0;}
this.highlightActiveCategory();}
this.lastSearchTerm=this.searchTerm;},()=>[this.searchTerm]);onWillUnmount(()=>{if(!this.gridRef.el){return;}
if(this.props.storeScroll){this.props.storeScroll.set(this.gridRef.el.scrollTop);}});}
get searchTerm(){return this.props.state?this.props.state.searchTerm:this.state.searchTerm;}
set searchTerm(value){if(this.props.state){this.props.state.searchTerm=value;}else{this.state.searchTerm=value;}}
get itemsNumber(){return this.recentEmojis.length+this.getEmojis().length;}
get recentEmojis(){return Object.entries(this.state.recent).sort(([,usage_1],[,usage_2])=>usage_2-usage_1).slice(0,42).map(([codepoints])=>this.emojiByCodepoints[codepoints]);}
onClick(ev){markEventHandled(ev,"emoji.selectEmoji");}
onKeydown(ev){switch(ev.key){case"ArrowUp":{const newIndex=this.state.activeEmojiIndex-EMOJI_PER_ROW;if(newIndex>=0){this.state.activeEmojiIndex=newIndex;}
break;}
case"ArrowDown":{const newIndex=this.state.activeEmojiIndex+EMOJI_PER_ROW;if(newIndex<this.itemsNumber){this.state.activeEmojiIndex=newIndex;}
break;}
case"ArrowRight":{if(this.state.activeEmojiIndex+1===this.itemsNumber){break;}
this.state.activeEmojiIndex++;ev.preventDefault();break;}
case"ArrowLeft":{const newIndex=Math.max(this.state.activeEmojiIndex-1,0);if(newIndex!==this.state.activeEmojiIndex){this.state.activeEmojiIndex=newIndex;ev.preventDefault();}
break;}
case"Enter":ev.preventDefault();this.gridRef.el.querySelector(`.o-EmojiPicker-content .o-Emoji[data-index="${this.state.activeEmojiIndex}"]`)?.click();break;case"Escape":this.props.close?.();this.props.onClose?.();ev.stopPropagation();}}
getEmojis(){if(this.searchTerm.length>0){return fuzzyLookup(this.searchTerm,this.emojis,(emoji)=>[emoji.name,...emoji.keywords,...emoji.emoticons,...emoji.shortcodes].join(" "));}
return this.emojis;}
selectCategory(ev){const id=Number(ev.currentTarget.dataset.id);this.searchTerm="";this.state.categoryId=id;this.shouldScrollElem=true;}
selectEmoji(ev){const codepoints=ev.currentTarget.dataset.codepoints;const resetOnSelect=!ev.shiftKey&&!this.ui.isSmall;this.props.onSelect(codepoints,resetOnSelect);this.state.recent[codepoints]??=0;this.state.recent[codepoints]++;browser.localStorage.setItem("web.emoji.frequent",JSON.stringify(this.state.recent));if(resetOnSelect){this.gridRef.el.scrollTop=0;this.props.close?.();this.props.onClose?.();}}
highlightActiveCategory(){if(!this.gridRef||!this.gridRef.el){return;}
const coords=this.gridRef.el.getBoundingClientRect();const res=document.elementFromPoint(coords.x,coords.y+1);if(!res){return;}
this.state.categoryId=parseInt(res.dataset.category);}}
return __exports;});;

/* /web/static/src/core/errors/error_dialogs.js */
odoo.define('@web/core/errors/error_dialogs',['@web/core/browser/browser','@web/core/dialog/dialog','@web/core/l10n/translation','@web/core/registry','@web/core/utils/hooks','@web/core/utils/strings','@odoo/owl'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{Dialog}=require("@web/core/dialog/dialog");const{_t}=require("@web/core/l10n/translation");const{registry}=require("@web/core/registry");const{useService}=require("@web/core/utils/hooks");const{capitalize}=require("@web/core/utils/strings");const{Component,useState,markup}=require("@odoo/owl");const standardErrorDialogProps=__exports.standardErrorDialogProps={traceback:{type:[String,{value:null}],optional:true},message:{type:String,optional:true},name:{type:String,optional:true},exceptionName:{type:[String,{value:null}],optional:true},data:{type:[Object,{value:null}],optional:true},subType:{type:[String,{value:null}],optional:true},code:{type:[Number,String,{value:null}],optional:true},type:{type:[String,{value:null}],optional:true},close:Function,};const odooExceptionTitleMap=__exports.odooExceptionTitleMap=new Map(Object.entries({"odoo.addons.base.models.ir_mail_server.MailDeliveryException":_t("MailDeliveryException"),"odoo.exceptions.AccessDenied":_t("Access Denied"),"odoo.exceptions.MissingError":_t("Missing Record"),"odoo.exceptions.UserError":_t("Invalid Operation"),"odoo.exceptions.ValidationError":_t("Validation Error"),"odoo.exceptions.AccessError":_t("Access Error"),"odoo.exceptions.Warning":_t("Warning"),}));const ErrorDialog=__exports.ErrorDialog=class ErrorDialog extends Component{setup(){this.state=useState({showTraceback:false,});}
onClickClipboard(){browser.navigator.clipboard.writeText(`${this.props.name}\n${this.props.message}\n${this.props.traceback}`);}}
ErrorDialog.template="web.ErrorDialog";ErrorDialog.components={Dialog};ErrorDialog.title=_t("Odoo Error");ErrorDialog.props={...standardErrorDialogProps};const ClientErrorDialog=__exports.ClientErrorDialog=class ClientErrorDialog extends ErrorDialog{}
ClientErrorDialog.title=_t("Odoo Client Error");const NetworkErrorDialog=__exports.NetworkErrorDialog=class NetworkErrorDialog extends ErrorDialog{}
NetworkErrorDialog.title=_t("Odoo Network Error");const RPCErrorDialog=__exports.RPCErrorDialog=class RPCErrorDialog extends ErrorDialog{setup(){super.setup();this.inferTitle();this.traceback=this.props.traceback;if(this.props.data&&this.props.data.debug){this.traceback=`${this.props.data.debug}\nThe above server error caused the following client error:\n${this.traceback}`;}}
inferTitle(){if(this.props.exceptionName&&odooExceptionTitleMap.has(this.props.exceptionName)){this.title=odooExceptionTitleMap.get(this.props.exceptionName).toString();return;}
if(!this.props.type){return;}
switch(this.props.type){case"server":this.title=_t("Odoo Server Error");break;case"script":this.title=_t("Odoo Client Error");break;case"network":this.title=_t("Odoo Network Error");break;}}
onClickClipboard(){browser.navigator.clipboard.writeText(`${this.props.name}\n${this.props.message}\n${this.traceback}`);}}
const WarningDialog=__exports.WarningDialog=class WarningDialog extends Component{setup(){this.title=this.inferTitle();const{data,message}=this.props;if(data&&data.arguments&&data.arguments.length>0){this.message=data.arguments[0];}else{this.message=message;}}
inferTitle(){if(this.props.exceptionName&&odooExceptionTitleMap.has(this.props.exceptionName)){return odooExceptionTitleMap.get(this.props.exceptionName).toString();}
return this.props.title||_t("Odoo Warning");}}
WarningDialog.template="web.WarningDialog";WarningDialog.components={Dialog};WarningDialog.props={...standardErrorDialogProps,title:{type:String,optional:true},};const RedirectWarningDialog=__exports.RedirectWarningDialog=class RedirectWarningDialog extends Component{setup(){this.actionService=useService("action");const{data,subType}=this.props;const[message,actionId,buttonText,additionalContext]=data.arguments;this.title=capitalize(subType)||_t("Odoo Warning");this.message=message;this.actionId=actionId;this.buttonText=buttonText;this.additionalContext=additionalContext;}
async onClick(){const options={};if(this.additionalContext){options.additionalContext=this.additionalContext;}
if(this.actionId.help){this.actionId.help=markup(this.actionId.help);}
await this.actionService.doAction(this.actionId,options);this.props.close();}}
RedirectWarningDialog.template="web.RedirectWarningDialog";RedirectWarningDialog.components={Dialog};RedirectWarningDialog.props={...standardErrorDialogProps};const Error504Dialog=__exports.Error504Dialog=class Error504Dialog extends Component{}
Error504Dialog.template="web.Error504Dialog";Error504Dialog.components={Dialog};Error504Dialog.title=_t("Request timeout");Error504Dialog.props={...standardErrorDialogProps};const SessionExpiredDialog=__exports.SessionExpiredDialog=class SessionExpiredDialog extends Component{onClick(){browser.location.reload();}}
SessionExpiredDialog.template="web.SessionExpiredDialog";SessionExpiredDialog.components={Dialog};SessionExpiredDialog.title=_t("Odoo Session Expired");SessionExpiredDialog.props={...standardErrorDialogProps};registry.category("error_dialogs").add("odoo.exceptions.AccessDenied",WarningDialog).add("odoo.exceptions.AccessError",WarningDialog).add("odoo.exceptions.MissingError",WarningDialog).add("odoo.exceptions.UserError",WarningDialog).add("odoo.exceptions.ValidationError",WarningDialog).add("odoo.exceptions.RedirectWarning",RedirectWarningDialog).add("odoo.http.SessionExpiredException",SessionExpiredDialog).add("werkzeug.exceptions.Forbidden",SessionExpiredDialog).add("504",Error504Dialog);return __exports;});;

/* /web/static/src/core/errors/error_handlers.js */
odoo.define('@web/core/errors/error_handlers',['@web/core/l10n/translation','@web/core/browser/browser','@web/core/network/rpc_service','@web/core/registry','@web/core/errors/error_dialogs','@web/core/errors/error_service'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{browser}=require("@web/core/browser/browser");const{ConnectionLostError,RPCError}=require("@web/core/network/rpc_service");const{registry}=require("@web/core/registry");const{ClientErrorDialog,ErrorDialog,NetworkErrorDialog,RPCErrorDialog,}=require("@web/core/errors/error_dialogs");const{UncaughtClientError,UncaughtCorsError,UncaughtPromiseError}=require("@web/core/errors/error_service");const errorHandlerRegistry=registry.category("error_handlers");const errorDialogRegistry=registry.category("error_dialogs");const errorNotificationRegistry=registry.category("error_notifications");__exports.rpcErrorHandler=rpcErrorHandler;function rpcErrorHandler(env,error,originalError){if(!(error instanceof UncaughtPromiseError)){return false;}
if(originalError instanceof RPCError){error.unhandledRejectionEvent.preventDefault();const exceptionName=originalError.exceptionName;let ErrorComponent=originalError.Component;if(!ErrorComponent&&exceptionName){if(errorNotificationRegistry.contains(exceptionName)){const notif=errorNotificationRegistry.get(exceptionName);env.services.notification.add(notif.message||originalError.data.message,notif);return true;}
if(errorDialogRegistry.contains(exceptionName)){ErrorComponent=errorDialogRegistry.get(exceptionName);}}
if(!ErrorComponent&&originalError.data.context){const exceptionClass=originalError.data.context.exception_class;if(errorDialogRegistry.contains(exceptionClass)){ErrorComponent=errorDialogRegistry.get(exceptionClass);}}
env.services.dialog.add(ErrorComponent||RPCErrorDialog,{traceback:error.traceback,message:originalError.message,name:originalError.name,exceptionName:originalError.exceptionName,data:originalError.data,subType:originalError.subType,code:originalError.code,type:originalError.type,});return true;}}
errorHandlerRegistry.add("rpcErrorHandler",rpcErrorHandler,{sequence:97});let connectionLostNotifRemove=null;__exports.lostConnectionHandler=lostConnectionHandler;function lostConnectionHandler(env,error,originalError){if(!(error instanceof UncaughtPromiseError)){return false;}
if(originalError instanceof ConnectionLostError){if(connectionLostNotifRemove){return true;}
connectionLostNotifRemove=env.services.notification.add(_t("Connection lost. Trying to reconnect..."),{sticky:true});let delay=2000;browser.setTimeout(function checkConnection(){env.services.rpc("/web/webclient/version_info",{}).then(function(){if(connectionLostNotifRemove){connectionLostNotifRemove();connectionLostNotifRemove=null;}
env.services.notification.add(_t("Connection restored. You are back online."),{type:"info",});}).catch(()=>{delay=delay*1.5+500*Math.random();browser.setTimeout(checkConnection,delay);});},delay);return true;}}
errorHandlerRegistry.add("lostConnectionHandler",lostConnectionHandler,{sequence:98});const defaultDialogs=new Map([[UncaughtClientError,ClientErrorDialog],[UncaughtPromiseError,ClientErrorDialog],[UncaughtCorsError,NetworkErrorDialog],]);__exports.defaultHandler=defaultHandler;function defaultHandler(env,error){const DialogComponent=defaultDialogs.get(error.constructor)||ErrorDialog;env.services.dialog.add(DialogComponent,{traceback:error.traceback,message:error.message,name:error.name,});return true;}
errorHandlerRegistry.add("defaultHandler",defaultHandler,{sequence:100});return __exports;});;

/* /web/static/src/core/errors/error_service.js */
odoo.define('@web/core/errors/error_service',['@web/core/browser/feature_detection','@web/core/browser/browser','@web/core/registry','@web/core/errors/error_utils'],function(require){'use strict';let __exports={};const{isBrowserFirefox,isBrowserChrome}=require("@web/core/browser/feature_detection");const{browser}=require("@web/core/browser/browser");const{registry}=require("@web/core/registry");const{completeUncaughtError,getErrorTechnicalName}=require("@web/core/errors/error_utils");const UncaughtError=__exports.UncaughtError=class UncaughtError extends Error{constructor(message){super(message);this.name=getErrorTechnicalName(this);this.traceback=null;}}
const UncaughtClientError=__exports.UncaughtClientError=class UncaughtClientError extends UncaughtError{constructor(message="Uncaught Javascript Error"){super(message);}}
const UncaughtPromiseError=__exports.UncaughtPromiseError=class UncaughtPromiseError extends UncaughtError{constructor(message="Uncaught Promise"){super(message);this.unhandledRejectionEvent=null;}}
const UncaughtCorsError=__exports.UncaughtCorsError=class UncaughtCorsError extends UncaughtError{constructor(message="Uncaught CORS Error"){super(message);}}
const errorService=__exports.errorService={start(env){function handleError(uncaughtError,retry=true){function shouldLogError(){return(uncaughtError.event&&!uncaughtError.event.defaultPrevented&&uncaughtError.traceback);}
let originalError=uncaughtError;while(originalError instanceof Error&&"cause"in originalError){originalError=originalError.cause;}
for(const[name,handler]of registry.category("error_handlers").getEntries()){try{if(handler(env,uncaughtError,originalError)){break;}}catch(e){if(shouldLogError()){uncaughtError.event.preventDefault();console.error(`@web/core/error_service: handler "${name}" failed with "${
                                e.cause || e
                            }" while trying to handle:\n`+uncaughtError.traceback);}
return;}}
if(shouldLogError()){uncaughtError.event.preventDefault();console.error(uncaughtError.traceback);}}
browser.addEventListener("error",async(ev)=>{const{colno,error,filename,lineno,message}=ev;const errorsToIgnore=["ResizeObserver loop completed with undelivered notifications.","ResizeObserver loop limit exceeded",];if(!(error instanceof Error)&&errorsToIgnore.includes(message)){ev.preventDefault();return;}
const isRedactedError=!filename&&!lineno&&!colno;const isThirdPartyScriptError=isRedactedError||(isBrowserFirefox()&&new URL(filename).origin!==window.location.origin);if(isThirdPartyScriptError&&!odoo.debug){return;}
let uncaughtError;if(isRedactedError){uncaughtError=new UncaughtCorsError();uncaughtError.traceback=`Unknown CORS error\n\n`+`An unknown CORS error occured.\n`+`The error probably originates from a JavaScript file served from a different origin.\n`+`(Opening your browser console might give you a hint on the error.)`;}else{uncaughtError=new UncaughtClientError();uncaughtError.event=ev;if(error instanceof Error){error.errorEvent=ev;const annotated=env.debug&&env.debug.includes("assets");await completeUncaughtError(uncaughtError,error,annotated);}}
uncaughtError.cause=error;handleError(uncaughtError);});browser.addEventListener("unhandledrejection",async(ev)=>{const error=ev.reason;let traceback;if(isBrowserChrome()&&ev instanceof CustomEvent&&error===undefined){if(!odoo.debug){return;}
traceback=`Uncaught unknown Error\n`+`An unknown error occured. This may be due to a Chrome extension meddling with Odoo.\n`+`(Opening your browser console might give you a hint on the error.)`;}
const uncaughtError=new UncaughtPromiseError();uncaughtError.unhandledRejectionEvent=ev;uncaughtError.event=ev;uncaughtError.traceback=traceback;if(error instanceof Error){error.errorEvent=ev;const annotated=env.debug&&env.debug.includes("assets");await completeUncaughtError(uncaughtError,error,annotated);}
uncaughtError.cause=error;handleError(uncaughtError);});},};registry.category("services").add("error",errorService,{sequence:1});return __exports;});;

/* /web/static/src/core/errors/error_utils.js */
odoo.define('@web/core/errors/error_utils',['@web/core/assets'],function(require){'use strict';let __exports={};const{loadJS}=require("@web/core/assets");function combineErrorNames(uncaughtError,originalError){const originalErrorName=getErrorTechnicalName(originalError);const uncaughtErrorName=getErrorTechnicalName(uncaughtError);if(originalErrorName===Error.name){return uncaughtErrorName;}else{return`${uncaughtErrorName} > ${originalErrorName}`;}}
__exports.fullTraceback=fullTraceback;function fullTraceback(error){let traceback=formatTraceback(error);let current=error.cause;while(current){traceback+=`\n\nCaused by: ${
            current instanceof Error ? formatTraceback(current) : current
        }`;current=current.cause;}
return traceback;}
__exports.fullAnnotatedTraceback=fullAnnotatedTraceback;async function fullAnnotatedTraceback(error){if(error.annotatedTraceback){return error.annotatedTraceback;}
if(error.errorEvent){error.errorEvent.preventDefault();}
let traceback;try{traceback=await annotateTraceback(error);let current=error.cause;while(current){traceback+=`\n\nCaused by: ${
                current instanceof Error ? await annotateTraceback(current) : current
            }`;current=current.cause;}}catch(e){console.warn("Failed to annotate traceback for error:",error,"failure reason:",e);traceback=fullTraceback(error);}
error.annotatedTraceback=traceback;if(error.errorEvent){throw error;}
return traceback;}
__exports.completeUncaughtError=completeUncaughtError;async function completeUncaughtError(uncaughtError,originalError,annotated=false){uncaughtError.name=combineErrorNames(uncaughtError,originalError);if(annotated){uncaughtError.traceback=await fullAnnotatedTraceback(originalError);}else{uncaughtError.traceback=fullTraceback(originalError);}
if(originalError.message){uncaughtError.message=`${uncaughtError.message} > ${originalError.message}`;}
uncaughtError.cause=originalError;}
__exports.getErrorTechnicalName=getErrorTechnicalName;function getErrorTechnicalName(error){return error.name!==Error.name?error.name:error.constructor.name;}
__exports.formatTraceback=formatTraceback;function formatTraceback(error){let traceback=error.stack;const errorName=getErrorTechnicalName(error);const descriptionLine=`${errorName}: ${error.message}`;if(error.stack.split("\n")[0].trim()!==descriptionLine){traceback=`${descriptionLine}\n${error.stack}`.replace(/\n/g,"\n    ");}
return traceback;}
__exports.annotateTraceback=annotateTraceback;async function annotateTraceback(error){const traceback=formatTraceback(error);try{await loadJS("/web/static/lib/stacktracejs/stacktrace.js");}catch{return traceback;}
if(error.stack){const regex=/ line (\d*) > (Function):(\d*)/gm;const subst=`:$1`;error.stack=error.stack.replace(regex,subst);}
let frames;try{frames=await StackTrace.fromError(error);}catch(e){console.warn("The following error could not be annotated:",error,e);return traceback;}
const lines=traceback.split("\n");if(lines[lines.length-1].trim()===""){lines.splice(-1);}
let lineIndex=0;let frameIndex=0;while(frameIndex<frames.length){const line=lines[lineIndex];if(!line.match(/:\d+:\d+\)?$/)){lineIndex++;continue;}
const frame=frames[frameIndex];const info=` (${frame.fileName}:${frame.lineNumber})`;lines[lineIndex]=line+info;lineIndex++;frameIndex++;}
return lines.join("\n");}
return __exports;});;

/* /web/static/src/core/errors/scss_error_dialog.js */
odoo.define('@web/core/errors/scss_error_dialog',['@web/core/browser/browser','@web/core/registry','@web/core/l10n/translation','@web/core/utils/urls'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{registry}=require("@web/core/registry");const{_t,translationIsReady}=require("@web/core/l10n/translation");const{getOrigin}=require("@web/core/utils/urls");const scssErrorNotificationService={dependencies:["notification"],start(env,{notification}){const origin=getOrigin();const assets=[...document.styleSheets].filter((sheet)=>{return(sheet.href?.includes("/web")&&sheet.href?.includes("/assets/")&&new URL(sheet.href,browser.location.origin).origin===origin);});translationIsReady.then(()=>{for(const asset of assets){let cssRules;try{cssRules=asset.cssRules;}catch{continue;}
const lastRule=cssRules?.[cssRules?.length-1];if(lastRule?.selectorText==="css_error_message"){const message=_t("The style compilation failed. This is an administrator or developer error that must be fixed for the entire database before continuing working. See browser console or server logs for details.");notification.add(message,{title:_t("Style error"),sticky:true,type:"danger",});console.log(lastRule.style.content.replaceAll("\\a","\n").replaceAll("\\*","*").replaceAll(`\\"`,`"`));}}});},};registry.category("services").add("scss_error_display",scssErrorNotificationService);return __exports;});;

/* /web/static/src/core/expression_editor/expression_editor.js */
odoo.define('@web/core/expression_editor/expression_editor',['@odoo/owl','@web/core/expression_editor/expression_editor_operator_editor','@web/core/tree_editor/condition_tree','@web/core/tree_editor/tree_editor','@web/core/tree_editor/tree_editor_operator_editor','@web/core/tree_editor/tree_editor_value_editors','@web/core/tree_editor/utils','@web/core/model_field_selector/model_field_selector','@web/core/l10n/translation'],function(require){'use strict';let __exports={};const{Component,onWillStart,onWillUpdateProps}=require("@odoo/owl");const{getExpressionDisplayedOperators}=require("@web/core/expression_editor/expression_editor_operator_editor");const{condition,expressionFromTree,treeFromExpression,}=require("@web/core/tree_editor/condition_tree");const{TreeEditor}=require("@web/core/tree_editor/tree_editor");const{getOperatorEditorInfo}=require("@web/core/tree_editor/tree_editor_operator_editor");const{getDefaultValue}=require("@web/core/tree_editor/tree_editor_value_editors");const{getDefaultPath}=require("@web/core/tree_editor/utils");const{ModelFieldSelector}=require("@web/core/model_field_selector/model_field_selector");const{_t}=require("@web/core/l10n/translation");function getDefaultCondition(fieldDefs){const defaultPath=getDefaultPath(fieldDefs);const fieldDef=fieldDefs[defaultPath];const operator=getExpressionDisplayedOperators(fieldDef)[0];const value=getDefaultValue(fieldDef,operator);return condition(fieldDef.name,operator,value);}
const ExpressionEditor=__exports.ExpressionEditor=class ExpressionEditor extends Component{static template="web.ExpressionEditor";static components={TreeEditor};static props={resModel:String,fields:Object,expression:String,update:Function,};setup(){onWillStart(()=>this.onPropsUpdated(this.props));onWillUpdateProps((nextProps)=>this.onPropsUpdated(nextProps));}
async onPropsUpdated(props){this.filteredFields=Object.fromEntries(Object.entries(props.fields).filter(([_,fieldDef])=>fieldDef.type!=="properties"));this.defaultCondition=getDefaultCondition(this.filteredFields);try{this.tree=treeFromExpression(props.expression,{getFieldDef:(name)=>this.getFieldDef(name,props),distributeNot:!this.isDebugMode,});}catch{this.tree=null;}}
getFieldDef(name,props=this.props){if(typeof name==="string"){return props.fields[name]||null;}
return null;}
getDefaultOperator(fieldDef){return getExpressionDisplayedOperators(fieldDef)[0];}
getOperatorEditorInfo(node){const fieldDef=this.getFieldDef(node.path);const operators=getExpressionDisplayedOperators(fieldDef);return getOperatorEditorInfo(operators);}
getPathEditorInfo(){return{component:ModelFieldSelector,extractProps:({value,update})=>({path:value,update,resModel:this.props.resModel,readonly:false,filter:(fieldDef)=>fieldDef.name in this.filteredFields,showDebugInput:false,followRelations:false,isDebugMode:this.isDebugMode,}),isSupported:(value)=>[0,1].includes(value)||value in this.filteredFields,stringify:(value)=>this.props.fields[value].string,defaultValue:()=>this.defaultCondition.path,message:_t("Field properties not supported"),};}
get isDebugMode(){return!!this.env.debug;}
onExpressionChange(expression){this.props.update(expression);}
resetExpression(){this.props.update("True");}
update(tree){const expression=expressionFromTree(tree,{getFieldDef:(name)=>this.getFieldDef(name),});this.props.update(expression);}}
return __exports;});;

/* /web/static/src/core/expression_editor/expression_editor_operator_editor.js */
odoo.define('@web/core/expression_editor/expression_editor_operator_editor',['@web/core/domain_selector/domain_selector_operator_editor'],function(require){'use strict';let __exports={};const{getDomainDisplayedOperators}=require("@web/core/domain_selector/domain_selector_operator_editor");const EXPRESSION_VALID_OPERATORS=["<","<=",">",">=","between","in","not in","=","!=","set","not_set","is","is_not",];__exports.getExpressionDisplayedOperators=getExpressionDisplayedOperators;function getExpressionDisplayedOperators(fieldDef){const operators=getDomainDisplayedOperators(fieldDef);return operators.filter((operator)=>EXPRESSION_VALID_OPERATORS.includes(operator));}
return __exports;});;

/* /web/static/src/core/expression_editor_dialog/expression_editor_dialog.js */
odoo.define('@web/core/expression_editor_dialog/expression_editor_dialog',['@odoo/owl','@web/core/dialog/dialog','@web/core/expression_editor/expression_editor','@web/core/py_js/py','@web/core/utils/hooks','@web/core/l10n/translation'],function(require){'use strict';let __exports={};const{Component,useRef,useState}=require("@odoo/owl");const{Dialog}=require("@web/core/dialog/dialog");const{ExpressionEditor}=require("@web/core/expression_editor/expression_editor");const{evaluateExpr}=require("@web/core/py_js/py");const{useService}=require("@web/core/utils/hooks");const{_t}=require("@web/core/l10n/translation");const ExpressionEditorDialog=__exports.ExpressionEditorDialog=class ExpressionEditorDialog extends Component{static components={Dialog,ExpressionEditor};static template="web.ExpressionEditorDialog";static props={close:Function,resModel:String,fields:Object,expression:String,onConfirm:Function,};setup(){this.notification=useService("notification");this.user=useService("user");this.state=useState({expression:this.props.expression,});this.confirmButtonRef=useRef("confirm");}
get expressionEditorProps(){return{resModel:this.props.resModel,fields:this.props.fields,expression:this.state.expression,update:(expression)=>{this.state.expression=expression;},};}
makeDefaultRecord(){const record={};for(const[name,{type}]of Object.entries(this.props.fields)){switch(type){case"integer":case"float":case"monetary":record[name]=name==="id"?false:0;break;case"one2many":case"many2many":record[name]=[];break;default:record[name]=false;}}
return record;}
async onConfirm(){this.confirmButtonRef.el.disabled=true;const record=this.makeDefaultRecord();const evalContext={...this.user.context,...record};try{evaluateExpr(this.state.expression,evalContext);}catch{if(this.confirmButtonRef.el){this.confirmButtonRef.el.disabled=false;}
this.notification.add(_t("Expression is invalid. Please correct it"),{type:"danger",});return;}
this.props.onConfirm(this.state.expression);this.props.close();}
onDiscard(){this.props.close();}}
return __exports;});;

/* /web/static/src/core/field_service.js */
odoo.define('@web/core/field_service',['@web/core/utils/cache','@web/core/domain','@web/core/registry'],function(require){'use strict';let __exports={};const{Cache}=require("@web/core/utils/cache");const{Domain}=require("@web/core/domain");const{registry}=require("@web/core/registry");const fieldService=__exports.fieldService={dependencies:["orm"],async:["loadFields","loadPath","loadPropertyDefinitions"],start(env,{orm}){const cache=new Cache((resModel,options)=>{return orm.call(resModel,"fields_get",[options.fieldNames,options.attributes]).catch((error)=>{cache.clear(resModel,options);return Promise.reject(error);});},(resModel,options)=>JSON.stringify([resModel,options.fieldNames,options.attributes]));env.bus.addEventListener("CLEAR-CACHES",()=>cache.invalidate());async function loadFields(resModel,options={}){if(typeof resModel!=="string"||!resModel){throw new Error(`Invalid model name: ${resModel}`);}
return cache.read(resModel,options);}
async function _loadPropertyDefinitions(fieldDefs,name,domain=[]){const{definition_record:definitionRecord,definition_record_field:definitionRecordField,}=fieldDefs[name];const definitionRecordModel=fieldDefs[definitionRecord].relation;domain=Domain.and([[[definitionRecordField,"!=",false]],domain]).toList();const result=await orm.webSearchRead(definitionRecordModel,domain,{specification:{display_name:{},[definitionRecordField]:{},},});const definitions={};for(const record of result.records){for(const definition of record[definitionRecordField]){definitions[definition.name]={is_property:true,searchable:true,record_id:record.id,record_name:record.display_name,...definition,};}}
return definitions;}
async function loadPropertyDefinitions(resModel,fieldName,domain){const fieldDefs=await loadFields(resModel);return _loadPropertyDefinitions(fieldDefs,fieldName,domain);}
async function _loadPath(resModel,fieldDefs,names){if(!fieldDefs){return{isInvalid:"path",names,modelsInfo:[]};}
const[name,...remainingNames]=names;const modelsInfo=[{resModel,fieldDefs}];if(resModel==="*"&&remainingNames.length){return{isInvalid:"path",names,modelsInfo};}
const fieldDef=fieldDefs[name];if((name!=="*"&&!fieldDef)||(name==="*"&&remainingNames.length)){return{isInvalid:"path",names,modelsInfo};}
if(!remainingNames.length){return{names,modelsInfo};}
let subResult;if(fieldDef.relation){subResult=await _loadPath(fieldDef.relation,await loadFields(fieldDef.relation),remainingNames);}else if(fieldDef.type==="properties"){subResult=await _loadPath("*",await _loadPropertyDefinitions(fieldDefs,name),remainingNames);}
if(subResult){const result={names,modelsInfo:[...modelsInfo,...subResult.modelsInfo],};if(subResult.isInvalid){result.isInvalid="path";}
return result;}
return{isInvalid:"path",names,modelsInfo};}
async function loadPath(resModel,path="*"){const fieldDefs=await loadFields(resModel);if(typeof path!=="string"||!path){throw new Error(`Invalid path: ${path}`);}
return _loadPath(resModel,fieldDefs,path.split("."));}
return{loadFields,loadPath,loadPropertyDefinitions};},};registry.category("services").add("field",fieldService);return __exports;});;

/* /web/static/src/core/file_input/file_input.js */
odoo.define('@web/core/file_input/file_input',['@web/core/utils/hooks','@odoo/owl','@web/core/utils/files'],function(require){'use strict';let __exports={};const{useService}=require("@web/core/utils/hooks");const{Component,onMounted,useRef,useState}=require("@odoo/owl");const{checkFileSize}=require("@web/core/utils/files");const FileInput=__exports.FileInput=class FileInput extends Component{setup(){this.http=useService("http");this.notification=useService("notification");this.fileInputRef=useRef("file-input");this.state=useState({isDisable:false,});onMounted(()=>{if(this.props.autoOpen){this.onTriggerClicked();}});}
get httpParams(){const{resId,resModel}=this.props;const params={csrf_token:odoo.csrf_token,ufile:[...this.fileInputRef.el.files],};if(resModel){params.model=resModel;}
if(resId!==undefined){params.id=resId;}
return params;}
async uploadFiles(params){if((params.ufile&&params.ufile.length)||params.file){const fileSize=(params.ufile&&params.ufile[0].size)||params.file.size;if(!checkFileSize(fileSize,this.notification)){return null;}}
const fileData=await this.http.post(this.props.route,params,"text");const parsedFileData=JSON.parse(fileData);if(parsedFileData.error){throw new Error(parsedFileData.error);}
return parsedFileData;}
async onFileInputChange(){this.state.isDisable=true;const parsedFileData=await this.uploadFiles(this.httpParams);if(parsedFileData){this.props.onUpload(parsedFileData,this.fileInputRef.el?this.fileInputRef.el.files:[]);this.fileInputRef.el.value=null;}
this.state.isDisable=false;}
async onTriggerClicked(){if(await this.props.beforeOpen()){this.fileInputRef.el.click();}}}
FileInput.defaultProps={acceptedFileExtensions:"*",hidden:false,multiUpload:false,onUpload:()=>{},route:"/web/binary/upload_attachment",beforeOpen:async()=>true,};FileInput.props={acceptedFileExtensions:{type:String,optional:true},autoOpen:{type:Boolean,optional:true},hidden:{type:Boolean,optional:true},multiUpload:{type:Boolean,optional:true},onUpload:{type:Function,optional:true},beforeOpen:{type:Function,optional:true},resId:{type:Number,optional:true},resModel:{type:String,optional:true},route:{type:String,optional:true},"*":true,};FileInput.template="web.FileInput";return __exports;});;

/* /web/static/src/core/file_upload/file_upload_progress_bar.js */
odoo.define('@web/core/file_upload/file_upload_progress_bar',['@web/core/l10n/translation','@web/core/utils/hooks','@web/core/confirmation_dialog/confirmation_dialog','@odoo/owl'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{useService}=require("@web/core/utils/hooks");const{ConfirmationDialog}=require("@web/core/confirmation_dialog/confirmation_dialog");const{Component}=require("@odoo/owl");const FileUploadProgressBar=__exports.FileUploadProgressBar=class FileUploadProgressBar extends Component{setup(){this.dialogService=useService("dialog");}
onCancel(){if(!this.props.fileUpload.xhr){return;}
this.dialogService.add(ConfirmationDialog,{body:_t("Do you really want to cancel the upload of %s?",this.props.fileUpload.title),confirm:()=>{this.props.fileUpload.xhr.abort();},});}}
FileUploadProgressBar.props={fileUpload:{type:Object},};FileUploadProgressBar.template="web.FileUploadProgressBar";return __exports;});;

/* /web/static/src/core/file_upload/file_upload_progress_container.js */
odoo.define('@web/core/file_upload/file_upload_progress_container',['@odoo/owl'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");const FileUploadProgressContainer=__exports.FileUploadProgressContainer=class FileUploadProgressContainer extends Component{}
FileUploadProgressContainer.template="web.FileUploadProgressContainer";FileUploadProgressContainer.props={Component:{optional:false},shouldDisplay:{type:Function,optional:true},fileUploads:{type:Object},};return __exports;});;

/* /web/static/src/core/file_upload/file_upload_progress_record.js */
odoo.define('@web/core/file_upload/file_upload_progress_record',['@web/core/l10n/translation','@web/core/file_upload/file_upload_progress_bar','@odoo/owl'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{FileUploadProgressBar}=require("@web/core/file_upload/file_upload_progress_bar");const{Component}=require("@odoo/owl");const FileUploadProgressRecord=__exports.FileUploadProgressRecord=class FileUploadProgressRecord extends Component{getProgressTexts(){const fileUpload=this.props.fileUpload;const percent=Math.round(fileUpload.progress*100);if(percent===100){return{left:_t("Processing..."),right:"",};}else{const mbLoaded=Math.round(fileUpload.loaded/1000000);const mbTotal=Math.round(fileUpload.total/1000000);return{left:_t("Uploading... (%s%)",percent),right:_t("(%s/%sMB)",mbLoaded,mbTotal),};}}}
FileUploadProgressRecord.components={FileUploadProgressBar,};const FileUploadProgressKanbanRecord=__exports.FileUploadProgressKanbanRecord=class FileUploadProgressKanbanRecord extends FileUploadProgressRecord{}
FileUploadProgressKanbanRecord.template="web.FileUploadProgressKanbanRecord";const FileUploadProgressDataRow=__exports.FileUploadProgressDataRow=class FileUploadProgressDataRow extends FileUploadProgressRecord{}
FileUploadProgressDataRow.template="web.FileUploadProgressDataRow";return __exports;});;

/* /web/static/src/core/file_upload/file_upload_service.js */
odoo.define('@web/core/file_upload/file_upload_service',['@web/core/l10n/translation','@web/core/registry','@odoo/owl'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{registry}=require("@web/core/registry");const{EventBus,reactive}=require("@odoo/owl");const fileUploadService=__exports.fileUploadService={dependencies:["notification"],createXhr(){return new window.XMLHttpRequest();},start(env,{notificationService}){const uploads=reactive({});let nextId=1;const bus=new EventBus();const upload=async(route,files,params={})=>{const xhr=this.createXhr();xhr.open("POST",route);const formData=new FormData();formData.append("csrf_token",odoo.csrf_token);for(const file of files){formData.append("ufile",file);}
if(params.buildFormData){params.buildFormData(formData);}
const upload=reactive({id:nextId++,xhr,data:formData,progress:0,loaded:0,total:0,state:"pending",title:files.length===1?files[0].name:_t("%s Files",files.length),type:files.length===1?files[0].type:undefined,});uploads[upload.id]=upload;xhr.upload.addEventListener("progress",async(ev)=>{upload.progress=ev.loaded/ev.total;upload.loaded=ev.loaded;upload.total=ev.total;upload.state="loading";});xhr.addEventListener("load",()=>{delete uploads[upload.id];upload.state="loaded";bus.trigger("FILE_UPLOAD_LOADED",{upload});});xhr.addEventListener("error",async()=>{delete uploads[upload.id];upload.state="error";if(params.displayErrorNotification!==undefined&&params.displayErrorNotification){notificationService.add(_t("An error occured while uploading."),{title:_t("Error"),sticky:true,});}
bus.trigger("FILE_UPLOAD_ERROR",{upload});});xhr.addEventListener("abort",async()=>{delete uploads[upload.id];upload.state="abort";bus.trigger("FILE_UPLOAD_ERROR",{upload});});xhr.send(formData);bus.trigger("FILE_UPLOAD_ADDED",{upload});return upload;};return{bus,upload,uploads};},};registry.category("services").add("file_upload",fileUploadService);return __exports;});;

/* /web/static/src/core/file_viewer/file_model.js */
odoo.define('@web/core/file_viewer/file_model',['@web/core/utils/urls'],function(require){'use strict';let __exports={};const{url}=require("@web/core/utils/urls");const FileModelMixin=__exports.FileModelMixin=(T)=>class extends T{accessToken;checksum;extension;filename;id;mimetype;name;type;tmpUrl;url;uploading;get defaultSource(){const route=url(this.urlRoute,this.urlQueryParams);const encodedRoute=encodeURIComponent(route);if(this.isPdf){return`/web/static/lib/pdfjs/web/viewer.html?file=${encodedRoute}#pagemode=none`;}
if(this.isUrlYoutube){const urlArr=this.url.split("/");let token=urlArr[urlArr.length-1];if(token.includes("watch")){token=token.split("v=")[1];const amp=token.indexOf("&");if(amp!==-1){token=token.substring(0,amp);}}
return`https://www.youtube.com/embed/${token}`;}
return route;}
get displayName(){return this.name||this.filename;}
get downloadUrl(){return url(this.urlRoute,{...this.urlQueryParams,download:true});}
get isImage(){const imageMimetypes=["image/bmp","image/gif","image/jpeg","image/png","image/svg+xml","image/tiff","image/x-icon","image/webp",];return imageMimetypes.includes(this.mimetype);}
get isPdf(){return this.mimetype&&this.mimetype.startsWith("application/pdf");}
get isText(){const textMimeType=["application/javascript","application/json","text/css","text/html","text/plain",];return textMimeType.includes(this.mimetype);}
get isUrl(){return this.type==="url"&&this.url;}
get isUrlYoutube(){return!!this.url&&this.url.includes("youtu");}
get isVideo(){const videoMimeTypes=["audio/mpeg","video/x-matroska","video/mp4","video/webm"];return videoMimeTypes.includes(this.mimetype);}
get isViewable(){return((this.isText||this.isImage||this.isVideo||this.isPdf||this.isUrlYoutube)&&!this.uploading);}
get urlQueryParams(){if(this.uploading&&this.tmpUrl){return{};}
const params={access_token:this.accessToken,filename:this.name,unique:this.checksum,};for(const prop in params){if(!params[prop]){delete params[prop];}}
return params;}
get urlRoute(){if(this.uploading&&this.tmpUrl){return this.tmpUrl;}
if(!this.id){return this.url;}
return this.isImage?`/web/image/${this.id}`:`/web/content/${this.id}`;}};const FileModel=__exports.FileModel=class FileModel extends FileModelMixin(Object){}
return __exports;});;

/* /web/static/src/core/file_viewer/file_viewer.js */
odoo.define('@web/core/file_viewer/file_viewer',['@odoo/owl','@web/core/utils/hooks'],function(require){'use strict';let __exports={};const{Component,useRef,useState}=require("@odoo/owl");const{useAutofocus,useService}=require("@web/core/utils/hooks");const FileViewer=__exports.FileViewer=class FileViewer extends Component{static template="web.FileViewer";static components={};static props=["files","startIndex","close?","modal?"];static defaultProps={modal:true,};setup(){useAutofocus();this.imageRef=useRef("image");this.zoomerRef=useRef("zoomer");this.isDragging=false;this.dragStartX=0;this.dragStartY=0;this.scrollZoomStep=0.1;this.zoomStep=0.5;this.minScale=0.5;this.translate={dx:0,dy:0,x:0,y:0,};this.state=useState({index:this.props.startIndex,file:this.props.files[this.props.startIndex],imageLoaded:false,scale:1,angle:0,});this.ui=useState(useService("ui"));}
onImageLoaded(){this.state.imageLoaded=true;}
close(){this.props.close&&this.props.close();}
next(){const last=this.props.files.length-1;this.activateFile(this.state.index===last?0:this.state.index+1);}
previous(){const last=this.props.files.length-1;this.activateFile(this.state.index===0?last:this.state.index-1);}
activateFile(index){this.state.index=index;this.state.file=this.props.files[index];}
onKeydown(ev){switch(ev.key){case"ArrowRight":this.next();break;case"ArrowLeft":this.previous();break;case"Escape":this.close();break;case"q":this.close();break;}
if(this.state.file.isImage){switch(ev.key){case"r":this.rotate();break;case"+":this.zoomIn();break;case"-":this.zoomOut();break;case"0":this.resetZoom();break;}}}
onWheelImage(ev){if(ev.deltaY>0){this.zoomOut({scroll:true});}else{this.zoomIn({scroll:true});}}
onMousedownImage(ev){if(this.isDragging){return;}
if(ev.button!==0){return;}
this.isDragging=true;this.dragStartX=ev.clientX;this.dragStartY=ev.clientY;}
onMouseupImage(){if(!this.isDragging){return;}
this.isDragging=false;this.translate.x+=this.translate.dx;this.translate.y+=this.translate.dy;this.translate.dx=0;this.translate.dy=0;this.updateZoomerStyle();}
onMousemoveView(ev){if(!this.isDragging){return;}
this.translate.dx=ev.clientX-this.dragStartX;this.translate.dy=ev.clientY-this.dragStartY;this.updateZoomerStyle();}
resetZoom(){this.state.scale=1;this.updateZoomerStyle();}
rotate(){this.state.angle+=90;}
zoomIn({scroll=false}={}){this.state.scale=this.state.scale+(scroll?this.scrollZoomStep:this.zoomStep);this.updateZoomerStyle();}
zoomOut({scroll=false}={}){if(this.state.scale===this.minScale){return;}
const unflooredAdaptedScale=this.state.scale-(scroll?this.scrollZoomStep:this.zoomStep);this.state.scale=Math.max(this.minScale,unflooredAdaptedScale);this.updateZoomerStyle();}
updateZoomerStyle(){const tx=this.imageRef.el.offsetWidth*this.state.scale>this.zoomerRef.el.offsetWidth?this.translate.x+this.translate.dx:0;const ty=this.imageRef.el.offsetHeight*this.state.scale>this.zoomerRef.el.offsetHeight?this.translate.y+this.translate.dy:0;if(tx===0){this.translate.x=0;}
if(ty===0){this.translate.y=0;}
this.zoomerRef.el.style="transform: "+`translate(${tx}px, ${ty}px)`;}
get imageStyle(){let style="transform: "+`scale3d(${this.state.scale}, ${this.state.scale}, 1) `+`rotate(${this.state.angle}deg);`;if(this.state.angle%180!==0){style+=`max-height: ${window.innerWidth}px; max-width: ${window.innerHeight}px;`;}else{style+="max-height: 100%; max-width: 100%;";}
return style;}
onClickPrint(){const printWindow=window.open("about:blank","_new");printWindow.document.open();printWindow.document.write(`
                <html>
                    <head>
                        <script>
                            function onloadImage() {
                                setTimeout('printImage()', 10);
                            }
                            function printImage() {
                                window.print();
                                window.close();
                            }
                        </script>
                    </head>
                    <body onload='onloadImage()'>
                        <img src="${this.state.file.defaultSource}" alt=""/>
                    </body>
                </html>`);printWindow.document.close();}}
return __exports;});;

/* /web/static/src/core/file_viewer/file_viewer_hook.js */
odoo.define('@web/core/file_viewer/file_viewer_hook',['@odoo/owl','@web/core/registry','@web/core/file_viewer/file_viewer'],function(require){'use strict';let __exports={};const{onWillDestroy}=require("@odoo/owl");const{registry}=require("@web/core/registry");const{FileViewer}=require("@web/core/file_viewer/file_viewer");let id=1;__exports.useFileViewer=useFileViewer;function useFileViewer(){const fileViewerId=`web.file_viewer${id++}`;function open(file,files=[file]){if(!file.isViewable){return;}
if(files.length>0){const viewableFiles=files.filter((file)=>file.isViewable);const index=viewableFiles.indexOf(file);registry.category("main_components").add(fileViewerId,{Component:FileViewer,props:{files:viewableFiles,startIndex:index,close},});}}
function close(){registry.category("main_components").remove(fileViewerId);}
onWillDestroy(close);return{open,close};}
return __exports;});;

/* /web/static/src/core/hotkeys/hotkey_hook.js */
odoo.define('@web/core/hotkeys/hotkey_hook',['@web/core/utils/hooks','@odoo/owl'],function(require){'use strict';let __exports={};const{useService}=require("@web/core/utils/hooks");const{useEffect}=require("@odoo/owl");__exports.useHotkey=useHotkey;function useHotkey(hotkey,callback,options={}){const hotkeyService=useService("hotkey");useEffect(()=>hotkeyService.add(hotkey,callback,options),()=>[]);}
return __exports;});;

/* /web/static/src/core/hotkeys/hotkey_service.js */
odoo.define('@web/core/hotkeys/hotkey_service',['@web/core/browser/feature_detection','@web/core/registry','@web/core/browser/browser','@web/core/utils/ui'],function(require){'use strict';let __exports={};const{isMacOS}=require("@web/core/browser/feature_detection");const{registry}=require("@web/core/registry");const{browser}=require("@web/core/browser/browser");const{getVisibleElements}=require("@web/core/utils/ui");const ALPHANUM_KEYS="abcdefghijklmnopqrstuvwxyz0123456789".split("");const NAV_KEYS=["arrowleft","arrowright","arrowup","arrowdown","pageup","pagedown","home","end","backspace","enter","tab","delete","space",];const MODIFIERS=["alt","control","shift"];const AUTHORIZED_KEYS=[...ALPHANUM_KEYS,...NAV_KEYS,"escape"];__exports.getActiveHotkey=getActiveHotkey;function getActiveHotkey(ev){if(!ev.key){return"";}
if(ev.isComposing){return"";}
const hotkey=[];if(isMacOS()?ev.ctrlKey:ev.altKey){hotkey.push("alt");}
if(isMacOS()?ev.metaKey:ev.ctrlKey){hotkey.push("control");}
if(ev.shiftKey){hotkey.push("shift");}
let key=ev.key.toLowerCase();if(key===" "){key="space";}
if(ev.code&&ev.code.indexOf("Digit")===0){key=ev.code.slice(-1);}
if(!AUTHORIZED_KEYS.includes(key)&&ev.code&&ev.code.indexOf("Key")===0){key=ev.code.slice(-1).toLowerCase();}
if(!MODIFIERS.includes(key)){hotkey.push(key);}
return hotkey.join("+");}
const hotkeyService=__exports.hotkeyService={dependencies:["ui"],overlayModifier:"alt",start(env,{ui}){const registrations=new Map();let nextToken=0;let overlaysVisible=false;addListeners(browser);function addListeners(target){target.addEventListener("keydown",onKeydown);target.addEventListener("keyup",removeHotkeyOverlays);target.addEventListener("blur",removeHotkeyOverlays);target.addEventListener("click",removeHotkeyOverlays);}
function onKeydown(event){if(event.code&&event.code.indexOf("Numpad")===0&&/^\d$/.test(event.key)){return;}
const hotkey=getActiveHotkey(event);if(!hotkey){return;}
const{activeElement,isBlocked}=ui;if(isBlocked){return;}
const elementsWithAccessKey=document.querySelectorAll("[accesskey]");for(const el of elementsWithAccessKey){if(el instanceof HTMLElement){el.dataset.hotkey=el.accessKey;el.removeAttribute("accesskey");}}
if(!overlaysVisible&&hotkey===hotkeyService.overlayModifier){addHotkeyOverlays(activeElement);event.preventDefault();return;}
const singleKey=hotkey.split("+").pop();if(!AUTHORIZED_KEYS.includes(singleKey)){return;}
const targetIsEditable=event.target instanceof HTMLElement&&(/input|textarea/i.test(event.target.tagName)||event.target.isContentEditable)&&!event.target.matches("input[type=checkbox], input[type=radio]");const shouldProtectEditable=targetIsEditable&&!event.target.dataset.allowHotkeys&&singleKey!=="escape";const infos={activeElement,hotkey,isRepeated:event.repeat,target:event.target,shouldProtectEditable,};const dispatched=dispatch(infos);if(dispatched){event.preventDefault();event.stopImmediatePropagation();}
if(overlaysVisible){removeHotkeyOverlays();event.preventDefault();}}
function dispatch(infos){const{activeElement,hotkey,isRepeated,target,shouldProtectEditable}=infos;const reversedRegistrations=Array.from(registrations.values()).reverse();const domRegistrations=getDomRegistrations(hotkey,activeElement);const allRegistrations=reversedRegistrations.concat(domRegistrations);const candidates=allRegistrations.filter((reg)=>reg.hotkey===hotkey&&(reg.allowRepeat||!isRepeated)&&(reg.bypassEditableProtection||!shouldProtectEditable)&&(reg.global||reg.activeElement===activeElement)&&(!reg.isAvailable||reg.isAvailable())&&(!reg.area||(target instanceof Node&&reg.area()&&reg.area().contains(target))));let winner=candidates.shift();if(winner&&winner.area){for(const candidate of candidates.filter((c)=>Boolean(c.area))){if(candidate.area()&&winner.area().contains(candidate.area())){winner=candidate;}}}
if(winner){winner.callback({area:winner.area&&winner.area(),target,});return true;}
return false;}
function getDomRegistrations(hotkey,activeElement){const overlayModParts=hotkeyService.overlayModifier.split("+");if(!overlayModParts.every((el)=>hotkey.includes(el))){return[];}
const cleanHotkey=hotkey.split("+").filter((key)=>!overlayModParts.includes(key)).join("+");const elems=getVisibleElements(activeElement,`[data-hotkey='${cleanHotkey}' i]`);return elems.map((el)=>({hotkey,activeElement,bypassEditableProtection:true,callback:()=>{if(document.activeElement){document.activeElement.blur();}
setTimeout(()=>el.click());},}));}
function addHotkeyOverlays(activeElement){for(const el of getVisibleElements(activeElement,"[data-hotkey]:not(:disabled)")){const hotkey=el.dataset.hotkey;const overlay=document.createElement("div");overlay.classList.add("o_web_hotkey_overlay","position-absolute","top-0","bottom-0","start-0","end-0","d-flex","justify-content-center","align-items-center","m-0","bg-black-50","h6");const overlayKbd=document.createElement("kbd");overlayKbd.className="small";overlayKbd.appendChild(document.createTextNode(hotkey.toUpperCase()));overlay.appendChild(overlayKbd);let overlayParent;if(el.tagName.toUpperCase()==="INPUT"){overlayParent=el.parentElement;}else{overlayParent=el;}
if(overlayParent.style.position!=="absolute"){overlayParent.style.position="relative";}
overlayParent.appendChild(overlay);}
overlaysVisible=true;}
function removeHotkeyOverlays(){for(const overlay of document.querySelectorAll(".o_web_hotkey_overlay")){overlay.remove();}
overlaysVisible=false;}
function registerHotkey(hotkey,callback,options={}){if(!hotkey||hotkey.length===0){throw new Error("You must specify an hotkey when registering a registration.");}
if(!callback||typeof callback!=="function"){throw new Error("You must specify a callback function when registering a registration.");}
const keys=hotkey.toLowerCase().split("+").filter((k)=>!MODIFIERS.includes(k));if(keys.some((k)=>!AUTHORIZED_KEYS.includes(k))){throw new Error(`You are trying to subscribe for an hotkey ('${hotkey}')
            that contains parts not whitelisted: ${keys.join(", ")}`);}else if(keys.length>1){throw new Error(`You are trying to subscribe for an hotkey ('${hotkey}')
            that contains more than one single key part: ${keys.join("+")}`);}
const token=nextToken++;const registration={hotkey:hotkey.toLowerCase(),callback,activeElement:null,allowRepeat:options&&options.allowRepeat,bypassEditableProtection:options&&options.bypassEditableProtection,global:options&&options.global,area:options&&options.area,isAvailable:options&&options.isAvailable,};Promise.resolve().then(()=>{registration.activeElement=ui.activeElement;});registrations.set(token,registration);return token;}
function unregisterHotkey(token){registrations.delete(token);}
return{add(hotkey,callback,options={}){const token=registerHotkey(hotkey,callback,options);return()=>{unregisterHotkey(token);};},registerIframe(iframe){addListeners(iframe.contentWindow);},};},};registry.category("services").add("hotkey",hotkeyService);return __exports;});;

/* /web/static/src/core/install_prompt/install_prompt.js */
odoo.define('@web/core/install_prompt/install_prompt',['@odoo/owl','@web/core/dialog/dialog','@web/core/browser/feature_detection'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");const{Dialog}=require("@web/core/dialog/dialog");const{isIOS}=require("@web/core/browser/feature_detection");const InstallPrompt=__exports.InstallPrompt=class InstallPrompt extends Component{static props={close:true,onClose:{type:Function},};static components={Dialog,};static template="web.InstallPrompt";get isMobileSafari(){return isIOS();}
onClose(){this.props.close();this.props.onClose();}}
return __exports;});;

/* /web/static/src/core/install_prompt/install_prompt_service.js */
odoo.define('@web/core/install_prompt/install_prompt_service',['@odoo/owl','@web/core/browser/browser','@web/core/browser/feature_detection','@web/core/registry','@web/core/install_prompt/install_prompt'],function(require){'use strict';let __exports={};const{reactive}=require("@odoo/owl");const{browser}=require("@web/core/browser/browser");const{isDisplayStandalone,isIOS,isMacOS,isBrowserSafari,}=require("@web/core/browser/feature_detection");const{registry}=require("@web/core/registry");const{InstallPrompt}=require("@web/core/install_prompt/install_prompt");const serviceRegistry=registry.category("services");const installPromptService={dependencies:["dialog"],start(env,{dialog}){let nativePrompt;const state=reactive({canPromptToInstall:false,decline,show,});const canBeInstalled=browser.BeforeInstallPromptEvent!==undefined||(isBrowserSafari()&&!isDisplayStandalone()&&(isIOS()||(isMacOS()&&browser.navigator.userAgent.match(/Version\/(\d+)/)[1]>=17)));const installationState=browser.localStorage.getItem("pwa.installationState");const isDeclined=installationState==="dismissed";if(canBeInstalled&&!isDeclined){browser.addEventListener("beforeinstallprompt",(ev)=>{nativePrompt=ev;if(installationState==="accepted"){browser.localStorage.removeItem("pwa.installationState");}
state.canPromptToInstall=true;});if(isBrowserSafari()){state.canPromptToInstall=installationState!=="accepted";}}
async function show(){if(!state.canPromptToInstall){return;}
if(nativePrompt){const res=await nativePrompt.prompt();browser.localStorage.setItem("pwa.installationState",res.outcome);state.canPromptToInstall=false;}else if(isBrowserSafari()){dialog.add(InstallPrompt,{onClose:()=>this.decline(),});}}
function decline(){browser.localStorage.setItem("pwa.installationState","dismissed");state.canPromptToInstall=false;}
return state;},};serviceRegistry.add("installPrompt",installPromptService);return __exports;});;

/* /web/static/src/core/l10n/dates.js */
odoo.define('@web/core/l10n/dates',['@web/core/l10n/localization','@web/core/l10n/translation','@web/core/utils/functions','@web/core/utils/arrays'],function(require){'use strict';let __exports={};const{localization}=require("@web/core/l10n/localization");const{_t}=require("@web/core/l10n/translation");const{memoize}=require("@web/core/utils/functions");const{ensureArray}=require("@web/core/utils/arrays");const{DateTime,Settings}=luxon;const MIN_VALID_DATE=__exports.MIN_VALID_DATE=DateTime.fromObject({year:1000});const MAX_VALID_DATE=__exports.MAX_VALID_DATE=DateTime.fromObject({year:9999}).endOf("year");const SERVER_DATE_FORMAT="yyyy-MM-dd";const SERVER_TIME_FORMAT="HH:mm:ss";const SERVER_DATETIME_FORMAT=`${SERVER_DATE_FORMAT} ${SERVER_TIME_FORMAT}`;const nonAlphaRegex=/[^a-z]/gi;const nonDigitRegex=/[^\d]/g;const normalizeFormatTable={a:"ccc",A:"cccc",b:"MMM",B:"MMMM",d:"dd",H:"HH",I:"hh",j:"o",m:"MM",M:"mm",p:"a",S:"ss",W:"WW",w:"c",y:"yy",Y:"yyyy",c:"ccc MMM d HH:mm:ss yyyy",x:"MM/dd/yy",X:"HH:mm:ss",};const smartDateUnits={d:"days",m:"months",w:"weeks",y:"years",};const smartDateRegex=new RegExp(["^","([+-])","(\\d+)",`([${Object.keys(smartDateUnits).join("")}]?)`,"$"].join("\\s*"),"i");const dateCache=new WeakMap();const dateTimeCache=new WeakMap();const ConversionError=__exports.ConversionError=class ConversionError extends Error{name="ConversionError";}
__exports.areDatesEqual=areDatesEqual;function areDatesEqual(d1,d2){if(Array.isArray(d1)||Array.isArray(d2)){d1=ensureArray(d1);d2=ensureArray(d2);return d1.length===d2.length&&d1.every((d1Val,i)=>areDatesEqual(d1Val,d2[i]));}
if(d1 instanceof DateTime&&d2 instanceof DateTime&&d1!==d2){return d1.equals(d2);}else{return d1===d2;}}
__exports.clampDate=clampDate;function clampDate(desired,minDate,maxDate){if(maxDate<desired){return maxDate;}
if(minDate>desired){return minDate;}
return desired;}
__exports.is24HourFormat=is24HourFormat;function is24HourFormat(format){return/H/.test(format||localization.timeFormat);}
__exports.isInRange=isInRange;function isInRange(value,range){if(!value||!range){return false;}
if(Array.isArray(value)){const actualValues=value.filter(Boolean);if(actualValues.length<2){return isInRange(actualValues[0],range);}
return((value[0]<=range[0]&&range[0]<=value[1])||(range[0]<=value[0]&&value[0]<=range[1]));}else{return range[0]<=value&&value<=range[1];}}
__exports.isMeridiemFormat=isMeridiemFormat;function isMeridiemFormat(format){return/a/.test(format||localization.timeFormat);}
function isValidDate(date){return date&&date.isValid&&isInRange(date,[MIN_VALID_DATE,MAX_VALID_DATE]);}
function parseSmartDateInput(value){const match=value.match(smartDateRegex);if(match){let date=DateTime.local();const offset=parseInt(match[2],10);const unit=smartDateUnits[(match[3]||"d").toLowerCase()];if(match[1]==="+"){date=date.plus({[unit]:offset});}else{date=date.minus({[unit]:offset});}
return date;}
return false;}
const stripAlphaDupes=memoize(function stripAlphaDupes(str){return str.replace(/[a-z]/gi,(letter,index,str)=>letter===str[index-1]?"":letter);});const strftimeToLuxonFormat=__exports.strftimeToLuxonFormat=memoize(function strftimeToLuxonFormat(format){const output=[];let inToken=false;for(let index=0;index<format.length;++index){let character=format[index];if(character==="%"&&!inToken){inToken=true;continue;}
if(/[a-z]/gi.test(character)){if(inToken&&normalizeFormatTable[character]!==undefined){character=normalizeFormatTable[character];}else{character=`'${character}'`;}}
output.push(character);inToken=false;}
return output.join("");});__exports.today=today;function today(){return DateTime.local().startOf("day");}
__exports.formatDate=formatDate;function formatDate(value,options={}){if(!value){return"";}
const format=options.format||localization.dateFormat;return value.toFormat(format);}
__exports.formatDateTime=formatDateTime;function formatDateTime(value,options={}){if(!value){return"";}
const format=options.format||localization.dateTimeFormat;return value.setZone("default").toFormat(format);}
__exports.formatDuration=formatDuration;function formatDuration(seconds,showFullDuration){const displayStyle=showFullDuration?"long":"narrow";const numberOfValuesToDisplay=showFullDuration?2:1;const durationKeys=["years","months","days","hours","minutes"];if(seconds<60){seconds=60;}
seconds-=seconds%60;let duration=luxon.Duration.fromObject({seconds:seconds}).shiftTo(...durationKeys);duration=duration.shiftTo(...durationKeys.filter((key)=>duration.get(key)));const durationSplit=duration.toHuman({unitDisplay:displayStyle}).split(",");if(!showFullDuration&&duration.loc.locale.includes("en")&&duration.months>0){durationSplit[0]=durationSplit[0].replace("m","M");}
return durationSplit.slice(0,numberOfValuesToDisplay).join(",");}
__exports.serializeDate=serializeDate;function serializeDate(value){if(!dateCache.has(value)){dateCache.set(value,value.toFormat(SERVER_DATE_FORMAT,{numberingSystem:"latn"}));}
return dateCache.get(value);}
__exports.serializeDateTime=serializeDateTime;function serializeDateTime(value){if(!dateTimeCache.has(value)){dateTimeCache.set(value,value.setZone("utc").toFormat(SERVER_DATETIME_FORMAT,{numberingSystem:"latn"}));}
return dateTimeCache.get(value);}
__exports.parseDate=parseDate;function parseDate(value,options={}){const parsed=parseDateTime(value,{...options,format:options.format||localization.dateFormat});return parsed&&parsed.startOf("day");}
__exports.parseDateTime=parseDateTime;function parseDateTime(value,options={}){if(!value){return false;}
const fmt=options.format||localization.dateTimeFormat;const parseOpts={setZone:true,zone:"default",};const switchToLatin=Settings.defaultNumberingSystem!=="latn"&&/[0-9]/.test(value);if(switchToLatin){parseOpts.numberingSystem="latn";}
let result=DateTime.fromFormat(value,fmt,parseOpts);if(!isValidDate(result)){result=parseSmartDateInput(value);}
if(!isValidDate(result)){const fmtWoZero=stripAlphaDupes(fmt);result=DateTime.fromFormat(value,fmtWoZero,parseOpts);}
if(!isValidDate(result)){const digitList=value.split(nonDigitRegex).filter(Boolean);const fmtList=fmt.split(nonAlphaRegex).filter(Boolean);const valWoSeps=digitList.join("");let carry=0;const fmtWoSeps=fmtList.map((part,i)=>{const digitLength=(digitList[i]||"").length;const actualPart=part.slice(0,digitLength+carry);carry+=digitLength-actualPart.length;return actualPart;}).join("");result=DateTime.fromFormat(valWoSeps,fmtWoSeps,parseOpts);}
if(!isValidDate(result)){const valueDigits=value.replace(nonDigitRegex,"");if(valueDigits.length>4){result=DateTime.fromISO(value,parseOpts);if(!isValidDate(result)){result=DateTime.fromSQL(value,parseOpts);}}}
if(!isValidDate(result)){throw new ConversionError(_t("'%s' is not a correct date or datetime",value));}
if(switchToLatin){result=result.reconfigure({numberingSystem:Settings.defaultNumberingSystem,});}
return result.setZone("default");}
__exports.deserializeDate=deserializeDate;function deserializeDate(value,options={}){const defaultDict={numberingSystem:"latn",zone:"default"}
const joinedDict={...defaultDict,...options}
return DateTime.fromSQL(value,joinedDict).reconfigure({numberingSystem:Settings.defaultNumberingSystem,});}
__exports.deserializeDateTime=deserializeDateTime;function deserializeDateTime(value){return DateTime.fromSQL(value,{numberingSystem:"latn",zone:"utc"}).setZone("default").reconfigure({numberingSystem:Settings.defaultNumberingSystem,});}
return __exports;});;

/* /web/static/src/core/l10n/localization.js */
odoo.define('@web/core/l10n/localization',[],function(require){'use strict';let __exports={};const notReadyError=new Error("Localization parameters not ready yet. Maybe add 'localization' to your dependencies?");const localization=__exports.localization={dateFormat:notReadyError,dateTimeFormat:notReadyError,timeFormat:notReadyError,decimalPoint:notReadyError,direction:notReadyError,grouping:notReadyError,multiLang:notReadyError,thousandsSep:notReadyError,weekStart:notReadyError,code:notReadyError,};return __exports;});;

/* /web/static/src/core/l10n/localization_service.js */
odoo.define('@web/core/l10n/localization_service',['@web/session','@web/core/browser/browser','@web/core/registry','@web/core/l10n/dates','@web/core/l10n/localization','@web/core/l10n/translation'],function(require){'use strict';let __exports={};const{session}=require("@web/session");const{browser}=require("@web/core/browser/browser");const{registry}=require("@web/core/registry");const{strftimeToLuxonFormat}=require("@web/core/l10n/dates");const{localization}=require("@web/core/l10n/localization");const{translatedTerms,translationLoaded,translationIsReady}=require("@web/core/l10n/translation");const{Settings}=luxon;const NUMBERING_SYSTEMS=[[/^ar-(sa|sy|001)$/i,"arab"],[/^bn/i,"beng"],[/^bo/i,"tibt"],[/^pa-in/i,"guru"],[/^ta/i,"tamldec"],[/.*/i,"latn"],];const localizationService=__exports.localizationService={dependencies:["user"],start:async(env,{user})=>{const cacheHashes=session.cache_hashes||{};const translationsHash=cacheHashes.translations||new Date().getTime().toString();const lang=user.lang||document.documentElement.getAttribute("lang")?.replace(/-/g,"_");const translationURL=session.translationURL||"/web/webclient/translations";let url=`${translationURL}/${translationsHash}`;if(lang){url+=`?lang=${lang}`;}
const response=await browser.fetch(url);if(!response.ok){throw new Error("Error while fetching translations");}
const{lang_parameters:userLocalization,modules:modules,multi_lang:multiLang,}=await response.json();const terms={};for(const addon of Object.keys(modules)){for(const message of modules[addon].messages){terms[message.id]=message.string;}}
Object.assign(translatedTerms,terms);translatedTerms[translationLoaded]=true;translationIsReady.resolve(true);const language=lang||browser.navigator.language;const locale=language==="sr@latin"?"sr-Latn-RS":language.replace(/_/g,"-");Settings.defaultLocale=locale;for(const[re,numberingSystem]of NUMBERING_SYSTEMS){if(re.test(locale)){Settings.defaultNumberingSystem=numberingSystem;break;}}
const dateFormat=strftimeToLuxonFormat(userLocalization.date_format);const timeFormat=strftimeToLuxonFormat(userLocalization.time_format);const dateTimeFormat=`${dateFormat} ${timeFormat}`;const grouping=JSON.parse(userLocalization.grouping);Object.assign(localization,{dateFormat,timeFormat,dateTimeFormat,decimalPoint:userLocalization.decimal_point,direction:userLocalization.direction,grouping,multiLang,thousandsSep:userLocalization.thousands_sep,weekStart:userLocalization.week_start,code:language,});return localization;},};registry.category("services").add("localization",localizationService);return __exports;});;

/* /web/static/src/core/l10n/translation.js */
odoo.define('@web/core/l10n/translation',['@web/core/utils/concurrency','@web/core/utils/strings'],function(require){'use strict';let __exports={};const{Deferred}=require("@web/core/utils/concurrency");const{sprintf}=require("@web/core/utils/strings");const translationLoaded=__exports.translationLoaded=Symbol("translationLoaded");const translatedTerms=__exports.translatedTerms={[translationLoaded]:false,};const translationIsReady=__exports.translationIsReady=new Deferred();__exports._t=_t;function _t(term,...values){if(translatedTerms[translationLoaded]){const translation=translatedTerms[term]??term;if(values.length===0){return translation;}
return sprintf(translation,...values);}else{return new LazyTranslatedString(term,...values);}}
const _lt=__exports._lt=(term,...values)=>_t(term,...values);class LazyTranslatedString extends String{constructor(term,...values){super(term);this.values=values;}
valueOf(){const term=super.valueOf();if(translatedTerms[translationLoaded]){const translation=translatedTerms[term]??term;if(this.values.length===0){return translation;}
return sprintf(translation,...this.values);}else{throw new Error(`translation error`);}}
toString(){return this.valueOf();}}
_t("less than a minute ago");_t("about a minute ago");_t("%d minutes ago");_t("about an hour ago");_t("%d hours ago");_t("a day ago");_t("%d days ago");_t("about a month ago");_t("%d months ago");_t("about a year ago");_t("%d years ago");__exports.loadLanguages=loadLanguages;async function loadLanguages(orm){if(!loadLanguages.installedLanguages){loadLanguages.installedLanguages=await orm.call("res.lang","get_installed");}
return loadLanguages.installedLanguages;}
return __exports;});;

/* /web/static/src/core/l10n/utils.js */
odoo.define('@web/core/l10n/utils',[],function(require){'use strict';let __exports={};__exports.pyToJsLocale=pyToJsLocale;function pyToJsLocale(locale){if(!locale){return"";}
const match=locale.match(/^([a-z]+)(_[A-Z\d]+)?(@.+)?$/);if(!match){return locale;}
const[,language,territory,modifier]=match;const subtags=[language];if(modifier==="@latin"){subtags.push("Latn");}
if(territory){subtags.push(territory.slice(1));}
return subtags.join("-");}
return __exports;});;

/* /web/static/src/core/macro.js */
odoo.define('@web/core/macro',['@web/core/browser/browser','@web/core/utils/ui','@web/core/utils/concurrency'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{isVisible}=require("@web/core/utils/ui");const{Mutex}=require("@web/core/utils/concurrency");const ACTION_HELPERS=__exports.ACTION_HELPERS={click(el,_step){el.dispatchEvent(new MouseEvent("mouseover"));el.dispatchEvent(new MouseEvent("mouseenter"));el.dispatchEvent(new MouseEvent("mousedown"));el.dispatchEvent(new MouseEvent("mouseup"));el.click();el.dispatchEvent(new MouseEvent("mouseout"));el.dispatchEvent(new MouseEvent("mouseleave"));},text(el,step){this.click(el,step);el.value=step.value;el.dispatchEvent(new InputEvent("input",{bubbles:true}));el.dispatchEvent(new InputEvent("change",{bubbles:true}));},};const mutex=new Mutex();class TimeoutError extends Error{}
class Macro{constructor(descr){this.name=descr.name||"anonymous";this.timeoutDuration=descr.timeout||0;this.timeout=null;this.currentIndex=0;this.checkDelay=descr.checkDelay||0;this.isComplete=false;this.steps=descr.steps;this.onStep=descr.onStep||(()=>{});this.onError=descr.onError;this.onTimeout=descr.onTimeout;this.setTimer();}
async advance(){if(this.isComplete){return;}
const step=this.steps[this.currentIndex];const[proceedToAction,el]=this.checkTrigger(step);if(proceedToAction){this.safeCall(this.onStep,el,step);const actionResult=await this.performAction(el,step);if(!actionResult){this.currentIndex++;if(this.currentIndex===this.steps.length){this.isComplete=true;browser.clearTimeout(this.timeout);}else{this.setTimer();await this.advance();}}}}
checkTrigger({trigger}){let el;if(!trigger){return[true,el];}
if(typeof trigger==="function"){el=this.safeCall(trigger);}else if(typeof trigger==="string"){const triggerEl=document.querySelector(trigger);el=isVisible(triggerEl)&&triggerEl;}else{throw new Error(`Trigger can only be string or function.`);}
if(el){return[true,el];}else{return[false,el];}}
async performAction(el,step){const action=step.action;let actionResult;if(action in ACTION_HELPERS){actionResult=ACTION_HELPERS[action](el,step);}else if(typeof action==="function"){actionResult=await this.safeCall(action,el,step);}
return actionResult;}
safeCall(fn,...args){if(this.isComplete){return;}
try{return fn(...args);}catch(e){this.handleError(e);}}
setTimer(){if(this.timeoutDuration){browser.clearTimeout(this.timeout);this.timeout=browser.setTimeout(()=>{if(this.onTimeout){const index=this.currentIndex;const step=this.steps[index];this.safeCall(this.onTimeout,step,index);}else{const error=new TimeoutError("Step timeout");this.handleError(error);}},this.timeoutDuration);}}
handleError(error){this.isComplete=true;browser.clearTimeout(this.timeout);if(this.onError){const index=this.currentIndex;const step=this.steps[index];this.onError(error,step,index);}else{console.error(error);}}}
const MacroEngine=__exports.MacroEngine=class MacroEngine{constructor(params={}){this.isRunning=false;this.timeout=null;this.target=params.target||document.body;this.defaultCheckDelay=params.defaultCheckDelay??750;this.macros=new Set();this.observerOptions={attributes:true,childList:true,subtree:true,characterData:true,};this.observer=new MutationObserver(this.delayedCheck.bind(this));this.iframeObserver=new MutationObserver(()=>{const iframeEl=document.querySelector("iframe.o_iframe");if(iframeEl){iframeEl.addEventListener("load",()=>{if(iframeEl.contentDocument){this.observer.observe(iframeEl.contentDocument,this.observerOptions);}});if(!iframeEl.src){if(iframeEl.contentDocument){this.observer.observe(iframeEl.contentDocument,this.observerOptions);}}}});}
async activate(descr,exclusive=false){if(this.exclusive){return;}
this.exclusive=exclusive;await Promise.resolve();const macro=new Macro(descr);if(exclusive){this.macros=new Set([macro]);}else{this.macros.add(macro);}
this.start();}
start(){if(!this.isRunning){this.isRunning=true;this.observer.observe(this.target,this.observerOptions);this.iframeObserver.observe(this.target,{childList:true,subtree:true});}
this.delayedCheck();}
stop(){if(this.isRunning){this.isRunning=false;browser.clearTimeout(this.timeout);this.timeout=null;this.observer.disconnect();this.iframeObserver.disconnect();}}
delayedCheck(){if(this.timeout){browser.clearTimeout(this.timeout);}
this.timeout=browser.setTimeout(()=>mutex.exec(this.advanceMacros.bind(this)),this.getCheckDelay()||this.defaultCheckDelay);}
getCheckDelay(){return[...this.macros].map((m)=>m.checkDelay).filter((delay)=>delay>0).reduce((m,v)=>Math.min(m,v),this.defaultCheckDelay);}
async advanceMacros(){await Promise.all([...this.macros].map((macro)=>macro.advance()));for(const macro of this.macros){if(macro.isComplete){this.macros.delete(macro);}}
if(this.macros.size===0){this.stop();}}}
return __exports;});;

/* /web/static/src/core/main_components_container.js */
odoo.define('@web/core/main_components_container',['@web/core/registry','@web/core/utils/components','@web/core/utils/hooks','@odoo/owl'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const{ErrorHandler}=require("@web/core/utils/components");const{useBus}=require("@web/core/utils/hooks");const{Component,xml}=require("@odoo/owl");const MainComponentsContainer=__exports.MainComponentsContainer=class MainComponentsContainer extends Component{setup(){const mainComponents=registry.category("main_components");this.Components=mainComponents.getEntries();useBus(mainComponents,"UPDATE",()=>{this.Components=mainComponents.getEntries();this.render();});}
handleComponentError(error,C){this.Components.splice(this.Components.indexOf(C),1);this.render();Promise.resolve().then(()=>{throw error;});}}
MainComponentsContainer.template=xml`
<div class="o-main-components-container">
    <t t-foreach="Components" t-as="C" t-key="C[0]">
        <ErrorHandler onError="error => this.handleComponentError(error, C)">
            <t t-component="C[1].Component" t-props="C[1].props"/>
        </ErrorHandler>
    </t>
</div>
`;MainComponentsContainer.components={ErrorHandler};MainComponentsContainer.props={};return __exports;});;

/* /web/static/src/core/model_field_selector/model_field_selector.js */
odoo.define('@web/core/model_field_selector/model_field_selector',['@odoo/owl','@web/core/utils/concurrency','@web/core/model_field_selector/model_field_selector_popover','@web/core/model_field_selector/utils','@web/core/popover/popover_hook'],function(require){'use strict';let __exports={};const{Component,onWillStart,onWillUpdateProps,useState}=require("@odoo/owl");const{KeepLast}=require("@web/core/utils/concurrency");const{ModelFieldSelectorPopover}=require("@web/core/model_field_selector/model_field_selector_popover");const{useLoadFieldInfo,useLoadPathDescription}=require("@web/core/model_field_selector/utils");const{usePopover}=require("@web/core/popover/popover_hook");const ModelFieldSelector=__exports.ModelFieldSelector=class ModelFieldSelector extends Component{static template="web._ModelFieldSelector";static components={Popover:ModelFieldSelectorPopover,};static props={resModel:String,path:{optional:true},allowEmpty:{type:Boolean,optional:true},readonly:{type:Boolean,optional:true},showSearchInput:{type:Boolean,optional:true},isDebugMode:{type:Boolean,optional:true},update:{type:Function,optional:true},filter:{type:Function,optional:true},followRelations:{type:Boolean,optional:true},showDebugInput:{type:Boolean,optional:true},};static defaultProps={readonly:true,allowEmpty:false,isDebugMode:false,showSearchInput:true,update:()=>{},followRelations:true,};setup(){this.loadPathDescription=useLoadPathDescription();const loadFieldInfo=useLoadFieldInfo();this.popover=usePopover(this.constructor.components.Popover,{popoverClass:"o_popover_field_selector",onClose:async()=>{if(this.newPath!==null){const fieldInfo=await loadFieldInfo(this.props.resModel,this.newPath);this.props.update(this.newPath,fieldInfo);}},});this.keepLast=new KeepLast();this.state=useState({isInvalid:false,displayNames:[]});onWillStart(()=>this.updateState(this.props));onWillUpdateProps((nextProps)=>this.updateState(nextProps));}
openPopover(currentTarget){if(this.props.readonly){return;}
this.newPath=null;this.popover.open(currentTarget,{resModel:this.props.resModel,path:this.props.path,update:(path,debug=false)=>{this.newPath=path;if(!debug){this.updateState({...this.props,path},true);}},showSearchInput:this.props.showSearchInput,isDebugMode:this.props.isDebugMode,filter:this.props.filter,followRelations:this.props.followRelations,showDebugInput:this.props.showDebugInput,});}
async updateState(params,isConcurrent){const{resModel,path,allowEmpty}=params;let prom=this.loadPathDescription(resModel,path,allowEmpty);if(isConcurrent){prom=this.keepLast.add(prom);}
const state=await prom;Object.assign(this.state,state);}
clear(){if(this.popover.isOpen){this.newPath="";this.popover.close();return;}
this.props.update("",{resModel:this.props.resModel,fieodDef:null});}}
return __exports;});;

/* /web/static/src/core/model_field_selector/model_field_selector_popover.js */
odoo.define('@web/core/model_field_selector/model_field_selector_popover',['@odoo/owl','@web/core/utils/timing','@web/core/utils/search','@web/core/utils/concurrency','@web/core/utils/arrays','@web/core/utils/hooks'],function(require){'use strict';let __exports={};const{Component,onWillStart,useEffect,useRef,useState}=require("@odoo/owl");const{debounce}=require("@web/core/utils/timing");const{fuzzyLookup}=require("@web/core/utils/search");const{KeepLast}=require("@web/core/utils/concurrency");const{sortBy}=require("@web/core/utils/arrays");const{useService}=require("@web/core/utils/hooks");class Page{constructor(resModel,fieldDefs,options={}){this.resModel=resModel;this.fieldDefs=fieldDefs;const{previousPage=null,selectedName=null,isDebugMode}=options;this.previousPage=previousPage;this.selectedName=selectedName;this.isDebugMode=isDebugMode;this.sortedFieldNames=sortBy(Object.keys(fieldDefs),(key)=>fieldDefs[key].string);this.fieldNames=this.sortedFieldNames;this.query="";this.focusedFieldName=null;this.resetFocusedFieldName();}
get path(){const previousPath=this.previousPage?.path||"";if(this.selectedName){if(previousPath){return`${previousPath}.${this.selectedName}`;}else{return this.selectedName;}}
return previousPath;}
get selectedField(){return this.fieldDefs[this.selectedName];}
get title(){const prefix=this.previousPage?.previousPage?"... > ":"";const title=this.previousPage?.selectedField?.string||"";return`${prefix}${title}`;}
focus(direction){if(!this.fieldNames.length){return;}
const index=this.fieldNames.indexOf(this.focusedFieldName);if(direction==="previous"){if(index===0){this.focusedFieldName=this.fieldNames[this.fieldNames.length-1];}else{this.focusedFieldName=this.fieldNames[index-1];}}else{if(index===this.fieldNames.length-1){this.focusedFieldName=this.fieldNames[0];}else{this.focusedFieldName=this.fieldNames[index+1];}}}
resetFocusedFieldName(){if(this.selectedName&&this.fieldNames.includes(this.selectedName)){this.focusedFieldName=this.selectedName;}else{this.focusedFieldName=this.fieldNames.length?this.fieldNames[0]:null;}}
searchFields(query=""){this.query=query;this.fieldNames=this.sortedFieldNames;if(query){this.fieldNames=fuzzyLookup(query,this.fieldNames,(key)=>{const vals=[this.fieldDefs[key].string];if(this.isDebugMode){vals.push(key);}
return vals;});}
this.resetFocusedFieldName();}}
const ModelFieldSelectorPopover=__exports.ModelFieldSelectorPopover=class ModelFieldSelectorPopover extends Component{static template="web.ModelFieldSelectorPopover";static props={close:Function,filter:{type:Function,optional:true},followRelations:{type:Boolean,optional:true},showDebugInput:{type:Boolean,optional:true},isDebugMode:{type:Boolean,optional:true},path:{optional:true},resModel:String,showSearchInput:{type:Boolean,optional:true},update:Function,};static defaultProps={filter:(value)=>value.searchable&&value.type!="json",isDebugMode:false,followRelations:true,};setup(){this.fieldService=useService("field");this.state=useState({page:null});this.keepLast=new KeepLast();this.debouncedSearchFields=debounce(this.searchFields.bind(this),250);onWillStart(async()=>{this.state.page=await this.loadPages(this.props.resModel,this.props.path);});const rootRef=useRef("root");useEffect(()=>{const focusedElement=rootRef.el.querySelector(".o_model_field_selector_popover_item.active");if(focusedElement){focusedElement.scrollIntoView({block:"center"});}});useEffect(()=>{if(this.props.showSearchInput){const searchInput=rootRef.el.querySelector(".o_model_field_selector_popover_search .o_input");searchInput.focus();}},()=>[this.state.page]);}
get showDebugInput(){return this.props.showDebugInput??this.props.isDebugMode;}
filter(fieldDefs,path){const filteredKeys=Object.keys(fieldDefs).filter((k)=>this.props.filter(fieldDefs[k],path));return Object.fromEntries(filteredKeys.map((k)=>[k,fieldDefs[k]]));}
async followRelation(fieldDef){const{modelsInfo}=await this.keepLast.add(this.fieldService.loadPath(this.state.page.resModel,`${fieldDef.name}.*`));this.state.page.selectedName=fieldDef.name;const{resModel,fieldDefs}=modelsInfo.at(-1);this.openPage(new Page(resModel,this.filter(fieldDefs,this.state.page.path),{previousPage:this.state.page,isDebugMode:this.props.isDebugMode,}));}
goToPreviousPage(){this.keepLast.add(Promise.resolve());this.openPage(this.state.page.previousPage);}
async loadNewPath(path){const newPage=await this.keepLast.add(this.loadPages(this.props.resModel,path));this.openPage(newPage);}
async loadPages(resModel,path){if(typeof path!=="string"||!path.length){const fieldDefs=await this.fieldService.loadFields(resModel);return new Page(resModel,this.filter(fieldDefs,path),{isDebugMode:this.props.isDebugMode,});}
const{isInvalid,modelsInfo,names}=await this.fieldService.loadPath(resModel,path);switch(isInvalid){case"model":throw new Error(`Invalid model name: ${resModel}`);case"path":{const{resModel,fieldDefs}=modelsInfo[0];return new Page(resModel,this.filter(fieldDefs,path),{selectedName:path,isDebugMode:this.props.isDebugMode,});}
default:{let page=null;for(let index=0;index<names.length;index++){const name=names[index];const{resModel,fieldDefs}=modelsInfo[index];page=new Page(resModel,this.filter(fieldDefs,path),{previousPage:page,selectedName:name,isDebugMode:this.props.isDebugMode,});}
return page;}}}
openPage(page){this.state.page=page;this.state.page.searchFields();this.props.update(page.path);}
searchFields(query){this.state.page.searchFields(query);}
selectField(field){if(field.type==="properties"){return this.followRelation(field);}
this.keepLast.add(Promise.resolve());this.state.page.selectedName=field.name;this.props.update(this.state.page.path);this.props.close(true);}
onDebugInputKeydown(ev){switch(ev.key){case"Enter":{ev.preventDefault();ev.stopPropagation();this.loadNewPath(ev.currentTarget.value);break;}}}
async onInputKeydown(ev){const{page}=this.state;switch(ev.key){case"ArrowUp":{if(ev.target.selectionStart===0){page.focus("previous");}
break;}
case"ArrowDown":{if(ev.target.selectionStart===page.query.length){page.focus("next");}
break;}
case"ArrowLeft":{if(ev.target.selectionStart===0&&page.previousPage){this.goToPreviousPage();}
break;}
case"ArrowRight":{if(ev.target.selectionStart===page.query.length){const focusedFieldName=this.state.page.focusedFieldName;if(focusedFieldName){const fieldDef=this.state.page.fieldDefs[focusedFieldName];if(fieldDef.relation||fieldDef.type==="properties"){this.followRelation(fieldDef);}}}
break;}
case"Enter":{const focusedFieldName=this.state.page.focusedFieldName;if(focusedFieldName){const fieldDef=this.state.page.fieldDefs[focusedFieldName];this.selectField(fieldDef);}else{ev.preventDefault();ev.stopPropagation();}
break;}
case"Escape":{ev.preventDefault();ev.stopPropagation();this.props.close();break;}}}}
return __exports;});;

/* /web/static/src/core/model_field_selector/utils.js */
odoo.define('@web/core/model_field_selector/utils',['@web/core/utils/hooks'],function(require){'use strict';let __exports={};const{useService}=require("@web/core/utils/hooks");function makeString(value){return String(value??"-");}
__exports.useLoadFieldInfo=useLoadFieldInfo;function useLoadFieldInfo(fieldService){fieldService||=useService("field");return async(resModel,path)=>{if(typeof path!=="string"||!path){return{resModel,fieldDef:null};}
const{isInvalid,names,modelsInfo}=await fieldService.loadPath(resModel,path);if(isInvalid){return{resModel,fieldDef:null};}
const name=names.at(-1);const modelInfo=modelsInfo.at(-1);return{resModel:modelInfo.resModel,fieldDef:modelInfo.fieldDefs[name]};};}
__exports.useLoadPathDescription=useLoadPathDescription;function useLoadPathDescription(fieldService){fieldService||=useService("field");return async(resModel,path,allowEmpty)=>{if([0,1].includes(path)){return{isInvalid:false,displayNames:[makeString(path)]};}
if(allowEmpty&&!path){return{isInvalid:false,displayNames:[]};}
if(typeof path!=="string"||!path){return{isInvalid:true,displayNames:[makeString()]};}
const{isInvalid,modelsInfo,names}=await fieldService.loadPath(resModel,path);const result={isInvalid:!!isInvalid,displayNames:[]};if(!isInvalid){const lastName=names.at(-1);const lastFieldDef=modelsInfo.at(-1).fieldDefs[lastName];if(["properties","properties_definition"].includes(lastFieldDef.type)){result.isInvalid=true;}}
for(let index=0;index<names.length;index++){const name=names[index];const fieldDef=modelsInfo[index]?.fieldDefs[name];result.displayNames.push(fieldDef?.string||makeString(name));}
return result;};}
return __exports;});;

/* /web/static/src/core/model_selector/model_selector.js */
odoo.define('@web/core/model_selector/model_selector',['@web/core/autocomplete/autocomplete','@web/core/utils/hooks','@web/core/utils/search','@web/core/l10n/translation','@odoo/owl'],function(require){'use strict';let __exports={};const{AutoComplete}=require("@web/core/autocomplete/autocomplete");const{useService}=require("@web/core/utils/hooks");const{fuzzyLookup}=require("@web/core/utils/search");const{_t}=require("@web/core/l10n/translation");const{Component,onWillStart}=require("@odoo/owl");const ModelSelector=__exports.ModelSelector=class ModelSelector extends Component{setup(){this.orm=useService("orm");onWillStart(async()=>{if(!this.props.models){this.models=await this._fetchAvailableModels();}else{this.models=await this.orm.call("ir.model","display_name_for",[this.props.models,]);}
this.models=this.models.map((record)=>({label:record.display_name,technical:record.model,classList:{[`o_model_selector_${record.model}`]:1,},}));});}
get placeholder(){return _t("Type a model here...");}
get sources(){return[this.optionsSource];}
get optionsSource(){return{placeholder:_t("Loading..."),options:this.loadOptionsSource.bind(this),};}
onSelect(option){this.props.onModelSelected({label:option.label,technical:option.technical,});}
filterModels(name){if(!name){const visibleModels=this.models.slice(0,8);if(this.models.length-visibleModels.length>0){visibleModels.push({label:_t("Start typing..."),unselectable:true,classList:"o_m2o_start_typing",});}
return visibleModels;}
return fuzzyLookup(name,this.models,(model)=>model.technical+model.label);}
loadOptionsSource(request){const options=this.filterModels(request);if(!options.length){options.push({label:_t("No records"),classList:"o_m2o_no_result",unselectable:true,});}
return options;}
async _fetchAvailableModels(){const result=await this.orm.call("ir.model","get_available_models");return result||[];}}
ModelSelector.template="web.ModelSelector";ModelSelector.components={AutoComplete};ModelSelector.props={onModelSelected:Function,id:{type:String,optional:true},value:{type:String,optional:true},models:{type:Array,optional:true},};return __exports;});;

/* /web/static/src/core/name_service.js */
odoo.define('@web/core/name_service',['@web/core/registry','@web/core/utils/arrays','@web/core/utils/concurrency'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const{unique,zip}=require("@web/core/utils/arrays");const{Deferred}=require("@web/core/utils/concurrency");const ERROR_INACCESSIBLE_OR_MISSING=__exports.ERROR_INACCESSIBLE_OR_MISSING=Symbol("INACCESSIBLE OR MISSING RECORD ID");function isId(val){return Number.isInteger(val)&&val>=1;}
const nameService=__exports.nameService={dependencies:["orm"],async:["loadDisplayNames"],start(env,{orm}){let cache={};const batches={};function clearCache(){cache={};}
env.bus.addEventListener("ACTION_MANAGER:UPDATE",clearCache);function getMapping(resModel){if(!cache[resModel]){cache[resModel]={};}
return cache[resModel];}
function addDisplayNames(resModel,displayNames){const mapping=getMapping(resModel);for(const resId in displayNames){mapping[resId]=new Deferred();mapping[resId].resolve(displayNames[resId]);}}
async function loadDisplayNames(resModel,resIds){const mapping=getMapping(resModel);const proms=[];const resIdsToFetch=[];for(const resId of unique(resIds)){if(!isId(resId)){throw new Error(`Invalid ID: ${resId}`);}
if(!(resId in mapping)){mapping[resId]=new Deferred();resIdsToFetch.push(resId);}
proms.push(mapping[resId]);}
if(resIdsToFetch.length){if(batches[resModel]){batches[resModel].push(...resIdsToFetch);}else{batches[resModel]=resIdsToFetch;await Promise.resolve();const idsInBatch=unique(batches[resModel]);delete batches[resModel];const specification={display_name:{}};orm.silent.webSearchRead(resModel,[["id","in",idsInBatch]],{specification}).then(({records})=>{const displayNames=Object.fromEntries(records.map((rec)=>[rec.id,rec.display_name]));for(const resId of idsInBatch){mapping[resId].resolve(resId in displayNames?displayNames[resId]:ERROR_INACCESSIBLE_OR_MISSING);}});}}
const names=await Promise.all(proms);return Object.fromEntries(zip(resIds,names));}
return{addDisplayNames,clearCache,loadDisplayNames};},};registry.category("services").add("name",nameService);return __exports;});;

/* /web/static/src/core/network/download.js */
odoo.define('@web/core/network/download',['@web/core/l10n/translation','@web/core/network/rpc_service','@web/core/browser/browser'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{makeErrorFromResponse,ConnectionLostError}=require("@web/core/network/rpc_service");const{browser}=require("@web/core/browser/browser");const HEX_ESCAPE_REPLACE_REGEXP=/%([0-9A-Fa-f]{2})/g;const NON_LATIN1_REGEXP=/[^\x20-\x7e\xa0-\xff]/g;const QESC_REGEXP=/\\([\u0000-\u007f])/g;const PARAM_REGEXP=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g;const EXT_VALUE_REGEXP=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/;const DISPOSITION_TYPE_REGEXP=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function decodefield(str){const match=EXT_VALUE_REGEXP.exec(str);if(!match){throw new TypeError("invalid extended field value");}
const charset=match[1].toLowerCase();const encoded=match[2];switch(charset){case"iso-8859-1":return encoded.replace(HEX_ESCAPE_REPLACE_REGEXP,pdecode).replace(NON_LATIN1_REGEXP,"?");case"utf-8":return decodeURIComponent(encoded);default:throw new TypeError("unsupported charset in extended field");}}
function parse(string){if(!string||typeof string!=="string"){throw new TypeError("argument string is required");}
let match=DISPOSITION_TYPE_REGEXP.exec(string);if(!match){throw new TypeError("invalid type format");}
let index=match[0].length;const type=match[1].toLowerCase();let key;const names=[];const params={};let value;index=PARAM_REGEXP.lastIndex=match[0].substr(-1)===";"?index-1:index;while((match=PARAM_REGEXP.exec(string))){if(match.index!==index){throw new TypeError("invalid parameter format");}
index+=match[0].length;key=match[1].toLowerCase();value=match[2];if(names.indexOf(key)!==-1){throw new TypeError("invalid duplicate parameter");}
names.push(key);if(key.indexOf("*")+1===key.length){key=key.slice(0,-1);value=decodefield(value);params[key]=value;continue;}
if(typeof params[key]==="string"){continue;}
if(value[0]==='"'){value=value.substr(1,value.length-2).replace(QESC_REGEXP,"$1");}
params[key]=value;}
if(index!==-1&&index!==string.length){throw new TypeError("invalid parameter format");}
return new ContentDisposition(type,params);}
function pdecode(str,hex){return String.fromCharCode(parseInt(hex,16));}
function ContentDisposition(type,parameters){this.type=type;this.parameters=parameters;}
function _download(data,filename,mimetype){let self=window,defaultMime="application/octet-stream",mimeType=mimetype||defaultMime,payload=data,url=!filename&&!mimetype&&payload,anchor=document.createElement("a"),toString=function(a){return String(a);},myBlob=self.Blob||self.MozBlob||self.WebKitBlob||toString,fileName=filename||"download",blob,reader;myBlob=myBlob.call?myBlob.bind(self):Blob;if(String(this)==="true"){payload=[payload,mimeType];mimeType=payload[0];payload=payload[1];}
if(url&&url.length<2048){fileName=url.split("/").pop().split("?")[0];anchor.href=url;if(anchor.href.indexOf(url)!==-1){return new Promise((resolve,reject)=>{let xhr=new browser.XMLHttpRequest();xhr.open("GET",url,true);configureBlobDownloadXHR(xhr,{onSuccess:resolve,onFailure:reject,url});xhr.send();});}}
if(/^data:[\w+\-]+\/[\w+\-]+[,;]/.test(payload)){if(payload.length>1024*1024*1.999&&myBlob!==toString){payload=dataUrlToBlob(payload);mimeType=payload.type||defaultMime;}else{return navigator.msSaveBlob?navigator.msSaveBlob(dataUrlToBlob(payload),fileName):saver(payload);}}
blob=payload instanceof myBlob?payload:new myBlob([payload],{type:mimeType});function dataUrlToBlob(strUrl){let parts=strUrl.split(/[:;,]/),type=parts[1],decoder=parts[2]==="base64"?atob:decodeURIComponent,binData=decoder(parts.pop()),mx=binData.length,i=0,uiArr=new Uint8Array(mx);for(i;i<mx;++i){uiArr[i]=binData.charCodeAt(i);}
return new myBlob([uiArr],{type});}
function saver(url,winMode){if("download"in anchor){anchor.href=url;anchor.setAttribute("download",fileName);anchor.className="download-js-link";anchor.innerText=_t("downloading...");anchor.style.display="none";document.body.appendChild(anchor);setTimeout(()=>{anchor.click();document.body.removeChild(anchor);if(winMode===true){setTimeout(()=>{self.URL.revokeObjectURL(anchor.href);},250);}},66);return true;}
if(/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent)){url=url.replace(/^data:([\w\/\-+]+)/,defaultMime);if(!window.open(url)){if(confirm("Displaying New Document\n\nUse Save As... to download, then click back to return to this page.")){location.href=url;}}
return true;}
let f=document.createElement("iframe");document.body.appendChild(f);if(!winMode){url=`data:${url.replace(/^data:([\w\/\-+]+)/, defaultMime)}`;}
f.src=url;setTimeout(()=>{document.body.removeChild(f);},333);}
if(navigator.msSaveBlob){return navigator.msSaveBlob(blob,fileName);}
if(self.URL){saver(self.URL.createObjectURL(blob),true);}else{if(typeof blob==="string"||blob.constructor===toString){try{return saver(`data:${mimeType};base64,${self.btoa(blob)}`);}catch{return saver(`data:${mimeType},${encodeURIComponent(blob)}`);}}
reader=new FileReader();reader.onload=function(){saver(this.result);};reader.readAsDataURL(blob);}
return true;}
__exports.downloadFile=downloadFile;function downloadFile(data,filename,mimetype){return downloadFile._download(data,filename,mimetype)}
downloadFile._download=_download;__exports.download=download;function download(options){return download._download(options);}
download._download=(options)=>{return new Promise((resolve,reject)=>{const xhr=new browser.XMLHttpRequest();let data;if(Object.prototype.hasOwnProperty.call(options,"form")){xhr.open(options.form.method,options.form.action);data=new FormData(options.form);}else{xhr.open("POST",options.url);data=new FormData();Object.entries(options.data).forEach((entry)=>{const[key,value]=entry;data.append(key,value);});}
data.append("token","dummy-because-api-expects-one");if(odoo.csrf_token){data.append("csrf_token",odoo.csrf_token);}
configureBlobDownloadXHR(xhr,{onSuccess:resolve,onFailure:reject,url:options.url,});xhr.send(data);});};__exports.configureBlobDownloadXHR=configureBlobDownloadXHR;function configureBlobDownloadXHR(xhr,{onSuccess=()=>{},onFailure=()=>{},url}={}){xhr.responseType="blob";xhr.onload=()=>{const mimetype=xhr.response.type;const header=(xhr.getResponseHeader("Content-Disposition")||"").replace(/;$/,"");const filename=header?parse(header).parameters.filename:null;if(xhr.status===200&&(mimetype!=="text/html"||filename)){_download(xhr.response,filename,mimetype);onSuccess(filename);}else if(xhr.status===502){onFailure(new ConnectionLostError(url));}else{const decoder=new FileReader();decoder.onload=()=>{const contents=decoder.result;const doc=new DOMParser().parseFromString(contents,"text/html");const nodes=doc.body.children.length===0?[doc.body]:doc.body.children;let error;try{const node=nodes[1]||nodes[0];error=JSON.parse(node.textContent);}catch{error={message:"Arbitrary Uncaught Python Exception",data:{debug:`${xhr.status}`+`\n`+`${nodes.length > 0 ? nodes[0].textContent : ""}
                                ${nodes.length > 1 ? nodes[1].textContent : ""}`,},};}
error=makeErrorFromResponse(error);onFailure(error);};decoder.readAsText(xhr.response);}};xhr.onerror=()=>{onFailure(new ConnectionLostError(url));};}
return __exports;});;

/* /web/static/src/core/network/http_service.js */
odoo.define('@web/core/network/http_service',['@web/core/browser/browser','@web/core/registry'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{registry}=require("@web/core/registry");function checkResponseStatus(response){if(response.status===502){throw new Error("Failed to fetch");}}
__exports.get=get;async function get(route,readMethod="json"){const response=await browser.fetch(route,{method:"GET"});checkResponseStatus(response);return response[readMethod]();}
__exports.post=post;async function post(route,params={},readMethod="json"){let formData=params;if(!(formData instanceof FormData)){formData=new FormData();for(const key in params){const value=params[key];if(Array.isArray(value)&&value.length){for(const val of value){formData.append(key,val);}}else{formData.append(key,value);}}}
const response=await browser.fetch(route,{body:formData,method:"POST",});checkResponseStatus(response);return response[readMethod]();}
const httpService=__exports.httpService={start(){return{get,post};},};registry.category("services").add("http",httpService);return __exports;});;

/* /web/static/src/core/network/rpc_service.js */
odoo.define('@web/core/network/rpc_service',['@web/core/browser/browser','@web/core/registry'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{registry}=require("@web/core/registry");const RPCError=__exports.RPCError=class RPCError extends Error{constructor(){super(...arguments);this.name="RPC_ERROR";this.type="server";this.code=null;this.data=null;this.exceptionName=null;this.subType=null;}}
const ConnectionLostError=__exports.ConnectionLostError=class ConnectionLostError extends Error{constructor(url,...args){super(`Connection to "${url}" couldn't be established or was interrupted`,...args);this.url=url;}}
const ConnectionAbortedError=__exports.ConnectionAbortedError=class ConnectionAbortedError extends Error{}
__exports.makeErrorFromResponse=makeErrorFromResponse;function makeErrorFromResponse(reponse){const{code,data:errorData,message,type:subType}=reponse;const error=new RPCError();error.exceptionName=errorData.name;error.subType=subType;error.data=errorData;error.message=message;error.code=code;return error;}
let rpcId=0;__exports.jsonrpc=jsonrpc;function jsonrpc(url,params={},settings={}){const bus=settings.bus;const XHR=browser.XMLHttpRequest;const data={id:rpcId++,jsonrpc:"2.0",method:"call",params:params,};const request=settings.xhr||new XHR();let rejectFn;const promise=new Promise((resolve,reject)=>{rejectFn=reject;bus?.trigger("RPC:REQUEST",{data,url,settings});request.addEventListener("load",()=>{if(request.status===502){const error=new ConnectionLostError(url);bus?.trigger("RPC:RESPONSE",{data,settings,error});reject(error);return;}
let params;try{params=JSON.parse(request.response);}catch{const error=new ConnectionLostError(url);bus?.trigger("RPC:RESPONSE",{data,settings,error});return reject(error);}
const{error:responseError,result:responseResult}=params;if(!params.error){bus?.trigger("RPC:RESPONSE",{data,settings,result:params.result});return resolve(responseResult);}
const error=makeErrorFromResponse(responseError);bus?.trigger("RPC:RESPONSE",{data,settings,error});reject(error);});request.addEventListener("error",()=>{const error=new ConnectionLostError(url);bus?.trigger("RPC:RESPONSE",{data,settings,error});reject(error);});request.open("POST",url);const headers=settings.headers||{};headers["Content-Type"]="application/json";for(let[header,value]of Object.entries(headers)){request.setRequestHeader(header,value);}
request.send(JSON.stringify(data));});promise.abort=function(rejectError=true){if(request.abort){request.abort();}
const error=new ConnectionAbortedError("XmlHttpRequestError abort");bus?.trigger("RPC:RESPONSE",{data,settings,error});if(rejectError){rejectFn(error);}};return promise;}
const rpcService=__exports.rpcService={async:true,start(env){return function rpc(route,params={},settings={}){return jsonrpc(route,params,{bus:env.bus,...settings});};},};registry.category("services").add("rpc",rpcService);return __exports;});;

/* /web/static/src/core/notebook/notebook.js */
odoo.define('@web/core/notebook/notebook',['@web/core/utils/scrolling','@odoo/owl'],function(require){'use strict';let __exports={};const{scrollTo}=require("@web/core/utils/scrolling");const{Component,onWillDestroy,onWillUpdateProps,useEffect,useRef,useState,}=require("@odoo/owl");const Notebook=__exports.Notebook=class Notebook extends Component{setup(){this.activePane=useRef("activePane");this.anchorTarget=null;this.pages=this.computePages(this.props);this.state=useState({currentPage:null});this.state.currentPage=this.computeActivePage(this.props.defaultPage,true);const onAnchorClicked=this.onAnchorClicked.bind(this);this.env.bus.addEventListener("SCROLLER:ANCHOR_LINK_CLICKED",onAnchorClicked);useEffect(()=>{this.props.onPageUpdate(this.state.currentPage);if(this.anchorTarget){const matchingEl=this.activePane.el.querySelector(`#${this.anchorTarget}`);scrollTo(matchingEl,{isAnchor:true});this.anchorTarget=null;}},()=>[this.state.currentPage]);onWillUpdateProps((nextProps)=>{const activateDefault=this.props.defaultPage!==nextProps.defaultPage||!this.defaultVisible;this.pages=this.computePages(nextProps);this.state.currentPage=this.computeActivePage(nextProps.defaultPage,activateDefault);});onWillDestroy(()=>{this.env.bus.removeEventListener("SCROLLER:ANCHOR_LINK_CLICKED",onAnchorClicked);});}
get navItems(){return this.pages.filter((e)=>e[1].isVisible);}
get page(){const page=this.pages.find((e)=>e[0]===this.state.currentPage)[1];return page.Component&&page;}
onAnchorClicked(ev){if(!this.props.anchors){return;}
const id=ev.detail.detail.id.substring(1);if(this.props.anchors[id]){if(this.state.currentPage!==this.props.anchors[id].target){ev.preventDefault();ev.detail.detail.originalEv.preventDefault();this.anchorTarget=id;this.state.currentPage=this.props.anchors[id].target;}}}
activatePage(pageIndex){if(!this.disabledPages.includes(pageIndex)){this.state.currentPage=pageIndex;}}
computePages(props){if(!props.slots&&!props.pages){return[];}
if(props.pages){for(const page of props.pages){page.isVisible=true;}}
this.disabledPages=[];const pages=[];const pagesWithIndex=[];for(const[k,v]of Object.entries({...props.slots,...props.pages})){const id=v.id||k;if(v.index){pagesWithIndex.push([id,v]);}else{pages.push([id,v]);}
if(v.isDisabled){this.disabledPages.push(k);}}
for(const page of pagesWithIndex){pages.splice(page[1].index,0,page);}
return pages;}
computeActivePage(defaultPage,activateDefault){if(!this.pages.length){return null;}
const pages=this.pages.filter((e)=>e[1].isVisible).map((e)=>e[0]);if(defaultPage){if(!pages.includes(defaultPage)){this.defaultVisible=false;}else{this.defaultVisible=true;if(activateDefault){return defaultPage;}}}
const current=this.state.currentPage;if(!current||(current&&!pages.includes(current))){return pages[0];}
return current;}}
Notebook.template="web.Notebook";Notebook.defaultProps={className:"",orientation:"horizontal",onPageUpdate:()=>{},};Notebook.props={slots:{type:Object,optional:true},pages:{type:Object,optional:true},class:{optional:true},className:{type:String,optional:true},anchors:{type:Object,optional:true},defaultPage:{type:String,optional:true},orientation:{type:String,optional:true},icons:{type:Object,optional:true},onPageUpdate:{type:Function,optional:true},};return __exports;});;

/* /web/static/src/core/notifications/notification.js */
odoo.define('@web/core/notifications/notification',['@odoo/owl'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");const Notification=__exports.Notification=class Notification extends Component{}
Notification.template="web.NotificationWowl";Notification.props={message:{validate:(m)=>{return(typeof m==="string"||(typeof m==="object"&&typeof m.toString==="function"));},},title:{type:[String,Boolean,{toString:Function}],optional:true},type:{type:String,optional:true,validate:(t)=>["warning","danger","success","info"].includes(t),},className:{type:String,optional:true},buttons:{type:Array,element:{type:Object,shape:{name:{type:String},icon:{type:String,optional:true},primary:{type:Boolean,optional:true},onClick:Function,},},optional:true,},close:{type:Function},refresh:{type:Function},freeze:{type:Function},};Notification.defaultProps={buttons:[],className:"",type:"warning",};return __exports;});;

/* /web/static/src/core/notifications/notification_container.js */
odoo.define('@web/core/notifications/notification_container',['@web/core/notifications/notification','@web/core/transition','@odoo/owl'],function(require){'use strict';let __exports={};const{Notification}=require("@web/core/notifications/notification");const{Transition}=require("@web/core/transition");const{Component,xml,useState}=require("@odoo/owl");const NotificationContainer=__exports.NotificationContainer=class NotificationContainer extends Component{setup(){this.notifications=useState(this.props.notifications);}}
NotificationContainer.props={notifications:Object,};NotificationContainer.template=xml`
    <div class="o_notification_manager">
        <t t-foreach="notifications" t-as="notification" t-key="notification">
            <Transition leaveDuration="0" name="'o_notification_fade'" t-slot-scope="transition">
                <Notification t-props="notification_value.props" className="(notification_value.props.className || '') + ' ' + transition.className"/>
            </Transition>
        </t>
    </div>`;NotificationContainer.components={Notification,Transition};return __exports;});;

/* /web/static/src/core/notifications/notification_service.js */
odoo.define('@web/core/notifications/notification_service',['@web/core/browser/browser','@web/core/registry','@web/core/notifications/notification_container','@odoo/owl'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{registry}=require("@web/core/registry");const{NotificationContainer}=require("@web/core/notifications/notification_container");const{reactive}=require("@odoo/owl");const AUTOCLOSE_DELAY=4000;const notificationService=__exports.notificationService={notificationContainer:NotificationContainer,start(){let notifId=0;const notifications=reactive({});registry.category("main_components").add(this.notificationContainer.name,{Component:this.notificationContainer,props:{notifications},},{sequence:100});function add(message,options={}){const id=++notifId;const closeFn=()=>close(id);const props=Object.assign({},options,{message,close:closeFn});const sticky=props.sticky;delete props.sticky;delete props.onClose;let closeTimeout;const refresh=sticky?()=>{}:()=>{closeTimeout=browser.setTimeout(closeFn,AUTOCLOSE_DELAY);};const freeze=sticky?()=>{}:()=>{browser.clearTimeout(closeTimeout);};props.refresh=refreshAll;props.freeze=freezeAll;const notification={id,props,onClose:options.onClose,refresh,freeze,};notifications[id]=notification;if(!sticky){closeTimeout=browser.setTimeout(closeFn,AUTOCLOSE_DELAY);}
return closeFn;}
function refreshAll(){for(const id in notifications){notifications[id].refresh();}}
function freezeAll(){for(const id in notifications){notifications[id].freeze();}}
function close(id){if(notifications[id]){const notification=notifications[id];if(notification.onClose){notification.onClose();}
delete notifications[id];}}
return{add};},};registry.category("services").add("notification",notificationService);return __exports;});;

/* /web/static/src/core/orm_service.js */
odoo.define('@web/core/orm_service',['@web/core/registry'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const x2ManyCommands=__exports.x2ManyCommands={CREATE:0,create(virtualID,values){delete values.id;return[x2ManyCommands.CREATE,virtualID||false,values];},UPDATE:1,update(id,values){delete values.id;return[x2ManyCommands.UPDATE,id,values];},DELETE:2,delete(id){return[x2ManyCommands.DELETE,id,false];},UNLINK:3,unlink(id){return[x2ManyCommands.UNLINK,id,false];},LINK:4,link(id){return[x2ManyCommands.LINK,id,false];},CLEAR:5,clear(){return[x2ManyCommands.CLEAR,false,false];},SET:6,set(ids){return[x2ManyCommands.SET,false,ids];},};function validateModel(value){if(typeof value!=="string"||value.length===0){throw new Error(`Invalid model name: ${value}`);}}
function validatePrimitiveList(name,type,value){if(!Array.isArray(value)||value.some((val)=>typeof val!==type)){throw new Error(`Invalid ${name} list: ${value}`);}}
function validateObject(name,obj){if(typeof obj!=="object"||obj===null||Array.isArray(obj)){throw new Error(`${name} should be an object`);}}
function validateArray(name,array){if(!Array.isArray(array)){throw new Error(`${name} should be an array`);}}
const UPDATE_METHODS=__exports.UPDATE_METHODS=["unlink","create","write","web_save","action_archive","action_unarchive",];const ORM=__exports.ORM=class ORM{constructor(rpc,user){this.rpc=rpc;this.user=user;this._silent=false;}
get silent(){return Object.assign(Object.create(this),{_silent:true});}
call(model,method,args=[],kwargs={}){validateModel(model);const url=`/web/dataset/call_kw/${model}/${method}`;const fullContext=Object.assign({},this.user.context,kwargs.context||{});const fullKwargs=Object.assign({},kwargs,{context:fullContext});const params={model,method,args,kwargs:fullKwargs,};return this.rpc(url,params,{silent:this._silent});}
create(model,records,kwargs={}){validateArray("records",records);for(const record of records){validateObject("record",record);}
return this.call(model,"create",[records],kwargs);}
read(model,ids,fields,kwargs={}){validatePrimitiveList("ids","number",ids);if(fields){validatePrimitiveList("fields","string",fields);}
if(!ids.length){return Promise.resolve([]);}
return this.call(model,"read",[ids,fields],kwargs);}
readGroup(model,domain,fields,groupby,kwargs={}){validateArray("domain",domain);validatePrimitiveList("fields","string",fields);validatePrimitiveList("groupby","string",groupby);groupby=[...new Set(groupby)];return this.call(model,"read_group",[],{...kwargs,domain,fields,groupby});}
search(model,domain,kwargs={}){validateArray("domain",domain);return this.call(model,"search",[domain],kwargs);}
searchRead(model,domain,fields,kwargs={}){validateArray("domain",domain);if(fields){validatePrimitiveList("fields","string",fields);}
return this.call(model,"search_read",[],{...kwargs,domain,fields});}
searchCount(model,domain,kwargs={}){validateArray("domain",domain);return this.call(model,"search_count",[domain],kwargs);}
unlink(model,ids,kwargs={}){validatePrimitiveList("ids","number",ids);if(!ids.length){return Promise.resolve(true);}
return this.call(model,"unlink",[ids],kwargs);}
webReadGroup(model,domain,fields,groupby,kwargs={}){validateArray("domain",domain);validatePrimitiveList("fields","string",fields);validatePrimitiveList("groupby","string",groupby);return this.call(model,"web_read_group",[],{...kwargs,groupby,domain,fields,});}
webRead(model,ids,kwargs={}){validatePrimitiveList("ids","number",ids);return this.call(model,"web_read",[ids],kwargs);}
webSearchRead(model,domain,kwargs={}){validateArray("domain",domain);return this.call(model,"web_search_read",[],{...kwargs,domain});}
write(model,ids,data,kwargs={}){validatePrimitiveList("ids","number",ids);validateObject("data",data);return this.call(model,"write",[ids,data],kwargs);}
webSave(model,ids,data,kwargs={}){validatePrimitiveList("ids","number",ids);validateObject("data",data);return this.call(model,"web_save",[ids,data],kwargs);}}
const ormService=__exports.ormService={dependencies:["rpc","user"],async:["call","create","nameGet","read","readGroup","search","searchRead","unlink","webSearchRead","write",],start(env,{rpc,user}){return new ORM(rpc,user);},};registry.category("services").add("orm",ormService);return __exports;});;

/* /web/static/src/core/overlay/overlay_container.js */
odoo.define('@web/core/overlay/overlay_container',['@odoo/owl','@web/core/utils/arrays','@web/core/utils/components'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");const{sortBy}=require("@web/core/utils/arrays");const{ErrorHandler}=require("@web/core/utils/components");const OverlayContainer=__exports.OverlayContainer=class OverlayContainer extends Component{static template="web.OverlayContainer";static components={ErrorHandler};static props={overlays:Object};get sortedOverlays(){return sortBy(Object.values(this.props.overlays),(overlay)=>overlay.sequence);}
handleError(overlay,error){overlay.remove();Promise.resolve().then(()=>{throw error;});}}
return __exports;});;

/* /web/static/src/core/overlay/overlay_service.js */
odoo.define('@web/core/overlay/overlay_service',['@odoo/owl','@web/core/registry','@web/core/overlay/overlay_container'],function(require){'use strict';let __exports={};const{reactive}=require("@odoo/owl");const{registry}=require("@web/core/registry");const{OverlayContainer}=require("@web/core/overlay/overlay_container");const mainComponents=registry.category("main_components");const services=registry.category("services");const overlayService=__exports.overlayService={start(){let nextId=0;const overlays=reactive({});mainComponents.add("OverlayContainer",{Component:OverlayContainer,props:{overlays},});const remove=(id,onRemove=()=>{})=>{if(id in overlays){onRemove();delete overlays[id];}};const add=(component,props,options={})=>{const id=++nextId;const removeCurrentOverlay=()=>remove(id,options.onRemove);overlays[id]={id,component,props,remove:removeCurrentOverlay,sequence:options.sequence??50,};return removeCurrentOverlay;};return{add,overlays};},};services.add("overlay",overlayService);return __exports;});;

/* /web/static/src/core/pager/pager.js */
odoo.define('@web/core/pager/pager',['@web/core/utils/hooks','@web/core/utils/numbers','@odoo/owl'],function(require){'use strict';let __exports={};const{useAutofocus}=require("@web/core/utils/hooks");const{clamp}=require("@web/core/utils/numbers");const{Component,useExternalListener,useState}=require("@odoo/owl");const Pager=__exports.Pager=class Pager extends Component{setup(){this.state=useState({isEditing:false,isDisabled:false,});this.inputRef=useAutofocus();useExternalListener(document,"mousedown",this.onClickAway,{capture:true});}
get minimum(){return this.props.offset+1;}
get maximum(){return Math.min(this.props.offset+this.props.limit,this.props.total);}
get value(){const parts=[this.minimum];if(this.props.limit>1){parts.push(this.maximum);}
return parts.join("-");}
get isSinglePage(){return!this.props.updateTotal&&this.minimum===1&&this.maximum===this.props.total;}
async navigate(direction){let minimum=this.props.offset+this.props.limit*direction;let total=this.props.total;if(this.props.updateTotal&&minimum<0){total=await this.props.updateTotal();}
if(minimum>=total){if(!this.props.updateTotal){minimum=0;}}else if(minimum<0&&this.props.limit===1){minimum=total-1;}else if(minimum<0&&this.props.limit>1){minimum=total-(total%this.props.limit||this.props.limit);}
this.update(minimum,this.props.limit,true);}
async parse(value){let[minimum,maximum]=value.trim().split(/\s*[-\s,;]\s*/);minimum=parseInt(minimum,10);maximum=maximum?parseInt(maximum,10):minimum;if(this.props.updateTotal){return{minimum:minimum-1,maximum};}
return{minimum:clamp(minimum,1,this.props.total)-1,maximum:clamp(maximum,1,this.props.total),};}
async setValue(value){const{minimum,maximum}=await this.parse(value);if(!isNaN(minimum)&&!isNaN(maximum)&&minimum<maximum){this.update(minimum,maximum-minimum);}}
async update(offset,limit,hasNavigated){this.state.isDisabled=true;await this.props.onUpdate({offset,limit},hasNavigated);this.state.isDisabled=false;this.state.isEditing=false;}
async updateTotal(){if(!this.state.isDisabled){this.state.isDisabled=true;await this.props.updateTotal();this.state.isDisabled=false;}}
onClickAway(ev){if(ev.target!==this.inputRef.el){this.state.isEditing=false;}}
onInputBlur(){this.state.isEditing=false;}
onInputChange(ev){this.setValue(ev.target.value);if(!this.state.isDisabled){ev.preventDefault();}}
onInputKeydown(ev){switch(ev.key){case"Enter":ev.preventDefault();ev.stopPropagation();this.setValue(ev.currentTarget.value);break;case"Escape":ev.preventDefault();ev.stopPropagation();this.state.isEditing=false;break;}}
onValueClick(){if(this.props.isEditable&&!this.state.isEditing&&!this.state.isDisabled){if(this.inputRef.el){this.inputRef.el.focus();}
this.state.isEditing=true;}}}
Pager.template="web.Pager";Pager.defaultProps={isEditable:true,withAccessKey:true,};Pager.props={offset:Number,limit:Number,total:Number,onUpdate:Function,isEditable:{type:Boolean,optional:true},withAccessKey:{type:Boolean,optional:true},updateTotal:{type:Function,optional:true},};return __exports;});;

/* /web/static/src/core/popover/popover.js */
odoo.define('@web/core/popover/popover',['@odoo/owl','@web/core/utils/hooks','@web/core/position_hook','@web/core/ui/ui_service'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");const{useForwardRefToParent}=require("@web/core/utils/hooks");const{usePosition}=require("@web/core/position_hook");const{useActiveElement}=require("@web/core/ui/ui_service");const Popover=__exports.Popover=class Popover extends Component{static animationTime=200;setup(){useActiveElement("ref");useForwardRefToParent("ref");this.shouldAnimate=this.props.animation;this.position=usePosition("ref",()=>this.props.target,{onPositioned:(el,solution)=>{(this.props.onPositioned||this.onPositioned.bind(this))(el,solution);if(this.props.fixedPosition){this.position.lock();}},position:this.props.position,});}
onPositioned(el,{direction,variant}){const position=`${direction[0]}${variant[0]}`;const directionMap={top:"top",bottom:"bottom",left:"start",right:"end",};el.classList=["o_popover popover mw-100",`bs-popover-${directionMap[direction]}`,`o-popover-${direction}`,`o-popover--${position}`,].join(" ");if(this.props.class){el.classList.add(...this.props.class.split(" "));}
if(this.props.arrow){const arrowEl=el.querySelector(":scope > .popover-arrow");arrowEl.className="popover-arrow";switch(position){case"tm":case"bm":case"tf":case"bf":arrowEl.classList.add("start-0","end-0","mx-auto");break;case"lm":case"rm":case"lf":case"rf":arrowEl.classList.add("top-0","bottom-0","my-auto");break;case"ts":case"bs":arrowEl.classList.add("end-auto");break;case"te":case"be":arrowEl.classList.add("start-auto");break;case"ls":case"rs":arrowEl.classList.add("bottom-auto");break;case"le":case"re":arrowEl.classList.add("top-auto");break;}}
if(this.shouldAnimate){this.shouldAnimate=false;const transform={top:["translateY(-5%)","translateY(0)"],right:["translateX(5%)","translateX(0)"],bottom:["translateY(5%)","translateY(0)"],left:["translateX(-5%)","translateX(0)"],}[direction];this.position.lock();const animation=el.animate({opacity:[0,1],transform},this.constructor.animationTime);animation.finished.then(this.position.unlock);}}}
Popover.template="web.PopoverWowl";Popover.defaultProps={position:"bottom",class:"",fixedPosition:false,arrow:true,animation:true,};Popover.props={ref:{type:Function,optional:true,},class:{optional:true,type:String,},position:{type:String,validate:(p)=>{const[d,v="middle"]=p.split("-");return(["top","bottom","left","right"].includes(d)&&["start","middle","end","fit"].includes(v));},optional:true,},onPositioned:{type:Function,optional:true,},fixedPosition:{type:Boolean,optional:true,},arrow:{type:Boolean,optional:true,},animation:{type:Boolean,optional:true,},target:{validate:(target)=>{const Element=target?.ownerDocument?.defaultView?.Element;return((Boolean(Element)&&(target instanceof Element||target instanceof window.Element))||(typeof target==="object"&&target?.constructor?.name?.endsWith("Element")));},},slots:{type:Object,optional:true,shape:{default:{optional:true},},},};return __exports;});;

/* /web/static/src/core/popover/popover_controller.js */
odoo.define('@web/core/popover/popover_controller',['@odoo/owl','@web/core/hotkeys/hotkey_hook','@web/core/utils/hooks','@web/core/popover/popover'],function(require){'use strict';let __exports={};const{Component,onWillDestroy,useExternalListener,useSubEnv,xml}=require("@odoo/owl");const{useHotkey}=require("@web/core/hotkeys/hotkey_hook");const{useChildRef}=require("@web/core/utils/hooks");const{Popover}=require("@web/core/popover/popover");const POPOVER_SYMBOL=__exports.POPOVER_SYMBOL=Symbol("popover");const PopoverController=__exports.PopoverController=class PopoverController extends Component{static template=xml`
        <Popover t-props="props.popoverProps" ref="popoverRef">
            <t t-component="props.component" t-props="props.componentProps" close="props.close"/>
        </Popover>
    `;static components={Popover};static props=["target","close","closeOnClickAway","component","componentProps","popoverProps","subPopovers?",];setup(){this.props.subPopovers?.add(this);this.subPopovers=new Set();useSubEnv({[POPOVER_SYMBOL]:this.subPopovers});if(this.props.target.isConnected){this.popoverRef=useChildRef();useExternalListener(window,"pointerdown",this.onClickAway,{capture:true});useHotkey("escape",()=>this.props.close());const targetObserver=new MutationObserver(this.onTargetMutate.bind(this));targetObserver.observe(this.props.target.parentElement,{childList:true});onWillDestroy(()=>{targetObserver.disconnect();this.props.subPopovers?.delete(this);});}else{this.props.close();}}
isInside(target){if(this.props.target.contains(target)||this.popoverRef.el.contains(target)){return true;}
return[...this.subPopovers].some((p)=>p.isInside(target));}
onClickAway(ev){const target=ev.composedPath()[0];if(this.props.closeOnClickAway(target)&&!this.isInside(target)){this.props.close();}}
onTargetMutate(){if(!this.props.target.isConnected){this.props.close();}}}
return __exports;});;

/* /web/static/src/core/popover/popover_hook.js */
odoo.define('@web/core/popover/popover_hook',['@web/core/utils/hooks','@odoo/owl','@web/core/popover/popover_controller'],function(require){'use strict';let __exports={};const{useService}=require("@web/core/utils/hooks");const{onWillUnmount,status,useComponent,useEnv}=require("@odoo/owl");const{POPOVER_SYMBOL}=require("@web/core/popover/popover_controller");__exports.makePopover=makePopover;function makePopover(popoverService,component,options){let removeFn=null;function close(){removeFn?.();}
return{open(target,props){close();const newOptions=Object.create(options);newOptions.onClose=()=>{removeFn=null;options.onClose?.();};removeFn=popoverService.add(target,component,props,newOptions);},close,get isOpen(){return Boolean(removeFn);},};}
__exports.usePopover=usePopover;function usePopover(component,options={}){const env=useEnv();const popoverService=useService("popover");const owner=useComponent();const newOptions=Object.create(options);newOptions[POPOVER_SYMBOL]=env[POPOVER_SYMBOL];newOptions.onClose=()=>{if(status(owner)!=="destroyed"){options.onClose?.();}};const popover=makePopover(popoverService,component,newOptions);onWillUnmount(popover.close);return popover;}
return __exports;});;

/* /web/static/src/core/popover/popover_service.js */
odoo.define('@web/core/popover/popover_service',['@odoo/owl','@web/core/registry','@web/core/popover/popover_controller'],function(require){'use strict';let __exports={};const{markRaw}=require("@odoo/owl");const{registry}=require("@web/core/registry");const{POPOVER_SYMBOL,PopoverController}=require("@web/core/popover/popover_controller");const popoverService=__exports.popoverService={dependencies:["overlay"],start(_,{overlay}){const add=(target,component,props,options={})=>{const closeOnClickAway=typeof options.closeOnClickAway==="function"?options.closeOnClickAway:()=>options.closeOnClickAway??true;const remove=overlay.add(PopoverController,{target,close:()=>remove(),closeOnClickAway,subPopovers:options[POPOVER_SYMBOL],component,componentProps:markRaw(props),popoverProps:{target,class:options.popoverClass,animation:options.animation,arrow:options.arrow,position:options.position,onPositioned:options.onPositioned,fixedPosition:options.fixedPosition,},},{onRemove:options.onClose});return remove;};return{add};},};registry.category("services").add("popover",popoverService);return __exports;});;

/* /web/static/src/core/position_hook.js */
odoo.define('@web/core/position_hook',['@web/core/utils/timing','@odoo/owl','@web/core/l10n/localization'],function(require){'use strict';let __exports={};const{useThrottleForAnimation}=require("@web/core/utils/timing");const{EventBus,onWillDestroy,useChildSubEnv,useComponent,useEffect,useRef,}=require("@odoo/owl");const{localization}=require("@web/core/l10n/localization");const DIRECTIONS={t:"top",r:"right",b:"bottom",l:"left"};const VARIANTS={s:"start",m:"middle",e:"end",f:"fit"};const DIRECTION_FLIP_ORDER={top:"tbrl",right:"rltb",bottom:"btrl",left:"lrbt"};const VARIANT_FLIP_ORDER={start:"sme",middle:"mse",end:"ems",fit:"f"};const FIT_FLIP_ORDER={top:"tb",right:"rl",bottom:"bt",left:"lr"};const DEFAULTS={margin:0,position:"bottom",};function getIFrame(popperEl,targetEl){return[...popperEl.ownerDocument.getElementsByTagName("iframe")].find((iframe)=>iframe.contentDocument?.contains(targetEl));}
function getBestPosition(popper,target,{container,margin,position},iframe){const[directionKey,variantKey="middle"]=position.split("-");const directions=variantKey==="fit"?FIT_FLIP_ORDER[directionKey]:DIRECTION_FLIP_ORDER[directionKey];const variants=VARIANT_FLIP_ORDER[variantKey];if(!container){container=popper.ownerDocument.documentElement;}else if(typeof container==="function"){container=container();}
const popperStyle=getComputedStyle(popper);const{marginTop,marginLeft,marginRight,marginBottom}=popperStyle;const popMargins={top:parseFloat(marginTop),left:parseFloat(marginLeft),right:parseFloat(marginRight),bottom:parseFloat(marginBottom),};const popBox=popper.getBoundingClientRect();const targetBox=target.getBoundingClientRect();const contBox=container.getBoundingClientRect();const shouldAccountForIFrame=iframe&&popper.ownerDocument!==target.ownerDocument;const iframeBox=shouldAccountForIFrame?iframe.getBoundingClientRect():{top:0,left:0};const containerIsHTMLNode=container===container.ownerDocument.firstElementChild;const directionsData={t:iframeBox.top+targetBox.top-popMargins.bottom-margin-popBox.height,b:iframeBox.top+targetBox.bottom+popMargins.top+margin,r:iframeBox.left+targetBox.right+popMargins.left+margin,l:iframeBox.left+targetBox.left-popMargins.right-margin-popBox.width,};const variantsData={vf:iframeBox.left+targetBox.left,vs:iframeBox.left+targetBox.left+popMargins.left,vm:iframeBox.left+targetBox.left+targetBox.width/2-popBox.width/2,ve:iframeBox.left+targetBox.right-popMargins.right-popBox.width,hf:iframeBox.top+targetBox.top,hs:iframeBox.top+targetBox.top+popMargins.top,hm:iframeBox.top+targetBox.top+targetBox.height/2-popBox.height/2,he:iframeBox.top+targetBox.bottom-popMargins.bottom-popBox.height,};function getPositioningData(d=directions[0],v=variants[0],containerRestricted=false){const vertical=["t","b"].includes(d);const variantPrefix=vertical?"v":"h";const directionValue=directionsData[d];const variantValue=variantsData[variantPrefix+v];if(containerRestricted){const[directionSize,variantSize]=vertical?[popBox.height,popBox.width]:[popBox.width,popBox.height];let[directionMin,directionMax]=vertical?[contBox.top,contBox.bottom]:[contBox.left,contBox.right];let[variantMin,variantMax]=vertical?[contBox.left,contBox.right]:[contBox.top,contBox.bottom];if(containerIsHTMLNode){if(vertical){directionMin+=container.scrollTop;directionMax+=container.scrollTop;}else{variantMin+=container.scrollTop;variantMax+=container.scrollTop;}}
const directionOverflow=Math.ceil(directionValue)<Math.floor(directionMin)||Math.floor(directionValue+directionSize)>Math.ceil(directionMax);const variantOverflow=Math.ceil(variantValue)<Math.floor(variantMin)||Math.floor(variantValue+variantSize)>Math.ceil(variantMax);if(directionOverflow||variantOverflow){return null;}}
const positioning=vertical?{top:directionValue,left:variantValue,}:{top:variantValue,left:directionValue,};return{top:positioning.top-popBox.top,left:positioning.left-popBox.left,direction:DIRECTIONS[d],variant:VARIANTS[v],};}
for(const d of directions){for(const v of variants){const match=getPositioningData(d,v,true);if(match){return match;}}}
return getPositioningData();}
__exports.reposition=reposition;function reposition(popper,target,options,iframe){let[directionKey,variantKey="middle"]=options.position.split("-");if(localization.direction==="rtl"){if(["bottom","top"].includes(directionKey)){if(variantKey!=="middle"){variantKey=variantKey==="start"?"end":"start";}}else{directionKey=directionKey==="left"?"right":"left";}}
options.position=[directionKey,variantKey].join("-");popper.style.position="fixed";popper.style.top="0px";popper.style.left="0px";const position=getBestPosition(popper,target,options,iframe);const{top,left,direction,variant}=position;popper.style.top=`${top}px`;popper.style.left=`${left}px`;if(variant==="fit"){const styleProperty=["top","bottom"].includes(direction)?"width":"height";popper.style[styleProperty]=target.getBoundingClientRect()[styleProperty]+"px";}
options.onPositioned?.(popper,position);}
const POSITION_BUS=Symbol("position-bus");__exports.usePosition=usePosition;function usePosition(refName,getTarget,options={}){const ref=useRef(refName);let lock=false;const update=()=>{const targetEl=getTarget();if(!ref.el||!targetEl||lock){return;}
const iframe=getIFrame(ref.el,targetEl);reposition(ref.el,targetEl,{...DEFAULTS,...options},iframe);};const component=useComponent();const bus=component.env[POSITION_BUS]||new EventBus();let executingUpdate=false;const batchedUpdate=async()=>{if(!executingUpdate){executingUpdate=true;update();await Promise.resolve();executingUpdate=false;}};bus.addEventListener("update",batchedUpdate);onWillDestroy(()=>bus.removeEventListener("update",batchedUpdate));const isTopmost=!(POSITION_BUS in component.env);if(isTopmost){useChildSubEnv({[POSITION_BUS]:bus});}
const throttledUpdate=useThrottleForAnimation(()=>bus.trigger("update"));useEffect(()=>{bus.trigger("update");if(isTopmost){const scrollListener=(e)=>{if(ref.el?.contains(e.target)){return;}
throttledUpdate();};const targetDocument=getTarget()?.ownerDocument;targetDocument?.addEventListener("scroll",scrollListener,{capture:true});targetDocument?.addEventListener("load",throttledUpdate,{capture:true});window.addEventListener("resize",throttledUpdate);return()=>{targetDocument?.removeEventListener("scroll",scrollListener,{capture:true});targetDocument?.removeEventListener("load",throttledUpdate,{capture:true});window.removeEventListener("resize",throttledUpdate);};}});return{lock:()=>{lock=true;},unlock:()=>{lock=false;bus.trigger("update");},};}
return __exports;});;

/* /web/static/src/core/py_js/py.js */
odoo.define('@web/core/py_js/py',['@web/core/py_js/py_interpreter','@web/core/py_js/py_parser','@web/core/py_js/py_tokenizer','@web/core/py_js/py_utils'],function(require){'use strict';let __exports={};const{evaluate}=require("@web/core/py_js/py_interpreter");const{parse}=require("@web/core/py_js/py_parser");const{tokenize}=require("@web/core/py_js/py_tokenizer");{const{evaluate}=require("@web/core/py_js/py_interpreter");Object.assign(__exports,{evaluate})};{const{parse}=require("@web/core/py_js/py_parser");Object.assign(__exports,{parse})};{const{tokenize}=require("@web/core/py_js/py_tokenizer");Object.assign(__exports,{tokenize})};{const{formatAST}=require("@web/core/py_js/py_utils");Object.assign(__exports,{formatAST})};__exports.parseExpr=parseExpr;function parseExpr(expr){const tokens=tokenize(expr);return parse(tokens);}
__exports.evaluateExpr=evaluateExpr;function evaluateExpr(expr,context={}){let ast;try{ast=parseExpr(expr);}catch(error){throw new EvalError(`Can not parse python expression: (${expr})\nError: ${error.message}`);}
try{return evaluate(ast,context);}catch(error){throw new EvalError(`Can not evaluate python expression: (${expr})\nError: ${error.message}`);}}
__exports.evaluateBooleanExpr=evaluateBooleanExpr;function evaluateBooleanExpr(expr,context={}){if(!expr||expr==='False'||expr==='0'){return false;}
if(expr==='True'||expr==='1'){return true;}
return evaluateExpr(`bool(${expr})`,context);}
return __exports;});;

/* /web/static/src/core/py_js/py_builtin.js */
odoo.define('@web/core/py_js/py_builtin',['@web/core/py_js/py_date'],function(require){'use strict';let __exports={};const{PyDate,PyDateTime,PyRelativeDelta,PyTime,PyTimeDelta}=require("@web/core/py_js/py_date");const EvaluationError=__exports.EvaluationError=class EvaluationError extends Error{}
__exports.execOnIterable=execOnIterable;function execOnIterable(iterable,func){if(iterable===null){throw new EvaluationError(`value not iterable`);}
if(typeof iterable==="object"&&!Array.isArray(iterable)&&!(iterable instanceof Set)){iterable=Object.keys(iterable);}
if(typeof iterable?.[Symbol.iterator]!=="function"){throw new EvaluationError(`value not iterable`);}
return func(iterable);}
const BUILTINS=__exports.BUILTINS={bool(value){switch(typeof value){case"number":return value!==0;case"string":return value!=="";case"boolean":return value;case"object":if(value===null||value===undefined){return false;}
if(value.isTrue){return value.isTrue();}
if(value instanceof Array){return!!value.length;}
if(value instanceof Set){return!!value.size;}
return Object.keys(value).length!==0;}
return true;},set(iterable){if(arguments.length>2){throw new EvaluationError(`set expected at most 1 argument, got (${arguments.length - 1}`);}
return execOnIterable(iterable,(iterable)=>{return new Set(iterable);});},time:{strftime(format){return PyDateTime.now().strftime(format);},},context_today(){return PyDate.today();},get current_date(){return this.today;},get today(){return PyDate.today().strftime("%Y-%m-%d");},get now(){return PyDateTime.now().strftime("%Y-%m-%d %H:%M:%S");},datetime:{time:PyTime,timedelta:PyTimeDelta,datetime:PyDateTime,date:PyDate,},relativedelta:PyRelativeDelta,true:true,false:false,};return __exports;});;

/* /web/static/src/core/py_js/py_date.js */
odoo.define('@web/core/py_js/py_date',['@web/core/py_js/py_parser'],function(require){'use strict';let __exports={};const{parseArgs}=require("@web/core/py_js/py_parser");const AssertionError=__exports.AssertionError=class AssertionError extends Error{}
const ValueError=__exports.ValueError=class ValueError extends Error{}
const NotSupportedError=__exports.NotSupportedError=class NotSupportedError extends Error{}
function fmt2(n){return String(n).padStart(2,"0");}
function fmt4(n){return String(n).padStart(4,"0");}
function divmod(a,b,fn){let mod=a%b;if((mod>0&&b<0)||(mod<0&&b>0)){mod+=b;}
return fn(Math.floor(a/b),mod);}
function assert(bool,message="AssertionError"){if(!bool){throw new AssertionError(message);}}
const DAYS_IN_MONTH=[null,31,28,31,30,31,30,31,31,30,31,30,31];const DAYS_BEFORE_MONTH=[null];for(let dbm=0,i=1;i<DAYS_IN_MONTH.length;++i){DAYS_BEFORE_MONTH.push(dbm);dbm+=DAYS_IN_MONTH[i];}
function daysInMonth(year,month){if(month===2&&isLeap(year)){return 29;}
return DAYS_IN_MONTH[month];}
function isLeap(year){return year%4===0&&(year%100!==0||year%400===0);}
function daysBeforeYear(year){const y=year-1;return y*365+Math.floor(y/4)-Math.floor(y/100)+Math.floor(y/400);}
function daysBeforeMonth(year,month){const postLeapFeb=month>2&&isLeap(year);return DAYS_BEFORE_MONTH[month]+(postLeapFeb?1:0);}
function ymd2ord(year,month,day){const dim=daysInMonth(year,month);if(!(1<=day&&day<=dim)){throw new ValueError(`day must be in 1..${dim}`);}
return daysBeforeYear(year)+daysBeforeMonth(year,month)+day;}
const DI400Y=daysBeforeYear(401);const DI100Y=daysBeforeYear(101);const DI4Y=daysBeforeYear(5);function ord2ymd(n){--n;let n400,n100,n4,n1,n0;divmod(n,DI400Y,function(_n400,n){n400=_n400;divmod(n,DI100Y,function(_n100,n){n100=_n100;divmod(n,DI4Y,function(_n4,n){n4=_n4;divmod(n,365,function(_n1,n){n1=_n1;n0=n;});});});});n=n0;const year=n400*400+1+n100*100+n4*4+n1;if(n1==4||n100==100){assert(n0===0);return{year:year-1,month:12,day:31,};}
const leapyear=n1===3&&(n4!==24||n100==3);assert(leapyear==isLeap(year));let month=(n+50)>>5;let preceding=DAYS_BEFORE_MONTH[month]+(month>2&&leapyear?1:0);if(preceding>n){--month;preceding-=DAYS_IN_MONTH[month]+(month===2&&leapyear?1:0);}
n-=preceding;return{year:year,month:month,day:n+1,};}
function tmxxx(year,month,day,hour,minute,second,microsecond){hour=hour||0;minute=minute||0;second=second||0;microsecond=microsecond||0;if(microsecond<0||microsecond>999999){divmod(microsecond,1000000,function(carry,ms){microsecond=ms;second+=carry;});}
if(second<0||second>59){divmod(second,60,function(carry,s){second=s;minute+=carry;});}
if(minute<0||minute>59){divmod(minute,60,function(carry,m){minute=m;hour+=carry;});}
if(hour<0||hour>23){divmod(hour,24,function(carry,h){hour=h;day+=carry;});}
if(month<1||month>12){divmod(month-1,12,function(carry,m){month=m+1;year+=carry;});}
const dim=daysInMonth(year,month);if(day<1||day>dim){if(day===0){--month;if(month>0){day=daysInMonth(year,month);}else{--year;month=12;day=31;}}else if(day==dim+1){++month;day=1;if(month>12){month=1;++year;}}else{const r=ord2ymd(ymd2ord(year,month,1)+(day-1));year=r.year;month=r.month;day=r.day;}}
return{year:year,month:month,day:day,hour:hour,minute:minute,second:second,microsecond:microsecond,};}
const PyDate=__exports.PyDate=class PyDate{static today(){return this.convertDate(new Date());}
static convertDate(date){const year=date.getFullYear();const month=date.getMonth()+1;const day=date.getDate();return new PyDate(year,month,day);}
constructor(year,month,day){this.year=year;this.month=month;this.day=day;}
static create(...args){const{year,month,day}=parseArgs(args,["year","month","day"]);return new PyDate(year,month,day);}
add(timedelta){const s=tmxxx(this.year,this.month,this.day+timedelta.days);return new PyDate(s.year,s.month,s.day);}
isEqual(other){if(!(other instanceof PyDate)){return false;}
return this.year===other.year&&this.month===other.month&&this.day===other.day;}
strftime(format){return format.replace(/%([A-Za-z])/g,(m,c)=>{switch(c){case"Y":return fmt4(this.year);case"m":return fmt2(this.month);case"d":return fmt2(this.day);}
throw new ValueError(`No known conversion for ${m}`);});}
substract(other){if(other instanceof PyTimeDelta){return this.add(other.negate());}
if(other instanceof PyDate){return PyTimeDelta.create(this.toordinal()-other.toordinal());}
throw new NotSupportedError();}
toJSON(){return this.strftime("%Y-%m-%d");}
toordinal(){return ymd2ord(this.year,this.month,this.day);}}
const PyDateTime=__exports.PyDateTime=class PyDateTime{static now(){return this.convertDate(new Date());}
static convertDate(date){const year=date.getFullYear();const month=date.getMonth()+1;const day=date.getDate();const hour=date.getHours();const minute=date.getMinutes();const second=date.getSeconds();return new PyDateTime(year,month,day,hour,minute,second,0);}
static create(...args){const namedArgs=parseArgs(args,["year","month","day","hour","minute","second","microsecond",]);const year=namedArgs.year;const month=namedArgs.month;const day=namedArgs.day;const hour=namedArgs.hour||0;const minute=namedArgs.minute||0;const second=namedArgs.second||0;const ms=namedArgs.micro/1000||0;return new PyDateTime(year,month,day,hour,minute,second,ms);}
static combine(...args){const{date,time}=parseArgs(args,["date","time"]);return PyDateTime.create(date.year,date.month,date.day,time.hour,time.minute,time.second);}
constructor(year,month,day,hour,minute,second,microsecond){this.year=year;this.month=month;this.day=day;this.hour=hour;this.minute=minute;this.second=second;this.microsecond=microsecond;}
add(timedelta){const s=tmxxx(this.year,this.month,this.day+timedelta.days,this.hour,this.minute,this.second+timedelta.seconds,this.microsecond+timedelta.microseconds);return new PyDateTime(s.year,s.month,s.day,s.hour,s.minute,s.second,s.microsecond);}
isEqual(other){if(!(other instanceof PyDateTime)){return false;}
return(this.year===other.year&&this.month===other.month&&this.day===other.day&&this.hour===other.hour&&this.minute===other.minute&&this.second===other.second&&this.microsecond===other.microsecond);}
strftime(format){return format.replace(/%([A-Za-z])/g,(m,c)=>{switch(c){case"Y":return fmt4(this.year);case"m":return fmt2(this.month);case"d":return fmt2(this.day);case"H":return fmt2(this.hour);case"M":return fmt2(this.minute);case"S":return fmt2(this.second);}
throw new ValueError(`No known conversion for ${m}`);});}
substract(timedelta){return this.add(timedelta.negate());}
toJSON(){return this.strftime("%Y-%m-%d %H:%M:%S");}
to_utc(){const d=new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.second);const timedelta=PyTimeDelta.create({minutes:d.getTimezoneOffset()});return this.add(timedelta);}}
const PyTime=__exports.PyTime=class PyTime extends PyDate{static create(...args){const namedArgs=parseArgs(args,["hour","minute","second"]);const hour=namedArgs.hour||0;const minute=namedArgs.minute||0;const second=namedArgs.second||0;return new PyTime(hour,minute,second);}
constructor(hour,minute,second){const now=new Date();const year=now.getFullYear();const month=now.getMonth();const day=now.getDate();super(year,month,day);this.hour=hour;this.minute=minute;this.second=second;}
strftime(format){return format.replace(/%([A-Za-z])/g,(m,c)=>{switch(c){case"Y":return fmt4(this.year);case"m":return fmt2(this.month+1);case"d":return fmt2(this.day);case"H":return fmt2(this.hour);case"M":return fmt2(this.minute);case"S":return fmt2(this.second);}
throw new ValueError(`No known conversion for ${m}`);});}
toJSON(){return this.strftime("%H:%M:%S");}}
const DAYS_IN_YEAR=[31,59,90,120,151,181,212,243,273,304,334,366];const TIME_PERIODS=["hour","minute","second"];const PERIODS=["year","month","day",...TIME_PERIODS];const RELATIVE_KEYS="years months weeks days hours minutes seconds microseconds leapdays".split(" ");const ABSOLUTE_KEYS="year month day hour minute second microsecond weekday nlyearday yearday".split(" ");const argsSpec=["dt1","dt2"];const PyRelativeDelta=__exports.PyRelativeDelta=class PyRelativeDelta{static create(...args){const params=parseArgs(args,argsSpec);if("dt1"in params){throw new Error("relativedelta(dt1, dt2) is not supported for now");}
for(const period of PERIODS){if(period in params){const val=params[period];assert(val>=0,`${period} ${val} is out of range`);}}
for(const key of RELATIVE_KEYS){params[key]=params[key]||0;}
for(const key of ABSOLUTE_KEYS){params[key]=key in params?params[key]:null;}
params.days+=7*params.weeks;let yearDay=0;if(params.nlyearday){yearDay=params.nlyearday;}else if(params.yearday){yearDay=params.yearday;if(yearDay>59){params.leapDays=-1;}}
if(yearDay){for(let monthIndex=0;monthIndex<DAYS_IN_YEAR.length;monthIndex++){if(yearDay<=DAYS_IN_YEAR[monthIndex]){params.month=monthIndex+1;if(monthIndex===0){params.day=yearDay;}else{params.day=yearDay-DAYS_IN_YEAR[monthIndex-1];}
break;}}}
return new PyRelativeDelta(params);}
static add(date,delta){if(!(date instanceof PyDate||date instanceof PyDateTime)){throw new NotSupportedError();}
const s=tmxxx((delta.year||date.year)+delta.years,(delta.month||date.month)+delta.months,delta.day||date.day,delta.hour||date.hour||0,delta.minute||date.minute||0,delta.second||date.seconds||0,delta.microseconds||date.microseconds||0);const newDateTime=new PyDateTime(s.year,s.month,s.day,s.hour,s.minute,s.second,s.microsecond);let leapDays=0;if(delta.leapDays&&newDateTime.month>2&&isLeap(newDateTime.year)){leapDays=delta.leapDays;}
const temp=newDateTime.add(PyTimeDelta.create({days:delta.days+leapDays,hours:delta.hours,minutes:delta.minutes,seconds:delta.seconds,microseconds:delta.microseconds,}));const hasTime=Boolean(temp.hour||temp.minute||temp.second||temp.microsecond);const returnDate=!hasTime&&date instanceof PyDate?new PyDate(temp.year,temp.month,temp.day):temp;if(delta.weekday!==null){const wantedDow=delta.weekday+1;const _date=new Date(returnDate.year,returnDate.month-1,returnDate.day);const days=(7-_date.getDay()+wantedDow)%7;return returnDate.add(new PyTimeDelta(days,0,0));}
return returnDate;}
static substract(date,delta){return PyRelativeDelta.add(date,delta.negate());}
constructor(params={},sign=+1){this.years=sign*params.years;this.months=sign*params.months;this.days=sign*params.days;this.hours=sign*params.hours;this.minutes=sign*params.minutes;this.seconds=sign*params.seconds;this.microseconds=sign*params.microseconds;this.leapDays=params.leapDays;this.year=params.year;this.month=params.month;this.day=params.day;this.hour=params.hour;this.minute=params.minute;this.second=params.second;this.microsecond=params.microsecond;this.weekday=params.weekday;}
negate(){return new PyRelativeDelta(this,-1);}
isEqual(other){throw new NotSupportedError();}}
const TIME_DELTA_KEYS="weeks days hours minutes seconds milliseconds microseconds".split(" ");function modf(x){const mod=x%1;return[mod<0?mod+1:mod,Math.floor(x)];}
const PyTimeDelta=__exports.PyTimeDelta=class PyTimeDelta{static create(...args){const namedArgs=parseArgs(args,["days","seconds","microseconds"]);for(const key of TIME_DELTA_KEYS){namedArgs[key]=namedArgs[key]||0;}
let d=0;let s=0;let us=0;const days=namedArgs.days+namedArgs.weeks*7;let seconds=namedArgs.seconds+60*namedArgs.minutes+3600*namedArgs.hours;let microseconds=namedArgs.microseconds+1000*namedArgs.milliseconds;const[dFrac,dInt]=modf(days);d=dInt;let daysecondsfrac=0;if(dFrac){const[dsFrac,dsInt]=modf(dFrac*24*3600);s=dsInt;daysecondsfrac=dsFrac;}
const[sFrac,sInt]=modf(seconds);seconds=sInt;const secondsfrac=sFrac+daysecondsfrac;divmod(seconds,24*3600,(days,seconds)=>{d+=days;s+=seconds;});microseconds+=secondsfrac*1e6;divmod(microseconds,1000000,(seconds,microseconds)=>{divmod(seconds,24*3600,(days,seconds)=>{d+=days;s+=seconds;us+=Math.round(microseconds);});});return new PyTimeDelta(d,s,us);}
constructor(days,seconds,microseconds){this.days=days;this.seconds=seconds;this.microseconds=microseconds;}
add(other){return PyTimeDelta.create({days:this.days+other.days,seconds:this.seconds+other.seconds,microseconds:this.microseconds+other.microseconds,});}
divide(n){const us=(this.days*24*3600+this.seconds)*1e6+this.microseconds;return PyTimeDelta.create({microseconds:Math.floor(us/n)});}
isEqual(other){if(!(other instanceof PyTimeDelta)){return false;}
return(this.days===other.days&&this.seconds===other.seconds&&this.microseconds===other.microseconds);}
isTrue(){return this.days!==0||this.seconds!==0||this.microseconds!==0;}
multiply(n){return PyTimeDelta.create({days:n*this.days,seconds:n*this.seconds,microseconds:n*this.microseconds,});}
negate(){return PyTimeDelta.create({days:-this.days,seconds:-this.seconds,microseconds:-this.microseconds,});}
substract(other){return PyTimeDelta.create({days:this.days-other.days,seconds:this.seconds-other.seconds,microseconds:this.microseconds-other.microseconds,});}
total_seconds(){return this.days*86400+this.seconds+this.microseconds/1000000;}}
return __exports;});;

/* /web/static/src/core/py_js/py_interpreter.js */
odoo.define('@web/core/py_js/py_interpreter',['@web/core/py_js/py_builtin','@web/core/py_js/py_date','@web/core/py_js/py_utils','@web/core/py_js/py_parser'],function(require){'use strict';let __exports={};const{BUILTINS,EvaluationError,execOnIterable}=require("@web/core/py_js/py_builtin");const{NotSupportedError,PyDate,PyDateTime,PyRelativeDelta,PyTime,PyTimeDelta,}=require("@web/core/py_js/py_date");const{PY_DICT,toPyDict}=require("@web/core/py_js/py_utils");const{parseArgs}=require("@web/core/py_js/py_parser");const isTrue=BUILTINS.bool;function applyUnaryOp(ast,context){const value=evaluate(ast.right,context);switch(ast.op){case"-":if(value instanceof Object&&value.negate){return value.negate();}
return-value;case"+":return value;case"not":return!isTrue(value);}
throw new EvaluationError(`Unknown unary operator: ${ast.op}`);}
function pytypeIndex(val){switch(typeof val){case"object":return val===null?1:Array.isArray(val)?5:3;case"number":return 2;case"string":return 4;}
throw new EvaluationError(`Unknown type: ${typeof val}`);}
function isConstructor(obj){return!!obj.prototype&&!!obj.prototype.constructor.name;}
function isLess(left,right){if(typeof left==="number"&&typeof right==="number"){return left<right;}
if(typeof left==="boolean"){left=left?1:0;}
if(typeof right==="boolean"){right=right?1:0;}
const leftIndex=pytypeIndex(left);const rightIndex=pytypeIndex(right);if(leftIndex===rightIndex){return left<right;}
return leftIndex<rightIndex;}
function isEqual(left,right){if(typeof left!==typeof right){if(typeof left==="boolean"&&typeof right==="number"){return right===(left?1:0);}
if(typeof left==="number"&&typeof right==="boolean"){return left===(right?1:0);}
return false;}
if(left instanceof Object&&left.isEqual){return left.isEqual(right);}
return left===right;}
function isIn(left,right){if(Array.isArray(right)){return right.includes(left);}
if(typeof right==="string"&&typeof left==="string"){return right.includes(left);}
if(typeof right==="object"){return left in right;}
return false;}
function applyBinaryOp(ast,context){const left=evaluate(ast.left,context);const right=evaluate(ast.right,context);switch(ast.op){case"+":{const relativeDeltaOnLeft=left instanceof PyRelativeDelta;const relativeDeltaOnRight=right instanceof PyRelativeDelta;if(relativeDeltaOnLeft||relativeDeltaOnRight){const date=relativeDeltaOnLeft?right:left;const delta=relativeDeltaOnLeft?left:right;return PyRelativeDelta.add(date,delta);}
const timeDeltaOnLeft=left instanceof PyTimeDelta;const timeDeltaOnRight=right instanceof PyTimeDelta;if(timeDeltaOnLeft&&timeDeltaOnRight){return left.add(right);}
if(timeDeltaOnLeft){if(right instanceof PyDate||right instanceof PyDateTime){return right.add(left);}else{throw new NotSupportedError();}}
if(timeDeltaOnRight){if(left instanceof PyDate||left instanceof PyDateTime){return left.add(right);}else{throw new NotSupportedError();}}
if(left instanceof Array&&right instanceof Array){return[...left,...right];}
return left+right;}
case"-":{const isRightDelta=right instanceof PyRelativeDelta;if(isRightDelta){return PyRelativeDelta.substract(left,right);}
const timeDeltaOnRight=right instanceof PyTimeDelta;if(timeDeltaOnRight){if(left instanceof PyTimeDelta){return left.substract(right);}else if(left instanceof PyDate||left instanceof PyDateTime){return left.substract(right);}else{throw new NotSupportedError();}}
if(left instanceof PyDate){return left.substract(right);}
return left-right;}
case"*":{const timeDeltaOnLeft=left instanceof PyTimeDelta;const timeDeltaOnRight=right instanceof PyTimeDelta;if(timeDeltaOnLeft||timeDeltaOnRight){const number=timeDeltaOnLeft?right:left;const delta=timeDeltaOnLeft?left:right;return delta.multiply(number);}
return left*right;}
case"/":return left/right;case"%":return left%right;case"//":if(left instanceof PyTimeDelta){return left.divide(right);}
return Math.floor(left/right);case"**":return left**right;case"==":return isEqual(left,right);case"<>":case"!=":return!isEqual(left,right);case"<":return isLess(left,right);case">":return isLess(right,left);case">=":return isEqual(left,right)||isLess(right,left);case"<=":return isEqual(left,right)||isLess(left,right);case"in":return isIn(left,right);case"not in":return!isIn(left,right);}
throw new EvaluationError(`Unknown binary operator: ${ast.op}`);}
const DICT={get(...args){const{key,defValue}=parseArgs(args,["key","defValue"]);if(key in this){return this[key];}else if(defValue){return defValue;}
return null;},};const STRING={lower(){return this.toLowerCase();},upper(){return this.toUpperCase();},};function applyFunc(key,func,set,...args){if(args.length===1){return new Set(set);}
if(args.length>2){throw new EvaluationError(`${key}: py_js supports at most 1 argument, got (${args.length - 1})`);}
return execOnIterable(args[0],func);}
const SET={intersection(...args){return applyFunc("intersection",(iterable)=>{const intersection=new Set();for(const i of iterable){if(this.has(i)){intersection.add(i);}}
return intersection;},this,...args);},difference(...args){return applyFunc("difference",(iterable)=>{iterable=new Set(iterable);const difference=new Set();for(const e of this){if(!iterable.has(e)){difference.add(e);}}
return difference;},this,...args);},union(...args){return applyFunc("union",(iterable)=>{return new Set([...this,...iterable]);},this,...args);},};function methods(_class){return Object.getOwnPropertyNames(_class.prototype).map((prop)=>_class.prototype[prop]);}
const allowedFns=new Set([BUILTINS.time.strftime,BUILTINS.set,BUILTINS.bool,BUILTINS.context_today,BUILTINS.datetime.datetime.now,BUILTINS.datetime.datetime.combine,BUILTINS.datetime.date.today,...methods(BUILTINS.relativedelta),...Object.values(BUILTINS.datetime).flatMap((obj)=>methods(obj)),...Object.values(SET),...Object.values(DICT),...Object.values(STRING),]);const unboundFn=Symbol("unbound function");__exports.evaluate=evaluate;function evaluate(ast,context={}){const dicts=new Set();let pyContext;const evalContext=Object.create(context);if(!evalContext.context){Object.defineProperty(evalContext,"context",{get(){if(!pyContext){pyContext=toPyDict(context);}
return pyContext;},});}
function _innerEvaluate(ast){switch(ast.type){case 0:case 1:return ast.value;case 5:if(ast.value in evalContext){return evalContext[ast.value];}else if(ast.value in BUILTINS){return BUILTINS[ast.value];}else{throw new EvaluationError(`Name '${ast.value}' is not defined`);}
case 3:return null;case 2:return ast.value;case 6:return applyUnaryOp(ast,evalContext);case 7:return applyBinaryOp(ast,evalContext);case 14:{const left=_evaluate(ast.left);if(ast.op==="and"){return isTrue(left)?_evaluate(ast.right):left;}else{return isTrue(left)?left:_evaluate(ast.right);}}
case 4:case 10:return ast.value.map(_evaluate);case 11:{const dict={};for(const key in ast.value){dict[key]=_evaluate(ast.value[key]);}
dicts.add(dict);return dict;}
case 8:{const fnValue=_evaluate(ast.fn);const args=ast.args.map(_evaluate);const kwargs={};for(const kwarg in ast.kwargs){kwargs[kwarg]=_evaluate(ast.kwargs[kwarg]);}
if(fnValue===PyDate||fnValue===PyDateTime||fnValue===PyTime||fnValue===PyRelativeDelta||fnValue===PyTimeDelta){return fnValue.create(...args,kwargs);}
return fnValue(...args,kwargs);}
case 12:{const dict=_evaluate(ast.target);const key=_evaluate(ast.key);return dict[key];}
case 13:{if(isTrue(_evaluate(ast.condition))){return _evaluate(ast.ifTrue);}else{return _evaluate(ast.ifFalse);}}
case 15:{let left=_evaluate(ast.obj);let result;if(dicts.has(left)||Object.isPrototypeOf.call(PY_DICT,left)){result=DICT[ast.key];}else if(typeof left==="string"){result=STRING[ast.key];}else if(left instanceof Set){result=SET[ast.key];}else if(ast.key=="get"&&typeof left==="object"){result=DICT[ast.key];left=toPyDict(left);}else{result=left[ast.key];}
if(typeof result==="function"){if(!isConstructor(result)){const bound=result.bind(left);bound[unboundFn]=result;return bound;}}
return result;}}
throw new EvaluationError(`AST of type ${ast.type} cannot be evaluated`);}
function _evaluate(ast){const val=_innerEvaluate(ast);if(typeof val==="function"&&!allowedFns.has(val)&&!allowedFns.has(val[unboundFn])){throw new Error("Invalid Function Call");}
return val;}
return _evaluate(ast);}
return __exports;});;

/* /web/static/src/core/py_js/py_parser.js */
odoo.define('@web/core/py_js/py_parser',['@web/core/py_js/py_tokenizer'],function(require){'use strict';let __exports={};const{binaryOperators,comparators}=require("@web/core/py_js/py_tokenizer");const ParserError=__exports.ParserError=class ParserError extends Error{}
const chainedOperators=new Set(comparators);const infixOperators=new Set(binaryOperators.concat(comparators));__exports.bp=bp;function bp(symbol){switch(symbol){case"=":return 10;case"if":return 20;case"in":case"not in":case"is":case"is not":case"<":case"<=":case">":case">=":case"<>":case"==":case"!=":return 60;case"or":return 30;case"and":return 40;case"not":return 50;case"|":return 70;case"^":return 80;case"&":return 90;case"<<":case">>":return 100;case"+":case"-":return 110;case"*":case"/":case"//":case"%":return 120;case"**":return 140;case".":case"(":case"[":return 150;}
return 0;}
function bindingPower(token){return token.type===2?bp(token.value):0;}
function isSymbol(token,value){return token.type===2&&token.value===value;}
function parsePrefix(current,tokens){switch(current.type){case 0:return{type:0,value:current.value};case 1:return{type:1,value:current.value};case 4:if(current.value==="None"){return{type:3};}else{return{type:2,value:current.value==="True"};}
case 3:return{type:5,value:current.value};case 2:switch(current.value){case"-":case"+":case"~":return{type:6,op:current.value,right:_parse(tokens,130),};case"not":return{type:6,op:current.value,right:_parse(tokens,50),};case"(":{const content=[];let isTuple=false;while(tokens[0]&&!isSymbol(tokens[0],")")){content.push(_parse(tokens,0));if(tokens[0]){if(tokens[0]&&isSymbol(tokens[0],",")){isTuple=true;tokens.shift();}else if(!isSymbol(tokens[0],")")){throw new ParserError("parsing error");}}else{throw new ParserError("parsing error");}}
if(!tokens[0]||!isSymbol(tokens[0],")")){throw new ParserError("parsing error");}
tokens.shift();isTuple=isTuple||content.length===0;return isTuple?{type:10,value:content}:content[0];}
case"[":{const value=[];while(tokens[0]&&!isSymbol(tokens[0],"]")){value.push(_parse(tokens,0));if(tokens[0]){if(isSymbol(tokens[0],",")){tokens.shift();}else if(!isSymbol(tokens[0],"]")){throw new ParserError("parsing error");}}}
if(!tokens[0]||!isSymbol(tokens[0],"]")){throw new ParserError("parsing error");}
tokens.shift();return{type:4,value};}
case"{":{const dict={};while(tokens[0]&&!isSymbol(tokens[0],"}")){const key=_parse(tokens,0);if((key.type!==1&&key.type!==0)||!tokens[0]||!isSymbol(tokens[0],":")){throw new ParserError("parsing error");}
tokens.shift();const value=_parse(tokens,0);dict[key.value]=value;if(isSymbol(tokens[0],",")){tokens.shift();}}
if(!tokens.shift()){throw new ParserError("parsing error");}
return{type:11,value:dict};}}}
throw new ParserError("Token cannot be parsed");}
function parseInfix(left,current,tokens){switch(current.type){case 2:if(infixOperators.has(current.value)){let right=_parse(tokens,bindingPower(current));if(current.value==="and"||current.value==="or"){return{type:14,op:current.value,left,right,};}else if(current.value==="."){if(right.type===5){return{type:15,obj:left,key:right.value,};}else{throw new ParserError("invalid obj lookup");}}
let op={type:7,op:current.value,left,right,};while(chainedOperators.has(current.value)&&tokens[0]&&tokens[0].type===2&&chainedOperators.has(tokens[0].value)){const nextToken=tokens.shift();op={type:14,op:"and",left:op,right:{type:7,op:nextToken.value,left:right,right:_parse(tokens,bindingPower(nextToken)),},};right=op.right.right;}
return op;}
switch(current.value){case"(":{const args=[];const kwargs={};while(tokens[0]&&!isSymbol(tokens[0],")")){const arg=_parse(tokens,0);if(arg.type===9){kwargs[arg.name.value]=arg.value;}else{args.push(arg);}
if(tokens[0]&&isSymbol(tokens[0],",")){tokens.shift();}}
if(!tokens[0]||!isSymbol(tokens[0],")")){throw new ParserError("parsing error");}
tokens.shift();return{type:8,fn:left,args,kwargs};}
case"=":if(left.type===5){return{type:9,name:left,value:_parse(tokens,10),};}
break;case"[":{const key=_parse(tokens);if(!tokens[0]||!isSymbol(tokens[0],"]")){throw new ParserError("parsing error");}
tokens.shift();return{type:12,target:left,key:key,};}
case"if":{const condition=_parse(tokens);if(!tokens[0]||!isSymbol(tokens[0],"else")){throw new ParserError("parsing error");}
tokens.shift();const ifFalse=_parse(tokens);return{type:13,condition,ifTrue:left,ifFalse,};}}}
throw new ParserError("Token cannot be parsed");}
function _parse(tokens,bp=0){const token=tokens.shift();let expr=parsePrefix(token,tokens);while(tokens[0]&&bindingPower(tokens[0])>bp){expr=parseInfix(expr,tokens.shift(),tokens);}
return expr;}
__exports.parse=parse;function parse(tokens){if(tokens.length){return _parse(tokens,0);}
throw new ParserError("Missing token");}
__exports.parseArgs=parseArgs;function parseArgs(args,spec){const last=args[args.length-1];const unnamedArgs=typeof last==="object"?args.slice(0,-1):args;const kwargs=typeof last==="object"?last:{};for(const[index,val]of unnamedArgs.entries()){kwargs[spec[index]]=val;}
return kwargs;}
return __exports;});;

/* /web/static/src/core/py_js/py_tokenizer.js */
odoo.define('@web/core/py_js/py_tokenizer',[],function(require){'use strict';let __exports={};const TokenizerError=__exports.TokenizerError=class TokenizerError extends Error{}
const directMap={"\\":"\\",'"':'"',"'":"'",a:"\x07",b:"\x08",f:"\x0c",n:"\n",r:"\r",t:"\t",v:"\v",};function decodeStringLiteral(str,unicode){const out=[];let code;for(var i=0;i<str.length;++i){if(str[i]!=="\\"){out.push(str[i]);continue;}
var escape=str[i+1];if(escape in directMap){out.push(directMap[escape]);++i;continue;}
switch(escape){case"\n":++i;continue;case"N":if(!unicode){break;}
throw new TokenizerError("SyntaxError: \\N{} escape not implemented");case"u":if(!unicode){break;}
var uni=str.slice(i+2,i+6);if(!/[0-9a-f]{4}/i.test(uni)){throw new TokenizerError(["SyntaxError: (unicode error) 'unicodeescape' codec"," can't decode bytes in position ",i,"-",i+4,": truncated \\uXXXX escape",].join(""));}
code=parseInt(uni,16);out.push(String.fromCharCode(code));i+=5;continue;case"U":if(!unicode){break;}
throw new TokenizerError("SyntaxError: \\U escape not implemented");case"x":var hex=str.slice(i+2,i+4);if(!/[0-9a-f]{2}/i.test(hex)){if(!unicode){throw new TokenizerError("ValueError: invalid \\x escape");}
throw new TokenizerError(["SyntaxError: (unicode error) 'unicodeescape'"," codec can't decode bytes in position ",i,"-",i+2,": truncated \\xXX escape",].join(""));}
code=parseInt(hex,16);out.push(String.fromCharCode(code));i+=3;continue;default:if(!/[0-8]/.test(escape)){break;}
var r=/[0-8]{1,3}/g;r.lastIndex=i+1;var m=r.exec(str);var oct=m[0];code=parseInt(oct,8);out.push(String.fromCharCode(code));i+=oct.length;continue;}
out.push("\\");}
return out.join("");}
const constants=new Set(["None","False","True"]);const comparators=__exports.comparators=["in","not","not in","is","is not","<","<=",">",">=","<>","!=","==",];const binaryOperators=__exports.binaryOperators=["or","and","|","^","&","<<",">>","+","-","*","/","//","%","~","**",".",];const unaryOperators=__exports.unaryOperators=["-"];const symbols=new Set([...["(",")","[","]","{","}",":",","],...["if","else","lambda","="],...comparators,...binaryOperators,...unaryOperators,]);function group(...args){return"("+args.join("|")+")";}
const Name="[a-zA-Z_]\\w*";const Whitespace="[ \\f\\t]*";const DecNumber="\\d+(L|l)?";const IntNumber=DecNumber;const Exponent="[eE][+-]?\\d+";const PointFloat=group(`\\d+\\.\\d*(${Exponent})?`,`\\.\\d+(${Exponent})?`);const FloatNumber=group(PointFloat,`\\d+${Exponent}`);const Number=group(FloatNumber,IntNumber);const Operator=group("\\*\\*=?",">>=?","<<=?","<>","!=","//=?","[+\\-*/%&|^=<>]=?","~");const Bracket="[\\[\\]\\(\\)\\{\\}]";const Special="[:;.,`@]";const Funny=group(Operator,Bracket,Special);const ContStr=group("([uU])?'([^\n'\\\\]*(?:\\\\.[^\n'\\\\]*)*)'",'([uU])?"([^\n"\\\\]*(?:\\\\.[^\n"\\\\]*)*)"');const PseudoToken=Whitespace+group(Number,Funny,ContStr,Name);const NumberPattern=new RegExp("^"+Number+"$");const StringPattern=new RegExp("^"+ContStr+"$");const NamePattern=new RegExp("^"+Name+"$");const strip=new RegExp("^"+Whitespace);__exports.tokenize=tokenize;function tokenize(str){const tokens=[];const max=str.length;let start=0;let end=0;const pseudoprog=new RegExp(PseudoToken,"g");while(pseudoprog.lastIndex<max){const pseudomatch=pseudoprog.exec(str);if(!pseudomatch){if(/^\s+$/.test(str.slice(end))){break;}
throw new TokenizerError("Failed to tokenize <<"+
str+">> at index "+
(end||0)+"; parsed so far: "+
tokens);}
if(pseudomatch.index>end){if(str.slice(end,pseudomatch.index).trim()){throw new TokenizerError("Invalid expression");}}
start=pseudomatch.index;end=pseudoprog.lastIndex;let token=str.slice(start,end).replace(strip,"");if(NumberPattern.test(token)){tokens.push({type:0,value:parseFloat(token),});}else if(StringPattern.test(token)){var m=StringPattern.exec(token);tokens.push({type:1,value:decodeStringLiteral(m[3]!==undefined?m[3]:m[5],!!(m[2]||m[4])),});}else if(symbols.has(token)){if(token==="in"&&tokens.length>0&&tokens[tokens.length-1].value==="not"){token="not in";tokens.pop();}else if(token==="not"&&tokens.length>0&&tokens[tokens.length-1].value==="is"){token="is not";tokens.pop();}
tokens.push({type:2,value:token,});}else if(constants.has(token)){tokens.push({type:4,value:token,});}else if(NamePattern.test(token)){tokens.push({type:3,value:token,});}else{throw new TokenizerError("Invalid expression");}}
return tokens;}
return __exports;});;

/* /web/static/src/core/py_js/py_utils.js */
odoo.define('@web/core/py_js/py_utils',['@web/core/py_js/py_parser','@web/core/py_js/py_date'],function(require){'use strict';let __exports={};const{bp}=require("@web/core/py_js/py_parser");const{PyDate,PyDateTime}=require("@web/core/py_js/py_date");__exports.toPyValue=toPyValue;function toPyValue(value){switch(typeof value){case"string":return{type:1,value};case"number":return{type:0,value};case"boolean":return{type:2,value};case"object":if(Array.isArray(value)){return{type:4,value:value.map(toPyValue)};}else if(value===null){return{type:3};}else if(value instanceof Date){return{type:1,value:PyDateTime.convertDate(value)};}else if(value instanceof PyDate||value instanceof PyDateTime){return{type:1,value};}else{const content={};for(const key in value){content[key]=toPyValue(value[key]);}
return{type:11,value:content};}
default:throw new Error("Invalid type");}}
__exports.formatAST=formatAST;function formatAST(ast,lbp=0){switch(ast.type){case 3:return"None";case 1:return JSON.stringify(ast.value);case 0:return String(ast.value);case 2:return ast.value?"True":"False";case 4:return`[${ast.value.map(formatAST).join(", ")}]`;case 6:if(ast.op==="not"){return`not `+formatAST(ast.right,50);}
return ast.op+formatAST(ast.right,130);case 7:{const abp=bp(ast.op);const str=`${formatAST(ast.left, abp)} ${ast.op} ${formatAST(ast.right, abp)}`;return abp<lbp?`(${str})`:str;}
case 11:{const pairs=[];for(const k in ast.value){pairs.push(`"${k}": ${formatAST(ast.value[k])}`);}
return`{`+pairs.join(", ")+`}`;}
case 10:return`(${ast.value.map(formatAST).join(", ")})`;case 5:return ast.value;case 12:{return`${formatAST(ast.target)}[${formatAST(ast.key)}]`;}
case 13:{const{ifTrue,condition,ifFalse}=ast;return`${formatAST(ifTrue)} if ${formatAST(condition)} else ${formatAST(ifFalse)}`;}
case 14:{const abp=bp(ast.op);const str=`${formatAST(ast.left, abp)} ${ast.op} ${formatAST(ast.right, abp)}`;return abp<lbp?`(${str})`:str;}
case 15:return`${formatAST(ast.obj, 150)}.${ast.key}`;case 8:{const args=ast.args.map(formatAST);const kwargs=[];for(const kwarg in ast.kwargs){kwargs.push(`${kwarg} = ${formatAST(ast.kwargs[kwarg])}`);}
const argStr=args.concat(kwargs).join(", ");return`${formatAST(ast.fn)}(${argStr})`;}}
throw new Error("invalid expression: "+ast);}
const PY_DICT=__exports.PY_DICT=Object.create(null);__exports.toPyDict=toPyDict;function toPyDict(obj){return new Proxy(obj,{getPrototypeOf(){return PY_DICT;},});}
return __exports;});;

/* /web/static/src/core/record_selectors/multi_record_selector.js */
odoo.define('@web/core/record_selectors/multi_record_selector',['@odoo/owl','@web/core/tags_list/tags_list','@web/core/utils/hooks','@web/core/record_selectors/record_autocomplete','@web/core/l10n/translation','@web/core/record_selectors/tag_navigation_hook'],function(require){'use strict';let __exports={};const{Component,onWillStart,onWillUpdateProps}=require("@odoo/owl");const{TagsList}=require("@web/core/tags_list/tags_list");const{useService}=require("@web/core/utils/hooks");const{RecordAutocomplete}=require("@web/core/record_selectors/record_autocomplete");const{_t}=require("@web/core/l10n/translation");const{useTagNavigation}=require("@web/core/record_selectors/tag_navigation_hook");const MultiRecordSelector=__exports.MultiRecordSelector=class MultiRecordSelector extends Component{static props={resIds:{type:Array,element:Number},resModel:String,update:Function,domain:{type:Array,optional:true},context:{type:Object,optional:true},fieldString:{type:String,optional:true},placeholder:{type:String,optional:true},};static components={RecordAutocomplete,TagsList};static template="web.MultiRecordSelector";setup(){this.nameService=useService("name");this.onTagKeydown=useTagNavigation("multiRecordSelector",this.deleteTag.bind(this));onWillStart(()=>this.computeDerivedParams());onWillUpdateProps((nextProps)=>this.computeDerivedParams(nextProps));}
async computeDerivedParams(props=this.props){const displayNames=await this.getDisplayNames(props);this.tags=this.getTags(props,displayNames);}
async getDisplayNames(props){const ids=this.getIds(props);return this.nameService.loadDisplayNames(props.resModel,ids);}
get placeholder(){return this.getIds().length?"":this.props.placeholder;}
getIds(props=this.props){return props.resIds;}
getTags(props,displayNames){return props.resIds.map((id,index)=>{const text=typeof displayNames[id]==="string"?displayNames[id]:_t("Inaccessible/missing record ID: %s",id);return{text,onDelete:()=>{this.deleteTag(index);},onKeydown:this.onTagKeydown,};});}
deleteTag(index){this.props.update([...this.props.resIds.slice(0,index),...this.props.resIds.slice(index+1),]);}
update(resIds){this.props.update([...this.props.resIds,...resIds]);}}
return __exports;});;

/* /web/static/src/core/record_selectors/record_autocomplete.js */
odoo.define('@web/core/record_selectors/record_autocomplete',['@odoo/owl','@web/core/autocomplete/autocomplete','@web/core/l10n/translation','@web/core/domain','@web/core/registry','@web/core/utils/hooks'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");const{AutoComplete}=require("@web/core/autocomplete/autocomplete");const{_t}=require("@web/core/l10n/translation");const{Domain}=require("@web/core/domain");const{registry}=require("@web/core/registry");const{useOwnedDialogs,useService}=require("@web/core/utils/hooks");const SEARCH_LIMIT=7;const SEARCH_MORE_LIMIT=320;const RecordAutocomplete=__exports.RecordAutocomplete=class RecordAutocomplete extends Component{static props={resModel:String,update:Function,multiSelect:Boolean,getIds:Function,value:String,domain:{type:Array,optional:true},context:{type:Object,optional:true},className:{type:String,optional:true},fieldString:{type:String,optional:true},placeholder:{type:String,optional:true},};static components={AutoComplete};static template="web.RecordAutocomplete";setup(){this.orm=useService("orm");this.nameService=useService("name");this.addDialog=useOwnedDialogs();this.sources=[{placeholder:_t("Loading..."),options:this.loadOptionsSource.bind(this),},];}
addNames(options){const displayNames=Object.fromEntries(options);this.nameService.addDisplayNames(this.props.resModel,displayNames);}
getIds(){return this.props.getIds();}
async loadOptionsSource(name){if(this.lastProm){this.lastProm.abort(false);}
this.lastProm=this.search(name,SEARCH_LIMIT+1);const nameGets=(await this.lastProm).map(([id,label])=>([id,label?label.split("\n")[0]:_t("Unnamed")]));this.addNames(nameGets);const options=nameGets.map(([value,label])=>({value,label}));if(SEARCH_LIMIT<nameGets.length){options.push({label:_t("Search More..."),action:this.onSearchMore.bind(this,name),classList:"o_m2o_dropdown_option",});}
if(options.length===0){options.push({label:_t("(no result)"),unselectable:true});}
return options;}
async onSearchMore(name){const{fieldString,multiSelect,resModel}=this.props;let operator;const ids=[];if(name){const nameGets=await this.search(name,SEARCH_MORE_LIMIT);this.addNames(nameGets);operator="in";ids.push(...nameGets.map((nameGet)=>nameGet[0]));}else{operator="not in";ids.push(...this.getIds());}
const dynamicFilters=ids.length?[{description:_t("Quick search: %s",name),domain:[["id",operator,ids]],},]:undefined;const SelectCreateDialog=registry.category("dialogs").get("select_create");this.addDialog(SelectCreateDialog,{title:_t("Search: %s",fieldString),dynamicFilters,domain:this.getDomain(),resModel,noCreate:true,multiSelect,context:this.props.context||{},onSelected:(resId)=>{const resIds=Array.isArray(resId)?resId:[resId];this.props.update([...resIds]);},});}
getDomain(){const domainIds=Domain.not([["id","in",this.getIds()]]);if(this.props.domain){return Domain.and([this.props.domain,domainIds]).toList();}
return domainIds.toList();}
onSelect({value:resId,action},params){if(action){return action(params);}
this.props.update([resId]);}
search(name,limit){const domain=this.getDomain();return this.orm.call(this.props.resModel,"name_search",[],{name,args:domain,limit,context:this.props.context||{},});}
onChange({inputValue}){if(!inputValue.length){this.props.update([]);}}}
return __exports;});;

/* /web/static/src/core/record_selectors/record_selector.js */
odoo.define('@web/core/record_selectors/record_selector',['@odoo/owl','@web/core/utils/hooks','@web/core/record_selectors/record_autocomplete','@web/core/l10n/translation'],function(require){'use strict';let __exports={};const{Component,onWillStart,onWillUpdateProps}=require("@odoo/owl");const{useService}=require("@web/core/utils/hooks");const{RecordAutocomplete}=require("@web/core/record_selectors/record_autocomplete");const{_t}=require("@web/core/l10n/translation");const RecordSelector=__exports.RecordSelector=class RecordSelector extends Component{static props={resId:[Number,{value:false}],resModel:String,update:Function,domain:{type:Array,optional:true},context:{type:Object,optional:true},fieldString:{type:String,optional:true},placeholder:{type:String,optional:true},};static components={RecordAutocomplete};static template="web.RecordSelector";setup(){this.nameService=useService("name");onWillStart(()=>this.computeDerivedParams());onWillUpdateProps((nextProps)=>this.computeDerivedParams(nextProps));}
async computeDerivedParams(props=this.props){const displayNames=await this.getDisplayNames(props);this.displayName=this.getDisplayName(props,displayNames);}
async getDisplayNames(props){const ids=this.getIds(props);return this.nameService.loadDisplayNames(props.resModel,ids);}
getDisplayName(props=this.props,displayNames){const{resId}=props;if(resId===false){return"";}
return typeof displayNames[resId]==="string"?displayNames[resId]:_t("Inaccessible/missing record ID: %s",resId);}
getIds(props=this.props){if(props.resId){return[props.resId];}
return[];}
update(resIds){this.props.update(resIds[0]||false);this.render(true);}}
return __exports;});;

/* /web/static/src/core/record_selectors/tag_navigation_hook.js */
odoo.define('@web/core/record_selectors/tag_navigation_hook',['@web/core/hotkeys/hotkey_service','@odoo/owl'],function(require){'use strict';let __exports={};const{getActiveHotkey}=require("@web/core/hotkeys/hotkey_service");const{useEffect,useRef}=require("@odoo/owl");__exports.useTagNavigation=useTagNavigation;function useTagNavigation(refName,deleteTag){const ref=useRef(refName);useEffect((autocomplete)=>{if(!autocomplete){return;}
autocomplete.addEventListener("keydown",onAutoCompleteKeydown);return()=>{autocomplete.removeEventListener("keydown",onAutoCompleteKeydown);};},()=>[ref.el?.querySelector(".o-autocomplete")]);function focusTag(index){const tags=ref.el.getElementsByClassName("o_tag");if(tags.length){if(index===undefined){tags[tags.length-1].focus();}else{tags[index].focus();}}}
function onAutoCompleteKeydown(ev){if(ev.isComposing){return;}
const hotkey=getActiveHotkey(ev);const input=ev.target.closest(".o-autocomplete--input");const autoCompleteMenuOpened=!!ref.el.querySelector(".o-autocomplete--dropdown-menu");switch(hotkey){case"arrowleft":{if(input.selectionStart||autoCompleteMenuOpened){return;}
focusTag();break;}
case"arrowright":{if(input.selectionStart!==input.value.length||autoCompleteMenuOpened){return;}
focusTag(0);break;}
case"backspace":{if(input.value){return;}
const tags=ref.el.getElementsByClassName("o_tag");if(tags.length){deleteTag(tags.length-1);}
break;}
default:return;}
ev.preventDefault();ev.stopPropagation();}
function onTagKeydown(ev){const hotkey=getActiveHotkey(ev);const tags=[...ref.el.getElementsByClassName("o_tag")];const closestTag=ev.target.closest(".o_tag");const tagIndex=tags.indexOf(closestTag);const input=ref.el.querySelector(".o-autocomplete--input");switch(hotkey){case"arrowleft":{if(tagIndex===0){input.focus();}else{focusTag(tagIndex-1);}
break;}
case"arrowright":{if(tagIndex===tags.length-1){input.focus();}else{focusTag(tagIndex+1);}
break;}
case"backspace":{input.focus();deleteTag(tagIndex);break;}
default:return;}
ev.preventDefault();ev.stopPropagation();}
return onTagKeydown;}
return __exports;});;

/* /web/static/src/core/registry.js */
odoo.define('@web/core/registry',['@odoo/owl'],function(require){'use strict';let __exports={};const{EventBus}=require("@odoo/owl");const KeyNotFoundError=__exports.KeyNotFoundError=class KeyNotFoundError extends Error{}
const DuplicatedKeyError=__exports.DuplicatedKeyError=class DuplicatedKeyError extends Error{}
const Registry=__exports.Registry=class Registry extends EventBus{constructor(){super();this.content={};this.subRegistries={};this.elements=null;this.entries=null;this.addEventListener("UPDATE",()=>{this.elements=null;this.entries=null;});}
add(key,value,{force,sequence}={}){if(!force&&key in this.content){throw new DuplicatedKeyError(`Cannot add '${key}' in this registry: it already exists`);}
let previousSequence;if(force){const elem=this.content[key];previousSequence=elem&&elem[0];}
sequence=sequence===undefined?previousSequence||50:sequence;this.content[key]=[sequence,value];const payload={operation:"add",key,value};this.trigger("UPDATE",payload);return this;}
get(key,defaultValue){if(arguments.length<2&&!(key in this.content)){throw new KeyNotFoundError(`Cannot find ${key} in this registry!`);}
const info=this.content[key];return info?info[1]:defaultValue;}
contains(key){return key in this.content;}
getAll(){if(!this.elements){const content=Object.values(this.content).sort((el1,el2)=>el1[0]-el2[0]);this.elements=content.map((elem)=>elem[1]);}
return this.elements.slice();}
getEntries(){if(!this.entries){const entries=Object.entries(this.content).sort((el1,el2)=>el1[1][0]-el2[1][0]);this.entries=entries.map(([str,elem])=>[str,elem[1]]);}
return this.entries.slice();}
remove(key){const value=this.content[key];delete this.content[key];const payload={operation:"delete",key,value};this.trigger("UPDATE",payload);}
category(subcategory){if(!(subcategory in this.subRegistries)){this.subRegistries[subcategory]=new Registry();}
return this.subRegistries[subcategory];}}
const registry=__exports.registry=new Registry();return __exports;});;

/* /web/static/src/core/resizable_panel/resizable_panel.js */
odoo.define('@web/core/resizable_panel/resizable_panel',['@odoo/owl'],function(require){'use strict';let __exports={};const{Component,onMounted,onWillUpdateProps,onWillUnmount,useEffect,useExternalListener,useRef,useComponent,}=require("@odoo/owl");function useResizable({containerRef,handleRef,initialWidth=400,getMinWidth=()=>400,onResize=()=>{},getResizeSide=()=>"end",}){containerRef=typeof containerRef=="string"?useRef(containerRef):containerRef;handleRef=typeof handleRef=="string"?useRef(handleRef):handleRef;const props=useComponent().props;let minWidth=getMinWidth(props);let resizeSide=getResizeSide(props);let isChangingSize=false;useExternalListener(document,"mouseup",()=>onMouseUp());useExternalListener(document,"mousemove",(ev)=>onMouseMove(ev));useExternalListener(window,"resize",()=>{const limit=getLimitWidth();if(getContainerRect().width>=limit){resize(computeFinalWidth(limit));}});let docDirection;useEffect((container)=>{if(container){docDirection=getComputedStyle(container).direction;}},()=>[containerRef.el]);onMounted(()=>{if(handleRef.el){resize(initialWidth);handleRef.el.addEventListener("mousedown",onMouseDown);}});onWillUpdateProps((nextProps)=>{minWidth=getMinWidth(nextProps);resizeSide=getResizeSide(nextProps);});onWillUnmount(()=>{if(handleRef.el){handleRef.el.removeEventListener("mousedown",onMouseDown);}});function onMouseDown(){isChangingSize=true;document.body.classList.add("pe-none","user-select-none");}
function onMouseUp(){isChangingSize=false;document.body.classList.remove("pe-none","user-select-none");}
function onMouseMove(ev){if(!isChangingSize||!containerRef.el){return;}
const direction=(docDirection==="ltr"&&resizeSide==="end")||(docDirection==="rtl"&&resizeSide==="start")?1:-1;const fixedSide=direction===1?"left":"right";const containerRect=getContainerRect();const newWidth=(ev.clientX-containerRect[fixedSide])*direction;resize(computeFinalWidth(newWidth));}
function computeFinalWidth(targetContainerWidth){const handlerSpacing=handleRef.el?handleRef.el.offsetWidth/2:10;const w=Math.max(minWidth,targetContainerWidth+handlerSpacing);const limit=getLimitWidth();return Math.min(w,limit-handlerSpacing);}
function getContainerRect(){const container=containerRef.el;const offsetParent=container.offsetParent;let containerRect={};if(!offsetParent){containerRect=container.getBoundingClientRect();}else{containerRect.left=container.offsetLeft;containerRect.right=container.offsetLeft+container.offsetWidth;containerRect.width=container.offsetWidth;}
return containerRect;}
function getLimitWidth(){const offsetParent=containerRef.el.offsetParent;return offsetParent?offsetParent.offsetWidth:window.innerWidth;}
function resize(width){containerRef.el.style.setProperty("width",`${width}px`);onResize(width);}}
const ResizablePanel=__exports.ResizablePanel=class ResizablePanel extends Component{static template="web_studio.ResizablePanel";static components={};static props={onResize:{type:Function,optional:true},initialWidth:{type:Number,optional:true},minWidth:{type:Number,optional:true},class:{type:String,optional:true},slots:{type:Object},handleSide:{validate:(val)=>["start","end"].includes(val),optional:true,},};static defaultProps={onResize:()=>{},width:400,minWidth:400,class:"",handleSide:"end",};setup(){useResizable({containerRef:"containerRef",handleRef:"handleRef",onResize:this.props.onResize,initialWidth:this.props.initialWidth,getMinWidth:(props)=>props.minWidth,getResizeSide:(props)=>props.handleSide,});}
get class(){const classes=this.props.class.split(" ");if(!classes.some((cls)=>cls.startsWith("position-"))){classes.push("position-relative");}
return classes.join(" ");}}
return __exports;});;

/* /web/static/src/core/scroller_service.js */
odoo.define('@web/core/scroller_service',['@web/core/browser/browser','@web/core/registry','@web/core/utils/scrolling'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{registry}=require("@web/core/registry");const{scrollTo}=require("@web/core/utils/scrolling");const scrollerService=__exports.scrollerService={start(env){browser.addEventListener("click",(ev)=>{const link=ev.target.closest("a");if(!link){return;}
const disableAnchor=link.attributes.getNamedItem("disable_anchor");if(disableAnchor&&disableAnchor.value==="true"){return;}
const href=link.attributes.getNamedItem("href");if(href){if(href.value[0]==="#"){if(href.value.length===1){ev.preventDefault();return;}
let matchingEl=null;try{matchingEl=document.querySelector(`.o_content #${href.value.substr(1)}`);}catch{}
const triggerEv=new CustomEvent("anchor-link-clicked",{detail:{element:matchingEl,id:href.value,originalEv:ev,},});env.bus.trigger("SCROLLER:ANCHOR_LINK_CLICKED",triggerEv);if(matchingEl&&!triggerEv.defaultPrevented){ev.preventDefault();scrollTo(matchingEl,{isAnchor:true});}}}});},};registry.category("services").add("scroller",scrollerService);return __exports;});;

/* /web/static/src/core/select_menu/select_menu.js */
odoo.define('@web/core/select_menu/select_menu',['@odoo/owl','@web/core/dropdown/dropdown','@web/core/dropdown/dropdown_item','@web/core/l10n/translation','@web/core/utils/timing','@web/core/utils/scrolling','@web/core/utils/search','@web/core/tags_list/tags_list','@web/core/utils/hooks'],function(require){'use strict';let __exports={};const{Component,useState,useRef,onWillUpdateProps,useEffect}=require("@odoo/owl");const{Dropdown}=require("@web/core/dropdown/dropdown");const{DropdownItem}=require("@web/core/dropdown/dropdown_item");const{_t}=require("@web/core/l10n/translation");const{useDebounced}=require("@web/core/utils/timing");const{scrollTo}=require("@web/core/utils/scrolling");const{fuzzyLookup}=require("@web/core/utils/search");const{TagsList}=require("@web/core/tags_list/tags_list");const{useAutofocus}=require("@web/core/utils/hooks");const SelectMenu=__exports.SelectMenu=class SelectMenu extends Component{static template="web.SelectMenu";static choiceItemTemplate="web.SelectMenu.ChoiceItem";static components={Dropdown,DropdownItem,TagsList};static defaultProps={value:undefined,class:"",togglerClass:"",multiSelect:false,onSelect:()=>{},required:false,searchable:true,autoSort:true,searchPlaceholder:_t("Search..."),choices:[],groups:[],};static props={choices:{optional:true,type:Array,element:{type:Object,shape:{value:true,label:{type:String},},},},groups:{type:Array,optional:true,element:{type:Object,shape:{label:{type:String,optional:true},choices:{type:Array,element:{type:Object,shape:{value:true,label:{type:String},},},},},},},class:{type:String,optional:true},togglerClass:{type:String,optional:true},required:{type:Boolean,optional:true},searchable:{type:Boolean,optional:true},autoSort:{type:Boolean,optional:true},searchPlaceholder:{type:String,optional:true},value:{optional:true},multiSelect:{type:Boolean,optional:true},onInput:{type:Function,optional:true},onSelect:{type:Function,optional:true},slots:{type:Object,optional:true},};static SCROLL_SETTINGS={defaultCount:500,increaseAmount:300,distanceBeforeReload:500,};setup(){this.state=useState({choices:[],displayedOptions:[],searchValue:"",});this.inputRef=useRef("inputRef");this.debouncedOnInput=useDebounced(()=>this.onInput(this.inputRef.el?this.inputRef.el.value.trim():""),250);this.isOpen=false;this.selectedChoice=this.getSelectedChoice(this.props);onWillUpdateProps((nextProps)=>{if(this.props.value!==nextProps.value){this.selectedChoice=this.getSelectedChoice(nextProps);}});useEffect(()=>{if(this.isOpen){const groups=[{choices:this.props.choices},...this.props.groups];this.filterOptions(this.state.searchValue,groups);}},()=>[this.props.choices,this.props.groups]);useAutofocus({refName:"inputRef"});}
get displayValue(){return this.selectedChoice?this.selectedChoice.label:"";}
get canDeselect(){return!this.props.required&&this.selectedChoice!==undefined;}
get multiSelectChoices(){const choices=[...this.props.choices,...this.props.groups.flatMap((g)=>g.choices),].filter((c)=>this.props.value.includes(c.value));return choices.map((c)=>{return{id:c.value,text:c.label,onDelete:()=>{const values=[...this.props.value];values.splice(values.indexOf(c.value),1);this.props.onSelect(values);},};});}
async onBeforeOpen(){if(this.state.searchValue.length){this.state.searchValue="";if(this.props.onInput){await this.executeOnInput("");}}
this.filterOptions();}
onStateChanged({open}){this.isOpen=open;if(open){const selectedElement=document.querySelector(".o_select_active");if(selectedElement){scrollTo(selectedElement);}}}
isOptionSelected(choice){if(this.props.multiSelect){return this.props.value.includes(choice.value);}
return this.props.value===choice.value;}
getItemClass(choice){if(this.isOptionSelected(choice)){return"o_select_menu_item mb-1 o_select_active bg-primary fw-bolder fst-italic";}else{return"o_select_menu_item mb-1";}}
async executeOnInput(searchString){await this.props.onInput(searchString);}
onInput(searchString){this.filterOptions(searchString);this.state.searchValue=searchString;const inputEl=this.inputRef.el;if(inputEl&&inputEl.parentNode){inputEl.parentNode.scrollTo(0,0);}
if(this.props.onInput){this.executeOnInput(searchString);}}
onSearchKeydown(ev){if(ev.key==="ArrowDown"||ev.key==="Enter"){const target=ev.target.parentElement.querySelector(".o_select_menu_item");ev.target.classList.remove("focus");target?.classList.add("focus");target?.focus();ev.preventDefault();}
if(ev.key==="Enter"&&this.state.choices.length===1){ev.target.parentElement.querySelector(".o_select_menu_item").click();}}
getSelectedChoice(props){const choices=[...props.choices,...props.groups.flatMap((g)=>g.choices)];return choices.find((c)=>c.value===props.value);}
onItemSelected(value){if(this.props.multiSelect){const values=[...this.props.value];const valueIndex=values.indexOf(value);if(valueIndex!==-1){values.splice(valueIndex,1);this.props.onSelect(values);}else{this.props.onSelect([...this.props.value,value]);}}else if(!this.selectedChoice||this.selectedChoice.value!==value){this.props.onSelect(value);}}
filterOptions(searchString="",groups){const groupsList=groups||[{choices:this.props.choices},...this.props.groups];this.state.choices=[];for(const group of groupsList){let filteredOptions=[];if(searchString){filteredOptions=fuzzyLookup(searchString,group.choices,(choice)=>choice.label);}else{filteredOptions=group.choices;if(this.props.autoSort){filteredOptions.sort((optionA,optionB)=>optionA.label.localeCompare(optionB.label));}}
if(filteredOptions.length===0){continue;}
if(group.label){this.state.choices.push({...group,isGroup:true});}
this.state.choices.push(...filteredOptions);}
this.sliceDisplayedOptions();}
getGroupsIndex(choices){if(choices.length===0){return[];}
return choices.flatMap((choice,index)=>(index===0?0:choice.isGroup?index:[]));}
onScroll(event){const el=event.target;const hasReachMax=this.state.displayedOptions.length>=this.state.choices.length;const remainingDistance=el.scrollHeight-el.scrollTop;const distanceToReload=el.clientHeight+this.constructor.SCROLL_SETTINGS.distanceBeforeReload;if(!hasReachMax&&remainingDistance<distanceToReload){const displayCount=this.state.displayedOptions.length+
this.constructor.SCROLL_SETTINGS.increaseAmount;this.state.displayedOptions=this.state.choices.slice(0,displayCount);}}
sliceDisplayedOptions(){const selectedIndex=this.getSelectedOptionIndex();const defaultCount=this.constructor.SCROLL_SETTINGS.defaultCount;if(selectedIndex===-1){this.state.displayedOptions=this.state.choices.slice(0,defaultCount);}else{const endIndex=Math.max(selectedIndex+this.constructor.SCROLL_SETTINGS.increaseAmount,defaultCount);this.state.displayedOptions=this.state.choices.slice(0,endIndex);}}
getSelectedOptionIndex(){let selectedIndex=-1;for(let i=0;i<this.state.choices.length;i++){if(this.isOptionSelected(this.state.choices[i])){selectedIndex=i;}}
return selectedIndex;}}
return __exports;});;

/* /web/static/src/core/signature/name_and_signature.js */
odoo.define('@web/core/signature/name_and_signature',['@web/core/assets','@web/core/browser/feature_detection','@web/core/dropdown/dropdown','@web/core/dropdown/dropdown_item','@web/core/utils/hooks','@web/core/utils/objects','@web/core/utils/render','@web/core/utils/timing','@web/core/utils/urls','@odoo/owl'],function(require){'use strict';let __exports={};const{loadJS}=require("@web/core/assets");const{isMobileOS}=require("@web/core/browser/feature_detection");const{Dropdown}=require("@web/core/dropdown/dropdown");const{DropdownItem}=require("@web/core/dropdown/dropdown_item");const{useService,useAutofocus}=require("@web/core/utils/hooks");const{pick}=require("@web/core/utils/objects");const{renderToString}=require("@web/core/utils/render");const{debounce}=require("@web/core/utils/timing");const{getDataURLFromFile}=require("@web/core/utils/urls");const{Component,useState,onWillStart,useRef,useEffect,useExternalListener,status,}=require("@odoo/owl");let htmlId=0;const NameAndSignature=__exports.NameAndSignature=class NameAndSignature extends Component{setup(){this.rpc=useService("rpc");this.htmlId=htmlId++;this.defaultName=this.props.signature.name||"";this.currentFont=0;this.drawTimeout=null;this.state=useState({signMode:this.props.mode||(this.props.noInputName&&!this.defaultName?"draw":"auto"),showSignatureArea:!!(this.props.noInputName||this.defaultName),showFontList:false,});this.signNameInputRef=useRef("signNameInput");this.signInputLoad=useRef("signInputLoad");useAutofocus({refName:"signNameInput"});useEffect((el)=>{if(el){el.click();}},()=>[this.signInputLoad.el]);onWillStart(async()=>{this.fonts=await this.rpc(`/web/sign/get_fonts/${this.props.defaultFont}`);});onWillStart(async()=>{await loadJS("/web/static/lib/jSignature/jSignatureCustom.js");await loadJS("/web/static/src/libs/jSignatureCustom.js");});this.signatureRef=useRef("signature");useEffect((el)=>{if(el){this.$signatureField=$(".o_web_sign_signature");this.$signatureField.on("change",()=>{this.props.signature.isSignatureEmpty=this.isSignatureEmpty;this.props.onSignatureChange(this.state.signMode);});this.jSignature();this.resetSignature();this.props.signature.getSignatureImage=()=>this.jSignature("getData","image");this.props.signature.resetSignature=()=>this.resetSignature();if(this.state.signMode==="auto"){this.drawCurrentName();}}},()=>[this.signatureRef.el]);useExternalListener(window,"resize",debounce(this.onResize,250));}
drawCurrentName(){const font=this.fonts[this.currentFont];const text=this.getCleanedName();const canvas=this.signatureRef.el.querySelector("canvas");const img=this.getSVGText(font,text,canvas.width,canvas.height);this.printImage(img);}
focusName(){if(!isMobileOS()&&this.signNameInputRef.el){this.signNameInputRef.el.focus();}}
getCleanedName(){const text=this.props.signature.name;if(this.props.signatureType==="initial"&&text){return(text.split(" ").map(function(w){return w[0];}).join(".")+".");}
return text;}
getSVGText(font,text,width,height){const svg=renderToString("web.sign_svg_text",{width:width,height:height,font:font,text:text,type:this.props.signatureType,color:this.props.fontColor,});return"data:image/svg+xml,"+encodeURI(svg);}
getSVGTextFont(font){const height=100;const width=parseInt(height*this.props.displaySignatureRatio);return this.getSVGText(font,this.getCleanedName(),width,height);}
jSignature(){return this.$signatureField.jSignature(...arguments);}
uploadFile(){this.signInputLoad.el?.click();}
async onChangeSignLoadInput(ev){var file=ev.target.files[0];if(file===undefined){return false;}
if(file.type.substr(0,5)!=="image"){this.jSignature("reset");this.state.loadIsInvalid=true;return false;}
this.state.loadIsInvalid=false;const result=await getDataURLFromFile(file);this.printImage(result);}
onClickSignAutoSelectStyle(){this.state.showFontList=true;}
onClickSignDrawClear(){this.jSignature("reset");}
onClickSignLoad(){this.setMode("load");}
onClickSignAuto(){this.setMode("auto");}
onInputSignName(ev){this.props.signature.name=ev.target.value;if(!this.state.showSignatureArea&&this.getCleanedName()){this.state.showSignatureArea=true;return;}
if(this.state.signMode==="auto"){this.drawCurrentName();}}
onSelectFont(index){this.currentFont=index;this.drawCurrentName();}
onResize(){if(status(this)!=="destroyed"){this.resizeSignature();}}
printImage(imgSrc){const image=new Image();image.onload=()=>{clearTimeout(this.drawTimeout);this.drawTimeout=setTimeout(()=>{let width=0;let height=0;const ratio=image.width/image.height;const signatureEl=this.signatureRef.el;if(!signatureEl){return;}
const canvas=signatureEl.querySelector("canvas");const context=canvas.getContext("2d");if(image.width/canvas.width>image.height/canvas.height){width=canvas.width;height=parseInt(width/ratio);}else{height=canvas.height;width=parseInt(height*ratio);}
this.jSignature("reset");const ignoredContext=pick(context,"shadowOffsetX","shadowOffsetY");Object.assign(context,{shadowOffsetX:0,shadowOffsetY:0});context.drawImage(image,0,0,image.width,image.height,(canvas.width-width)/2,(canvas.height-height)/2,width,height);Object.assign(context,ignoredContext);this.props.signature.isSignatureEmpty=this.isSignatureEmpty;this.props.onSignatureChange(this.state.signMode);return this.isSignatureEmpty;},0);};image.src=imgSrc;}
resetSignature(){const{width,height}=this.resizeSignature();this.$signatureField.empty().jSignature({"decor-color":"#D1D0CE","background-color":"rgba(255,255,255,0)","show-stroke":false,color:this.props.fontColor,lineWidth:2,width:width,height:height,});this.emptySignature=this.jSignature("getData");this.setMode(this.state.signMode,true);this.focusName();}
resizeSignature(){if(!this.signatureRef.el){return;}
this.signatureRef.el.style.width="unset";const width=this.signatureRef.el.clientWidth;const height=parseInt(width/this.props.displaySignatureRatio);this.state.signature={width,height,};Object.assign(this.signatureRef.el.querySelector("canvas").style,{width,height});return{width,height};}
async setMode(mode,reset){if(reset!==true&&mode===this.signMode){return;}
this.state.signMode=mode;this.jSignature(this.state.signMode==="draw"?"enable":"disable");this.jSignature("reset");if(this.state.signMode==="auto"){this.drawCurrentName();}}
get isSignatureEmpty(){const signature=this.jSignature("getData");return signature&&this.emptySignature?this.emptySignature===signature:true;}
get loadIsInvalid(){return this.state.signMode==="load"&&this.state.loadIsInvalid;}
get signatureStyle(){const{signature}=this.state;return signature?`width: ${signature.width}px; height: ${signature.height}px`:"";}}
NameAndSignature.template="web.NameAndSignature";NameAndSignature.components={Dropdown,DropdownItem};NameAndSignature.props={signature:{type:Object},defaultFont:{type:String,optional:true},displaySignatureRatio:{type:Number,optional:true},fontColor:{type:String,optional:true},signatureType:{type:String,optional:true},noInputName:{type:Boolean,optional:true},mode:{type:String,optional:true},onSignatureChange:{type:Function,optional:true},};NameAndSignature.defaultProps={defaultFont:"",displaySignatureRatio:3.0,fontColor:"DarkBlue",signatureType:"signature",noInputName:false,onSignatureChange:()=>{},};return __exports;});;

/* /web/static/src/core/signature/signature_dialog.js */
odoo.define('@web/core/signature/signature_dialog',['@web/core/l10n/translation','@web/core/dialog/dialog','@web/core/signature/name_and_signature','@odoo/owl'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{Dialog}=require("@web/core/dialog/dialog");const{NameAndSignature}=require("@web/core/signature/name_and_signature");const{Component,useState}=require("@odoo/owl");const SignatureDialog=__exports.SignatureDialog=class SignatureDialog extends Component{setup(){this.title=_t("Adopt Your Signature");this.signature=useState({name:this.props.defaultName,isSignatureEmpty:true,});}
onClickConfirm(){this.props.uploadSignature({name:this.signature.name,signatureImage:this.signature.getSignatureImage(),});this.props.close();}
get nameAndSignatureProps(){return{...this.props.nameAndSignatureProps,signature:this.signature,};}}
SignatureDialog.template="web.SignatureDialog";SignatureDialog.components={Dialog,NameAndSignature};SignatureDialog.defaultProps={defaultName:"",};return __exports;});;

/* /web/static/src/core/tags_list/tags_list.js */
odoo.define('@web/core/tags_list/tags_list',['@odoo/owl'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");const TagsList=__exports.TagsList=class TagsList extends Component{static template="web.TagsList";static defaultProps={displayText:true,};static props={displayText:{type:Boolean,optional:true},itemsVisible:{type:Number,optional:true},tags:{type:Object},};get visibleTagsCount(){return this.props.itemsVisible-1;}
get visibleTags(){if(this.props.itemsVisible&&this.props.tags.length>this.props.itemsVisible){return this.props.tags.slice(0,this.visibleTagsCount);}
return this.props.tags;}
get otherTags(){if(!this.props.itemsVisible||this.props.tags.length<=this.props.itemsVisible){return[];}
return this.props.tags.slice(this.visibleTagsCount);}
get tooltipInfo(){return JSON.stringify({tags:this.otherTags.map((tag)=>({text:tag.text,id:tag.id,})),});}}
return __exports;});;

/* /web/static/src/core/tooltip/tooltip.js */
odoo.define('@web/core/tooltip/tooltip',['@odoo/owl'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");const Tooltip=__exports.Tooltip=class Tooltip extends Component{}
Tooltip.template="web.Tooltip";Tooltip.props={close:Function,tooltip:{type:String,optional:true},template:{type:String,optional:true},info:{optional:true},};return __exports;});;

/* /web/static/src/core/tooltip/tooltip_hook.js */
odoo.define('@web/core/tooltip/tooltip_hook',['@web/core/utils/hooks','@odoo/owl'],function(require){'use strict';let __exports={};const{useService}=require("@web/core/utils/hooks");const{useEffect,useRef}=require("@odoo/owl");__exports.useTooltip=useTooltip;function useTooltip(refName,params){const tooltip=useService("tooltip");const ref=useRef(refName);useEffect((el)=>tooltip.add(el,params),()=>[ref.el]);}
return __exports;});;

/* /web/static/src/core/tooltip/tooltip_service.js */
odoo.define('@web/core/tooltip/tooltip_service',['@web/core/browser/browser','@web/core/registry','@web/core/tooltip/tooltip','@web/core/browser/feature_detection','@odoo/owl'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{registry}=require("@web/core/registry");const{Tooltip}=require("@web/core/tooltip/tooltip");const{hasTouch}=require("@web/core/browser/feature_detection");const{whenReady}=require("@odoo/owl");const OPEN_DELAY=400;const CLOSE_DELAY=200;const tooltipService=__exports.tooltipService={dependencies:["popover"],start(env,{popover}){let openTooltipTimeout;let closeTooltip;let target=null;let touchPressed;let mouseEntered;const elementsWithTooltips=new WeakMap();function cleanup(){target=null;browser.clearTimeout(openTooltipTimeout);openTooltipTimeout=null;if(closeTooltip){closeTooltip();closeTooltip=null;}}
function shouldCleanup(){if(!target){return false;}
if(!document.body.contains(target)){return true;}
if(hasTouch()&&!mouseEntered){return!touchPressed;}
return false;}
function openTooltip(el,{tooltip="",template,info,position,delay=OPEN_DELAY}){cleanup();if(!tooltip&&!template){return;}
target=el;openTooltipTimeout=browser.setTimeout(()=>{if(target.isConnected){closeTooltip=popover.add(target,Tooltip,{tooltip,template,info},{position});target.title="";}},delay);}
function openElementsTooltip(el){if(el.nodeType===Node.TEXT_NODE){return;}
if(elementsWithTooltips.has(el)){openTooltip(el,elementsWithTooltips.get(el));}else if(el.matches("[data-tooltip], [data-tooltip-template]")){const dataset=el.dataset;const params={tooltip:dataset.tooltip,template:dataset.tooltipTemplate,position:dataset.tooltipPosition,};if(dataset.tooltipInfo){params.info=JSON.parse(dataset.tooltipInfo);}
if(dataset.tooltipDelay){params.delay=parseInt(dataset.tooltipDelay,10);}
openTooltip(el,params);}}
function onMouseenter(ev){mouseEntered=true;openElementsTooltip(ev.target);}
function onMouseleave(ev){if(target===ev.target){mouseEntered=false;cleanup();}}
function onTouchStart(ev){touchPressed=true;openElementsTooltip(ev.target);}
whenReady(()=>{browser.setInterval(()=>{if(shouldCleanup()){cleanup();}},CLOSE_DELAY);if(hasTouch()){document.body.addEventListener("touchstart",onTouchStart);document.body.addEventListener("touchend",(ev)=>{if(ev.target.matches("[data-tooltip], [data-tooltip-template]")){if(!ev.target.dataset.tooltipTouchTapToShow){touchPressed=false;}}});document.body.addEventListener("touchcancel",(ev)=>{if(ev.target.matches("[data-tooltip], [data-tooltip-template]")){if(!ev.target.dataset.tooltipTouchTapToShow){touchPressed=false;}}});}
document.body.addEventListener("mouseenter",onMouseenter,{capture:true});document.body.addEventListener("mouseleave",onMouseleave,{capture:true});});return{add(el,params){elementsWithTooltips.set(el,params);return()=>{elementsWithTooltips.delete(el);if(target===el){cleanup();}};},};},};registry.category("services").add("tooltip",tooltipService);return __exports;});;

/* /web/static/src/core/transition.js */
odoo.define('@web/core/transition',['@web/core/browser/browser','@odoo/owl'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{Component,useState,useEffect,xml,onWillUpdateProps,useComponent}=require("@odoo/owl");const config=__exports.config={disabled:false,};__exports.useTransition=useTransition;function useTransition({name,initialVisibility=true,leaveDuration=500,onLeave=()=>{},}){const component=useComponent();const state=useState({shouldMount:initialVisibility,stage:initialVisibility?"enter":"leave",});if(config.disabled){return{get shouldMount(){return state.shouldMount;},set shouldMount(val){state.shouldMount=val;},get className(){return`${name} ${name}-enter-active`;},get stage(){return"enter-active";},};}
let onNextPatch=null;useEffect(()=>{if(onNextPatch){onNextPatch();onNextPatch=null;}});let prevState,timer;const transition={get shouldMount(){return state.shouldMount;},set shouldMount(newState){if(newState===prevState){return;}
browser.clearTimeout(timer);prevState=newState;if(newState){state.stage="enter";state.shouldMount=true;component.render();onNextPatch=()=>{state.stage="enter-active";};}else{state.stage="leave";timer=browser.setTimeout(()=>{state.shouldMount=false;onLeave();},leaveDuration);}},get className(){return`${name} ${name}-${state.stage}`;},get stage(){return state.stage;},};transition.shouldMount=initialVisibility;return transition;}
const Transition=__exports.Transition=class Transition extends Component{setup(){const{visible,leaveDuration,name,onLeave}=this.props;this.transition=useTransition({initialVisibility:visible,leaveDuration,name,onLeave,});onWillUpdateProps(({visible=true})=>{this.transition.shouldMount=visible;});}}
Transition.template=xml`<t t-slot="default" t-if="transition.shouldMount" className="transition.className"/>`;Transition.props={name:String,visible:{type:Boolean,optional:true},leaveDuration:{type:Number,optional:true},onLeave:{type:Function,optional:true},slots:Object,};return __exports;});;

/* /web/static/src/core/tree_editor/condition_tree.js */
odoo.define('@web/core/tree_editor/condition_tree',['@web/core/domain','@web/core/py_js/py','@web/core/py_js/py_utils'],function(require){'use strict';let __exports={};const{Domain}=require("@web/core/domain");const{formatAST,parseExpr}=require("@web/core/py_js/py");const{toPyValue}=require("@web/core/py_js/py_utils");const TERM_OPERATORS_NEGATION=__exports.TERM_OPERATORS_NEGATION={"<":">=",">":"<=","<=":">",">=":"<","=":"!=","!=":"=",in:"not in",like:"not like",ilike:"not ilike","not in":"in","not like":"like","not ilike":"ilike",};const TERM_OPERATORS_NEGATION_EXTENDED={...TERM_OPERATORS_NEGATION,is:"is not","is not":"is","==":"!=","!=":"==",};const EXCHANGE={"<":">","<=":">=",">":"<",">=":"<=","=":"=","!=":"!=",};const COMPARATORS=["<","<=",">",">=","in","not in","==","is","!=","is not"];const Expression=__exports.Expression=class Expression{constructor(ast){if(typeof ast==="string"){ast=parseExpr(ast);}
this._ast=ast;this._expr=formatAST(ast);}
toAST(){return this._ast;}
toString(){return this._expr;}}
__exports.expression=expression;function expression(expr){return new Expression(expr);}
__exports.connector=connector;function connector(value,children=[],negate=false){return{type:"connector",value,children,negate};}
__exports.condition=condition;function condition(path,operator,value,negate=false){return{type:"condition",path,operator,value,negate};}
__exports.complexCondition=complexCondition;function complexCondition(value){parseExpr(value);return{type:"complex_condition",value};}
function cloneValue(value){if(value instanceof Expression){return new Expression(value.toAST());}
if(Array.isArray(value)){return value.map(cloneValue);}
return value;}
__exports.cloneTree=cloneTree;function cloneTree(tree){const clone={};for(const key in tree){clone[key]=cloneValue(tree[key]);}
return clone;}
__exports.formatValue=formatValue;function formatValue(value){return formatAST(toAST(value));}
__exports.normalizeValue=normalizeValue;function normalizeValue(value){return toValue(toAST(value));}
__exports.toValue=toValue;function toValue(ast,isWithinArray=false){if([4,10].includes(ast.type)&&!isWithinArray){return ast.value.map((v)=>toValue(v,true));}else if([0,1,2].includes(ast.type)){return ast.value;}else if(ast.type===6&&ast.op==="-"&&ast.right.type===0){return-ast.right.value;}else if(ast.type===5&&["false","true"].includes(ast.value)){return JSON.parse(ast.value);}else{return new Expression(ast);}}
function toAST(value){if(value instanceof Expression){return value.toAST();}
if(Array.isArray(value)){return{type:4,value:value.map(toAST)};}
return toPyValue(value);}
function addChild(parent,child){if(child.type==="connector"&&!child.negate&&child.value===parent.value){parent.children.push(...child.children);}else{parent.children.push(child);}}
function getNormalizedCondition(condition){let{operator,negate}=condition;if(negate&&typeof operator==="string"&&TERM_OPERATORS_NEGATION[operator]){operator=TERM_OPERATORS_NEGATION[operator];negate=false;}
return{...condition,operator,negate};}
function normalizeCondition(condition){Object.assign(condition,getNormalizedCondition(condition));}
function _construcTree(ASTs,distributeNot,negate=false){const[firstAST,...tailASTs]=ASTs;if(firstAST.type===1&&firstAST.value==="!"){return _construcTree(tailASTs,distributeNot,!negate);}
const tree={type:firstAST.type===1?"connector":"condition"};if(tree.type==="connector"){tree.value=firstAST.value;if(distributeNot&&negate){tree.value=tree.value==="&"?"|":"&";tree.negate=false;}else{tree.negate=negate;}
tree.children=[];}else{const[pathAST,operatorAST,valueAST]=firstAST.value;tree.path=toValue(pathAST);tree.negate=negate;tree.operator=toValue(operatorAST);tree.value=toValue(valueAST);normalizeCondition(tree);}
let remaimingASTs=tailASTs;if(tree.type==="connector"){for(let i=0;i<2;i++){const{tree:child,remaimingASTs:otherASTs}=_construcTree(remaimingASTs,distributeNot,distributeNot&&negate);remaimingASTs=otherASTs;addChild(tree,child);}}
return{tree,remaimingASTs};}
function construcTree(initialASTs,options){if(!initialASTs.length){return connector("&");}
const{tree}=_construcTree(initialASTs,options.distributeNot);return tree;}
function getASTs(tree){const ASTs=[];if(tree.type==="condition"){if(tree.negate){ASTs.push(toAST("!"));}
ASTs.push({type:10,value:[tree.path,tree.operator,tree.value].map(toAST),});return ASTs;}
const length=tree.children.length;if(length&&tree.negate){ASTs.push(toAST("!"));}
for(let i=0;i<length-1;i++){ASTs.push(toAST(tree.value));}
for(const child of tree.children){ASTs.push(...getASTs(child));}
return ASTs;}
function not(ast){if(isNot(ast)){return ast.right;}
if(ast.type===2){return{...ast,value:!ast.value};}
if(ast.type===7&&COMPARATORS.includes(ast.op)){return{...ast,op:TERM_OPERATORS_NEGATION_EXTENDED[ast.op]};}
return{type:6,op:"not",right:isBool(ast)?ast.args[0]:ast};}
function bool(ast){if(isBool(ast)||isNot(ast)||ast.type===2){return ast;}
return{type:8,fn:{type:5,value:"bool"},args:[ast],kwargs:{}};}
function name(value){return{type:5,value};}
function or(left,right){return{type:14,op:"or",left,right};}
function and(left,right){return{type:14,op:"and",left,right};}
function isNot(ast){return ast.type===6&&ast.op==="not";}
function is(oneParamFunc,ast){return(ast.type===8&&ast.fn.type===5&&ast.fn.value===oneParamFunc&&ast.args.length===1);}
function isSet(ast){return ast.type===8&&ast.fn.type===5&&ast.fn.value==="set"&&ast.args.length<=1;}
function isBool(ast){return is("bool",ast);}
function isValidPath(ast,options){const getFieldDef=options.getFieldDef||(()=>null);if(ast.type===5){return getFieldDef(ast.value)!==null;}
return false;}
function isX2Many(ast,options){if(isValidPath(ast,options)){const fieldDef=options.getFieldDef(ast.value);return["many2many","one2many"].includes(fieldDef.type);}
return false;}
function _getConditionFromComparator(ast,options){if(["is","is not"].includes(ast.op)){return null;}
let operator=ast.op;if(operator==="=="){operator="=";}
let left=ast.left;let right=ast.right;if(isValidPath(left,options)==isValidPath(right,options)){return null;}
if(!isValidPath(left,options)){if(operator in EXCHANGE){const temp=left;left=right;right=temp;operator=EXCHANGE[operator];}else{return null;}}
return condition(left.value,operator,toValue(right));}
function isValidPath2(ast,options){if(!ast){return null;}
if([4,10].includes(ast.type)&&ast.value.length===1){return isValidPath(ast.value[0],options);}
return isValidPath(ast,options);}
function _getConditionFromIntersection(ast,options,negate=false){let left=ast.fn.obj.args[0];let right=ast.args[0];if(!left){return condition(negate?1:0,"=",1);}
if(isValidPath2(left,options)==isValidPath2(right,options)){return null;}
if(!isValidPath2(left,options)){const temp=left;left=right;right=temp;}
if([4,10].includes(left.type)&&left.value.length===1){left=left.value[0];}
if(!right){return condition(left.value,negate?"=":"!=",false);}
if(isSet(right)){if(!right.args[0]){right={type:4,value:[]};}
if([4,10].includes(right.args[0].type)){right=right.args[0];}}
if(![4,10].includes(right.type)){return null;}
return condition(left.value,negate?"not in":"in",toValue(right));}
function _leafFromAST(ast,options,negate=false){if(isNot(ast)){return _treeFromAST(ast.right,options,!negate);}
if(ast.type===5&&isValidPath(ast,options)){return condition(ast.value,negate?"=":"!=",false);}
const astValue=toValue(ast);if(["boolean","number","string"].includes(typeof astValue)){return condition(astValue?1:0,"=",1);}
if(ast.type===8&&ast.fn.type===15&&isSet(ast.fn.obj)&&ast.fn.key==="intersection"){const tree=_getConditionFromIntersection(ast,options,negate);if(tree){return tree;}}
if(ast.type===7&&COMPARATORS.includes(ast.op)){if(negate){return _leafFromAST(not(ast),options);}
const tree=_getConditionFromComparator(ast,options);if(tree){return tree;}}
return complexCondition(formatAST(negate?not(ast):ast));}
function _treeFromAST(ast,options,negate=false){if(isNot(ast)){return _treeFromAST(ast.right,options,!negate);}
if(ast.type===14){const tree=connector(ast.op==="and"?"&":"|");if(options.distributeNot&&negate){tree.value=tree.value==="&"?"|":"&";}else{tree.negate=negate;}
const subASTs=[ast.left,ast.right];for(const subAST of subASTs){const child=_treeFromAST(subAST,options,options.distributeNot&&negate);addChild(tree,child);}
return tree;}
if(ast.type===13){const newAST=or(and(ast.condition,ast.ifTrue),and(not(ast.condition),ast.ifFalse));return _treeFromAST(newAST,options,negate);}
return _leafFromAST(ast,options,negate);}
function _expressionFromTree(tree,options,isRoot=false){if(tree.type==="connector"&&tree.value==="|"&&tree.children.length===2){const isSimpleAnd=(tree)=>tree.type==="connector"&&tree.value==="&"&&tree.children.length===2;if(tree.children.every((c)=>isSimpleAnd(c))){const[c1,c2]=tree.children;for(let i=0;i<2;i++){const c1Child=c1.children[i];const str1=_expressionFromTree({...c1Child},options);for(let j=0;j<2;j++){const c2Child=c2.children[j];const str2=_expressionFromTree(c2Child,options);if(str1===`not ${str2}`||`not ${str1}`===str2){const others=[c1.children[1-i],c2.children[1-j]];const str=_expressionFromTree(c1Child,options);const strs=others.map((c)=>_expressionFromTree(c,options));return`${strs[0]} if ${str} else ${strs[1]}`;}}}}}
if(tree.type==="connector"){const connector=tree.value==="&"?"and":"or";const subExpressions=tree.children.map((c)=>_expressionFromTree(c,options));if(!subExpressions.length){return connector==="and"?"1":"0";}
let expression=subExpressions.join(` ${connector} `);if(!isRoot||tree.negate){expression=`( ${expression} )`;}
if(tree.negate){expression=`not ${expression}`;}
return expression;}
if(tree.type==="complex_condition"){return tree.value;}
tree=getNormalizedCondition(tree);const{path,operator,value}=tree;const op=operator==="="?"==":operator;if(typeof op!=="string"||!COMPARATORS.includes(op)){throw new Error("Invalid operator");}
if([0,1].includes(path)){if(operator!=="="||value!==1){return new Error("Invalid condition");}
return formatAST({type:2,value:Boolean(path)});}
const pathAST=toAST(path);if(typeof path=="string"&&isValidPath(name(path),options)){pathAST.type=5;}
if(value===false&&["=","!="].includes(operator)){return formatAST(operator==="="?not(pathAST):pathAST);}
let valueAST=toAST(value);if(["in","not in"].includes(operator)&&!(value instanceof Expression)&&![4,10].includes(valueAST.type)){valueAST={type:4,value:[valueAST]};}
if(pathAST.type===5&&isX2Many(pathAST,options)&&["in","not in"].includes(operator)){const ast={type:8,fn:{type:15,obj:{args:[pathAST],type:8,fn:{type:5,value:"set",},},key:"intersection",},args:[valueAST],};return formatAST(operator==="not in"?not(ast):ast);}
return formatAST({type:7,op,left:pathAST,right:valueAST,});}
function createBetweenOperators(tree){if(["condition","complex_condition"].includes(tree.type)){return tree;}
const processedChildren=tree.children.map(createBetweenOperators);if(tree.value==="|"){return{...tree,children:processedChildren};}
const children=[];for(let i=0;i<processedChildren.length;i++){const child1=processedChildren[i];const child2=processedChildren[i+1];if(child1.type==="condition"&&child2&&child2.type==="condition"&&formatValue(child1.path)===formatValue(child2.path)&&child1.operator===">="&&child2.operator==="<="){children.push(condition(child1.path,"between",normalizeValue([child1.value,child2.value])));i+=1;}else{children.push(child1);}}
if(children.length===1){return{...children[0]};}
return{...tree,children};}
__exports.removeBetweenOperators=removeBetweenOperators;function removeBetweenOperators(tree){if(tree.type==="complex_condition"){return tree;}
if(tree.type==="condition"){if(tree.operator!=="between"){return tree;}
const{negate,path,value}=tree;return connector("&",[condition(path,">=",value[0]),condition(path,"<=",value[1])],negate);}
const processedChildren=tree.children.map(removeBetweenOperators);if(tree.value==="|"){return{...tree,children:processedChildren};}
const newTree={...tree,children:[]};for(let i=0;i<processedChildren.length;i++){addChild(newTree,processedChildren[i]);}
return newTree;}
__exports.createVirtualOperators=createVirtualOperators;function createVirtualOperators(tree,options={}){if(tree.type==="condition"){const{path,operator,value}=tree;if(["=","!="].includes(operator)){const fieldDef=options.getFieldDef?.(path)||null;if(fieldDef){if(fieldDef.type==="boolean"){return{...tree,operator:operator==="="?"is":"is_not"};}else if(!["many2one","date","datetime"].includes(fieldDef?.type)&&value===false){return{...tree,operator:operator==="="?"not_set":"set"};}}}
return tree;}
if(tree.type==="complex_condition"){return tree;}
const processedChildren=tree.children.map((c)=>createVirtualOperators(c,options));return{...tree,children:processedChildren};}
__exports.removeVirtualOperators=removeVirtualOperators;function removeVirtualOperators(tree){if(tree.type==="condition"){const{operator}=tree;if(["is","is_not"].includes(operator)){return{...tree,operator:operator==="is"?"=":"!="};}
if(["set","not_set"].includes(operator)){return{...tree,operator:operator==="set"?"!=":"="};}
return tree;}
if(tree.type==="complex_condition"){return tree;}
const processedChildren=tree.children.map((c)=>removeVirtualOperators(c));return{...tree,children:processedChildren};}
function createComplexConditions(tree){if(tree.type==="condition"){if(tree.path instanceof Expression&&tree.operator==="="&&tree.value===1){return complexCondition(String(tree.path));}
return cloneTree(tree);}
if(tree.type==="complex_condition"){return cloneTree(tree);}
return{...tree,children:tree.children.map((child)=>createComplexConditions(child)),};}
function removeComplexConditions(tree){if(tree.type==="condition"){return cloneTree(tree);}
if(tree.type==="complex_condition"){const ast=parseExpr(tree.value);return condition(new Expression(bool(ast)),"=",1);}
return{...tree,children:tree.children.map((child)=>removeComplexConditions(child)),};}
__exports.treeFromExpression=treeFromExpression;function treeFromExpression(expression,options={}){const ast=parseExpr(expression);const tree=_treeFromAST(ast,options);return createVirtualOperators(createBetweenOperators(tree),options);}
__exports.expressionFromTree=expressionFromTree;function expressionFromTree(tree,options={}){const simplifiedTree=createComplexConditions(removeBetweenOperators(removeVirtualOperators(tree)));return _expressionFromTree(simplifiedTree,options,true);}
__exports.domainFromTree=domainFromTree;function domainFromTree(tree){const simplifiedTree=removeBetweenOperators(removeVirtualOperators(removeComplexConditions(tree)));const domainAST={type:4,value:getASTs(simplifiedTree),};return formatAST(domainAST);}
__exports.treeFromDomain=treeFromDomain;function treeFromDomain(domain,options={}){domain=new Domain(domain);const domainAST=domain.ast;const tree=construcTree(domainAST.value,options);return createVirtualOperators(createBetweenOperators(tree),options);}
__exports.expressionFromDomain=expressionFromDomain;function expressionFromDomain(domain,options={}){const tree=treeFromDomain(domain,options);return expressionFromTree(tree,options);}
__exports.domainFromExpression=domainFromExpression;function domainFromExpression(expression,options={}){const tree=treeFromExpression(expression,options);return domainFromTree(tree);}
return __exports;});;

/* /web/static/src/core/tree_editor/tree_editor.js */
odoo.define('@web/core/tree_editor/tree_editor',['@web/core/tree_editor/utils','@odoo/owl','@web/core/dropdown/dropdown','@web/core/dropdown/dropdown_item','@web/core/tree_editor/condition_tree','@web/core/tree_editor/tree_editor_value_editors','@web/core/model_field_selector/model_field_selector','@web/core/model_field_selector/utils','@web/core/utils/objects'],function(require){'use strict';let __exports={};const{leafToString,useLoadDisplayNames,extractIdsFromTree,getPathsInTree,getResModel,}=require("@web/core/tree_editor/utils");const{Component,onWillStart,onWillUpdateProps}=require("@odoo/owl");const{Dropdown}=require("@web/core/dropdown/dropdown");const{DropdownItem}=require("@web/core/dropdown/dropdown_item");const{condition,cloneTree,formatValue,removeVirtualOperators,connector,}=require("@web/core/tree_editor/condition_tree");const{getDefaultValue,getValueEditorInfo,}=require("@web/core/tree_editor/tree_editor_value_editors");const{ModelFieldSelector}=require("@web/core/model_field_selector/model_field_selector");const{useLoadFieldInfo}=require("@web/core/model_field_selector/utils");const{deepEqual,shallowEqual}=require("@web/core/utils/objects");const TRUE_TREE=condition(1,"=",1);const DEFAULT_CONDITION=condition("id","=",1);function collectDifferences(tree,otherTree){if(tree.type!==otherTree.type){return[{type:"other"}];}
if(tree.negate!==otherTree.negate){return[{type:"other"}];}
if(tree.type==="condition"){if(formatValue(tree.path)!==formatValue(otherTree.path)){return[{type:"other"}];}
if(formatValue(tree.value)!==formatValue(otherTree.value)){return[{type:"other"}];}
if(formatValue(tree.operator)!==formatValue(otherTree.operator)){if(tree.operator==="!="&&otherTree.operator==="set"){return[{type:"replacement",tree,operator:"set"}];}else if(tree.operator==="="&&otherTree.operator==="not_set"){return[{type:"replacement",tree,operator:"not_set"}];}else{return[{type:"other"}];}}
return[];}
if(tree.value!==otherTree.value){return[{type:"other"}];}
if(tree.type==="complex_condition"){return[];}
if(tree.children.length!==otherTree.children.length){return[{type:"other"}];}
const diffs=[];for(let i=0;i<tree.children.length;i++){const child=tree.children[i];const otherChild=otherTree.children[i];const childDiffs=collectDifferences(child,otherChild);if(childDiffs.some((d)=>d.type!=="replacement")){return[{type:"other"}];}
diffs.push(...childDiffs);}
return diffs;}
function restoreVirtualOperators(tree,otherTree){const diffs=collectDifferences(tree,otherTree);if(diffs.some((d)=>d.type!=="replacement")){return;}
for(const{tree,operator}of diffs){tree.operator=operator;}}
const TreeEditor=__exports.TreeEditor=class TreeEditor extends Component{static template="web.TreeEditor";static components={Dropdown,DropdownItem,ModelFieldSelector,};static props={tree:Object,resModel:String,update:Function,getPathEditorInfo:Function,getOperatorEditorInfo:Function,getDefaultOperator:Function,readonly:{type:Boolean,optional:true},slots:{type:Object,optional:true},isDebugMode:{type:Boolean,optional:true},defaultConnector:{type:[{value:"&"},{value:"|"}],optional:true},defaultCondition:{type:Object,optional:true},};static defaultProps={defaultConnector:"&",defaultCondition:DEFAULT_CONDITION,readonly:false,};setup(){this.loadFieldInfo=useLoadFieldInfo();this.loadDisplayNames=useLoadDisplayNames();onWillStart(()=>this.onPropsUpdated(this.props));onWillUpdateProps((nextProps)=>this.onPropsUpdated(nextProps));}
async onPropsUpdated(props){this.tree=cloneTree(props.tree);if(shallowEqual(this.tree,TRUE_TREE)){this.tree=connector(props.defaultConnector);}else if(this.tree.type!=="connector"){this.tree=connector(props.defaultConnector,[this.tree]);}
if(this.previousTree){restoreVirtualOperators(this.tree,this.previousTree);this.previousTree=null;}
const paths=getPathsInTree(this.tree);await this.loadFieldDefs(props.resModel,paths);if(props.readonly){const idsByModel=extractIdsFromTree(this.tree,this.getFieldDef.bind(this));this.displayNames=await this.loadDisplayNames(idsByModel);}}
get className(){return`${this.props.readonly ? "o_read_mode" : "o_edit_mode"}`;}
get isDebugMode(){return this.props.isDebugMode!==undefined?this.props.isDebugMode:!!this.env.debug;}
getFieldDef(path){if(typeof path==="string"){return this.fieldDefs[path];}
return null;}
async loadFieldDefs(resModel,paths){const promises=[];const fieldDefs={};for(const path of paths){if(typeof path==="string"){promises.push(this.loadFieldInfo(resModel,path).then(({fieldDef})=>{fieldDefs[path]=fieldDef;}));}}
await Promise.all(promises);this.fieldDefs=fieldDefs;}
notifyChanges(){this.previousTree=cloneTree(this.tree);this.props.update(this.tree);}
updateConnector(node,value){node.value=value;node.negate=false;this.notifyChanges();}
updateComplexCondition(node,value){node.value=value;this.notifyChanges();}
createNewLeaf(){return cloneTree(this.props.defaultCondition);}
createNewBranch(value){return connector(value,[this.createNewLeaf(),this.createNewLeaf()]);}
insertRootLeaf(parent){parent.children.push(this.createNewLeaf());this.notifyChanges();}
insertLeaf(parent,node){const newNode=node.type!=="connector"?cloneTree(node):this.createNewLeaf();const index=parent.children.indexOf(node);parent.children.splice(index+1,0,newNode);this.notifyChanges();}
insertBranch(parent,node){const nextConnector=parent.value==="&"?"|":"&";const newNode=this.createNewBranch(nextConnector);const index=parent.children.indexOf(node);parent.children.splice(index+1,0,newNode);this.notifyChanges();}
delete(parent,node){const index=parent.children.indexOf(node);parent.children.splice(index,1);this.notifyChanges();}
getDescription(node){const fieldDef=this.getFieldDef(node.path);return leafToString(node,fieldDef,this.displayNames[getResModel(fieldDef)]);}
getValueEditorInfo(node){const fieldDef=this.getFieldDef(node.path);return getValueEditorInfo(fieldDef,node.operator);}
async updatePath(node,path){const{fieldDef}=await this.loadFieldInfo(this.props.resModel,path);node.path=path;node.negate=false;node.operator=this.props.getDefaultOperator(fieldDef);node.value=getDefaultValue(fieldDef,node.operator);this.notifyChanges();}
updateLeafOperator(node,operator,negate){const previousNode=cloneTree(node);const fieldDef=this.getFieldDef(node.path);node.negate=negate;node.operator=operator;node.value=getDefaultValue(fieldDef,operator,node.value);if(deepEqual(removeVirtualOperators(node),removeVirtualOperators(previousNode))){this.render();}
this.notifyChanges();}
updateLeafValue(node,value){node.value=value;this.notifyChanges();}
highlightNode(target){const nodeEl=target.closest(".o_tree_editor_node");nodeEl.classList.toggle("o_hovered_button");}}
return __exports;});;

/* /web/static/src/core/tree_editor/tree_editor_autocomplete.js */
odoo.define('@web/core/tree_editor/tree_editor_autocomplete',['@web/core/record_selectors/multi_record_selector','@web/core/l10n/translation','@web/core/py_js/py_utils','@web/core/tree_editor/condition_tree','@web/core/record_selectors/record_selector'],function(require){'use strict';let __exports={};const{MultiRecordSelector}=require("@web/core/record_selectors/multi_record_selector");const{_t}=require("@web/core/l10n/translation");const{formatAST,toPyValue}=require("@web/core/py_js/py_utils");const{Expression}=require("@web/core/tree_editor/condition_tree");const{RecordSelector}=require("@web/core/record_selectors/record_selector");const isId=__exports.isId=(val)=>Number.isInteger(val)&&val>=1;const getFormat=__exports.getFormat=(val,displayNames)=>{let text;let colorIndex;if(isId(val)){text=typeof displayNames[val]==="string"?displayNames[val]:_t("Inaccessible/missing record ID: %s",val);colorIndex=typeof displayNames[val]==="string"?0:2;}else{text=val instanceof Expression?String(val):_t("Invalid record ID: %s",formatAST(toPyValue(val)));colorIndex=val instanceof Expression?2:1;}
return{text,colorIndex};};const DomainSelectorAutocomplete=__exports.DomainSelectorAutocomplete=class DomainSelectorAutocomplete extends MultiRecordSelector{static props={...MultiRecordSelector.props,resIds:true,};getIds(props=this.props){return props.resIds.filter((val)=>isId(val));}
getTags(props,displayNames){return props.resIds.map((val,index)=>{const{text,colorIndex}=getFormat(val,displayNames);return{text,colorIndex,onDelete:()=>{this.props.update([...this.props.resIds.slice(0,index),...this.props.resIds.slice(index+1),]);},};});}}
const DomainSelectorSingleAutocomplete=__exports.DomainSelectorSingleAutocomplete=class DomainSelectorSingleAutocomplete extends RecordSelector{static props={...RecordSelector.props,resId:true,};getDisplayName(props=this.props,displayNames){const{resId}=props;if(resId===false){return"";}
const{text}=getFormat(resId,displayNames);return text;}
getIds(props=this.props){if(isId(props.resId)){return[props.resId];}
return[];}}
return __exports;});;

/* /web/static/src/core/tree_editor/tree_editor_components.js */
odoo.define('@web/core/tree_editor/tree_editor_components',['@odoo/owl','@web/core/tags_list/tags_list'],function(require){'use strict';let __exports={};const{Component}=require("@odoo/owl");const{TagsList}=require("@web/core/tags_list/tags_list");const Input=__exports.Input=class Input extends Component{static props=["value","update","startEmpty?"];static template="web.TreeEditor.Input";}
const Select=__exports.Select=class Select extends Component{static props=["value","update","options","addBlankOption?"];static template="web.TreeEditor.Select";deserialize(value){return JSON.parse(value);}
serialize(value){return JSON.stringify(value);}}
const Range=__exports.Range=class Range extends Component{static props=["value","update","editorInfo"];static template="web.TreeEditor.Range";update(index,newValue){const result=[...this.props.value];result[index]=newValue;return this.props.update(result);}}
const List=__exports.List=class List extends Component{static components={TagsList};static props=["value","update","editorInfo"];static template="web.TreeEditor.List";get tags(){const{isSupported,stringify}=this.props.editorInfo;return this.props.value.map((val,index)=>({text:stringify(val),colorIndex:isSupported(val)?0:2,onDelete:()=>{this.props.update([...this.props.value.slice(0,index),...this.props.value.slice(index+1),]);},}));}
update(newValue){return this.props.update([...this.props.value,newValue]);}}
return __exports;});;

/* /web/static/src/core/tree_editor/tree_editor_operator_editor.js */
odoo.define('@web/core/tree_editor/tree_editor_operator_editor',['@web/core/l10n/translation','@web/core/tree_editor/condition_tree','@web/core/utils/strings','@web/core/py_js/py','@web/core/tree_editor/tree_editor_components'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{formatValue,TERM_OPERATORS_NEGATION,toValue,}=require("@web/core/tree_editor/condition_tree");const{sprintf}=require("@web/core/utils/strings");const{parseExpr}=require("@web/core/py_js/py");const{Select}=require("@web/core/tree_editor/tree_editor_components");const OPERATOR_DESCRIPTIONS={"=":"=","!=":"!=","<=":"<=","<":"<",">":">",">=":">=","=?":"=?","=like":_t("=like"),"=ilike":_t("=ilike"),like:_t("like"),"not like":_t("not like"),ilike:_t("contains"),"not ilike":_t("does not contain"),in:_t("is in"),"not in":_t("is not in"),child_of:_t("child of"),parent_of:_t("parent of"),is:_t("is"),is_not:_t("is not"),set:_t("is set"),not_set:_t("is not set"),between:_t("is between"),};function toKey(operator,negate=false){if(!negate&&typeof operator==="string"&&operator in OPERATOR_DESCRIPTIONS){return operator;}
return JSON.stringify([formatValue(operator),negate]);}
function toOperator(key){if(!key.includes("[")){return[key,false];}
const[expr,negate]=JSON.parse(key);return[toValue(parseExpr(expr)),negate];}
__exports.getOperatorLabel=getOperatorLabel;function getOperatorLabel(operator,negate=false){let label;if(typeof operator==="string"&&operator in OPERATOR_DESCRIPTIONS){if(negate&&operator in TERM_OPERATORS_NEGATION){return OPERATOR_DESCRIPTIONS[TERM_OPERATORS_NEGATION[operator]];}
label=OPERATOR_DESCRIPTIONS[operator];}else{label=formatValue(operator);}
if(negate){return sprintf(`not %s`,label);}
return label;}
function getOperatorInfo(operator,negate=false){const key=toKey(operator,negate);const label=getOperatorLabel(operator,negate);return[key,label];}
__exports.getOperatorEditorInfo=getOperatorEditorInfo;function getOperatorEditorInfo(operators){const defaultOperator=operators[0];const operatorsInfo=operators.map((operator)=>getOperatorInfo(operator));return{component:Select,extractProps:({update,value:[operator,negate]})=>{const[operatorKey,operatorLabel]=getOperatorInfo(operator,negate);const options=[...operatorsInfo];if(!options.some(([key])=>key===operatorKey)){options.push([operatorKey,operatorLabel]);}
return{value:operatorKey,update:(operatorKey)=>update(...toOperator(operatorKey)),options,};},defaultValue:()=>defaultOperator,isSupported:([operator])=>typeof operator==="string"&&operator in OPERATOR_DESCRIPTIONS,message:_t("Operator not supported"),stringify:([operator,negate])=>getOperatorLabel(operator,negate),};}
return __exports;});;

/* /web/static/src/core/tree_editor/tree_editor_value_editors.js */
odoo.define('@web/core/tree_editor/tree_editor_value_editors',['@web/core/l10n/dates','@web/core/l10n/translation','@web/core/registry','@web/core/datetime/datetime_input','@web/core/tree_editor/tree_editor_autocomplete','@web/core/utils/arrays','@web/core/tree_editor/tree_editor_components','@web/core/tree_editor/condition_tree','@web/core/tree_editor/utils','@web/core/domain'],function(require){'use strict';let __exports={};const{deserializeDate,deserializeDateTime,serializeDate,serializeDateTime,}=require("@web/core/l10n/dates");const{_t}=require("@web/core/l10n/translation");const{registry}=require("@web/core/registry");const{DateTimeInput}=require("@web/core/datetime/datetime_input");const{DomainSelectorAutocomplete,DomainSelectorSingleAutocomplete,}=require("@web/core/tree_editor/tree_editor_autocomplete");const{unique}=require("@web/core/utils/arrays");const{Input,Select,List,Range}=require("@web/core/tree_editor/tree_editor_components");const{formatValue}=require("@web/core/tree_editor/condition_tree");const{getResModel,disambiguate,isId}=require("@web/core/tree_editor/utils");const{Domain}=require("@web/core/domain");const{DateTime}=luxon;const formatters=registry.category("formatters");const parsers=registry.category("parsers");function parseValue(fieldType,value){const parser=parsers.get(fieldType,(value)=>value);try{return parser(value);}catch{return value;}}
function isParsable(fieldType,value){const parser=parsers.get(fieldType,(value)=>value);try{parser(value);}catch{return false;}
return true;}
function genericSerializeDate(type,value){return type==="date"?serializeDate(value):serializeDateTime(value);}
function genericDeserializeDate(type,value){return type==="date"?deserializeDate(value):deserializeDateTime(value);}
const STRING_EDITOR={component:Input,extractProps:({value,update})=>({value,update}),isSupported:(value)=>typeof value==="string",defaultValue:()=>"",};function makeSelectEditor(options,params={}){const getOption=(value)=>options.find(([v])=>v===value)||null;return{component:Select,extractProps:({value,update})=>({value,update,options,addBlankOption:params.addBlankOption,}),isSupported:(value)=>Boolean(getOption(value)),defaultValue:()=>options[0]?.[0]??false,stringify:(value,disambiguate)=>{const option=getOption(value);return option?option[1]:disambiguate?formatValue(value):String(value);},message:_t("Value not in selection"),};}
function getDomain(fieldDef){if(fieldDef.type==="many2one"){return[];}
try{return new Domain(fieldDef.domain||[]).toList();}catch{return[];}}
function makeAutoCompleteEditor(fieldDef){return{component:DomainSelectorAutocomplete,extractProps:({value,update})=>{return{resModel:getResModel(fieldDef),fieldString:fieldDef.string,domain:getDomain(fieldDef),update:(value)=>update(unique(value)),resIds:unique(value),};},isSupported:(value)=>Array.isArray(value),defaultValue:()=>[],};}
function getPartialValueEditorInfo(fieldDef,operator,params={}){switch(operator){case"set":case"not_set":return{component:null,extractProps:null,isSupported:(value)=>value===false,defaultValue:()=>false,};case"=like":case"=ilike":case"like":case"not like":case"ilike":case"not ilike":return STRING_EDITOR;case"between":{const editorInfo=getValueEditorInfo(fieldDef,"=");return{component:Range,extractProps:({value,update})=>({value,update,editorInfo,}),isSupported:(value)=>Array.isArray(value)&&value.length===2,defaultValue:()=>{const{defaultValue}=editorInfo;return[defaultValue(),defaultValue()];},};}
case"in":case"not in":{switch(fieldDef.type){case"tags":return STRING_EDITOR;case"many2one":case"many2many":case"one2many":return makeAutoCompleteEditor(fieldDef);default:{const editorInfo=getValueEditorInfo(fieldDef,"=",{addBlankOption:true,startEmpty:true,});return{component:List,extractProps:({value,update})=>{if(!disambiguate(value)){const{stringify}=editorInfo;editorInfo.stringify=(val)=>stringify(val,false);}
return{value,update,editorInfo,};},isSupported:(value)=>Array.isArray(value),defaultValue:()=>[],};}}}}
const{type}=fieldDef;switch(type){case"integer":case"float":case"monetary":{const formatType=type==="integer"?"integer":"float";return{component:Input,extractProps:({value,update})=>({value:String(value),update:(value)=>update(parseValue(formatType,value)),startEmpty:params.startEmpty,}),isSupported:()=>true,defaultValue:()=>1,shouldResetValue:(value)=>parseValue(formatType,value)===value,};}
case"date":case"datetime":return{component:DateTimeInput,extractProps:({value,update})=>({value:params.startEmpty||value===false?false:genericDeserializeDate(type,value),type,onApply:(value)=>{if(!params.startEmpty||value){update(genericSerializeDate(type,value||DateTime.local()));}},}),isSupported:(value)=>value===false||(typeof value==="string"&&isParsable(type,value)),defaultValue:()=>genericSerializeDate(type,DateTime.local()),stringify:(value)=>{if(value===false){return _t("False");}
if(typeof value==="string"&&isParsable(type,value)){const formatter=formatters.get(type,formatValue);return formatter(genericDeserializeDate(type,value));}
return formatValue(value);},message:_t("Not a valid %s",type),};case"char":case"html":case"text":return STRING_EDITOR;case"boolean":{if(["is","is_not"].includes(operator)){const options=[[true,_t("set")],[false,_t("not set")],];return makeSelectEditor(options,params);}
const options=[[true,_t("True")],[false,_t("False")],];return makeSelectEditor(options,params);}
case"many2one":{if(["=","!=","parent_of","child_of"].includes(operator)){return{component:DomainSelectorSingleAutocomplete,extractProps:({value,update})=>{return{resModel:getResModel(fieldDef),fieldString:fieldDef.string,update,resId:value,};},isSupported:()=>true,defaultValue:()=>false,shouldResetValue:(value)=>value!==false&&!isId(value),};}
break;}
case"many2many":case"one2many":if(["=","!="].includes(operator)){return makeAutoCompleteEditor(fieldDef);}
break;case"selection":{const options=fieldDef.selection||[];return makeSelectEditor(options,params);}
case undefined:{const options=[[1,"1"]];return makeSelectEditor(options,params);}}
return{component:Input,extractProps:({value,update})=>({value:String(value),update,}),isSupported:()=>true,defaultValue:()=>"",};}
__exports.getValueEditorInfo=getValueEditorInfo;function getValueEditorInfo(fieldDef,operator,options={}){const info=getPartialValueEditorInfo(fieldDef||{},operator,options);return{extractProps:({value,update})=>({value,update}),message:_t("Value not supported"),stringify:(val,disambiguate=true)=>{if(disambiguate){return formatValue(val);}
return String(val);},...info,};}
__exports.getDefaultValue=getDefaultValue;function getDefaultValue(fieldDef,operator,value=null){const{isSupported,shouldResetValue,defaultValue}=getValueEditorInfo(fieldDef,operator);if(value===null||!isSupported(value)||shouldResetValue?.(value)){return defaultValue();}
return value;}
return __exports;});;

/* /web/static/src/core/tree_editor/utils.js */
odoo.define('@web/core/tree_editor/utils',['@web/core/utils/arrays','@web/core/tree_editor/tree_editor_operator_editor','@web/core/tree_editor/condition_tree','@web/core/utils/hooks','@web/core/l10n/translation','@web/core/l10n/dates'],function(require){'use strict';let __exports={};const{unique,zip}=require("@web/core/utils/arrays");const{getOperatorLabel}=require("@web/core/tree_editor/tree_editor_operator_editor");const{Expression}=require("@web/core/tree_editor/condition_tree");const{useService}=require("@web/core/utils/hooks");const{_t}=require("@web/core/l10n/translation");const{deserializeDate,deserializeDateTime,formatDate,formatDateTime}=require("@web/core/l10n/dates");function formatValue(val,disambiguate,fieldDef,displayNames){if(val instanceof Expression){return val.toString();}
if(displayNames&&isId(val)){if(typeof displayNames[val]==="string"){val=displayNames[val];}else{return _t("Inaccessible/missing record ID: %s",val);}}
if(fieldDef?.type==="selection"){const[,label]=(fieldDef.selection||[]).find(([v])=>v===val)||[];if(label!==undefined){val=label;}}
if(typeof val==="string"){if(fieldDef?.type==="datetime"){return formatDateTime(deserializeDateTime(val));}
if(fieldDef?.type==="date"){return formatDate(deserializeDate(val));}}
if(disambiguate&&typeof val==="string"){return JSON.stringify(val);}
return val;}
__exports.isId=isId;function isId(value){return Number.isInteger(value)&&value>=1;}
__exports.disambiguate=disambiguate;function disambiguate(value,displayNames){if(!Array.isArray(value)){return value==="";}
let hasSomeString=false;let hasSomethingElse=false;for(const val of value){if(val===""){return true;}
if(typeof val==="string"||(displayNames&&isId(val))){hasSomeString=true;}else{hasSomethingElse=true;}}
return hasSomeString&&hasSomethingElse;}
__exports.leafToString=leafToString;function leafToString(tree,fieldDef,displayNames){const{operator,negate,value}=tree;const operatorLabel=getOperatorLabel(operator,negate);const description={operatorDescription:`${operatorLabel}`,valueDescription:null,};if(["set","not_set"].includes(operator)){return description;}
if(["is","is_not"].includes(operator)){description.valueDescription={values:[value?_t("set"):_t("not set")],join:"",addParenthesis:false,};return description;}
const dis=disambiguate(value,displayNames);const values=(Array.isArray(value)?value:[value]).slice(0,21).map((val,index)=>(index<20?formatValue(val,dis,fieldDef,displayNames):"..."));let join;let addParenthesis=Array.isArray(value);switch(operator){case"between":join=_t("and");addParenthesis=false;break;case"in":case"not in":join=",";break;default:join=_t("or");}
description.valueDescription={values,join,addParenthesis};return description;}
__exports.useLoadDisplayNames=useLoadDisplayNames;function useLoadDisplayNames(nameService){nameService||=useService("name");return async(resIdsByModel)=>{const proms=[];const resModels=[];for(const[resModel,resIds]of Object.entries(resIdsByModel)){resModels.push(resModel);proms.push(nameService.loadDisplayNames(resModel,resIds));}
return Object.fromEntries(zip(resModels,await Promise.all(proms)));};}
__exports.getResModel=getResModel;function getResModel(fieldDef){if(fieldDef){return fieldDef.is_property?fieldDef.comodel:fieldDef.relation;}
return null;}
__exports.extractIdsFromTree=extractIdsFromTree;function extractIdsFromTree(tree,getFieldDef){const idsByModel=_extractIdsRecursive(tree,getFieldDef,{});for(const resModel in idsByModel){idsByModel[resModel]=unique(idsByModel[resModel]);}
return idsByModel;}
function _extractIdsRecursive(tree,getFieldDef,idsByModel){if(tree.type==="condition"){const fieldDef=getFieldDef(tree.path);if(["many2one","many2many","one2many"].includes(fieldDef?.type)){const value=tree.value;const values=Array.isArray(value)?value:[value];const ids=values.filter((val)=>Number.isInteger(val)&&val>=1);const resModel=getResModel(fieldDef);if(ids.length){if(!idsByModel[resModel]){idsByModel[resModel]=[];}
idsByModel[resModel].push(...ids);}}}
if(tree.type==="connector"){for(const child of tree.children){_extractIdsRecursive(child,getFieldDef,idsByModel);}}
return idsByModel;}
__exports.getPathsInTree=getPathsInTree;function getPathsInTree(tree){const paths=[];if(tree.type==="condition"){paths.push(tree.path);}
if(tree.type==="connector"&&tree.children){for(const child of tree.children){paths.push(...getPathsInTree(child));}}
return paths;}
const SPECIAL_FIELDS=["country_id","user_id","partner_id","stage_id","id"];__exports.getDefaultPath=getDefaultPath;function getDefaultPath(fieldDefs){for(const name of SPECIAL_FIELDS){const fieldDef=fieldDefs[name];if(fieldDef){return fieldDef.name;}}
const name=Object.keys(fieldDefs)[0];if(name){return name;}
throw new Error(`No field found`);}
return __exports;});;

/* /web/static/src/core/ui/block_ui.js */
odoo.define('@web/core/ui/block_ui',['@web/core/l10n/translation','@web/core/browser/browser','@odoo/owl'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");const{browser}=require("@web/core/browser/browser");const{EventBus,Component,useState,xml}=require("@odoo/owl");const BlockUI=__exports.BlockUI=class BlockUI extends Component{setup(){this.messagesByDuration=[{time:20,l1:_t("Loading...")},{time:40,l1:_t("Still loading...")},{time:60,l1:_t("Still loading..."),l2:_t("Please be patient."),},{time:180,l1:_t("Don't leave yet,"),l2:_t("it's still loading..."),},{time:120,l1:_t("You may not believe it,"),l2:_t("but the application is actually loading..."),},{time:3180,l1:_t("Take a minute to get a coffee,"),l2:_t("because it's loading..."),},{time:null,l1:_t("Maybe you should consider reloading the application by pressing F5..."),},];this.state=useState({blockUI:false,line1:"",line2:"",});this.props.bus.addEventListener("BLOCK",this.block.bind(this));this.props.bus.addEventListener("UNBLOCK",this.unblock.bind(this));}
replaceMessage(index){const message=this.messagesByDuration[index];this.state.line1=message.l1;this.state.line2=message.l2||"";if(message.time!==null){this.msgTimer=browser.setTimeout(()=>{this.replaceMessage(index+1);},message.time*1000);}}
block(ev){this.state.blockUI=true;if(ev.detail?.message){this.state.line1=ev.detail.message;}else{this.replaceMessage(0);}}
unblock(){this.state.blockUI=false;clearTimeout(this.msgTimer);this.state.line1="";this.state.line2="";}}
BlockUI.props={bus:EventBus,};BlockUI.template=xml`
    <div t-att-class="state.blockUI ? 'o_blockUI fixed-top d-flex justify-content-center align-items-center flex-column vh-100' : ''">
      <t t-if="state.blockUI">
        <div class="o_spinner mb-4">
            <img src="/web/static/img/spin.svg" alt="Loading..."/>
        </div>
        <div class="o_message text-center px-4">
            <t t-esc="state.line1"/> <br/>
            <t t-esc="state.line2"/>
        </div>
      </t>
    </div>`;return __exports;});;

/* /web/static/src/core/ui/ui_service.js */
odoo.define('@web/core/ui/ui_service',['@web/core/utils/hooks','@web/core/registry','@web/core/utils/timing','@web/core/ui/block_ui','@web/core/browser/browser','@web/core/utils/ui','@web/core/hotkeys/hotkey_service','@odoo/owl'],function(require){'use strict';let __exports={};const{useService}=require("@web/core/utils/hooks");const{registry}=require("@web/core/registry");const{throttleForAnimation}=require("@web/core/utils/timing");const{BlockUI}=require("@web/core/ui/block_ui");const{browser}=require("@web/core/browser/browser");const{getTabableElements}=require("@web/core/utils/ui");const{getActiveHotkey}=require("@web/core/hotkeys/hotkey_service");const{EventBus,reactive,useEffect,useRef}=require("@odoo/owl");const SIZES=__exports.SIZES={XS:0,VSM:1,SM:2,MD:3,LG:4,XL:5,XXL:6};function getFirstAndLastTabableElements(el){const tabableEls=getTabableElements(el);return[tabableEls[0],tabableEls[tabableEls.length-1]];}
__exports.useActiveElement=useActiveElement;function useActiveElement(refName){if(!refName){throw new Error("refName not given to useActiveElement");}
const uiService=useService("ui");const ref=useRef(refName);function trapFocus(e){const hotkey=getActiveHotkey(e);if(!["tab","shift+tab"].includes(hotkey)){return;}
const el=e.currentTarget;const[firstTabableEl,lastTabableEl]=getFirstAndLastTabableElements(el);switch(hotkey){case"tab":if(document.activeElement===lastTabableEl){firstTabableEl.focus();e.preventDefault();e.stopPropagation();}
break;case"shift+tab":if(document.activeElement===firstTabableEl){lastTabableEl.focus();e.preventDefault();e.stopPropagation();}
break;}}
useEffect((el)=>{if(el){const[firstTabableEl]=getFirstAndLastTabableElements(el);if(!firstTabableEl){return;}
const oldActiveElement=document.activeElement;uiService.activateElement(el);el.addEventListener("keydown",trapFocus);if(!el.contains(document.activeElement)){firstTabableEl.focus();}
return async()=>{await Promise.resolve();uiService.deactivateElement(el);el.removeEventListener("keydown",trapFocus);if(el.contains(document.activeElement)||document.activeElement===document.body){oldActiveElement.focus();}};}},()=>[ref.el]);}
const MEDIAS_BREAKPOINTS=__exports.MEDIAS_BREAKPOINTS=[{maxWidth:474},{minWidth:475,maxWidth:575},{minWidth:576,maxWidth:767},{minWidth:768,maxWidth:991},{minWidth:992,maxWidth:1199},{minWidth:1200,maxWidth:1533},{minWidth:1534},];__exports.getMediaQueryLists=getMediaQueryLists;function getMediaQueryLists(){return MEDIAS_BREAKPOINTS.map(({minWidth,maxWidth})=>{if(!maxWidth){return window.matchMedia(`(min-width: ${minWidth}px)`);}
if(!minWidth){return window.matchMedia(`(max-width: ${maxWidth}px)`);}
return window.matchMedia(`(min-width: ${minWidth}px) and (max-width: ${maxWidth}px)`);});}
const MEDIAS=getMediaQueryLists();const utils=__exports.utils={getSize(){return MEDIAS.findIndex((media)=>media.matches);},isSmall(ui={}){return(ui.size||utils.getSize())<=SIZES.SM;},};const bus=new EventBus();__exports.listenSizeChange=listenSizeChange;function listenSizeChange(callback){bus.addEventListener("resize",callback);return()=>bus.removeEventListener("resize",callback);}
const uiService=__exports.uiService={start(env){registry.category("main_components").add("BlockUI",{Component:BlockUI,props:{bus}});let blockCount=0;function block(data){blockCount++;if(blockCount===1){bus.trigger("BLOCK",{message:data?.message,});}}
function unblock(){blockCount--;if(blockCount<0){console.warn("Unblock ui was called more times than block, you should only unblock the UI if you have previously blocked it.");blockCount=0;}
if(blockCount===0){bus.trigger("UNBLOCK");}}
let activeElems=[document];function activateElement(el){activeElems.push(el);bus.trigger("active-element-changed",el);}
function deactivateElement(el){activeElems=activeElems.filter((x)=>x!==el);bus.trigger("active-element-changed",ui.activeElement);}
function getActiveElementOf(el){for(const activeElement of[...activeElems].reverse()){if(activeElement.contains(el)){return activeElement;}}}
const ui=reactive({bus,size:utils.getSize(),get activeElement(){return activeElems[activeElems.length-1];},get isBlocked(){return blockCount>0;},isSmall:utils.isSmall(),block,unblock,activateElement,deactivateElement,getActiveElementOf,});const updateSize=()=>{const prevSize=ui.size;ui.size=utils.getSize();if(ui.size!==prevSize){ui.isSmall=utils.isSmall(ui);bus.trigger("resize");}};browser.addEventListener("resize",throttleForAnimation(updateSize));Object.defineProperty(env,"isSmall",{get(){return ui.isSmall;},});return ui;},};registry.category("services").add("ui",uiService);return __exports;});;

/* /web/static/src/core/user_service.js */
odoo.define('@web/core/user_service',['@web/core/registry','@web/session','@web/core/utils/cache'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const{session}=require("@web/session");const{Cache}=require("@web/core/utils/cache");const userService=__exports.userService={dependencies:["rpc"],async:["hasGroup"],start(env,{rpc}){const groupCache=new Cache((group)=>{if(!context.uid){return Promise.resolve(false);}
return rpc("/web/dataset/call_kw/res.users/has_group",{model:"res.users",method:"has_group",args:[group],kwargs:{context},});});if(session.is_internal_user!==undefined){groupCache.cache["base.group_user"]=session.is_internal_user;}
if(session.is_system!==undefined){groupCache.cache["base.group_system"]=session.is_system;}
const accessRightCache=new Cache((model,operation)=>{const url=`/web/dataset/call_kw/${model}/check_access_rights`;return rpc(url,{model,method:"check_access_rights",args:[operation,false],kwargs:{context},});});const context={...session.user_context,uid:session.uid||session.user_id,};let settings=session.user_settings;delete session.user_settings;return{get context(){return Object.assign({},context);},removeFromContext(key){delete context[key];},updateContext(update){Object.assign(context,update);},hasGroup(group){return groupCache.read(group);},async checkAccessRight(model,operation){return accessRightCache.read(model,operation);},get settings(){return settings;},async setUserSettings(key,value){const changedSettings=await env.services.orm.call("res.users.settings","set_res_users_settings",[[this.settings.id]],{new_settings:{[key]:value,},});Object.assign(settings,changedSettings);},name:session.name,userName:session.username,isAdmin:session.is_admin,isSystem:session.is_system,partnerId:session.partner_id,home_action_id:session.home_action_id,showEffect:session.show_effect,get userId(){return context.uid;},get lang(){return context.lang;},get tz(){return context.tz;},get db(){const res={name:session.db,};if("dbuuid"in session){res.uuid=session.dbuuid;}
return res;},};},};registry.category("services").add("user",userService);return __exports;});;

/* /web/static/src/core/utils/arrays.js */
odoo.define('@web/core/utils/arrays',['@web/core/utils/objects'],function(require){'use strict';let __exports={};const{shallowEqual:_shallowEqual}=require("@web/core/utils/objects");function _cartesian(){const args=Array.prototype.slice.call(arguments);if(args.length===0){return[undefined];}
const firstArray=args[0].map(function(elem){return[elem];});if(args.length===1){return firstArray;}
const productOfOtherArrays=_cartesian.apply(null,args.slice(1));return firstArray.reduce(function(acc,elem){return acc.concat(productOfOtherArrays.map(function(tuple){return elem.concat(tuple);}));},[]);}
function _getExtractorFrom(criterion){if(criterion){switch(typeof criterion){case"string":return(element)=>element[criterion];case"function":return criterion;default:throw new Error(`Expected criterion of type 'string' or 'function' and got '${typeof criterion}'`);}}else{return(element)=>element;}}
__exports.ensureArray=ensureArray;function ensureArray(value){return value&&typeof value==="object"&&value[Symbol.iterator]?[...value]:[value];}
__exports.intersection=intersection;function intersection(array1,array2){return array1.filter((v)=>array2.includes(v));}
__exports.groupBy=groupBy;function groupBy(array,criterion){const extract=_getExtractorFrom(criterion);const groups={};for(const element of array){const group=String(extract(element));if(!(group in groups)){groups[group]=[];}
groups[group].push(element);}
return groups;}
__exports.sortBy=sortBy;function sortBy(array,criterion,order="asc"){const extract=_getExtractorFrom(criterion);return array.slice().sort((elA,elB)=>{const a=extract(elA);const b=extract(elB);let result;if(isNaN(a)&&isNaN(b)){result=a>b?1:a<b?-1:0;}else{result=a-b;}
return order==="asc"?result:-result;});}
__exports.symmetricalDifference=symmetricalDifference;function symmetricalDifference(arrayA,arrayB){return arrayA.filter((id)=>!arrayB.includes(id)).concat(arrayB.filter((id)=>!arrayA.includes(id)));}
__exports.cartesian=cartesian;function cartesian(){const args=Array.prototype.slice.call(arguments);if(args.length===0){return[undefined];}else if(args.length===1){return args[0];}else{return _cartesian.apply(null,args);}}
const shallowEqual=__exports.shallowEqual=_shallowEqual;__exports.sections=sections;function sections(array){const sections=[];for(let i=0;i<array.length+1;i++){sections.push(array.slice(0,i));}
return sections;}
__exports.unique=unique;function unique(array){return Array.from(new Set(array));}
__exports.zip=zip;function zip(array1,array2,fill=false){const result=[];const getLength=fill?Math.max:Math.min;for(let i=0;i<getLength(array1.length,array2.length);i++){result.push([array1[i],array2[i]]);}
return result;}
__exports.zipWith=zipWith;function zipWith(array1,array2,func){return zip(array1,array2).map(([e1,e2])=>func(e1,e2));}
return __exports;});;

/* /web/static/src/core/utils/autoresize.js */
odoo.define('@web/core/utils/autoresize',['@odoo/owl','@web/core/browser/browser'],function(require){'use strict';let __exports={};const{useEffect}=require("@odoo/owl");const{browser}=require("@web/core/browser/browser");__exports.useAutoresize=useAutoresize;function useAutoresize(ref,options={}){let resize=null;useEffect((el)=>{if(el){resize=(el instanceof HTMLInputElement?resizeInput:resizeTextArea).bind(null,el,options);el.addEventListener("input",resize);return()=>{el.removeEventListener("input",resize);resize=null;};}},()=>[ref.el]);useEffect(()=>{if(resize){resize(ref.el,options);}});}
function resizeInput(input){input.style.width="100%";const maxWidth=input.clientWidth;const isSafari16=/Version\/16.+Safari/i.test(browser.navigator.userAgent);input.style.width="10px";if(input.value===""&&input.placeholder!==""){input.style.width="auto";return;}
if(input.scrollWidth+5+(isSafari16?8:0)>maxWidth){input.style.width="100%";return;}
input.style.width=input.scrollWidth+5+(isSafari16?8:0)+"px";}
__exports.resizeTextArea=resizeTextArea;function resizeTextArea(textarea,options={}){const minimumHeight=options.minimumHeight||0;let heightOffset=0;const style=window.getComputedStyle(textarea);if(style.boxSizing==="border-box"){const paddingHeight=parseFloat(style.paddingTop)+parseFloat(style.paddingBottom);const borderHeight=parseFloat(style.borderTopWidth)+parseFloat(style.borderBottomWidth);heightOffset=borderHeight+paddingHeight;}
const previousStyle={borderTopWidth:style.borderTopWidth,borderBottomWidth:style.borderBottomWidth,padding:style.padding,};Object.assign(textarea.style,{height:"auto",borderTopWidth:0,borderBottomWidth:0,paddingTop:0,paddingRight:style.paddingRight,paddingBottom:0,paddingLeft:style.paddingLeft,});textarea.style.height="auto";const height=Math.max(minimumHeight,textarea.scrollHeight+heightOffset);Object.assign(textarea.style,previousStyle,{height:`${height}px`});textarea.parentElement.style.height=`${height}px`;}
return __exports;});;

/* /web/static/src/core/utils/binary.js */
odoo.define('@web/core/utils/binary',['@web/core/l10n/translation'],function(require){'use strict';let __exports={};const{_t}=require("@web/core/l10n/translation");__exports.isBinarySize=isBinarySize;function isBinarySize(value){return/^\d+(\.\d*)? [^0-9]+$/.test(value);}
__exports.toBase64Length=toBase64Length;function toBase64Length(maxBytes){return Math.ceil(maxBytes*4/3);}
__exports.humanSize=humanSize;function humanSize(size){const units=_t("Bytes|Kb|Mb|Gb|Tb|Pb|Eb|Zb|Yb").split("|");let i=0;while(size>=1024){size/=1024;++i;}
return`${size.toFixed(2)} ${units[i].trim()}`;}
return __exports;});;

/* /web/static/src/core/utils/cache.js */
odoo.define('@web/core/utils/cache',[],function(require){'use strict';let __exports={};const Cache=__exports.Cache=class Cache{constructor(getValue,getKey){this.cache={};this.getKey=getKey;this.getValue=getValue;}
_getCacheAndKey(...path){let cache=this.cache;let key;if(this.getKey){key=this.getKey(...path);}else{for(let i=0;i<path.length-1;i++){cache=cache[path[i]]=cache[path[i]]||{};}
key=path[path.length-1];}
return{cache,key};}
clear(...path){const{cache,key}=this._getCacheAndKey(...path);delete cache[key];}
invalidate(){this.cache={};}
read(...path){const{cache,key}=this._getCacheAndKey(...path);if(!(key in cache)){cache[key]=this.getValue(...path);}
return cache[key];}}
return __exports;});;

/* /web/static/src/core/utils/colors.js */
odoo.define('@web/core/utils/colors',[],function(require){'use strict';let __exports={};__exports.convertRgbToHsl=convertRgbToHsl;function convertRgbToHsl(r,g,b){if(typeof(r)!=='number'||isNaN(r)||r<0||r>255||typeof(g)!=='number'||isNaN(g)||g<0||g>255||typeof(b)!=='number'||isNaN(b)||b<0||b>255){return false;}
var red=r/255;var green=g/255;var blue=b/255;var maxColor=Math.max(red,green,blue);var minColor=Math.min(red,green,blue);var delta=maxColor-minColor;var hue=0;var saturation=0;var lightness=(maxColor+minColor)/2;if(delta){if(maxColor===red){hue=(green-blue)/delta;}
if(maxColor===green){hue=2+(blue-red)/delta;}
if(maxColor===blue){hue=4+(red-green)/delta;}
if(maxColor){saturation=delta/(1-Math.abs(2*lightness-1));}}
hue=60*hue;return{hue:hue<0?hue+360:hue,saturation:saturation*100,lightness:lightness*100,};};__exports.convertHslToRgb=convertHslToRgb;function convertHslToRgb(h,s,l){if(typeof(h)!=='number'||isNaN(h)||h<0||h>360||typeof(s)!=='number'||isNaN(s)||s<0||s>100||typeof(l)!=='number'||isNaN(l)||l<0||l>100){return false;}
var huePrime=h/60;var saturation=s/100;var lightness=l/100;var chroma=saturation*(1-Math.abs(2*lightness-1));var secondComponent=chroma*(1-Math.abs(huePrime%2-1));var lightnessAdjustment=lightness-chroma/2;var precision=255;chroma=Math.round((chroma+lightnessAdjustment)*precision);secondComponent=Math.round((secondComponent+lightnessAdjustment)*precision);lightnessAdjustment=Math.round((lightnessAdjustment)*precision);if(huePrime>=0&&huePrime<1){return{red:chroma,green:secondComponent,blue:lightnessAdjustment,};}
if(huePrime>=1&&huePrime<2){return{red:secondComponent,green:chroma,blue:lightnessAdjustment,};}
if(huePrime>=2&&huePrime<3){return{red:lightnessAdjustment,green:chroma,blue:secondComponent,};}
if(huePrime>=3&&huePrime<4){return{red:lightnessAdjustment,green:secondComponent,blue:chroma,};}
if(huePrime>=4&&huePrime<5){return{red:secondComponent,green:lightnessAdjustment,blue:chroma,};}
if(huePrime>=5&&huePrime<=6){return{red:chroma,green:lightnessAdjustment,blue:secondComponent,};}
return false;};__exports.convertRgbaToCSSColor=convertRgbaToCSSColor;function convertRgbaToCSSColor(r,g,b,a){if(typeof(r)!=='number'||isNaN(r)||r<0||r>255||typeof(g)!=='number'||isNaN(g)||g<0||g>255||typeof(b)!=='number'||isNaN(b)||b<0||b>255){return false;}
if(typeof(a)!=='number'||isNaN(a)||a<0||Math.abs(a-100)<Number.EPSILON){const rr=r<16?'0'+r.toString(16):r.toString(16);const gg=g<16?'0'+g.toString(16):g.toString(16);const bb=b<16?'0'+b.toString(16):b.toString(16);return(`#${rr}${gg}${bb}`).toUpperCase();}
return`rgba(${r}, ${g}, ${b}, ${parseFloat((a / 100.0).toFixed(3))})`;};__exports.convertCSSColorToRgba=convertCSSColorToRgba;function convertCSSColorToRgba(cssColor){const rgba=cssColor.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+(?:\.\d+)?))?\)$/);if(rgba){if(rgba[4]===undefined){rgba[4]=1;}
return{red:parseInt(rgba[1]),green:parseInt(rgba[2]),blue:parseInt(rgba[3]),opacity:Math.round(parseFloat(rgba[4])*100),};}
if(/^#([0-9A-F]{6}|[0-9A-F]{8})$/i.test(cssColor)){return{red:parseInt(cssColor.substr(1,2),16),green:parseInt(cssColor.substr(3,2),16),blue:parseInt(cssColor.substr(5,2),16),opacity:(cssColor.length===9?(parseInt(cssColor.substr(7,2),16)/255):1)*100,};}
if(/color\(.+\)/.test(cssColor)){const canvasEl=document.createElement("canvas");canvasEl.height=1;canvasEl.width=1;const ctx=canvasEl.getContext("2d");ctx.fillStyle=cssColor;ctx.fillRect(0,0,1,1);const data=ctx.getImageData(0,0,1,1).data;return{red:data[0],green:data[1],blue:data[2],opacity:data[3]/2.55,};}
return false;};__exports.normalizeCSSColor=normalizeCSSColor;function normalizeCSSColor(cssColor){const rgba=convertCSSColorToRgba(cssColor);if(!rgba){return cssColor;}
return convertRgbaToCSSColor(rgba.red,rgba.green,rgba.blue,rgba.opacity);};__exports.isCSSColor=isCSSColor;function isCSSColor(cssColor){return convertCSSColorToRgba(cssColor)!==false;};__exports.mixCssColors=mixCssColors;function mixCssColors(cssColor1,cssColor2,weight){const rgba1=convertCSSColorToRgba(cssColor1);const rgba2=convertCSSColorToRgba(cssColor2);const rgb1=[rgba1.red,rgba1.green,rgba1.blue];const rgb2=[rgba2.red,rgba2.green,rgba2.blue];const[r,g,b]=rgb1.map((_,idx)=>Math.round(rgb2[idx]+(rgb1[idx]-rgb2[idx])*weight));return convertRgbaToCSSColor(r,g,b);};return __exports;});;

/* /web/static/src/core/utils/components.js */
odoo.define('@web/core/utils/components',['@odoo/owl'],function(require){'use strict';let __exports={};const{Component,onError,xml,useSubEnv}=require("@odoo/owl");const ErrorHandler=__exports.ErrorHandler=class ErrorHandler extends Component{setup(){onError((error)=>{this.props.onError(error);});}}
ErrorHandler.template=xml`<t t-slot="default" />`;ErrorHandler.props=["onError","slots"];const WithEnv=__exports.WithEnv=class WithEnv extends Component{setup(){useSubEnv(this.props.env);}}
WithEnv.template=xml`<t t-slot="default"/>`;WithEnv.props=["env","slots"];return __exports;});;

/* /web/static/src/core/utils/concurrency.js */
odoo.define('@web/core/utils/concurrency',[],function(require){'use strict';let __exports={};__exports.delay=delay;function delay(wait){return new Promise(function(resolve){setTimeout(resolve,wait);});}
const KeepLast=__exports.KeepLast=class KeepLast{constructor(){this._id=0;}
add(promise){this._id++;const currentId=this._id;return new Promise((resolve,reject)=>{promise.then((value)=>{if(this._id===currentId){resolve(value);}}).catch((reason)=>{if(this._id===currentId){reject(reason);}});});}}
const Mutex=__exports.Mutex=class Mutex{constructor(){this._lock=Promise.resolve();this._queueSize=0;this._unlockedProm=undefined;this._unlock=undefined;}
async exec(action){this._queueSize++;if(!this._unlockedProm){this._unlockedProm=new Promise((resolve)=>{this._unlock=()=>{resolve();this._unlockedProm=undefined;};});}
const always=()=>{return Promise.resolve(action()).finally(()=>{if(--this._queueSize===0){this._unlock();}});};this._lock=this._lock.then(always,always);return this._lock;}
getUnlockedDef(){return this._unlockedProm||Promise.resolve();}}
const Race=__exports.Race=class Race{constructor(){this.currentProm=null;this.currentPromResolver=null;this.currentPromRejecter=null;}
add(promise){if(!this.currentProm){this.currentProm=new Promise((resolve,reject)=>{this.currentPromResolver=(value)=>{this.currentProm=null;this.currentPromResolver=null;this.currentPromRejecter=null;resolve(value);};this.currentPromRejecter=(error)=>{this.currentProm=null;this.currentPromResolver=null;this.currentPromRejecter=null;reject(error);};});}
promise.then(this.currentPromResolver).catch(this.currentPromRejecter);return this.currentProm;}
getCurrentProm(){return this.currentProm;}}
const Deferred=__exports.Deferred=class Deferred extends Promise{constructor(){let resolve;let reject;const prom=new Promise((res,rej)=>{resolve=res;reject=rej;});return Object.assign(prom,{resolve,reject});}}
return __exports;});;

/* /web/static/src/core/utils/draggable.js */
odoo.define('@web/core/utils/draggable',['@web/core/utils/draggable_hook_builder_owl','@web/core/utils/objects'],function(require){'use strict';let __exports={};const{makeDraggableHook}=require("@web/core/utils/draggable_hook_builder_owl");const{pick}=require("@web/core/utils/objects");const useDraggable=__exports.useDraggable=makeDraggableHook({name:"useDraggable",onWillStartDrag:({ctx})=>pick(ctx.current,"element"),onDragStart:({ctx})=>pick(ctx.current,"element"),onDrag:({ctx})=>pick(ctx.current,"element"),onDragEnd:({ctx})=>pick(ctx.current,"element"),onDrop:({ctx})=>pick(ctx.current,"element"),});return __exports;});;

/* /web/static/src/core/utils/draggable_hook_builder.js */
odoo.define('@web/core/utils/draggable_hook_builder',['@web/core/utils/numbers','@web/core/utils/scrolling','@web/core/utils/timing','@web/core/browser/browser','@web/core/browser/feature_detection'],function(require){'use strict';let __exports={};const{clamp}=require("@web/core/utils/numbers");const{closestScrollableX,closestScrollableY}=require("@web/core/utils/scrolling");const{setRecurringAnimationFrame}=require("@web/core/utils/timing");const{browser}=require("@web/core/browser/browser");const{hasTouch,isBrowserFirefox,isIOS}=require("@web/core/browser/feature_detection");const DRAGGABLE_CLASS="o_draggable";const DRAGGED_CLASS=__exports.DRAGGED_CLASS="o_dragged";const DEFAULT_ACCEPTED_PARAMS={enable:[Boolean,Function],preventDrag:[Function],ref:[Object],elements:[String],handle:[String,Function],ignore:[String,Function],cursor:[String],edgeScrolling:[Object,Function],delay:[Number],tolerance:[Number],iframeWindow:[Object,Function],};const DEFAULT_DEFAULT_PARAMS={elements:`.${DRAGGABLE_CLASS}`,enable:true,preventDrag:()=>false,edgeScrolling:{speed:10,threshold:30,},delay:0,tolerance:10,touch_delay:300,};const LEFT_CLICK=0;const MANDATORY_PARAMS=["ref"];const WHITE_LISTED_KEYS=["Alt","Control","Meta","Shift"];const elCache={};function camelToKebab(str){return str.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();}
function getReturnValue(valueOrFn){if(typeof valueOrFn==="function"){return valueOrFn();}
return valueOrFn;}
function getScrollParents(el){return[closestScrollableX(el),closestScrollableY(el)];}
function makeCleanupManager(defaultCleanupFn){const add=(cleanupFn)=>typeof cleanupFn==="function"&&cleanups.push(cleanupFn);const cleanup=()=>{while(cleanups.length){cleanups.pop()();}
add(defaultCleanupFn);};const cleanups=[];add(defaultCleanupFn);return{add,cleanup};}
function makeDOMHelpers(cleanup){const addClass=(el,...classNames)=>{if(!el||!classNames.length){return;}
cleanup.add(()=>el.classList.remove(...classNames));el.classList.add(...classNames);};const addListener=(el,event,callback,options={})=>{if(!el||!event||!callback){return;}
const{noAddedStyle}=options;delete options.noAddedStyle;el.addEventListener(event,callback,options);if(!noAddedStyle&&/mouse|pointer|touch/.test(event)){addStyle(el,{pointerEvents:"auto"});}
cleanup.add(()=>el.removeEventListener(event,callback,options));};const addStyle=(el,style)=>{if(!el||!style||!Object.keys(style).length){return;}
cleanup.add(saveAttribute(el,"style"));for(const key in style){const[value,priority]=String(style[key]).split(/\s*!\s*/);el.style.setProperty(camelToKebab(key),value,priority);}};const getRect=(el,options={})=>{if(!el){return{};}
const rect=el.getBoundingClientRect();if(options.adjust){const style=getComputedStyle(el);const[pl,pr,pt,pb]=["padding-left","padding-right","padding-top","padding-bottom",].map((prop)=>pixelValueToNumber(style.getPropertyValue(prop)));rect.x+=pl;rect.y+=pt;rect.width-=pl+pr;rect.height-=pt+pb;}
return rect;};const removeAttribute=(el,attribute)=>{if(!el||!attribute){return;}
cleanup.add(saveAttribute(el,attribute));el.removeAttribute(attribute);};const removeClass=(el,...classNames)=>{if(!el||!classNames.length){return;}
cleanup.add(saveAttribute(el,"class"));el.classList.remove(...classNames);};const removeStyle=(el,...properties)=>{if(!el||!properties.length){return;}
cleanup.add(saveAttribute(el,"style"));for(const key of properties){el.style.removeProperty(camelToKebab(key));}};const setAttribute=(el,attribute,value)=>{if(!el||!attribute){return;}
cleanup.add(saveAttribute(el,attribute));el.setAttribute(attribute,String(value));};return{addClass,addListener,addStyle,getRect,removeAttribute,removeClass,removeStyle,setAttribute,};}
function pixelValueToNumber(val){return Number(val.endsWith("px")?val.slice(0,-2):val);}
function safePrevent(ev,{stop}={}){if(ev.cancelable){ev.preventDefault();if(stop){ev.stopPropagation();}}}
function saveAttribute(el,attribute){const restoreAttribute=()=>{cache.delete(el);if(hasAttribute){el.setAttribute(attribute,originalValue);}else{el.removeAttribute(attribute);}};if(!(attribute in elCache)){elCache[attribute]=new Set();}
const cache=elCache[attribute];if(cache.has(el)){return;}
cache.add(el);const hasAttribute=el.hasAttribute(attribute);const originalValue=el.getAttribute(attribute);return restoreAttribute;}
function toFunction(value){return typeof value==="function"?value:()=>value;}
__exports.makeDraggableHook=makeDraggableHook;function makeDraggableHook(hookParams){hookParams=getReturnValue(hookParams);const hookName=hookParams.name||"useAnonymousDraggable";const{setupHooks}=hookParams;const allAcceptedParams={...DEFAULT_ACCEPTED_PARAMS,...hookParams.acceptedParams};const defaultParams={...DEFAULT_DEFAULT_PARAMS,...hookParams.defaultParams};const computeParams=(params)=>{const computedParams={enable:()=>true};for(const prop in allAcceptedParams){if(prop in params){if(prop==="enable"){computedParams[prop]=toFunction(params[prop]);}else if(allAcceptedParams[prop].length===1&&allAcceptedParams[prop][0]===Function){computedParams[prop]=params[prop];}else{computedParams[prop]=getReturnValue(params[prop]);}}}
return Object.entries(computedParams);};const makeError=(reason)=>new Error(`Error in hook ${hookName}: ${reason}.`);return{[hookName](params){const callBuildHandler=(hookHandlerName,arg)=>{if(typeof hookParams[hookHandlerName]!=="function"){return;}
const returnValue=hookParams[hookHandlerName]({ctx,...helpers,...arg});if(returnValue){callHandler(hookHandlerName,returnValue);}};const callHandler=(handlerName,arg)=>{if(typeof params[handlerName]!=="function"){return;}
try{params[handlerName]({...dom,...ctx.pointer,...arg});}catch(err){dragEnd(null,true);throw err;}};const canStartDrag=()=>{const{pointer,current:{initialPosition},}=ctx;return(!ctx.tolerance||Math.hypot(pointer.x-initialPosition.x,pointer.y-initialPosition.y)>=ctx.tolerance);};const dragStart=()=>{state.dragging=true;state.willDrag=false;[ctx.current.scrollParentX,ctx.current.scrollParentY]=getScrollParents(ctx.current.container);updateRects();const{x,y,width,height}=ctx.current.elementRect;ctx.current.offset={x:ctx.current.initialPosition.x-x,y:ctx.current.initialPosition.y-y,};if(ctx.followCursor){dom.addStyle(ctx.current.element,{width:`${width}px`,height:`${height}px`,position:"fixed !important",});updateElementPosition();}
dom.addClass(document.body,"pe-none","user-select-none");if(params.iframeWindow){for(const iframe of document.getElementsByTagName("iframe")){if(iframe.contentWindow===params.iframeWindow){dom.addClass(iframe,"pe-none","user-select-none");}}}
if(ctx.cursor){dom.addStyle(document.body,{cursor:ctx.cursor});}
if((ctx.current.scrollParentX||ctx.current.scrollParentY)&&ctx.edgeScrolling.enabled){const cleanupFn=setRecurringAnimationFrame(handleEdgeScrolling);cleanup.add(cleanupFn);}
dom.addClass(ctx.current.element,DRAGGED_CLASS);callBuildHandler("onDragStart");};const dragEnd=(target,inErrorState)=>{if(state.dragging){if(!inErrorState){if(target){callBuildHandler("onDrop",{target});}
callBuildHandler("onDragEnd");}}
cleanup.cleanup();};const handleEdgeScrolling=(deltaTime)=>{updateRects();const eRect=ctx.current.elementRect;const xRect=ctx.current.scrollParentXRect;const yRect=ctx.current.scrollParentYRect;const{speed,threshold}=ctx.edgeScrolling;const correctedSpeed=(speed/16)*deltaTime;const diff={};if(xRect){const maxWidth=xRect.x+xRect.width;if(eRect.x-xRect.x<threshold){diff.x=[eRect.x-xRect.x,-1];}else if(maxWidth-eRect.x-eRect.width<threshold){diff.x=[maxWidth-eRect.x-eRect.width,1];}}
if(yRect){const maxHeight=yRect.y+yRect.height;if(eRect.y-yRect.y<threshold){diff.y=[eRect.y-yRect.y,-1];}else if(maxHeight-eRect.y-eRect.height<threshold){diff.y=[maxHeight-eRect.y-eRect.height,1];}}
const diffToScroll=([delta,sign])=>(1-clamp(delta,0,threshold)/threshold)*correctedSpeed*sign;if(diff.y){ctx.current.scrollParentY.scrollBy({top:diffToScroll(diff.y)});}
if(diff.x){ctx.current.scrollParentX.scrollBy({left:diffToScroll(diff.x)});}};const onKeyDown=(ev)=>{if(!state.dragging||!ctx.enable()){return;}
if(!WHITE_LISTED_KEYS.includes(ev.key)){safePrevent(ev,{stop:true});dragEnd(null);}};const onPointerCancel=()=>{dragEnd(null);};const onPointerDown=(ev)=>{updatePointerPosition(ev);const initiationDelay=ev.pointerType==="touch"?ctx.touch_delay:ctx.delay;dragEnd(null);const fullSelectorEl=ev.target.closest(ctx.fullSelector);if(ev.button!==LEFT_CLICK||!ctx.enable()||!fullSelectorEl||(ctx.ignoreSelector&&ev.target.closest(ctx.ignoreSelector))||ctx.preventDrag(fullSelectorEl)){return;}
safePrevent(ev);let activeElement=document.activeElement;while(activeElement?.nodeName==="IFRAME"){activeElement=activeElement.contentDocument?.activeElement;}
if(activeElement&&!activeElement.contains(ev.target)){activeElement.blur();}
const{currentTarget,pointerId,target}=ev;ctx.current.initialPosition={...ctx.pointer};if(target.hasPointerCapture(pointerId)){target.releasePointerCapture(pointerId);}
if(initiationDelay){if(hasTouch()){if(ev.pointerType==="touch"){dom.addClass(target.closest(ctx.elementSelector),"o_touch_bounce");}
if(isBrowserFirefox()){const links=[...currentTarget.querySelectorAll("[href")];if(currentTarget.hasAttribute("href")){links.unshift(currentTarget);}
for(const link of links){dom.removeAttribute(link,"href");}}
if(isIOS()){for(const image of currentTarget.getElementsByTagName("img")){dom.setAttribute(image,"draggable",false);}}}
ctx.current.timeout=browser.setTimeout(()=>{ctx.current.initialPosition={...ctx.pointer};willStartDrag(target);const{x:px,y:py}=ctx.pointer;const{x,y,width,height}=dom.getRect(ctx.current.element);if(px<x||x+width<px||py<y||y+height<py){dragEnd(null);}},initiationDelay);cleanup.add(()=>browser.clearTimeout(ctx.current.timeout));}else{willStartDrag(target);}};const onPointerMove=(ev)=>{updatePointerPosition(ev);if(!ctx.current.element||!ctx.enable()){return;}
safePrevent(ev);if(!state.dragging){if(!canStartDrag()){return;}
dragStart();}
if(ctx.followCursor){updateElementPosition();}
callBuildHandler("onDrag");};const onPointerUp=(ev)=>{updatePointerPosition(ev);dragEnd(ev.target);};const updateElementPosition=()=>{const{containerRect,element,elementRect,offset}=ctx.current;const{width:ew,height:eh}=elementRect;const{x:cx,y:cy,width:cw,height:ch}=containerRect;dom.addStyle(element,{left:`${clamp(ctx.pointer.x - offset.x, cx, cx + cw - ew)}px`,top:`${clamp(ctx.pointer.y - offset.y, cy, cy + ch - eh)}px`,});};const updatePointerPosition=(ev)=>{ctx.pointer.x=ev.clientX;ctx.pointer.y=ev.clientY;};const updateRects=()=>{const{current}=ctx;const{container,element,scrollParentX,scrollParentY}=current;current.containerRect=dom.getRect(container,{adjust:true});let iframeOffsetX=0;let iframeOffsetY=0;const iframeEl=container.ownerDocument.defaultView.frameElement;if(iframeEl&&!iframeEl.contentDocument?.contains(element)){const{x,y}=dom.getRect(iframeEl);iframeOffsetX=x;iframeOffsetY=y;current.containerRect.x+=iframeOffsetX;current.containerRect.y+=iframeOffsetY;}
current.containerRect.width=container.scrollWidth;current.containerRect.height=container.scrollHeight;current.scrollParentXRect=null;current.scrollParentYRect=null;if(ctx.edgeScrolling.enabled){if(scrollParentX){current.scrollParentXRect=dom.getRect(scrollParentX,{adjust:true});current.scrollParentXRect.x+=iframeOffsetX;current.scrollParentXRect.y+=iframeOffsetY;const right=Math.min(current.containerRect.left+container.scrollWidth,current.scrollParentXRect.right);current.containerRect.x=Math.max(current.containerRect.x,current.scrollParentXRect.x);current.containerRect.width=right-current.containerRect.x;}
if(scrollParentY){current.scrollParentYRect=dom.getRect(scrollParentY,{adjust:true});current.scrollParentYRect.x+=iframeOffsetX;current.scrollParentYRect.y+=iframeOffsetY;const bottom=Math.min(current.containerRect.top+container.scrollHeight,current.scrollParentYRect.bottom);current.containerRect.y=Math.max(current.containerRect.y,current.scrollParentYRect.y);current.containerRect.height=bottom-current.containerRect.y;}}
ctx.current.elementRect=dom.getRect(element);};const willStartDrag=(target)=>{ctx.current.element=target.closest(ctx.elementSelector);ctx.current.container=ctx.ref.el;cleanup.add(()=>(ctx.current={}));state.willDrag=true;callBuildHandler("onWillStartDrag");if(hasTouch()){dom.addListener(window,"touchmove",safePrevent,{passive:false,noAddedStyle:true,});if(params.iframeWindow){dom.addListener(params.iframeWindow,"touchmove",safePrevent,{passive:false,noAddedStyle:true,});}}};const cleanup=makeCleanupManager(()=>(state.dragging=false));const effectCleanup=makeCleanupManager();const dom=makeDOMHelpers(cleanup);const helpers={...dom,addCleanup:cleanup.add,addEffectCleanup:effectCleanup.add,callHandler,};const state=setupHooks.wrapState({dragging:false});for(const prop in allAcceptedParams){const type=typeof params[prop];const acceptedTypes=allAcceptedParams[prop].map((t)=>t.name.toLowerCase());if(params[prop]){if(!acceptedTypes.includes(type)){throw makeError(`invalid type for property "${prop}" in parameters: expected { ${acceptedTypes.join(
                                ", "
                            )} } and got ${type}`);}}else if(MANDATORY_PARAMS.includes(prop)&&!defaultParams[prop]){throw makeError(`missing required property "${prop}" in parameters`);}}
const ctx={enable:()=>false,preventDrag:()=>false,ref:params.ref,ignoreSelector:null,fullSelector:null,followCursor:true,cursor:null,pointer:{x:0,y:0},edgeScrolling:{enabled:true},get dragging(){return state.dragging;},get willDrag(){return state.willDrag;},current:{},};setupHooks.setup((...deps)=>{const actualParams={...defaultParams,...Object.fromEntries(deps)};if(!ctx.ref.el){return;}
ctx.enable=actualParams.enable;if(actualParams.preventDrag){ctx.preventDrag=actualParams.preventDrag;}
ctx.elementSelector=actualParams.elements;if(!ctx.elementSelector){throw makeError(`no value found by "elements" selector: ${ctx.elementSelector}`);}
const allSelectors=[ctx.elementSelector];ctx.cursor=actualParams.cursor||null;if(actualParams.handle){allSelectors.push(actualParams.handle);}
if(actualParams.ignore){ctx.ignoreSelector=actualParams.ignore;}
ctx.fullSelector=allSelectors.join(" ");Object.assign(ctx.edgeScrolling,actualParams.edgeScrolling);ctx.delay=actualParams.delay;ctx.touch_delay=actualParams.delay||actualParams.touch_delay;ctx.tolerance=actualParams.tolerance;callBuildHandler("onComputeParams",{params:actualParams});return effectCleanup.cleanup;},()=>computeParams(params));const useMouseEvents=isBrowserFirefox()&&!hasTouch()&&params.iframeWindow;setupHooks.setup((el)=>{if(el){const{add,cleanup}=makeCleanupManager();const{addListener}=makeDOMHelpers({add});const event=useMouseEvents?"mousedown":"pointerdown";addListener(el,event,onPointerDown,{noAddedStyle:true});if(hasTouch()){addListener(el,"contextmenu",safePrevent);addListener(el,"touchstart",()=>{},{passive:false,noAddedStyle:true,});}
return cleanup;}},()=>[ctx.ref.el]);const addWindowListener=(type,listener,options)=>{if(params.iframeWindow){setupHooks.addListener(params.iframeWindow,type,listener,options);}
setupHooks.addListener(window,type,listener,options);};const throttledOnPointerMove=setupHooks.throttle(onPointerMove);addWindowListener(useMouseEvents?"mousemove":"pointermove",throttledOnPointerMove,{passive:false});addWindowListener(useMouseEvents?"mouseup":"pointerup",onPointerUp);addWindowListener("pointercancel",onPointerCancel);addWindowListener("keydown",onKeyDown,{capture:true});setupHooks.teardown(()=>dragEnd(null));return state;},}[hookName];}
return __exports;});;

/* /web/static/src/core/utils/draggable_hook_builder_owl.js */
odoo.define('@web/core/utils/draggable_hook_builder_owl',['@odoo/owl','@web/core/utils/timing','@web/core/utils/draggable_hook_builder'],function(require){'use strict';let __exports={};const{onWillUnmount,reactive,useEffect,useExternalListener}=require("@odoo/owl");const{useThrottleForAnimation}=require("@web/core/utils/timing");const{makeDraggableHook:nativeMakeDraggableHook}=require("@web/core/utils/draggable_hook_builder");__exports.makeDraggableHook=makeDraggableHook;function makeDraggableHook(params){return nativeMakeDraggableHook({...params,setupHooks:{addListener:useExternalListener,setup:useEffect,teardown:onWillUnmount,throttle:useThrottleForAnimation,wrapState:reactive,},});}
return __exports;});;

/* /web/static/src/core/utils/files.js */
odoo.define('@web/core/utils/files',['@web/core/utils/numbers','@web/session','@web/core/l10n/translation'],function(require){'use strict';let __exports={};const{humanNumber}=require("@web/core/utils/numbers");const{session}=require("@web/session");const{_t}=require("@web/core/l10n/translation");const DEFAULT_MAX_FILE_SIZE=128*1024*1024;__exports.checkFileSize=checkFileSize;function checkFileSize(fileSize,notificationService){const maxUploadSize=session.max_file_upload_size||DEFAULT_MAX_FILE_SIZE;if(fileSize>maxUploadSize){notificationService.add(_t("The selected file (%sB) is over the maximum allowed file size (%sB).",humanNumber(fileSize),humanNumber(maxUploadSize)),{type:"danger",});return false;}
return true;}
return __exports;});;

/* /web/static/src/core/utils/functions.js */
odoo.define('@web/core/utils/functions',[],function(require){'use strict';let __exports={};__exports.memoize=memoize;function memoize(func){const cache=new Map();const funcName=func.name?func.name+" (memoized)":"memoized";return{[funcName](...args){if(!cache.has(args[0])){cache.set(args[0],func(...args));}
return cache.get(...args);},}[funcName];}
__exports.uniqueId=uniqueId;function uniqueId(prefix=""){return`${prefix}${++uniqueId.nextId}`;}
uniqueId.nextId=0;return __exports;});;

/* /web/static/src/core/utils/hooks.js */
odoo.define('@web/core/utils/hooks',['@web/env','@web/core/browser/feature_detection','@odoo/owl'],function(require){'use strict';let __exports={};const{SERVICES_METADATA}=require("@web/env");const{hasTouch,isMobileOS}=require("@web/core/browser/feature_detection");const{status,useComponent,useEffect,useRef,onWillUnmount}=require("@odoo/owl");__exports.useAutofocus=useAutofocus;function useAutofocus({refName,selectAll,mobile}={}){const ref=useRef(refName||"autofocus");const uiService=useService("ui");if(!mobile&&hasTouch()){return ref;}
if(!mobile&&isMobileOS()){return ref;}
useEffect((el)=>{if(el&&(!uiService.activeElement||uiService.activeElement.contains(el))){el.focus();if(["INPUT","TEXTAREA"].includes(el.tagName)&&el.type!=="number"){el.selectionEnd=el.value.length;el.selectionStart=selectAll?0:el.value.length;}}},()=>[ref.el]);return ref;}
__exports.useBus=useBus;function useBus(bus,eventName,callback){const component=useComponent();useEffect(()=>{const listener=callback.bind(component);bus.addEventListener(eventName,listener);return()=>bus.removeEventListener(eventName,listener);},()=>[]);}
function _protectMethod(component,fn){return function(...args){if(status(component)==="destroyed"){return Promise.reject(new Error("Component is destroyed"));}
const prom=Promise.resolve(fn.call(this,...args));const protectedProm=prom.then((result)=>status(component)==="destroyed"?new Promise(()=>{}):result);return Object.assign(protectedProm,{abort:prom.abort,cancel:prom.cancel,});};}
__exports.useService=useService;function useService(serviceName){const component=useComponent();const{services}=component.env;if(!(serviceName in services)){throw new Error(`Service ${serviceName} is not available`);}
const service=services[serviceName];if(serviceName in SERVICES_METADATA){if(service instanceof Function){return _protectMethod(component,service);}else{const methods=SERVICES_METADATA[serviceName];const result=Object.create(service);for(const method of methods){result[method]=_protectMethod(component,service[method]);}
return result;}}
return service;}
__exports.useSpellCheck=useSpellCheck;function useSpellCheck({refName}={}){const elements=[];const ref=useRef(refName||"spellcheck");function toggleSpellcheck(ev){ev.target.spellcheck=document.activeElement===ev.target;}
useEffect((el)=>{if(el){const inputs=["INPUT","TEXTAREA"].includes(el.nodeName)||el.isContentEditable?[el]:el.querySelectorAll("input, textarea, [contenteditable=true]");inputs.forEach((input)=>{if(input.spellcheck!==false){elements.push(input);input.addEventListener("focus",toggleSpellcheck);input.addEventListener("blur",toggleSpellcheck);}});}
return()=>{elements.forEach((input)=>{input.removeEventListener("focus",toggleSpellcheck);input.removeEventListener("blur",toggleSpellcheck);});};},()=>[ref.el]);}
__exports.useChildRef=useChildRef;function useChildRef(){let defined=false;let value;return function ref(v){value=v;if(defined){return;}
Object.defineProperty(ref,"el",{get(){return value.el;},});defined=true;};}
__exports.useForwardRefToParent=useForwardRefToParent;function useForwardRefToParent(refName){const component=useComponent();const ref=useRef(refName);if(component.props[refName]){component.props[refName](ref);}
return ref;}
__exports.useOwnedDialogs=useOwnedDialogs;function useOwnedDialogs(){const dialogService=useService("dialog");const cbs=[];onWillUnmount(()=>{cbs.forEach((cb)=>cb());});const addDialog=(...args)=>{const close=dialogService.add(...args);cbs.push(close);return close;};return addDialog;}
__exports.useRefListener=useRefListener;function useRefListener(ref,...listener){useEffect((el)=>{el?.addEventListener(...listener);return()=>el?.removeEventListener(...listener);},()=>[ref.el]);}
return __exports;});;

/* /web/static/src/core/utils/misc.js */
odoo.define('@web/core/utils/misc',[],function(require){'use strict';let __exports={};const eventHandledWeakMap=new WeakMap();__exports.isEventHandled=isEventHandled;function isEventHandled(ev,markName){if(!eventHandledWeakMap.get(ev)){return false;}
return eventHandledWeakMap.get(ev).includes(markName);}
__exports.markEventHandled=markEventHandled;function markEventHandled(ev,markName){if(!eventHandledWeakMap.get(ev)){eventHandledWeakMap.set(ev,[]);}
eventHandledWeakMap.get(ev).push(markName);}
return __exports;});;

/* /web/static/src/core/utils/nested_sortable.js */
odoo.define('@web/core/utils/nested_sortable',['@web/core/l10n/localization','@web/core/utils/draggable_hook_builder_owl'],function(require){'use strict';let __exports={};const{localization}=require("@web/core/l10n/localization");const{makeDraggableHook}=require("@web/core/utils/draggable_hook_builder_owl");const useNestedSortable=__exports.useNestedSortable=makeDraggableHook({name:"useNestedSortable",acceptedParams:{groups:[String,Function],connectGroups:[Boolean,Function],nest:[Boolean],listTagName:[String],nestInterval:[Number],maxLevels:[Number],isAllowed:[Function],useElementSize:[Boolean],},defaultParams:{connectGroups:false,currentGroup:null,cursor:"grabbing",edgeScrolling:{speed:20,threshold:60},elements:"li",groupSelector:null,nest:false,listTagName:"ul",nestInterval:15,maxLevels:0,isAllowed:(ctx)=>true,useElementSize:false,},onComputeParams({ctx,params}){ctx.groupSelector=params.groups||null;if(ctx.groupSelector){ctx.fullSelector=[ctx.groupSelector,ctx.fullSelector].join(" ");}
ctx.connectGroups=params.connectGroups;ctx.nest=params.nest;ctx.listTagName=params.listTagName;ctx.nestInterval=params.nestInterval;ctx.isRTL=localization.direction==="rtl";ctx.maxLevels=params.maxLevels||0;ctx.isAllowed=params.isAllowed??(()=>true);ctx.useElementSize=params.useElementSize;},onWillStartDrag({ctx,addCleanup}){if(ctx.groupSelector){ctx.currentGroup=ctx.current.element.closest(ctx.groupSelector);if(!ctx.connectGroups){ctx.current.container=ctx.currentGroup;}}
if(ctx.nest){ctx.prevNestX=ctx.pointer.x;}
ctx.current.placeHolder=ctx.current.element.cloneNode(false);ctx.current.placeHolder.classList.add("w-100","d-block");if(ctx.useElementSize){ctx.current.placeHolder.style.height=getComputedStyle(ctx.current.element).height;ctx.current.placeHolder.classList.add("o_nested_sortable_placeholder_realsize");}else{ctx.current.placeHolder.classList.add("o_nested_sortable_placeholder");}
addCleanup(()=>ctx.current.placeHolder.remove());},onDragStart({ctx,addStyle}){ctx.selectorX=ctx.isRTL?ctx.current.elementRect.left+1:ctx.current.elementRect.right-1;ctx.current.element.after(ctx.current.placeHolder);addStyle(ctx.current.element,{opacity:0.5});addStyle(document.body,{"pointer-events":"auto"});addStyle(document.querySelector(".o_navbar"),{"pointer-events":"none"});addStyle(document.querySelector(".o_action_manager"),{"pointer-events":"none"});addStyle(ctx.current.container,{"pointer-events":"auto"});return{element:ctx.current.element,group:ctx.currentGroup,};},_getDeepestChildLevel(ctx,node,depth=0){let result=0;const childSelector=`${ctx.listTagName} ${ctx.elementSelector}`;for(const childNode of node.querySelectorAll(childSelector)){result=Math.max(this._getDeepestChildLevel(ctx,childNode,depth+1),result);}
return depth?result+1:result;},_hasReachMaxAllowedLevel(ctx){if(!ctx.nest||ctx.maxLevels<1){return false;}
let level=this._getDeepestChildLevel(ctx,ctx.current.element);let list=ctx.current.placeHolder.closest(ctx.listTagName);while(list){level++;list=list.parentNode.closest(ctx.listTagName);}
return level>ctx.maxLevels;},_isAllowedNodeMove(ctx){return(!this._hasReachMaxAllowedLevel(ctx)&&ctx.isAllowed(ctx.current,ctx.elementSelector));},onDrag({ctx,callHandler}){const onMove=(prevPos)=>{if(!this._isAllowedNodeMove(ctx)){ctx.current.placeHolder.classList.add("d-none");return;}
ctx.current.placeHolder.classList.remove("d-none");callHandler("onMove",{element:ctx.current.element,previous:ctx.current.placeHolder.previousElementSibling,next:ctx.current.placeHolder.nextElementSibling,parent:ctx.nest?ctx.current.placeHolder.parentElement.closest(ctx.elementSelector):false,group:ctx.currentGroup,newGroup:ctx.connectGroups?ctx.current.placeHolder.closest(ctx.groupSelector):ctx.currentGroup,prevPos,placeholder:ctx.current.placeHolder,});};const getChildList=(el)=>{let list=el.querySelector(ctx.listTagName);if(!list){list=document.createElement(ctx.listTagName);el.appendChild(list);}
return list;};const position={previous:ctx.current.placeHolder.previousElementSibling,next:ctx.current.placeHolder.nextElementSibling,parent:ctx.nest?ctx.current.placeHolder.parentElement.closest(ctx.elementSelector):false,group:ctx.groupSelector?ctx.current.placeHolder.closest(ctx.groupSelector):false,};if(ctx.nest){const xInterval=ctx.prevNestX-ctx.pointer.x;if(ctx.nestInterval-(-1)**ctx.isRTL*xInterval<1){let nextElement=position.next;if(nextElement===ctx.current.element){nextElement=nextElement.nextElementSibling;}
if(!nextElement){const newSibling=position.parent;if(newSibling){newSibling.after(ctx.current.placeHolder);onMove(position);}}
ctx.prevNestX=ctx.pointer.x;return;}else if(ctx.nestInterval+(-1)**ctx.isRTL*xInterval<1){let parent=position.previous;if(parent===ctx.current.element){parent=parent.previousElementSibling;}
if(parent&&parent.matches(ctx.elementSelector)){getChildList(parent).appendChild(ctx.current.placeHolder);onMove(position);}
ctx.prevNestX=ctx.pointer.x;return;}}
const currentTop=ctx.pointer.y-ctx.current.offset.y;const closestEl=document.elementFromPoint(ctx.selectorX,currentTop);if(!closestEl){return;}
const element=closestEl.closest(ctx.elementSelector);if(element&&element!==ctx.current.placeHolder){const eRect=element.getBoundingClientRect();const pos=ctx.current.placeHolder.compareDocumentPosition(element);if(currentTop-eRect.y<10){if(pos===Node.DOCUMENT_POSITION_PRECEDING||pos===(Node.DOCUMENT_POSITION_PRECEDING|Node.DOCUMENT_POSITION_CONTAINS)){element.before(ctx.current.placeHolder);onMove(position);ctx.prevNestX=ctx.pointer.x;}}else if(currentTop-eRect.y>15&&pos===Node.DOCUMENT_POSITION_FOLLOWING){if(ctx.nest){const elementChildList=getChildList(element);if(elementChildList.querySelector(ctx.elementSelector)){elementChildList.prepend(ctx.current.placeHolder);onMove(position);}else{element.after(ctx.current.placeHolder);onMove(position);}
ctx.prevNestX=ctx.pointer.x;}else{element.after(ctx.current.placeHolder);onMove(position);}}}else{const group=closestEl.closest(ctx.groupSelector);if(group&&group!==position.group){if(group.compareDocumentPosition(position.group)===Node.DOCUMENT_POSITION_PRECEDING){getChildList(group).prepend(ctx.current.placeHolder);onMove(position);}else{getChildList(group).appendChild(ctx.current.placeHolder);onMove(position);}
ctx.prevNestX=ctx.pointer.x;callHandler("onGroupEnter",{group,element:ctx.current.placeHolder});callHandler("onGroupLeave",{group:position.group,element:ctx.current.placeHolder,});}}},onDrop({ctx}){if(!this._isAllowedNodeMove(ctx)){return;}
const previous=ctx.current.placeHolder.previousElementSibling;const next=ctx.current.placeHolder.nextElementSibling;if(previous!==ctx.current.element&&next!==ctx.current.element){return{element:ctx.current.element,group:ctx.currentGroup,previous,next,newGroup:ctx.groupSelector&&ctx.current.placeHolder.closest(ctx.groupSelector),parent:ctx.current.placeHolder.parentElement.closest(ctx.elementSelector),placeholder:ctx.current.placeHolder,};}},onDragEnd({ctx}){return{element:ctx.current.element,group:ctx.currentGroup,};},});return __exports;});;

/* /web/static/src/core/utils/numbers.js */
odoo.define('@web/core/utils/numbers',['@web/core/l10n/localization','@web/core/l10n/translation','@web/core/utils/strings'],function(require){'use strict';let __exports={};const{localization:l10n}=require("@web/core/l10n/localization");const{_t}=require("@web/core/l10n/translation");const{intersperse}=require("@web/core/utils/strings");__exports.clamp=clamp;function clamp(num,min,max){return Math.max(Math.min(num,max),min);}
__exports.range=range;function range(start,stop,step=1){const array=[];const nsteps=Math.floor((stop-start)/step);for(let i=0;i<nsteps;i++){array.push(start+step*i);}
return array;}
__exports.roundPrecision=roundPrecision;function roundPrecision(value,precision){if(!value){return 0;}else if(!precision||precision<0){precision=1;}
let normalizedValue=value/precision;const epsilonMagnitude=Math.log2(Math.abs(normalizedValue));const epsilon=Math.pow(2,epsilonMagnitude-52);normalizedValue+=normalizedValue>=0?epsilon:-epsilon;const sign=normalizedValue<0?-1.0:1.0;const roundedValue=sign*Math.round(Math.abs(normalizedValue));return roundedValue*precision;}
__exports.roundDecimals=roundDecimals;function roundDecimals(value,decimals){return roundPrecision(value,parseFloat("1e"+-decimals));}
__exports.floatIsZero=floatIsZero;function floatIsZero(value,decimals){return roundDecimals(value,decimals)===0;}
__exports.insertThousandsSep=insertThousandsSep;function insertThousandsSep(number,thousandsSep=",",grouping=[]){const negative=number[0]==="-";number=negative?number.slice(1):number;return(negative?"-":"")+intersperse(number,grouping,thousandsSep);}
__exports.humanNumber=humanNumber;function humanNumber(number,options={decimals:0,minDigits:1}){const decimals=options.decimals||0;const minDigits=options.minDigits||1;const d2=Math.pow(10,decimals);const numberMagnitude=+number.toExponential().split("e+")[1];number=Math.round(number*d2)/d2;if(numberMagnitude>=21){number=Math.round(number*Math.pow(10,decimals-numberMagnitude))/d2;return`${number}e+${numberMagnitude}`;}
const unitSymbols=_t("kMGTPE").toString();const sign=Math.sign(number);number=Math.abs(number);let symbol="";for(let i=unitSymbols.length;i>0;i--){const s=Math.pow(10,i*3);if(s<=number/Math.pow(10,minDigits-1)){number=Math.round((number*d2)/s)/d2;symbol=unitSymbols[i-1];break;}}
const{decimalPoint,grouping,thousandsSep}=l10n;const decimalsToKeep=number>=1000?0:decimals;number=sign*number;const[integerPart,decimalPart]=number.toFixed(decimalsToKeep).split(".");const int=insertThousandsSep(integerPart,thousandsSep,grouping);if(!decimalPart){return int+symbol;}
return int+decimalPoint+decimalPart+symbol;}
__exports.formatFloat=formatFloat;function formatFloat(value,options={}){if(options.humanReadable){return humanNumber(value,options);}
const grouping=options.grouping||l10n.grouping;const thousandsSep="thousandsSep"in options?options.thousandsSep:l10n.thousandsSep;const decimalPoint="decimalPoint"in options?options.decimalPoint:l10n.decimalPoint;let precision;if(options.digits&&options.digits[1]!==undefined){precision=options.digits[1];}else{precision=2;}
const formatted=value.toFixed(precision).split(".");formatted[0]=insertThousandsSep(formatted[0],thousandsSep,grouping);if(options.trailingZeros===false&&formatted[1]){formatted[1]=formatted[1].replace(/0+$/,"");}
return formatted[1]?formatted.join(decimalPoint):formatted[0];}
return __exports;});;

/* /web/static/src/core/utils/objects.js */
odoo.define('@web/core/utils/objects',[],function(require){'use strict';let __exports={};__exports.shallowEqual=shallowEqual;function shallowEqual(obj1,obj2,comparisonFn=(a,b)=>a===b){if(!obj1||!obj2||typeof obj1!=="object"||typeof obj2!=="object"){return obj1===obj2;}
const obj1Keys=Object.keys(obj1);return(obj1Keys.length===Object.keys(obj2).length&&obj1Keys.every((key)=>comparisonFn(obj1[key],obj2[key])));}
const deepEqual=__exports.deepEqual=(obj1,obj2)=>shallowEqual(obj1,obj2,deepEqual);__exports.deepCopy=deepCopy;function deepCopy(obj){return JSON.parse(JSON.stringify(obj));}
__exports.omit=omit;function omit(object,...properties){const result={};const propertiesSet=new Set(properties);for(const key in object){if(!propertiesSet.has(key)){result[key]=object[key];}}
return result;}
__exports.pick=pick;function pick(object,...properties){return Object.fromEntries(properties.filter((prop)=>prop in object).map((prop)=>[prop,object[prop]]));}
return __exports;});;

/* /web/static/src/core/utils/patch.js */
odoo.define('@web/core/utils/patch',[],function(require){'use strict';let __exports={};const patchDescriptions=new WeakMap();function getPatchDescription(objToPatch){if(!patchDescriptions.has(objToPatch)){patchDescriptions.set(objToPatch,{originalProperties:new Map(),skeleton:Object.create(Object.getPrototypeOf(objToPatch)),extensions:new Set(),});}
return patchDescriptions.get(objToPatch);}
function isClassPrototype(objToPatch){return Object.hasOwn(objToPatch,"constructor")&&objToPatch.constructor?.prototype===objToPatch;}
function findAncestorPropertyDescriptor(objToPatch,key){let descriptor=null;let prototype=objToPatch;do{descriptor=Object.getOwnPropertyDescriptor(prototype,key);prototype=Object.getPrototypeOf(prototype);}while(!descriptor&&prototype);return descriptor;}
__exports.patch=patch;function patch(objToPatch,extension){if(typeof extension==="string"){throw new Error(`Patch "${extension}": Second argument is not the patch name anymore, it should be the object containing the patched properties`);}
const description=getPatchDescription(objToPatch);description.extensions.add(extension);const properties=Object.getOwnPropertyDescriptors(extension);for(const[key,newProperty]of Object.entries(properties)){const oldProperty=Object.getOwnPropertyDescriptor(objToPatch,key);if(oldProperty){Object.defineProperty(description.skeleton,key,oldProperty);}
if(!description.originalProperties.has(key)){description.originalProperties.set(key,oldProperty);}
if(isClassPrototype(objToPatch)){newProperty.enumerable=false;}
if((newProperty.get&&1)^(newProperty.set&&1)){const ancestorProperty=findAncestorPropertyDescriptor(objToPatch,key);newProperty.get=newProperty.get??ancestorProperty?.get;newProperty.set=newProperty.set??ancestorProperty?.set;}
Object.defineProperty(objToPatch,key,newProperty);}
description.skeleton=Object.setPrototypeOf(extension,description.skeleton);return()=>{patchDescriptions.delete(objToPatch);for(const[key,property]of description.originalProperties){if(property){Object.defineProperty(objToPatch,key,property);}else{delete objToPatch[key];}}
description.extensions.delete(extension);for(const extension of description.extensions){patch(objToPatch,extension);}};}
return __exports;});;

/* /web/static/src/core/utils/reactive.js */
odoo.define('@web/core/utils/reactive',['@odoo/owl'],function(require){'use strict';let __exports={};const{reactive}=require("@odoo/owl");const Reactive=__exports.Reactive=class Reactive{constructor(){return reactive(this);}}
__exports.effect=effect;function effect(cb,deps){const reactiveDeps=reactive(deps,()=>{cb(...reactiveDeps);});cb(...reactiveDeps);}
__exports.withComputedProperties=withComputedProperties;function withComputedProperties(obj,sources,descriptor){for(const[key,compute]of Object.entries(descriptor)){effect((obj,sources)=>{obj[key]=compute.call(obj,...sources);},[obj,sources]);}
return obj;}
return __exports;});;

/* /web/static/src/core/utils/render.js */
odoo.define('@web/core/utils/render',['@odoo/owl','@web/core/assets','@web/core/l10n/translation'],function(require){'use strict';let __exports={};const{App,blockDom,Component,markup}=require("@odoo/owl");const{templates}=require("@web/core/assets");const{_t}=require("@web/core/l10n/translation");__exports.renderToElement=renderToElement;function renderToElement(template,context={}){const el=render(template,context).firstElementChild;if(el?.nextElementSibling){throw new Error(`The rendered template '${template}' contains multiple root `+`nodes that will be ignored using renderToElement, you should `+`consider using renderToFragment or refactoring the template.`);}
el?.remove();return el;}
__exports.renderToFragment=renderToFragment;function renderToFragment(template,context={}){const frag=document.createDocumentFragment();for(const el of[...render(template,context).children]){frag.appendChild(el);}
return frag;}
__exports.renderToString=renderToString;function renderToString(template,context={}){return render(template,context).innerHTML;}
let app;Object.defineProperty(renderToString,"app",{get:()=>{if(!app){app=new App(Component,{name:"renderToString",templates,translatableAttributes:["data-tooltip"],translateFn:_t,});}
return app;},});function render(template,context={}){const app=renderToString.app;const templateFn=app.getTemplate(template);const bdom=templateFn(context,{});const div=document.createElement("div");blockDom.mount(bdom,div);return div;}
__exports.renderToMarkup=renderToMarkup;function renderToMarkup(template,context={}){return markup(renderToString(template,context));}
return __exports;});;

/* /web/static/src/core/utils/scrolling.js */
odoo.define('@web/core/utils/scrolling',[],function(require){'use strict';let __exports={};__exports.closestScrollableX=closestScrollableX;function closestScrollableX(el){if(!el){return null;}
if(el.scrollWidth>el.clientWidth&&el.clientWidth>0){const overflow=getComputedStyle(el).getPropertyValue("overflow-x");if(/\bauto\b|\bscroll\b/.test(overflow)){return el;}}
return closestScrollableX(el.parentElement);}
__exports.closestScrollableY=closestScrollableY;function closestScrollableY(el){if(!el){return null;}
if(el.scrollHeight>el.clientHeight&&el.clientHeight>0){const overflow=getComputedStyle(el).getPropertyValue("overflow-y");if(/\bauto\b|\bscroll\b/.test(overflow)){return el;}}
return closestScrollableY(el.parentElement);}
__exports.scrollTo=scrollTo;function scrollTo(element,options={behavior:"auto",scrollable:null,isAnchor:false}){const scrollable=closestScrollableY(options.scrollable||element.parentElement);if(scrollable){const scrollBottom=scrollable.getBoundingClientRect().bottom;const scrollTop=scrollable.getBoundingClientRect().top;const elementBottom=element.getBoundingClientRect().bottom;const elementTop=element.getBoundingClientRect().top;if(elementBottom>scrollBottom&&!options.isAnchor){scrollable.scrollTo({top:scrollable.scrollTop+
elementTop-
scrollBottom+
Math.ceil(element.getBoundingClientRect().height),behavior:options.behavior,});}else if(elementTop<scrollTop||options.isAnchor){scrollable.scrollTo({top:scrollable.scrollTop-scrollTop+elementTop,behavior:options.behavior,});if(options.isAnchor){const parentScrollable=closestScrollableY(scrollable.parentElement);if(parentScrollable){scrollTo(scrollable,{behavior:options.behavior,isAnchor:true,scrollable:parentScrollable,});}}}}}
return __exports;});;

/* /web/static/src/core/utils/search.js */
odoo.define('@web/core/utils/search',['@web/core/utils/strings'],function(require){'use strict';let __exports={};const{unaccent}=require("@web/core/utils/strings");function match(pattern,strs){if(!Array.isArray(strs)){strs=[strs];}
let globalScore=0;for(const str of strs){globalScore=Math.max(globalScore,_match(pattern,str));}
return globalScore;}
function _match(pattern,str){let totalScore=0;let currentScore=0;const len=str.length;let patternIndex=0;pattern=unaccent(pattern,false);str=unaccent(str,false);for(let i=0;i<len;i++){if(str[i]===pattern[patternIndex]){patternIndex++;currentScore+=100+currentScore-i/200;}else{currentScore=0;}
totalScore=totalScore+currentScore;}
return patternIndex===pattern.length?totalScore:0;}
__exports.fuzzyLookup=fuzzyLookup;function fuzzyLookup(pattern,list,fn){const results=[];list.forEach((data)=>{const score=match(pattern,fn(data));if(score>0){results.push({score,elem:data});}});results.sort((a,b)=>b.score-a.score);return results.map((r)=>r.elem);}
__exports.fuzzyTest=fuzzyTest;function fuzzyTest(pattern,string){return _match(pattern,string)!==0;}
return __exports;});;

/* /web/static/src/core/utils/sortable.js */
odoo.define('@web/core/utils/sortable',['@web/core/utils/draggable_hook_builder','@web/core/utils/objects'],function(require){'use strict';let __exports={};const{DRAGGED_CLASS,makeDraggableHook:nativeMakeDraggableHook,}=require("@web/core/utils/draggable_hook_builder");const{pick}=require("@web/core/utils/objects");const hookParams={name:"useSortable",acceptedParams:{groups:[String,Function],connectGroups:[Boolean,Function],clone:[Boolean],placeholderClasses:[Object],applyChangeOnDrop:[Boolean],followingElementClasses:[Object],},defaultParams:{connectGroups:false,edgeScrolling:{speed:20,threshold:60},groupSelector:null,clone:true,placeholderClasses:[],applyChangeOnDrop:false,followingElementClasses:[],},onComputeParams({ctx,params}){ctx.groupSelector=params.groups||null;if(ctx.groupSelector){ctx.fullSelector=[ctx.groupSelector,ctx.fullSelector].join(" ");}
ctx.connectGroups=params.connectGroups;ctx.placeholderClone=params.clone;ctx.placeholderClasses=params.placeholderClasses;ctx.applyChangeOnDrop=params.applyChangeOnDrop;ctx.followingElementClasses=params.followingElementClasses;},onDragStart({ctx,addListener,addStyle,callHandler}){const onElementPointerEnter=(ev)=>{const element=ev.currentTarget;if(connectGroups||!groupSelector||current.group===element.closest(groupSelector)){const pos=current.placeHolder.compareDocumentPosition(element);if(pos===Node.DOCUMENT_POSITION_PRECEDING){element.before(current.placeHolder);}else if(pos===Node.DOCUMENT_POSITION_FOLLOWING){element.after(current.placeHolder);}}
callHandler("onElementEnter",{element});};const onElementPointerLeave=(ev)=>{const element=ev.currentTarget;callHandler("onElementLeave",{element});};const onElementComplexPointerEnter=(ev)=>{if(ctx.haveAlreadyChanged){return;}
const element=ev.currentTarget;const siblingArray=[...element.parentElement.children].filter((el)=>el===current.placeHolder||(el.matches(elementSelector)&&!el.classList.contains(DRAGGED_CLASS)));const elementIndex=siblingArray.indexOf(element);const placeholderIndex=siblingArray.indexOf(current.placeHolder);const isDirectSibling=Math.abs(elementIndex-placeholderIndex)===1;if(connectGroups||!groupSelector||current.group===element.closest(groupSelector)){const pos=current.placeHolder.compareDocumentPosition(element);if(isDirectSibling){if(pos===Node.DOCUMENT_POSITION_PRECEDING){element.before(current.placeHolder);ctx.haveAlreadyChanged=true;}else if(pos===Node.DOCUMENT_POSITION_FOLLOWING){element.after(current.placeHolder);ctx.haveAlreadyChanged=true;}}else{if(pos===Node.DOCUMENT_POSITION_FOLLOWING){element.before(current.placeHolder);ctx.haveAlreadyChanged=true;}else if(pos===Node.DOCUMENT_POSITION_PRECEDING){element.after(current.placeHolder);ctx.haveAlreadyChanged=true;}}}
callHandler("onElementEnter",{element});};const onElementComplexPointerLeave=(ev)=>{if(ctx.haveAlreadyChanged){return;}
const element=ev.currentTarget;const elementRect=element.getBoundingClientRect();const relatedElement=ev.relatedTarget;const relatedElementRect=element.getBoundingClientRect();const siblingArray=[...element.parentElement.children].filter((el)=>el===current.placeHolder||(el.matches(elementSelector)&&!el.classList.contains(DRAGGED_CLASS)));const pointerOnSiblings=siblingArray.indexOf(relatedElement)>-1;const elementIndex=siblingArray.indexOf(element);const isFirst=elementIndex===0;const isAbove=relatedElementRect.top<=elementRect.top;const isLast=elementIndex===siblingArray.length-1;const isBelow=relatedElementRect.bottom>=elementRect.bottom;const pos=current.placeHolder.compareDocumentPosition(element);if(!pointerOnSiblings){if(isFirst&&isAbove&&pos===Node.DOCUMENT_POSITION_PRECEDING){element.before(current.placeHolder);ctx.haveAlreadyChanged=true;}else if(isLast&&isBelow&&pos===Node.DOCUMENT_POSITION_FOLLOWING){element.after(current.placeHolder);ctx.haveAlreadyChanged=true;}}
callHandler("onElementLeave",{element});};const onGroupPointerEnter=(ev)=>{const group=ev.currentTarget;group.appendChild(current.placeHolder);callHandler("onGroupEnter",{group});};const onGroupPointerLeave=(ev)=>{const group=ev.currentTarget;callHandler("onGroupLeave",{group});};const{connectGroups,current,elementSelector,groupSelector,ref}=ctx;if(ctx.placeholderClone){const{width,height}=current.elementRect;addStyle(current.placeHolder,{visibility:"hidden",display:"block",width:`${width}px`,height:`${height}px`,});}
if(connectGroups&&groupSelector){for(const siblingGroup of ref.el.querySelectorAll(groupSelector)){addListener(siblingGroup,"pointerenter",onGroupPointerEnter);addListener(siblingGroup,"pointerleave",onGroupPointerLeave);}}
for(const siblingEl of ref.el.querySelectorAll(elementSelector)){if(siblingEl!==current.element&&siblingEl!==current.placeHolder){if(ctx.placeholderClone){addListener(siblingEl,"pointerenter",onElementPointerEnter);addListener(siblingEl,"pointerleave",onElementPointerLeave);}else{addListener(siblingEl,"pointerenter",onElementComplexPointerEnter);addListener(siblingEl,"pointerleave",onElementComplexPointerLeave);}}}
current.element.after(current.placeHolder);return pick(current,"element","group");},onDrag({ctx}){ctx.haveAlreadyChanged=false;},onDragEnd({ctx}){return pick(ctx.current,"element","group");},onDrop({ctx}){const{current,groupSelector}=ctx;const previous=current.placeHolder.previousElementSibling;const next=current.placeHolder.nextElementSibling;if(previous!==current.element&&next!==current.element){const element=current.element;if(ctx.applyChangeOnDrop){if(previous){previous.after(element);}else if(next){next.before(element);}}
return{element,group:current.group,previous,next,parent:groupSelector&&current.placeHolder.closest(groupSelector),};}},onWillStartDrag({ctx,addCleanup}){const{connectGroups,current,groupSelector}=ctx;if(groupSelector){current.group=current.element.closest(groupSelector);if(!connectGroups){current.container=current.group;}}
if(ctx.placeholderClone){current.placeHolder=current.element.cloneNode(false);}else{current.placeHolder=document.createElement("div");}
current.placeHolder.classList.add(...ctx.placeholderClasses);current.element.classList.add(...ctx.followingElementClasses);addCleanup(()=>current.element.classList.remove(...ctx.followingElementClasses));addCleanup(()=>current.placeHolder.remove());return pick(current,"element","group");},};const useSortable=__exports.useSortable=(sortableParams)=>{const{setupHooks}=sortableParams;delete sortableParams.setupHooks;return nativeMakeDraggableHook({...hookParams,setupHooks})(sortableParams);};return __exports;});;

/* /web/static/src/core/utils/sortable_owl.js */
odoo.define('@web/core/utils/sortable_owl',['@odoo/owl','@web/core/utils/timing','@web/core/utils/sortable'],function(require){'use strict';let __exports={};const{onWillUnmount,reactive,useEffect,useExternalListener}=require("@odoo/owl");const{useThrottleForAnimation}=require("@web/core/utils/timing");const{useSortable:nativeUseSortable}=require("@web/core/utils/sortable");__exports.useSortable=useSortable;function useSortable(params){return nativeUseSortable({...params,setupHooks:{addListener:useExternalListener,setup:useEffect,teardown:onWillUnmount,throttle:useThrottleForAnimation,wrapState:reactive,},});}
return __exports;});;

/* /web/static/src/core/utils/sortable_service.js */
odoo.define('@web/core/utils/sortable_service',['@web/core/registry','@web/core/utils/sortable','@web/core/utils/timing','@odoo/owl'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const{useSortable}=require("@web/core/utils/sortable");const{throttleForAnimation}=require("@web/core/utils/timing");const{reactive}=require("@odoo/owl");const DEFAULT_SORTABLE_ID=Symbol.for("defaultSortable");const sortableService=__exports.sortableService={start(){const boundElements=new Map();return{create:(hookParams)=>{const element=hookParams.ref.el;const sortableId=hookParams.sortableId??DEFAULT_SORTABLE_ID;if(boundElements.has(element)){const boundElement=boundElements.get(element);if(sortableId in boundElement){return{enable(){return{cleanup:boundElement[sortableId],};},};}}
const setupFunctions=new Map();const cleanupFunctions=[];const cleanup=()=>{const boundElement=boundElements.get(element);if(sortableId in boundElement){delete boundElement[sortableId];if(boundElement.length===0){boundElements.delete(element);}}
cleanupFunctions.forEach((fn)=>fn());};const setupHooks={wrapState:reactive,throttle:throttleForAnimation,addListener:(el,type,listener)=>{el.addEventListener(type,listener);cleanupFunctions.push(()=>el.removeEventListener(type,listener));},setup:(setupFn,dependenciesFn)=>setupFunctions.set(setupFn,dependenciesFn),teardown:(fn)=>cleanupFunctions.push(fn),};useSortable({setupHooks,...hookParams});const boundElement=boundElements.get(element);if(boundElement){boundElement[sortableId]=cleanup;}else{boundElements.set(element,{[sortableId]:cleanup});}
return{enable(){setupFunctions.forEach((dependenciesFn,setupFn)=>setupFn(...dependenciesFn()));return{cleanup,};},};},};},};registry.category("services").add("sortable",sortableService);return __exports;});;

/* /web/static/src/core/utils/strings.js */
odoo.define('@web/core/utils/strings',[],function(require){'use strict';let __exports={};const nbsp=__exports.nbsp="\u00a0";const escapeMethod=__exports.escapeMethod=Symbol("html");__exports.escape=escape;function escape(str){if(typeof str==="object"&&str[escapeMethod]){return str[escapeMethod]();}else{if(str===undefined){return"";}
if(typeof str==="number"){return String(str);}
[["&","&amp;"],["<","&lt;"],[">","&gt;"],["'","&#x27;"],['"',"&quot;"],["`","&#x60;"],].forEach((pairs)=>{str=String(str).replaceAll(pairs[0],pairs[1]);});return str;}}
__exports.escapeRegExp=escapeRegExp;function escapeRegExp(str){return str.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");}
__exports.intersperse=intersperse;function intersperse(str,indices,separator=""){separator=separator||"";const result=[];let last=str.length;for(let i=0;i<indices.length;++i){let section=indices[i];if(section===-1||last<=0){break;}else if(section===0&&i===0){break;}else if(section===0){section=indices[--i];}
result.push(str.substring(last-section,last));last-=section;}
const s=str.substring(0,last);if(s){result.push(s);}
return result.reverse().join(separator);}
__exports.sprintf=sprintf;function sprintf(s,...values){if(values.length===1&&Object.prototype.toString.call(values[0])==="[object Object]"){const valuesDict=values[0];s=s.replace(/%\(([^)]+)\)s/g,(match,value)=>valuesDict[value]);}else if(values.length>0){s=s.replace(/%s/g,()=>values.shift());}
return s;}
__exports.capitalize=capitalize;function capitalize(s){return s?s[0].toUpperCase()+s.slice(1):"";}
const diacriticsMap={'\u0041':'A','\u24B6':'A','\uFF21':'A','\u00C0':'A','\u00C1':'A','\u00C2':'A','\u1EA6':'A','\u1EA4':'A','\u1EAA':'A','\u1EA8':'A','\u00C3':'A','\u0100':'A','\u0102':'A','\u1EB0':'A','\u1EAE':'A','\u1EB4':'A','\u1EB2':'A','\u0226':'A','\u01E0':'A','\u00C4':'A','\u01DE':'A','\u1EA2':'A','\u00C5':'A','\u01FA':'A','\u01CD':'A','\u0200':'A','\u0202':'A','\u1EA0':'A','\u1EAC':'A','\u1EB6':'A','\u1E00':'A','\u0104':'A','\u023A':'A','\u2C6F':'A','\uA732':'AA','\u00C6':'AE','\u01FC':'AE','\u01E2':'AE','\uA734':'AO','\uA736':'AU','\uA738':'AV','\uA73A':'AV','\uA73C':'AY','\u0042':'B','\u24B7':'B','\uFF22':'B','\u1E02':'B','\u1E04':'B','\u1E06':'B','\u0243':'B','\u0182':'B','\u0181':'B','\u0043':'C','\u24B8':'C','\uFF23':'C','\u0106':'C','\u0108':'C','\u010A':'C','\u010C':'C','\u00C7':'C','\u1E08':'C','\u0187':'C','\u023B':'C','\uA73E':'C','\u0044':'D','\u24B9':'D','\uFF24':'D','\u1E0A':'D','\u010E':'D','\u1E0C':'D','\u1E10':'D','\u1E12':'D','\u1E0E':'D','\u0110':'D','\u018B':'D','\u018A':'D','\u0189':'D','\uA779':'D','\u01F1':'DZ','\u01C4':'DZ','\u01F2':'Dz','\u01C5':'Dz','\u0045':'E','\u24BA':'E','\uFF25':'E','\u00C8':'E','\u00C9':'E','\u00CA':'E','\u1EC0':'E','\u1EBE':'E','\u1EC4':'E','\u1EC2':'E','\u1EBC':'E','\u0112':'E','\u1E14':'E','\u1E16':'E','\u0114':'E','\u0116':'E','\u00CB':'E','\u1EBA':'E','\u011A':'E','\u0204':'E','\u0206':'E','\u1EB8':'E','\u1EC6':'E','\u0228':'E','\u1E1C':'E','\u0118':'E','\u1E18':'E','\u1E1A':'E','\u0190':'E','\u018E':'E','\u0046':'F','\u24BB':'F','\uFF26':'F','\u1E1E':'F','\u0191':'F','\uA77B':'F','\u0047':'G','\u24BC':'G','\uFF27':'G','\u01F4':'G','\u011C':'G','\u1E20':'G','\u011E':'G','\u0120':'G','\u01E6':'G','\u0122':'G','\u01E4':'G','\u0193':'G','\uA7A0':'G','\uA77D':'G','\uA77E':'G','\u0048':'H','\u24BD':'H','\uFF28':'H','\u0124':'H','\u1E22':'H','\u1E26':'H','\u021E':'H','\u1E24':'H','\u1E28':'H','\u1E2A':'H','\u0126':'H','\u2C67':'H','\u2C75':'H','\uA78D':'H','\u0049':'I','\u24BE':'I','\uFF29':'I','\u00CC':'I','\u00CD':'I','\u00CE':'I','\u0128':'I','\u012A':'I','\u012C':'I','\u0130':'I','\u00CF':'I','\u1E2E':'I','\u1EC8':'I','\u01CF':'I','\u0208':'I','\u020A':'I','\u1ECA':'I','\u012E':'I','\u1E2C':'I','\u0197':'I','\u004A':'J','\u24BF':'J','\uFF2A':'J','\u0134':'J','\u0248':'J','\u004B':'K','\u24C0':'K','\uFF2B':'K','\u1E30':'K','\u01E8':'K','\u1E32':'K','\u0136':'K','\u1E34':'K','\u0198':'K','\u2C69':'K','\uA740':'K','\uA742':'K','\uA744':'K','\uA7A2':'K','\u004C':'L','\u24C1':'L','\uFF2C':'L','\u013F':'L','\u0139':'L','\u013D':'L','\u1E36':'L','\u1E38':'L','\u013B':'L','\u1E3C':'L','\u1E3A':'L','\u0141':'L','\u023D':'L','\u2C62':'L','\u2C60':'L','\uA748':'L','\uA746':'L','\uA780':'L','\u01C7':'LJ','\u01C8':'Lj','\u004D':'M','\u24C2':'M','\uFF2D':'M','\u1E3E':'M','\u1E40':'M','\u1E42':'M','\u2C6E':'M','\u019C':'M','\u004E':'N','\u24C3':'N','\uFF2E':'N','\u01F8':'N','\u0143':'N','\u00D1':'N','\u1E44':'N','\u0147':'N','\u1E46':'N','\u0145':'N','\u1E4A':'N','\u1E48':'N','\u0220':'N','\u019D':'N','\uA790':'N','\uA7A4':'N','\u01CA':'NJ','\u01CB':'Nj','\u004F':'O','\u24C4':'O','\uFF2F':'O','\u00D2':'O','\u00D3':'O','\u00D4':'O','\u1ED2':'O','\u1ED0':'O','\u1ED6':'O','\u1ED4':'O','\u00D5':'O','\u1E4C':'O','\u022C':'O','\u1E4E':'O','\u014C':'O','\u1E50':'O','\u1E52':'O','\u014E':'O','\u022E':'O','\u0230':'O','\u00D6':'O','\u022A':'O','\u1ECE':'O','\u0150':'O','\u01D1':'O','\u020C':'O','\u020E':'O','\u01A0':'O','\u1EDC':'O','\u1EDA':'O','\u1EE0':'O','\u1EDE':'O','\u1EE2':'O','\u1ECC':'O','\u1ED8':'O','\u01EA':'O','\u01EC':'O','\u00D8':'O','\u01FE':'O','\u0186':'O','\u019F':'O','\uA74A':'O','\uA74C':'O','\u01A2':'OI','\uA74E':'OO','\u0222':'OU','\u0050':'P','\u24C5':'P','\uFF30':'P','\u1E54':'P','\u1E56':'P','\u01A4':'P','\u2C63':'P','\uA750':'P','\uA752':'P','\uA754':'P','\u0051':'Q','\u24C6':'Q','\uFF31':'Q','\uA756':'Q','\uA758':'Q','\u024A':'Q','\u0052':'R','\u24C7':'R','\uFF32':'R','\u0154':'R','\u1E58':'R','\u0158':'R','\u0210':'R','\u0212':'R','\u1E5A':'R','\u1E5C':'R','\u0156':'R','\u1E5E':'R','\u024C':'R','\u2C64':'R','\uA75A':'R','\uA7A6':'R','\uA782':'R','\u0053':'S','\u24C8':'S','\uFF33':'S','\u1E9E':'S','\u015A':'S','\u1E64':'S','\u015C':'S','\u1E60':'S','\u0160':'S','\u1E66':'S','\u1E62':'S','\u1E68':'S','\u0218':'S','\u015E':'S','\u2C7E':'S','\uA7A8':'S','\uA784':'S','\u0054':'T','\u24C9':'T','\uFF34':'T','\u1E6A':'T','\u0164':'T','\u1E6C':'T','\u021A':'T','\u0162':'T','\u1E70':'T','\u1E6E':'T','\u0166':'T','\u01AC':'T','\u01AE':'T','\u023E':'T','\uA786':'T','\uA728':'TZ','\u0055':'U','\u24CA':'U','\uFF35':'U','\u00D9':'U','\u00DA':'U','\u00DB':'U','\u0168':'U','\u1E78':'U','\u016A':'U','\u1E7A':'U','\u016C':'U','\u00DC':'U','\u01DB':'U','\u01D7':'U','\u01D5':'U','\u01D9':'U','\u1EE6':'U','\u016E':'U','\u0170':'U','\u01D3':'U','\u0214':'U','\u0216':'U','\u01AF':'U','\u1EEA':'U','\u1EE8':'U','\u1EEE':'U','\u1EEC':'U','\u1EF0':'U','\u1EE4':'U','\u1E72':'U','\u0172':'U','\u1E76':'U','\u1E74':'U','\u0244':'U','\u0056':'V','\u24CB':'V','\uFF36':'V','\u1E7C':'V','\u1E7E':'V','\u01B2':'V','\uA75E':'V','\u0245':'V','\uA760':'VY','\u0057':'W','\u24CC':'W','\uFF37':'W','\u1E80':'W','\u1E82':'W','\u0174':'W','\u1E86':'W','\u1E84':'W','\u1E88':'W','\u2C72':'W','\u0058':'X','\u24CD':'X','\uFF38':'X','\u1E8A':'X','\u1E8C':'X','\u0059':'Y','\u24CE':'Y','\uFF39':'Y','\u1EF2':'Y','\u00DD':'Y','\u0176':'Y','\u1EF8':'Y','\u0232':'Y','\u1E8E':'Y','\u0178':'Y','\u1EF6':'Y','\u1EF4':'Y','\u01B3':'Y','\u024E':'Y','\u1EFE':'Y','\u005A':'Z','\u24CF':'Z','\uFF3A':'Z','\u0179':'Z','\u1E90':'Z','\u017B':'Z','\u017D':'Z','\u1E92':'Z','\u1E94':'Z','\u01B5':'Z','\u0224':'Z','\u2C7F':'Z','\u2C6B':'Z','\uA762':'Z','\u0061':'a','\u24D0':'a','\uFF41':'a','\u1E9A':'a','\u00E0':'a','\u00E1':'a','\u00E2':'a','\u1EA7':'a','\u1EA5':'a','\u1EAB':'a','\u1EA9':'a','\u00E3':'a','\u0101':'a','\u0103':'a','\u1EB1':'a','\u1EAF':'a','\u1EB5':'a','\u1EB3':'a','\u0227':'a','\u01E1':'a','\u00E4':'a','\u01DF':'a','\u1EA3':'a','\u00E5':'a','\u01FB':'a','\u01CE':'a','\u0201':'a','\u0203':'a','\u1EA1':'a','\u1EAD':'a','\u1EB7':'a','\u1E01':'a','\u0105':'a','\u2C65':'a','\u0250':'a','\uA733':'aa','\u00E6':'ae','\u01FD':'ae','\u01E3':'ae','\uA735':'ao','\uA737':'au','\uA739':'av','\uA73B':'av','\uA73D':'ay','\u0062':'b','\u24D1':'b','\uFF42':'b','\u1E03':'b','\u1E05':'b','\u1E07':'b','\u0180':'b','\u0183':'b','\u0253':'b','\u0063':'c','\u24D2':'c','\uFF43':'c','\u0107':'c','\u0109':'c','\u010B':'c','\u010D':'c','\u00E7':'c','\u1E09':'c','\u0188':'c','\u023C':'c','\uA73F':'c','\u2184':'c','\u0064':'d','\u24D3':'d','\uFF44':'d','\u1E0B':'d','\u010F':'d','\u1E0D':'d','\u1E11':'d','\u1E13':'d','\u1E0F':'d','\u0111':'d','\u018C':'d','\u0256':'d','\u0257':'d','\uA77A':'d','\u01F3':'dz','\u01C6':'dz','\u0065':'e','\u24D4':'e','\uFF45':'e','\u00E8':'e','\u00E9':'e','\u00EA':'e','\u1EC1':'e','\u1EBF':'e','\u1EC5':'e','\u1EC3':'e','\u1EBD':'e','\u0113':'e','\u1E15':'e','\u1E17':'e','\u0115':'e','\u0117':'e','\u00EB':'e','\u1EBB':'e','\u011B':'e','\u0205':'e','\u0207':'e','\u1EB9':'e','\u1EC7':'e','\u0229':'e','\u1E1D':'e','\u0119':'e','\u1E19':'e','\u1E1B':'e','\u0247':'e','\u025B':'e','\u01DD':'e','\u0066':'f','\u24D5':'f','\uFF46':'f','\u1E1F':'f','\u0192':'f','\uA77C':'f','\u0067':'g','\u24D6':'g','\uFF47':'g','\u01F5':'g','\u011D':'g','\u1E21':'g','\u011F':'g','\u0121':'g','\u01E7':'g','\u0123':'g','\u01E5':'g','\u0260':'g','\uA7A1':'g','\u1D79':'g','\uA77F':'g','\u0068':'h','\u24D7':'h','\uFF48':'h','\u0125':'h','\u1E23':'h','\u1E27':'h','\u021F':'h','\u1E25':'h','\u1E29':'h','\u1E2B':'h','\u1E96':'h','\u0127':'h','\u2C68':'h','\u2C76':'h','\u0265':'h','\u0195':'hv','\u0069':'i','\u24D8':'i','\uFF49':'i','\u00EC':'i','\u00ED':'i','\u00EE':'i','\u0129':'i','\u012B':'i','\u012D':'i','\u00EF':'i','\u1E2F':'i','\u1EC9':'i','\u01D0':'i','\u0209':'i','\u020B':'i','\u1ECB':'i','\u012F':'i','\u1E2D':'i','\u0268':'i','\u0131':'i','\u006A':'j','\u24D9':'j','\uFF4A':'j','\u0135':'j','\u01F0':'j','\u0249':'j','\u006B':'k','\u24DA':'k','\uFF4B':'k','\u1E31':'k','\u01E9':'k','\u1E33':'k','\u0137':'k','\u1E35':'k','\u0199':'k','\u2C6A':'k','\uA741':'k','\uA743':'k','\uA745':'k','\uA7A3':'k','\u006C':'l','\u24DB':'l','\uFF4C':'l','\u0140':'l','\u013A':'l','\u013E':'l','\u1E37':'l','\u1E39':'l','\u013C':'l','\u1E3D':'l','\u1E3B':'l','\u017F':'l','\u0142':'l','\u019A':'l','\u026B':'l','\u2C61':'l','\uA749':'l','\uA781':'l','\uA747':'l','\u01C9':'lj','\u006D':'m','\u24DC':'m','\uFF4D':'m','\u1E3F':'m','\u1E41':'m','\u1E43':'m','\u0271':'m','\u026F':'m','\u006E':'n','\u24DD':'n','\uFF4E':'n','\u01F9':'n','\u0144':'n','\u00F1':'n','\u1E45':'n','\u0148':'n','\u1E47':'n','\u0146':'n','\u1E4B':'n','\u1E49':'n','\u019E':'n','\u0272':'n','\u0149':'n','\uA791':'n','\uA7A5':'n','\u01CC':'nj','\u006F':'o','\u24DE':'o','\uFF4F':'o','\u00F2':'o','\u00F3':'o','\u00F4':'o','\u1ED3':'o','\u1ED1':'o','\u1ED7':'o','\u1ED5':'o','\u00F5':'o','\u1E4D':'o','\u022D':'o','\u1E4F':'o','\u014D':'o','\u1E51':'o','\u1E53':'o','\u014F':'o','\u022F':'o','\u0231':'o','\u00F6':'o','\u022B':'o','\u1ECF':'o','\u0151':'o','\u01D2':'o','\u020D':'o','\u020F':'o','\u01A1':'o','\u1EDD':'o','\u1EDB':'o','\u1EE1':'o','\u1EDF':'o','\u1EE3':'o','\u1ECD':'o','\u1ED9':'o','\u01EB':'o','\u01ED':'o','\u00F8':'o','\u01FF':'o','\u0254':'o','\uA74B':'o','\uA74D':'o','\u0275':'o','\u01A3':'oi','\u0223':'ou','\uA74F':'oo','\u0070':'p','\u24DF':'p','\uFF50':'p','\u1E55':'p','\u1E57':'p','\u01A5':'p','\u1D7D':'p','\uA751':'p','\uA753':'p','\uA755':'p','\u0071':'q','\u24E0':'q','\uFF51':'q','\u024B':'q','\uA757':'q','\uA759':'q','\u0072':'r','\u24E1':'r','\uFF52':'r','\u0155':'r','\u1E59':'r','\u0159':'r','\u0211':'r','\u0213':'r','\u1E5B':'r','\u1E5D':'r','\u0157':'r','\u1E5F':'r','\u024D':'r','\u027D':'r','\uA75B':'r','\uA7A7':'r','\uA783':'r','\u0073':'s','\u24E2':'s','\uFF53':'s','\u00DF':'s','\u015B':'s','\u1E65':'s','\u015D':'s','\u1E61':'s','\u0161':'s','\u1E67':'s','\u1E63':'s','\u1E69':'s','\u0219':'s','\u015F':'s','\u023F':'s','\uA7A9':'s','\uA785':'s','\u1E9B':'s','\u0074':'t','\u24E3':'t','\uFF54':'t','\u1E6B':'t','\u1E97':'t','\u0165':'t','\u1E6D':'t','\u021B':'t','\u0163':'t','\u1E71':'t','\u1E6F':'t','\u0167':'t','\u01AD':'t','\u0288':'t','\u2C66':'t','\uA787':'t','\uA729':'tz','\u0075':'u','\u24E4':'u','\uFF55':'u','\u00F9':'u','\u00FA':'u','\u00FB':'u','\u0169':'u','\u1E79':'u','\u016B':'u','\u1E7B':'u','\u016D':'u','\u00FC':'u','\u01DC':'u','\u01D8':'u','\u01D6':'u','\u01DA':'u','\u1EE7':'u','\u016F':'u','\u0171':'u','\u01D4':'u','\u0215':'u','\u0217':'u','\u01B0':'u','\u1EEB':'u','\u1EE9':'u','\u1EEF':'u','\u1EED':'u','\u1EF1':'u','\u1EE5':'u','\u1E73':'u','\u0173':'u','\u1E77':'u','\u1E75':'u','\u0289':'u','\u0076':'v','\u24E5':'v','\uFF56':'v','\u1E7D':'v','\u1E7F':'v','\u028B':'v','\uA75F':'v','\u028C':'v','\uA761':'vy','\u0077':'w','\u24E6':'w','\uFF57':'w','\u1E81':'w','\u1E83':'w','\u0175':'w','\u1E87':'w','\u1E85':'w','\u1E98':'w','\u1E89':'w','\u2C73':'w','\u0078':'x','\u24E7':'x','\uFF58':'x','\u1E8B':'x','\u1E8D':'x','\u0079':'y','\u24E8':'y','\uFF59':'y','\u1EF3':'y','\u00FD':'y','\u0177':'y','\u1EF9':'y','\u0233':'y','\u1E8F':'y','\u00FF':'y','\u1EF7':'y','\u1E99':'y','\u1EF5':'y','\u01B4':'y','\u024F':'y','\u1EFF':'y','\u007A':'z','\u24E9':'z','\uFF5A':'z','\u017A':'z','\u1E91':'z','\u017C':'z','\u017E':'z','\u1E93':'z','\u1E95':'z','\u01B6':'z','\u0225':'z','\u0240':'z','\u2C6C':'z','\uA763':'z',};__exports.unaccent=unaccent;function unaccent(str,caseSensitive){str=str.replace(/[^\u0000-\u007E]/g,function(accented){return diacriticsMap[accented]||accented;});return caseSensitive?str:str.toLowerCase();}
__exports.isEmail=isEmail;function isEmail(value){const re=/^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;return re.test(value);}
return __exports;});;

/* /web/static/src/core/utils/timing.js */
odoo.define('@web/core/utils/timing',['@web/core/browser/browser','@odoo/owl'],function(require){'use strict';let __exports={};const{browser}=require("@web/core/browser/browser");const{onWillUnmount,useComponent}=require("@odoo/owl");__exports.batched=batched;function batched(callback,synchronize=()=>Promise.resolve()){let scheduled=false;return async(...args)=>{if(!scheduled){scheduled=true;await synchronize();scheduled=false;callback(...args);}};}
__exports.debounce=debounce;function debounce(func,delay,options){let handle;const funcName=func.name?func.name+" (debounce)":"debounce";const useAnimationFrame=delay==="animationFrame";const setFnName=useAnimationFrame?"requestAnimationFrame":"setTimeout";const clearFnName=useAnimationFrame?"cancelAnimationFrame":"clearTimeout";let lastArgs;let leading=false;let trailing=true;if(typeof options==="boolean"){leading=options;trailing=!options;}else if(options){leading=options.leading??leading;trailing=options.trailing??trailing;}
return Object.assign({[funcName](...args){return new Promise((resolve)=>{if(leading&&!handle){Promise.resolve(func.apply(this,args)).then(resolve);}else{lastArgs=args;}
browser[clearFnName](handle);handle=browser[setFnName](()=>{handle=null;if(trailing&&lastArgs){Promise.resolve(func.apply(this,lastArgs)).then(resolve);lastArgs=null;}},delay);});},}[funcName],{cancel(execNow=false){browser[clearFnName](handle);if(execNow&&lastArgs){func.apply(this,lastArgs);}},});}
__exports.setRecurringAnimationFrame=setRecurringAnimationFrame;function setRecurringAnimationFrame(callback){const handler=(timestamp)=>{callback(timestamp-lastTimestamp);lastTimestamp=timestamp;handle=browser.requestAnimationFrame(handler);};const stop=()=>{browser.cancelAnimationFrame(handle);};let lastTimestamp=browser.performance.now();let handle=browser.requestAnimationFrame(handler);return stop;}
__exports.throttleForAnimation=throttleForAnimation;function throttleForAnimation(func){let handle=null;const calls=new Set();const funcName=func.name?`${func.name} (throttleForAnimation)`:"throttleForAnimation";const pending=()=>{if(calls.size){handle=browser.requestAnimationFrame(pending);const{args,resolve}=[...calls].pop();calls.clear();Promise.resolve(func.apply(this,args)).then(resolve);}else{handle=null;}};return Object.assign({[funcName](...args){return new Promise((resolve)=>{const isNew=handle===null;if(isNew){handle=browser.requestAnimationFrame(pending);Promise.resolve(func.apply(this,args)).then(resolve);}else{calls.add({args,resolve});}});},}[funcName],{cancel(){browser.cancelAnimationFrame(handle);calls.clear();handle=null;},});}
__exports.useDebounced=useDebounced;function useDebounced(callback,delay,{execBeforeUnmount=false,immediate=false}={}){const component=useComponent();const debounced=debounce(callback.bind(component),delay,immediate);onWillUnmount(()=>debounced.cancel(execBeforeUnmount));return debounced;}
__exports.useThrottleForAnimation=useThrottleForAnimation;function useThrottleForAnimation(func){const component=useComponent();const throttledForAnimation=throttleForAnimation(func.bind(component));onWillUnmount(()=>throttledForAnimation.cancel());return throttledForAnimation;}
return __exports;});;

/* /web/static/src/core/utils/ui.js */
odoo.define('@web/core/utils/ui',[],function(require){'use strict';let __exports={};__exports.closest=closest;function closest(elements,targetPos){let closestEl=null;let closestDistance=Infinity;for(const el of elements){const rect=el.getBoundingClientRect();const distance=getQuadrance(rect,targetPos);if(!closestEl||distance<closestDistance){closestEl=el;closestDistance=distance;}}
return closestEl;}
__exports.isVisible=isVisible;function isVisible(el){if(el===document||el===window){return true;}
if(!el){return false;}
let _isVisible=false;if("offsetWidth"in el&&"offsetHeight"in el){_isVisible=el.offsetWidth>0&&el.offsetHeight>0;}else if("getBoundingClientRect"in el){const rect=el.getBoundingClientRect();_isVisible=rect.width>0&&rect.height>0;}
if(!_isVisible&&getComputedStyle(el).display==="contents"){for(const child of el.children){if(isVisible(child)){return true;}}}
return _isVisible;}
__exports._legacyIsVisible=_legacyIsVisible;function _legacyIsVisible(el){if(el===document||el===window){return true;}
if(!el){return false;}
let _isVisible=false;if("offsetWidth"in el&&"offsetHeight"in el){_isVisible=el.offsetWidth>0||el.offsetHeight>0;}else if("getBoundingClientRect"in el){const rect=el.getBoundingClientRect();_isVisible=rect.width>0||rect.height>0;}
if(!_isVisible&&getComputedStyle(el).display==="contents"){for(const child of el.children){if(isVisible(child)){return true;}}}
return _isVisible;}
__exports.getQuadrance=getQuadrance;function getQuadrance(rect,pos){let q=0;if(pos.x<rect.x){q+=(rect.x-pos.x)**2;}else if(rect.x+rect.width<pos.x){q+=(pos.x-(rect.x+rect.width))**2;}
if(pos.y<rect.y){q+=(rect.y-pos.y)**2;}else if(rect.y+rect.height<pos.y){q+=(pos.y-(rect.y+rect.height))**2;}
return q;}
__exports.getVisibleElements=getVisibleElements;function getVisibleElements(activeElement,selector){const visibleElements=[];const elements=activeElement.querySelectorAll(selector);for(const el of elements){if(isVisible(el)){visibleElements.push(el);}}
return visibleElements;}
__exports.touching=touching;function touching(elements,targetRect){const r1={x:0,y:0,width:0,height:0,...targetRect};return[...elements].filter((el)=>{const r2=el.getBoundingClientRect();return(r2.x+r2.width>=r1.x&&r2.x<=r1.x+r1.width&&r2.y+r2.height>=r1.y&&r2.y<=r1.y+r1.height);});}
const TABABLE_SELECTOR=["[tabindex]","a","area","button","frame","iframe","input","object","select","textarea","details > summary:nth-child(1)",].map((sel)=>`${sel}:not([tabindex="-1"]):not(:disabled)`).join(",");__exports.getTabableElements=getTabableElements;function getTabableElements(container=document.body){const elements=[...container.querySelectorAll(TABABLE_SELECTOR)].filter(isVisible);const byTabIndex={};for(const el of[...elements]){if(!byTabIndex[el.tabIndex]){byTabIndex[el.tabIndex]=[];}
byTabIndex[el.tabIndex].push(el);}
const withTabIndexZero=byTabIndex[0]||[];delete byTabIndex[0];return[...Object.values(byTabIndex).flat(),...withTabIndexZero];}
__exports.getNextTabableElement=getNextTabableElement;function getNextTabableElement(container=document.body){const tabableElements=getTabableElements(container);const index=tabableElements.indexOf(document.activeElement);return index===-1?tabableElements[0]:tabableElements[index+1]||null;}
__exports.getPreviousTabableElement=getPreviousTabableElement;function getPreviousTabableElement(container=document.body){const tabableElements=getTabableElements(container);const index=tabableElements.indexOf(document.activeElement);return index===-1?tabableElements[tabableElements.length-1]:tabableElements[index-1]||null;}
return __exports;});;

/* /web/static/src/core/utils/urls.js */
odoo.define('@web/core/utils/urls',['@web/session','@web/core/browser/browser'],function(require){'use strict';let __exports={};const{session}=require("@web/session");const{browser}=require("@web/core/browser/browser");const RedirectionError=__exports.RedirectionError=class RedirectionError extends Error{}
__exports.objectToUrlEncodedString=objectToUrlEncodedString;function objectToUrlEncodedString(obj){return Object.entries(obj).map(([k,v])=>`${encodeURIComponent(k)}=${encodeURIComponent(v || "")}`).join("&");}
__exports.getOrigin=getOrigin;function getOrigin(origin){if(origin){origin=origin.replace(/\/+$/,"");}else{const{host,protocol}=browser.location;origin=`${protocol}//${host}`;}
return origin;}
__exports.url=url;function url(route,queryParams,options={}){const origin=getOrigin(options.origin??session.origin);if(!route){return origin;}
let queryString=objectToUrlEncodedString(queryParams||{});queryString=queryString.length>0?`?${queryString}`:queryString;let prefix=["http://","https://","//"].some((el)=>route.length>=el.length&&route.slice(0,el.length)===el);prefix=prefix?"":origin;return`${prefix}${route}${queryString}`;}
__exports.getDataURLFromFile=getDataURLFromFile;function getDataURLFromFile(file){if(!file){return Promise.reject();}
return new Promise((resolve,reject)=>{const reader=new FileReader();reader.addEventListener("load",()=>{if(reader.result==="data:"){resolve(`data:${file.type};base64,`);}else{resolve(reader.result);}});reader.addEventListener("abort",reject);reader.addEventListener("error",reject);reader.readAsDataURL(file);});}
__exports.redirect=redirect;function redirect(url){const{origin,pathname}=browser.location;const _url=new URL(url,`${origin}${pathname}`);if(_url.origin!==origin){throw new RedirectionError("Can't redirect to another origin");}
browser.location=_url.href;}
return __exports;});;

/* /web/static/src/core/utils/xml.js */
odoo.define('@web/core/utils/xml',[],function(require){'use strict';let __exports={};const serializer=new XMLSerializer();const parser=new DOMParser();const xmlDocument=parser.parseFromString("<templates/>","text/xml");function hasParsingError(parsedDocument){return parsedDocument.getElementsByTagName("parsererror").length>0;}
__exports.parseXML=parseXML;function parseXML(str){const xml=parser.parseFromString(str,"text/xml");if(hasParsingError(xml)){throw new Error(`An error occured while parsing ${str}: ${xml.getElementsByTagName("parsererror")}`);}
return xml.documentElement;}
__exports.serializeXML=serializeXML;function serializeXML(xml){return serializer.serializeToString(xml);}
__exports.visitXML=visitXML;function visitXML(xml,callback){const visit=(el)=>{if(el){let didVisitChildren=false;const visitChildren=()=>{for(const child of el.children){visit(child);}
didVisitChildren=true;};const shouldVisitChildren=callback(el,visitChildren);if(shouldVisitChildren!==false&&!didVisitChildren){visitChildren();}}};const xmlDoc=typeof xml==="string"?parseXML(xml):xml;visit(xmlDoc);}
__exports.append=append;function append(parent,node){const nodes=Array.isArray(node)?node:[node];parent.append(...nodes.filter(Boolean));return parent;}
__exports.combineAttributes=combineAttributes;function combineAttributes(el,attr,parts,glue=" "){const allValues=[];if(el.hasAttribute(attr)){allValues.push(el.getAttribute(attr));}
parts=Array.isArray(parts)?parts:[parts];parts=parts.filter((part)=>!!part);allValues.push(...parts);el.setAttribute(attr,allValues.join(glue));}
__exports.createElement=createElement;function createElement(tagName,...args){const el=xmlDocument.createElement(tagName);for(const arg of args){if(!arg){continue;}
if(Symbol.iterator in arg){el.append(...arg);}else if(typeof arg==="object"){for(const name in arg){el.setAttribute(name,arg[name]);}}}
return el;}
__exports.createTextNode=createTextNode;function createTextNode(data){return xmlDocument.createTextNode(data);}
__exports.extractAttributes=extractAttributes;function extractAttributes(el,attributes){const attrs=Object.create(null);for(const attr of attributes){attrs[attr]=el.getAttribute(attr)||"";el.removeAttribute(attr);}
return attrs;}
__exports.getTag=getTag;function getTag(node,lower=false){const tag=(node&&node.nodeName)||"";return lower?tag.toLowerCase():tag;}
__exports.setAttributes=setAttributes;function setAttributes(node,attributes){for(const[name,value]of Object.entries(attributes)){node.setAttribute(name,value);}}
return __exports;});;

/* /web/static/src/core/virtual_hook.js */
odoo.define('@web/core/virtual_hook',['@odoo/owl','@web/core/utils/arrays','@web/core/utils/timing'],function(require){'use strict';let __exports={};const{onWillRender,onWillStart,toRaw,useEffect,useExternalListener,useState,}=require("@odoo/owl");const{shallowEqual}=require("@web/core/utils/arrays");const{useThrottleForAnimation}=require("@web/core/utils/timing");__exports.useVirtual=useVirtual;function useVirtual({getItems,scrollableRef,initialScroll,getItemHeight}){const computeVirtualItems=()=>{const{items,scroll}=current;const yStart=scroll.top-window.innerHeight;const yEnd=scroll.top+2*window.innerHeight;let[startIndex,endIndex]=[0,0];let currentTop=0;for(const item of items){const height=getItemHeight(item);if(currentTop+height<yStart){startIndex++;endIndex++;}else if(currentTop+height<=yEnd+height){endIndex++;}else{break;}
currentTop+=height;}
const prevItems=toRaw(virtualItems);const newItems=items.slice(startIndex,endIndex);if(!shallowEqual(prevItems,newItems)){virtualItems.length=0;virtualItems.push(...newItems);}};const current={items:getItems(),scroll:{top:0,...initialScroll},};const virtualItems=useState([]);onWillStart(computeVirtualItems);onWillRender(()=>{const previousItems=current.items;current.items=getItems();if(!shallowEqual(previousItems,current.items)){computeVirtualItems();}});const throttledCompute=useThrottleForAnimation(computeVirtualItems);const scrollListener=(ev)=>{current.scroll.top=ev.target.scrollTop;throttledCompute();};useExternalListener(window,"resize",throttledCompute);useEffect((el)=>{if(el){el.addEventListener("scroll",scrollListener);return()=>el.removeEventListener("scroll",scrollListener);}},()=>[scrollableRef.el]);return virtualItems;}
return __exports;});;

/* /web/static/src/env.js */
odoo.define('@web/env',['@web/core/registry','@web/core/assets','@odoo/owl','@web/core/l10n/translation'],function(require){'use strict';let __exports={};const{registry}=require("@web/core/registry");const{templates}=require("@web/core/assets");const{App,EventBus}=require("@odoo/owl");const{_t}=require("@web/core/l10n/translation");__exports.makeEnv=makeEnv;function makeEnv(){return{bus:new EventBus(),services:{},debug:odoo.debug,get isSmall(){throw new Error("UI service not initialized!");},};}
const serviceRegistry=registry.category("services");const SERVICES_METADATA=__exports.SERVICES_METADATA={};let startServicesPromise=null;__exports.startServices=startServices;async function startServices(env){await Promise.resolve();const toStart=new Set();serviceRegistry.addEventListener("UPDATE",async(ev)=>{await Promise.resolve();const{operation,key:name,value:service}=ev.detail;if(operation==="delete"){return;}
if(toStart.size){const namedService=Object.assign(Object.create(service),{name});toStart.add(namedService);}else{await _startServices(env,toStart);}});await _startServices(env,toStart);}
async function _startServices(env,toStart){if(startServicesPromise){return startServicesPromise.then(()=>_startServices(env,toStart));}
const services=env.services;for(const[name,service]of serviceRegistry.getEntries()){if(!(name in services)){const namedService=Object.assign(Object.create(service),{name});toStart.add(namedService);}}
async function start(){let service=null;const proms=[];while((service=findNext())){const name=service.name;toStart.delete(service);const entries=(service.dependencies||[]).map((dep)=>[dep,services[dep]]);const dependencies=Object.fromEntries(entries);let value;try{value=service.start(env,dependencies);}catch(e){value=e;console.error(e);}
if("async"in service){SERVICES_METADATA[name]=service.async;}
if(value instanceof Promise){proms.push(new Promise((resolve)=>{value.then((val)=>{services[name]=val||null;}).catch((error)=>{services[name]=error;console.error("Can't load service '"+name+"' because:",error);}).finally(resolve);}));}else{services[service.name]=value||null;}}
await Promise.all(proms);if(proms.length){return start();}}
startServicesPromise=start();await startServicesPromise;startServicesPromise=null;if(toStart.size){const names=[...toStart].map((s)=>s.name);const missingDeps=new Set();[...toStart].forEach((s)=>s.dependencies.forEach((dep)=>{if(!(dep in services)&&!names.includes(dep)){missingDeps.add(dep);}}));const depNames=[...missingDeps].join(", ");throw new Error(`Some services could not be started: ${names}. Missing dependencies: ${depNames}`);}
function findNext(){for(const s of toStart){if(s.dependencies){if(s.dependencies.every((d)=>d in services)){return s;}}else{return s;}}
return null;}}
__exports.mountComponent=mountComponent;async function mountComponent(component,target,appConfig={}){let{env}=appConfig;const isRoot=!env;if(isRoot){env=await makeEnv();await startServices(env);}
const app=new App(component,{env,templates,dev:env.debug,warnIfNoStaticProps:true,name:component.constructor.name,translatableAttributes:["data-tooltip"],translateFn:_t,...appConfig,});const root=await app.mount(target);if(isRoot){odoo.__WOWL_DEBUG__={root};}
return app;}
return __exports;});;

/* /web/static/src/libs/pdfjs.js */
odoo.define('@web/libs/pdfjs',['@web/core/browser/feature_detection'],function(require){'use strict';let __exports={};const{isMobileOS}=require("@web/core/browser/feature_detection");__exports.hidePDFJSButtons=hidePDFJSButtons;function hidePDFJSButtons(rootElement){const cssStyle=document.createElement("style");cssStyle.rel="stylesheet";cssStyle.textContent=`button#secondaryOpenFile.secondaryToolbarButton, button#openFile.toolbarButton,
a#secondaryViewBookmark.secondaryToolbarButton, a#viewBookmark.toolbarButton {
display: none !important;
}`;if(isMobileOS()){cssStyle.textContent=`${cssStyle.innerHTML}
button#secondaryDownload.secondaryToolbarButton, button#download.toolbarButton,
button#secondaryPrint.secondaryToolbarButton, button#print.toolbarButton{
display: none !important;
}`;}
const iframe=rootElement.tagName==="IFRAME"?rootElement:rootElement.querySelector("iframe");if(iframe){if(!iframe.dataset.hideButtons){iframe.dataset.hideButtons="true";iframe.addEventListener("load",(event)=>{if(iframe.contentDocument&&iframe.contentDocument.head){iframe.contentDocument.head.appendChild(cssStyle);}});}}else{console.warn("No IFRAME found");}}
return __exports;});;

/* /web/static/lib/pdfjs/build/pdf.js */
(function webpackUniversalModuleDefinition(root,factory){if(typeof exports==='object'&&typeof module==='object')
module.exports=factory();else if(typeof define==='function'&&define.amd)
define("pdfjs-dist/build/pdf",[],factory);else if(typeof exports==='object')
exports["pdfjs-dist/build/pdf"]=factory();else
root["pdfjs-dist/build/pdf"]=root.pdfjsLib=factory();})(globalThis,()=>{return(()=>{var __webpack_modules__=([,((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.VerbosityLevel=exports.Util=exports.UnknownErrorException=exports.UnexpectedResponseException=exports.UNSUPPORTED_FEATURES=exports.TextRenderingMode=exports.StreamType=exports.RenderingIntentFlag=exports.PermissionFlag=exports.PasswordResponses=exports.PasswordException=exports.PageActionEventType=exports.OPS=exports.MissingPDFException=exports.LINE_FACTOR=exports.LINE_DESCENT_FACTOR=exports.InvalidPDFException=exports.ImageKind=exports.IDENTITY_MATRIX=exports.FormatError=exports.FontType=exports.FeatureTest=exports.FONT_IDENTITY_MATRIX=exports.DocumentActionEventType=exports.CMapCompressionType=exports.BaseException=exports.AnnotationType=exports.AnnotationStateModelType=exports.AnnotationReviewState=exports.AnnotationReplyType=exports.AnnotationMode=exports.AnnotationMarkedState=exports.AnnotationFlag=exports.AnnotationFieldFlag=exports.AnnotationEditorType=exports.AnnotationEditorPrefix=exports.AnnotationEditorParamsType=exports.AnnotationBorderStyleType=exports.AnnotationActionEventType=exports.AbortException=void 0;exports.arrayByteLength=arrayByteLength;exports.arraysToBytes=arraysToBytes;exports.assert=assert;exports.bytesToString=bytesToString;exports.createPromiseCapability=createPromiseCapability;exports.createValidAbsoluteUrl=createValidAbsoluteUrl;exports.escapeString=escapeString;exports.getModificationDate=getModificationDate;exports.getVerbosityLevel=getVerbosityLevel;exports.info=info;exports.isArrayBuffer=isArrayBuffer;exports.isArrayEqual=isArrayEqual;exports.isAscii=isAscii;exports.objectFromMap=objectFromMap;exports.objectSize=objectSize;exports.setVerbosityLevel=setVerbosityLevel;exports.shadow=shadow;exports.string32=string32;exports.stringToBytes=stringToBytes;exports.stringToPDFString=stringToPDFString;exports.stringToUTF16BEString=stringToUTF16BEString;exports.stringToUTF8String=stringToUTF8String;exports.unreachable=unreachable;exports.utf8StringToString=utf8StringToString;exports.warn=warn;__w_pdfjs_require__(2);const IDENTITY_MATRIX=[1,0,0,1,0,0];exports.IDENTITY_MATRIX=IDENTITY_MATRIX;const FONT_IDENTITY_MATRIX=[0.001,0,0,0.001,0,0];exports.FONT_IDENTITY_MATRIX=FONT_IDENTITY_MATRIX;const LINE_FACTOR=1.35;exports.LINE_FACTOR=LINE_FACTOR;const LINE_DESCENT_FACTOR=0.35;exports.LINE_DESCENT_FACTOR=LINE_DESCENT_FACTOR;const RenderingIntentFlag={ANY:0x01,DISPLAY:0x02,PRINT:0x04,ANNOTATIONS_FORMS:0x10,ANNOTATIONS_STORAGE:0x20,ANNOTATIONS_DISABLE:0x40,OPLIST:0x100};exports.RenderingIntentFlag=RenderingIntentFlag;const AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3};exports.AnnotationMode=AnnotationMode;const AnnotationEditorPrefix="pdfjs_internal_editor_";exports.AnnotationEditorPrefix=AnnotationEditorPrefix;const AnnotationEditorType={DISABLE:-1,NONE:0,FREETEXT:3,INK:15};exports.AnnotationEditorType=AnnotationEditorType;const AnnotationEditorParamsType={FREETEXT_SIZE:1,FREETEXT_COLOR:2,FREETEXT_OPACITY:3,INK_COLOR:11,INK_THICKNESS:12,INK_OPACITY:13};exports.AnnotationEditorParamsType=AnnotationEditorParamsType;const PermissionFlag={PRINT:0x04,MODIFY_CONTENTS:0x08,COPY:0x10,MODIFY_ANNOTATIONS:0x20,FILL_INTERACTIVE_FORMS:0x100,COPY_FOR_ACCESSIBILITY:0x200,ASSEMBLE:0x400,PRINT_HIGH_QUALITY:0x800};exports.PermissionFlag=PermissionFlag;const TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4};exports.TextRenderingMode=TextRenderingMode;const ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};exports.ImageKind=ImageKind;const AnnotationType={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26};exports.AnnotationType=AnnotationType;const AnnotationStateModelType={MARKED:"Marked",REVIEW:"Review"};exports.AnnotationStateModelType=AnnotationStateModelType;const AnnotationMarkedState={MARKED:"Marked",UNMARKED:"Unmarked"};exports.AnnotationMarkedState=AnnotationMarkedState;const AnnotationReviewState={ACCEPTED:"Accepted",REJECTED:"Rejected",CANCELLED:"Cancelled",COMPLETED:"Completed",NONE:"None"};exports.AnnotationReviewState=AnnotationReviewState;const AnnotationReplyType={GROUP:"Group",REPLY:"R"};exports.AnnotationReplyType=AnnotationReplyType;const AnnotationFlag={INVISIBLE:0x01,HIDDEN:0x02,PRINT:0x04,NOZOOM:0x08,NOROTATE:0x10,NOVIEW:0x20,READONLY:0x40,LOCKED:0x80,TOGGLENOVIEW:0x100,LOCKEDCONTENTS:0x200};exports.AnnotationFlag=AnnotationFlag;const AnnotationFieldFlag={READONLY:0x0000001,REQUIRED:0x0000002,NOEXPORT:0x0000004,MULTILINE:0x0001000,PASSWORD:0x0002000,NOTOGGLETOOFF:0x0004000,RADIO:0x0008000,PUSHBUTTON:0x0010000,COMBO:0x0020000,EDIT:0x0040000,SORT:0x0080000,FILESELECT:0x0100000,MULTISELECT:0x0200000,DONOTSPELLCHECK:0x0400000,DONOTSCROLL:0x0800000,COMB:0x1000000,RICHTEXT:0x2000000,RADIOSINUNISON:0x2000000,COMMITONSELCHANGE:0x4000000};exports.AnnotationFieldFlag=AnnotationFieldFlag;const AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};exports.AnnotationBorderStyleType=AnnotationBorderStyleType;const AnnotationActionEventType={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"};exports.AnnotationActionEventType=AnnotationActionEventType;const DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"};exports.DocumentActionEventType=DocumentActionEventType;const PageActionEventType={O:"PageOpen",C:"PageClose"};exports.PageActionEventType=PageActionEventType;const StreamType={UNKNOWN:"UNKNOWN",FLATE:"FLATE",LZW:"LZW",DCT:"DCT",JPX:"JPX",JBIG:"JBIG",A85:"A85",AHX:"AHX",CCF:"CCF",RLX:"RLX"};exports.StreamType=StreamType;const FontType={UNKNOWN:"UNKNOWN",TYPE1:"TYPE1",TYPE1STANDARD:"TYPE1STANDARD",TYPE1C:"TYPE1C",CIDFONTTYPE0:"CIDFONTTYPE0",CIDFONTTYPE0C:"CIDFONTTYPE0C",TRUETYPE:"TRUETYPE",CIDFONTTYPE2:"CIDFONTTYPE2",TYPE3:"TYPE3",OPENTYPE:"OPENTYPE",TYPE0:"TYPE0",MMTYPE1:"MMTYPE1"};exports.FontType=FontType;const VerbosityLevel={ERRORS:0,WARNINGS:1,INFOS:5};exports.VerbosityLevel=VerbosityLevel;const CMapCompressionType={NONE:0,BINARY:1,STREAM:2};exports.CMapCompressionType=CMapCompressionType;const OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91};exports.OPS=OPS;const UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",signatures:"signatures",smask:"smask",shadingPattern:"shadingPattern",font:"font",errorTilingPattern:"errorTilingPattern",errorExtGState:"errorExtGState",errorXObject:"errorXObject",errorFontLoadType3:"errorFontLoadType3",errorFontState:"errorFontState",errorFontMissing:"errorFontMissing",errorFontTranslate:"errorFontTranslate",errorColorSpace:"errorColorSpace",errorOperatorList:"errorOperatorList",errorFontToUnicode:"errorFontToUnicode",errorFontLoadNative:"errorFontLoadNative",errorFontBuildPath:"errorFontBuildPath",errorFontGetPath:"errorFontGetPath",errorMarkedContent:"errorMarkedContent",errorContentSubStream:"errorContentSubStream"};exports.UNSUPPORTED_FEATURES=UNSUPPORTED_FEATURES;const PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};exports.PasswordResponses=PasswordResponses;let verbosity=VerbosityLevel.WARNINGS;function setVerbosityLevel(level){if(Number.isInteger(level)){verbosity=level;}}
function getVerbosityLevel(){return verbosity;}
function info(msg){if(verbosity>=VerbosityLevel.INFOS){console.log(`Info: ${msg}`);}}
function warn(msg){if(verbosity>=VerbosityLevel.WARNINGS){console.log(`Warning: ${msg}`);}}
function unreachable(msg){throw new Error(msg);}
function assert(cond,msg){if(!cond){unreachable(msg);}}
function _isValidProtocol(url){if(!url){return false;}
switch(url.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return true;default:return false;}}
function createValidAbsoluteUrl(url){let baseUrl=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;let options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(!url){return null;}
try{if(options&&typeof url==="string"){if(options.addDefaultProtocol&&url.startsWith("www.")){const dots=url.match(/\./g);if(dots&&dots.length>=2){url=`http://${url}`;}}
if(options.tryConvertEncoding){try{url=stringToUTF8String(url);}catch(ex){}}}
const absoluteUrl=baseUrl?new URL(url,baseUrl):new URL(url);if(_isValidProtocol(absoluteUrl)){return absoluteUrl;}}catch(ex){}
return null;}
function shadow(obj,prop,value){Object.defineProperty(obj,prop,{value,enumerable:true,configurable:true,writable:false});return value;}
const BaseException=function BaseExceptionClosure(){function BaseException(message,name){if(this.constructor===BaseException){unreachable("Cannot initialize BaseException.");}
this.message=message;this.name=name;}
BaseException.prototype=new Error();BaseException.constructor=BaseException;return BaseException;}();exports.BaseException=BaseException;class PasswordException extends BaseException{constructor(msg,code){super(msg,"PasswordException");this.code=code;}}
exports.PasswordException=PasswordException;class UnknownErrorException extends BaseException{constructor(msg,details){super(msg,"UnknownErrorException");this.details=details;}}
exports.UnknownErrorException=UnknownErrorException;class InvalidPDFException extends BaseException{constructor(msg){super(msg,"InvalidPDFException");}}
exports.InvalidPDFException=InvalidPDFException;class MissingPDFException extends BaseException{constructor(msg){super(msg,"MissingPDFException");}}
exports.MissingPDFException=MissingPDFException;class UnexpectedResponseException extends BaseException{constructor(msg,status){super(msg,"UnexpectedResponseException");this.status=status;}}
exports.UnexpectedResponseException=UnexpectedResponseException;class FormatError extends BaseException{constructor(msg){super(msg,"FormatError");}}
exports.FormatError=FormatError;class AbortException extends BaseException{constructor(msg){super(msg,"AbortException");}}
exports.AbortException=AbortException;function bytesToString(bytes){if(typeof bytes!=="object"||bytes===null||bytes.length===undefined){unreachable("Invalid argument for bytesToString");}
const length=bytes.length;const MAX_ARGUMENT_COUNT=8192;if(length<MAX_ARGUMENT_COUNT){return String.fromCharCode.apply(null,bytes);}
const strBuf=[];for(let i=0;i<length;i+=MAX_ARGUMENT_COUNT){const chunkEnd=Math.min(i+MAX_ARGUMENT_COUNT,length);const chunk=bytes.subarray(i,chunkEnd);strBuf.push(String.fromCharCode.apply(null,chunk));}
return strBuf.join("");}
function stringToBytes(str){if(typeof str!=="string"){unreachable("Invalid argument for stringToBytes");}
const length=str.length;const bytes=new Uint8Array(length);for(let i=0;i<length;++i){bytes[i]=str.charCodeAt(i)&0xff;}
return bytes;}
function arrayByteLength(arr){if(arr.length!==undefined){return arr.length;}
if(arr.byteLength!==undefined){return arr.byteLength;}
unreachable("Invalid argument for arrayByteLength");}
function arraysToBytes(arr){const length=arr.length;if(length===1&&arr[0]instanceof Uint8Array){return arr[0];}
let resultLength=0;for(let i=0;i<length;i++){resultLength+=arrayByteLength(arr[i]);}
let pos=0;const data=new Uint8Array(resultLength);for(let i=0;i<length;i++){let item=arr[i];if(!(item instanceof Uint8Array)){if(typeof item==="string"){item=stringToBytes(item);}else{item=new Uint8Array(item);}}
const itemLength=item.byteLength;data.set(item,pos);pos+=itemLength;}
return data;}
function string32(value){return String.fromCharCode(value>>24&0xff,value>>16&0xff,value>>8&0xff,value&0xff);}
function objectSize(obj){return Object.keys(obj).length;}
function objectFromMap(map){const obj=Object.create(null);for(const[key,value]of map){obj[key]=value;}
return obj;}
function isLittleEndian(){const buffer8=new Uint8Array(4);buffer8[0]=1;const view32=new Uint32Array(buffer8.buffer,0,1);return view32[0]===1;}
function isEvalSupported(){try{new Function("");return true;}catch(e){return false;}}
class FeatureTest{static get isLittleEndian(){return shadow(this,"isLittleEndian",isLittleEndian());}
static get isEvalSupported(){return shadow(this,"isEvalSupported",isEvalSupported());}
static get isOffscreenCanvasSupported(){return shadow(this,"isOffscreenCanvasSupported",typeof OffscreenCanvas!=="undefined");}}
exports.FeatureTest=FeatureTest;const hexNumbers=[...Array(256).keys()].map(n=>n.toString(16).padStart(2,"0"));class Util{static makeHexColor(r,g,b){return`#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;}
static scaleMinMax(transform,minMax){let temp;if(transform[0]){if(transform[0]<0){temp=minMax[0];minMax[0]=minMax[1];minMax[1]=temp;}
minMax[0]*=transform[0];minMax[1]*=transform[0];if(transform[3]<0){temp=minMax[2];minMax[2]=minMax[3];minMax[3]=temp;}
minMax[2]*=transform[3];minMax[3]*=transform[3];}else{temp=minMax[0];minMax[0]=minMax[2];minMax[2]=temp;temp=minMax[1];minMax[1]=minMax[3];minMax[3]=temp;if(transform[1]<0){temp=minMax[2];minMax[2]=minMax[3];minMax[3]=temp;}
minMax[2]*=transform[1];minMax[3]*=transform[1];if(transform[2]<0){temp=minMax[0];minMax[0]=minMax[1];minMax[1]=temp;}
minMax[0]*=transform[2];minMax[1]*=transform[2];}
minMax[0]+=transform[4];minMax[1]+=transform[4];minMax[2]+=transform[5];minMax[3]+=transform[5];}
static transform(m1,m2){return[m1[0]*m2[0]+m1[2]*m2[1],m1[1]*m2[0]+m1[3]*m2[1],m1[0]*m2[2]+m1[2]*m2[3],m1[1]*m2[2]+m1[3]*m2[3],m1[0]*m2[4]+m1[2]*m2[5]+m1[4],m1[1]*m2[4]+m1[3]*m2[5]+m1[5]];}
static applyTransform(p,m){const xt=p[0]*m[0]+p[1]*m[2]+m[4];const yt=p[0]*m[1]+p[1]*m[3]+m[5];return[xt,yt];}
static applyInverseTransform(p,m){const d=m[0]*m[3]-m[1]*m[2];const xt=(p[0]*m[3]-p[1]*m[2]+m[2]*m[5]-m[4]*m[3])/d;const yt=(-p[0]*m[1]+p[1]*m[0]+m[4]*m[1]-m[5]*m[0])/d;return[xt,yt];}
static getAxialAlignedBoundingBox(r,m){const p1=Util.applyTransform(r,m);const p2=Util.applyTransform(r.slice(2,4),m);const p3=Util.applyTransform([r[0],r[3]],m);const p4=Util.applyTransform([r[2],r[1]],m);return[Math.min(p1[0],p2[0],p3[0],p4[0]),Math.min(p1[1],p2[1],p3[1],p4[1]),Math.max(p1[0],p2[0],p3[0],p4[0]),Math.max(p1[1],p2[1],p3[1],p4[1])];}
static inverseTransform(m){const d=m[0]*m[3]-m[1]*m[2];return[m[3]/d,-m[1]/d,-m[2]/d,m[0]/d,(m[2]*m[5]-m[4]*m[3])/d,(m[4]*m[1]-m[5]*m[0])/d];}
static apply3dTransform(m,v){return[m[0]*v[0]+m[1]*v[1]+m[2]*v[2],m[3]*v[0]+m[4]*v[1]+m[5]*v[2],m[6]*v[0]+m[7]*v[1]+m[8]*v[2]];}
static singularValueDecompose2dScale(m){const transpose=[m[0],m[2],m[1],m[3]];const a=m[0]*transpose[0]+m[1]*transpose[2];const b=m[0]*transpose[1]+m[1]*transpose[3];const c=m[2]*transpose[0]+m[3]*transpose[2];const d=m[2]*transpose[1]+m[3]*transpose[3];const first=(a+d)/2;const second=Math.sqrt((a+d)**2-4*(a*d-c*b))/2;const sx=first+second||1;const sy=first-second||1;return[Math.sqrt(sx),Math.sqrt(sy)];}
static normalizeRect(rect){const r=rect.slice(0);if(rect[0]>rect[2]){r[0]=rect[2];r[2]=rect[0];}
if(rect[1]>rect[3]){r[1]=rect[3];r[3]=rect[1];}
return r;}
static intersect(rect1,rect2){const xLow=Math.max(Math.min(rect1[0],rect1[2]),Math.min(rect2[0],rect2[2]));const xHigh=Math.min(Math.max(rect1[0],rect1[2]),Math.max(rect2[0],rect2[2]));if(xLow>xHigh){return null;}
const yLow=Math.max(Math.min(rect1[1],rect1[3]),Math.min(rect2[1],rect2[3]));const yHigh=Math.min(Math.max(rect1[1],rect1[3]),Math.max(rect2[1],rect2[3]));if(yLow>yHigh){return null;}
return[xLow,yLow,xHigh,yHigh];}
static bezierBoundingBox(x0,y0,x1,y1,x2,y2,x3,y3){const tvalues=[],bounds=[[],[]];let a,b,c,t,t1,t2,b2ac,sqrtb2ac;for(let i=0;i<2;++i){if(i===0){b=6*x0-12*x1+6*x2;a=-3*x0+9*x1-9*x2+3*x3;c=3*x1-3*x0;}else{b=6*y0-12*y1+6*y2;a=-3*y0+9*y1-9*y2+3*y3;c=3*y1-3*y0;}
if(Math.abs(a)<1e-12){if(Math.abs(b)<1e-12){continue;}
t=-c/b;if(0<t&&t<1){tvalues.push(t);}
continue;}
b2ac=b*b-4*c*a;sqrtb2ac=Math.sqrt(b2ac);if(b2ac<0){continue;}
t1=(-b+sqrtb2ac)/(2*a);if(0<t1&&t1<1){tvalues.push(t1);}
t2=(-b-sqrtb2ac)/(2*a);if(0<t2&&t2<1){tvalues.push(t2);}}
let j=tvalues.length,mt;const jlen=j;while(j--){t=tvalues[j];mt=1-t;bounds[0][j]=mt*mt*mt*x0+3*mt*mt*t*x1+3*mt*t*t*x2+t*t*t*x3;bounds[1][j]=mt*mt*mt*y0+3*mt*mt*t*y1+3*mt*t*t*y2+t*t*t*y3;}
bounds[0][jlen]=x0;bounds[1][jlen]=y0;bounds[0][jlen+1]=x3;bounds[1][jlen+1]=y3;bounds[0].length=bounds[1].length=jlen+2;return[Math.min(...bounds[0]),Math.min(...bounds[1]),Math.max(...bounds[0]),Math.max(...bounds[1])];}}
exports.Util=Util;const PDFStringTranslateTable=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2d8,0x2c7,0x2c6,0x2d9,0x2dd,0x2db,0x2da,0x2dc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2022,0x2020,0x2021,0x2026,0x2014,0x2013,0x192,0x2044,0x2039,0x203a,0x2212,0x2030,0x201e,0x201c,0x201d,0x2018,0x2019,0x201a,0x2122,0xfb01,0xfb02,0x141,0x152,0x160,0x178,0x17d,0x131,0x142,0x153,0x161,0x17e,0,0x20ac];function stringToPDFString(str){if(str[0]>="\xEF"){let encoding;if(str[0]==="\xFE"&&str[1]==="\xFF"){encoding="utf-16be";}else if(str[0]==="\xFF"&&str[1]==="\xFE"){encoding="utf-16le";}else if(str[0]==="\xEF"&&str[1]==="\xBB"&&str[2]==="\xBF"){encoding="utf-8";}
if(encoding){try{const decoder=new TextDecoder(encoding,{fatal:true});const buffer=stringToBytes(str);return decoder.decode(buffer);}catch(ex){warn(`stringToPDFString: "${ex}".`);}}}
const strBuf=[];for(let i=0,ii=str.length;i<ii;i++){const code=PDFStringTranslateTable[str.charCodeAt(i)];strBuf.push(code?String.fromCharCode(code):str.charAt(i));}
return strBuf.join("");}
function escapeString(str){return str.replace(/([()\\\n\r])/g,match=>{if(match==="\n"){return"\\n";}else if(match==="\r"){return"\\r";}
return`\\${match}`;});}
function isAscii(str){return/^[\x00-\x7F]*$/.test(str);}
function stringToUTF16BEString(str){const buf=["\xFE\xFF"];for(let i=0,ii=str.length;i<ii;i++){const char=str.charCodeAt(i);buf.push(String.fromCharCode(char>>8&0xff),String.fromCharCode(char&0xff));}
return buf.join("");}
function stringToUTF8String(str){return decodeURIComponent(escape(str));}
function utf8StringToString(str){return unescape(encodeURIComponent(str));}
function isArrayBuffer(v){return typeof v==="object"&&v!==null&&v.byteLength!==undefined;}
function isArrayEqual(arr1,arr2){if(arr1.length!==arr2.length){return false;}
for(let i=0,ii=arr1.length;i<ii;i++){if(arr1[i]!==arr2[i]){return false;}}
return true;}
function getModificationDate(){let date=arguments.length>0&&arguments[0]!==undefined?arguments[0]:new Date();const buffer=[date.getUTCFullYear().toString(),(date.getUTCMonth()+1).toString().padStart(2,"0"),date.getUTCDate().toString().padStart(2,"0"),date.getUTCHours().toString().padStart(2,"0"),date.getUTCMinutes().toString().padStart(2,"0"),date.getUTCSeconds().toString().padStart(2,"0")];return buffer.join("");}
function createPromiseCapability(){const capability=Object.create(null);let isSettled=false;Object.defineProperty(capability,"settled",{get(){return isSettled;}});capability.promise=new Promise(function(resolve,reject){capability.resolve=function(data){isSettled=true;resolve(data);};capability.reject=function(reason){isSettled=true;reject(reason);};});return capability;}}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var _is_node=__w_pdfjs_require__(3);if(!globalThis._pdfjsCompatibilityChecked){globalThis._pdfjsCompatibilityChecked=true;(function checkNodeBtoa(){if(globalThis.btoa||!_is_node.isNodeJS){return;}
globalThis.btoa=function(chars){return Buffer.from(chars,"binary").toString("base64");};})();(function checkNodeAtob(){if(globalThis.atob||!_is_node.isNodeJS){return;}
globalThis.atob=function(input){return Buffer.from(input,"base64").toString("binary");};})();(function checkDOMMatrix(){if(globalThis.DOMMatrix||!_is_node.isNodeJS){return;}
globalThis.DOMMatrix=require("dommatrix/dist/dommatrix.js");})();(function checkReadableStream(){if(globalThis.ReadableStream||!_is_node.isNodeJS){return;}
globalThis.ReadableStream=require("web-streams-polyfill/dist/ponyfill.js").ReadableStream;})();(function checkArrayAt(){if(Array.prototype.at){return;}
__w_pdfjs_require__(4);})();(function checkTypedArrayAt(){if(Uint8Array.prototype.at){return;}
__w_pdfjs_require__(76);})();(function checkStructuredClone(){if(globalThis.structuredClone){return;}
__w_pdfjs_require__(86);})();}}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.isNodeJS=void 0;const isNodeJS=typeof process==="object"&&process+""==="[object process]"&&!process.versions.nw&&!(process.versions.electron&&process.type&&process.type!=="browser");exports.isNodeJS=isNodeJS;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{__w_pdfjs_require__(5);var entryUnbind=__w_pdfjs_require__(75);module.exports=entryUnbind('Array','at');}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var $=__w_pdfjs_require__(6);var toObject=__w_pdfjs_require__(41);var lengthOfArrayLike=__w_pdfjs_require__(65);var toIntegerOrInfinity=__w_pdfjs_require__(63);var addToUnscopables=__w_pdfjs_require__(70);$({target:'Array',proto:true},{at:function at(index){var O=toObject(this);var len=lengthOfArrayLike(O);var relativeIndex=toIntegerOrInfinity(index);var k=relativeIndex>=0?relativeIndex:len+relativeIndex;return k<0||k>=len?undefined:O[k];}});addToUnscopables('at');}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(7);var getOwnPropertyDescriptor=(__w_pdfjs_require__(8).f);var createNonEnumerableProperty=__w_pdfjs_require__(45);var defineBuiltIn=__w_pdfjs_require__(49);var defineGlobalProperty=__w_pdfjs_require__(39);var copyConstructorProperties=__w_pdfjs_require__(57);var isForced=__w_pdfjs_require__(69);module.exports=function(options,source){var TARGET=options.target;var GLOBAL=options.global;var STATIC=options.stat;var FORCED,target,key,targetProperty,sourceProperty,descriptor;if(GLOBAL){target=global;}else if(STATIC){target=global[TARGET]||defineGlobalProperty(TARGET,{});}else{target=(global[TARGET]||{}).prototype;}
if(target)
for(key in source){sourceProperty=source[key];if(options.dontCallGetSet){descriptor=getOwnPropertyDescriptor(target,key);targetProperty=descriptor&&descriptor.value;}else
targetProperty=target[key];FORCED=isForced(GLOBAL?key:TARGET+(STATIC?'.':'#')+key,options.forced);if(!FORCED&&targetProperty!==undefined){if(typeof sourceProperty==typeof targetProperty)
continue;copyConstructorProperties(sourceProperty,targetProperty);}
if(options.sham||targetProperty&&targetProperty.sham){createNonEnumerableProperty(sourceProperty,'sham',true);}
defineBuiltIn(target,key,sourceProperty,options);}};}),((module)=>{var check=function(it){return it&&it.Math==Math&&it;};module.exports=check(typeof globalThis=='object'&&globalThis)||check(typeof window=='object'&&window)||check(typeof self=='object'&&self)||check(typeof global=='object'&&global)||(function(){return this;}())||Function('return this')();}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(9);var call=__w_pdfjs_require__(11);var propertyIsEnumerableModule=__w_pdfjs_require__(13);var createPropertyDescriptor=__w_pdfjs_require__(14);var toIndexedObject=__w_pdfjs_require__(15);var toPropertyKey=__w_pdfjs_require__(20);var hasOwn=__w_pdfjs_require__(40);var IE8_DOM_DEFINE=__w_pdfjs_require__(43);var $getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;exports.f=DESCRIPTORS?$getOwnPropertyDescriptor:function getOwnPropertyDescriptor(O,P){O=toIndexedObject(O);P=toPropertyKey(P);if(IE8_DOM_DEFINE)
try{return $getOwnPropertyDescriptor(O,P);}catch(error){}
if(hasOwn(O,P))
return createPropertyDescriptor(!call(propertyIsEnumerableModule.f,O,P),O[P]);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(10);module.exports=!fails(function(){return Object.defineProperty({},1,{get:function(){return 7;}})[1]!=7;});}),((module)=>{module.exports=function(exec){try{return!!exec();}catch(error){return true;}};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var NATIVE_BIND=__w_pdfjs_require__(12);var call=Function.prototype.call;module.exports=NATIVE_BIND?call.bind(call):function(){return call.apply(call,arguments);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(10);module.exports=!fails(function(){var test=function(){}.bind();return typeof test!='function'||test.hasOwnProperty('prototype');});}),((__unused_webpack_module,exports)=>{"use strict";var $propertyIsEnumerable={}.propertyIsEnumerable;var getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;var NASHORN_BUG=getOwnPropertyDescriptor&&!$propertyIsEnumerable.call({1:2},1);exports.f=NASHORN_BUG?function propertyIsEnumerable(V){var descriptor=getOwnPropertyDescriptor(this,V);return!!descriptor&&descriptor.enumerable;}:$propertyIsEnumerable;}),((module)=>{module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value:value};};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var IndexedObject=__w_pdfjs_require__(16);var requireObjectCoercible=__w_pdfjs_require__(19);module.exports=function(it){return IndexedObject(requireObjectCoercible(it));};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(17);var fails=__w_pdfjs_require__(10);var classof=__w_pdfjs_require__(18);var $Object=Object;var split=uncurryThis(''.split);module.exports=fails(function(){return!$Object('z').propertyIsEnumerable(0);})?function(it){return classof(it)=='String'?split(it,''):$Object(it);}:$Object;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var NATIVE_BIND=__w_pdfjs_require__(12);var FunctionPrototype=Function.prototype;var bind=FunctionPrototype.bind;var call=FunctionPrototype.call;var uncurryThis=NATIVE_BIND&&bind.bind(call,call);module.exports=NATIVE_BIND?function(fn){return fn&&uncurryThis(fn);}:function(fn){return fn&&function(){return call.apply(fn,arguments);};};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(17);var toString=uncurryThis({}.toString);var stringSlice=uncurryThis(''.slice);module.exports=function(it){return stringSlice(toString(it),8,-1);};}),((module)=>{var $TypeError=TypeError;module.exports=function(it){if(it==undefined)
throw $TypeError("Can't call method on "+it);return it;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toPrimitive=__w_pdfjs_require__(21);var isSymbol=__w_pdfjs_require__(24);module.exports=function(argument){var key=toPrimitive(argument,'string');return isSymbol(key)?key:key+'';};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var call=__w_pdfjs_require__(11);var isObject=__w_pdfjs_require__(22);var isSymbol=__w_pdfjs_require__(24);var getMethod=__w_pdfjs_require__(31);var ordinaryToPrimitive=__w_pdfjs_require__(34);var wellKnownSymbol=__w_pdfjs_require__(35);var $TypeError=TypeError;var TO_PRIMITIVE=wellKnownSymbol('toPrimitive');module.exports=function(input,pref){if(!isObject(input)||isSymbol(input))
return input;var exoticToPrim=getMethod(input,TO_PRIMITIVE);var result;if(exoticToPrim){if(pref===undefined)
pref='default';result=call(exoticToPrim,input,pref);if(!isObject(result)||isSymbol(result))
return result;throw $TypeError("Can't convert object to primitive value");}
if(pref===undefined)
pref='number';return ordinaryToPrimitive(input,pref);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isCallable=__w_pdfjs_require__(23);module.exports=function(it){return typeof it=='object'?it!==null:isCallable(it);};}),((module)=>{module.exports=function(argument){return typeof argument=='function';};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var getBuiltIn=__w_pdfjs_require__(25);var isCallable=__w_pdfjs_require__(23);var isPrototypeOf=__w_pdfjs_require__(26);var USE_SYMBOL_AS_UID=__w_pdfjs_require__(27);var $Object=Object;module.exports=USE_SYMBOL_AS_UID?function(it){return typeof it=='symbol';}:function(it){var $Symbol=getBuiltIn('Symbol');return isCallable($Symbol)&&isPrototypeOf($Symbol.prototype,$Object(it));};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(7);var isCallable=__w_pdfjs_require__(23);var aFunction=function(argument){return isCallable(argument)?argument:undefined;};module.exports=function(namespace,method){return arguments.length<2?aFunction(global[namespace]):global[namespace]&&global[namespace][method];};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(17);module.exports=uncurryThis({}.isPrototypeOf);}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var NATIVE_SYMBOL=__w_pdfjs_require__(28);module.exports=NATIVE_SYMBOL&&!Symbol.sham&&typeof Symbol.iterator=='symbol';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var V8_VERSION=__w_pdfjs_require__(29);var fails=__w_pdfjs_require__(10);module.exports=!!Object.getOwnPropertySymbols&&!fails(function(){var symbol=Symbol();return!String(symbol)||!(Object(symbol)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41;});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(7);var userAgent=__w_pdfjs_require__(30);var process=global.process;var Deno=global.Deno;var versions=process&&process.versions||Deno&&Deno.version;var v8=versions&&versions.v8;var match,version;if(v8){match=v8.split('.');version=match[0]>0&&match[0]<4?1:+(match[0]+match[1]);}
if(!version&&userAgent){match=userAgent.match(/Edge\/(\d+)/);if(!match||match[1]>=74){match=userAgent.match(/Chrome\/(\d+)/);if(match)
version=+match[1];}}
module.exports=version;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var getBuiltIn=__w_pdfjs_require__(25);module.exports=getBuiltIn('navigator','userAgent')||'';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var aCallable=__w_pdfjs_require__(32);module.exports=function(V,P){var func=V[P];return func==null?undefined:aCallable(func);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isCallable=__w_pdfjs_require__(23);var tryToString=__w_pdfjs_require__(33);var $TypeError=TypeError;module.exports=function(argument){if(isCallable(argument))
return argument;throw $TypeError(tryToString(argument)+' is not a function');};}),((module)=>{var $String=String;module.exports=function(argument){try{return $String(argument);}catch(error){return'Object';}};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var call=__w_pdfjs_require__(11);var isCallable=__w_pdfjs_require__(23);var isObject=__w_pdfjs_require__(22);var $TypeError=TypeError;module.exports=function(input,pref){var fn,val;if(pref==='string'&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input)))
return val;if(isCallable(fn=input.valueOf)&&!isObject(val=call(fn,input)))
return val;if(pref!=='string'&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input)))
return val;throw $TypeError("Can't convert object to primitive value");};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(7);var shared=__w_pdfjs_require__(36);var hasOwn=__w_pdfjs_require__(40);var uid=__w_pdfjs_require__(42);var NATIVE_SYMBOL=__w_pdfjs_require__(28);var USE_SYMBOL_AS_UID=__w_pdfjs_require__(27);var WellKnownSymbolsStore=shared('wks');var Symbol=global.Symbol;var symbolFor=Symbol&&Symbol['for'];var createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol:Symbol&&Symbol.withoutSetter||uid;module.exports=function(name){if(!hasOwn(WellKnownSymbolsStore,name)||!(NATIVE_SYMBOL||typeof WellKnownSymbolsStore[name]=='string')){var description='Symbol.'+name;if(NATIVE_SYMBOL&&hasOwn(Symbol,name)){WellKnownSymbolsStore[name]=Symbol[name];}else if(USE_SYMBOL_AS_UID&&symbolFor){WellKnownSymbolsStore[name]=symbolFor(description);}else{WellKnownSymbolsStore[name]=createWellKnownSymbol(description);}}
return WellKnownSymbolsStore[name];};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var IS_PURE=__w_pdfjs_require__(37);var store=__w_pdfjs_require__(38);(module.exports=function(key,value){return store[key]||(store[key]=value!==undefined?value:{});})('versions',[]).push({version:'3.24.1',mode:IS_PURE?'pure':'global',copyright:'© 2014-2022 Denis Pushkarev (zloirock.ru)',license:'https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE',source:'https://github.com/zloirock/core-js'});}),((module)=>{module.exports=false;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(7);var defineGlobalProperty=__w_pdfjs_require__(39);var SHARED='__core-js_shared__';var store=global[SHARED]||defineGlobalProperty(SHARED,{});module.exports=store;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(7);var defineProperty=Object.defineProperty;module.exports=function(key,value){try{defineProperty(global,key,{value:value,configurable:true,writable:true});}catch(error){global[key]=value;}
return value;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(17);var toObject=__w_pdfjs_require__(41);var hasOwnProperty=uncurryThis({}.hasOwnProperty);module.exports=Object.hasOwn||function hasOwn(it,key){return hasOwnProperty(toObject(it),key);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var requireObjectCoercible=__w_pdfjs_require__(19);var $Object=Object;module.exports=function(argument){return $Object(requireObjectCoercible(argument));};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(17);var id=0;var postfix=Math.random();var toString=uncurryThis(1.0.toString);module.exports=function(key){return'Symbol('+(key===undefined?'':key)+')_'+toString(++id+postfix,36);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(9);var fails=__w_pdfjs_require__(10);var createElement=__w_pdfjs_require__(44);module.exports=!DESCRIPTORS&&!fails(function(){return Object.defineProperty(createElement('div'),'a',{get:function(){return 7;}}).a!=7;});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(7);var isObject=__w_pdfjs_require__(22);var document=global.document;var EXISTS=isObject(document)&&isObject(document.createElement);module.exports=function(it){return EXISTS?document.createElement(it):{};};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(9);var definePropertyModule=__w_pdfjs_require__(46);var createPropertyDescriptor=__w_pdfjs_require__(14);module.exports=DESCRIPTORS?function(object,key,value){return definePropertyModule.f(object,key,createPropertyDescriptor(1,value));}:function(object,key,value){object[key]=value;return object;};}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(9);var IE8_DOM_DEFINE=__w_pdfjs_require__(43);var V8_PROTOTYPE_DEFINE_BUG=__w_pdfjs_require__(47);var anObject=__w_pdfjs_require__(48);var toPropertyKey=__w_pdfjs_require__(20);var $TypeError=TypeError;var $defineProperty=Object.defineProperty;var $getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;var ENUMERABLE='enumerable';var CONFIGURABLE='configurable';var WRITABLE='writable';exports.f=DESCRIPTORS?V8_PROTOTYPE_DEFINE_BUG?function defineProperty(O,P,Attributes){anObject(O);P=toPropertyKey(P);anObject(Attributes);if(typeof O==='function'&&P==='prototype'&&'value'in Attributes&&WRITABLE in Attributes&&!Attributes[WRITABLE]){var current=$getOwnPropertyDescriptor(O,P);if(current&&current[WRITABLE]){O[P]=Attributes.value;Attributes={configurable:CONFIGURABLE in Attributes?Attributes[CONFIGURABLE]:current[CONFIGURABLE],enumerable:ENUMERABLE in Attributes?Attributes[ENUMERABLE]:current[ENUMERABLE],writable:false};}}
return $defineProperty(O,P,Attributes);}:$defineProperty:function defineProperty(O,P,Attributes){anObject(O);P=toPropertyKey(P);anObject(Attributes);if(IE8_DOM_DEFINE)
try{return $defineProperty(O,P,Attributes);}catch(error){}
if('get'in Attributes||'set'in Attributes)
throw $TypeError('Accessors not supported');if('value'in Attributes)
O[P]=Attributes.value;return O;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(9);var fails=__w_pdfjs_require__(10);module.exports=DESCRIPTORS&&fails(function(){return Object.defineProperty(function(){},'prototype',{value:42,writable:false}).prototype!=42;});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isObject=__w_pdfjs_require__(22);var $String=String;var $TypeError=TypeError;module.exports=function(argument){if(isObject(argument))
return argument;throw $TypeError($String(argument)+' is not an object');};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isCallable=__w_pdfjs_require__(23);var definePropertyModule=__w_pdfjs_require__(46);var makeBuiltIn=__w_pdfjs_require__(50);var defineGlobalProperty=__w_pdfjs_require__(39);module.exports=function(O,key,value,options){if(!options)
options={};var simple=options.enumerable;var name=options.name!==undefined?options.name:key;if(isCallable(value))
makeBuiltIn(value,name,options);if(options.global){if(simple)
O[key]=value;else
defineGlobalProperty(key,value);}else{try{if(!options.unsafe)
delete O[key];else if(O[key])
simple=true;}catch(error){}
if(simple)
O[key]=value;else
definePropertyModule.f(O,key,{value:value,enumerable:false,configurable:!options.nonConfigurable,writable:!options.nonWritable});}
return O;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(10);var isCallable=__w_pdfjs_require__(23);var hasOwn=__w_pdfjs_require__(40);var DESCRIPTORS=__w_pdfjs_require__(9);var CONFIGURABLE_FUNCTION_NAME=(__w_pdfjs_require__(51).CONFIGURABLE);var inspectSource=__w_pdfjs_require__(52);var InternalStateModule=__w_pdfjs_require__(53);var enforceInternalState=InternalStateModule.enforce;var getInternalState=InternalStateModule.get;var defineProperty=Object.defineProperty;var CONFIGURABLE_LENGTH=DESCRIPTORS&&!fails(function(){return defineProperty(function(){},'length',{value:8}).length!==8;});var TEMPLATE=String(String).split('String');var makeBuiltIn=module.exports=function(value,name,options){if(String(name).slice(0,7)==='Symbol('){name='['+String(name).replace(/^Symbol\(([^)]*)\)/,'$1')+']';}
if(options&&options.getter)
name='get '+name;if(options&&options.setter)
name='set '+name;if(!hasOwn(value,'name')||CONFIGURABLE_FUNCTION_NAME&&value.name!==name){if(DESCRIPTORS)
defineProperty(value,'name',{value:name,configurable:true});else
value.name=name;}
if(CONFIGURABLE_LENGTH&&options&&hasOwn(options,'arity')&&value.length!==options.arity){defineProperty(value,'length',{value:options.arity});}
try{if(options&&hasOwn(options,'constructor')&&options.constructor){if(DESCRIPTORS)
defineProperty(value,'prototype',{writable:false});}else if(value.prototype)
value.prototype=undefined;}catch(error){}
var state=enforceInternalState(value);if(!hasOwn(state,'source')){state.source=TEMPLATE.join(typeof name=='string'?name:'');}
return value;};Function.prototype.toString=makeBuiltIn(function toString(){return isCallable(this)&&getInternalState(this).source||inspectSource(this);},'toString');}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(9);var hasOwn=__w_pdfjs_require__(40);var FunctionPrototype=Function.prototype;var getDescriptor=DESCRIPTORS&&Object.getOwnPropertyDescriptor;var EXISTS=hasOwn(FunctionPrototype,'name');var PROPER=EXISTS&&function something(){}.name==='something';var CONFIGURABLE=EXISTS&&(!DESCRIPTORS||DESCRIPTORS&&getDescriptor(FunctionPrototype,'name').configurable);module.exports={EXISTS:EXISTS,PROPER:PROPER,CONFIGURABLE:CONFIGURABLE};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(17);var isCallable=__w_pdfjs_require__(23);var store=__w_pdfjs_require__(38);var functionToString=uncurryThis(Function.toString);if(!isCallable(store.inspectSource)){store.inspectSource=function(it){return functionToString(it);};}
module.exports=store.inspectSource;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var NATIVE_WEAK_MAP=__w_pdfjs_require__(54);var global=__w_pdfjs_require__(7);var uncurryThis=__w_pdfjs_require__(17);var isObject=__w_pdfjs_require__(22);var createNonEnumerableProperty=__w_pdfjs_require__(45);var hasOwn=__w_pdfjs_require__(40);var shared=__w_pdfjs_require__(38);var sharedKey=__w_pdfjs_require__(55);var hiddenKeys=__w_pdfjs_require__(56);var OBJECT_ALREADY_INITIALIZED='Object already initialized';var TypeError=global.TypeError;var WeakMap=global.WeakMap;var set,get,has;var enforce=function(it){return has(it)?get(it):set(it,{});};var getterFor=function(TYPE){return function(it){var state;if(!isObject(it)||(state=get(it)).type!==TYPE){throw TypeError('Incompatible receiver, '+TYPE+' required');}
return state;};};if(NATIVE_WEAK_MAP||shared.state){var store=shared.state||(shared.state=new WeakMap());var wmget=uncurryThis(store.get);var wmhas=uncurryThis(store.has);var wmset=uncurryThis(store.set);set=function(it,metadata){if(wmhas(store,it))
throw new TypeError(OBJECT_ALREADY_INITIALIZED);metadata.facade=it;wmset(store,it,metadata);return metadata;};get=function(it){return wmget(store,it)||{};};has=function(it){return wmhas(store,it);};}else{var STATE=sharedKey('state');hiddenKeys[STATE]=true;set=function(it,metadata){if(hasOwn(it,STATE))
throw new TypeError(OBJECT_ALREADY_INITIALIZED);metadata.facade=it;createNonEnumerableProperty(it,STATE,metadata);return metadata;};get=function(it){return hasOwn(it,STATE)?it[STATE]:{};};has=function(it){return hasOwn(it,STATE);};}
module.exports={set:set,get:get,has:has,enforce:enforce,getterFor:getterFor};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(7);var isCallable=__w_pdfjs_require__(23);var inspectSource=__w_pdfjs_require__(52);var WeakMap=global.WeakMap;module.exports=isCallable(WeakMap)&&/native code/.test(inspectSource(WeakMap));}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var shared=__w_pdfjs_require__(36);var uid=__w_pdfjs_require__(42);var keys=shared('keys');module.exports=function(key){return keys[key]||(keys[key]=uid(key));};}),((module)=>{module.exports={};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var hasOwn=__w_pdfjs_require__(40);var ownKeys=__w_pdfjs_require__(58);var getOwnPropertyDescriptorModule=__w_pdfjs_require__(8);var definePropertyModule=__w_pdfjs_require__(46);module.exports=function(target,source,exceptions){var keys=ownKeys(source);var defineProperty=definePropertyModule.f;var getOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f;for(var i=0;i<keys.length;i++){var key=keys[i];if(!hasOwn(target,key)&&!(exceptions&&hasOwn(exceptions,key))){defineProperty(target,key,getOwnPropertyDescriptor(source,key));}}};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var getBuiltIn=__w_pdfjs_require__(25);var uncurryThis=__w_pdfjs_require__(17);var getOwnPropertyNamesModule=__w_pdfjs_require__(59);var getOwnPropertySymbolsModule=__w_pdfjs_require__(68);var anObject=__w_pdfjs_require__(48);var concat=uncurryThis([].concat);module.exports=getBuiltIn('Reflect','ownKeys')||function ownKeys(it){var keys=getOwnPropertyNamesModule.f(anObject(it));var getOwnPropertySymbols=getOwnPropertySymbolsModule.f;return getOwnPropertySymbols?concat(keys,getOwnPropertySymbols(it)):keys;};}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{var internalObjectKeys=__w_pdfjs_require__(60);var enumBugKeys=__w_pdfjs_require__(67);var hiddenKeys=enumBugKeys.concat('length','prototype');exports.f=Object.getOwnPropertyNames||function getOwnPropertyNames(O){return internalObjectKeys(O,hiddenKeys);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(17);var hasOwn=__w_pdfjs_require__(40);var toIndexedObject=__w_pdfjs_require__(15);var indexOf=(__w_pdfjs_require__(61).indexOf);var hiddenKeys=__w_pdfjs_require__(56);var push=uncurryThis([].push);module.exports=function(object,names){var O=toIndexedObject(object);var i=0;var result=[];var key;for(key in O)
!hasOwn(hiddenKeys,key)&&hasOwn(O,key)&&push(result,key);while(names.length>i)
if(hasOwn(O,key=names[i++])){~indexOf(result,key)||push(result,key);}
return result;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toIndexedObject=__w_pdfjs_require__(15);var toAbsoluteIndex=__w_pdfjs_require__(62);var lengthOfArrayLike=__w_pdfjs_require__(65);var createMethod=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIndexedObject($this);var length=lengthOfArrayLike(O);var index=toAbsoluteIndex(fromIndex,length);var value;if(IS_INCLUDES&&el!=el)
while(length>index){value=O[index++];if(value!=value)
return true;}
else
for(;length>index;index++){if((IS_INCLUDES||index in O)&&O[index]===el)
return IS_INCLUDES||index||0;}
return!IS_INCLUDES&&-1;};};module.exports={includes:createMethod(true),indexOf:createMethod(false)};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toIntegerOrInfinity=__w_pdfjs_require__(63);var max=Math.max;var min=Math.min;module.exports=function(index,length){var integer=toIntegerOrInfinity(index);return integer<0?max(integer+length,0):min(integer,length);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var trunc=__w_pdfjs_require__(64);module.exports=function(argument){var number=+argument;return number!==number||number===0?0:trunc(number);};}),((module)=>{var ceil=Math.ceil;var floor=Math.floor;module.exports=Math.trunc||function trunc(x){var n=+x;return(n>0?floor:ceil)(n);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toLength=__w_pdfjs_require__(66);module.exports=function(obj){return toLength(obj.length);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toIntegerOrInfinity=__w_pdfjs_require__(63);var min=Math.min;module.exports=function(argument){return argument>0?min(toIntegerOrInfinity(argument),0x1FFFFFFFFFFFFF):0;};}),((module)=>{module.exports=['constructor','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','toLocaleString','toString','valueOf'];}),((__unused_webpack_module,exports)=>{exports.f=Object.getOwnPropertySymbols;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(10);var isCallable=__w_pdfjs_require__(23);var replacement=/#|\.prototype\./;var isForced=function(feature,detection){var value=data[normalize(feature)];return value==POLYFILL?true:value==NATIVE?false:isCallable(detection)?fails(detection):!!detection;};var normalize=isForced.normalize=function(string){return String(string).replace(replacement,'.').toLowerCase();};var data=isForced.data={};var NATIVE=isForced.NATIVE='N';var POLYFILL=isForced.POLYFILL='P';module.exports=isForced;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var wellKnownSymbol=__w_pdfjs_require__(35);var create=__w_pdfjs_require__(71);var defineProperty=(__w_pdfjs_require__(46).f);var UNSCOPABLES=wellKnownSymbol('unscopables');var ArrayPrototype=Array.prototype;if(ArrayPrototype[UNSCOPABLES]==undefined){defineProperty(ArrayPrototype,UNSCOPABLES,{configurable:true,value:create(null)});}
module.exports=function(key){ArrayPrototype[UNSCOPABLES][key]=true;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var anObject=__w_pdfjs_require__(48);var definePropertiesModule=__w_pdfjs_require__(72);var enumBugKeys=__w_pdfjs_require__(67);var hiddenKeys=__w_pdfjs_require__(56);var html=__w_pdfjs_require__(74);var documentCreateElement=__w_pdfjs_require__(44);var sharedKey=__w_pdfjs_require__(55);var GT='>';var LT='<';var PROTOTYPE='prototype';var SCRIPT='script';var IE_PROTO=sharedKey('IE_PROTO');var EmptyConstructor=function(){};var scriptTag=function(content){return LT+SCRIPT+GT+content+LT+'/'+SCRIPT+GT;};var NullProtoObjectViaActiveX=function(activeXDocument){activeXDocument.write(scriptTag(''));activeXDocument.close();var temp=activeXDocument.parentWindow.Object;activeXDocument=null;return temp;};var NullProtoObjectViaIFrame=function(){var iframe=documentCreateElement('iframe');var JS='java'+SCRIPT+':';var iframeDocument;iframe.style.display='none';html.appendChild(iframe);iframe.src=String(JS);iframeDocument=iframe.contentWindow.document;iframeDocument.open();iframeDocument.write(scriptTag('document.F=Object'));iframeDocument.close();return iframeDocument.F;};var activeXDocument;var NullProtoObject=function(){try{activeXDocument=new ActiveXObject('htmlfile');}catch(error){}
NullProtoObject=typeof document!='undefined'?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);var length=enumBugKeys.length;while(length--)
delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];return NullProtoObject();};hiddenKeys[IE_PROTO]=true;module.exports=Object.create||function create(O,Properties){var result;if(O!==null){EmptyConstructor[PROTOTYPE]=anObject(O);result=new EmptyConstructor();EmptyConstructor[PROTOTYPE]=null;result[IE_PROTO]=O;}else
result=NullProtoObject();return Properties===undefined?result:definePropertiesModule.f(result,Properties);};}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(9);var V8_PROTOTYPE_DEFINE_BUG=__w_pdfjs_require__(47);var definePropertyModule=__w_pdfjs_require__(46);var anObject=__w_pdfjs_require__(48);var toIndexedObject=__w_pdfjs_require__(15);var objectKeys=__w_pdfjs_require__(73);exports.f=DESCRIPTORS&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function defineProperties(O,Properties){anObject(O);var props=toIndexedObject(Properties);var keys=objectKeys(Properties);var length=keys.length;var index=0;var key;while(length>index)
definePropertyModule.f(O,key=keys[index++],props[key]);return O;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var internalObjectKeys=__w_pdfjs_require__(60);var enumBugKeys=__w_pdfjs_require__(67);module.exports=Object.keys||function keys(O){return internalObjectKeys(O,enumBugKeys);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var getBuiltIn=__w_pdfjs_require__(25);module.exports=getBuiltIn('document','documentElement');}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(7);var uncurryThis=__w_pdfjs_require__(17);module.exports=function(CONSTRUCTOR,METHOD){return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);};}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{__w_pdfjs_require__(77);}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var ArrayBufferViewCore=__w_pdfjs_require__(78);var lengthOfArrayLike=__w_pdfjs_require__(65);var toIntegerOrInfinity=__w_pdfjs_require__(63);var aTypedArray=ArrayBufferViewCore.aTypedArray;var exportTypedArrayMethod=ArrayBufferViewCore.exportTypedArrayMethod;exportTypedArrayMethod('at',function at(index){var O=aTypedArray(this);var len=lengthOfArrayLike(O);var relativeIndex=toIntegerOrInfinity(index);var k=relativeIndex>=0?relativeIndex:len+relativeIndex;return k<0||k>=len?undefined:O[k];});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var NATIVE_ARRAY_BUFFER=__w_pdfjs_require__(79);var DESCRIPTORS=__w_pdfjs_require__(9);var global=__w_pdfjs_require__(7);var isCallable=__w_pdfjs_require__(23);var isObject=__w_pdfjs_require__(22);var hasOwn=__w_pdfjs_require__(40);var classof=__w_pdfjs_require__(80);var tryToString=__w_pdfjs_require__(33);var createNonEnumerableProperty=__w_pdfjs_require__(45);var defineBuiltIn=__w_pdfjs_require__(49);var defineProperty=(__w_pdfjs_require__(46).f);var isPrototypeOf=__w_pdfjs_require__(26);var getPrototypeOf=__w_pdfjs_require__(82);var setPrototypeOf=__w_pdfjs_require__(84);var wellKnownSymbol=__w_pdfjs_require__(35);var uid=__w_pdfjs_require__(42);var InternalStateModule=__w_pdfjs_require__(53);var enforceInternalState=InternalStateModule.enforce;var getInternalState=InternalStateModule.get;var Int8Array=global.Int8Array;var Int8ArrayPrototype=Int8Array&&Int8Array.prototype;var Uint8ClampedArray=global.Uint8ClampedArray;var Uint8ClampedArrayPrototype=Uint8ClampedArray&&Uint8ClampedArray.prototype;var TypedArray=Int8Array&&getPrototypeOf(Int8Array);var TypedArrayPrototype=Int8ArrayPrototype&&getPrototypeOf(Int8ArrayPrototype);var ObjectPrototype=Object.prototype;var TypeError=global.TypeError;var TO_STRING_TAG=wellKnownSymbol('toStringTag');var TYPED_ARRAY_TAG=uid('TYPED_ARRAY_TAG');var TYPED_ARRAY_CONSTRUCTOR='TypedArrayConstructor';var NATIVE_ARRAY_BUFFER_VIEWS=NATIVE_ARRAY_BUFFER&&!!setPrototypeOf&&classof(global.opera)!=='Opera';var TYPED_ARRAY_TAG_REQUIRED=false;var NAME,Constructor,Prototype;var TypedArrayConstructorsList={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8};var BigIntArrayConstructorsList={BigInt64Array:8,BigUint64Array:8};var isView=function isView(it){if(!isObject(it))
return false;var klass=classof(it);return klass==='DataView'||hasOwn(TypedArrayConstructorsList,klass)||hasOwn(BigIntArrayConstructorsList,klass);};var getTypedArrayConstructor=function(it){var proto=getPrototypeOf(it);if(!isObject(proto))
return;var state=getInternalState(proto);return state&&hasOwn(state,TYPED_ARRAY_CONSTRUCTOR)?state[TYPED_ARRAY_CONSTRUCTOR]:getTypedArrayConstructor(proto);};var isTypedArray=function(it){if(!isObject(it))
return false;var klass=classof(it);return hasOwn(TypedArrayConstructorsList,klass)||hasOwn(BigIntArrayConstructorsList,klass);};var aTypedArray=function(it){if(isTypedArray(it))
return it;throw TypeError('Target is not a typed array');};var aTypedArrayConstructor=function(C){if(isCallable(C)&&(!setPrototypeOf||isPrototypeOf(TypedArray,C)))
return C;throw TypeError(tryToString(C)+' is not a typed array constructor');};var exportTypedArrayMethod=function(KEY,property,forced,options){if(!DESCRIPTORS)
return;if(forced)
for(var ARRAY in TypedArrayConstructorsList){var TypedArrayConstructor=global[ARRAY];if(TypedArrayConstructor&&hasOwn(TypedArrayConstructor.prototype,KEY))
try{delete TypedArrayConstructor.prototype[KEY];}catch(error){try{TypedArrayConstructor.prototype[KEY]=property;}catch(error2){}}}
if(!TypedArrayPrototype[KEY]||forced){defineBuiltIn(TypedArrayPrototype,KEY,forced?property:NATIVE_ARRAY_BUFFER_VIEWS&&Int8ArrayPrototype[KEY]||property,options);}};var exportTypedArrayStaticMethod=function(KEY,property,forced){var ARRAY,TypedArrayConstructor;if(!DESCRIPTORS)
return;if(setPrototypeOf){if(forced)
for(ARRAY in TypedArrayConstructorsList){TypedArrayConstructor=global[ARRAY];if(TypedArrayConstructor&&hasOwn(TypedArrayConstructor,KEY))
try{delete TypedArrayConstructor[KEY];}catch(error){}}
if(!TypedArray[KEY]||forced){try{return defineBuiltIn(TypedArray,KEY,forced?property:NATIVE_ARRAY_BUFFER_VIEWS&&TypedArray[KEY]||property);}catch(error){}}else
return;}
for(ARRAY in TypedArrayConstructorsList){TypedArrayConstructor=global[ARRAY];if(TypedArrayConstructor&&(!TypedArrayConstructor[KEY]||forced)){defineBuiltIn(TypedArrayConstructor,KEY,property);}}};for(NAME in TypedArrayConstructorsList){Constructor=global[NAME];Prototype=Constructor&&Constructor.prototype;if(Prototype)
enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR]=Constructor;else
NATIVE_ARRAY_BUFFER_VIEWS=false;}
for(NAME in BigIntArrayConstructorsList){Constructor=global[NAME];Prototype=Constructor&&Constructor.prototype;if(Prototype)
enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR]=Constructor;}
if(!NATIVE_ARRAY_BUFFER_VIEWS||!isCallable(TypedArray)||TypedArray===Function.prototype){TypedArray=function TypedArray(){throw TypeError('Incorrect invocation');};if(NATIVE_ARRAY_BUFFER_VIEWS)
for(NAME in TypedArrayConstructorsList){if(global[NAME])
setPrototypeOf(global[NAME],TypedArray);}}
if(!NATIVE_ARRAY_BUFFER_VIEWS||!TypedArrayPrototype||TypedArrayPrototype===ObjectPrototype){TypedArrayPrototype=TypedArray.prototype;if(NATIVE_ARRAY_BUFFER_VIEWS)
for(NAME in TypedArrayConstructorsList){if(global[NAME])
setPrototypeOf(global[NAME].prototype,TypedArrayPrototype);}}
if(NATIVE_ARRAY_BUFFER_VIEWS&&getPrototypeOf(Uint8ClampedArrayPrototype)!==TypedArrayPrototype){setPrototypeOf(Uint8ClampedArrayPrototype,TypedArrayPrototype);}
if(DESCRIPTORS&&!hasOwn(TypedArrayPrototype,TO_STRING_TAG)){TYPED_ARRAY_TAG_REQUIRED=true;defineProperty(TypedArrayPrototype,TO_STRING_TAG,{get:function(){return isObject(this)?this[TYPED_ARRAY_TAG]:undefined;}});for(NAME in TypedArrayConstructorsList)
if(global[NAME]){createNonEnumerableProperty(global[NAME],TYPED_ARRAY_TAG,NAME);}}
module.exports={NATIVE_ARRAY_BUFFER_VIEWS:NATIVE_ARRAY_BUFFER_VIEWS,TYPED_ARRAY_TAG:TYPED_ARRAY_TAG_REQUIRED&&TYPED_ARRAY_TAG,aTypedArray:aTypedArray,aTypedArrayConstructor:aTypedArrayConstructor,exportTypedArrayMethod:exportTypedArrayMethod,exportTypedArrayStaticMethod:exportTypedArrayStaticMethod,getTypedArrayConstructor:getTypedArrayConstructor,isView:isView,isTypedArray:isTypedArray,TypedArray:TypedArray,TypedArrayPrototype:TypedArrayPrototype};}),((module)=>{module.exports=typeof ArrayBuffer!='undefined'&&typeof DataView!='undefined';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var TO_STRING_TAG_SUPPORT=__w_pdfjs_require__(81);var isCallable=__w_pdfjs_require__(23);var classofRaw=__w_pdfjs_require__(18);var wellKnownSymbol=__w_pdfjs_require__(35);var TO_STRING_TAG=wellKnownSymbol('toStringTag');var $Object=Object;var CORRECT_ARGUMENTS=classofRaw((function(){return arguments;}()))=='Arguments';var tryGet=function(it,key){try{return it[key];}catch(error){}};module.exports=TO_STRING_TAG_SUPPORT?classofRaw:function(it){var O,tag,result;return it===undefined?'Undefined':it===null?'Null':typeof(tag=tryGet(O=$Object(it),TO_STRING_TAG))=='string'?tag:CORRECT_ARGUMENTS?classofRaw(O):(result=classofRaw(O))=='Object'&&isCallable(O.callee)?'Arguments':result;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var wellKnownSymbol=__w_pdfjs_require__(35);var TO_STRING_TAG=wellKnownSymbol('toStringTag');var test={};test[TO_STRING_TAG]='z';module.exports=String(test)==='[object z]';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var hasOwn=__w_pdfjs_require__(40);var isCallable=__w_pdfjs_require__(23);var toObject=__w_pdfjs_require__(41);var sharedKey=__w_pdfjs_require__(55);var CORRECT_PROTOTYPE_GETTER=__w_pdfjs_require__(83);var IE_PROTO=sharedKey('IE_PROTO');var $Object=Object;var ObjectPrototype=$Object.prototype;module.exports=CORRECT_PROTOTYPE_GETTER?$Object.getPrototypeOf:function(O){var object=toObject(O);if(hasOwn(object,IE_PROTO))
return object[IE_PROTO];var constructor=object.constructor;if(isCallable(constructor)&&object instanceof constructor){return constructor.prototype;}
return object instanceof $Object?ObjectPrototype:null;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(10);module.exports=!fails(function(){function F(){}
F.prototype.constructor=null;return Object.getPrototypeOf(new F())!==F.prototype;});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(17);var anObject=__w_pdfjs_require__(48);var aPossiblePrototype=__w_pdfjs_require__(85);module.exports=Object.setPrototypeOf||('__proto__'in{}?(function(){var CORRECT_SETTER=false;var test={};var setter;try{setter=uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype,'__proto__').set);setter(test,[]);CORRECT_SETTER=test instanceof Array;}catch(error){}
return function setPrototypeOf(O,proto){anObject(O);aPossiblePrototype(proto);if(CORRECT_SETTER)
setter(O,proto);else
O.__proto__=proto;return O;};}()):undefined);}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isCallable=__w_pdfjs_require__(23);var $String=String;var $TypeError=TypeError;module.exports=function(argument){if(typeof argument=='object'||isCallable(argument))
return argument;throw $TypeError("Can't set "+$String(argument)+' as a prototype');};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{__w_pdfjs_require__(87);__w_pdfjs_require__(93);__w_pdfjs_require__(95);__w_pdfjs_require__(117);__w_pdfjs_require__(119);var path=__w_pdfjs_require__(128);module.exports=path.structuredClone;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var toIndexedObject=__w_pdfjs_require__(15);var addToUnscopables=__w_pdfjs_require__(70);var Iterators=__w_pdfjs_require__(88);var InternalStateModule=__w_pdfjs_require__(53);var defineProperty=(__w_pdfjs_require__(46).f);var defineIterator=__w_pdfjs_require__(89);var IS_PURE=__w_pdfjs_require__(37);var DESCRIPTORS=__w_pdfjs_require__(9);var ARRAY_ITERATOR='Array Iterator';var setInternalState=InternalStateModule.set;var getInternalState=InternalStateModule.getterFor(ARRAY_ITERATOR);module.exports=defineIterator(Array,'Array',function(iterated,kind){setInternalState(this,{type:ARRAY_ITERATOR,target:toIndexedObject(iterated),index:0,kind:kind});},function(){var state=getInternalState(this);var target=state.target;var kind=state.kind;var index=state.index++;if(!target||index>=target.length){state.target=undefined;return{value:undefined,done:true};}
if(kind=='keys')
return{value:index,done:false};if(kind=='values')
return{value:target[index],done:false};return{value:[index,target[index]],done:false};},'values');var values=Iterators.Arguments=Iterators.Array;addToUnscopables('keys');addToUnscopables('values');addToUnscopables('entries');if(!IS_PURE&&DESCRIPTORS&&values.name!=='values')
try{defineProperty(values,'name',{value:'values'});}catch(error){}}),((module)=>{module.exports={};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var $=__w_pdfjs_require__(6);var call=__w_pdfjs_require__(11);var IS_PURE=__w_pdfjs_require__(37);var FunctionName=__w_pdfjs_require__(51);var isCallable=__w_pdfjs_require__(23);var createIteratorConstructor=__w_pdfjs_require__(90);var getPrototypeOf=__w_pdfjs_require__(82);var setPrototypeOf=__w_pdfjs_require__(84);var setToStringTag=__w_pdfjs_require__(92);var createNonEnumerableProperty=__w_pdfjs_require__(45);var defineBuiltIn=__w_pdfjs_require__(49);var wellKnownSymbol=__w_pdfjs_require__(35);var Iterators=__w_pdfjs_require__(88);var IteratorsCore=__w_pdfjs_require__(91);var PROPER_FUNCTION_NAME=FunctionName.PROPER;var CONFIGURABLE_FUNCTION_NAME=FunctionName.CONFIGURABLE;var IteratorPrototype=IteratorsCore.IteratorPrototype;var BUGGY_SAFARI_ITERATORS=IteratorsCore.BUGGY_SAFARI_ITERATORS;var ITERATOR=wellKnownSymbol('iterator');var KEYS='keys';var VALUES='values';var ENTRIES='entries';var returnThis=function(){return this;};module.exports=function(Iterable,NAME,IteratorConstructor,next,DEFAULT,IS_SET,FORCED){createIteratorConstructor(IteratorConstructor,NAME,next);var getIterationMethod=function(KIND){if(KIND===DEFAULT&&defaultIterator)
return defaultIterator;if(!BUGGY_SAFARI_ITERATORS&&KIND in IterablePrototype)
return IterablePrototype[KIND];switch(KIND){case KEYS:return function keys(){return new IteratorConstructor(this,KIND);};case VALUES:return function values(){return new IteratorConstructor(this,KIND);};case ENTRIES:return function entries(){return new IteratorConstructor(this,KIND);};}
return function(){return new IteratorConstructor(this);};};var TO_STRING_TAG=NAME+' Iterator';var INCORRECT_VALUES_NAME=false;var IterablePrototype=Iterable.prototype;var nativeIterator=IterablePrototype[ITERATOR]||IterablePrototype['@@iterator']||DEFAULT&&IterablePrototype[DEFAULT];var defaultIterator=!BUGGY_SAFARI_ITERATORS&&nativeIterator||getIterationMethod(DEFAULT);var anyNativeIterator=NAME=='Array'?IterablePrototype.entries||nativeIterator:nativeIterator;var CurrentIteratorPrototype,methods,KEY;if(anyNativeIterator){CurrentIteratorPrototype=getPrototypeOf(anyNativeIterator.call(new Iterable()));if(CurrentIteratorPrototype!==Object.prototype&&CurrentIteratorPrototype.next){if(!IS_PURE&&getPrototypeOf(CurrentIteratorPrototype)!==IteratorPrototype){if(setPrototypeOf){setPrototypeOf(CurrentIteratorPrototype,IteratorPrototype);}else if(!isCallable(CurrentIteratorPrototype[ITERATOR])){defineBuiltIn(CurrentIteratorPrototype,ITERATOR,returnThis);}}
setToStringTag(CurrentIteratorPrototype,TO_STRING_TAG,true,true);if(IS_PURE)
Iterators[TO_STRING_TAG]=returnThis;}}
if(PROPER_FUNCTION_NAME&&DEFAULT==VALUES&&nativeIterator&&nativeIterator.name!==VALUES){if(!IS_PURE&&CONFIGURABLE_FUNCTION_NAME){createNonEnumerableProperty(IterablePrototype,'name',VALUES);}else{INCORRECT_VALUES_NAME=true;defaultIterator=function values(){return call(nativeIterator,this);};}}
if(DEFAULT){methods={values:getIterationMethod(VALUES),keys:IS_SET?defaultIterator:getIterationMethod(KEYS),entries:getIterationMethod(ENTRIES)};if(FORCED)
for(KEY in methods){if(BUGGY_SAFARI_ITERATORS||INCORRECT_VALUES_NAME||!(KEY in IterablePrototype)){defineBuiltIn(IterablePrototype,KEY,methods[KEY]);}}
else
$({target:NAME,proto:true,forced:BUGGY_SAFARI_ITERATORS||INCORRECT_VALUES_NAME},methods);}
if((!IS_PURE||FORCED)&&IterablePrototype[ITERATOR]!==defaultIterator){defineBuiltIn(IterablePrototype,ITERATOR,defaultIterator,{name:DEFAULT});}
Iterators[NAME]=defaultIterator;return methods;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var IteratorPrototype=(__w_pdfjs_require__(91).IteratorPrototype);var create=__w_pdfjs_require__(71);var createPropertyDescriptor=__w_pdfjs_require__(14);var setToStringTag=__w_pdfjs_require__(92);var Iterators=__w_pdfjs_require__(88);var returnThis=function(){return this;};module.exports=function(IteratorConstructor,NAME,next,ENUMERABLE_NEXT){var TO_STRING_TAG=NAME+' Iterator';IteratorConstructor.prototype=create(IteratorPrototype,{next:createPropertyDescriptor(+!ENUMERABLE_NEXT,next)});setToStringTag(IteratorConstructor,TO_STRING_TAG,false,true);Iterators[TO_STRING_TAG]=returnThis;return IteratorConstructor;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var fails=__w_pdfjs_require__(10);var isCallable=__w_pdfjs_require__(23);var create=__w_pdfjs_require__(71);var getPrototypeOf=__w_pdfjs_require__(82);var defineBuiltIn=__w_pdfjs_require__(49);var wellKnownSymbol=__w_pdfjs_require__(35);var IS_PURE=__w_pdfjs_require__(37);var ITERATOR=wellKnownSymbol('iterator');var BUGGY_SAFARI_ITERATORS=false;var IteratorPrototype,PrototypeOfArrayIteratorPrototype,arrayIterator;if([].keys){arrayIterator=[].keys();if(!('next'in arrayIterator))
BUGGY_SAFARI_ITERATORS=true;else{PrototypeOfArrayIteratorPrototype=getPrototypeOf(getPrototypeOf(arrayIterator));if(PrototypeOfArrayIteratorPrototype!==Object.prototype)
IteratorPrototype=PrototypeOfArrayIteratorPrototype;}}
var NEW_ITERATOR_PROTOTYPE=IteratorPrototype==undefined||fails(function(){var test={};return IteratorPrototype[ITERATOR].call(test)!==test;});if(NEW_ITERATOR_PROTOTYPE)
IteratorPrototype={};else if(IS_PURE)
IteratorPrototype=create(IteratorPrototype);if(!isCallable(IteratorPrototype[ITERATOR])){defineBuiltIn(IteratorPrototype,ITERATOR,function(){return this;});}
module.exports={IteratorPrototype:IteratorPrototype,BUGGY_SAFARI_ITERATORS:BUGGY_SAFARI_ITERATORS};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var defineProperty=(__w_pdfjs_require__(46).f);var hasOwn=__w_pdfjs_require__(40);var wellKnownSymbol=__w_pdfjs_require__(35);var TO_STRING_TAG=wellKnownSymbol('toStringTag');module.exports=function(target,TAG,STATIC){if(target&&!STATIC)
target=target.prototype;if(target&&!hasOwn(target,TO_STRING_TAG)){defineProperty(target,TO_STRING_TAG,{configurable:true,value:TAG});}};}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{var TO_STRING_TAG_SUPPORT=__w_pdfjs_require__(81);var defineBuiltIn=__w_pdfjs_require__(49);var toString=__w_pdfjs_require__(94);if(!TO_STRING_TAG_SUPPORT){defineBuiltIn(Object.prototype,'toString',toString,{unsafe:true});}}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var TO_STRING_TAG_SUPPORT=__w_pdfjs_require__(81);var classof=__w_pdfjs_require__(80);module.exports=TO_STRING_TAG_SUPPORT?{}.toString:function toString(){return'[object '+classof(this)+']';};}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{__w_pdfjs_require__(96);}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var collection=__w_pdfjs_require__(97);var collectionStrong=__w_pdfjs_require__(114);collection('Map',function(init){return function Map(){return init(this,arguments.length?arguments[0]:undefined);};},collectionStrong);}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var $=__w_pdfjs_require__(6);var global=__w_pdfjs_require__(7);var uncurryThis=__w_pdfjs_require__(17);var isForced=__w_pdfjs_require__(69);var defineBuiltIn=__w_pdfjs_require__(49);var InternalMetadataModule=__w_pdfjs_require__(98);var iterate=__w_pdfjs_require__(105);var anInstance=__w_pdfjs_require__(111);var isCallable=__w_pdfjs_require__(23);var isObject=__w_pdfjs_require__(22);var fails=__w_pdfjs_require__(10);var checkCorrectnessOfIteration=__w_pdfjs_require__(112);var setToStringTag=__w_pdfjs_require__(92);var inheritIfRequired=__w_pdfjs_require__(113);module.exports=function(CONSTRUCTOR_NAME,wrapper,common){var IS_MAP=CONSTRUCTOR_NAME.indexOf('Map')!==-1;var IS_WEAK=CONSTRUCTOR_NAME.indexOf('Weak')!==-1;var ADDER=IS_MAP?'set':'add';var NativeConstructor=global[CONSTRUCTOR_NAME];var NativePrototype=NativeConstructor&&NativeConstructor.prototype;var Constructor=NativeConstructor;var exported={};var fixMethod=function(KEY){var uncurriedNativeMethod=uncurryThis(NativePrototype[KEY]);defineBuiltIn(NativePrototype,KEY,KEY=='add'?function add(value){uncurriedNativeMethod(this,value===0?0:value);return this;}:KEY=='delete'?function(key){return IS_WEAK&&!isObject(key)?false:uncurriedNativeMethod(this,key===0?0:key);}:KEY=='get'?function get(key){return IS_WEAK&&!isObject(key)?undefined:uncurriedNativeMethod(this,key===0?0:key);}:KEY=='has'?function has(key){return IS_WEAK&&!isObject(key)?false:uncurriedNativeMethod(this,key===0?0:key);}:function set(key,value){uncurriedNativeMethod(this,key===0?0:key,value);return this;});};var REPLACE=isForced(CONSTRUCTOR_NAME,!isCallable(NativeConstructor)||!(IS_WEAK||NativePrototype.forEach&&!fails(function(){new NativeConstructor().entries().next();})));if(REPLACE){Constructor=common.getConstructor(wrapper,CONSTRUCTOR_NAME,IS_MAP,ADDER);InternalMetadataModule.enable();}else if(isForced(CONSTRUCTOR_NAME,true)){var instance=new Constructor();var HASNT_CHAINING=instance[ADDER](IS_WEAK?{}:-0,1)!=instance;var THROWS_ON_PRIMITIVES=fails(function(){instance.has(1);});var ACCEPT_ITERABLES=checkCorrectnessOfIteration(function(iterable){new NativeConstructor(iterable);});var BUGGY_ZERO=!IS_WEAK&&fails(function(){var $instance=new NativeConstructor();var index=5;while(index--)
$instance[ADDER](index,index);return!$instance.has(-0);});if(!ACCEPT_ITERABLES){Constructor=wrapper(function(dummy,iterable){anInstance(dummy,NativePrototype);var that=inheritIfRequired(new NativeConstructor(),dummy,Constructor);if(iterable!=undefined)
iterate(iterable,that[ADDER],{that:that,AS_ENTRIES:IS_MAP});return that;});Constructor.prototype=NativePrototype;NativePrototype.constructor=Constructor;}
if(THROWS_ON_PRIMITIVES||BUGGY_ZERO){fixMethod('delete');fixMethod('has');IS_MAP&&fixMethod('get');}
if(BUGGY_ZERO||HASNT_CHAINING)
fixMethod(ADDER);if(IS_WEAK&&NativePrototype.clear)
delete NativePrototype.clear;}
exported[CONSTRUCTOR_NAME]=Constructor;$({global:true,constructor:true,forced:Constructor!=NativeConstructor},exported);setToStringTag(Constructor,CONSTRUCTOR_NAME);if(!IS_WEAK)
common.setStrong(Constructor,CONSTRUCTOR_NAME,IS_MAP);return Constructor;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var $=__w_pdfjs_require__(6);var uncurryThis=__w_pdfjs_require__(17);var hiddenKeys=__w_pdfjs_require__(56);var isObject=__w_pdfjs_require__(22);var hasOwn=__w_pdfjs_require__(40);var defineProperty=(__w_pdfjs_require__(46).f);var getOwnPropertyNamesModule=__w_pdfjs_require__(59);var getOwnPropertyNamesExternalModule=__w_pdfjs_require__(99);var isExtensible=__w_pdfjs_require__(102);var uid=__w_pdfjs_require__(42);var FREEZING=__w_pdfjs_require__(104);var REQUIRED=false;var METADATA=uid('meta');var id=0;var setMetadata=function(it){defineProperty(it,METADATA,{value:{objectID:'O'+id++,weakData:{}}});};var fastKey=function(it,create){if(!isObject(it))
return typeof it=='symbol'?it:(typeof it=='string'?'S':'P')+it;if(!hasOwn(it,METADATA)){if(!isExtensible(it))
return'F';if(!create)
return'E';setMetadata(it);}
return it[METADATA].objectID;};var getWeakData=function(it,create){if(!hasOwn(it,METADATA)){if(!isExtensible(it))
return true;if(!create)
return false;setMetadata(it);}
return it[METADATA].weakData;};var onFreeze=function(it){if(FREEZING&&REQUIRED&&isExtensible(it)&&!hasOwn(it,METADATA))
setMetadata(it);return it;};var enable=function(){meta.enable=function(){};REQUIRED=true;var getOwnPropertyNames=getOwnPropertyNamesModule.f;var splice=uncurryThis([].splice);var test={};test[METADATA]=1;if(getOwnPropertyNames(test).length){getOwnPropertyNamesModule.f=function(it){var result=getOwnPropertyNames(it);for(var i=0,length=result.length;i<length;i++){if(result[i]===METADATA){splice(result,i,1);break;}}
return result;};$({target:'Object',stat:true,forced:true},{getOwnPropertyNames:getOwnPropertyNamesExternalModule.f});}};var meta=module.exports={enable:enable,fastKey:fastKey,getWeakData:getWeakData,onFreeze:onFreeze};hiddenKeys[METADATA]=true;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var classof=__w_pdfjs_require__(18);var toIndexedObject=__w_pdfjs_require__(15);var $getOwnPropertyNames=(__w_pdfjs_require__(59).f);var arraySlice=__w_pdfjs_require__(100);var windowNames=typeof window=='object'&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];var getWindowNames=function(it){try{return $getOwnPropertyNames(it);}catch(error){return arraySlice(windowNames);}};module.exports.f=function getOwnPropertyNames(it){return windowNames&&classof(it)=='Window'?getWindowNames(it):$getOwnPropertyNames(toIndexedObject(it));};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toAbsoluteIndex=__w_pdfjs_require__(62);var lengthOfArrayLike=__w_pdfjs_require__(65);var createProperty=__w_pdfjs_require__(101);var $Array=Array;var max=Math.max;module.exports=function(O,start,end){var length=lengthOfArrayLike(O);var k=toAbsoluteIndex(start,length);var fin=toAbsoluteIndex(end===undefined?length:end,length);var result=$Array(max(fin-k,0));for(var n=0;k<fin;k++,n++)
createProperty(result,n,O[k]);result.length=n;return result;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var toPropertyKey=__w_pdfjs_require__(20);var definePropertyModule=__w_pdfjs_require__(46);var createPropertyDescriptor=__w_pdfjs_require__(14);module.exports=function(object,key,value){var propertyKey=toPropertyKey(key);if(propertyKey in object)
definePropertyModule.f(object,propertyKey,createPropertyDescriptor(0,value));else
object[propertyKey]=value;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(10);var isObject=__w_pdfjs_require__(22);var classof=__w_pdfjs_require__(18);var ARRAY_BUFFER_NON_EXTENSIBLE=__w_pdfjs_require__(103);var $isExtensible=Object.isExtensible;var FAILS_ON_PRIMITIVES=fails(function(){$isExtensible(1);});module.exports=FAILS_ON_PRIMITIVES||ARRAY_BUFFER_NON_EXTENSIBLE?function isExtensible(it){if(!isObject(it))
return false;if(ARRAY_BUFFER_NON_EXTENSIBLE&&classof(it)=='ArrayBuffer')
return false;return $isExtensible?$isExtensible(it):true;}:$isExtensible;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(10);module.exports=fails(function(){if(typeof ArrayBuffer=='function'){var buffer=new ArrayBuffer(8);if(Object.isExtensible(buffer))
Object.defineProperty(buffer,'a',{value:8});}});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(10);module.exports=!fails(function(){return Object.isExtensible(Object.preventExtensions({}));});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var bind=__w_pdfjs_require__(106);var call=__w_pdfjs_require__(11);var anObject=__w_pdfjs_require__(48);var tryToString=__w_pdfjs_require__(33);var isArrayIteratorMethod=__w_pdfjs_require__(107);var lengthOfArrayLike=__w_pdfjs_require__(65);var isPrototypeOf=__w_pdfjs_require__(26);var getIterator=__w_pdfjs_require__(108);var getIteratorMethod=__w_pdfjs_require__(109);var iteratorClose=__w_pdfjs_require__(110);var $TypeError=TypeError;var Result=function(stopped,result){this.stopped=stopped;this.result=result;};var ResultPrototype=Result.prototype;module.exports=function(iterable,unboundFunction,options){var that=options&&options.that;var AS_ENTRIES=!!(options&&options.AS_ENTRIES);var IS_RECORD=!!(options&&options.IS_RECORD);var IS_ITERATOR=!!(options&&options.IS_ITERATOR);var INTERRUPTED=!!(options&&options.INTERRUPTED);var fn=bind(unboundFunction,that);var iterator,iterFn,index,length,result,next,step;var stop=function(condition){if(iterator)
iteratorClose(iterator,'normal',condition);return new Result(true,condition);};var callFn=function(value){if(AS_ENTRIES){anObject(value);return INTERRUPTED?fn(value[0],value[1],stop):fn(value[0],value[1]);}
return INTERRUPTED?fn(value,stop):fn(value);};if(IS_RECORD){iterator=iterable.iterator;}else if(IS_ITERATOR){iterator=iterable;}else{iterFn=getIteratorMethod(iterable);if(!iterFn)
throw $TypeError(tryToString(iterable)+' is not iterable');if(isArrayIteratorMethod(iterFn)){for(index=0,length=lengthOfArrayLike(iterable);length>index;index++){result=callFn(iterable[index]);if(result&&isPrototypeOf(ResultPrototype,result))
return result;}
return new Result(false);}
iterator=getIterator(iterable,iterFn);}
next=IS_RECORD?iterable.next:iterator.next;while(!(step=call(next,iterator)).done){try{result=callFn(step.value);}catch(error){iteratorClose(iterator,'throw',error);}
if(typeof result=='object'&&result&&isPrototypeOf(ResultPrototype,result))
return result;}
return new Result(false);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(17);var aCallable=__w_pdfjs_require__(32);var NATIVE_BIND=__w_pdfjs_require__(12);var bind=uncurryThis(uncurryThis.bind);module.exports=function(fn,that){aCallable(fn);return that===undefined?fn:NATIVE_BIND?bind(fn,that):function(){return fn.apply(that,arguments);};};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var wellKnownSymbol=__w_pdfjs_require__(35);var Iterators=__w_pdfjs_require__(88);var ITERATOR=wellKnownSymbol('iterator');var ArrayPrototype=Array.prototype;module.exports=function(it){return it!==undefined&&(Iterators.Array===it||ArrayPrototype[ITERATOR]===it);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var call=__w_pdfjs_require__(11);var aCallable=__w_pdfjs_require__(32);var anObject=__w_pdfjs_require__(48);var tryToString=__w_pdfjs_require__(33);var getIteratorMethod=__w_pdfjs_require__(109);var $TypeError=TypeError;module.exports=function(argument,usingIterator){var iteratorMethod=arguments.length<2?getIteratorMethod(argument):usingIterator;if(aCallable(iteratorMethod))
return anObject(call(iteratorMethod,argument));throw $TypeError(tryToString(argument)+' is not iterable');};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var classof=__w_pdfjs_require__(80);var getMethod=__w_pdfjs_require__(31);var Iterators=__w_pdfjs_require__(88);var wellKnownSymbol=__w_pdfjs_require__(35);var ITERATOR=wellKnownSymbol('iterator');module.exports=function(it){if(it!=undefined)
return getMethod(it,ITERATOR)||getMethod(it,'@@iterator')||Iterators[classof(it)];};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var call=__w_pdfjs_require__(11);var anObject=__w_pdfjs_require__(48);var getMethod=__w_pdfjs_require__(31);module.exports=function(iterator,kind,value){var innerResult,innerError;anObject(iterator);try{innerResult=getMethod(iterator,'return');if(!innerResult){if(kind==='throw')
throw value;return value;}
innerResult=call(innerResult,iterator);}catch(error){innerError=true;innerResult=error;}
if(kind==='throw')
throw value;if(innerError)
throw innerResult;anObject(innerResult);return value;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isPrototypeOf=__w_pdfjs_require__(26);var $TypeError=TypeError;module.exports=function(it,Prototype){if(isPrototypeOf(Prototype,it))
return it;throw $TypeError('Incorrect invocation');};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var wellKnownSymbol=__w_pdfjs_require__(35);var ITERATOR=wellKnownSymbol('iterator');var SAFE_CLOSING=false;try{var called=0;var iteratorWithReturn={next:function(){return{done:!!called++};},'return':function(){SAFE_CLOSING=true;}};iteratorWithReturn[ITERATOR]=function(){return this;};Array.from(iteratorWithReturn,function(){throw 2;});}catch(error){}
module.exports=function(exec,SKIP_CLOSING){if(!SKIP_CLOSING&&!SAFE_CLOSING)
return false;var ITERATION_SUPPORT=false;try{var object={};object[ITERATOR]=function(){return{next:function(){return{done:ITERATION_SUPPORT=true};}};};exec(object);}catch(error){}
return ITERATION_SUPPORT;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isCallable=__w_pdfjs_require__(23);var isObject=__w_pdfjs_require__(22);var setPrototypeOf=__w_pdfjs_require__(84);module.exports=function($this,dummy,Wrapper){var NewTarget,NewTargetPrototype;if(setPrototypeOf&&isCallable(NewTarget=dummy.constructor)&&NewTarget!==Wrapper&&isObject(NewTargetPrototype=NewTarget.prototype)&&NewTargetPrototype!==Wrapper.prototype)
setPrototypeOf($this,NewTargetPrototype);return $this;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var defineProperty=(__w_pdfjs_require__(46).f);var create=__w_pdfjs_require__(71);var defineBuiltIns=__w_pdfjs_require__(115);var bind=__w_pdfjs_require__(106);var anInstance=__w_pdfjs_require__(111);var iterate=__w_pdfjs_require__(105);var defineIterator=__w_pdfjs_require__(89);var setSpecies=__w_pdfjs_require__(116);var DESCRIPTORS=__w_pdfjs_require__(9);var fastKey=(__w_pdfjs_require__(98).fastKey);var InternalStateModule=__w_pdfjs_require__(53);var setInternalState=InternalStateModule.set;var internalStateGetterFor=InternalStateModule.getterFor;module.exports={getConstructor:function(wrapper,CONSTRUCTOR_NAME,IS_MAP,ADDER){var Constructor=wrapper(function(that,iterable){anInstance(that,Prototype);setInternalState(that,{type:CONSTRUCTOR_NAME,index:create(null),first:undefined,last:undefined,size:0});if(!DESCRIPTORS)
that.size=0;if(iterable!=undefined)
iterate(iterable,that[ADDER],{that:that,AS_ENTRIES:IS_MAP});});var Prototype=Constructor.prototype;var getInternalState=internalStateGetterFor(CONSTRUCTOR_NAME);var define=function(that,key,value){var state=getInternalState(that);var entry=getEntry(that,key);var previous,index;if(entry){entry.value=value;}else{state.last=entry={index:index=fastKey(key,true),key:key,value:value,previous:previous=state.last,next:undefined,removed:false};if(!state.first)
state.first=entry;if(previous)
previous.next=entry;if(DESCRIPTORS)
state.size++;else
that.size++;if(index!=='F')
state.index[index]=entry;}
return that;};var getEntry=function(that,key){var state=getInternalState(that);var index=fastKey(key);var entry;if(index!=='F')
return state.index[index];for(entry=state.first;entry;entry=entry.next){if(entry.key==key)
return entry;}};defineBuiltIns(Prototype,{clear:function clear(){var that=this;var state=getInternalState(that);var data=state.index;var entry=state.first;while(entry){entry.removed=true;if(entry.previous)
entry.previous=entry.previous.next=undefined;delete data[entry.index];entry=entry.next;}
state.first=state.last=undefined;if(DESCRIPTORS)
state.size=0;else
that.size=0;},'delete':function(key){var that=this;var state=getInternalState(that);var entry=getEntry(that,key);if(entry){var next=entry.next;var prev=entry.previous;delete state.index[entry.index];entry.removed=true;if(prev)
prev.next=next;if(next)
next.previous=prev;if(state.first==entry)
state.first=next;if(state.last==entry)
state.last=prev;if(DESCRIPTORS)
state.size--;else
that.size--;}
return!!entry;},forEach:function forEach(callbackfn){var state=getInternalState(this);var boundFunction=bind(callbackfn,arguments.length>1?arguments[1]:undefined);var entry;while(entry=entry?entry.next:state.first){boundFunction(entry.value,entry.key,this);while(entry&&entry.removed)
entry=entry.previous;}},has:function has(key){return!!getEntry(this,key);}});defineBuiltIns(Prototype,IS_MAP?{get:function get(key){var entry=getEntry(this,key);return entry&&entry.value;},set:function set(key,value){return define(this,key===0?0:key,value);}}:{add:function add(value){return define(this,value=value===0?0:value,value);}});if(DESCRIPTORS)
defineProperty(Prototype,'size',{get:function(){return getInternalState(this).size;}});return Constructor;},setStrong:function(Constructor,CONSTRUCTOR_NAME,IS_MAP){var ITERATOR_NAME=CONSTRUCTOR_NAME+' Iterator';var getInternalCollectionState=internalStateGetterFor(CONSTRUCTOR_NAME);var getInternalIteratorState=internalStateGetterFor(ITERATOR_NAME);defineIterator(Constructor,CONSTRUCTOR_NAME,function(iterated,kind){setInternalState(this,{type:ITERATOR_NAME,target:iterated,state:getInternalCollectionState(iterated),kind:kind,last:undefined});},function(){var state=getInternalIteratorState(this);var kind=state.kind;var entry=state.last;while(entry&&entry.removed)
entry=entry.previous;if(!state.target||!(state.last=entry=entry?entry.next:state.state.first)){state.target=undefined;return{value:undefined,done:true};}
if(kind=='keys')
return{value:entry.key,done:false};if(kind=='values')
return{value:entry.value,done:false};return{value:[entry.key,entry.value],done:false};},IS_MAP?'entries':'values',!IS_MAP,true);setSpecies(CONSTRUCTOR_NAME);}};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var defineBuiltIn=__w_pdfjs_require__(49);module.exports=function(target,src,options){for(var key in src)
defineBuiltIn(target,key,src[key],options);return target;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var getBuiltIn=__w_pdfjs_require__(25);var definePropertyModule=__w_pdfjs_require__(46);var wellKnownSymbol=__w_pdfjs_require__(35);var DESCRIPTORS=__w_pdfjs_require__(9);var SPECIES=wellKnownSymbol('species');module.exports=function(CONSTRUCTOR_NAME){var Constructor=getBuiltIn(CONSTRUCTOR_NAME);var defineProperty=definePropertyModule.f;if(DESCRIPTORS&&Constructor&&!Constructor[SPECIES]){defineProperty(Constructor,SPECIES,{configurable:true,get:function(){return this;}});}};}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{__w_pdfjs_require__(118);}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var collection=__w_pdfjs_require__(97);var collectionStrong=__w_pdfjs_require__(114);collection('Set',function(init){return function Set(){return init(this,arguments.length?arguments[0]:undefined);};},collectionStrong);}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{var IS_PURE=__w_pdfjs_require__(37);var $=__w_pdfjs_require__(6);var global=__w_pdfjs_require__(7);var getBuiltin=__w_pdfjs_require__(25);var uncurryThis=__w_pdfjs_require__(17);var fails=__w_pdfjs_require__(10);var uid=__w_pdfjs_require__(42);var isCallable=__w_pdfjs_require__(23);var isConstructor=__w_pdfjs_require__(120);var isObject=__w_pdfjs_require__(22);var isSymbol=__w_pdfjs_require__(24);var iterate=__w_pdfjs_require__(105);var anObject=__w_pdfjs_require__(48);var classof=__w_pdfjs_require__(80);var hasOwn=__w_pdfjs_require__(40);var createProperty=__w_pdfjs_require__(101);var createNonEnumerableProperty=__w_pdfjs_require__(45);var lengthOfArrayLike=__w_pdfjs_require__(65);var validateArgumentsLength=__w_pdfjs_require__(121);var getRegExpFlags=__w_pdfjs_require__(122);var ERROR_STACK_INSTALLABLE=__w_pdfjs_require__(124);var V8=__w_pdfjs_require__(29);var IS_BROWSER=__w_pdfjs_require__(125);var IS_DENO=__w_pdfjs_require__(126);var IS_NODE=__w_pdfjs_require__(127);var Object=global.Object;var Date=global.Date;var Error=global.Error;var EvalError=global.EvalError;var RangeError=global.RangeError;var ReferenceError=global.ReferenceError;var SyntaxError=global.SyntaxError;var TypeError=global.TypeError;var URIError=global.URIError;var PerformanceMark=global.PerformanceMark;var WebAssembly=global.WebAssembly;var CompileError=WebAssembly&&WebAssembly.CompileError||Error;var LinkError=WebAssembly&&WebAssembly.LinkError||Error;var RuntimeError=WebAssembly&&WebAssembly.RuntimeError||Error;var DOMException=getBuiltin('DOMException');var Set=getBuiltin('Set');var Map=getBuiltin('Map');var MapPrototype=Map.prototype;var mapHas=uncurryThis(MapPrototype.has);var mapGet=uncurryThis(MapPrototype.get);var mapSet=uncurryThis(MapPrototype.set);var setAdd=uncurryThis(Set.prototype.add);var objectKeys=getBuiltin('Object','keys');var push=uncurryThis([].push);var booleanValueOf=uncurryThis(true.valueOf);var numberValueOf=uncurryThis(1.0.valueOf);var stringValueOf=uncurryThis(''.valueOf);var getTime=uncurryThis(Date.prototype.getTime);var PERFORMANCE_MARK=uid('structuredClone');var DATA_CLONE_ERROR='DataCloneError';var TRANSFERRING='Transferring';var checkBasicSemantic=function(structuredCloneImplementation){return!fails(function(){var set1=new global.Set([7]);var set2=structuredCloneImplementation(set1);var number=structuredCloneImplementation(Object(7));return set2==set1||!set2.has(7)||typeof number!='object'||number!=7;})&&structuredCloneImplementation;};var checkErrorsCloning=function(structuredCloneImplementation,$Error){return!fails(function(){var error=new $Error();var test=structuredCloneImplementation({a:error,b:error});return!(test&&test.a===test.b&&test.a instanceof $Error&&test.a.stack===error.stack);});};var checkNewErrorsCloningSemantic=function(structuredCloneImplementation){return!fails(function(){var test=structuredCloneImplementation(new global.AggregateError([1],PERFORMANCE_MARK,{cause:3}));return test.name!='AggregateError'||test.errors[0]!=1||test.message!=PERFORMANCE_MARK||test.cause!=3;});};var nativeStructuredClone=global.structuredClone;var FORCED_REPLACEMENT=IS_PURE||!checkErrorsCloning(nativeStructuredClone,Error)||!checkErrorsCloning(nativeStructuredClone,DOMException)||!checkNewErrorsCloningSemantic(nativeStructuredClone);var structuredCloneFromMark=!nativeStructuredClone&&checkBasicSemantic(function(value){return new PerformanceMark(PERFORMANCE_MARK,{detail:value}).detail;});var nativeRestrictedStructuredClone=checkBasicSemantic(nativeStructuredClone)||structuredCloneFromMark;var throwUncloneable=function(type){throw new DOMException('Uncloneable type: '+type,DATA_CLONE_ERROR);};var throwUnpolyfillable=function(type,kind){throw new DOMException((kind||'Cloning')+' of '+type+' cannot be properly polyfilled in this engine',DATA_CLONE_ERROR);};var structuredCloneInternal=function(value,map){if(isSymbol(value))
throwUncloneable('Symbol');if(!isObject(value))
return value;if(map){if(mapHas(map,value))
return mapGet(map,value);}else
map=new Map();var type=classof(value);var deep=false;var C,name,cloned,dataTransfer,i,length,keys,key,source,target;switch(type){case'Array':cloned=[];deep=true;break;case'Object':cloned={};deep=true;break;case'Map':cloned=new Map();deep=true;break;case'Set':cloned=new Set();deep=true;break;case'RegExp':cloned=new RegExp(value.source,getRegExpFlags(value));break;case'Error':name=value.name;switch(name){case'AggregateError':cloned=getBuiltin('AggregateError')([]);break;case'EvalError':cloned=EvalError();break;case'RangeError':cloned=RangeError();break;case'ReferenceError':cloned=ReferenceError();break;case'SyntaxError':cloned=SyntaxError();break;case'TypeError':cloned=TypeError();break;case'URIError':cloned=URIError();break;case'CompileError':cloned=CompileError();break;case'LinkError':cloned=LinkError();break;case'RuntimeError':cloned=RuntimeError();break;default:cloned=Error();}
deep=true;break;case'DOMException':cloned=new DOMException(value.message,value.name);deep=true;break;case'DataView':case'Int8Array':case'Uint8Array':case'Uint8ClampedArray':case'Int16Array':case'Uint16Array':case'Int32Array':case'Uint32Array':case'Float32Array':case'Float64Array':case'BigInt64Array':case'BigUint64Array':C=global[type];if(!isObject(C))
throwUnpolyfillable(type);cloned=new C(structuredCloneInternal(value.buffer,map),value.byteOffset,type==='DataView'?value.byteLength:value.length);break;case'DOMQuad':try{cloned=new DOMQuad(structuredCloneInternal(value.p1,map),structuredCloneInternal(value.p2,map),structuredCloneInternal(value.p3,map),structuredCloneInternal(value.p4,map));}catch(error){if(nativeRestrictedStructuredClone){cloned=nativeRestrictedStructuredClone(value);}else
throwUnpolyfillable(type);}
break;case'FileList':C=global.DataTransfer;if(isConstructor(C)){dataTransfer=new C();for(i=0,length=lengthOfArrayLike(value);i<length;i++){dataTransfer.items.add(structuredCloneInternal(value[i],map));}
cloned=dataTransfer.files;}else if(nativeRestrictedStructuredClone){cloned=nativeRestrictedStructuredClone(value);}else
throwUnpolyfillable(type);break;case'ImageData':try{cloned=new ImageData(structuredCloneInternal(value.data,map),value.width,value.height,{colorSpace:value.colorSpace});}catch(error){if(nativeRestrictedStructuredClone){cloned=nativeRestrictedStructuredClone(value);}else
throwUnpolyfillable(type);}
break;default:if(nativeRestrictedStructuredClone){cloned=nativeRestrictedStructuredClone(value);}else
switch(type){case'BigInt':cloned=Object(value.valueOf());break;case'Boolean':cloned=Object(booleanValueOf(value));break;case'Number':cloned=Object(numberValueOf(value));break;case'String':cloned=Object(stringValueOf(value));break;case'Date':cloned=new Date(getTime(value));break;case'ArrayBuffer':C=global.DataView;if(!C&&typeof value.slice!='function')
throwUnpolyfillable(type);try{if(typeof value.slice=='function'){cloned=value.slice(0);}else{length=value.byteLength;cloned=new ArrayBuffer(length);source=new C(value);target=new C(cloned);for(i=0;i<length;i++){target.setUint8(i,source.getUint8(i));}}}catch(error){throw new DOMException('ArrayBuffer is detached',DATA_CLONE_ERROR);}
break;case'SharedArrayBuffer':cloned=value;break;case'Blob':try{cloned=value.slice(0,value.size,value.type);}catch(error){throwUnpolyfillable(type);}
break;case'DOMPoint':case'DOMPointReadOnly':C=global[type];try{cloned=C.fromPoint?C.fromPoint(value):new C(value.x,value.y,value.z,value.w);}catch(error){throwUnpolyfillable(type);}
break;case'DOMRect':case'DOMRectReadOnly':C=global[type];try{cloned=C.fromRect?C.fromRect(value):new C(value.x,value.y,value.width,value.height);}catch(error){throwUnpolyfillable(type);}
break;case'DOMMatrix':case'DOMMatrixReadOnly':C=global[type];try{cloned=C.fromMatrix?C.fromMatrix(value):new C(value);}catch(error){throwUnpolyfillable(type);}
break;case'AudioData':case'VideoFrame':if(!isCallable(value.clone))
throwUnpolyfillable(type);try{cloned=value.clone();}catch(error){throwUncloneable(type);}
break;case'File':try{cloned=new File([value],value.name,value);}catch(error){throwUnpolyfillable(type);}
break;case'CryptoKey':case'GPUCompilationMessage':case'GPUCompilationInfo':case'ImageBitmap':case'RTCCertificate':case'WebAssembly.Module':throwUnpolyfillable(type);default:throwUncloneable(type);}}
mapSet(map,value,cloned);if(deep)
switch(type){case'Array':case'Object':keys=objectKeys(value);for(i=0,length=lengthOfArrayLike(keys);i<length;i++){key=keys[i];createProperty(cloned,key,structuredCloneInternal(value[key],map));}
break;case'Map':value.forEach(function(v,k){mapSet(cloned,structuredCloneInternal(k,map),structuredCloneInternal(v,map));});break;case'Set':value.forEach(function(v){setAdd(cloned,structuredCloneInternal(v,map));});break;case'Error':createNonEnumerableProperty(cloned,'message',structuredCloneInternal(value.message,map));if(hasOwn(value,'cause')){createNonEnumerableProperty(cloned,'cause',structuredCloneInternal(value.cause,map));}
if(name=='AggregateError'){cloned.errors=structuredCloneInternal(value.errors,map);}
case'DOMException':if(ERROR_STACK_INSTALLABLE){createNonEnumerableProperty(cloned,'stack',structuredCloneInternal(value.stack,map));}}
return cloned;};var PROPER_TRANSFER=nativeStructuredClone&&!fails(function(){if(IS_DENO&&V8>92||IS_NODE&&V8>94||IS_BROWSER&&V8>97)
return false;var buffer=new ArrayBuffer(8);var clone=nativeStructuredClone(buffer,{transfer:[buffer]});return buffer.byteLength!=0||clone.byteLength!=8;});var tryToTransfer=function(rawTransfer,map){if(!isObject(rawTransfer))
throw TypeError('Transfer option cannot be converted to a sequence');var transfer=[];iterate(rawTransfer,function(value){push(transfer,anObject(value));});var i=0;var length=lengthOfArrayLike(transfer);var value,type,C,transferredArray,transferred,canvas,context;if(PROPER_TRANSFER){transferredArray=nativeStructuredClone(transfer,{transfer:transfer});while(i<length)
mapSet(map,transfer[i],transferredArray[i++]);}else
while(i<length){value=transfer[i++];if(mapHas(map,value))
throw new DOMException('Duplicate transferable',DATA_CLONE_ERROR);type=classof(value);switch(type){case'ImageBitmap':C=global.OffscreenCanvas;if(!isConstructor(C))
throwUnpolyfillable(type,TRANSFERRING);try{canvas=new C(value.width,value.height);context=canvas.getContext('bitmaprenderer');context.transferFromImageBitmap(value);transferred=canvas.transferToImageBitmap();}catch(error){}
break;case'AudioData':case'VideoFrame':if(!isCallable(value.clone)||!isCallable(value.close))
throwUnpolyfillable(type,TRANSFERRING);try{transferred=value.clone();value.close();}catch(error){}
break;case'ArrayBuffer':case'MessagePort':case'OffscreenCanvas':case'ReadableStream':case'TransformStream':case'WritableStream':throwUnpolyfillable(type,TRANSFERRING);}
if(transferred===undefined)
throw new DOMException('This object cannot be transferred: '+type,DATA_CLONE_ERROR);mapSet(map,value,transferred);}};$({global:true,enumerable:true,sham:!PROPER_TRANSFER,forced:FORCED_REPLACEMENT},{structuredClone:function structuredClone(value){var options=validateArgumentsLength(arguments.length,1)>1&&arguments[1]!=null?anObject(arguments[1]):undefined;var transfer=options?options.transfer:undefined;var map;if(transfer!==undefined){map=new Map();tryToTransfer(transfer,map);}
return structuredCloneInternal(value,map);}});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(17);var fails=__w_pdfjs_require__(10);var isCallable=__w_pdfjs_require__(23);var classof=__w_pdfjs_require__(80);var getBuiltIn=__w_pdfjs_require__(25);var inspectSource=__w_pdfjs_require__(52);var noop=function(){};var empty=[];var construct=getBuiltIn('Reflect','construct');var constructorRegExp=/^\s*(?:class|function)\b/;var exec=uncurryThis(constructorRegExp.exec);var INCORRECT_TO_STRING=!constructorRegExp.exec(noop);var isConstructorModern=function isConstructor(argument){if(!isCallable(argument))
return false;try{construct(noop,empty,argument);return true;}catch(error){return false;}};var isConstructorLegacy=function isConstructor(argument){if(!isCallable(argument))
return false;switch(classof(argument)){case'AsyncFunction':case'GeneratorFunction':case'AsyncGeneratorFunction':return false;}
try{return INCORRECT_TO_STRING||!!exec(constructorRegExp,inspectSource(argument));}catch(error){return true;}};isConstructorLegacy.sham=true;module.exports=!construct||fails(function(){var called;return isConstructorModern(isConstructorModern.call)||!isConstructorModern(Object)||!isConstructorModern(function(){called=true;})||called;})?isConstructorLegacy:isConstructorModern;}),((module)=>{var $TypeError=TypeError;module.exports=function(passed,required){if(passed<required)
throw $TypeError('Not enough arguments');return passed;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var call=__w_pdfjs_require__(11);var hasOwn=__w_pdfjs_require__(40);var isPrototypeOf=__w_pdfjs_require__(26);var regExpFlags=__w_pdfjs_require__(123);var RegExpPrototype=RegExp.prototype;module.exports=function(R){var flags=R.flags;return flags===undefined&&!('flags'in RegExpPrototype)&&!hasOwn(R,'flags')&&isPrototypeOf(RegExpPrototype,R)?call(regExpFlags,R):flags;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var anObject=__w_pdfjs_require__(48);module.exports=function(){var that=anObject(this);var result='';if(that.hasIndices)
result+='d';if(that.global)
result+='g';if(that.ignoreCase)
result+='i';if(that.multiline)
result+='m';if(that.dotAll)
result+='s';if(that.unicode)
result+='u';if(that.unicodeSets)
result+='v';if(that.sticky)
result+='y';return result;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(10);var createPropertyDescriptor=__w_pdfjs_require__(14);module.exports=!fails(function(){var error=Error('a');if(!('stack'in error))
return true;Object.defineProperty(error,'stack',createPropertyDescriptor(1,7));return error.stack!==7;});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var IS_DENO=__w_pdfjs_require__(126);var IS_NODE=__w_pdfjs_require__(127);module.exports=!IS_DENO&&!IS_NODE&&typeof window=='object'&&typeof document=='object';}),((module)=>{module.exports=typeof Deno=='object'&&Deno&&typeof Deno.version=='object';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var classof=__w_pdfjs_require__(18);var global=__w_pdfjs_require__(7);module.exports=classof(global.process)=='process';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(7);module.exports=global;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.build=exports.RenderTask=exports.PDFWorkerUtil=exports.PDFWorker=exports.PDFPageProxy=exports.PDFDocumentProxy=exports.PDFDocumentLoadingTask=exports.PDFDataRangeTransport=exports.LoopbackPort=exports.DefaultStandardFontDataFactory=exports.DefaultCanvasFactory=exports.DefaultCMapReaderFactory=void 0;exports.getDocument=getDocument;exports.setPDFNetworkStreamFactory=setPDFNetworkStreamFactory;exports.version=void 0;var _util=__w_pdfjs_require__(1);var _annotation_storage=__w_pdfjs_require__(130);var _display_utils=__w_pdfjs_require__(133);var _font_loader=__w_pdfjs_require__(136);var _canvas=__w_pdfjs_require__(137);var _worker_options=__w_pdfjs_require__(140);var _is_node=__w_pdfjs_require__(3);var _message_handler=__w_pdfjs_require__(141);var _metadata=__w_pdfjs_require__(142);var _optional_content_config=__w_pdfjs_require__(143);var _transport_stream=__w_pdfjs_require__(144);var _xfa_text=__w_pdfjs_require__(145);function _classPrivateMethodInitSpec(obj,privateSet){_checkPrivateRedeclaration(obj,privateSet);privateSet.add(obj);}
function _classPrivateMethodGet(receiver,privateSet,fn){if(!privateSet.has(receiver)){throw new TypeError("attempted to get private field on non-instance");}return fn;}
function _classPrivateFieldInitSpec(obj,privateMap,value){_checkPrivateRedeclaration(obj,privateMap);privateMap.set(obj,value);}
function _checkPrivateRedeclaration(obj,privateCollection){if(privateCollection.has(obj)){throw new TypeError("Cannot initialize the same private elements twice on an object");}}
function _classPrivateFieldSet(receiver,privateMap,value){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"set");_classApplyDescriptorSet(receiver,descriptor,value);return value;}
function _classPrivateFieldGet(receiver,privateMap){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"get");return _classApplyDescriptorGet(receiver,descriptor);}
function _classExtractFieldDescriptor(receiver,privateMap,action){if(!privateMap.has(receiver)){throw new TypeError("attempted to "+action+" private field on non-instance");}return privateMap.get(receiver);}
function _classStaticPrivateFieldSpecSet(receiver,classConstructor,descriptor,value){_classCheckPrivateStaticAccess(receiver,classConstructor);_classCheckPrivateStaticFieldDescriptor(descriptor,"set");_classApplyDescriptorSet(receiver,descriptor,value);return value;}
function _classApplyDescriptorSet(receiver,descriptor,value){if(descriptor.set){descriptor.set.call(receiver,value);}else{if(!descriptor.writable){throw new TypeError("attempted to set read only private field");}descriptor.value=value;}}
function _classStaticPrivateFieldSpecGet(receiver,classConstructor,descriptor){_classCheckPrivateStaticAccess(receiver,classConstructor);_classCheckPrivateStaticFieldDescriptor(descriptor,"get");return _classApplyDescriptorGet(receiver,descriptor);}
function _classCheckPrivateStaticFieldDescriptor(descriptor,action){if(descriptor===undefined){throw new TypeError("attempted to "+action+" private static field before its declaration");}}
function _classCheckPrivateStaticAccess(receiver,classConstructor){if(receiver!==classConstructor){throw new TypeError("Private static access of wrong provenance");}}
function _classApplyDescriptorGet(receiver,descriptor){if(descriptor.get){return descriptor.get.call(receiver);}return descriptor.value;}
const DEFAULT_RANGE_CHUNK_SIZE=65536;const RENDERING_CANCELLED_TIMEOUT=100;let DefaultCanvasFactory=_display_utils.DOMCanvasFactory;exports.DefaultCanvasFactory=DefaultCanvasFactory;let DefaultCMapReaderFactory=_display_utils.DOMCMapReaderFactory;exports.DefaultCMapReaderFactory=DefaultCMapReaderFactory;let DefaultStandardFontDataFactory=_display_utils.DOMStandardFontDataFactory;exports.DefaultStandardFontDataFactory=DefaultStandardFontDataFactory;if(_is_node.isNodeJS){const{NodeCanvasFactory,NodeCMapReaderFactory,NodeStandardFontDataFactory}=__w_pdfjs_require__(146);exports.DefaultCanvasFactory=DefaultCanvasFactory=NodeCanvasFactory;exports.DefaultCMapReaderFactory=DefaultCMapReaderFactory=NodeCMapReaderFactory;exports.DefaultStandardFontDataFactory=DefaultStandardFontDataFactory=NodeStandardFontDataFactory;}
let createPDFNetworkStream;function setPDFNetworkStreamFactory(pdfNetworkStreamFactory){createPDFNetworkStream=pdfNetworkStreamFactory;}
function getDocument(src){const task=new PDFDocumentLoadingTask();let source;if(typeof src==="string"||src instanceof URL){source={url:src};}else if((0,_util.isArrayBuffer)(src)){source={data:src};}else if(src instanceof PDFDataRangeTransport){source={range:src};}else{if(typeof src!=="object"){throw new Error("Invalid parameter in getDocument, "+"need either string, URL, TypedArray, or parameter object.");}
if(!src.url&&!src.data&&!src.range){throw new Error("Invalid parameter object: need either .data, .range or .url");}
source=src;}
const params=Object.create(null);let rangeTransport=null,worker=null;for(const key in source){const value=source[key];switch(key){case"url":if(typeof window!=="undefined"){try{params[key]=new URL(value,window.location).href;continue;}catch(ex){(0,_util.warn)(`Cannot create valid URL: "${ex}".`);}}else if(typeof value==="string"||value instanceof URL){params[key]=value.toString();continue;}
throw new Error("Invalid PDF url data: "+"either string or URL-object is expected in the url property.");case"range":rangeTransport=value;continue;case"worker":worker=value;continue;case"data":if(_is_node.isNodeJS&&typeof Buffer!=="undefined"&&value instanceof Buffer){params[key]=new Uint8Array(value);}else if(value instanceof Uint8Array){break;}else if(typeof value==="string"){params[key]=(0,_util.stringToBytes)(value);}else if(typeof value==="object"&&value!==null&&!isNaN(value.length)){params[key]=new Uint8Array(value);}else if((0,_util.isArrayBuffer)(value)){params[key]=new Uint8Array(value);}else{throw new Error("Invalid PDF binary data: either TypedArray, "+"string, or array-like object is expected in the data property.");}
continue;}
params[key]=value;}
params.CMapReaderFactory=params.CMapReaderFactory||DefaultCMapReaderFactory;params.StandardFontDataFactory=params.StandardFontDataFactory||DefaultStandardFontDataFactory;params.ignoreErrors=params.stopAtErrors!==true;params.fontExtraProperties=params.fontExtraProperties===true;params.pdfBug=params.pdfBug===true;params.enableXfa=params.enableXfa===true;if(!Number.isInteger(params.rangeChunkSize)||params.rangeChunkSize<1){params.rangeChunkSize=DEFAULT_RANGE_CHUNK_SIZE;}
if(typeof params.docBaseUrl!=="string"||(0,_display_utils.isDataScheme)(params.docBaseUrl)){params.docBaseUrl=null;}
if(!Number.isInteger(params.maxImageSize)||params.maxImageSize<-1){params.maxImageSize=-1;}
if(typeof params.cMapUrl!=="string"){params.cMapUrl=null;}
if(typeof params.standardFontDataUrl!=="string"){params.standardFontDataUrl=null;}
if(typeof params.useWorkerFetch!=="boolean"){params.useWorkerFetch=params.CMapReaderFactory===_display_utils.DOMCMapReaderFactory&&params.StandardFontDataFactory===_display_utils.DOMStandardFontDataFactory;}
if(typeof params.isEvalSupported!=="boolean"){params.isEvalSupported=true;}
if(typeof params.disableFontFace!=="boolean"){params.disableFontFace=_is_node.isNodeJS;}
if(typeof params.useSystemFonts!=="boolean"){params.useSystemFonts=!_is_node.isNodeJS&&!params.disableFontFace;}
if(typeof params.ownerDocument!=="object"||params.ownerDocument===null){params.ownerDocument=globalThis.document;}
if(typeof params.disableRange!=="boolean"){params.disableRange=false;}
if(typeof params.disableStream!=="boolean"){params.disableStream=false;}
if(typeof params.disableAutoFetch!=="boolean"){params.disableAutoFetch=false;}
(0,_util.setVerbosityLevel)(params.verbosity);if(!worker){const workerParams={verbosity:params.verbosity,port:_worker_options.GlobalWorkerOptions.workerPort};worker=workerParams.port?PDFWorker.fromPort(workerParams):new PDFWorker(workerParams);task._worker=worker;}
const docId=task.docId;worker.promise.then(function(){if(task.destroyed){throw new Error("Loading aborted");}
const workerIdPromise=_fetchDocument(worker,params,rangeTransport,docId);const networkStreamPromise=new Promise(function(resolve){let networkStream;if(rangeTransport){networkStream=new _transport_stream.PDFDataTransportStream({length:params.length,initialData:params.initialData,progressiveDone:params.progressiveDone,contentDispositionFilename:params.contentDispositionFilename,disableRange:params.disableRange,disableStream:params.disableStream},rangeTransport);}else if(!params.data){networkStream=createPDFNetworkStream({url:params.url,length:params.length,httpHeaders:params.httpHeaders,withCredentials:params.withCredentials,rangeChunkSize:params.rangeChunkSize,disableRange:params.disableRange,disableStream:params.disableStream});}
resolve(networkStream);});return Promise.all([workerIdPromise,networkStreamPromise]).then(function(_ref){let[workerId,networkStream]=_ref;if(task.destroyed){throw new Error("Loading aborted");}
const messageHandler=new _message_handler.MessageHandler(docId,workerId,worker.port);const transport=new WorkerTransport(messageHandler,task,networkStream,params);task._transport=transport;messageHandler.send("Ready",null);});}).catch(task._capability.reject);return task;}
async function _fetchDocument(worker,source,pdfDataRangeTransport,docId){if(worker.destroyed){throw new Error("Worker was destroyed");}
if(pdfDataRangeTransport){source.length=pdfDataRangeTransport.length;source.initialData=pdfDataRangeTransport.initialData;source.progressiveDone=pdfDataRangeTransport.progressiveDone;source.contentDispositionFilename=pdfDataRangeTransport.contentDispositionFilename;}
const workerId=await worker.messageHandler.sendWithPromise("GetDocRequest",{docId,apiVersion:'2.16.105',source:{data:source.data,url:source.url,password:source.password,disableAutoFetch:source.disableAutoFetch,rangeChunkSize:source.rangeChunkSize,length:source.length},maxImageSize:source.maxImageSize,disableFontFace:source.disableFontFace,docBaseUrl:source.docBaseUrl,ignoreErrors:source.ignoreErrors,isEvalSupported:source.isEvalSupported,fontExtraProperties:source.fontExtraProperties,enableXfa:source.enableXfa,useSystemFonts:source.useSystemFonts,cMapUrl:source.useWorkerFetch?source.cMapUrl:null,standardFontDataUrl:source.useWorkerFetch?source.standardFontDataUrl:null});if(source.data){source.data=null;}
if(worker.destroyed){throw new Error("Worker was destroyed");}
return workerId;}
class PDFDocumentLoadingTask{constructor(){var _PDFDocumentLoadingTa,_PDFDocumentLoadingTa2;this._capability=(0,_util.createPromiseCapability)();this._transport=null;this._worker=null;this.docId=`d${(_classStaticPrivateFieldSpecSet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId, (_PDFDocumentLoadingTa = _classStaticPrivateFieldSpecGet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId), _PDFDocumentLoadingTa2 = _PDFDocumentLoadingTa++, _PDFDocumentLoadingTa)), _PDFDocumentLoadingTa2)}`;this.destroyed=false;this.onPassword=null;this.onProgress=null;this.onUnsupportedFeature=null;}
get promise(){return this._capability.promise;}
async destroy(){var _this$_transport;this.destroyed=true;await((_this$_transport=this._transport)===null||_this$_transport===void 0?void 0:_this$_transport.destroy());this._transport=null;if(this._worker){this._worker.destroy();this._worker=null;}}}
exports.PDFDocumentLoadingTask=PDFDocumentLoadingTask;var _docId={writable:true,value:0};class PDFDataRangeTransport{constructor(length,initialData){let progressiveDone=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;let contentDispositionFilename=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;this.length=length;this.initialData=initialData;this.progressiveDone=progressiveDone;this.contentDispositionFilename=contentDispositionFilename;this._rangeListeners=[];this._progressListeners=[];this._progressiveReadListeners=[];this._progressiveDoneListeners=[];this._readyCapability=(0,_util.createPromiseCapability)();}
addRangeListener(listener){this._rangeListeners.push(listener);}
addProgressListener(listener){this._progressListeners.push(listener);}
addProgressiveReadListener(listener){this._progressiveReadListeners.push(listener);}
addProgressiveDoneListener(listener){this._progressiveDoneListeners.push(listener);}
onDataRange(begin,chunk){for(const listener of this._rangeListeners){listener(begin,chunk);}}
onDataProgress(loaded,total){this._readyCapability.promise.then(()=>{for(const listener of this._progressListeners){listener(loaded,total);}});}
onDataProgressiveRead(chunk){this._readyCapability.promise.then(()=>{for(const listener of this._progressiveReadListeners){listener(chunk);}});}
onDataProgressiveDone(){this._readyCapability.promise.then(()=>{for(const listener of this._progressiveDoneListeners){listener();}});}
transportReady(){this._readyCapability.resolve();}
requestDataRange(begin,end){(0,_util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange");}
abort(){}}
exports.PDFDataRangeTransport=PDFDataRangeTransport;class PDFDocumentProxy{constructor(pdfInfo,transport){this._pdfInfo=pdfInfo;this._transport=transport;Object.defineProperty(this,"fingerprint",{get(){(0,_display_utils.deprecated)("`PDFDocumentProxy.fingerprint`, "+"please use `PDFDocumentProxy.fingerprints` instead.");return this.fingerprints[0];}});Object.defineProperty(this,"getStats",{value:async()=>{(0,_display_utils.deprecated)("`PDFDocumentProxy.getStats`, "+"please use the `PDFDocumentProxy.stats`-getter instead.");return this.stats||{streamTypes:{},fontTypes:{}};}});}
get annotationStorage(){return this._transport.annotationStorage;}
get numPages(){return this._pdfInfo.numPages;}
get fingerprints(){return this._pdfInfo.fingerprints;}
get stats(){return this._transport.stats;}
get isPureXfa(){return!!this._transport._htmlForXfa;}
get allXfaHtml(){return this._transport._htmlForXfa;}
getPage(pageNumber){return this._transport.getPage(pageNumber);}
getPageIndex(ref){return this._transport.getPageIndex(ref);}
getDestinations(){return this._transport.getDestinations();}
getDestination(id){return this._transport.getDestination(id);}
getPageLabels(){return this._transport.getPageLabels();}
getPageLayout(){return this._transport.getPageLayout();}
getPageMode(){return this._transport.getPageMode();}
getViewerPreferences(){return this._transport.getViewerPreferences();}
getOpenAction(){return this._transport.getOpenAction();}
getAttachments(){return this._transport.getAttachments();}
getJavaScript(){return this._transport.getJavaScript();}
getJSActions(){return this._transport.getDocJSActions();}
getOutline(){return this._transport.getOutline();}
getOptionalContentConfig(){return this._transport.getOptionalContentConfig();}
getPermissions(){return this._transport.getPermissions();}
getMetadata(){return this._transport.getMetadata();}
getMarkInfo(){return this._transport.getMarkInfo();}
getData(){return this._transport.getData();}
getDownloadInfo(){return this._transport.downloadInfoCapability.promise;}
cleanup(){let keepLoadedFonts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return this._transport.startCleanup(keepLoadedFonts||this.isPureXfa);}
destroy(){return this.loadingTask.destroy();}
get loadingParams(){return this._transport.loadingParams;}
get loadingTask(){return this._transport.loadingTask;}
saveDocument(){if(this._transport.annotationStorage.size<=0){(0,_display_utils.deprecated)("saveDocument called while `annotationStorage` is empty, "+"please use the getData-method instead.");}
return this._transport.saveDocument();}
getFieldObjects(){return this._transport.getFieldObjects();}
hasJSActions(){return this._transport.hasJSActions();}
getCalculationOrderIds(){return this._transport.getCalculationOrderIds();}}
exports.PDFDocumentProxy=PDFDocumentProxy;class PDFPageProxy{constructor(pageIndex,pageInfo,transport,ownerDocument){let pdfBug=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;this._pageIndex=pageIndex;this._pageInfo=pageInfo;this._ownerDocument=ownerDocument;this._transport=transport;this._stats=pdfBug?new _display_utils.StatTimer():null;this._pdfBug=pdfBug;this.commonObjs=transport.commonObjs;this.objs=new PDFObjects();this._bitmaps=new Set();this.cleanupAfterRender=false;this.pendingCleanup=false;this._intentStates=new Map();this._annotationPromises=new Map();this.destroyed=false;}
get pageNumber(){return this._pageIndex+1;}
get rotate(){return this._pageInfo.rotate;}
get ref(){return this._pageInfo.ref;}
get userUnit(){return this._pageInfo.userUnit;}
get view(){return this._pageInfo.view;}
getViewport(){let{scale,rotation=this.rotate,offsetX=0,offsetY=0,dontFlip=false}=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return new _display_utils.PageViewport({viewBox:this.view,scale,rotation,offsetX,offsetY,dontFlip});}
getAnnotations(){let{intent="display"}=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};const intentArgs=this._transport.getRenderingIntent(intent);let promise=this._annotationPromises.get(intentArgs.cacheKey);if(!promise){promise=this._transport.getAnnotations(this._pageIndex,intentArgs.renderingIntent);this._annotationPromises.set(intentArgs.cacheKey,promise);promise=promise.then(annotations=>{for(const annotation of annotations){if(annotation.titleObj!==undefined){Object.defineProperty(annotation,"title",{get(){(0,_display_utils.deprecated)("`title`-property on annotation, please use `titleObj` instead.");return annotation.titleObj.str;}});}
if(annotation.contentsObj!==undefined){Object.defineProperty(annotation,"contents",{get(){(0,_display_utils.deprecated)("`contents`-property on annotation, please use `contentsObj` instead.");return annotation.contentsObj.str;}});}}
return annotations;});}
return promise;}
getJSActions(){return this._jsActionsPromise||(this._jsActionsPromise=this._transport.getPageJSActions(this._pageIndex));}
async getXfa(){var _this$_transport$_htm;return((_this$_transport$_htm=this._transport._htmlForXfa)===null||_this$_transport$_htm===void 0?void 0:_this$_transport$_htm.children[this._pageIndex])||null;}
render(_ref2){var _arguments$,_arguments$2,_intentState;let{canvasContext,viewport,intent="display",annotationMode=_util.AnnotationMode.ENABLE,transform=null,imageLayer=null,canvasFactory=null,background=null,optionalContentConfigPromise=null,annotationCanvasMap=null,pageColors=null,printAnnotationStorage=null}=_ref2;if(((_arguments$=arguments[0])===null||_arguments$===void 0?void 0:_arguments$.renderInteractiveForms)!==undefined){(0,_display_utils.deprecated)("render no longer accepts the `renderInteractiveForms`-option, "+"please use the `annotationMode`-option instead.");if(arguments[0].renderInteractiveForms===true&&annotationMode===_util.AnnotationMode.ENABLE){annotationMode=_util.AnnotationMode.ENABLE_FORMS;}}
if(((_arguments$2=arguments[0])===null||_arguments$2===void 0?void 0:_arguments$2.includeAnnotationStorage)!==undefined){(0,_display_utils.deprecated)("render no longer accepts the `includeAnnotationStorage`-option, "+"please use the `annotationMode`-option instead.");if(arguments[0].includeAnnotationStorage===true&&annotationMode===_util.AnnotationMode.ENABLE){annotationMode=_util.AnnotationMode.ENABLE_STORAGE;}}
if(this._stats){this._stats.time("Overall");}
const intentArgs=this._transport.getRenderingIntent(intent,annotationMode,printAnnotationStorage);this.pendingCleanup=false;if(!optionalContentConfigPromise){optionalContentConfigPromise=this._transport.getOptionalContentConfig();}
let intentState=this._intentStates.get(intentArgs.cacheKey);if(!intentState){intentState=Object.create(null);this._intentStates.set(intentArgs.cacheKey,intentState);}
if(intentState.streamReaderCancelTimeout){clearTimeout(intentState.streamReaderCancelTimeout);intentState.streamReaderCancelTimeout=null;}
const canvasFactoryInstance=canvasFactory||new DefaultCanvasFactory({ownerDocument:this._ownerDocument});const intentPrint=!!(intentArgs.renderingIntent&_util.RenderingIntentFlag.PRINT);if(!intentState.displayReadyCapability){intentState.displayReadyCapability=(0,_util.createPromiseCapability)();intentState.operatorList={fnArray:[],argsArray:[],lastChunk:false,separateAnnots:null};if(this._stats){this._stats.time("Page Request");}
this._pumpOperatorList(intentArgs);}
const complete=error=>{intentState.renderTasks.delete(internalRenderTask);if(this.cleanupAfterRender||intentPrint){this.pendingCleanup=true;}
this._tryCleanup();if(error){internalRenderTask.capability.reject(error);this._abortOperatorList({intentState,reason:error instanceof Error?error:new Error(error)});}else{internalRenderTask.capability.resolve();}
if(this._stats){this._stats.timeEnd("Rendering");this._stats.timeEnd("Overall");}};const internalRenderTask=new InternalRenderTask({callback:complete,params:{canvasContext,viewport,transform,imageLayer,background},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap,operatorList:intentState.operatorList,pageIndex:this._pageIndex,canvasFactory:canvasFactoryInstance,useRequestAnimationFrame:!intentPrint,pdfBug:this._pdfBug,pageColors});((_intentState=intentState).renderTasks||(_intentState.renderTasks=new Set())).add(internalRenderTask);const renderTask=internalRenderTask.task;Promise.all([intentState.displayReadyCapability.promise,optionalContentConfigPromise]).then(_ref3=>{let[transparency,optionalContentConfig]=_ref3;if(this.pendingCleanup){complete();return;}
if(this._stats){this._stats.time("Rendering");}
internalRenderTask.initializeGraphics({transparency,optionalContentConfig});internalRenderTask.operatorListChanged();}).catch(complete);return renderTask;}
getOperatorList(){let{intent="display",annotationMode=_util.AnnotationMode.ENABLE,printAnnotationStorage=null}=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};function operatorListChanged(){if(intentState.operatorList.lastChunk){intentState.opListReadCapability.resolve(intentState.operatorList);intentState.renderTasks.delete(opListTask);}}
const intentArgs=this._transport.getRenderingIntent(intent,annotationMode,printAnnotationStorage,true);let intentState=this._intentStates.get(intentArgs.cacheKey);if(!intentState){intentState=Object.create(null);this._intentStates.set(intentArgs.cacheKey,intentState);}
let opListTask;if(!intentState.opListReadCapability){var _intentState2;opListTask=Object.create(null);opListTask.operatorListChanged=operatorListChanged;intentState.opListReadCapability=(0,_util.createPromiseCapability)();((_intentState2=intentState).renderTasks||(_intentState2.renderTasks=new Set())).add(opListTask);intentState.operatorList={fnArray:[],argsArray:[],lastChunk:false,separateAnnots:null};if(this._stats){this._stats.time("Page Request");}
this._pumpOperatorList(intentArgs);}
return intentState.opListReadCapability.promise;}
streamTextContent(){let{disableCombineTextItems=false,includeMarkedContent=false}=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};const TEXT_CONTENT_CHUNK_SIZE=100;return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,combineTextItems:disableCombineTextItems!==true,includeMarkedContent:includeMarkedContent===true},{highWaterMark:TEXT_CONTENT_CHUNK_SIZE,size(textContent){return textContent.items.length;}});}
getTextContent(){let params=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(this._transport._htmlForXfa){return this.getXfa().then(xfa=>{return _xfa_text.XfaText.textContent(xfa);});}
const readableStream=this.streamTextContent(params);return new Promise(function(resolve,reject){function pump(){reader.read().then(function(_ref4){let{value,done}=_ref4;if(done){resolve(textContent);return;}
Object.assign(textContent.styles,value.styles);textContent.items.push(...value.items);pump();},reject);}
const reader=readableStream.getReader();const textContent={items:[],styles:Object.create(null)};pump();});}
getStructTree(){return this._structTreePromise||(this._structTreePromise=this._transport.getStructTree(this._pageIndex));}
_destroy(){this.destroyed=true;const waitOn=[];for(const intentState of this._intentStates.values()){this._abortOperatorList({intentState,reason:new Error("Page was destroyed."),force:true});if(intentState.opListReadCapability){continue;}
for(const internalRenderTask of intentState.renderTasks){waitOn.push(internalRenderTask.completed);internalRenderTask.cancel();}}
this.objs.clear();for(const bitmap of this._bitmaps){bitmap.close();}
this._bitmaps.clear();this._annotationPromises.clear();this._jsActionsPromise=null;this._structTreePromise=null;this.pendingCleanup=false;return Promise.all(waitOn);}
cleanup(){let resetStats=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;this.pendingCleanup=true;return this._tryCleanup(resetStats);}
_tryCleanup(){let resetStats=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(!this.pendingCleanup){return false;}
for(const{renderTasks,operatorList}of this._intentStates.values()){if(renderTasks.size>0||!operatorList.lastChunk){return false;}}
this._intentStates.clear();this.objs.clear();this._annotationPromises.clear();this._jsActionsPromise=null;this._structTreePromise=null;if(resetStats&&this._stats){this._stats=new _display_utils.StatTimer();}
for(const bitmap of this._bitmaps){bitmap.close();}
this._bitmaps.clear();this.pendingCleanup=false;return true;}
_startRenderPage(transparency,cacheKey){const intentState=this._intentStates.get(cacheKey);if(!intentState){return;}
if(this._stats){this._stats.timeEnd("Page Request");}
if(intentState.displayReadyCapability){intentState.displayReadyCapability.resolve(transparency);}}
_renderPageChunk(operatorListChunk,intentState){for(let i=0,ii=operatorListChunk.length;i<ii;i++){intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);}
intentState.operatorList.lastChunk=operatorListChunk.lastChunk;intentState.operatorList.separateAnnots=operatorListChunk.separateAnnots;for(const internalRenderTask of intentState.renderTasks){internalRenderTask.operatorListChanged();}
if(operatorListChunk.lastChunk){this._tryCleanup();}}
_pumpOperatorList(_ref5){let{renderingIntent,cacheKey,annotationStorageMap}=_ref5;const readableStream=this._transport.messageHandler.sendWithStream("GetOperatorList",{pageIndex:this._pageIndex,intent:renderingIntent,cacheKey,annotationStorage:annotationStorageMap});const reader=readableStream.getReader();const intentState=this._intentStates.get(cacheKey);intentState.streamReader=reader;const pump=()=>{reader.read().then(_ref6=>{let{value,done}=_ref6;if(done){intentState.streamReader=null;return;}
if(this._transport.destroyed){return;}
this._renderPageChunk(value,intentState);pump();},reason=>{intentState.streamReader=null;if(this._transport.destroyed){return;}
if(intentState.operatorList){intentState.operatorList.lastChunk=true;for(const internalRenderTask of intentState.renderTasks){internalRenderTask.operatorListChanged();}
this._tryCleanup();}
if(intentState.displayReadyCapability){intentState.displayReadyCapability.reject(reason);}else if(intentState.opListReadCapability){intentState.opListReadCapability.reject(reason);}else{throw reason;}});};pump();}
_abortOperatorList(_ref7){let{intentState,reason,force=false}=_ref7;if(!intentState.streamReader){return;}
if(!force){if(intentState.renderTasks.size>0){return;}
if(reason instanceof _display_utils.RenderingCancelledException){intentState.streamReaderCancelTimeout=setTimeout(()=>{this._abortOperatorList({intentState,reason,force:true});intentState.streamReaderCancelTimeout=null;},RENDERING_CANCELLED_TIMEOUT);return;}}
intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(()=>{});intentState.streamReader=null;if(this._transport.destroyed){return;}
for(const[curCacheKey,curIntentState]of this._intentStates){if(curIntentState===intentState){this._intentStates.delete(curCacheKey);break;}}
this.cleanup();}
get stats(){return this._stats;}}
exports.PDFPageProxy=PDFPageProxy;class LoopbackPort{constructor(){this._listeners=[];this._deferred=Promise.resolve();}
postMessage(obj,transfers){const event={data:structuredClone(obj,transfers)};this._deferred.then(()=>{for(const listener of this._listeners){listener.call(this,event);}});}
addEventListener(name,listener){this._listeners.push(listener);}
removeEventListener(name,listener){const i=this._listeners.indexOf(listener);this._listeners.splice(i,1);}
terminate(){this._listeners.length=0;}}
exports.LoopbackPort=LoopbackPort;const PDFWorkerUtil={isWorkerDisabled:false,fallbackWorkerSrc:null,fakeWorkerId:0};exports.PDFWorkerUtil=PDFWorkerUtil;{if(_is_node.isNodeJS&&typeof require==="function"){PDFWorkerUtil.isWorkerDisabled=true;PDFWorkerUtil.fallbackWorkerSrc="./pdf.worker.js";}else if(typeof document==="object"){var _document,_document$currentScri;const pdfjsFilePath=(_document=document)===null||_document===void 0?void 0:(_document$currentScri=_document.currentScript)===null||_document$currentScri===void 0?void 0:_document$currentScri.src;if(pdfjsFilePath){PDFWorkerUtil.fallbackWorkerSrc=pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i,".worker$1$2");}}
PDFWorkerUtil.isSameOrigin=function(baseUrl,otherUrl){let base;try{base=new URL(baseUrl);if(!base.origin||base.origin==="null"){return false;}}catch(e){return false;}
const other=new URL(otherUrl,base);return base.origin===other.origin;};PDFWorkerUtil.createCDNWrapper=function(url){const wrapper=`importScripts("${url}");`;return URL.createObjectURL(new Blob([wrapper]));};}
class PDFWorker{constructor(){let{name=null,port=null,verbosity=(0,_util.getVerbosityLevel)()}=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(port&&_classStaticPrivateFieldSpecGet(PDFWorker,PDFWorker,_workerPorts).has(port)){throw new Error("Cannot use more than one PDFWorker per port.");}
this.name=name;this.destroyed=false;this.verbosity=verbosity;this._readyCapability=(0,_util.createPromiseCapability)();this._port=null;this._webWorker=null;this._messageHandler=null;if(port){_classStaticPrivateFieldSpecGet(PDFWorker,PDFWorker,_workerPorts).set(port,this);this._initializeFromPort(port);return;}
this._initialize();}
get promise(){return this._readyCapability.promise;}
get port(){return this._port;}
get messageHandler(){return this._messageHandler;}
_initializeFromPort(port){this._port=port;this._messageHandler=new _message_handler.MessageHandler("main","worker",port);this._messageHandler.on("ready",function(){});this._readyCapability.resolve();}
_initialize(){if(!PDFWorkerUtil.isWorkerDisabled&&!PDFWorker._mainThreadWorkerMessageHandler){let{workerSrc}=PDFWorker;try{if(!PDFWorkerUtil.isSameOrigin(window.location.href,workerSrc)){workerSrc=PDFWorkerUtil.createCDNWrapper(new URL(workerSrc,window.location).href);}
const worker=new Worker(workerSrc);const messageHandler=new _message_handler.MessageHandler("main","worker",worker);const terminateEarly=()=>{worker.removeEventListener("error",onWorkerError);messageHandler.destroy();worker.terminate();if(this.destroyed){this._readyCapability.reject(new Error("Worker was destroyed"));}else{this._setupFakeWorker();}};const onWorkerError=()=>{if(!this._webWorker){terminateEarly();}};worker.addEventListener("error",onWorkerError);messageHandler.on("test",data=>{worker.removeEventListener("error",onWorkerError);if(this.destroyed){terminateEarly();return;}
if(data){this._messageHandler=messageHandler;this._port=worker;this._webWorker=worker;this._readyCapability.resolve();messageHandler.send("configure",{verbosity:this.verbosity});}else{this._setupFakeWorker();messageHandler.destroy();worker.terminate();}});messageHandler.on("ready",data=>{worker.removeEventListener("error",onWorkerError);if(this.destroyed){terminateEarly();return;}
try{sendTest();}catch(e){this._setupFakeWorker();}});const sendTest=()=>{const testObj=new Uint8Array();messageHandler.send("test",testObj,[testObj.buffer]);};sendTest();return;}catch(e){(0,_util.info)("The worker has been disabled.");}}
this._setupFakeWorker();}
_setupFakeWorker(){if(!PDFWorkerUtil.isWorkerDisabled){(0,_util.warn)("Setting up fake worker.");PDFWorkerUtil.isWorkerDisabled=true;}
PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler=>{if(this.destroyed){this._readyCapability.reject(new Error("Worker was destroyed"));return;}
const port=new LoopbackPort();this._port=port;const id=`fake${PDFWorkerUtil.fakeWorkerId++}`;const workerHandler=new _message_handler.MessageHandler(id+"_worker",id,port);WorkerMessageHandler.setup(workerHandler,port);const messageHandler=new _message_handler.MessageHandler(id,id+"_worker",port);this._messageHandler=messageHandler;this._readyCapability.resolve();messageHandler.send("configure",{verbosity:this.verbosity});}).catch(reason=>{this._readyCapability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`));});}
destroy(){this.destroyed=true;if(this._webWorker){this._webWorker.terminate();this._webWorker=null;}
_classStaticPrivateFieldSpecGet(PDFWorker,PDFWorker,_workerPorts).delete(this._port);this._port=null;if(this._messageHandler){this._messageHandler.destroy();this._messageHandler=null;}}
static fromPort(params){if(!(params!==null&&params!==void 0&&params.port)){throw new Error("PDFWorker.fromPort - invalid method signature.");}
if(_classStaticPrivateFieldSpecGet(this,PDFWorker,_workerPorts).has(params.port)){return _classStaticPrivateFieldSpecGet(this,PDFWorker,_workerPorts).get(params.port);}
return new PDFWorker(params);}
static get workerSrc(){if(_worker_options.GlobalWorkerOptions.workerSrc){return _worker_options.GlobalWorkerOptions.workerSrc;}
if(PDFWorkerUtil.fallbackWorkerSrc!==null){if(!_is_node.isNodeJS){(0,_display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.');}
return PDFWorkerUtil.fallbackWorkerSrc;}
throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');}
static get _mainThreadWorkerMessageHandler(){try{var _globalThis$pdfjsWork;return((_globalThis$pdfjsWork=globalThis.pdfjsWorker)===null||_globalThis$pdfjsWork===void 0?void 0:_globalThis$pdfjsWork.WorkerMessageHandler)||null;}catch(ex){return null;}}
static get _setupFakeWorkerGlobal(){const loader=async()=>{const mainWorkerMessageHandler=this._mainThreadWorkerMessageHandler;if(mainWorkerMessageHandler){return mainWorkerMessageHandler;}
if(_is_node.isNodeJS&&typeof require==="function"){const worker=eval("require")(this.workerSrc);return worker.WorkerMessageHandler;}
await(0,_display_utils.loadScript)(this.workerSrc);return window.pdfjsWorker.WorkerMessageHandler;};return(0,_util.shadow)(this,"_setupFakeWorkerGlobal",loader());}}
exports.PDFWorker=PDFWorker;var _workerPorts={writable:true,value:new WeakMap()};{PDFWorker.getWorkerSrc=function(){(0,_display_utils.deprecated)("`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.");return this.workerSrc;};}
var _docStats=new WeakMap();var _pageCache=new WeakMap();var _pagePromises=new WeakMap();var _metadataPromise=new WeakMap();class WorkerTransport{constructor(messageHandler,loadingTask,networkStream,params){_classPrivateFieldInitSpec(this,_docStats,{writable:true,value:null});_classPrivateFieldInitSpec(this,_pageCache,{writable:true,value:new Map()});_classPrivateFieldInitSpec(this,_pagePromises,{writable:true,value:new Map()});_classPrivateFieldInitSpec(this,_metadataPromise,{writable:true,value:null});this.messageHandler=messageHandler;this.loadingTask=loadingTask;this.commonObjs=new PDFObjects();this.fontLoader=new _font_loader.FontLoader({docId:loadingTask.docId,onUnsupportedFeature:this._onUnsupportedFeature.bind(this),ownerDocument:params.ownerDocument,styleElement:params.styleElement});this._params=params;if(!params.useWorkerFetch){this.CMapReaderFactory=new params.CMapReaderFactory({baseUrl:params.cMapUrl,isCompressed:params.cMapPacked});this.StandardFontDataFactory=new params.StandardFontDataFactory({baseUrl:params.standardFontDataUrl});}
this.destroyed=false;this.destroyCapability=null;this._passwordCapability=null;this._networkStream=networkStream;this._fullReader=null;this._lastProgress=null;this.downloadInfoCapability=(0,_util.createPromiseCapability)();this.setupMessageHandler();}
get annotationStorage(){return(0,_util.shadow)(this,"annotationStorage",new _annotation_storage.AnnotationStorage());}
get stats(){return _classPrivateFieldGet(this,_docStats);}
getRenderingIntent(intent){let annotationMode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_util.AnnotationMode.ENABLE;let printAnnotationStorage=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;let isOpList=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;let renderingIntent=_util.RenderingIntentFlag.DISPLAY;let annotationMap=null;switch(intent){case"any":renderingIntent=_util.RenderingIntentFlag.ANY;break;case"display":break;case"print":renderingIntent=_util.RenderingIntentFlag.PRINT;break;default:(0,_util.warn)(`getRenderingIntent - invalid intent: ${intent}`);}
switch(annotationMode){case _util.AnnotationMode.DISABLE:renderingIntent+=_util.RenderingIntentFlag.ANNOTATIONS_DISABLE;break;case _util.AnnotationMode.ENABLE:break;case _util.AnnotationMode.ENABLE_FORMS:renderingIntent+=_util.RenderingIntentFlag.ANNOTATIONS_FORMS;break;case _util.AnnotationMode.ENABLE_STORAGE:renderingIntent+=_util.RenderingIntentFlag.ANNOTATIONS_STORAGE;const annotationStorage=renderingIntent&_util.RenderingIntentFlag.PRINT&&printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage?printAnnotationStorage:this.annotationStorage;annotationMap=annotationStorage.serializable;break;default:(0,_util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);}
if(isOpList){renderingIntent+=_util.RenderingIntentFlag.OPLIST;}
return{renderingIntent,cacheKey:`${renderingIntent}_${_annotation_storage.AnnotationStorage.getHash(annotationMap)}`,annotationStorageMap:annotationMap};}
destroy(){if(this.destroyCapability){return this.destroyCapability.promise;}
this.destroyed=true;this.destroyCapability=(0,_util.createPromiseCapability)();if(this._passwordCapability){this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback"));}
const waitOn=[];for(const page of _classPrivateFieldGet(this,_pageCache).values()){waitOn.push(page._destroy());}
_classPrivateFieldGet(this,_pageCache).clear();_classPrivateFieldGet(this,_pagePromises).clear();if(this.hasOwnProperty("annotationStorage")){this.annotationStorage.resetModified();}
const terminated=this.messageHandler.sendWithPromise("Terminate",null);waitOn.push(terminated);Promise.all(waitOn).then(()=>{this.commonObjs.clear();this.fontLoader.clear();_classPrivateFieldSet(this,_metadataPromise,null);this._getFieldObjectsPromise=null;this._hasJSActionsPromise=null;if(this._networkStream){this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated."));}
if(this.messageHandler){this.messageHandler.destroy();this.messageHandler=null;}
this.destroyCapability.resolve();},this.destroyCapability.reject);return this.destroyCapability.promise;}
setupMessageHandler(){const{messageHandler,loadingTask}=this;messageHandler.on("GetReader",(data,sink)=>{(0,_util.assert)(this._networkStream,"GetReader - no `IPDFStream` instance available.");this._fullReader=this._networkStream.getFullReader();this._fullReader.onProgress=evt=>{this._lastProgress={loaded:evt.loaded,total:evt.total};};sink.onPull=()=>{this._fullReader.read().then(function(_ref8){let{value,done}=_ref8;if(done){sink.close();return;}
(0,_util.assert)((0,_util.isArrayBuffer)(value),"GetReader - expected an ArrayBuffer.");sink.enqueue(new Uint8Array(value),1,[value]);}).catch(reason=>{sink.error(reason);});};sink.onCancel=reason=>{this._fullReader.cancel(reason);sink.ready.catch(readyReason=>{if(this.destroyed){return;}
throw readyReason;});};});messageHandler.on("ReaderHeadersReady",data=>{const headersCapability=(0,_util.createPromiseCapability)();const fullReader=this._fullReader;fullReader.headersReady.then(()=>{if(!fullReader.isStreamingSupported||!fullReader.isRangeSupported){if(this._lastProgress){var _loadingTask$onProgre;(_loadingTask$onProgre=loadingTask.onProgress)===null||_loadingTask$onProgre===void 0?void 0:_loadingTask$onProgre.call(loadingTask,this._lastProgress);}
fullReader.onProgress=evt=>{var _loadingTask$onProgre2;(_loadingTask$onProgre2=loadingTask.onProgress)===null||_loadingTask$onProgre2===void 0?void 0:_loadingTask$onProgre2.call(loadingTask,{loaded:evt.loaded,total:evt.total});};}
headersCapability.resolve({isStreamingSupported:fullReader.isStreamingSupported,isRangeSupported:fullReader.isRangeSupported,contentLength:fullReader.contentLength});},headersCapability.reject);return headersCapability.promise;});messageHandler.on("GetRangeReader",(data,sink)=>{(0,_util.assert)(this._networkStream,"GetRangeReader - no `IPDFStream` instance available.");const rangeReader=this._networkStream.getRangeReader(data.begin,data.end);if(!rangeReader){sink.close();return;}
sink.onPull=()=>{rangeReader.read().then(function(_ref9){let{value,done}=_ref9;if(done){sink.close();return;}
(0,_util.assert)((0,_util.isArrayBuffer)(value),"GetRangeReader - expected an ArrayBuffer.");sink.enqueue(new Uint8Array(value),1,[value]);}).catch(reason=>{sink.error(reason);});};sink.onCancel=reason=>{rangeReader.cancel(reason);sink.ready.catch(readyReason=>{if(this.destroyed){return;}
throw readyReason;});};});messageHandler.on("GetDoc",_ref10=>{let{pdfInfo}=_ref10;this._numPages=pdfInfo.numPages;this._htmlForXfa=pdfInfo.htmlForXfa;delete pdfInfo.htmlForXfa;loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo,this));});messageHandler.on("DocException",function(ex){let reason;switch(ex.name){case"PasswordException":reason=new _util.PasswordException(ex.message,ex.code);break;case"InvalidPDFException":reason=new _util.InvalidPDFException(ex.message);break;case"MissingPDFException":reason=new _util.MissingPDFException(ex.message);break;case"UnexpectedResponseException":reason=new _util.UnexpectedResponseException(ex.message,ex.status);break;case"UnknownErrorException":reason=new _util.UnknownErrorException(ex.message,ex.details);break;default:(0,_util.unreachable)("DocException - expected a valid Error.");}
loadingTask._capability.reject(reason);});messageHandler.on("PasswordRequest",exception=>{this._passwordCapability=(0,_util.createPromiseCapability)();if(loadingTask.onPassword){const updatePassword=password=>{if(password instanceof Error){this._passwordCapability.reject(password);}else{this._passwordCapability.resolve({password});}};try{loadingTask.onPassword(updatePassword,exception.code);}catch(ex){this._passwordCapability.reject(ex);}}else{this._passwordCapability.reject(new _util.PasswordException(exception.message,exception.code));}
return this._passwordCapability.promise;});messageHandler.on("DataLoaded",data=>{var _loadingTask$onProgre3;(_loadingTask$onProgre3=loadingTask.onProgress)===null||_loadingTask$onProgre3===void 0?void 0:_loadingTask$onProgre3.call(loadingTask,{loaded:data.length,total:data.length});this.downloadInfoCapability.resolve(data);});messageHandler.on("StartRenderPage",data=>{if(this.destroyed){return;}
const page=_classPrivateFieldGet(this,_pageCache).get(data.pageIndex);page._startRenderPage(data.transparency,data.cacheKey);});messageHandler.on("commonobj",_ref11=>{var _globalThis$FontInspe;let[id,type,exportedData]=_ref11;if(this.destroyed){return;}
if(this.commonObjs.has(id)){return;}
switch(type){case"Font":const params=this._params;if("error"in exportedData){const exportedError=exportedData.error;(0,_util.warn)(`Error during font loading: ${exportedError}`);this.commonObjs.resolve(id,exportedError);break;}
let fontRegistry=null;if(params.pdfBug&&(_globalThis$FontInspe=globalThis.FontInspector)!==null&&_globalThis$FontInspe!==void 0&&_globalThis$FontInspe.enabled){fontRegistry={registerFont(font,url){globalThis.FontInspector.fontAdded(font,url);}};}
const font=new _font_loader.FontFaceObject(exportedData,{isEvalSupported:params.isEvalSupported,disableFontFace:params.disableFontFace,ignoreErrors:params.ignoreErrors,onUnsupportedFeature:this._onUnsupportedFeature.bind(this),fontRegistry});this.fontLoader.bind(font).catch(reason=>{return messageHandler.sendWithPromise("FontFallback",{id});}).finally(()=>{if(!params.fontExtraProperties&&font.data){font.data=null;}
this.commonObjs.resolve(id,font);});break;case"FontPath":case"Image":this.commonObjs.resolve(id,exportedData);break;default:throw new Error(`Got unknown common object type ${type}`);}});messageHandler.on("obj",_ref12=>{let[id,pageIndex,type,imageData]=_ref12;if(this.destroyed){return;}
const pageProxy=_classPrivateFieldGet(this,_pageCache).get(pageIndex);if(pageProxy.objs.has(id)){return;}
switch(type){case"Image":pageProxy.objs.resolve(id,imageData);const MAX_IMAGE_SIZE_TO_STORE=8000000;if(imageData){let length;if(imageData.bitmap){const{bitmap,width,height}=imageData;length=width*height*4;pageProxy._bitmaps.add(bitmap);}else{var _imageData$data;length=((_imageData$data=imageData.data)===null||_imageData$data===void 0?void 0:_imageData$data.length)||0;}
if(length>MAX_IMAGE_SIZE_TO_STORE){pageProxy.cleanupAfterRender=true;}}
break;case"Pattern":pageProxy.objs.resolve(id,imageData);break;default:throw new Error(`Got unknown object type ${type}`);}});messageHandler.on("DocProgress",data=>{var _loadingTask$onProgre4;if(this.destroyed){return;}
(_loadingTask$onProgre4=loadingTask.onProgress)===null||_loadingTask$onProgre4===void 0?void 0:_loadingTask$onProgre4.call(loadingTask,{loaded:data.loaded,total:data.total});});messageHandler.on("DocStats",data=>{if(this.destroyed){return;}
_classPrivateFieldSet(this,_docStats,Object.freeze({streamTypes:Object.freeze(data.streamTypes),fontTypes:Object.freeze(data.fontTypes)}));});messageHandler.on("UnsupportedFeature",this._onUnsupportedFeature.bind(this));messageHandler.on("FetchBuiltInCMap",data=>{if(this.destroyed){return Promise.reject(new Error("Worker was destroyed."));}
if(!this.CMapReaderFactory){return Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter."));}
return this.CMapReaderFactory.fetch(data);});messageHandler.on("FetchStandardFontData",data=>{if(this.destroyed){return Promise.reject(new Error("Worker was destroyed."));}
if(!this.StandardFontDataFactory){return Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter."));}
return this.StandardFontDataFactory.fetch(data);});}
_onUnsupportedFeature(_ref13){var _this$loadingTask$onU,_this$loadingTask;let{featureId}=_ref13;if(this.destroyed){return;}
(_this$loadingTask$onU=(_this$loadingTask=this.loadingTask).onUnsupportedFeature)===null||_this$loadingTask$onU===void 0?void 0:_this$loadingTask$onU.call(_this$loadingTask,featureId);}
getData(){return this.messageHandler.sendWithPromise("GetData",null);}
getPage(pageNumber){if(!Number.isInteger(pageNumber)||pageNumber<=0||pageNumber>this._numPages){return Promise.reject(new Error("Invalid page request."));}
const pageIndex=pageNumber-1,cachedPromise=_classPrivateFieldGet(this,_pagePromises).get(pageIndex);if(cachedPromise){return cachedPromise;}
const promise=this.messageHandler.sendWithPromise("GetPage",{pageIndex}).then(pageInfo=>{if(this.destroyed){throw new Error("Transport destroyed");}
const page=new PDFPageProxy(pageIndex,pageInfo,this,this._params.ownerDocument,this._params.pdfBug);_classPrivateFieldGet(this,_pageCache).set(pageIndex,page);return page;});_classPrivateFieldGet(this,_pagePromises).set(pageIndex,promise);return promise;}
getPageIndex(ref){if(typeof ref!=="object"||ref===null||!Number.isInteger(ref.num)||ref.num<0||!Number.isInteger(ref.gen)||ref.gen<0){return Promise.reject(new Error("Invalid pageIndex request."));}
return this.messageHandler.sendWithPromise("GetPageIndex",{num:ref.num,gen:ref.gen});}
getAnnotations(pageIndex,intent){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex,intent});}
saveDocument(){var _this$_fullReader$fil,_this$_fullReader;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:this.annotationStorage.serializable,filename:(_this$_fullReader$fil=(_this$_fullReader=this._fullReader)===null||_this$_fullReader===void 0?void 0:_this$_fullReader.filename)!==null&&_this$_fullReader$fil!==void 0?_this$_fullReader$fil:null}).finally(()=>{this.annotationStorage.resetModified();});}
getFieldObjects(){return this._getFieldObjectsPromise||(this._getFieldObjectsPromise=this.messageHandler.sendWithPromise("GetFieldObjects",null));}
hasJSActions(){return this._hasJSActionsPromise||(this._hasJSActionsPromise=this.messageHandler.sendWithPromise("HasJSActions",null));}
getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null);}
getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null);}
getDestination(id){if(typeof id!=="string"){return Promise.reject(new Error("Invalid destination request."));}
return this.messageHandler.sendWithPromise("GetDestination",{id});}
getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null);}
getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null);}
getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null);}
getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null);}
getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null);}
getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null);}
getJavaScript(){return this.messageHandler.sendWithPromise("GetJavaScript",null);}
getDocJSActions(){return this.messageHandler.sendWithPromise("GetDocJSActions",null);}
getPageJSActions(pageIndex){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex});}
getStructTree(pageIndex){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex});}
getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null);}
getOptionalContentConfig(){return this.messageHandler.sendWithPromise("GetOptionalContentConfig",null).then(results=>{return new _optional_content_config.OptionalContentConfig(results);});}
getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null);}
getMetadata(){return _classPrivateFieldGet(this,_metadataPromise)||_classPrivateFieldSet(this,_metadataPromise,this.messageHandler.sendWithPromise("GetMetadata",null).then(results=>{var _this$_fullReader$fil2,_this$_fullReader2,_this$_fullReader$con,_this$_fullReader3;return{info:results[0],metadata:results[1]?new _metadata.Metadata(results[1]):null,contentDispositionFilename:(_this$_fullReader$fil2=(_this$_fullReader2=this._fullReader)===null||_this$_fullReader2===void 0?void 0:_this$_fullReader2.filename)!==null&&_this$_fullReader$fil2!==void 0?_this$_fullReader$fil2:null,contentLength:(_this$_fullReader$con=(_this$_fullReader3=this._fullReader)===null||_this$_fullReader3===void 0?void 0:_this$_fullReader3.contentLength)!==null&&_this$_fullReader$con!==void 0?_this$_fullReader$con:null};}));}
getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null);}
async startCleanup(){let keepLoadedFonts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;await this.messageHandler.sendWithPromise("Cleanup",null);if(this.destroyed){return;}
for(const page of _classPrivateFieldGet(this,_pageCache).values()){const cleanupSuccessful=page.cleanup();if(!cleanupSuccessful){throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);}}
this.commonObjs.clear();if(!keepLoadedFonts){this.fontLoader.clear();}
_classPrivateFieldSet(this,_metadataPromise,null);this._getFieldObjectsPromise=null;this._hasJSActionsPromise=null;}
get loadingParams(){const params=this._params;return(0,_util.shadow)(this,"loadingParams",{disableAutoFetch:params.disableAutoFetch,enableXfa:params.enableXfa});}}
var _objs=new WeakMap();var _ensureObj=new WeakSet();class PDFObjects{constructor(){_classPrivateMethodInitSpec(this,_ensureObj);_classPrivateFieldInitSpec(this,_objs,{writable:true,value:Object.create(null)});}
get(objId){let callback=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(callback){const obj=_classPrivateMethodGet(this,_ensureObj,_ensureObj2).call(this,objId);obj.capability.promise.then(()=>callback(obj.data));return null;}
const obj=_classPrivateFieldGet(this,_objs)[objId];if(!(obj!==null&&obj!==void 0&&obj.capability.settled)){throw new Error(`Requesting object that isn't resolved yet ${objId}.`);}
return obj.data;}
has(objId){const obj=_classPrivateFieldGet(this,_objs)[objId];return(obj===null||obj===void 0?void 0:obj.capability.settled)||false;}
resolve(objId){let data=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;const obj=_classPrivateMethodGet(this,_ensureObj,_ensureObj2).call(this,objId);obj.data=data;obj.capability.resolve();}
clear(){_classPrivateFieldSet(this,_objs,Object.create(null));}}
function _ensureObj2(objId){const obj=_classPrivateFieldGet(this,_objs)[objId];if(obj){return obj;}
return _classPrivateFieldGet(this,_objs)[objId]={capability:(0,_util.createPromiseCapability)(),data:null};}
var _internalRenderTask=new WeakMap();class RenderTask{constructor(internalRenderTask){_classPrivateFieldInitSpec(this,_internalRenderTask,{writable:true,value:null});_classPrivateFieldSet(this,_internalRenderTask,internalRenderTask);this.onContinue=null;}
get promise(){return _classPrivateFieldGet(this,_internalRenderTask).capability.promise;}
cancel(){_classPrivateFieldGet(this,_internalRenderTask).cancel();}
get separateAnnots(){const{separateAnnots}=_classPrivateFieldGet(this,_internalRenderTask).operatorList;if(!separateAnnots){return false;}
const{annotationCanvasMap}=_classPrivateFieldGet(this,_internalRenderTask);return separateAnnots.form||separateAnnots.canvas&&(annotationCanvasMap===null||annotationCanvasMap===void 0?void 0:annotationCanvasMap.size)>0;}}
exports.RenderTask=RenderTask;class InternalRenderTask{constructor(_ref14){let{callback,params,objs,commonObjs,annotationCanvasMap,operatorList,pageIndex,canvasFactory,useRequestAnimationFrame=false,pdfBug=false,pageColors=null}=_ref14;this.callback=callback;this.params=params;this.objs=objs;this.commonObjs=commonObjs;this.annotationCanvasMap=annotationCanvasMap;this.operatorListIdx=null;this.operatorList=operatorList;this._pageIndex=pageIndex;this.canvasFactory=canvasFactory;this._pdfBug=pdfBug;this.pageColors=pageColors;this.running=false;this.graphicsReadyCallback=null;this.graphicsReady=false;this._useRequestAnimationFrame=useRequestAnimationFrame===true&&typeof window!=="undefined";this.cancelled=false;this.capability=(0,_util.createPromiseCapability)();this.task=new RenderTask(this);this._cancelBound=this.cancel.bind(this);this._continueBound=this._continue.bind(this);this._scheduleNextBound=this._scheduleNext.bind(this);this._nextBound=this._next.bind(this);this._canvas=params.canvasContext.canvas;}
get completed(){return this.capability.promise.catch(function(){});}
initializeGraphics(_ref15){var _globalThis$StepperMa;let{transparency=false,optionalContentConfig}=_ref15;if(this.cancelled){return;}
if(this._canvas){if(_classStaticPrivateFieldSpecGet(InternalRenderTask,InternalRenderTask,_canvasInUse).has(this._canvas)){throw new Error("Cannot use the same canvas during multiple render() operations. "+"Use different canvas or ensure previous operations were "+"cancelled or completed.");}
_classStaticPrivateFieldSpecGet(InternalRenderTask,InternalRenderTask,_canvasInUse).add(this._canvas);}
if(this._pdfBug&&(_globalThis$StepperMa=globalThis.StepperManager)!==null&&_globalThis$StepperMa!==void 0&&_globalThis$StepperMa.enabled){this.stepper=globalThis.StepperManager.create(this._pageIndex);this.stepper.init(this.operatorList);this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint();}
const{canvasContext,viewport,transform,imageLayer,background}=this.params;this.gfx=new _canvas.CanvasGraphics(canvasContext,this.commonObjs,this.objs,this.canvasFactory,imageLayer,optionalContentConfig,this.annotationCanvasMap,this.pageColors);this.gfx.beginDrawing({transform,viewport,transparency,background});this.operatorListIdx=0;this.graphicsReady=true;if(this.graphicsReadyCallback){this.graphicsReadyCallback();}}
cancel(){let error=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;this.running=false;this.cancelled=true;if(this.gfx){this.gfx.endDrawing();}
if(this._canvas){_classStaticPrivateFieldSpecGet(InternalRenderTask,InternalRenderTask,_canvasInUse).delete(this._canvas);}
this.callback(error||new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`,"canvas"));}
operatorListChanged(){if(!this.graphicsReady){if(!this.graphicsReadyCallback){this.graphicsReadyCallback=this._continueBound;}
return;}
if(this.stepper){this.stepper.updateOperatorList(this.operatorList);}
if(this.running){return;}
this._continue();}
_continue(){this.running=true;if(this.cancelled){return;}
if(this.task.onContinue){this.task.onContinue(this._scheduleNextBound);}else{this._scheduleNext();}}
_scheduleNext(){if(this._useRequestAnimationFrame){window.requestAnimationFrame(()=>{this._nextBound().catch(this._cancelBound);});}else{Promise.resolve().then(this._nextBound).catch(this._cancelBound);}}
async _next(){if(this.cancelled){return;}
this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper);if(this.operatorListIdx===this.operatorList.argsArray.length){this.running=false;if(this.operatorList.lastChunk){this.gfx.endDrawing();if(this._canvas){_classStaticPrivateFieldSpecGet(InternalRenderTask,InternalRenderTask,_canvasInUse).delete(this._canvas);}
this.callback();}}}}
var _canvasInUse={writable:true,value:new WeakSet()};const version='2.16.105';exports.version=version;const build='172ccdbe5';exports.build=build;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PrintAnnotationStorage=exports.AnnotationStorage=void 0;var _util=__w_pdfjs_require__(1);var _editor=__w_pdfjs_require__(131);var _murmurhash=__w_pdfjs_require__(135);function _classPrivateFieldInitSpec(obj,privateMap,value){_checkPrivateRedeclaration(obj,privateMap);privateMap.set(obj,value);}
function _classPrivateFieldGet(receiver,privateMap){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"get");return _classApplyDescriptorGet(receiver,descriptor);}
function _classApplyDescriptorGet(receiver,descriptor){if(descriptor.get){return descriptor.get.call(receiver);}return descriptor.value;}
function _classPrivateFieldSet(receiver,privateMap,value){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"set");_classApplyDescriptorSet(receiver,descriptor,value);return value;}
function _classExtractFieldDescriptor(receiver,privateMap,action){if(!privateMap.has(receiver)){throw new TypeError("attempted to "+action+" private field on non-instance");}return privateMap.get(receiver);}
function _classApplyDescriptorSet(receiver,descriptor,value){if(descriptor.set){descriptor.set.call(receiver,value);}else{if(!descriptor.writable){throw new TypeError("attempted to set read only private field");}descriptor.value=value;}}
function _classPrivateMethodInitSpec(obj,privateSet){_checkPrivateRedeclaration(obj,privateSet);privateSet.add(obj);}
function _checkPrivateRedeclaration(obj,privateCollection){if(privateCollection.has(obj)){throw new TypeError("Cannot initialize the same private elements twice on an object");}}
function _classPrivateMethodGet(receiver,privateSet,fn){if(!privateSet.has(receiver)){throw new TypeError("attempted to get private field on non-instance");}return fn;}
var _setModified=new WeakSet();class AnnotationStorage{constructor(){_classPrivateMethodInitSpec(this,_setModified);this._storage=new Map();this._modified=false;this.onSetModified=null;this.onResetModified=null;this.onAnnotationEditor=null;}
getValue(key,defaultValue){const value=this._storage.get(key);if(value===undefined){return defaultValue;}
return Object.assign(defaultValue,value);}
getRawValue(key){return this._storage.get(key);}
remove(key){this._storage.delete(key);if(this._storage.size===0){this.resetModified();}
if(typeof this.onAnnotationEditor==="function"){for(const value of this._storage.values()){if(value instanceof _editor.AnnotationEditor){return;}}
this.onAnnotationEditor(null);}}
setValue(key,value){const obj=this._storage.get(key);let modified=false;if(obj!==undefined){for(const[entry,val]of Object.entries(value)){if(obj[entry]!==val){modified=true;obj[entry]=val;}}}else{modified=true;this._storage.set(key,value);}
if(modified){_classPrivateMethodGet(this,_setModified,_setModified2).call(this);}
if(value instanceof _editor.AnnotationEditor&&typeof this.onAnnotationEditor==="function"){this.onAnnotationEditor(value.constructor._type);}}
has(key){return this._storage.has(key);}
getAll(){return this._storage.size>0?(0,_util.objectFromMap)(this._storage):null;}
get size(){return this._storage.size;}
resetModified(){if(this._modified){this._modified=false;if(typeof this.onResetModified==="function"){this.onResetModified();}}}
get print(){return new PrintAnnotationStorage(this);}
get serializable(){if(this._storage.size===0){return null;}
const clone=new Map();for(const[key,val]of this._storage){const serialized=val instanceof _editor.AnnotationEditor?val.serialize():val;if(serialized){clone.set(key,serialized);}}
return clone;}
static getHash(map){if(!map){return"";}
const hash=new _murmurhash.MurmurHash3_64();for(const[key,val]of map){hash.update(`${key}:${JSON.stringify(val)}`);}
return hash.hexdigest();}}
exports.AnnotationStorage=AnnotationStorage;function _setModified2(){if(!this._modified){this._modified=true;if(typeof this.onSetModified==="function"){this.onSetModified();}}}
var _serializable=new WeakMap();class PrintAnnotationStorage extends AnnotationStorage{constructor(parent){super();_classPrivateFieldInitSpec(this,_serializable,{writable:true,value:null});_classPrivateFieldSet(this,_serializable,structuredClone(parent.serializable));}
get print(){(0,_util.unreachable)("Should not call PrintAnnotationStorage.print");}
get serializable(){return _classPrivateFieldGet(this,_serializable);}}
exports.PrintAnnotationStorage=PrintAnnotationStorage;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.AnnotationEditor=void 0;var _tools=__w_pdfjs_require__(132);var _util=__w_pdfjs_require__(1);function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}
function _classPrivateFieldInitSpec(obj,privateMap,value){_checkPrivateRedeclaration(obj,privateMap);privateMap.set(obj,value);}
function _checkPrivateRedeclaration(obj,privateCollection){if(privateCollection.has(obj)){throw new TypeError("Cannot initialize the same private elements twice on an object");}}
function _classPrivateFieldSet(receiver,privateMap,value){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"set");_classApplyDescriptorSet(receiver,descriptor,value);return value;}
function _classApplyDescriptorSet(receiver,descriptor,value){if(descriptor.set){descriptor.set.call(receiver,value);}else{if(!descriptor.writable){throw new TypeError("attempted to set read only private field");}descriptor.value=value;}}
function _classPrivateFieldGet(receiver,privateMap){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"get");return _classApplyDescriptorGet(receiver,descriptor);}
function _classExtractFieldDescriptor(receiver,privateMap,action){if(!privateMap.has(receiver)){throw new TypeError("attempted to "+action+" private field on non-instance");}return privateMap.get(receiver);}
function _classApplyDescriptorGet(receiver,descriptor){if(descriptor.get){return descriptor.get.call(receiver);}return descriptor.value;}
var _boundFocusin=new WeakMap();var _boundFocusout=new WeakMap();var _hasBeenSelected=new WeakMap();var _isEditing=new WeakMap();var _isInEditMode=new WeakMap();var _zIndex=new WeakMap();class AnnotationEditor{constructor(parameters){_classPrivateFieldInitSpec(this,_boundFocusin,{writable:true,value:this.focusin.bind(this)});_classPrivateFieldInitSpec(this,_boundFocusout,{writable:true,value:this.focusout.bind(this)});_classPrivateFieldInitSpec(this,_hasBeenSelected,{writable:true,value:false});_classPrivateFieldInitSpec(this,_isEditing,{writable:true,value:false});_classPrivateFieldInitSpec(this,_isInEditMode,{writable:true,value:false});_classPrivateFieldInitSpec(this,_zIndex,{writable:true,value:AnnotationEditor._zIndex++});if(this.constructor===AnnotationEditor){(0,_util.unreachable)("Cannot initialize AnnotationEditor.");}
this.parent=parameters.parent;this.id=parameters.id;this.width=this.height=null;this.pageIndex=parameters.parent.pageIndex;this.name=parameters.name;this.div=null;const[width,height]=this.parent.viewportBaseDimensions;this.x=parameters.x/width;this.y=parameters.y/height;this.rotation=this.parent.viewport.rotation;this.isAttachedToDOM=false;}
static get _defaultLineColor(){return(0,_util.shadow)(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"));}
setInBackground(){this.div.style.zIndex=0;}
setInForeground(){this.div.style.zIndex=_classPrivateFieldGet(this,_zIndex);}
focusin(event){if(!_classPrivateFieldGet(this,_hasBeenSelected)){this.parent.setSelected(this);}else{_classPrivateFieldSet(this,_hasBeenSelected,false);}}
focusout(event){if(!this.isAttachedToDOM){return;}
const target=event.relatedTarget;if(target!==null&&target!==void 0&&target.closest(`#${this.id}`)){return;}
event.preventDefault();if(!this.parent.isMultipleSelection){this.commitOrRemove();}}
commitOrRemove(){if(this.isEmpty()){this.remove();}else{this.commit();}}
commit(){this.parent.addToAnnotationStorage(this);}
dragstart(event){const rect=this.parent.div.getBoundingClientRect();this.startX=event.clientX-rect.x;this.startY=event.clientY-rect.y;event.dataTransfer.setData("text/plain",this.id);event.dataTransfer.effectAllowed="move";}
setAt(x,y,tx,ty){const[width,height]=this.parent.viewportBaseDimensions;[tx,ty]=this.screenToPageTranslation(tx,ty);this.x=(x+tx)/width;this.y=(y+ty)/height;this.div.style.left=`${100 * this.x}%`;this.div.style.top=`${100 * this.y}%`;}
translate(x,y){const[width,height]=this.parent.viewportBaseDimensions;[x,y]=this.screenToPageTranslation(x,y);this.x+=x/width;this.y+=y/height;this.div.style.left=`${100 * this.x}%`;this.div.style.top=`${100 * this.y}%`;}
screenToPageTranslation(x,y){const{rotation}=this.parent.viewport;switch(rotation){case 90:return[y,-x];case 180:return[-x,-y];case 270:return[-y,x];default:return[x,y];}}
setDims(width,height){const[parentWidth,parentHeight]=this.parent.viewportBaseDimensions;this.div.style.width=`${100 * width / parentWidth}%`;this.div.style.height=`${100 * height / parentHeight}%`;}
getInitialTranslation(){return[0,0];}
render(){this.div=document.createElement("div");this.div.setAttribute("data-editor-rotation",(360-this.rotation)%360);this.div.className=this.name;this.div.setAttribute("id",this.id);this.div.setAttribute("tabIndex",0);this.setInForeground();this.div.addEventListener("focusin",_classPrivateFieldGet(this,_boundFocusin));this.div.addEventListener("focusout",_classPrivateFieldGet(this,_boundFocusout));const[tx,ty]=this.getInitialTranslation();this.translate(tx,ty);(0,_tools.bindEvents)(this,this.div,["dragstart","pointerdown"]);return this.div;}
pointerdown(event){const isMac=_tools.KeyboardManager.platform.isMac;if(event.button!==0||event.ctrlKey&&isMac){event.preventDefault();return;}
if(event.ctrlKey&&!isMac||event.shiftKey||event.metaKey&&isMac){this.parent.toggleSelected(this);}else{this.parent.setSelected(this);}
_classPrivateFieldSet(this,_hasBeenSelected,true);}
getRect(tx,ty){const[parentWidth,parentHeight]=this.parent.viewportBaseDimensions;const[pageWidth,pageHeight]=this.parent.pageDimensions;const shiftX=pageWidth*tx/parentWidth;const shiftY=pageHeight*ty/parentHeight;const x=this.x*pageWidth;const y=this.y*pageHeight;const width=this.width*pageWidth;const height=this.height*pageHeight;switch(this.rotation){case 0:return[x+shiftX,pageHeight-y-shiftY-height,x+shiftX+width,pageHeight-y-shiftY];case 90:return[x+shiftY,pageHeight-y+shiftX,x+shiftY+height,pageHeight-y+shiftX+width];case 180:return[x-shiftX-width,pageHeight-y+shiftY,x-shiftX,pageHeight-y+shiftY+height];case 270:return[x-shiftY-height,pageHeight-y-shiftX-width,x-shiftY,pageHeight-y-shiftX];default:throw new Error("Invalid rotation");}}
getRectInCurrentCoords(rect,pageHeight){const[x1,y1,x2,y2]=rect;const width=x2-x1;const height=y2-y1;switch(this.rotation){case 0:return[x1,pageHeight-y2,width,height];case 90:return[x1,pageHeight-y1,height,width];case 180:return[x2,pageHeight-y1,width,height];case 270:return[x2,pageHeight-y2,height,width];default:throw new Error("Invalid rotation");}}
onceAdded(){}
isEmpty(){return false;}
enableEditMode(){_classPrivateFieldSet(this,_isInEditMode,true);}
disableEditMode(){_classPrivateFieldSet(this,_isInEditMode,false);}
isInEditMode(){return _classPrivateFieldGet(this,_isInEditMode);}
shouldGetKeyboardEvents(){return false;}
needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM;}
rebuild(){var _this$div;(_this$div=this.div)===null||_this$div===void 0?void 0:_this$div.addEventListener("focusin",_classPrivateFieldGet(this,_boundFocusin));}
serialize(){(0,_util.unreachable)("An editor must be serializable");}
static deserialize(data,parent){const editor=new this.prototype.constructor({parent,id:parent.getNextId()});editor.rotation=data.rotation;const[pageWidth,pageHeight]=parent.pageDimensions;const[x,y,width,height]=editor.getRectInCurrentCoords(data.rect,pageHeight);editor.x=x/pageWidth;editor.y=y/pageHeight;editor.width=width/pageWidth;editor.height=height/pageHeight;return editor;}
remove(){this.div.removeEventListener("focusin",_classPrivateFieldGet(this,_boundFocusin));this.div.removeEventListener("focusout",_classPrivateFieldGet(this,_boundFocusout));if(!this.isEmpty()){this.commit();}
this.parent.remove(this);}
select(){var _this$div2;(_this$div2=this.div)===null||_this$div2===void 0?void 0:_this$div2.classList.add("selectedEditor");}
unselect(){var _this$div3;(_this$div3=this.div)===null||_this$div3===void 0?void 0:_this$div3.classList.remove("selectedEditor");}
updateParams(type,value){}
disableEditing(){}
enableEditing(){}
get propertiesToUpdate(){return{};}
get contentDiv(){return this.div;}
get isEditing(){return _classPrivateFieldGet(this,_isEditing);}
set isEditing(value){_classPrivateFieldSet(this,_isEditing,value);if(value){this.parent.setSelected(this);this.parent.setActiveEditor(this);}else{this.parent.setActiveEditor(null);}}}
exports.AnnotationEditor=AnnotationEditor;_defineProperty(AnnotationEditor,"_colorManager",new _tools.ColorManager());_defineProperty(AnnotationEditor,"_zIndex",1);}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.KeyboardManager=exports.CommandManager=exports.ColorManager=exports.AnnotationEditorUIManager=void 0;exports.bindEvents=bindEvents;exports.opacityToHex=opacityToHex;var _util=__w_pdfjs_require__(1);var _display_utils=__w_pdfjs_require__(133);function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}
function _classPrivateMethodInitSpec(obj,privateSet){_checkPrivateRedeclaration(obj,privateSet);privateSet.add(obj);}
function _classPrivateMethodGet(receiver,privateSet,fn){if(!privateSet.has(receiver)){throw new TypeError("attempted to get private field on non-instance");}return fn;}
function _classPrivateFieldInitSpec(obj,privateMap,value){_checkPrivateRedeclaration(obj,privateMap);privateMap.set(obj,value);}
function _checkPrivateRedeclaration(obj,privateCollection){if(privateCollection.has(obj)){throw new TypeError("Cannot initialize the same private elements twice on an object");}}
function _classPrivateFieldSet(receiver,privateMap,value){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"set");_classApplyDescriptorSet(receiver,descriptor,value);return value;}
function _classApplyDescriptorSet(receiver,descriptor,value){if(descriptor.set){descriptor.set.call(receiver,value);}else{if(!descriptor.writable){throw new TypeError("attempted to set read only private field");}descriptor.value=value;}}
function _classPrivateFieldGet(receiver,privateMap){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"get");return _classApplyDescriptorGet(receiver,descriptor);}
function _classExtractFieldDescriptor(receiver,privateMap,action){if(!privateMap.has(receiver)){throw new TypeError("attempted to "+action+" private field on non-instance");}return privateMap.get(receiver);}
function _classApplyDescriptorGet(receiver,descriptor){if(descriptor.get){return descriptor.get.call(receiver);}return descriptor.value;}
function bindEvents(obj,element,names){for(const name of names){element.addEventListener(name,obj[name].bind(obj));}}
function opacityToHex(opacity){return Math.round(Math.min(255,Math.max(1,255*opacity))).toString(16).padStart(2,"0");}
var _id=new WeakMap();class IdManager{constructor(){_classPrivateFieldInitSpec(this,_id,{writable:true,value:0});}
getId(){var _this$id,_this$id2;return`${_util.AnnotationEditorPrefix}${(_classPrivateFieldSet(this, _id, (_this$id = _classPrivateFieldGet(this, _id), _this$id2 = _this$id++, _this$id)), _this$id2)}`;}}
var _commands=new WeakMap();var _locked=new WeakMap();var _maxSize=new WeakMap();var _position=new WeakMap();class CommandManager{constructor(){let maxSize=arguments.length>0&&arguments[0]!==undefined?arguments[0]:128;_classPrivateFieldInitSpec(this,_commands,{writable:true,value:[]});_classPrivateFieldInitSpec(this,_locked,{writable:true,value:false});_classPrivateFieldInitSpec(this,_maxSize,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,_position,{writable:true,value:-1});_classPrivateFieldSet(this,_maxSize,maxSize);}
add(_ref){let{cmd,undo,mustExec,type=NaN,overwriteIfSameType=false,keepUndo=false}=_ref;if(mustExec){cmd();}
if(_classPrivateFieldGet(this,_locked)){return;}
const save={cmd,undo,type};if(_classPrivateFieldGet(this,_position)===-1){if(_classPrivateFieldGet(this,_commands).length>0){_classPrivateFieldGet(this,_commands).length=0;}
_classPrivateFieldSet(this,_position,0);_classPrivateFieldGet(this,_commands).push(save);return;}
if(overwriteIfSameType&&_classPrivateFieldGet(this,_commands)[_classPrivateFieldGet(this,_position)].type===type){if(keepUndo){save.undo=_classPrivateFieldGet(this,_commands)[_classPrivateFieldGet(this,_position)].undo;}
_classPrivateFieldGet(this,_commands)[_classPrivateFieldGet(this,_position)]=save;return;}
const next=_classPrivateFieldGet(this,_position)+1;if(next===_classPrivateFieldGet(this,_maxSize)){_classPrivateFieldGet(this,_commands).splice(0,1);}else{_classPrivateFieldSet(this,_position,next);if(next<_classPrivateFieldGet(this,_commands).length){_classPrivateFieldGet(this,_commands).splice(next);}}
_classPrivateFieldGet(this,_commands).push(save);}
undo(){if(_classPrivateFieldGet(this,_position)===-1){return;}
_classPrivateFieldSet(this,_locked,true);_classPrivateFieldGet(this,_commands)[_classPrivateFieldGet(this,_position)].undo();_classPrivateFieldSet(this,_locked,false);_classPrivateFieldSet(this,_position,_classPrivateFieldGet(this,_position)-1);}
redo(){if(_classPrivateFieldGet(this,_position)<_classPrivateFieldGet(this,_commands).length-1){_classPrivateFieldSet(this,_position,_classPrivateFieldGet(this,_position)+1);_classPrivateFieldSet(this,_locked,true);_classPrivateFieldGet(this,_commands)[_classPrivateFieldGet(this,_position)].cmd();_classPrivateFieldSet(this,_locked,false);}}
hasSomethingToUndo(){return _classPrivateFieldGet(this,_position)!==-1;}
hasSomethingToRedo(){return _classPrivateFieldGet(this,_position)<_classPrivateFieldGet(this,_commands).length-1;}
destroy(){_classPrivateFieldSet(this,_commands,null);}}
exports.CommandManager=CommandManager;var _serialize=new WeakSet();class KeyboardManager{constructor(callbacks){_classPrivateMethodInitSpec(this,_serialize);this.buffer=[];this.callbacks=new Map();this.allKeys=new Set();const isMac=KeyboardManager.platform.isMac;for(const[keys,callback]of callbacks){for(const key of keys){const isMacKey=key.startsWith("mac+");if(isMac&&isMacKey){this.callbacks.set(key.slice(4),callback);this.allKeys.add(key.split("+").at(-1));}else if(!isMac&&!isMacKey){this.callbacks.set(key,callback);this.allKeys.add(key.split("+").at(-1));}}}}
static get platform(){const platform=typeof navigator!=="undefined"?navigator.platform:"";return(0,_util.shadow)(this,"platform",{isWin:platform.includes("Win"),isMac:platform.includes("Mac")});}
exec(self,event){if(!this.allKeys.has(event.key)){return;}
const callback=this.callbacks.get(_classPrivateMethodGet(this,_serialize,_serialize2).call(this,event));if(!callback){return;}
callback.bind(self)();event.stopPropagation();event.preventDefault();}}
exports.KeyboardManager=KeyboardManager;function _serialize2(event){if(event.altKey){this.buffer.push("alt");}
if(event.ctrlKey){this.buffer.push("ctrl");}
if(event.metaKey){this.buffer.push("meta");}
if(event.shiftKey){this.buffer.push("shift");}
this.buffer.push(event.key);const str=this.buffer.join("+");this.buffer.length=0;return str;}
var _elements=new WeakMap();class ClipboardManager{constructor(){_classPrivateFieldInitSpec(this,_elements,{writable:true,value:null});}
copy(element){if(!element){return;}
if(Array.isArray(element)){_classPrivateFieldSet(this,_elements,element.map(el=>el.serialize()));}else{_classPrivateFieldSet(this,_elements,[element.serialize()]);}
_classPrivateFieldSet(this,_elements,_classPrivateFieldGet(this,_elements).filter(el=>!!el));if(_classPrivateFieldGet(this,_elements).length===0){_classPrivateFieldSet(this,_elements,null);}}
paste(){return _classPrivateFieldGet(this,_elements);}
isEmpty(){return _classPrivateFieldGet(this,_elements)===null;}
destroy(){_classPrivateFieldSet(this,_elements,null);}}
class ColorManager{get _colors(){const colors=new Map([["CanvasText",null],["Canvas",null]]);(0,_display_utils.getColorValues)(colors);return(0,_util.shadow)(this,"_colors",colors);}
convert(color){const rgb=(0,_display_utils.getRGB)(color);if(!window.matchMedia("(forced-colors: active)").matches){return rgb;}
for(const[name,RGB]of this._colors){if(RGB.every((x,i)=>x===rgb[i])){return ColorManager._colorsMapping.get(name);}}
return rgb;}
getHexCode(name){const rgb=this._colors.get(name);if(!rgb){return name;}
return _util.Util.makeHexColor(...rgb);}}
exports.ColorManager=ColorManager;_defineProperty(ColorManager,"_colorsMapping",new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]]));var _activeEditor=new WeakMap();var _allEditors=new WeakMap();var _allLayers=new WeakMap();var _clipboardManager=new WeakMap();var _commandManager=new WeakMap();var _currentPageIndex=new WeakMap();var _editorTypes=new WeakMap();var _eventBus=new WeakMap();var _idManager=new WeakMap();var _isEnabled=new WeakMap();var _mode=new WeakMap();var _selectedEditors=new WeakMap();var _boundKeydown=new WeakMap();var _boundOnEditingAction=new WeakMap();var _boundOnPageChanging=new WeakMap();var _previousStates=new WeakMap();var _container=new WeakMap();var _addKeyboardManager=new WeakSet();var _removeKeyboardManager=new WeakSet();var _dispatchUpdateStates=new WeakSet();var _dispatchUpdateUI=new WeakSet();var _enableAll=new WeakSet();var _disableAll=new WeakSet();var _addEditorToLayer=new WeakSet();var _isEmpty=new WeakSet();var _selectEditors=new WeakSet();class AnnotationEditorUIManager{constructor(container,eventBus){_classPrivateMethodInitSpec(this,_selectEditors);_classPrivateMethodInitSpec(this,_isEmpty);_classPrivateMethodInitSpec(this,_addEditorToLayer);_classPrivateMethodInitSpec(this,_disableAll);_classPrivateMethodInitSpec(this,_enableAll);_classPrivateMethodInitSpec(this,_dispatchUpdateUI);_classPrivateMethodInitSpec(this,_dispatchUpdateStates);_classPrivateMethodInitSpec(this,_removeKeyboardManager);_classPrivateMethodInitSpec(this,_addKeyboardManager);_classPrivateFieldInitSpec(this,_activeEditor,{writable:true,value:null});_classPrivateFieldInitSpec(this,_allEditors,{writable:true,value:new Map()});_classPrivateFieldInitSpec(this,_allLayers,{writable:true,value:new Map()});_classPrivateFieldInitSpec(this,_clipboardManager,{writable:true,value:new ClipboardManager()});_classPrivateFieldInitSpec(this,_commandManager,{writable:true,value:new CommandManager()});_classPrivateFieldInitSpec(this,_currentPageIndex,{writable:true,value:0});_classPrivateFieldInitSpec(this,_editorTypes,{writable:true,value:null});_classPrivateFieldInitSpec(this,_eventBus,{writable:true,value:null});_classPrivateFieldInitSpec(this,_idManager,{writable:true,value:new IdManager()});_classPrivateFieldInitSpec(this,_isEnabled,{writable:true,value:false});_classPrivateFieldInitSpec(this,_mode,{writable:true,value:_util.AnnotationEditorType.NONE});_classPrivateFieldInitSpec(this,_selectedEditors,{writable:true,value:new Set()});_classPrivateFieldInitSpec(this,_boundKeydown,{writable:true,value:this.keydown.bind(this)});_classPrivateFieldInitSpec(this,_boundOnEditingAction,{writable:true,value:this.onEditingAction.bind(this)});_classPrivateFieldInitSpec(this,_boundOnPageChanging,{writable:true,value:this.onPageChanging.bind(this)});_classPrivateFieldInitSpec(this,_previousStates,{writable:true,value:{isEditing:false,isEmpty:true,hasEmptyClipboard:true,hasSomethingToUndo:false,hasSomethingToRedo:false,hasSelectedEditor:false}});_classPrivateFieldInitSpec(this,_container,{writable:true,value:null});_classPrivateFieldSet(this,_container,container);_classPrivateFieldSet(this,_eventBus,eventBus);_classPrivateFieldGet(this,_eventBus)._on("editingaction",_classPrivateFieldGet(this,_boundOnEditingAction));_classPrivateFieldGet(this,_eventBus)._on("pagechanging",_classPrivateFieldGet(this,_boundOnPageChanging));}
destroy(){_classPrivateMethodGet(this,_removeKeyboardManager,_removeKeyboardManager2).call(this);_classPrivateFieldGet(this,_eventBus)._off("editingaction",_classPrivateFieldGet(this,_boundOnEditingAction));_classPrivateFieldGet(this,_eventBus)._off("pagechanging",_classPrivateFieldGet(this,_boundOnPageChanging));for(const layer of _classPrivateFieldGet(this,_allLayers).values()){layer.destroy();}
_classPrivateFieldGet(this,_allLayers).clear();_classPrivateFieldGet(this,_allEditors).clear();_classPrivateFieldSet(this,_activeEditor,null);_classPrivateFieldGet(this,_selectedEditors).clear();_classPrivateFieldGet(this,_clipboardManager).destroy();_classPrivateFieldGet(this,_commandManager).destroy();}
onPageChanging(_ref2){let{pageNumber}=_ref2;_classPrivateFieldSet(this,_currentPageIndex,pageNumber-1);}
focusMainContainer(){_classPrivateFieldGet(this,_container).focus();}
keydown(event){var _this$getActive;if(!((_this$getActive=this.getActive())!==null&&_this$getActive!==void 0&&_this$getActive.shouldGetKeyboardEvents())){AnnotationEditorUIManager._keyboardManager.exec(this,event);}}
onEditingAction(details){if(["undo","redo","cut","copy","paste","delete","selectAll"].includes(details.name)){this[details.name]();}}
setEditingState(isEditing){if(isEditing){_classPrivateMethodGet(this,_addKeyboardManager,_addKeyboardManager2).call(this);_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{isEditing:_classPrivateFieldGet(this,_mode)!==_util.AnnotationEditorType.NONE,isEmpty:_classPrivateMethodGet(this,_isEmpty,_isEmpty2).call(this),hasSomethingToUndo:_classPrivateFieldGet(this,_commandManager).hasSomethingToUndo(),hasSomethingToRedo:_classPrivateFieldGet(this,_commandManager).hasSomethingToRedo(),hasSelectedEditor:false,hasEmptyClipboard:_classPrivateFieldGet(this,_clipboardManager).isEmpty()});}else{_classPrivateMethodGet(this,_removeKeyboardManager,_removeKeyboardManager2).call(this);_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{isEditing:false});}}
registerEditorTypes(types){_classPrivateFieldSet(this,_editorTypes,types);for(const editorType of _classPrivateFieldGet(this,_editorTypes)){_classPrivateMethodGet(this,_dispatchUpdateUI,_dispatchUpdateUI2).call(this,editorType.defaultPropertiesToUpdate);}}
getId(){return _classPrivateFieldGet(this,_idManager).getId();}
addLayer(layer){_classPrivateFieldGet(this,_allLayers).set(layer.pageIndex,layer);if(_classPrivateFieldGet(this,_isEnabled)){layer.enable();}else{layer.disable();}}
removeLayer(layer){_classPrivateFieldGet(this,_allLayers).delete(layer.pageIndex);}
updateMode(mode){_classPrivateFieldSet(this,_mode,mode);if(mode===_util.AnnotationEditorType.NONE){this.setEditingState(false);_classPrivateMethodGet(this,_disableAll,_disableAll2).call(this);}else{this.setEditingState(true);_classPrivateMethodGet(this,_enableAll,_enableAll2).call(this);for(const layer of _classPrivateFieldGet(this,_allLayers).values()){layer.updateMode(mode);}}}
updateToolbar(mode){if(mode===_classPrivateFieldGet(this,_mode)){return;}
_classPrivateFieldGet(this,_eventBus).dispatch("switchannotationeditormode",{source:this,mode});}
updateParams(type,value){for(const editor of _classPrivateFieldGet(this,_selectedEditors)){editor.updateParams(type,value);}
for(const editorType of _classPrivateFieldGet(this,_editorTypes)){editorType.updateDefaultParams(type,value);}}
getEditors(pageIndex){const editors=[];for(const editor of _classPrivateFieldGet(this,_allEditors).values()){if(editor.pageIndex===pageIndex){editors.push(editor);}}
return editors;}
getEditor(id){return _classPrivateFieldGet(this,_allEditors).get(id);}
addEditor(editor){_classPrivateFieldGet(this,_allEditors).set(editor.id,editor);}
removeEditor(editor){_classPrivateFieldGet(this,_allEditors).delete(editor.id);this.unselect(editor);}
setActiveEditor(editor){if(_classPrivateFieldGet(this,_activeEditor)===editor){return;}
_classPrivateFieldSet(this,_activeEditor,editor);if(editor){_classPrivateMethodGet(this,_dispatchUpdateUI,_dispatchUpdateUI2).call(this,editor.propertiesToUpdate);}}
toggleSelected(editor){if(_classPrivateFieldGet(this,_selectedEditors).has(editor)){_classPrivateFieldGet(this,_selectedEditors).delete(editor);editor.unselect();_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{hasSelectedEditor:this.hasSelection});return;}
_classPrivateFieldGet(this,_selectedEditors).add(editor);editor.select();_classPrivateMethodGet(this,_dispatchUpdateUI,_dispatchUpdateUI2).call(this,editor.propertiesToUpdate);_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{hasSelectedEditor:true});}
setSelected(editor){for(const ed of _classPrivateFieldGet(this,_selectedEditors)){if(ed!==editor){ed.unselect();}}
_classPrivateFieldGet(this,_selectedEditors).clear();_classPrivateFieldGet(this,_selectedEditors).add(editor);editor.select();_classPrivateMethodGet(this,_dispatchUpdateUI,_dispatchUpdateUI2).call(this,editor.propertiesToUpdate);_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{hasSelectedEditor:true});}
isSelected(editor){return _classPrivateFieldGet(this,_selectedEditors).has(editor);}
unselect(editor){editor.unselect();_classPrivateFieldGet(this,_selectedEditors).delete(editor);_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{hasSelectedEditor:this.hasSelection});}
get hasSelection(){return _classPrivateFieldGet(this,_selectedEditors).size!==0;}
undo(){_classPrivateFieldGet(this,_commandManager).undo();_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{hasSomethingToUndo:_classPrivateFieldGet(this,_commandManager).hasSomethingToUndo(),hasSomethingToRedo:true,isEmpty:_classPrivateMethodGet(this,_isEmpty,_isEmpty2).call(this)});}
redo(){_classPrivateFieldGet(this,_commandManager).redo();_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{hasSomethingToUndo:true,hasSomethingToRedo:_classPrivateFieldGet(this,_commandManager).hasSomethingToRedo(),isEmpty:_classPrivateMethodGet(this,_isEmpty,_isEmpty2).call(this)});}
addCommands(params){_classPrivateFieldGet(this,_commandManager).add(params);_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{hasSomethingToUndo:true,hasSomethingToRedo:false,isEmpty:_classPrivateMethodGet(this,_isEmpty,_isEmpty2).call(this)});}
delete(){if(_classPrivateFieldGet(this,_activeEditor)){_classPrivateFieldGet(this,_activeEditor).commitOrRemove();}
if(!this.hasSelection){return;}
const editors=[..._classPrivateFieldGet(this,_selectedEditors)];const cmd=()=>{for(const editor of editors){editor.remove();}};const undo=()=>{for(const editor of editors){_classPrivateMethodGet(this,_addEditorToLayer,_addEditorToLayer2).call(this,editor);}};this.addCommands({cmd,undo,mustExec:true});}
copy(){if(_classPrivateFieldGet(this,_activeEditor)){_classPrivateFieldGet(this,_activeEditor).commitOrRemove();}
if(this.hasSelection){const editors=[];for(const editor of _classPrivateFieldGet(this,_selectedEditors)){if(!editor.isEmpty()){editors.push(editor);}}
if(editors.length===0){return;}
_classPrivateFieldGet(this,_clipboardManager).copy(editors);_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{hasEmptyClipboard:false});}}
cut(){this.copy();this.delete();}
paste(){if(_classPrivateFieldGet(this,_clipboardManager).isEmpty()){return;}
this.unselectAll();const layer=_classPrivateFieldGet(this,_allLayers).get(_classPrivateFieldGet(this,_currentPageIndex));const newEditors=_classPrivateFieldGet(this,_clipboardManager).paste().map(data=>layer.deserialize(data));const cmd=()=>{for(const editor of newEditors){_classPrivateMethodGet(this,_addEditorToLayer,_addEditorToLayer2).call(this,editor);}
_classPrivateMethodGet(this,_selectEditors,_selectEditors2).call(this,newEditors);};const undo=()=>{for(const editor of newEditors){editor.remove();}};this.addCommands({cmd,undo,mustExec:true});}
selectAll(){for(const editor of _classPrivateFieldGet(this,_selectedEditors)){editor.commit();}
_classPrivateMethodGet(this,_selectEditors,_selectEditors2).call(this,_classPrivateFieldGet(this,_allEditors).values());}
unselectAll(){if(_classPrivateFieldGet(this,_activeEditor)){_classPrivateFieldGet(this,_activeEditor).commitOrRemove();return;}
if(_classPrivateMethodGet(this,_selectEditors,_selectEditors2).size===0){return;}
for(const editor of _classPrivateFieldGet(this,_selectedEditors)){editor.unselect();}
_classPrivateFieldGet(this,_selectedEditors).clear();_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{hasSelectedEditor:false});}
isActive(editor){return _classPrivateFieldGet(this,_activeEditor)===editor;}
getActive(){return _classPrivateFieldGet(this,_activeEditor);}
getMode(){return _classPrivateFieldGet(this,_mode);}}
exports.AnnotationEditorUIManager=AnnotationEditorUIManager;function _addKeyboardManager2(){_classPrivateFieldGet(this,_container).addEventListener("keydown",_classPrivateFieldGet(this,_boundKeydown));}
function _removeKeyboardManager2(){_classPrivateFieldGet(this,_container).removeEventListener("keydown",_classPrivateFieldGet(this,_boundKeydown));}
function _dispatchUpdateStates2(details){const hasChanged=Object.entries(details).some(_ref3=>{let[key,value]=_ref3;return _classPrivateFieldGet(this,_previousStates)[key]!==value;});if(hasChanged){_classPrivateFieldGet(this,_eventBus).dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(_classPrivateFieldGet(this,_previousStates),details)});}}
function _dispatchUpdateUI2(details){_classPrivateFieldGet(this,_eventBus).dispatch("annotationeditorparamschanged",{source:this,details});}
function _enableAll2(){if(!_classPrivateFieldGet(this,_isEnabled)){_classPrivateFieldSet(this,_isEnabled,true);for(const layer of _classPrivateFieldGet(this,_allLayers).values()){layer.enable();}}}
function _disableAll2(){this.unselectAll();if(_classPrivateFieldGet(this,_isEnabled)){_classPrivateFieldSet(this,_isEnabled,false);for(const layer of _classPrivateFieldGet(this,_allLayers).values()){layer.disable();}}}
function _addEditorToLayer2(editor){const layer=_classPrivateFieldGet(this,_allLayers).get(editor.pageIndex);if(layer){layer.addOrRebuild(editor);}else{this.addEditor(editor);}}
function _isEmpty2(){if(_classPrivateFieldGet(this,_allEditors).size===0){return true;}
if(_classPrivateFieldGet(this,_allEditors).size===1){for(const editor of _classPrivateFieldGet(this,_allEditors).values()){return editor.isEmpty();}}
return false;}
function _selectEditors2(editors){_classPrivateFieldGet(this,_selectedEditors).clear();for(const editor of editors){if(editor.isEmpty()){continue;}
_classPrivateFieldGet(this,_selectedEditors).add(editor);editor.select();}
_classPrivateMethodGet(this,_dispatchUpdateStates,_dispatchUpdateStates2).call(this,{hasSelectedEditor:true});}
_defineProperty(AnnotationEditorUIManager,"_keyboardManager",new KeyboardManager([[["ctrl+a","mac+meta+a"],AnnotationEditorUIManager.prototype.selectAll],[["ctrl+c","mac+meta+c"],AnnotationEditorUIManager.prototype.copy],[["ctrl+v","mac+meta+v"],AnnotationEditorUIManager.prototype.paste],[["ctrl+x","mac+meta+x"],AnnotationEditorUIManager.prototype.cut],[["ctrl+z","mac+meta+z"],AnnotationEditorUIManager.prototype.undo],[["ctrl+y","ctrl+shift+Z","mac+meta+shift+Z"],AnnotationEditorUIManager.prototype.redo],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete"],AnnotationEditorUIManager.prototype.delete],[["Escape","mac+Escape"],AnnotationEditorUIManager.prototype.unselectAll]]));}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.StatTimer=exports.RenderingCancelledException=exports.PixelsPerInch=exports.PageViewport=exports.PDFDateString=exports.DOMStandardFontDataFactory=exports.DOMSVGFactory=exports.DOMCanvasFactory=exports.DOMCMapReaderFactory=exports.AnnotationPrefix=void 0;exports.deprecated=deprecated;exports.getColorValues=getColorValues;exports.getCurrentTransform=getCurrentTransform;exports.getCurrentTransformInverse=getCurrentTransformInverse;exports.getFilenameFromUrl=getFilenameFromUrl;exports.getPdfFilenameFromUrl=getPdfFilenameFromUrl;exports.getRGB=getRGB;exports.getXfaPageViewport=getXfaPageViewport;exports.isDataScheme=isDataScheme;exports.isPdfFile=isPdfFile;exports.isValidFetchUrl=isValidFetchUrl;exports.loadScript=loadScript;var _base_factory=__w_pdfjs_require__(134);var _util=__w_pdfjs_require__(1);function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}
const SVG_NS="http://www.w3.org/2000/svg";const AnnotationPrefix="pdfjs_internal_id_";exports.AnnotationPrefix=AnnotationPrefix;class PixelsPerInch{}
exports.PixelsPerInch=PixelsPerInch;_defineProperty(PixelsPerInch,"CSS",96.0);_defineProperty(PixelsPerInch,"PDF",72.0);_defineProperty(PixelsPerInch,"PDF_TO_CSS_UNITS",PixelsPerInch.CSS/PixelsPerInch.PDF);class DOMCanvasFactory extends _base_factory.BaseCanvasFactory{constructor(){let{ownerDocument=globalThis.document}=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};super();this._document=ownerDocument;}
_createCanvas(width,height){const canvas=this._document.createElement("canvas");canvas.width=width;canvas.height=height;return canvas;}}
exports.DOMCanvasFactory=DOMCanvasFactory;async function fetchData(url){let asTypedArray=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(isValidFetchUrl(url,document.baseURI)){const response=await fetch(url);if(!response.ok){throw new Error(response.statusText);}
return asTypedArray?new Uint8Array(await response.arrayBuffer()):(0,_util.stringToBytes)(await response.text());}
return new Promise((resolve,reject)=>{const request=new XMLHttpRequest();request.open("GET",url,true);if(asTypedArray){request.responseType="arraybuffer";}
request.onreadystatechange=()=>{if(request.readyState!==XMLHttpRequest.DONE){return;}
if(request.status===200||request.status===0){let data;if(asTypedArray&&request.response){data=new Uint8Array(request.response);}else if(!asTypedArray&&request.responseText){data=(0,_util.stringToBytes)(request.responseText);}
if(data){resolve(data);return;}}
reject(new Error(request.statusText));};request.send(null);});}
class DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory{_fetchData(url,compressionType){return fetchData(url,this.isCompressed).then(data=>{return{cMapData:data,compressionType};});}}
exports.DOMCMapReaderFactory=DOMCMapReaderFactory;class DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory{_fetchData(url){return fetchData(url,true);}}
exports.DOMStandardFontDataFactory=DOMStandardFontDataFactory;class DOMSVGFactory extends _base_factory.BaseSVGFactory{_createSVG(type){return document.createElementNS(SVG_NS,type);}}
exports.DOMSVGFactory=DOMSVGFactory;class PageViewport{constructor(_ref){let{viewBox,scale,rotation,offsetX=0,offsetY=0,dontFlip=false}=_ref;this.viewBox=viewBox;this.scale=scale;this.rotation=rotation;this.offsetX=offsetX;this.offsetY=offsetY;const centerX=(viewBox[2]+viewBox[0])/2;const centerY=(viewBox[3]+viewBox[1])/2;let rotateA,rotateB,rotateC,rotateD;rotation%=360;if(rotation<0){rotation+=360;}
switch(rotation){case 180:rotateA=-1;rotateB=0;rotateC=0;rotateD=1;break;case 90:rotateA=0;rotateB=1;rotateC=1;rotateD=0;break;case 270:rotateA=0;rotateB=-1;rotateC=-1;rotateD=0;break;case 0:rotateA=1;rotateB=0;rotateC=0;rotateD=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.");}
if(dontFlip){rotateC=-rotateC;rotateD=-rotateD;}
let offsetCanvasX,offsetCanvasY;let width,height;if(rotateA===0){offsetCanvasX=Math.abs(centerY-viewBox[1])*scale+offsetX;offsetCanvasY=Math.abs(centerX-viewBox[0])*scale+offsetY;width=Math.abs(viewBox[3]-viewBox[1])*scale;height=Math.abs(viewBox[2]-viewBox[0])*scale;}else{offsetCanvasX=Math.abs(centerX-viewBox[0])*scale+offsetX;offsetCanvasY=Math.abs(centerY-viewBox[1])*scale+offsetY;width=Math.abs(viewBox[2]-viewBox[0])*scale;height=Math.abs(viewBox[3]-viewBox[1])*scale;}
this.transform=[rotateA*scale,rotateB*scale,rotateC*scale,rotateD*scale,offsetCanvasX-rotateA*scale*centerX-rotateC*scale*centerY,offsetCanvasY-rotateB*scale*centerX-rotateD*scale*centerY];this.width=width;this.height=height;}
clone(){let{scale=this.scale,rotation=this.rotation,offsetX=this.offsetX,offsetY=this.offsetY,dontFlip=false}=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return new PageViewport({viewBox:this.viewBox.slice(),scale,rotation,offsetX,offsetY,dontFlip});}
convertToViewportPoint(x,y){return _util.Util.applyTransform([x,y],this.transform);}
convertToViewportRectangle(rect){const topLeft=_util.Util.applyTransform([rect[0],rect[1]],this.transform);const bottomRight=_util.Util.applyTransform([rect[2],rect[3]],this.transform);return[topLeft[0],topLeft[1],bottomRight[0],bottomRight[1]];}
convertToPdfPoint(x,y){return _util.Util.applyInverseTransform([x,y],this.transform);}}
exports.PageViewport=PageViewport;class RenderingCancelledException extends _util.BaseException{constructor(msg,type){super(msg,"RenderingCancelledException");this.type=type;}}
exports.RenderingCancelledException=RenderingCancelledException;function isDataScheme(url){const ii=url.length;let i=0;while(i<ii&&url[i].trim()===""){i++;}
return url.substring(i,i+5).toLowerCase()==="data:";}
function isPdfFile(filename){return typeof filename==="string"&&/\.pdf$/i.test(filename);}
function getFilenameFromUrl(url){const anchor=url.indexOf("#");const query=url.indexOf("?");const end=Math.min(anchor>0?anchor:url.length,query>0?query:url.length);return url.substring(url.lastIndexOf("/",end)+1,end);}
function getPdfFilenameFromUrl(url){let defaultFilename=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"document.pdf";if(typeof url!=="string"){return defaultFilename;}
if(isDataScheme(url)){(0,_util.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.');return defaultFilename;}
const reURI=/^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/;const reFilename=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i;const splitURI=reURI.exec(url);let suggestedFilename=reFilename.exec(splitURI[1])||reFilename.exec(splitURI[2])||reFilename.exec(splitURI[3]);if(suggestedFilename){suggestedFilename=suggestedFilename[0];if(suggestedFilename.includes("%")){try{suggestedFilename=reFilename.exec(decodeURIComponent(suggestedFilename))[0];}catch(ex){}}}
return suggestedFilename||defaultFilename;}
class StatTimer{constructor(){this.started=Object.create(null);this.times=[];}
time(name){if(name in this.started){(0,_util.warn)(`Timer is already running for ${name}`);}
this.started[name]=Date.now();}
timeEnd(name){if(!(name in this.started)){(0,_util.warn)(`Timer has not been started for ${name}`);}
this.times.push({name,start:this.started[name],end:Date.now()});delete this.started[name];}
toString(){const outBuf=[];let longest=0;for(const time of this.times){const name=time.name;if(name.length>longest){longest=name.length;}}
for(const time of this.times){const duration=time.end-time.start;outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\n`);}
return outBuf.join("");}}
exports.StatTimer=StatTimer;function isValidFetchUrl(url,baseUrl){try{const{protocol}=baseUrl?new URL(url,baseUrl):new URL(url);return protocol==="http:"||protocol==="https:";}catch(ex){return false;}}
function loadScript(src){let removeScriptElement=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;return new Promise((resolve,reject)=>{const script=document.createElement("script");script.src=src;script.onload=function(evt){if(removeScriptElement){script.remove();}
resolve(evt);};script.onerror=function(){reject(new Error(`Cannot load script at: ${script.src}`));};(document.head||document.documentElement).append(script);});}
function deprecated(details){console.log("Deprecated API usage: "+details);}
let pdfDateStringRegex;class PDFDateString{static toDateObject(input){if(!input||typeof input!=="string"){return null;}
if(!pdfDateStringRegex){pdfDateStringRegex=new RegExp("^D:"+"(\\d{4})"+"(\\d{2})?"+"(\\d{2})?"+"(\\d{2})?"+"(\\d{2})?"+"(\\d{2})?"+"([Z|+|-])?"+"(\\d{2})?"+"'?"+"(\\d{2})?"+"'?");}
const matches=pdfDateStringRegex.exec(input);if(!matches){return null;}
const year=parseInt(matches[1],10);let month=parseInt(matches[2],10);month=month>=1&&month<=12?month-1:0;let day=parseInt(matches[3],10);day=day>=1&&day<=31?day:1;let hour=parseInt(matches[4],10);hour=hour>=0&&hour<=23?hour:0;let minute=parseInt(matches[5],10);minute=minute>=0&&minute<=59?minute:0;let second=parseInt(matches[6],10);second=second>=0&&second<=59?second:0;const universalTimeRelation=matches[7]||"Z";let offsetHour=parseInt(matches[8],10);offsetHour=offsetHour>=0&&offsetHour<=23?offsetHour:0;let offsetMinute=parseInt(matches[9],10)||0;offsetMinute=offsetMinute>=0&&offsetMinute<=59?offsetMinute:0;if(universalTimeRelation==="-"){hour+=offsetHour;minute+=offsetMinute;}else if(universalTimeRelation==="+"){hour-=offsetHour;minute-=offsetMinute;}
return new Date(Date.UTC(year,month,day,hour,minute,second));}}
exports.PDFDateString=PDFDateString;function getXfaPageViewport(xfaPage,_ref2){let{scale=1,rotation=0}=_ref2;const{width,height}=xfaPage.attributes.style;const viewBox=[0,0,parseInt(width),parseInt(height)];return new PageViewport({viewBox,scale,rotation});}
function getRGB(color){if(color.startsWith("#")){const colorRGB=parseInt(color.slice(1),16);return[(colorRGB&0xff0000)>>16,(colorRGB&0x00ff00)>>8,colorRGB&0x0000ff];}
if(color.startsWith("rgb(")){return color.slice(4,-1).split(",").map(x=>parseInt(x));}
if(color.startsWith("rgba(")){return color.slice(5,-1).split(",").map(x=>parseInt(x)).slice(0,3);}
(0,_util.warn)(`Not a valid color format: "${color}"`);return[0,0,0];}
function getColorValues(colors){const span=document.createElement("span");span.style.visibility="hidden";document.body.append(span);for(const name of colors.keys()){span.style.color=name;const computedColor=window.getComputedStyle(span).color;colors.set(name,getRGB(computedColor));}
span.remove();}
function getCurrentTransform(ctx){const{a,b,c,d,e,f}=ctx.getTransform();return[a,b,c,d,e,f];}
function getCurrentTransformInverse(ctx){const{a,b,c,d,e,f}=ctx.getTransform().invertSelf();return[a,b,c,d,e,f];}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.BaseStandardFontDataFactory=exports.BaseSVGFactory=exports.BaseCanvasFactory=exports.BaseCMapReaderFactory=void 0;var _util=__w_pdfjs_require__(1);class BaseCanvasFactory{constructor(){if(this.constructor===BaseCanvasFactory){(0,_util.unreachable)("Cannot initialize BaseCanvasFactory.");}}
create(width,height){if(width<=0||height<=0){throw new Error("Invalid canvas size");}
const canvas=this._createCanvas(width,height);return{canvas,context:canvas.getContext("2d")};}
reset(canvasAndContext,width,height){if(!canvasAndContext.canvas){throw new Error("Canvas is not specified");}
if(width<=0||height<=0){throw new Error("Invalid canvas size");}
canvasAndContext.canvas.width=width;canvasAndContext.canvas.height=height;}
destroy(canvasAndContext){if(!canvasAndContext.canvas){throw new Error("Canvas is not specified");}
canvasAndContext.canvas.width=0;canvasAndContext.canvas.height=0;canvasAndContext.canvas=null;canvasAndContext.context=null;}
_createCanvas(width,height){(0,_util.unreachable)("Abstract method `_createCanvas` called.");}}
exports.BaseCanvasFactory=BaseCanvasFactory;class BaseCMapReaderFactory{constructor(_ref){let{baseUrl=null,isCompressed=false}=_ref;if(this.constructor===BaseCMapReaderFactory){(0,_util.unreachable)("Cannot initialize BaseCMapReaderFactory.");}
this.baseUrl=baseUrl;this.isCompressed=isCompressed;}
async fetch(_ref2){let{name}=_ref2;if(!this.baseUrl){throw new Error('The CMap "baseUrl" parameter must be specified, ensure that '+'the "cMapUrl" and "cMapPacked" API parameters are provided.');}
if(!name){throw new Error("CMap name must be specified.");}
const url=this.baseUrl+name+(this.isCompressed?".bcmap":"");const compressionType=this.isCompressed?_util.CMapCompressionType.BINARY:_util.CMapCompressionType.NONE;return this._fetchData(url,compressionType).catch(reason=>{throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}CMap at: ${url}`);});}
_fetchData(url,compressionType){(0,_util.unreachable)("Abstract method `_fetchData` called.");}}
exports.BaseCMapReaderFactory=BaseCMapReaderFactory;class BaseStandardFontDataFactory{constructor(_ref3){let{baseUrl=null}=_ref3;if(this.constructor===BaseStandardFontDataFactory){(0,_util.unreachable)("Cannot initialize BaseStandardFontDataFactory.");}
this.baseUrl=baseUrl;}
async fetch(_ref4){let{filename}=_ref4;if(!this.baseUrl){throw new Error('The standard font "baseUrl" parameter must be specified, ensure that '+'the "standardFontDataUrl" API parameter is provided.');}
if(!filename){throw new Error("Font filename must be specified.");}
const url=`${this.baseUrl}${filename}`;return this._fetchData(url).catch(reason=>{throw new Error(`Unable to load font data at: ${url}`);});}
_fetchData(url){(0,_util.unreachable)("Abstract method `_fetchData` called.");}}
exports.BaseStandardFontDataFactory=BaseStandardFontDataFactory;class BaseSVGFactory{constructor(){if(this.constructor===BaseSVGFactory){(0,_util.unreachable)("Cannot initialize BaseSVGFactory.");}}
create(width,height){let skipDimensions=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(width<=0||height<=0){throw new Error("Invalid SVG dimensions");}
const svg=this._createSVG("svg:svg");svg.setAttribute("version","1.1");if(!skipDimensions){svg.setAttribute("width",`${width}px`);svg.setAttribute("height",`${height}px`);}
svg.setAttribute("preserveAspectRatio","none");svg.setAttribute("viewBox",`0 0 ${width} ${height}`);return svg;}
createElement(type){if(typeof type!=="string"){throw new Error("Invalid SVG element type");}
return this._createSVG(type);}
_createSVG(type){(0,_util.unreachable)("Abstract method `_createSVG` called.");}}
exports.BaseSVGFactory=BaseSVGFactory;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.MurmurHash3_64=void 0;var _util=__w_pdfjs_require__(1);const SEED=0xc3d2e1f0;const MASK_HIGH=0xffff0000;const MASK_LOW=0xffff;class MurmurHash3_64{constructor(seed){this.h1=seed?seed&0xffffffff:SEED;this.h2=seed?seed&0xffffffff:SEED;}
update(input){let data,length;if(typeof input==="string"){data=new Uint8Array(input.length*2);length=0;for(let i=0,ii=input.length;i<ii;i++){const code=input.charCodeAt(i);if(code<=0xff){data[length++]=code;}else{data[length++]=code>>>8;data[length++]=code&0xff;}}}else if((0,_util.isArrayBuffer)(input)){data=input.slice();length=data.byteLength;}else{throw new Error("Wrong data format in MurmurHash3_64_update. "+"Input must be a string or array.");}
const blockCounts=length>>2;const tailLength=length-blockCounts*4;const dataUint32=new Uint32Array(data.buffer,0,blockCounts);let k1=0,k2=0;let h1=this.h1,h2=this.h2;const C1=0xcc9e2d51,C2=0x1b873593;const C1_LOW=C1&MASK_LOW,C2_LOW=C2&MASK_LOW;for(let i=0;i<blockCounts;i++){if(i&1){k1=dataUint32[i];k1=k1*C1&MASK_HIGH|k1*C1_LOW&MASK_LOW;k1=k1<<15|k1>>>17;k1=k1*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW;h1^=k1;h1=h1<<13|h1>>>19;h1=h1*5+0xe6546b64;}else{k2=dataUint32[i];k2=k2*C1&MASK_HIGH|k2*C1_LOW&MASK_LOW;k2=k2<<15|k2>>>17;k2=k2*C2&MASK_HIGH|k2*C2_LOW&MASK_LOW;h2^=k2;h2=h2<<13|h2>>>19;h2=h2*5+0xe6546b64;}}
k1=0;switch(tailLength){case 3:k1^=data[blockCounts*4+2]<<16;case 2:k1^=data[blockCounts*4+1]<<8;case 1:k1^=data[blockCounts*4];k1=k1*C1&MASK_HIGH|k1*C1_LOW&MASK_LOW;k1=k1<<15|k1>>>17;k1=k1*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW;if(blockCounts&1){h1^=k1;}else{h2^=k1;}}
this.h1=h1;this.h2=h2;}
hexdigest(){let h1=this.h1,h2=this.h2;h1^=h2>>>1;h1=h1*0xed558ccd&MASK_HIGH|h1*0x8ccd&MASK_LOW;h2=h2*0xff51afd7&MASK_HIGH|((h2<<16|h1>>>16)*0xafd7ed55&MASK_HIGH)>>>16;h1^=h2>>>1;h1=h1*0x1a85ec53&MASK_HIGH|h1*0xec53&MASK_LOW;h2=h2*0xc4ceb9fe&MASK_HIGH|((h2<<16|h1>>>16)*0xb9fe1a85&MASK_HIGH)>>>16;h1^=h2>>>1;const hex1=(h1>>>0).toString(16),hex2=(h2>>>0).toString(16);return hex1.padStart(8,"0")+hex2.padStart(8,"0");}}
exports.MurmurHash3_64=MurmurHash3_64;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.FontLoader=exports.FontFaceObject=void 0;var _util=__w_pdfjs_require__(1);class BaseFontLoader{constructor(_ref){let{docId,onUnsupportedFeature,ownerDocument=globalThis.document,styleElement=null}=_ref;if(this.constructor===BaseFontLoader){(0,_util.unreachable)("Cannot initialize BaseFontLoader.");}
this.docId=docId;this._onUnsupportedFeature=onUnsupportedFeature;this._document=ownerDocument;this.nativeFontFaces=[];this.styleElement=null;}
addNativeFontFace(nativeFontFace){this.nativeFontFaces.push(nativeFontFace);this._document.fonts.add(nativeFontFace);}
insertRule(rule){let styleElement=this.styleElement;if(!styleElement){styleElement=this.styleElement=this._document.createElement("style");styleElement.id=`PDFJS_FONT_STYLE_TAG_${this.docId}`;this._document.documentElement.getElementsByTagName("head")[0].append(styleElement);}
const styleSheet=styleElement.sheet;styleSheet.insertRule(rule,styleSheet.cssRules.length);}
clear(){for(const nativeFontFace of this.nativeFontFaces){this._document.fonts.delete(nativeFontFace);}
this.nativeFontFaces.length=0;if(this.styleElement){this.styleElement.remove();this.styleElement=null;}}
async bind(font){if(font.attached||font.missingFile){return;}
font.attached=true;if(this.isFontLoadingAPISupported){const nativeFontFace=font.createNativeFontFace();if(nativeFontFace){this.addNativeFontFace(nativeFontFace);try{await nativeFontFace.loaded;}catch(ex){this._onUnsupportedFeature({featureId:_util.UNSUPPORTED_FEATURES.errorFontLoadNative});(0,_util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);font.disableFontFace=true;throw ex;}}
return;}
const rule=font.createFontFaceRule();if(rule){this.insertRule(rule);if(this.isSyncFontLoadingSupported){return;}
await new Promise(resolve=>{const request=this._queueLoadingCallback(resolve);this._prepareFontLoadEvent([rule],[font],request);});}}
_queueLoadingCallback(callback){(0,_util.unreachable)("Abstract method `_queueLoadingCallback`.");}
get isFontLoadingAPISupported(){var _this$_document;const hasFonts=!!((_this$_document=this._document)!==null&&_this$_document!==void 0&&_this$_document.fonts);return(0,_util.shadow)(this,"isFontLoadingAPISupported",hasFonts);}
get isSyncFontLoadingSupported(){(0,_util.unreachable)("Abstract method `isSyncFontLoadingSupported`.");}
get _loadTestFont(){(0,_util.unreachable)("Abstract method `_loadTestFont`.");}
_prepareFontLoadEvent(rules,fontsToLoad,request){(0,_util.unreachable)("Abstract method `_prepareFontLoadEvent`.");}}
let FontLoader;exports.FontLoader=FontLoader;{exports.FontLoader=FontLoader=class GenericFontLoader extends BaseFontLoader{constructor(params){super(params);this.loadingContext={requests:[],nextRequestId:0};this.loadTestFontId=0;}
get isSyncFontLoadingSupported(){let supported=false;if(typeof navigator==="undefined"){supported=true;}else{const m=/Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);if((m===null||m===void 0?void 0:m[1])>=14){supported=true;}}
return(0,_util.shadow)(this,"isSyncFontLoadingSupported",supported);}
_queueLoadingCallback(callback){function completeRequest(){(0,_util.assert)(!request.done,"completeRequest() cannot be called twice.");request.done=true;while(context.requests.length>0&&context.requests[0].done){const otherRequest=context.requests.shift();setTimeout(otherRequest.callback,0);}}
const context=this.loadingContext;const request={id:`pdfjs-font-loading-${context.nextRequestId++}`,done:false,complete:completeRequest,callback};context.requests.push(request);return request;}
get _loadTestFont(){const getLoadTestFont=function(){return atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA"+"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA"+"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA"+"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1"+"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD"+"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM"+"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D"+"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA"+"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA"+"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB"+"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY"+"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA"+"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA"+"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC"+"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3"+"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj"+"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");};return(0,_util.shadow)(this,"_loadTestFont",getLoadTestFont());}
_prepareFontLoadEvent(rules,fonts,request){function int32(data,offset){return data.charCodeAt(offset)<<24|data.charCodeAt(offset+1)<<16|data.charCodeAt(offset+2)<<8|data.charCodeAt(offset+3)&0xff;}
function spliceString(s,offset,remove,insert){const chunk1=s.substring(0,offset);const chunk2=s.substring(offset+remove);return chunk1+insert+chunk2;}
let i,ii;const canvas=this._document.createElement("canvas");canvas.width=1;canvas.height=1;const ctx=canvas.getContext("2d");let called=0;function isFontReady(name,callback){called++;if(called>30){(0,_util.warn)("Load test font never loaded.");callback();return;}
ctx.font="30px "+name;ctx.fillText(".",0,20);const imageData=ctx.getImageData(0,0,1,1);if(imageData.data[3]>0){callback();return;}
setTimeout(isFontReady.bind(null,name,callback));}
const loadTestFontId=`lt${Date.now()}${this.loadTestFontId++}`;let data=this._loadTestFont;const COMMENT_OFFSET=976;data=spliceString(data,COMMENT_OFFSET,loadTestFontId.length,loadTestFontId);const CFF_CHECKSUM_OFFSET=16;const XXXX_VALUE=0x58585858;let checksum=int32(data,CFF_CHECKSUM_OFFSET);for(i=0,ii=loadTestFontId.length-3;i<ii;i+=4){checksum=checksum-XXXX_VALUE+int32(loadTestFontId,i)|0;}
if(i<loadTestFontId.length){checksum=checksum-XXXX_VALUE+int32(loadTestFontId+"XXX",i)|0;}
data=spliceString(data,CFF_CHECKSUM_OFFSET,4,(0,_util.string32)(checksum));const url=`url(data:font/opentype;base64,${btoa(data)});`;const rule=`@font-face {font-family:"${loadTestFontId}";src:${url}}`;this.insertRule(rule);const names=[];for(const font of fonts){names.push(font.loadedName);}
names.push(loadTestFontId);const div=this._document.createElement("div");div.style.visibility="hidden";div.style.width=div.style.height="10px";div.style.position="absolute";div.style.top=div.style.left="0px";for(const name of names){const span=this._document.createElement("span");span.textContent="Hi";span.style.fontFamily=name;div.append(span);}
this._document.body.append(div);isFontReady(loadTestFontId,()=>{div.remove();request.complete();});}};}
class FontFaceObject{constructor(translatedData,_ref2){let{isEvalSupported=true,disableFontFace=false,ignoreErrors=false,onUnsupportedFeature,fontRegistry=null}=_ref2;this.compiledGlyphs=Object.create(null);for(const i in translatedData){this[i]=translatedData[i];}
this.isEvalSupported=false;this.disableFontFace=disableFontFace===true;this.ignoreErrors=ignoreErrors===true;this._onUnsupportedFeature=onUnsupportedFeature;this.fontRegistry=fontRegistry;}
createNativeFontFace(){if(!this.data||this.disableFontFace){return null;}
let nativeFontFace;if(!this.cssFontInfo){nativeFontFace=new FontFace(this.loadedName,this.data,{});}else{const css={weight:this.cssFontInfo.fontWeight};if(this.cssFontInfo.italicAngle){css.style=`oblique ${this.cssFontInfo.italicAngle}deg`;}
nativeFontFace=new FontFace(this.cssFontInfo.fontFamily,this.data,css);}
if(this.fontRegistry){this.fontRegistry.registerFont(this);}
return nativeFontFace;}
createFontFaceRule(){if(!this.data||this.disableFontFace){return null;}
const data=(0,_util.bytesToString)(this.data);const url=`url(data:${this.mimetype};base64,${btoa(data)});`;let rule;if(!this.cssFontInfo){rule=`@font-face {font-family:"${this.loadedName}";src:${url}}`;}else{let css=`font-weight: ${this.cssFontInfo.fontWeight};`;if(this.cssFontInfo.italicAngle){css+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;}
rule=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${css}src:${url}}`;}
if(this.fontRegistry){this.fontRegistry.registerFont(this,url);}
return rule;}
getPathGenerator(objs,character){if(this.compiledGlyphs[character]!==undefined){return this.compiledGlyphs[character];}
let cmds;try{cmds=objs.get(this.loadedName+"_path_"+character);}catch(ex){if(!this.ignoreErrors){throw ex;}
this._onUnsupportedFeature({featureId:_util.UNSUPPORTED_FEATURES.errorFontGetPath});(0,_util.warn)(`getPathGenerator - ignoring character: "${ex}".`);return this.compiledGlyphs[character]=function(c,size){};}
if(this.isEvalSupported&&_util.FeatureTest.isEvalSupported){const jsBuf=[];for(const current of cmds){const args=current.args!==undefined?current.args.join(","):"";jsBuf.push("c.",current.cmd,"(",args,");\n");}
return this.compiledGlyphs[character]=new Function("c","size",jsBuf.join(""));}
return this.compiledGlyphs[character]=function(c,size){for(const current of cmds){if(current.cmd==="scale"){current.args=[size,-size];}
c[current.cmd].apply(c,current.args);}};}}
exports.FontFaceObject=FontFaceObject;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.CanvasGraphics=void 0;var _display_utils=__w_pdfjs_require__(133);var _util=__w_pdfjs_require__(1);var _pattern_helper=__w_pdfjs_require__(138);var _image_utils=__w_pdfjs_require__(139);var _is_node=__w_pdfjs_require__(3);function _classPrivateMethodInitSpec(obj,privateSet){_checkPrivateRedeclaration(obj,privateSet);privateSet.add(obj);}
function _checkPrivateRedeclaration(obj,privateCollection){if(privateCollection.has(obj)){throw new TypeError("Cannot initialize the same private elements twice on an object");}}
function _classPrivateMethodGet(receiver,privateSet,fn){if(!privateSet.has(receiver)){throw new TypeError("attempted to get private field on non-instance");}return fn;}
const MIN_FONT_SIZE=16;const MAX_FONT_SIZE=100;const MAX_GROUP_SIZE=4096;const EXECUTION_TIME=15;const EXECUTION_STEPS=10;const MAX_SIZE_TO_COMPILE=_is_node.isNodeJS&&typeof Path2D==="undefined"?-1:1000;const FULL_CHUNK_HEIGHT=16;function mirrorContextOperations(ctx,destCtx){if(ctx._removeMirroring){throw new Error("Context is already forwarding operations.");}
ctx.__originalSave=ctx.save;ctx.__originalRestore=ctx.restore;ctx.__originalRotate=ctx.rotate;ctx.__originalScale=ctx.scale;ctx.__originalTranslate=ctx.translate;ctx.__originalTransform=ctx.transform;ctx.__originalSetTransform=ctx.setTransform;ctx.__originalResetTransform=ctx.resetTransform;ctx.__originalClip=ctx.clip;ctx.__originalMoveTo=ctx.moveTo;ctx.__originalLineTo=ctx.lineTo;ctx.__originalBezierCurveTo=ctx.bezierCurveTo;ctx.__originalRect=ctx.rect;ctx.__originalClosePath=ctx.closePath;ctx.__originalBeginPath=ctx.beginPath;ctx._removeMirroring=()=>{ctx.save=ctx.__originalSave;ctx.restore=ctx.__originalRestore;ctx.rotate=ctx.__originalRotate;ctx.scale=ctx.__originalScale;ctx.translate=ctx.__originalTranslate;ctx.transform=ctx.__originalTransform;ctx.setTransform=ctx.__originalSetTransform;ctx.resetTransform=ctx.__originalResetTransform;ctx.clip=ctx.__originalClip;ctx.moveTo=ctx.__originalMoveTo;ctx.lineTo=ctx.__originalLineTo;ctx.bezierCurveTo=ctx.__originalBezierCurveTo;ctx.rect=ctx.__originalRect;ctx.closePath=ctx.__originalClosePath;ctx.beginPath=ctx.__originalBeginPath;delete ctx._removeMirroring;};ctx.save=function ctxSave(){destCtx.save();this.__originalSave();};ctx.restore=function ctxRestore(){destCtx.restore();this.__originalRestore();};ctx.translate=function ctxTranslate(x,y){destCtx.translate(x,y);this.__originalTranslate(x,y);};ctx.scale=function ctxScale(x,y){destCtx.scale(x,y);this.__originalScale(x,y);};ctx.transform=function ctxTransform(a,b,c,d,e,f){destCtx.transform(a,b,c,d,e,f);this.__originalTransform(a,b,c,d,e,f);};ctx.setTransform=function ctxSetTransform(a,b,c,d,e,f){destCtx.setTransform(a,b,c,d,e,f);this.__originalSetTransform(a,b,c,d,e,f);};ctx.resetTransform=function ctxResetTransform(){destCtx.resetTransform();this.__originalResetTransform();};ctx.rotate=function ctxRotate(angle){destCtx.rotate(angle);this.__originalRotate(angle);};ctx.clip=function ctxRotate(rule){destCtx.clip(rule);this.__originalClip(rule);};ctx.moveTo=function(x,y){destCtx.moveTo(x,y);this.__originalMoveTo(x,y);};ctx.lineTo=function(x,y){destCtx.lineTo(x,y);this.__originalLineTo(x,y);};ctx.bezierCurveTo=function(cp1x,cp1y,cp2x,cp2y,x,y){destCtx.bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y);this.__originalBezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y);};ctx.rect=function(x,y,width,height){destCtx.rect(x,y,width,height);this.__originalRect(x,y,width,height);};ctx.closePath=function(){destCtx.closePath();this.__originalClosePath();};ctx.beginPath=function(){destCtx.beginPath();this.__originalBeginPath();};}
class CachedCanvases{constructor(canvasFactory){this.canvasFactory=canvasFactory;this.cache=Object.create(null);}
getCanvas(id,width,height){let canvasEntry;if(this.cache[id]!==undefined){canvasEntry=this.cache[id];this.canvasFactory.reset(canvasEntry,width,height);}else{canvasEntry=this.canvasFactory.create(width,height);this.cache[id]=canvasEntry;}
return canvasEntry;}
delete(id){delete this.cache[id];}
clear(){for(const id in this.cache){const canvasEntry=this.cache[id];this.canvasFactory.destroy(canvasEntry);delete this.cache[id];}}}
function drawImageAtIntegerCoords(ctx,srcImg,srcX,srcY,srcW,srcH,destX,destY,destW,destH){const[a,b,c,d,tx,ty]=(0,_display_utils.getCurrentTransform)(ctx);if(b===0&&c===0){const tlX=destX*a+tx;const rTlX=Math.round(tlX);const tlY=destY*d+ty;const rTlY=Math.round(tlY);const brX=(destX+destW)*a+tx;const rWidth=Math.abs(Math.round(brX)-rTlX)||1;const brY=(destY+destH)*d+ty;const rHeight=Math.abs(Math.round(brY)-rTlY)||1;ctx.setTransform(Math.sign(a),0,0,Math.sign(d),rTlX,rTlY);ctx.drawImage(srcImg,srcX,srcY,srcW,srcH,0,0,rWidth,rHeight);ctx.setTransform(a,b,c,d,tx,ty);return[rWidth,rHeight];}
if(a===0&&d===0){const tlX=destY*c+tx;const rTlX=Math.round(tlX);const tlY=destX*b+ty;const rTlY=Math.round(tlY);const brX=(destY+destH)*c+tx;const rWidth=Math.abs(Math.round(brX)-rTlX)||1;const brY=(destX+destW)*b+ty;const rHeight=Math.abs(Math.round(brY)-rTlY)||1;ctx.setTransform(0,Math.sign(b),Math.sign(c),0,rTlX,rTlY);ctx.drawImage(srcImg,srcX,srcY,srcW,srcH,0,0,rHeight,rWidth);ctx.setTransform(a,b,c,d,tx,ty);return[rHeight,rWidth];}
ctx.drawImage(srcImg,srcX,srcY,srcW,srcH,destX,destY,destW,destH);const scaleX=Math.hypot(a,b);const scaleY=Math.hypot(c,d);return[scaleX*destW,scaleY*destH];}
function compileType3Glyph(imgData){const{width,height}=imgData;if(width>MAX_SIZE_TO_COMPILE||height>MAX_SIZE_TO_COMPILE){return null;}
const POINT_TO_PROCESS_LIMIT=1000;const POINT_TYPES=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]);const width1=width+1;let points=new Uint8Array(width1*(height+1));let i,j,j0;const lineSize=width+7&~7;let data=new Uint8Array(lineSize*height),pos=0;for(const elem of imgData.data){let mask=128;while(mask>0){data[pos++]=elem&mask?0:255;mask>>=1;}}
let count=0;pos=0;if(data[pos]!==0){points[0]=1;++count;}
for(j=1;j<width;j++){if(data[pos]!==data[pos+1]){points[j]=data[pos]?2:1;++count;}
pos++;}
if(data[pos]!==0){points[j]=2;++count;}
for(i=1;i<height;i++){pos=i*lineSize;j0=i*width1;if(data[pos-lineSize]!==data[pos]){points[j0]=data[pos]?1:8;++count;}
let sum=(data[pos]?4:0)+(data[pos-lineSize]?8:0);for(j=1;j<width;j++){sum=(sum>>2)+(data[pos+1]?4:0)+(data[pos-lineSize+1]?8:0);if(POINT_TYPES[sum]){points[j0+j]=POINT_TYPES[sum];++count;}
pos++;}
if(data[pos-lineSize]!==data[pos]){points[j0+j]=data[pos]?2:4;++count;}
if(count>POINT_TO_PROCESS_LIMIT){return null;}}
pos=lineSize*(height-1);j0=i*width1;if(data[pos]!==0){points[j0]=8;++count;}
for(j=1;j<width;j++){if(data[pos]!==data[pos+1]){points[j0+j]=data[pos]?4:8;++count;}
pos++;}
if(data[pos]!==0){points[j0+j]=4;++count;}
if(count>POINT_TO_PROCESS_LIMIT){return null;}
const steps=new Int32Array([0,width1,-1,0,-width1,0,0,0,1]);const path=new Path2D();for(i=0;count&&i<=height;i++){let p=i*width1;const end=p+width;while(p<end&&!points[p]){p++;}
if(p===end){continue;}
path.moveTo(p%width1,i);const p0=p;let type=points[p];do{const step=steps[type];do{p+=step;}while(!points[p]);const pp=points[p];if(pp!==5&&pp!==10){type=pp;points[p]=0;}else{type=pp&0x33*type>>4;points[p]&=type>>2|type<<2;}
path.lineTo(p%width1,p/width1|0);if(!points[p]){--count;}}while(p0!==p);--i;}
data=null;points=null;const drawOutline=function(c){c.save();c.scale(1/width,-1/height);c.translate(0,-height);c.fill(path);c.beginPath();c.restore();};return drawOutline;}
class CanvasExtraState{constructor(width,height){this.alphaIsShape=false;this.fontSize=0;this.fontSizeScale=1;this.textMatrix=_util.IDENTITY_MATRIX;this.textMatrixScale=1;this.fontMatrix=_util.FONT_IDENTITY_MATRIX;this.leading=0;this.x=0;this.y=0;this.lineX=0;this.lineY=0;this.charSpacing=0;this.wordSpacing=0;this.textHScale=1;this.textRenderingMode=_util.TextRenderingMode.FILL;this.textRise=0;this.fillColor="#000000";this.strokeColor="#000000";this.patternFill=false;this.fillAlpha=1;this.strokeAlpha=1;this.lineWidth=1;this.activeSMask=null;this.transferMaps=null;this.startNewPathAndClipBox([0,0,width,height]);}
clone(){const clone=Object.create(this);clone.clipBox=this.clipBox.slice();return clone;}
setCurrentPoint(x,y){this.x=x;this.y=y;}
updatePathMinMax(transform,x,y){[x,y]=_util.Util.applyTransform([x,y],transform);this.minX=Math.min(this.minX,x);this.minY=Math.min(this.minY,y);this.maxX=Math.max(this.maxX,x);this.maxY=Math.max(this.maxY,y);}
updateRectMinMax(transform,rect){const p1=_util.Util.applyTransform(rect,transform);const p2=_util.Util.applyTransform(rect.slice(2),transform);this.minX=Math.min(this.minX,p1[0],p2[0]);this.minY=Math.min(this.minY,p1[1],p2[1]);this.maxX=Math.max(this.maxX,p1[0],p2[0]);this.maxY=Math.max(this.maxY,p1[1],p2[1]);}
updateScalingPathMinMax(transform,minMax){_util.Util.scaleMinMax(transform,minMax);this.minX=Math.min(this.minX,minMax[0]);this.maxX=Math.max(this.maxX,minMax[1]);this.minY=Math.min(this.minY,minMax[2]);this.maxY=Math.max(this.maxY,minMax[3]);}
updateCurvePathMinMax(transform,x0,y0,x1,y1,x2,y2,x3,y3,minMax){const box=_util.Util.bezierBoundingBox(x0,y0,x1,y1,x2,y2,x3,y3);if(minMax){minMax[0]=Math.min(minMax[0],box[0],box[2]);minMax[1]=Math.max(minMax[1],box[0],box[2]);minMax[2]=Math.min(minMax[2],box[1],box[3]);minMax[3]=Math.max(minMax[3],box[1],box[3]);return;}
this.updateRectMinMax(transform,box);}
getPathBoundingBox(){let pathType=arguments.length>0&&arguments[0]!==undefined?arguments[0]:_pattern_helper.PathType.FILL;let transform=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;const box=[this.minX,this.minY,this.maxX,this.maxY];if(pathType===_pattern_helper.PathType.STROKE){if(!transform){(0,_util.unreachable)("Stroke bounding box must include transform.");}
const scale=_util.Util.singularValueDecompose2dScale(transform);const xStrokePad=scale[0]*this.lineWidth/2;const yStrokePad=scale[1]*this.lineWidth/2;box[0]-=xStrokePad;box[1]-=yStrokePad;box[2]+=xStrokePad;box[3]+=yStrokePad;}
return box;}
updateClipFromPath(){const intersect=_util.Util.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(intersect||[0,0,0,0]);}
isEmptyClip(){return this.minX===Infinity;}
startNewPathAndClipBox(box){this.clipBox=box;this.minX=Infinity;this.minY=Infinity;this.maxX=0;this.maxY=0;}
getClippedPathBoundingBox(){let pathType=arguments.length>0&&arguments[0]!==undefined?arguments[0]:_pattern_helper.PathType.FILL;let transform=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;return _util.Util.intersect(this.clipBox,this.getPathBoundingBox(pathType,transform));}}
function putBinaryImageData(ctx,imgData){let transferMaps=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(typeof ImageData!=="undefined"&&imgData instanceof ImageData){ctx.putImageData(imgData,0,0);return;}
const height=imgData.height,width=imgData.width;const partialChunkHeight=height%FULL_CHUNK_HEIGHT;const fullChunks=(height-partialChunkHeight)/FULL_CHUNK_HEIGHT;const totalChunks=partialChunkHeight===0?fullChunks:fullChunks+1;const chunkImgData=ctx.createImageData(width,FULL_CHUNK_HEIGHT);let srcPos=0,destPos;const src=imgData.data;const dest=chunkImgData.data;let i,j,thisChunkHeight,elemsInThisChunk;let transferMapRed,transferMapGreen,transferMapBlue,transferMapGray;if(transferMaps){switch(transferMaps.length){case 1:transferMapRed=transferMaps[0];transferMapGreen=transferMaps[0];transferMapBlue=transferMaps[0];transferMapGray=transferMaps[0];break;case 4:transferMapRed=transferMaps[0];transferMapGreen=transferMaps[1];transferMapBlue=transferMaps[2];transferMapGray=transferMaps[3];break;}}
if(imgData.kind===_util.ImageKind.GRAYSCALE_1BPP){const srcLength=src.byteLength;const dest32=new Uint32Array(dest.buffer,0,dest.byteLength>>2);const dest32DataLength=dest32.length;const fullSrcDiff=width+7>>3;let white=0xffffffff;let black=_util.FeatureTest.isLittleEndian?0xff000000:0x000000ff;if(transferMapGray){if(transferMapGray[0]===0xff&&transferMapGray[0xff]===0){[white,black]=[black,white];}}
for(i=0;i<totalChunks;i++){thisChunkHeight=i<fullChunks?FULL_CHUNK_HEIGHT:partialChunkHeight;destPos=0;for(j=0;j<thisChunkHeight;j++){const srcDiff=srcLength-srcPos;let k=0;const kEnd=srcDiff>fullSrcDiff?width:srcDiff*8-7;const kEndUnrolled=kEnd&~7;let mask=0;let srcByte=0;for(;k<kEndUnrolled;k+=8){srcByte=src[srcPos++];dest32[destPos++]=srcByte&128?white:black;dest32[destPos++]=srcByte&64?white:black;dest32[destPos++]=srcByte&32?white:black;dest32[destPos++]=srcByte&16?white:black;dest32[destPos++]=srcByte&8?white:black;dest32[destPos++]=srcByte&4?white:black;dest32[destPos++]=srcByte&2?white:black;dest32[destPos++]=srcByte&1?white:black;}
for(;k<kEnd;k++){if(mask===0){srcByte=src[srcPos++];mask=128;}
dest32[destPos++]=srcByte&mask?white:black;mask>>=1;}}
while(destPos<dest32DataLength){dest32[destPos++]=0;}
ctx.putImageData(chunkImgData,0,i*FULL_CHUNK_HEIGHT);}}else if(imgData.kind===_util.ImageKind.RGBA_32BPP){const hasTransferMaps=!!(transferMapRed||transferMapGreen||transferMapBlue);j=0;elemsInThisChunk=width*FULL_CHUNK_HEIGHT*4;for(i=0;i<fullChunks;i++){dest.set(src.subarray(srcPos,srcPos+elemsInThisChunk));srcPos+=elemsInThisChunk;if(hasTransferMaps){for(let k=0;k<elemsInThisChunk;k+=4){if(transferMapRed){dest[k+0]=transferMapRed[dest[k+0]];}
if(transferMapGreen){dest[k+1]=transferMapGreen[dest[k+1]];}
if(transferMapBlue){dest[k+2]=transferMapBlue[dest[k+2]];}}}
ctx.putImageData(chunkImgData,0,j);j+=FULL_CHUNK_HEIGHT;}
if(i<totalChunks){elemsInThisChunk=width*partialChunkHeight*4;dest.set(src.subarray(srcPos,srcPos+elemsInThisChunk));if(hasTransferMaps){for(let k=0;k<elemsInThisChunk;k+=4){if(transferMapRed){dest[k+0]=transferMapRed[dest[k+0]];}
if(transferMapGreen){dest[k+1]=transferMapGreen[dest[k+1]];}
if(transferMapBlue){dest[k+2]=transferMapBlue[dest[k+2]];}}}
ctx.putImageData(chunkImgData,0,j);}}else if(imgData.kind===_util.ImageKind.RGB_24BPP){const hasTransferMaps=!!(transferMapRed||transferMapGreen||transferMapBlue);thisChunkHeight=FULL_CHUNK_HEIGHT;elemsInThisChunk=width*thisChunkHeight;for(i=0;i<totalChunks;i++){if(i>=fullChunks){thisChunkHeight=partialChunkHeight;elemsInThisChunk=width*thisChunkHeight;}
destPos=0;for(j=elemsInThisChunk;j--;){dest[destPos++]=src[srcPos++];dest[destPos++]=src[srcPos++];dest[destPos++]=src[srcPos++];dest[destPos++]=255;}
if(hasTransferMaps){for(let k=0;k<destPos;k+=4){if(transferMapRed){dest[k+0]=transferMapRed[dest[k+0]];}
if(transferMapGreen){dest[k+1]=transferMapGreen[dest[k+1]];}
if(transferMapBlue){dest[k+2]=transferMapBlue[dest[k+2]];}}}
ctx.putImageData(chunkImgData,0,i*FULL_CHUNK_HEIGHT);}}else{throw new Error(`bad image kind: ${imgData.kind}`);}}
function putBinaryImageMask(ctx,imgData){if(imgData.bitmap){ctx.drawImage(imgData.bitmap,0,0);return;}
const height=imgData.height,width=imgData.width;const partialChunkHeight=height%FULL_CHUNK_HEIGHT;const fullChunks=(height-partialChunkHeight)/FULL_CHUNK_HEIGHT;const totalChunks=partialChunkHeight===0?fullChunks:fullChunks+1;const chunkImgData=ctx.createImageData(width,FULL_CHUNK_HEIGHT);let srcPos=0;const src=imgData.data;const dest=chunkImgData.data;for(let i=0;i<totalChunks;i++){const thisChunkHeight=i<fullChunks?FULL_CHUNK_HEIGHT:partialChunkHeight;({srcPos}=(0,_image_utils.applyMaskImageData)({src,srcPos,dest,width,height:thisChunkHeight}));ctx.putImageData(chunkImgData,0,i*FULL_CHUNK_HEIGHT);}}
function copyCtxState(sourceCtx,destCtx){const properties=["strokeStyle","fillStyle","fillRule","globalAlpha","lineWidth","lineCap","lineJoin","miterLimit","globalCompositeOperation","font"];for(let i=0,ii=properties.length;i<ii;i++){const property=properties[i];if(sourceCtx[property]!==undefined){destCtx[property]=sourceCtx[property];}}
if(sourceCtx.setLineDash!==undefined){destCtx.setLineDash(sourceCtx.getLineDash());destCtx.lineDashOffset=sourceCtx.lineDashOffset;}}
function resetCtxToDefault(ctx,foregroundColor){ctx.strokeStyle=ctx.fillStyle=foregroundColor||"#000000";ctx.fillRule="nonzero";ctx.globalAlpha=1;ctx.lineWidth=1;ctx.lineCap="butt";ctx.lineJoin="miter";ctx.miterLimit=10;ctx.globalCompositeOperation="source-over";ctx.font="10px sans-serif";if(ctx.setLineDash!==undefined){ctx.setLineDash([]);ctx.lineDashOffset=0;}}
function composeSMaskBackdrop(bytes,r0,g0,b0){const length=bytes.length;for(let i=3;i<length;i+=4){const alpha=bytes[i];if(alpha===0){bytes[i-3]=r0;bytes[i-2]=g0;bytes[i-1]=b0;}else if(alpha<255){const alpha_=255-alpha;bytes[i-3]=bytes[i-3]*alpha+r0*alpha_>>8;bytes[i-2]=bytes[i-2]*alpha+g0*alpha_>>8;bytes[i-1]=bytes[i-1]*alpha+b0*alpha_>>8;}}}
function composeSMaskAlpha(maskData,layerData,transferMap){const length=maskData.length;const scale=1/255;for(let i=3;i<length;i+=4){const alpha=transferMap?transferMap[maskData[i]]:maskData[i];layerData[i]=layerData[i]*alpha*scale|0;}}
function composeSMaskLuminosity(maskData,layerData,transferMap){const length=maskData.length;for(let i=3;i<length;i+=4){const y=maskData[i-3]*77+maskData[i-2]*152+maskData[i-1]*28;layerData[i]=transferMap?layerData[i]*transferMap[y>>8]>>8:layerData[i]*y>>16;}}
function genericComposeSMask(maskCtx,layerCtx,width,height,subtype,backdrop,transferMap,layerOffsetX,layerOffsetY,maskOffsetX,maskOffsetY){const hasBackdrop=!!backdrop;const r0=hasBackdrop?backdrop[0]:0;const g0=hasBackdrop?backdrop[1]:0;const b0=hasBackdrop?backdrop[2]:0;let composeFn;if(subtype==="Luminosity"){composeFn=composeSMaskLuminosity;}else{composeFn=composeSMaskAlpha;}
const PIXELS_TO_PROCESS=1048576;const chunkSize=Math.min(height,Math.ceil(PIXELS_TO_PROCESS/width));for(let row=0;row<height;row+=chunkSize){const chunkHeight=Math.min(chunkSize,height-row);const maskData=maskCtx.getImageData(layerOffsetX-maskOffsetX,row+(layerOffsetY-maskOffsetY),width,chunkHeight);const layerData=layerCtx.getImageData(layerOffsetX,row+layerOffsetY,width,chunkHeight);if(hasBackdrop){composeSMaskBackdrop(maskData.data,r0,g0,b0);}
composeFn(maskData.data,layerData.data,transferMap);layerCtx.putImageData(layerData,layerOffsetX,row+layerOffsetY);}}
function composeSMask(ctx,smask,layerCtx,layerBox){const layerOffsetX=layerBox[0];const layerOffsetY=layerBox[1];const layerWidth=layerBox[2]-layerOffsetX;const layerHeight=layerBox[3]-layerOffsetY;if(layerWidth===0||layerHeight===0){return;}
genericComposeSMask(smask.context,layerCtx,layerWidth,layerHeight,smask.subtype,smask.backdrop,smask.transferMap,layerOffsetX,layerOffsetY,smask.offsetX,smask.offsetY);ctx.save();ctx.globalAlpha=1;ctx.globalCompositeOperation="source-over";ctx.setTransform(1,0,0,1,0,0);ctx.drawImage(layerCtx.canvas,0,0);ctx.restore();}
function getImageSmoothingEnabled(transform,interpolate){const scale=_util.Util.singularValueDecompose2dScale(transform);scale[0]=Math.fround(scale[0]);scale[1]=Math.fround(scale[1]);const actualScale=Math.fround((globalThis.devicePixelRatio||1)*_display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);if(interpolate!==undefined){return interpolate;}else if(scale[0]<=actualScale||scale[1]<=actualScale){return true;}
return false;}
const LINE_CAP_STYLES=["butt","round","square"];const LINE_JOIN_STYLES=["miter","round","bevel"];const NORMAL_CLIP={};const EO_CLIP={};var _restoreInitialState=new WeakSet();class CanvasGraphics{constructor(canvasCtx,commonObjs,objs,canvasFactory,imageLayer,optionalContentConfig,annotationCanvasMap,pageColors){_classPrivateMethodInitSpec(this,_restoreInitialState);this.ctx=canvasCtx;this.current=new CanvasExtraState(this.ctx.canvas.width,this.ctx.canvas.height);this.stateStack=[];this.pendingClip=null;this.pendingEOFill=false;this.res=null;this.xobjs=null;this.commonObjs=commonObjs;this.objs=objs;this.canvasFactory=canvasFactory;this.imageLayer=imageLayer;this.groupStack=[];this.processingType3=null;this.baseTransform=null;this.baseTransformStack=[];this.groupLevel=0;this.smaskStack=[];this.smaskCounter=0;this.tempSMask=null;this.suspendedCtx=null;this.contentVisible=true;this.markedContentStack=[];this.optionalContentConfig=optionalContentConfig;this.cachedCanvases=new CachedCanvases(this.canvasFactory);this.cachedPatterns=new Map();this.annotationCanvasMap=annotationCanvasMap;this.viewportScale=1;this.outputScaleX=1;this.outputScaleY=1;this.backgroundColor=(pageColors===null||pageColors===void 0?void 0:pageColors.background)||null;this.foregroundColor=(pageColors===null||pageColors===void 0?void 0:pageColors.foreground)||null;this._cachedScaleForStroking=null;this._cachedGetSinglePixelWidth=null;this._cachedBitmapsMap=new Map();}
getObject(data){let fallback=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(typeof data==="string"){return data.startsWith("g_")?this.commonObjs.get(data):this.objs.get(data);}
return fallback;}
beginDrawing(_ref){let{transform,viewport,transparency=false,background=null}=_ref;const width=this.ctx.canvas.width;const height=this.ctx.canvas.height;const defaultBackgroundColor=background||"#ffffff";this.ctx.save();if(this.foregroundColor&&this.backgroundColor){this.ctx.fillStyle=this.foregroundColor;const fg=this.foregroundColor=this.ctx.fillStyle;this.ctx.fillStyle=this.backgroundColor;const bg=this.backgroundColor=this.ctx.fillStyle;let isValidDefaultBg=true;let defaultBg=defaultBackgroundColor;this.ctx.fillStyle=defaultBackgroundColor;defaultBg=this.ctx.fillStyle;isValidDefaultBg=typeof defaultBg==="string"&&/^#[0-9A-Fa-f]{6}$/.test(defaultBg);if(fg==="#000000"&&bg==="#ffffff"||fg===bg||!isValidDefaultBg){this.foregroundColor=this.backgroundColor=null;}else{const[rB,gB,bB]=(0,_display_utils.getRGB)(defaultBg);const newComp=x=>{x/=255;return x<=0.03928?x/12.92:((x+0.055)/1.055)**2.4;};const lumB=Math.round(0.2126*newComp(rB)+0.7152*newComp(gB)+0.0722*newComp(bB));this.selectColor=(r,g,b)=>{const lumC=0.2126*newComp(r)+0.7152*newComp(g)+0.0722*newComp(b);return Math.round(lumC)===lumB?bg:fg;};}}
this.ctx.fillStyle=this.backgroundColor||defaultBackgroundColor;this.ctx.fillRect(0,0,width,height);this.ctx.restore();if(transparency){const transparentCanvas=this.cachedCanvases.getCanvas("transparent",width,height);this.compositeCtx=this.ctx;this.transparentCanvas=transparentCanvas.canvas;this.ctx=transparentCanvas.context;this.ctx.save();this.ctx.transform(...(0,_display_utils.getCurrentTransform)(this.compositeCtx));}
this.ctx.save();resetCtxToDefault(this.ctx,this.foregroundColor);if(transform){this.ctx.transform(...transform);this.outputScaleX=transform[0];this.outputScaleY=transform[0];}
this.ctx.transform(...viewport.transform);this.viewportScale=viewport.scale;this.baseTransform=(0,_display_utils.getCurrentTransform)(this.ctx);if(this.imageLayer){(0,_display_utils.deprecated)("The `imageLayer` functionality will be removed in the future.");this.imageLayer.beginLayout();}}
executeOperatorList(operatorList,executionStartIdx,continueCallback,stepper){const argsArray=operatorList.argsArray;const fnArray=operatorList.fnArray;let i=executionStartIdx||0;const argsArrayLen=argsArray.length;if(argsArrayLen===i){return i;}
const chunkOperations=argsArrayLen-i>EXECUTION_STEPS&&typeof continueCallback==="function";const endTime=chunkOperations?Date.now()+EXECUTION_TIME:0;let steps=0;const commonObjs=this.commonObjs;const objs=this.objs;let fnId;while(true){if(stepper!==undefined&&i===stepper.nextBreakPoint){stepper.breakIt(i,continueCallback);return i;}
fnId=fnArray[i];if(fnId!==_util.OPS.dependency){this[fnId].apply(this,argsArray[i]);}else{for(const depObjId of argsArray[i]){const objsPool=depObjId.startsWith("g_")?commonObjs:objs;if(!objsPool.has(depObjId)){objsPool.get(depObjId,continueCallback);return i;}}}
i++;if(i===argsArrayLen){return i;}
if(chunkOperations&&++steps>EXECUTION_STEPS){if(Date.now()>endTime){continueCallback();return i;}
steps=0;}}}
endDrawing(){_classPrivateMethodGet(this,_restoreInitialState,_restoreInitialState2).call(this);this.cachedCanvases.clear();this.cachedPatterns.clear();for(const cache of this._cachedBitmapsMap.values()){for(const canvas of cache.values()){if(typeof HTMLCanvasElement!=="undefined"&&canvas instanceof HTMLCanvasElement){canvas.width=canvas.height=0;}}
cache.clear();}
this._cachedBitmapsMap.clear();if(this.imageLayer){this.imageLayer.endLayout();}}
_scaleImage(img,inverseTransform){const width=img.width;const height=img.height;let widthScale=Math.max(Math.hypot(inverseTransform[0],inverseTransform[1]),1);let heightScale=Math.max(Math.hypot(inverseTransform[2],inverseTransform[3]),1);let paintWidth=width,paintHeight=height;let tmpCanvasId="prescale1";let tmpCanvas,tmpCtx;while(widthScale>2&&paintWidth>1||heightScale>2&&paintHeight>1){let newWidth=paintWidth,newHeight=paintHeight;if(widthScale>2&&paintWidth>1){newWidth=Math.ceil(paintWidth/2);widthScale/=paintWidth/newWidth;}
if(heightScale>2&&paintHeight>1){newHeight=Math.ceil(paintHeight/2);heightScale/=paintHeight/newHeight;}
tmpCanvas=this.cachedCanvases.getCanvas(tmpCanvasId,newWidth,newHeight);tmpCtx=tmpCanvas.context;tmpCtx.clearRect(0,0,newWidth,newHeight);tmpCtx.drawImage(img,0,0,paintWidth,paintHeight,0,0,newWidth,newHeight);img=tmpCanvas.canvas;paintWidth=newWidth;paintHeight=newHeight;tmpCanvasId=tmpCanvasId==="prescale1"?"prescale2":"prescale1";}
return{img,paintWidth,paintHeight};}
_createMaskCanvas(img){const ctx=this.ctx;const{width,height}=img;const fillColor=this.current.fillColor;const isPatternFill=this.current.patternFill;const currentTransform=(0,_display_utils.getCurrentTransform)(ctx);let cache,cacheKey,scaled,maskCanvas;if((img.bitmap||img.data)&&img.count>1){const mainKey=img.bitmap||img.data.buffer;const withoutTranslation=currentTransform.slice(0,4);cacheKey=JSON.stringify(isPatternFill?withoutTranslation:[withoutTranslation,fillColor]);cache=this._cachedBitmapsMap.get(mainKey);if(!cache){cache=new Map();this._cachedBitmapsMap.set(mainKey,cache);}
const cachedImage=cache.get(cacheKey);if(cachedImage&&!isPatternFill){const offsetX=Math.round(Math.min(currentTransform[0],currentTransform[2])+currentTransform[4]);const offsetY=Math.round(Math.min(currentTransform[1],currentTransform[3])+currentTransform[5]);return{canvas:cachedImage,offsetX,offsetY};}
scaled=cachedImage;}
if(!scaled){maskCanvas=this.cachedCanvases.getCanvas("maskCanvas",width,height);putBinaryImageMask(maskCanvas.context,img);}
let maskToCanvas=_util.Util.transform(currentTransform,[1/width,0,0,-1/height,0,0]);maskToCanvas=_util.Util.transform(maskToCanvas,[1,0,0,1,0,-height]);const cord1=_util.Util.applyTransform([0,0],maskToCanvas);const cord2=_util.Util.applyTransform([width,height],maskToCanvas);const rect=_util.Util.normalizeRect([cord1[0],cord1[1],cord2[0],cord2[1]]);const drawnWidth=Math.round(rect[2]-rect[0])||1;const drawnHeight=Math.round(rect[3]-rect[1])||1;const fillCanvas=this.cachedCanvases.getCanvas("fillCanvas",drawnWidth,drawnHeight);const fillCtx=fillCanvas.context;const offsetX=Math.min(cord1[0],cord2[0]);const offsetY=Math.min(cord1[1],cord2[1]);fillCtx.translate(-offsetX,-offsetY);fillCtx.transform(...maskToCanvas);if(!scaled){scaled=this._scaleImage(maskCanvas.canvas,(0,_display_utils.getCurrentTransformInverse)(fillCtx));scaled=scaled.img;if(cache&&isPatternFill){cache.set(cacheKey,scaled);}}
fillCtx.imageSmoothingEnabled=getImageSmoothingEnabled((0,_display_utils.getCurrentTransform)(fillCtx),img.interpolate);drawImageAtIntegerCoords(fillCtx,scaled,0,0,scaled.width,scaled.height,0,0,width,height);fillCtx.globalCompositeOperation="source-in";const inverse=_util.Util.transform((0,_display_utils.getCurrentTransformInverse)(fillCtx),[1,0,0,1,-offsetX,-offsetY]);fillCtx.fillStyle=isPatternFill?fillColor.getPattern(ctx,this,inverse,_pattern_helper.PathType.FILL):fillColor;fillCtx.fillRect(0,0,width,height);if(cache&&!isPatternFill){this.cachedCanvases.delete("fillCanvas");cache.set(cacheKey,fillCanvas.canvas);}
return{canvas:fillCanvas.canvas,offsetX:Math.round(offsetX),offsetY:Math.round(offsetY)};}
setLineWidth(width){if(width!==this.current.lineWidth){this._cachedScaleForStroking=null;}
this.current.lineWidth=width;this.ctx.lineWidth=width;}
setLineCap(style){this.ctx.lineCap=LINE_CAP_STYLES[style];}
setLineJoin(style){this.ctx.lineJoin=LINE_JOIN_STYLES[style];}
setMiterLimit(limit){this.ctx.miterLimit=limit;}
setDash(dashArray,dashPhase){const ctx=this.ctx;if(ctx.setLineDash!==undefined){ctx.setLineDash(dashArray);ctx.lineDashOffset=dashPhase;}}
setRenderingIntent(intent){}
setFlatness(flatness){}
setGState(states){for(let i=0,ii=states.length;i<ii;i++){const state=states[i];const key=state[0];const value=state[1];switch(key){case"LW":this.setLineWidth(value);break;case"LC":this.setLineCap(value);break;case"LJ":this.setLineJoin(value);break;case"ML":this.setMiterLimit(value);break;case"D":this.setDash(value[0],value[1]);break;case"RI":this.setRenderingIntent(value);break;case"FL":this.setFlatness(value);break;case"Font":this.setFont(value[0],value[1]);break;case"CA":this.current.strokeAlpha=state[1];break;case"ca":this.current.fillAlpha=state[1];this.ctx.globalAlpha=state[1];break;case"BM":this.ctx.globalCompositeOperation=value;break;case"SMask":this.current.activeSMask=value?this.tempSMask:null;this.tempSMask=null;this.checkSMaskState();break;case"TR":this.current.transferMaps=value;}}}
get inSMaskMode(){return!!this.suspendedCtx;}
checkSMaskState(){const inSMaskMode=this.inSMaskMode;if(this.current.activeSMask&&!inSMaskMode){this.beginSMaskMode();}else if(!this.current.activeSMask&&inSMaskMode){this.endSMaskMode();}}
beginSMaskMode(){if(this.inSMaskMode){throw new Error("beginSMaskMode called while already in smask mode");}
const drawnWidth=this.ctx.canvas.width;const drawnHeight=this.ctx.canvas.height;const cacheId="smaskGroupAt"+this.groupLevel;const scratchCanvas=this.cachedCanvases.getCanvas(cacheId,drawnWidth,drawnHeight);this.suspendedCtx=this.ctx;this.ctx=scratchCanvas.context;const ctx=this.ctx;ctx.setTransform(...(0,_display_utils.getCurrentTransform)(this.suspendedCtx));copyCtxState(this.suspendedCtx,ctx);mirrorContextOperations(ctx,this.suspendedCtx);this.setGState([["BM","source-over"],["ca",1],["CA",1]]);}
endSMaskMode(){if(!this.inSMaskMode){throw new Error("endSMaskMode called while not in smask mode");}
this.ctx._removeMirroring();copyCtxState(this.ctx,this.suspendedCtx);this.ctx=this.suspendedCtx;this.suspendedCtx=null;}
compose(dirtyBox){if(!this.current.activeSMask){return;}
if(!dirtyBox){dirtyBox=[0,0,this.ctx.canvas.width,this.ctx.canvas.height];}else{dirtyBox[0]=Math.floor(dirtyBox[0]);dirtyBox[1]=Math.floor(dirtyBox[1]);dirtyBox[2]=Math.ceil(dirtyBox[2]);dirtyBox[3]=Math.ceil(dirtyBox[3]);}
const smask=this.current.activeSMask;const suspendedCtx=this.suspendedCtx;composeSMask(suspendedCtx,smask,this.ctx,dirtyBox);this.ctx.save();this.ctx.setTransform(1,0,0,1,0,0);this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height);this.ctx.restore();}
save(){if(this.inSMaskMode){copyCtxState(this.ctx,this.suspendedCtx);this.suspendedCtx.save();}else{this.ctx.save();}
const old=this.current;this.stateStack.push(old);this.current=old.clone();}
restore(){if(this.stateStack.length===0&&this.inSMaskMode){this.endSMaskMode();}
if(this.stateStack.length!==0){this.current=this.stateStack.pop();if(this.inSMaskMode){this.suspendedCtx.restore();copyCtxState(this.suspendedCtx,this.ctx);}else{this.ctx.restore();}
this.checkSMaskState();this.pendingClip=null;this._cachedScaleForStroking=null;this._cachedGetSinglePixelWidth=null;}}
transform(a,b,c,d,e,f){this.ctx.transform(a,b,c,d,e,f);this._cachedScaleForStroking=null;this._cachedGetSinglePixelWidth=null;}
constructPath(ops,args,minMax){const ctx=this.ctx;const current=this.current;let x=current.x,y=current.y;let startX,startY;const currentTransform=(0,_display_utils.getCurrentTransform)(ctx);const isScalingMatrix=currentTransform[0]===0&&currentTransform[3]===0||currentTransform[1]===0&&currentTransform[2]===0;const minMaxForBezier=isScalingMatrix?minMax.slice(0):null;for(let i=0,j=0,ii=ops.length;i<ii;i++){switch(ops[i]|0){case _util.OPS.rectangle:x=args[j++];y=args[j++];const width=args[j++];const height=args[j++];const xw=x+width;const yh=y+height;ctx.moveTo(x,y);if(width===0||height===0){ctx.lineTo(xw,yh);}else{ctx.lineTo(xw,y);ctx.lineTo(xw,yh);ctx.lineTo(x,yh);}
if(!isScalingMatrix){current.updateRectMinMax(currentTransform,[x,y,xw,yh]);}
ctx.closePath();break;case _util.OPS.moveTo:x=args[j++];y=args[j++];ctx.moveTo(x,y);if(!isScalingMatrix){current.updatePathMinMax(currentTransform,x,y);}
break;case _util.OPS.lineTo:x=args[j++];y=args[j++];ctx.lineTo(x,y);if(!isScalingMatrix){current.updatePathMinMax(currentTransform,x,y);}
break;case _util.OPS.curveTo:startX=x;startY=y;x=args[j+4];y=args[j+5];ctx.bezierCurveTo(args[j],args[j+1],args[j+2],args[j+3],x,y);current.updateCurvePathMinMax(currentTransform,startX,startY,args[j],args[j+1],args[j+2],args[j+3],x,y,minMaxForBezier);j+=6;break;case _util.OPS.curveTo2:startX=x;startY=y;ctx.bezierCurveTo(x,y,args[j],args[j+1],args[j+2],args[j+3]);current.updateCurvePathMinMax(currentTransform,startX,startY,x,y,args[j],args[j+1],args[j+2],args[j+3],minMaxForBezier);x=args[j+2];y=args[j+3];j+=4;break;case _util.OPS.curveTo3:startX=x;startY=y;x=args[j+2];y=args[j+3];ctx.bezierCurveTo(args[j],args[j+1],x,y,x,y);current.updateCurvePathMinMax(currentTransform,startX,startY,args[j],args[j+1],x,y,x,y,minMaxForBezier);j+=4;break;case _util.OPS.closePath:ctx.closePath();break;}}
if(isScalingMatrix){current.updateScalingPathMinMax(currentTransform,minMaxForBezier);}
current.setCurrentPoint(x,y);}
closePath(){this.ctx.closePath();}
stroke(consumePath){consumePath=typeof consumePath!=="undefined"?consumePath:true;const ctx=this.ctx;const strokeColor=this.current.strokeColor;ctx.globalAlpha=this.current.strokeAlpha;if(this.contentVisible){if(typeof strokeColor==="object"&&strokeColor!==null&&strokeColor!==void 0&&strokeColor.getPattern){ctx.save();ctx.strokeStyle=strokeColor.getPattern(ctx,this,(0,_display_utils.getCurrentTransformInverse)(ctx),_pattern_helper.PathType.STROKE);this.rescaleAndStroke(false);ctx.restore();}else{this.rescaleAndStroke(true);}}
if(consumePath){this.consumePath(this.current.getClippedPathBoundingBox());}
ctx.globalAlpha=this.current.fillAlpha;}
closeStroke(){this.closePath();this.stroke();}
fill(consumePath){consumePath=typeof consumePath!=="undefined"?consumePath:true;const ctx=this.ctx;const fillColor=this.current.fillColor;const isPatternFill=this.current.patternFill;let needRestore=false;if(isPatternFill){ctx.save();ctx.fillStyle=fillColor.getPattern(ctx,this,(0,_display_utils.getCurrentTransformInverse)(ctx),_pattern_helper.PathType.FILL);needRestore=true;}
const intersect=this.current.getClippedPathBoundingBox();if(this.contentVisible&&intersect!==null){if(this.pendingEOFill){ctx.fill("evenodd");this.pendingEOFill=false;}else{ctx.fill();}}
if(needRestore){ctx.restore();}
if(consumePath){this.consumePath(intersect);}}
eoFill(){this.pendingEOFill=true;this.fill();}
fillStroke(){this.fill(false);this.stroke(false);this.consumePath();}
eoFillStroke(){this.pendingEOFill=true;this.fillStroke();}
closeFillStroke(){this.closePath();this.fillStroke();}
closeEOFillStroke(){this.pendingEOFill=true;this.closePath();this.fillStroke();}
endPath(){this.consumePath();}
clip(){this.pendingClip=NORMAL_CLIP;}
eoClip(){this.pendingClip=EO_CLIP;}
beginText(){this.current.textMatrix=_util.IDENTITY_MATRIX;this.current.textMatrixScale=1;this.current.x=this.current.lineX=0;this.current.y=this.current.lineY=0;}
endText(){const paths=this.pendingTextPaths;const ctx=this.ctx;if(paths===undefined){ctx.beginPath();return;}
ctx.save();ctx.beginPath();for(const path of paths){ctx.setTransform(...path.transform);ctx.translate(path.x,path.y);path.addToPath(ctx,path.fontSize);}
ctx.restore();ctx.clip();ctx.beginPath();delete this.pendingTextPaths;}
setCharSpacing(spacing){this.current.charSpacing=spacing;}
setWordSpacing(spacing){this.current.wordSpacing=spacing;}
setHScale(scale){this.current.textHScale=scale/100;}
setLeading(leading){this.current.leading=-leading;}
setFont(fontRefName,size){const fontObj=this.commonObjs.get(fontRefName);const current=this.current;if(!fontObj){throw new Error(`Can't find font for ${fontRefName}`);}
current.fontMatrix=fontObj.fontMatrix||_util.FONT_IDENTITY_MATRIX;if(current.fontMatrix[0]===0||current.fontMatrix[3]===0){(0,_util.warn)("Invalid font matrix for font "+fontRefName);}
if(size<0){size=-size;current.fontDirection=-1;}else{current.fontDirection=1;}
this.current.font=fontObj;this.current.fontSize=size;if(fontObj.isType3Font){return;}
const name=fontObj.loadedName||"sans-serif";let bold="normal";if(fontObj.black){bold="900";}else if(fontObj.bold){bold="bold";}
const italic=fontObj.italic?"italic":"normal";const typeface=`"${name}", ${fontObj.fallbackName}`;let browserFontSize=size;if(size<MIN_FONT_SIZE){browserFontSize=MIN_FONT_SIZE;}else if(size>MAX_FONT_SIZE){browserFontSize=MAX_FONT_SIZE;}
this.current.fontSizeScale=size/browserFontSize;this.ctx.font=`${italic} ${bold} ${browserFontSize}px ${typeface}`;}
setTextRenderingMode(mode){this.current.textRenderingMode=mode;}
setTextRise(rise){this.current.textRise=rise;}
moveText(x,y){this.current.x=this.current.lineX+=x;this.current.y=this.current.lineY+=y;}
setLeadingMoveText(x,y){this.setLeading(-y);this.moveText(x,y);}
setTextMatrix(a,b,c,d,e,f){this.current.textMatrix=[a,b,c,d,e,f];this.current.textMatrixScale=Math.hypot(a,b);this.current.x=this.current.lineX=0;this.current.y=this.current.lineY=0;}
nextLine(){this.moveText(0,this.current.leading);}
paintChar(character,x,y,patternTransform){const ctx=this.ctx;const current=this.current;const font=current.font;const textRenderingMode=current.textRenderingMode;const fontSize=current.fontSize/current.fontSizeScale;const fillStrokeMode=textRenderingMode&_util.TextRenderingMode.FILL_STROKE_MASK;const isAddToPathSet=!!(textRenderingMode&_util.TextRenderingMode.ADD_TO_PATH_FLAG);const patternFill=current.patternFill&&!font.missingFile;let addToPath;if(font.disableFontFace||isAddToPathSet||patternFill){addToPath=font.getPathGenerator(this.commonObjs,character);}
if(font.disableFontFace||patternFill){ctx.save();ctx.translate(x,y);ctx.beginPath();addToPath(ctx,fontSize);if(patternTransform){ctx.setTransform(...patternTransform);}
if(fillStrokeMode===_util.TextRenderingMode.FILL||fillStrokeMode===_util.TextRenderingMode.FILL_STROKE){ctx.fill();}
if(fillStrokeMode===_util.TextRenderingMode.STROKE||fillStrokeMode===_util.TextRenderingMode.FILL_STROKE){ctx.stroke();}
ctx.restore();}else{if(fillStrokeMode===_util.TextRenderingMode.FILL||fillStrokeMode===_util.TextRenderingMode.FILL_STROKE){ctx.fillText(character,x,y);}
if(fillStrokeMode===_util.TextRenderingMode.STROKE||fillStrokeMode===_util.TextRenderingMode.FILL_STROKE){ctx.strokeText(character,x,y);}}
if(isAddToPathSet){const paths=this.pendingTextPaths||(this.pendingTextPaths=[]);paths.push({transform:(0,_display_utils.getCurrentTransform)(ctx),x,y,fontSize,addToPath});}}
get isFontSubpixelAAEnabled(){const{context:ctx}=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10);ctx.scale(1.5,1);ctx.fillText("I",0,10);const data=ctx.getImageData(0,0,10,10).data;let enabled=false;for(let i=3;i<data.length;i+=4){if(data[i]>0&&data[i]<255){enabled=true;break;}}
return(0,_util.shadow)(this,"isFontSubpixelAAEnabled",enabled);}
showText(glyphs){const current=this.current;const font=current.font;if(font.isType3Font){return this.showType3Text(glyphs);}
const fontSize=current.fontSize;if(fontSize===0){return undefined;}
const ctx=this.ctx;const fontSizeScale=current.fontSizeScale;const charSpacing=current.charSpacing;const wordSpacing=current.wordSpacing;const fontDirection=current.fontDirection;const textHScale=current.textHScale*fontDirection;const glyphsLength=glyphs.length;const vertical=font.vertical;const spacingDir=vertical?1:-1;const defaultVMetrics=font.defaultVMetrics;const widthAdvanceScale=fontSize*current.fontMatrix[0];const simpleFillText=current.textRenderingMode===_util.TextRenderingMode.FILL&&!font.disableFontFace&&!current.patternFill;ctx.save();ctx.transform(...current.textMatrix);ctx.translate(current.x,current.y+current.textRise);if(fontDirection>0){ctx.scale(textHScale,-1);}else{ctx.scale(textHScale,1);}
let patternTransform;if(current.patternFill){ctx.save();const pattern=current.fillColor.getPattern(ctx,this,(0,_display_utils.getCurrentTransformInverse)(ctx),_pattern_helper.PathType.FILL);patternTransform=(0,_display_utils.getCurrentTransform)(ctx);ctx.restore();ctx.fillStyle=pattern;}
let lineWidth=current.lineWidth;const scale=current.textMatrixScale;if(scale===0||lineWidth===0){const fillStrokeMode=current.textRenderingMode&_util.TextRenderingMode.FILL_STROKE_MASK;if(fillStrokeMode===_util.TextRenderingMode.STROKE||fillStrokeMode===_util.TextRenderingMode.FILL_STROKE){lineWidth=this.getSinglePixelWidth();}}else{lineWidth/=scale;}
if(fontSizeScale!==1.0){ctx.scale(fontSizeScale,fontSizeScale);lineWidth/=fontSizeScale;}
ctx.lineWidth=lineWidth;let x=0,i;for(i=0;i<glyphsLength;++i){const glyph=glyphs[i];if(typeof glyph==="number"){x+=spacingDir*glyph*fontSize/1000;continue;}
let restoreNeeded=false;const spacing=(glyph.isSpace?wordSpacing:0)+charSpacing;const character=glyph.fontChar;const accent=glyph.accent;let scaledX,scaledY;let width=glyph.width;if(vertical){const vmetric=glyph.vmetric||defaultVMetrics;const vx=-(glyph.vmetric?vmetric[1]:width*0.5)*widthAdvanceScale;const vy=vmetric[2]*widthAdvanceScale;width=vmetric?-vmetric[0]:width;scaledX=vx/fontSizeScale;scaledY=(x+vy)/fontSizeScale;}else{scaledX=x/fontSizeScale;scaledY=0;}
if(font.remeasure&&width>0){const measuredWidth=ctx.measureText(character).width*1000/fontSize*fontSizeScale;if(width<measuredWidth&&this.isFontSubpixelAAEnabled){const characterScaleX=width/measuredWidth;restoreNeeded=true;ctx.save();ctx.scale(characterScaleX,1);scaledX/=characterScaleX;}else if(width!==measuredWidth){scaledX+=(width-measuredWidth)/2000*fontSize/fontSizeScale;}}
if(this.contentVisible&&(glyph.isInFont||font.missingFile)){if(simpleFillText&&!accent){ctx.fillText(character,scaledX,scaledY);}else{this.paintChar(character,scaledX,scaledY,patternTransform);if(accent){const scaledAccentX=scaledX+fontSize*accent.offset.x/fontSizeScale;const scaledAccentY=scaledY-fontSize*accent.offset.y/fontSizeScale;this.paintChar(accent.fontChar,scaledAccentX,scaledAccentY,patternTransform);}}}
let charWidth;if(vertical){charWidth=width*widthAdvanceScale-spacing*fontDirection;}else{charWidth=width*widthAdvanceScale+spacing*fontDirection;}
x+=charWidth;if(restoreNeeded){ctx.restore();}}
if(vertical){current.y-=x;}else{current.x+=x*textHScale;}
ctx.restore();this.compose();return undefined;}
showType3Text(glyphs){const ctx=this.ctx;const current=this.current;const font=current.font;const fontSize=current.fontSize;const fontDirection=current.fontDirection;const spacingDir=font.vertical?1:-1;const charSpacing=current.charSpacing;const wordSpacing=current.wordSpacing;const textHScale=current.textHScale*fontDirection;const fontMatrix=current.fontMatrix||_util.FONT_IDENTITY_MATRIX;const glyphsLength=glyphs.length;const isTextInvisible=current.textRenderingMode===_util.TextRenderingMode.INVISIBLE;let i,glyph,width,spacingLength;if(isTextInvisible||fontSize===0){return;}
this._cachedScaleForStroking=null;this._cachedGetSinglePixelWidth=null;ctx.save();ctx.transform(...current.textMatrix);ctx.translate(current.x,current.y);ctx.scale(textHScale,fontDirection);for(i=0;i<glyphsLength;++i){glyph=glyphs[i];if(typeof glyph==="number"){spacingLength=spacingDir*glyph*fontSize/1000;this.ctx.translate(spacingLength,0);current.x+=spacingLength*textHScale;continue;}
const spacing=(glyph.isSpace?wordSpacing:0)+charSpacing;const operatorList=font.charProcOperatorList[glyph.operatorListId];if(!operatorList){(0,_util.warn)(`Type3 character "${glyph.operatorListId}" is not available.`);continue;}
if(this.contentVisible){this.processingType3=glyph;this.save();ctx.scale(fontSize,fontSize);ctx.transform(...fontMatrix);this.executeOperatorList(operatorList);this.restore();}
const transformed=_util.Util.applyTransform([glyph.width,0],fontMatrix);width=transformed[0]*fontSize+spacing;ctx.translate(width,0);current.x+=width*textHScale;}
ctx.restore();this.processingType3=null;}
setCharWidth(xWidth,yWidth){}
setCharWidthAndBounds(xWidth,yWidth,llx,lly,urx,ury){this.ctx.rect(llx,lly,urx-llx,ury-lly);this.ctx.clip();this.endPath();}
getColorN_Pattern(IR){let pattern;if(IR[0]==="TilingPattern"){const color=IR[1];const baseTransform=this.baseTransform||(0,_display_utils.getCurrentTransform)(this.ctx);const canvasGraphicsFactory={createCanvasGraphics:ctx=>{return new CanvasGraphics(ctx,this.commonObjs,this.objs,this.canvasFactory);}};pattern=new _pattern_helper.TilingPattern(IR,color,this.ctx,canvasGraphicsFactory,baseTransform);}else{pattern=this._getPattern(IR[1],IR[2]);}
return pattern;}
setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments);}
setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments);this.current.patternFill=true;}
setStrokeRGBColor(r,g,b){var _this$selectColor;const color=((_this$selectColor=this.selectColor)===null||_this$selectColor===void 0?void 0:_this$selectColor.call(this,r,g,b))||_util.Util.makeHexColor(r,g,b);this.ctx.strokeStyle=color;this.current.strokeColor=color;}
setFillRGBColor(r,g,b){var _this$selectColor2;const color=((_this$selectColor2=this.selectColor)===null||_this$selectColor2===void 0?void 0:_this$selectColor2.call(this,r,g,b))||_util.Util.makeHexColor(r,g,b);this.ctx.fillStyle=color;this.current.fillColor=color;this.current.patternFill=false;}
_getPattern(objId){let matrix=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;let pattern;if(this.cachedPatterns.has(objId)){pattern=this.cachedPatterns.get(objId);}else{pattern=(0,_pattern_helper.getShadingPattern)(this.objs.get(objId));this.cachedPatterns.set(objId,pattern);}
if(matrix){pattern.matrix=matrix;}
return pattern;}
shadingFill(objId){if(!this.contentVisible){return;}
const ctx=this.ctx;this.save();const pattern=this._getPattern(objId);ctx.fillStyle=pattern.getPattern(ctx,this,(0,_display_utils.getCurrentTransformInverse)(ctx),_pattern_helper.PathType.SHADING);const inv=(0,_display_utils.getCurrentTransformInverse)(ctx);if(inv){const canvas=ctx.canvas;const width=canvas.width;const height=canvas.height;const bl=_util.Util.applyTransform([0,0],inv);const br=_util.Util.applyTransform([0,height],inv);const ul=_util.Util.applyTransform([width,0],inv);const ur=_util.Util.applyTransform([width,height],inv);const x0=Math.min(bl[0],br[0],ul[0],ur[0]);const y0=Math.min(bl[1],br[1],ul[1],ur[1]);const x1=Math.max(bl[0],br[0],ul[0],ur[0]);const y1=Math.max(bl[1],br[1],ul[1],ur[1]);this.ctx.fillRect(x0,y0,x1-x0,y1-y0);}else{this.ctx.fillRect(-1e10,-1e10,2e10,2e10);}
this.compose(this.current.getClippedPathBoundingBox());this.restore();}
beginInlineImage(){(0,_util.unreachable)("Should not call beginInlineImage");}
beginImageData(){(0,_util.unreachable)("Should not call beginImageData");}
paintFormXObjectBegin(matrix,bbox){if(!this.contentVisible){return;}
this.save();this.baseTransformStack.push(this.baseTransform);if(Array.isArray(matrix)&&matrix.length===6){this.transform(...matrix);}
this.baseTransform=(0,_display_utils.getCurrentTransform)(this.ctx);if(bbox){const width=bbox[2]-bbox[0];const height=bbox[3]-bbox[1];this.ctx.rect(bbox[0],bbox[1],width,height);this.current.updateRectMinMax((0,_display_utils.getCurrentTransform)(this.ctx),bbox);this.clip();this.endPath();}}
paintFormXObjectEnd(){if(!this.contentVisible){return;}
this.restore();this.baseTransform=this.baseTransformStack.pop();}
beginGroup(group){if(!this.contentVisible){return;}
this.save();if(this.inSMaskMode){this.endSMaskMode();this.current.activeSMask=null;}
const currentCtx=this.ctx;if(!group.isolated){(0,_util.info)("TODO: Support non-isolated groups.");}
if(group.knockout){(0,_util.warn)("Knockout groups not supported.");}
const currentTransform=(0,_display_utils.getCurrentTransform)(currentCtx);if(group.matrix){currentCtx.transform(...group.matrix);}
if(!group.bbox){throw new Error("Bounding box is required.");}
let bounds=_util.Util.getAxialAlignedBoundingBox(group.bbox,(0,_display_utils.getCurrentTransform)(currentCtx));const canvasBounds=[0,0,currentCtx.canvas.width,currentCtx.canvas.height];bounds=_util.Util.intersect(bounds,canvasBounds)||[0,0,0,0];const offsetX=Math.floor(bounds[0]);const offsetY=Math.floor(bounds[1]);let drawnWidth=Math.max(Math.ceil(bounds[2])-offsetX,1);let drawnHeight=Math.max(Math.ceil(bounds[3])-offsetY,1);let scaleX=1,scaleY=1;if(drawnWidth>MAX_GROUP_SIZE){scaleX=drawnWidth/MAX_GROUP_SIZE;drawnWidth=MAX_GROUP_SIZE;}
if(drawnHeight>MAX_GROUP_SIZE){scaleY=drawnHeight/MAX_GROUP_SIZE;drawnHeight=MAX_GROUP_SIZE;}
this.current.startNewPathAndClipBox([0,0,drawnWidth,drawnHeight]);let cacheId="groupAt"+this.groupLevel;if(group.smask){cacheId+="_smask_"+this.smaskCounter++%2;}
const scratchCanvas=this.cachedCanvases.getCanvas(cacheId,drawnWidth,drawnHeight);const groupCtx=scratchCanvas.context;groupCtx.scale(1/scaleX,1/scaleY);groupCtx.translate(-offsetX,-offsetY);groupCtx.transform(...currentTransform);if(group.smask){this.smaskStack.push({canvas:scratchCanvas.canvas,context:groupCtx,offsetX,offsetY,scaleX,scaleY,subtype:group.smask.subtype,backdrop:group.smask.backdrop,transferMap:group.smask.transferMap||null,startTransformInverse:null});}else{currentCtx.setTransform(1,0,0,1,0,0);currentCtx.translate(offsetX,offsetY);currentCtx.scale(scaleX,scaleY);currentCtx.save();}
copyCtxState(currentCtx,groupCtx);this.ctx=groupCtx;this.setGState([["BM","source-over"],["ca",1],["CA",1]]);this.groupStack.push(currentCtx);this.groupLevel++;}
endGroup(group){if(!this.contentVisible){return;}
this.groupLevel--;const groupCtx=this.ctx;const ctx=this.groupStack.pop();this.ctx=ctx;this.ctx.imageSmoothingEnabled=false;if(group.smask){this.tempSMask=this.smaskStack.pop();this.restore();}else{this.ctx.restore();const currentMtx=(0,_display_utils.getCurrentTransform)(this.ctx);this.restore();this.ctx.save();this.ctx.setTransform(...currentMtx);const dirtyBox=_util.Util.getAxialAlignedBoundingBox([0,0,groupCtx.canvas.width,groupCtx.canvas.height],currentMtx);this.ctx.drawImage(groupCtx.canvas,0,0);this.ctx.restore();this.compose(dirtyBox);}}
beginAnnotation(id,rect,transform,matrix,hasOwnCanvas){_classPrivateMethodGet(this,_restoreInitialState,_restoreInitialState2).call(this);resetCtxToDefault(this.ctx,this.foregroundColor);this.ctx.save();this.save();if(this.baseTransform){this.ctx.setTransform(...this.baseTransform);}
if(Array.isArray(rect)&&rect.length===4){const width=rect[2]-rect[0];const height=rect[3]-rect[1];if(hasOwnCanvas&&this.annotationCanvasMap){transform=transform.slice();transform[4]-=rect[0];transform[5]-=rect[1];rect=rect.slice();rect[0]=rect[1]=0;rect[2]=width;rect[3]=height;const[scaleX,scaleY]=_util.Util.singularValueDecompose2dScale((0,_display_utils.getCurrentTransform)(this.ctx));const{viewportScale}=this;const canvasWidth=Math.ceil(width*this.outputScaleX*viewportScale);const canvasHeight=Math.ceil(height*this.outputScaleY*viewportScale);this.annotationCanvas=this.canvasFactory.create(canvasWidth,canvasHeight);const{canvas,context}=this.annotationCanvas;this.annotationCanvasMap.set(id,canvas);this.annotationCanvas.savedCtx=this.ctx;this.ctx=context;this.ctx.setTransform(scaleX,0,0,-scaleY,0,height*scaleY);resetCtxToDefault(this.ctx,this.foregroundColor);}else{resetCtxToDefault(this.ctx,this.foregroundColor);this.ctx.rect(rect[0],rect[1],width,height);this.ctx.clip();this.endPath();}}
this.current=new CanvasExtraState(this.ctx.canvas.width,this.ctx.canvas.height);this.transform(...transform);this.transform(...matrix);}
endAnnotation(){if(this.annotationCanvas){this.ctx=this.annotationCanvas.savedCtx;delete this.annotationCanvas.savedCtx;delete this.annotationCanvas;}}
paintImageMaskXObject(img){if(!this.contentVisible){return;}
const count=img.count;img=this.getObject(img.data,img);img.count=count;const ctx=this.ctx;const glyph=this.processingType3;if(glyph){if(glyph.compiled===undefined){glyph.compiled=compileType3Glyph(img);}
if(glyph.compiled){glyph.compiled(ctx);return;}}
const mask=this._createMaskCanvas(img);const maskCanvas=mask.canvas;ctx.save();ctx.setTransform(1,0,0,1,0,0);ctx.drawImage(maskCanvas,mask.offsetX,mask.offsetY);ctx.restore();this.compose();}
paintImageMaskXObjectRepeat(img,scaleX){let skewX=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;let skewY=arguments.length>3&&arguments[3]!==undefined?arguments[3]:0;let scaleY=arguments.length>4?arguments[4]:undefined;let positions=arguments.length>5?arguments[5]:undefined;if(!this.contentVisible){return;}
img=this.getObject(img.data,img);const ctx=this.ctx;ctx.save();const currentTransform=(0,_display_utils.getCurrentTransform)(ctx);ctx.transform(scaleX,skewX,skewY,scaleY,0,0);const mask=this._createMaskCanvas(img);ctx.setTransform(1,0,0,1,0,0);for(let i=0,ii=positions.length;i<ii;i+=2){const trans=_util.Util.transform(currentTransform,[scaleX,skewX,skewY,scaleY,positions[i],positions[i+1]]);const[x,y]=_util.Util.applyTransform([0,0],trans);ctx.drawImage(mask.canvas,x,y);}
ctx.restore();this.compose();}
paintImageMaskXObjectGroup(images){if(!this.contentVisible){return;}
const ctx=this.ctx;const fillColor=this.current.fillColor;const isPatternFill=this.current.patternFill;for(const image of images){const{data,width,height,transform}=image;const maskCanvas=this.cachedCanvases.getCanvas("maskCanvas",width,height);const maskCtx=maskCanvas.context;maskCtx.save();const img=this.getObject(data,image);putBinaryImageMask(maskCtx,img);maskCtx.globalCompositeOperation="source-in";maskCtx.fillStyle=isPatternFill?fillColor.getPattern(maskCtx,this,(0,_display_utils.getCurrentTransformInverse)(ctx),_pattern_helper.PathType.FILL):fillColor;maskCtx.fillRect(0,0,width,height);maskCtx.restore();ctx.save();ctx.transform(...transform);ctx.scale(1,-1);drawImageAtIntegerCoords(ctx,maskCanvas.canvas,0,0,width,height,0,-1,1,1);ctx.restore();}
this.compose();}
paintImageXObject(objId){if(!this.contentVisible){return;}
const imgData=this.getObject(objId);if(!imgData){(0,_util.warn)("Dependent image isn't ready yet");return;}
this.paintInlineImageXObject(imgData);}
paintImageXObjectRepeat(objId,scaleX,scaleY,positions){if(!this.contentVisible){return;}
const imgData=this.getObject(objId);if(!imgData){(0,_util.warn)("Dependent image isn't ready yet");return;}
const width=imgData.width;const height=imgData.height;const map=[];for(let i=0,ii=positions.length;i<ii;i+=2){map.push({transform:[scaleX,0,0,scaleY,positions[i],positions[i+1]],x:0,y:0,w:width,h:height});}
this.paintInlineImageXObjectGroup(imgData,map);}
paintInlineImageXObject(imgData){if(!this.contentVisible){return;}
const width=imgData.width;const height=imgData.height;const ctx=this.ctx;this.save();ctx.scale(1/width,-1/height);let imgToPaint;if(typeof HTMLElement==="function"&&imgData instanceof HTMLElement||!imgData.data){imgToPaint=imgData;}else{const tmpCanvas=this.cachedCanvases.getCanvas("inlineImage",width,height);const tmpCtx=tmpCanvas.context;putBinaryImageData(tmpCtx,imgData,this.current.transferMaps);imgToPaint=tmpCanvas.canvas;}
const scaled=this._scaleImage(imgToPaint,(0,_display_utils.getCurrentTransformInverse)(ctx));ctx.imageSmoothingEnabled=getImageSmoothingEnabled((0,_display_utils.getCurrentTransform)(ctx),imgData.interpolate);const[rWidth,rHeight]=drawImageAtIntegerCoords(ctx,scaled.img,0,0,scaled.paintWidth,scaled.paintHeight,0,-height,width,height);if(this.imageLayer){const[left,top]=_util.Util.applyTransform([0,-height],(0,_display_utils.getCurrentTransform)(this.ctx));this.imageLayer.appendImage({imgData,left,top,width:rWidth,height:rHeight});}
this.compose();this.restore();}
paintInlineImageXObjectGroup(imgData,map){if(!this.contentVisible){return;}
const ctx=this.ctx;const w=imgData.width;const h=imgData.height;const tmpCanvas=this.cachedCanvases.getCanvas("inlineImage",w,h);const tmpCtx=tmpCanvas.context;putBinaryImageData(tmpCtx,imgData,this.current.transferMaps);for(const entry of map){ctx.save();ctx.transform(...entry.transform);ctx.scale(1,-1);drawImageAtIntegerCoords(ctx,tmpCanvas.canvas,entry.x,entry.y,entry.w,entry.h,0,-1,1,1);if(this.imageLayer){const[left,top]=_util.Util.applyTransform([entry.x,entry.y],(0,_display_utils.getCurrentTransform)(this.ctx));this.imageLayer.appendImage({imgData,left,top,width:w,height:h});}
ctx.restore();}
this.compose();}
paintSolidColorImageMask(){if(!this.contentVisible){return;}
this.ctx.fillRect(0,0,1,1);this.compose();}
markPoint(tag){}
markPointProps(tag,properties){}
beginMarkedContent(tag){this.markedContentStack.push({visible:true});}
beginMarkedContentProps(tag,properties){if(tag==="OC"){this.markedContentStack.push({visible:this.optionalContentConfig.isVisible(properties)});}else{this.markedContentStack.push({visible:true});}
this.contentVisible=this.isContentVisible();}
endMarkedContent(){this.markedContentStack.pop();this.contentVisible=this.isContentVisible();}
beginCompat(){}
endCompat(){}
consumePath(clipBox){const isEmpty=this.current.isEmptyClip();if(this.pendingClip){this.current.updateClipFromPath();}
if(!this.pendingClip){this.compose(clipBox);}
const ctx=this.ctx;if(this.pendingClip){if(!isEmpty){if(this.pendingClip===EO_CLIP){ctx.clip("evenodd");}else{ctx.clip();}}
this.pendingClip=null;}
this.current.startNewPathAndClipBox(this.current.clipBox);ctx.beginPath();}
getSinglePixelWidth(){if(!this._cachedGetSinglePixelWidth){const m=(0,_display_utils.getCurrentTransform)(this.ctx);if(m[1]===0&&m[2]===0){this._cachedGetSinglePixelWidth=1/Math.min(Math.abs(m[0]),Math.abs(m[3]));}else{const absDet=Math.abs(m[0]*m[3]-m[2]*m[1]);const normX=Math.hypot(m[0],m[2]);const normY=Math.hypot(m[1],m[3]);this._cachedGetSinglePixelWidth=Math.max(normX,normY)/absDet;}}
return this._cachedGetSinglePixelWidth;}
getScaleForStroking(){if(!this._cachedScaleForStroking){const{lineWidth}=this.current;const m=(0,_display_utils.getCurrentTransform)(this.ctx);let scaleX,scaleY;if(m[1]===0&&m[2]===0){const normX=Math.abs(m[0]);const normY=Math.abs(m[3]);if(lineWidth===0){scaleX=1/normX;scaleY=1/normY;}else{const scaledXLineWidth=normX*lineWidth;const scaledYLineWidth=normY*lineWidth;scaleX=scaledXLineWidth<1?1/scaledXLineWidth:1;scaleY=scaledYLineWidth<1?1/scaledYLineWidth:1;}}else{const absDet=Math.abs(m[0]*m[3]-m[2]*m[1]);const normX=Math.hypot(m[0],m[1]);const normY=Math.hypot(m[2],m[3]);if(lineWidth===0){scaleX=normY/absDet;scaleY=normX/absDet;}else{const baseArea=lineWidth*absDet;scaleX=normY>baseArea?normY/baseArea:1;scaleY=normX>baseArea?normX/baseArea:1;}}
this._cachedScaleForStroking=[scaleX,scaleY];}
return this._cachedScaleForStroking;}
rescaleAndStroke(saveRestore){const{ctx}=this;const{lineWidth}=this.current;const[scaleX,scaleY]=this.getScaleForStroking();ctx.lineWidth=lineWidth||1;if(scaleX===1&&scaleY===1){ctx.stroke();return;}
let savedMatrix,savedDashes,savedDashOffset;if(saveRestore){savedMatrix=(0,_display_utils.getCurrentTransform)(ctx);savedDashes=ctx.getLineDash().slice();savedDashOffset=ctx.lineDashOffset;}
ctx.scale(scaleX,scaleY);const scale=Math.max(scaleX,scaleY);ctx.setLineDash(ctx.getLineDash().map(x=>x/scale));ctx.lineDashOffset/=scale;ctx.stroke();if(saveRestore){ctx.setTransform(...savedMatrix);ctx.setLineDash(savedDashes);ctx.lineDashOffset=savedDashOffset;}}
isContentVisible(){for(let i=this.markedContentStack.length-1;i>=0;i--){if(!this.markedContentStack[i].visible){return false;}}
return true;}}
exports.CanvasGraphics=CanvasGraphics;function _restoreInitialState2(){while(this.stateStack.length||this.inSMaskMode){this.restore();}
this.ctx.restore();if(this.transparentCanvas){this.ctx=this.compositeCtx;this.ctx.save();this.ctx.setTransform(1,0,0,1,0,0);this.ctx.drawImage(this.transparentCanvas,0,0);this.ctx.restore();this.transparentCanvas=null;}}
for(const op in _util.OPS){if(CanvasGraphics.prototype[op]!==undefined){CanvasGraphics.prototype[_util.OPS[op]]=CanvasGraphics.prototype[op];}}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.TilingPattern=exports.PathType=void 0;exports.getShadingPattern=getShadingPattern;var _util=__w_pdfjs_require__(1);var _display_utils=__w_pdfjs_require__(133);var _is_node=__w_pdfjs_require__(3);const PathType={FILL:"Fill",STROKE:"Stroke",SHADING:"Shading"};exports.PathType=PathType;function applyBoundingBox(ctx,bbox){if(!bbox||_is_node.isNodeJS){return;}
const width=bbox[2]-bbox[0];const height=bbox[3]-bbox[1];const region=new Path2D();region.rect(bbox[0],bbox[1],width,height);ctx.clip(region);}
class BaseShadingPattern{constructor(){if(this.constructor===BaseShadingPattern){(0,_util.unreachable)("Cannot initialize BaseShadingPattern.");}}
getPattern(){(0,_util.unreachable)("Abstract method `getPattern` called.");}}
class RadialAxialShadingPattern extends BaseShadingPattern{constructor(IR){super();this._type=IR[1];this._bbox=IR[2];this._colorStops=IR[3];this._p0=IR[4];this._p1=IR[5];this._r0=IR[6];this._r1=IR[7];this.matrix=null;}
_createGradient(ctx){let grad;if(this._type==="axial"){grad=ctx.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]);}else if(this._type==="radial"){grad=ctx.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1);}
for(const colorStop of this._colorStops){grad.addColorStop(colorStop[0],colorStop[1]);}
return grad;}
getPattern(ctx,owner,inverse,pathType){let pattern;if(pathType===PathType.STROKE||pathType===PathType.FILL){const ownerBBox=owner.current.getClippedPathBoundingBox(pathType,(0,_display_utils.getCurrentTransform)(ctx))||[0,0,0,0];const width=Math.ceil(ownerBBox[2]-ownerBBox[0])||1;const height=Math.ceil(ownerBBox[3]-ownerBBox[1])||1;const tmpCanvas=owner.cachedCanvases.getCanvas("pattern",width,height,true);const tmpCtx=tmpCanvas.context;tmpCtx.clearRect(0,0,tmpCtx.canvas.width,tmpCtx.canvas.height);tmpCtx.beginPath();tmpCtx.rect(0,0,tmpCtx.canvas.width,tmpCtx.canvas.height);tmpCtx.translate(-ownerBBox[0],-ownerBBox[1]);inverse=_util.Util.transform(inverse,[1,0,0,1,ownerBBox[0],ownerBBox[1]]);tmpCtx.transform(...owner.baseTransform);if(this.matrix){tmpCtx.transform(...this.matrix);}
applyBoundingBox(tmpCtx,this._bbox);tmpCtx.fillStyle=this._createGradient(tmpCtx);tmpCtx.fill();pattern=ctx.createPattern(tmpCanvas.canvas,"no-repeat");const domMatrix=new DOMMatrix(inverse);try{pattern.setTransform(domMatrix);}catch(ex){(0,_util.warn)(`RadialAxialShadingPattern.getPattern: "${ex === null || ex === void 0 ? void 0 : ex.message}".`);}}else{applyBoundingBox(ctx,this._bbox);pattern=this._createGradient(ctx);}
return pattern;}}
function drawTriangle(data,context,p1,p2,p3,c1,c2,c3){const coords=context.coords,colors=context.colors;const bytes=data.data,rowSize=data.width*4;let tmp;if(coords[p1+1]>coords[p2+1]){tmp=p1;p1=p2;p2=tmp;tmp=c1;c1=c2;c2=tmp;}
if(coords[p2+1]>coords[p3+1]){tmp=p2;p2=p3;p3=tmp;tmp=c2;c2=c3;c3=tmp;}
if(coords[p1+1]>coords[p2+1]){tmp=p1;p1=p2;p2=tmp;tmp=c1;c1=c2;c2=tmp;}
const x1=(coords[p1]+context.offsetX)*context.scaleX;const y1=(coords[p1+1]+context.offsetY)*context.scaleY;const x2=(coords[p2]+context.offsetX)*context.scaleX;const y2=(coords[p2+1]+context.offsetY)*context.scaleY;const x3=(coords[p3]+context.offsetX)*context.scaleX;const y3=(coords[p3+1]+context.offsetY)*context.scaleY;if(y1>=y3){return;}
const c1r=colors[c1],c1g=colors[c1+1],c1b=colors[c1+2];const c2r=colors[c2],c2g=colors[c2+1],c2b=colors[c2+2];const c3r=colors[c3],c3g=colors[c3+1],c3b=colors[c3+2];const minY=Math.round(y1),maxY=Math.round(y3);let xa,car,cag,cab;let xb,cbr,cbg,cbb;for(let y=minY;y<=maxY;y++){if(y<y2){let k;if(y<y1){k=0;}else{k=(y1-y)/(y1-y2);}
xa=x1-(x1-x2)*k;car=c1r-(c1r-c2r)*k;cag=c1g-(c1g-c2g)*k;cab=c1b-(c1b-c2b)*k;}else{let k;if(y>y3){k=1;}else if(y2===y3){k=0;}else{k=(y2-y)/(y2-y3);}
xa=x2-(x2-x3)*k;car=c2r-(c2r-c3r)*k;cag=c2g-(c2g-c3g)*k;cab=c2b-(c2b-c3b)*k;}
let k;if(y<y1){k=0;}else if(y>y3){k=1;}else{k=(y1-y)/(y1-y3);}
xb=x1-(x1-x3)*k;cbr=c1r-(c1r-c3r)*k;cbg=c1g-(c1g-c3g)*k;cbb=c1b-(c1b-c3b)*k;const x1_=Math.round(Math.min(xa,xb));const x2_=Math.round(Math.max(xa,xb));let j=rowSize*y+x1_*4;for(let x=x1_;x<=x2_;x++){k=(xa-x)/(xa-xb);if(k<0){k=0;}else if(k>1){k=1;}
bytes[j++]=car-(car-cbr)*k|0;bytes[j++]=cag-(cag-cbg)*k|0;bytes[j++]=cab-(cab-cbb)*k|0;bytes[j++]=255;}}}
function drawFigure(data,figure,context){const ps=figure.coords;const cs=figure.colors;let i,ii;switch(figure.type){case"lattice":const verticesPerRow=figure.verticesPerRow;const rows=Math.floor(ps.length/verticesPerRow)-1;const cols=verticesPerRow-1;for(i=0;i<rows;i++){let q=i*verticesPerRow;for(let j=0;j<cols;j++,q++){drawTriangle(data,context,ps[q],ps[q+1],ps[q+verticesPerRow],cs[q],cs[q+1],cs[q+verticesPerRow]);drawTriangle(data,context,ps[q+verticesPerRow+1],ps[q+1],ps[q+verticesPerRow],cs[q+verticesPerRow+1],cs[q+1],cs[q+verticesPerRow]);}}
break;case"triangles":for(i=0,ii=ps.length;i<ii;i+=3){drawTriangle(data,context,ps[i],ps[i+1],ps[i+2],cs[i],cs[i+1],cs[i+2]);}
break;default:throw new Error("illegal figure");}}
class MeshShadingPattern extends BaseShadingPattern{constructor(IR){super();this._coords=IR[2];this._colors=IR[3];this._figures=IR[4];this._bounds=IR[5];this._bbox=IR[7];this._background=IR[8];this.matrix=null;}
_createMeshCanvas(combinedScale,backgroundColor,cachedCanvases){const EXPECTED_SCALE=1.1;const MAX_PATTERN_SIZE=3000;const BORDER_SIZE=2;const offsetX=Math.floor(this._bounds[0]);const offsetY=Math.floor(this._bounds[1]);const boundsWidth=Math.ceil(this._bounds[2])-offsetX;const boundsHeight=Math.ceil(this._bounds[3])-offsetY;const width=Math.min(Math.ceil(Math.abs(boundsWidth*combinedScale[0]*EXPECTED_SCALE)),MAX_PATTERN_SIZE);const height=Math.min(Math.ceil(Math.abs(boundsHeight*combinedScale[1]*EXPECTED_SCALE)),MAX_PATTERN_SIZE);const scaleX=boundsWidth/width;const scaleY=boundsHeight/height;const context={coords:this._coords,colors:this._colors,offsetX:-offsetX,offsetY:-offsetY,scaleX:1/scaleX,scaleY:1/scaleY};const paddedWidth=width+BORDER_SIZE*2;const paddedHeight=height+BORDER_SIZE*2;const tmpCanvas=cachedCanvases.getCanvas("mesh",paddedWidth,paddedHeight,false);const tmpCtx=tmpCanvas.context;const data=tmpCtx.createImageData(width,height);if(backgroundColor){const bytes=data.data;for(let i=0,ii=bytes.length;i<ii;i+=4){bytes[i]=backgroundColor[0];bytes[i+1]=backgroundColor[1];bytes[i+2]=backgroundColor[2];bytes[i+3]=255;}}
for(const figure of this._figures){drawFigure(data,figure,context);}
tmpCtx.putImageData(data,BORDER_SIZE,BORDER_SIZE);const canvas=tmpCanvas.canvas;return{canvas,offsetX:offsetX-BORDER_SIZE*scaleX,offsetY:offsetY-BORDER_SIZE*scaleY,scaleX,scaleY};}
getPattern(ctx,owner,inverse,pathType){applyBoundingBox(ctx,this._bbox);let scale;if(pathType===PathType.SHADING){scale=_util.Util.singularValueDecompose2dScale((0,_display_utils.getCurrentTransform)(ctx));}else{scale=_util.Util.singularValueDecompose2dScale(owner.baseTransform);if(this.matrix){const matrixScale=_util.Util.singularValueDecompose2dScale(this.matrix);scale=[scale[0]*matrixScale[0],scale[1]*matrixScale[1]];}}
const temporaryPatternCanvas=this._createMeshCanvas(scale,pathType===PathType.SHADING?null:this._background,owner.cachedCanvases);if(pathType!==PathType.SHADING){ctx.setTransform(...owner.baseTransform);if(this.matrix){ctx.transform(...this.matrix);}}
ctx.translate(temporaryPatternCanvas.offsetX,temporaryPatternCanvas.offsetY);ctx.scale(temporaryPatternCanvas.scaleX,temporaryPatternCanvas.scaleY);return ctx.createPattern(temporaryPatternCanvas.canvas,"no-repeat");}}
class DummyShadingPattern extends BaseShadingPattern{getPattern(){return"hotpink";}}
function getShadingPattern(IR){switch(IR[0]){case"RadialAxial":return new RadialAxialShadingPattern(IR);case"Mesh":return new MeshShadingPattern(IR);case"Dummy":return new DummyShadingPattern();}
throw new Error(`Unknown IR type: ${IR[0]}`);}
const PaintType={COLORED:1,UNCOLORED:2};class TilingPattern{static get MAX_PATTERN_SIZE(){return(0,_util.shadow)(this,"MAX_PATTERN_SIZE",3000);}
constructor(IR,color,ctx,canvasGraphicsFactory,baseTransform){this.operatorList=IR[2];this.matrix=IR[3]||[1,0,0,1,0,0];this.bbox=IR[4];this.xstep=IR[5];this.ystep=IR[6];this.paintType=IR[7];this.tilingType=IR[8];this.color=color;this.ctx=ctx;this.canvasGraphicsFactory=canvasGraphicsFactory;this.baseTransform=baseTransform;}
createPatternCanvas(owner){const operatorList=this.operatorList;const bbox=this.bbox;const xstep=this.xstep;const ystep=this.ystep;const paintType=this.paintType;const tilingType=this.tilingType;const color=this.color;const canvasGraphicsFactory=this.canvasGraphicsFactory;(0,_util.info)("TilingType: "+tilingType);const x0=bbox[0],y0=bbox[1],x1=bbox[2],y1=bbox[3];const matrixScale=_util.Util.singularValueDecompose2dScale(this.matrix);const curMatrixScale=_util.Util.singularValueDecompose2dScale(this.baseTransform);const combinedScale=[matrixScale[0]*curMatrixScale[0],matrixScale[1]*curMatrixScale[1]];const dimx=this.getSizeAndScale(xstep,this.ctx.canvas.width,combinedScale[0]);const dimy=this.getSizeAndScale(ystep,this.ctx.canvas.height,combinedScale[1]);const tmpCanvas=owner.cachedCanvases.getCanvas("pattern",dimx.size,dimy.size,true);const tmpCtx=tmpCanvas.context;const graphics=canvasGraphicsFactory.createCanvasGraphics(tmpCtx);graphics.groupLevel=owner.groupLevel;this.setFillAndStrokeStyleToContext(graphics,paintType,color);let adjustedX0=x0;let adjustedY0=y0;let adjustedX1=x1;let adjustedY1=y1;if(x0<0){adjustedX0=0;adjustedX1+=Math.abs(x0);}
if(y0<0){adjustedY0=0;adjustedY1+=Math.abs(y0);}
tmpCtx.translate(-(dimx.scale*adjustedX0),-(dimy.scale*adjustedY0));graphics.transform(dimx.scale,0,0,dimy.scale,0,0);tmpCtx.save();this.clipBbox(graphics,adjustedX0,adjustedY0,adjustedX1,adjustedY1);graphics.baseTransform=(0,_display_utils.getCurrentTransform)(graphics.ctx);graphics.executeOperatorList(operatorList);graphics.endDrawing();return{canvas:tmpCanvas.canvas,scaleX:dimx.scale,scaleY:dimy.scale,offsetX:adjustedX0,offsetY:adjustedY0};}
getSizeAndScale(step,realOutputSize,scale){step=Math.abs(step);const maxSize=Math.max(TilingPattern.MAX_PATTERN_SIZE,realOutputSize);let size=Math.ceil(step*scale);if(size>=maxSize){size=maxSize;}else{scale=size/step;}
return{scale,size};}
clipBbox(graphics,x0,y0,x1,y1){const bboxWidth=x1-x0;const bboxHeight=y1-y0;graphics.ctx.rect(x0,y0,bboxWidth,bboxHeight);graphics.current.updateRectMinMax((0,_display_utils.getCurrentTransform)(graphics.ctx),[x0,y0,x1,y1]);graphics.clip();graphics.endPath();}
setFillAndStrokeStyleToContext(graphics,paintType,color){const context=graphics.ctx,current=graphics.current;switch(paintType){case PaintType.COLORED:const ctx=this.ctx;context.fillStyle=ctx.fillStyle;context.strokeStyle=ctx.strokeStyle;current.fillColor=ctx.fillStyle;current.strokeColor=ctx.strokeStyle;break;case PaintType.UNCOLORED:const cssColor=_util.Util.makeHexColor(color[0],color[1],color[2]);context.fillStyle=cssColor;context.strokeStyle=cssColor;current.fillColor=cssColor;current.strokeColor=cssColor;break;default:throw new _util.FormatError(`Unsupported paint type: ${paintType}`);}}
getPattern(ctx,owner,inverse,pathType){let matrix=inverse;if(pathType!==PathType.SHADING){matrix=_util.Util.transform(matrix,owner.baseTransform);if(this.matrix){matrix=_util.Util.transform(matrix,this.matrix);}}
const temporaryPatternCanvas=this.createPatternCanvas(owner);let domMatrix=new DOMMatrix(matrix);domMatrix=domMatrix.translate(temporaryPatternCanvas.offsetX,temporaryPatternCanvas.offsetY);domMatrix=domMatrix.scale(1/temporaryPatternCanvas.scaleX,1/temporaryPatternCanvas.scaleY);const pattern=ctx.createPattern(temporaryPatternCanvas.canvas,"repeat");try{pattern.setTransform(domMatrix);}catch(ex){(0,_util.warn)(`TilingPattern.getPattern: "${ex === null || ex === void 0 ? void 0 : ex.message}".`);}
return pattern;}}
exports.TilingPattern=TilingPattern;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.applyMaskImageData=applyMaskImageData;var _util=__w_pdfjs_require__(1);function applyMaskImageData(_ref){let{src,srcPos=0,dest,destPos=0,width,height,inverseDecode=false}=_ref;const opaque=_util.FeatureTest.isLittleEndian?0xff000000:0x000000ff;const[zeroMapping,oneMapping]=!inverseDecode?[opaque,0]:[0,opaque];const widthInSource=width>>3;const widthRemainder=width&7;const srcLength=src.length;dest=new Uint32Array(dest.buffer);for(let i=0;i<height;i++){for(const max=srcPos+widthInSource;srcPos<max;srcPos++){const elem=srcPos<srcLength?src[srcPos]:255;dest[destPos++]=elem&0b10000000?oneMapping:zeroMapping;dest[destPos++]=elem&0b1000000?oneMapping:zeroMapping;dest[destPos++]=elem&0b100000?oneMapping:zeroMapping;dest[destPos++]=elem&0b10000?oneMapping:zeroMapping;dest[destPos++]=elem&0b1000?oneMapping:zeroMapping;dest[destPos++]=elem&0b100?oneMapping:zeroMapping;dest[destPos++]=elem&0b10?oneMapping:zeroMapping;dest[destPos++]=elem&0b1?oneMapping:zeroMapping;}
if(widthRemainder===0){continue;}
const elem=srcPos<srcLength?src[srcPos++]:255;for(let j=0;j<widthRemainder;j++){dest[destPos++]=elem&1<<7-j?oneMapping:zeroMapping;}}
return{srcPos,destPos};}}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.GlobalWorkerOptions=void 0;const GlobalWorkerOptions=Object.create(null);exports.GlobalWorkerOptions=GlobalWorkerOptions;GlobalWorkerOptions.workerPort=GlobalWorkerOptions.workerPort===undefined?null:GlobalWorkerOptions.workerPort;GlobalWorkerOptions.workerSrc=GlobalWorkerOptions.workerSrc===undefined?"":GlobalWorkerOptions.workerSrc;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.MessageHandler=void 0;var _util=__w_pdfjs_require__(1);const CallbackKind={UNKNOWN:0,DATA:1,ERROR:2};const StreamKind={UNKNOWN:0,CANCEL:1,CANCEL_COMPLETE:2,CLOSE:3,ENQUEUE:4,ERROR:5,PULL:6,PULL_COMPLETE:7,START_COMPLETE:8};function wrapReason(reason){if(!(reason instanceof Error||typeof reason==="object"&&reason!==null)){(0,_util.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');}
switch(reason.name){case"AbortException":return new _util.AbortException(reason.message);case"MissingPDFException":return new _util.MissingPDFException(reason.message);case"PasswordException":return new _util.PasswordException(reason.message,reason.code);case"UnexpectedResponseException":return new _util.UnexpectedResponseException(reason.message,reason.status);case"UnknownErrorException":return new _util.UnknownErrorException(reason.message,reason.details);default:return new _util.UnknownErrorException(reason.message,reason.toString());}}
class MessageHandler{constructor(sourceName,targetName,comObj){this.sourceName=sourceName;this.targetName=targetName;this.comObj=comObj;this.callbackId=1;this.streamId=1;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);this._onComObjOnMessage=event=>{const data=event.data;if(data.targetName!==this.sourceName){return;}
if(data.stream){this._processStreamMessage(data);return;}
if(data.callback){const callbackId=data.callbackId;const capability=this.callbackCapabilities[callbackId];if(!capability){throw new Error(`Cannot resolve callback ${callbackId}`);}
delete this.callbackCapabilities[callbackId];if(data.callback===CallbackKind.DATA){capability.resolve(data.data);}else if(data.callback===CallbackKind.ERROR){capability.reject(wrapReason(data.reason));}else{throw new Error("Unexpected callback case");}
return;}
const action=this.actionHandler[data.action];if(!action){throw new Error(`Unknown action from worker: ${data.action}`);}
if(data.callbackId){const cbSourceName=this.sourceName;const cbTargetName=data.sourceName;new Promise(function(resolve){resolve(action(data.data));}).then(function(result){comObj.postMessage({sourceName:cbSourceName,targetName:cbTargetName,callback:CallbackKind.DATA,callbackId:data.callbackId,data:result});},function(reason){comObj.postMessage({sourceName:cbSourceName,targetName:cbTargetName,callback:CallbackKind.ERROR,callbackId:data.callbackId,reason:wrapReason(reason)});});return;}
if(data.streamId){this._createStreamSink(data);return;}
action(data.data);};comObj.addEventListener("message",this._onComObjOnMessage);}
on(actionName,handler){const ah=this.actionHandler;if(ah[actionName]){throw new Error(`There is already an actionName called "${actionName}"`);}
ah[actionName]=handler;}
send(actionName,data,transfers){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:actionName,data},transfers);}
sendWithPromise(actionName,data,transfers){const callbackId=this.callbackId++;const capability=(0,_util.createPromiseCapability)();this.callbackCapabilities[callbackId]=capability;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:actionName,callbackId,data},transfers);}catch(ex){capability.reject(ex);}
return capability.promise;}
sendWithStream(actionName,data,queueingStrategy,transfers){const streamId=this.streamId++,sourceName=this.sourceName,targetName=this.targetName,comObj=this.comObj;return new ReadableStream({start:controller=>{const startCapability=(0,_util.createPromiseCapability)();this.streamControllers[streamId]={controller,startCall:startCapability,pullCall:null,cancelCall:null,isClosed:false};comObj.postMessage({sourceName,targetName,action:actionName,streamId,data,desiredSize:controller.desiredSize},transfers);return startCapability.promise;},pull:controller=>{const pullCapability=(0,_util.createPromiseCapability)();this.streamControllers[streamId].pullCall=pullCapability;comObj.postMessage({sourceName,targetName,stream:StreamKind.PULL,streamId,desiredSize:controller.desiredSize});return pullCapability.promise;},cancel:reason=>{(0,_util.assert)(reason instanceof Error,"cancel must have a valid reason");const cancelCapability=(0,_util.createPromiseCapability)();this.streamControllers[streamId].cancelCall=cancelCapability;this.streamControllers[streamId].isClosed=true;comObj.postMessage({sourceName,targetName,stream:StreamKind.CANCEL,streamId,reason:wrapReason(reason)});return cancelCapability.promise;}},queueingStrategy);}
_createStreamSink(data){const streamId=data.streamId,sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj;const self=this,action=this.actionHandler[data.action];const streamSink={enqueue(chunk){let size=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;let transfers=arguments.length>2?arguments[2]:undefined;if(this.isCancelled){return;}
const lastDesiredSize=this.desiredSize;this.desiredSize-=size;if(lastDesiredSize>0&&this.desiredSize<=0){this.sinkCapability=(0,_util.createPromiseCapability)();this.ready=this.sinkCapability.promise;}
comObj.postMessage({sourceName,targetName,stream:StreamKind.ENQUEUE,streamId,chunk},transfers);},close(){if(this.isCancelled){return;}
this.isCancelled=true;comObj.postMessage({sourceName,targetName,stream:StreamKind.CLOSE,streamId});delete self.streamSinks[streamId];},error(reason){(0,_util.assert)(reason instanceof Error,"error must have a valid reason");if(this.isCancelled){return;}
this.isCancelled=true;comObj.postMessage({sourceName,targetName,stream:StreamKind.ERROR,streamId,reason:wrapReason(reason)});},sinkCapability:(0,_util.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:false,desiredSize:data.desiredSize,ready:null};streamSink.sinkCapability.resolve();streamSink.ready=streamSink.sinkCapability.promise;this.streamSinks[streamId]=streamSink;new Promise(function(resolve){resolve(action(data.data,streamSink));}).then(function(){comObj.postMessage({sourceName,targetName,stream:StreamKind.START_COMPLETE,streamId,success:true});},function(reason){comObj.postMessage({sourceName,targetName,stream:StreamKind.START_COMPLETE,streamId,reason:wrapReason(reason)});});}
_processStreamMessage(data){const streamId=data.streamId,sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj;const streamController=this.streamControllers[streamId],streamSink=this.streamSinks[streamId];switch(data.stream){case StreamKind.START_COMPLETE:if(data.success){streamController.startCall.resolve();}else{streamController.startCall.reject(wrapReason(data.reason));}
break;case StreamKind.PULL_COMPLETE:if(data.success){streamController.pullCall.resolve();}else{streamController.pullCall.reject(wrapReason(data.reason));}
break;case StreamKind.PULL:if(!streamSink){comObj.postMessage({sourceName,targetName,stream:StreamKind.PULL_COMPLETE,streamId,success:true});break;}
if(streamSink.desiredSize<=0&&data.desiredSize>0){streamSink.sinkCapability.resolve();}
streamSink.desiredSize=data.desiredSize;new Promise(function(resolve){resolve(streamSink.onPull&&streamSink.onPull());}).then(function(){comObj.postMessage({sourceName,targetName,stream:StreamKind.PULL_COMPLETE,streamId,success:true});},function(reason){comObj.postMessage({sourceName,targetName,stream:StreamKind.PULL_COMPLETE,streamId,reason:wrapReason(reason)});});break;case StreamKind.ENQUEUE:(0,_util.assert)(streamController,"enqueue should have stream controller");if(streamController.isClosed){break;}
streamController.controller.enqueue(data.chunk);break;case StreamKind.CLOSE:(0,_util.assert)(streamController,"close should have stream controller");if(streamController.isClosed){break;}
streamController.isClosed=true;streamController.controller.close();this._deleteStreamController(streamController,streamId);break;case StreamKind.ERROR:(0,_util.assert)(streamController,"error should have stream controller");streamController.controller.error(wrapReason(data.reason));this._deleteStreamController(streamController,streamId);break;case StreamKind.CANCEL_COMPLETE:if(data.success){streamController.cancelCall.resolve();}else{streamController.cancelCall.reject(wrapReason(data.reason));}
this._deleteStreamController(streamController,streamId);break;case StreamKind.CANCEL:if(!streamSink){break;}
new Promise(function(resolve){resolve(streamSink.onCancel&&streamSink.onCancel(wrapReason(data.reason)));}).then(function(){comObj.postMessage({sourceName,targetName,stream:StreamKind.CANCEL_COMPLETE,streamId,success:true});},function(reason){comObj.postMessage({sourceName,targetName,stream:StreamKind.CANCEL_COMPLETE,streamId,reason:wrapReason(reason)});});streamSink.sinkCapability.reject(wrapReason(data.reason));streamSink.isCancelled=true;delete this.streamSinks[streamId];break;default:throw new Error("Unexpected stream case");}}
async _deleteStreamController(streamController,streamId){await Promise.allSettled([streamController.startCall&&streamController.startCall.promise,streamController.pullCall&&streamController.pullCall.promise,streamController.cancelCall&&streamController.cancelCall.promise]);delete this.streamControllers[streamId];}
destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage);}}
exports.MessageHandler=MessageHandler;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Metadata=void 0;var _util=__w_pdfjs_require__(1);function _classPrivateFieldInitSpec(obj,privateMap,value){_checkPrivateRedeclaration(obj,privateMap);privateMap.set(obj,value);}
function _checkPrivateRedeclaration(obj,privateCollection){if(privateCollection.has(obj)){throw new TypeError("Cannot initialize the same private elements twice on an object");}}
function _classPrivateFieldGet(receiver,privateMap){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"get");return _classApplyDescriptorGet(receiver,descriptor);}
function _classApplyDescriptorGet(receiver,descriptor){if(descriptor.get){return descriptor.get.call(receiver);}return descriptor.value;}
function _classPrivateFieldSet(receiver,privateMap,value){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"set");_classApplyDescriptorSet(receiver,descriptor,value);return value;}
function _classExtractFieldDescriptor(receiver,privateMap,action){if(!privateMap.has(receiver)){throw new TypeError("attempted to "+action+" private field on non-instance");}return privateMap.get(receiver);}
function _classApplyDescriptorSet(receiver,descriptor,value){if(descriptor.set){descriptor.set.call(receiver,value);}else{if(!descriptor.writable){throw new TypeError("attempted to set read only private field");}descriptor.value=value;}}
var _metadataMap=new WeakMap();var _data=new WeakMap();class Metadata{constructor(_ref){let{parsedData,rawData}=_ref;_classPrivateFieldInitSpec(this,_metadataMap,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,_data,{writable:true,value:void 0});_classPrivateFieldSet(this,_metadataMap,parsedData);_classPrivateFieldSet(this,_data,rawData);}
getRaw(){return _classPrivateFieldGet(this,_data);}
get(name){var _classPrivateFieldGet2;return(_classPrivateFieldGet2=_classPrivateFieldGet(this,_metadataMap).get(name))!==null&&_classPrivateFieldGet2!==void 0?_classPrivateFieldGet2:null;}
getAll(){return(0,_util.objectFromMap)(_classPrivateFieldGet(this,_metadataMap));}
has(name){return _classPrivateFieldGet(this,_metadataMap).has(name);}}
exports.Metadata=Metadata;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.OptionalContentConfig=void 0;var _util=__w_pdfjs_require__(1);function _classPrivateMethodInitSpec(obj,privateSet){_checkPrivateRedeclaration(obj,privateSet);privateSet.add(obj);}
function _classPrivateMethodGet(receiver,privateSet,fn){if(!privateSet.has(receiver)){throw new TypeError("attempted to get private field on non-instance");}return fn;}
function _classPrivateFieldInitSpec(obj,privateMap,value){_checkPrivateRedeclaration(obj,privateMap);privateMap.set(obj,value);}
function _checkPrivateRedeclaration(obj,privateCollection){if(privateCollection.has(obj)){throw new TypeError("Cannot initialize the same private elements twice on an object");}}
function _classPrivateFieldSet(receiver,privateMap,value){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"set");_classApplyDescriptorSet(receiver,descriptor,value);return value;}
function _classApplyDescriptorSet(receiver,descriptor,value){if(descriptor.set){descriptor.set.call(receiver,value);}else{if(!descriptor.writable){throw new TypeError("attempted to set read only private field");}descriptor.value=value;}}
function _classPrivateFieldGet(receiver,privateMap){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"get");return _classApplyDescriptorGet(receiver,descriptor);}
function _classExtractFieldDescriptor(receiver,privateMap,action){if(!privateMap.has(receiver)){throw new TypeError("attempted to "+action+" private field on non-instance");}return privateMap.get(receiver);}
function _classApplyDescriptorGet(receiver,descriptor){if(descriptor.get){return descriptor.get.call(receiver);}return descriptor.value;}
const INTERNAL=Symbol("INTERNAL");var _visible=new WeakMap();class OptionalContentGroup{constructor(name,intent){_classPrivateFieldInitSpec(this,_visible,{writable:true,value:true});this.name=name;this.intent=intent;}
get visible(){return _classPrivateFieldGet(this,_visible);}
_setVisible(internal,visible){if(internal!==INTERNAL){(0,_util.unreachable)("Internal method `_setVisible` called.");}
_classPrivateFieldSet(this,_visible,visible);}}
var _cachedHasInitialVisibility=new WeakMap();var _groups=new WeakMap();var _initialVisibility=new WeakMap();var _order=new WeakMap();var _evaluateVisibilityExpression=new WeakSet();class OptionalContentConfig{constructor(data){_classPrivateMethodInitSpec(this,_evaluateVisibilityExpression);_classPrivateFieldInitSpec(this,_cachedHasInitialVisibility,{writable:true,value:true});_classPrivateFieldInitSpec(this,_groups,{writable:true,value:new Map()});_classPrivateFieldInitSpec(this,_initialVisibility,{writable:true,value:null});_classPrivateFieldInitSpec(this,_order,{writable:true,value:null});this.name=null;this.creator=null;if(data===null){return;}
this.name=data.name;this.creator=data.creator;_classPrivateFieldSet(this,_order,data.order);for(const group of data.groups){_classPrivateFieldGet(this,_groups).set(group.id,new OptionalContentGroup(group.name,group.intent));}
if(data.baseState==="OFF"){for(const group of _classPrivateFieldGet(this,_groups).values()){group._setVisible(INTERNAL,false);}}
for(const on of data.on){_classPrivateFieldGet(this,_groups).get(on)._setVisible(INTERNAL,true);}
for(const off of data.off){_classPrivateFieldGet(this,_groups).get(off)._setVisible(INTERNAL,false);}
_classPrivateFieldSet(this,_initialVisibility,new Map());for(const[id,group]of _classPrivateFieldGet(this,_groups)){_classPrivateFieldGet(this,_initialVisibility).set(id,group.visible);}}
isVisible(group){if(_classPrivateFieldGet(this,_groups).size===0){return true;}
if(!group){(0,_util.warn)("Optional content group not defined.");return true;}
if(group.type==="OCG"){if(!_classPrivateFieldGet(this,_groups).has(group.id)){(0,_util.warn)(`Optional content group not found: ${group.id}`);return true;}
return _classPrivateFieldGet(this,_groups).get(group.id).visible;}else if(group.type==="OCMD"){if(group.expression){return _classPrivateMethodGet(this,_evaluateVisibilityExpression,_evaluateVisibilityExpression2).call(this,group.expression);}
if(!group.policy||group.policy==="AnyOn"){for(const id of group.ids){if(!_classPrivateFieldGet(this,_groups).has(id)){(0,_util.warn)(`Optional content group not found: ${id}`);return true;}
if(_classPrivateFieldGet(this,_groups).get(id).visible){return true;}}
return false;}else if(group.policy==="AllOn"){for(const id of group.ids){if(!_classPrivateFieldGet(this,_groups).has(id)){(0,_util.warn)(`Optional content group not found: ${id}`);return true;}
if(!_classPrivateFieldGet(this,_groups).get(id).visible){return false;}}
return true;}else if(group.policy==="AnyOff"){for(const id of group.ids){if(!_classPrivateFieldGet(this,_groups).has(id)){(0,_util.warn)(`Optional content group not found: ${id}`);return true;}
if(!_classPrivateFieldGet(this,_groups).get(id).visible){return true;}}
return false;}else if(group.policy==="AllOff"){for(const id of group.ids){if(!_classPrivateFieldGet(this,_groups).has(id)){(0,_util.warn)(`Optional content group not found: ${id}`);return true;}
if(_classPrivateFieldGet(this,_groups).get(id).visible){return false;}}
return true;}
(0,_util.warn)(`Unknown optional content policy ${group.policy}.`);return true;}
(0,_util.warn)(`Unknown group type ${group.type}.`);return true;}
setVisibility(id){let visible=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(!_classPrivateFieldGet(this,_groups).has(id)){(0,_util.warn)(`Optional content group not found: ${id}`);return;}
_classPrivateFieldGet(this,_groups).get(id)._setVisible(INTERNAL,!!visible);_classPrivateFieldSet(this,_cachedHasInitialVisibility,null);}
get hasInitialVisibility(){if(_classPrivateFieldGet(this,_cachedHasInitialVisibility)!==null){return _classPrivateFieldGet(this,_cachedHasInitialVisibility);}
for(const[id,group]of _classPrivateFieldGet(this,_groups)){const visible=_classPrivateFieldGet(this,_initialVisibility).get(id);if(group.visible!==visible){return _classPrivateFieldSet(this,_cachedHasInitialVisibility,false);}}
return _classPrivateFieldSet(this,_cachedHasInitialVisibility,true);}
getOrder(){if(!_classPrivateFieldGet(this,_groups).size){return null;}
if(_classPrivateFieldGet(this,_order)){return _classPrivateFieldGet(this,_order).slice();}
return[..._classPrivateFieldGet(this,_groups).keys()];}
getGroups(){return _classPrivateFieldGet(this,_groups).size>0?(0,_util.objectFromMap)(_classPrivateFieldGet(this,_groups)):null;}
getGroup(id){return _classPrivateFieldGet(this,_groups).get(id)||null;}}
exports.OptionalContentConfig=OptionalContentConfig;function _evaluateVisibilityExpression2(array){const length=array.length;if(length<2){return true;}
const operator=array[0];for(let i=1;i<length;i++){const element=array[i];let state;if(Array.isArray(element)){state=_classPrivateMethodGet(this,_evaluateVisibilityExpression,_evaluateVisibilityExpression2).call(this,element);}else if(_classPrivateFieldGet(this,_groups).has(element)){state=_classPrivateFieldGet(this,_groups).get(element).visible;}else{(0,_util.warn)(`Optional content group not found: ${element}`);return true;}
switch(operator){case"And":if(!state){return false;}
break;case"Or":if(state){return true;}
break;case"Not":return!state;default:return true;}}
return operator==="And";}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PDFDataTransportStream=void 0;var _util=__w_pdfjs_require__(1);var _display_utils=__w_pdfjs_require__(133);class PDFDataTransportStream{constructor(params,pdfDataRangeTransport){(0,_util.assert)(pdfDataRangeTransport,'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.');this._queuedChunks=[];this._progressiveDone=params.progressiveDone||false;this._contentDispositionFilename=params.contentDispositionFilename||null;const initialData=params.initialData;if((initialData===null||initialData===void 0?void 0:initialData.length)>0){const buffer=new Uint8Array(initialData).buffer;this._queuedChunks.push(buffer);}
this._pdfDataRangeTransport=pdfDataRangeTransport;this._isStreamingSupported=!params.disableStream;this._isRangeSupported=!params.disableRange;this._contentLength=params.length;this._fullRequestReader=null;this._rangeReaders=[];this._pdfDataRangeTransport.addRangeListener((begin,chunk)=>{this._onReceiveData({begin,chunk});});this._pdfDataRangeTransport.addProgressListener((loaded,total)=>{this._onProgress({loaded,total});});this._pdfDataRangeTransport.addProgressiveReadListener(chunk=>{this._onReceiveData({chunk});});this._pdfDataRangeTransport.addProgressiveDoneListener(()=>{this._onProgressiveDone();});this._pdfDataRangeTransport.transportReady();}
_onReceiveData(args){const buffer=new Uint8Array(args.chunk).buffer;if(args.begin===undefined){if(this._fullRequestReader){this._fullRequestReader._enqueue(buffer);}else{this._queuedChunks.push(buffer);}}else{const found=this._rangeReaders.some(function(rangeReader){if(rangeReader._begin!==args.begin){return false;}
rangeReader._enqueue(buffer);return true;});(0,_util.assert)(found,"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.");}}
get _progressiveDataLength(){var _this$_fullRequestRea,_this$_fullRequestRea2;return(_this$_fullRequestRea=(_this$_fullRequestRea2=this._fullRequestReader)===null||_this$_fullRequestRea2===void 0?void 0:_this$_fullRequestRea2._loaded)!==null&&_this$_fullRequestRea!==void 0?_this$_fullRequestRea:0;}
_onProgress(evt){if(evt.total===undefined){const firstReader=this._rangeReaders[0];if(firstReader!==null&&firstReader!==void 0&&firstReader.onProgress){firstReader.onProgress({loaded:evt.loaded});}}else{const fullReader=this._fullRequestReader;if(fullReader!==null&&fullReader!==void 0&&fullReader.onProgress){fullReader.onProgress({loaded:evt.loaded,total:evt.total});}}}
_onProgressiveDone(){if(this._fullRequestReader){this._fullRequestReader.progressiveDone();}
this._progressiveDone=true;}
_removeRangeReader(reader){const i=this._rangeReaders.indexOf(reader);if(i>=0){this._rangeReaders.splice(i,1);}}
getFullReader(){(0,_util.assert)(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");const queuedChunks=this._queuedChunks;this._queuedChunks=null;return new PDFDataTransportStreamReader(this,queuedChunks,this._progressiveDone,this._contentDispositionFilename);}
getRangeReader(begin,end){if(end<=this._progressiveDataLength){return null;}
const reader=new PDFDataTransportStreamRangeReader(this,begin,end);this._pdfDataRangeTransport.requestDataRange(begin,end);this._rangeReaders.push(reader);return reader;}
cancelAllRequests(reason){if(this._fullRequestReader){this._fullRequestReader.cancel(reason);}
for(const reader of this._rangeReaders.slice(0)){reader.cancel(reason);}
this._pdfDataRangeTransport.abort();}}
exports.PDFDataTransportStream=PDFDataTransportStream;class PDFDataTransportStreamReader{constructor(stream,queuedChunks){let progressiveDone=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;let contentDispositionFilename=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;this._stream=stream;this._done=progressiveDone||false;this._filename=(0,_display_utils.isPdfFile)(contentDispositionFilename)?contentDispositionFilename:null;this._queuedChunks=queuedChunks||[];this._loaded=0;for(const chunk of this._queuedChunks){this._loaded+=chunk.byteLength;}
this._requests=[];this._headersReady=Promise.resolve();stream._fullRequestReader=this;this.onProgress=null;}
_enqueue(chunk){if(this._done){return;}
if(this._requests.length>0){const requestCapability=this._requests.shift();requestCapability.resolve({value:chunk,done:false});}else{this._queuedChunks.push(chunk);}
this._loaded+=chunk.byteLength;}
get headersReady(){return this._headersReady;}
get filename(){return this._filename;}
get isRangeSupported(){return this._stream._isRangeSupported;}
get isStreamingSupported(){return this._stream._isStreamingSupported;}
get contentLength(){return this._stream._contentLength;}
async read(){if(this._queuedChunks.length>0){const chunk=this._queuedChunks.shift();return{value:chunk,done:false};}
if(this._done){return{value:undefined,done:true};}
const requestCapability=(0,_util.createPromiseCapability)();this._requests.push(requestCapability);return requestCapability.promise;}
cancel(reason){this._done=true;for(const requestCapability of this._requests){requestCapability.resolve({value:undefined,done:true});}
this._requests.length=0;}
progressiveDone(){if(this._done){return;}
this._done=true;}}
class PDFDataTransportStreamRangeReader{constructor(stream,begin,end){this._stream=stream;this._begin=begin;this._end=end;this._queuedChunk=null;this._requests=[];this._done=false;this.onProgress=null;}
_enqueue(chunk){if(this._done){return;}
if(this._requests.length===0){this._queuedChunk=chunk;}else{const requestsCapability=this._requests.shift();requestsCapability.resolve({value:chunk,done:false});for(const requestCapability of this._requests){requestCapability.resolve({value:undefined,done:true});}
this._requests.length=0;}
this._done=true;this._stream._removeRangeReader(this);}
get isStreamingSupported(){return false;}
async read(){if(this._queuedChunk){const chunk=this._queuedChunk;this._queuedChunk=null;return{value:chunk,done:false};}
if(this._done){return{value:undefined,done:true};}
const requestCapability=(0,_util.createPromiseCapability)();this._requests.push(requestCapability);return requestCapability.promise;}
cancel(reason){this._done=true;for(const requestCapability of this._requests){requestCapability.resolve({value:undefined,done:true});}
this._requests.length=0;this._stream._removeRangeReader(this);}}}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.XfaText=void 0;class XfaText{static textContent(xfa){const items=[];const output={items,styles:Object.create(null)};function walk(node){var _node$attributes;if(!node){return;}
let str=null;const name=node.name;if(name==="#text"){str=node.value;}else if(!XfaText.shouldBuildText(name)){return;}else if(node!==null&&node!==void 0&&(_node$attributes=node.attributes)!==null&&_node$attributes!==void 0&&_node$attributes.textContent){str=node.attributes.textContent;}else if(node.value){str=node.value;}
if(str!==null){items.push({str});}
if(!node.children){return;}
for(const child of node.children){walk(child);}}
walk(xfa);return output;}
static shouldBuildText(name){return!(name==="textarea"||name==="input"||name==="option"||name==="select");}}
exports.XfaText=XfaText;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.NodeStandardFontDataFactory=exports.NodeCanvasFactory=exports.NodeCMapReaderFactory=void 0;var _base_factory=__w_pdfjs_require__(134);;const fetchData=function(url){return new Promise((resolve,reject)=>{const fs=require("fs");fs.readFile(url,(error,data)=>{if(error||!data){reject(new Error(error));return;}
resolve(new Uint8Array(data));});});};class NodeCanvasFactory extends _base_factory.BaseCanvasFactory{_createCanvas(width,height){const Canvas=require("canvas");return Canvas.createCanvas(width,height);}}
exports.NodeCanvasFactory=NodeCanvasFactory;class NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory{_fetchData(url,compressionType){return fetchData(url).then(data=>{return{cMapData:data,compressionType};});}}
exports.NodeCMapReaderFactory=NodeCMapReaderFactory;class NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory{_fetchData(url){return fetchData(url);}}
exports.NodeStandardFontDataFactory=NodeStandardFontDataFactory;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.AnnotationEditorLayer=void 0;var _tools=__w_pdfjs_require__(132);var _util=__w_pdfjs_require__(1);var _freetext=__w_pdfjs_require__(148);var _ink=__w_pdfjs_require__(149);function _classPrivateMethodInitSpec(obj,privateSet){_checkPrivateRedeclaration(obj,privateSet);privateSet.add(obj);}
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}
function _classPrivateFieldInitSpec(obj,privateMap,value){_checkPrivateRedeclaration(obj,privateMap);privateMap.set(obj,value);}
function _checkPrivateRedeclaration(obj,privateCollection){if(privateCollection.has(obj)){throw new TypeError("Cannot initialize the same private elements twice on an object");}}
function _classPrivateMethodGet(receiver,privateSet,fn){if(!privateSet.has(receiver)){throw new TypeError("attempted to get private field on non-instance");}return fn;}
function _classPrivateFieldGet(receiver,privateMap){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"get");return _classApplyDescriptorGet(receiver,descriptor);}
function _classApplyDescriptorGet(receiver,descriptor){if(descriptor.get){return descriptor.get.call(receiver);}return descriptor.value;}
function _classPrivateFieldSet(receiver,privateMap,value){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"set");_classApplyDescriptorSet(receiver,descriptor,value);return value;}
function _classExtractFieldDescriptor(receiver,privateMap,action){if(!privateMap.has(receiver)){throw new TypeError("attempted to "+action+" private field on non-instance");}return privateMap.get(receiver);}
function _classApplyDescriptorSet(receiver,descriptor,value){if(descriptor.set){descriptor.set.call(receiver,value);}else{if(!descriptor.writable){throw new TypeError("attempted to set read only private field");}descriptor.value=value;}}
var _accessibilityManager=new WeakMap();var _allowClick=new WeakMap();var _boundPointerup=new WeakMap();var _boundPointerdown=new WeakMap();var _editors=new WeakMap();var _hadPointerDown=new WeakMap();var _isCleaningUp=new WeakMap();var _uiManager=new WeakMap();var _changeParent=new WeakSet();var _createNewEditor=new WeakSet();var _createAndAddNewEditor=new WeakSet();var _cleanup=new WeakSet();class AnnotationEditorLayer{constructor(options){_classPrivateMethodInitSpec(this,_cleanup);_classPrivateMethodInitSpec(this,_createAndAddNewEditor);_classPrivateMethodInitSpec(this,_createNewEditor);_classPrivateMethodInitSpec(this,_changeParent);_classPrivateFieldInitSpec(this,_accessibilityManager,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,_allowClick,{writable:true,value:false});_classPrivateFieldInitSpec(this,_boundPointerup,{writable:true,value:this.pointerup.bind(this)});_classPrivateFieldInitSpec(this,_boundPointerdown,{writable:true,value:this.pointerdown.bind(this)});_classPrivateFieldInitSpec(this,_editors,{writable:true,value:new Map()});_classPrivateFieldInitSpec(this,_hadPointerDown,{writable:true,value:false});_classPrivateFieldInitSpec(this,_isCleaningUp,{writable:true,value:false});_classPrivateFieldInitSpec(this,_uiManager,{writable:true,value:void 0});if(!AnnotationEditorLayer._initialized){AnnotationEditorLayer._initialized=true;_freetext.FreeTextEditor.initialize(options.l10n);_ink.InkEditor.initialize(options.l10n);options.uiManager.registerEditorTypes([_freetext.FreeTextEditor,_ink.InkEditor]);}
_classPrivateFieldSet(this,_uiManager,options.uiManager);this.annotationStorage=options.annotationStorage;this.pageIndex=options.pageIndex;this.div=options.div;_classPrivateFieldSet(this,_accessibilityManager,options.accessibilityManager);_classPrivateFieldGet(this,_uiManager).addLayer(this);}
updateToolbar(mode){_classPrivateFieldGet(this,_uiManager).updateToolbar(mode);}
updateMode(){let mode=arguments.length>0&&arguments[0]!==undefined?arguments[0]:_classPrivateFieldGet(this,_uiManager).getMode();_classPrivateMethodGet(this,_cleanup,_cleanup2).call(this);if(mode===_util.AnnotationEditorType.INK){this.addInkEditorIfNeeded(false);this.disableClick();}else{this.enableClick();}
_classPrivateFieldGet(this,_uiManager).unselectAll();}
addInkEditorIfNeeded(isCommitting){if(!isCommitting&&_classPrivateFieldGet(this,_uiManager).getMode()!==_util.AnnotationEditorType.INK){return;}
if(!isCommitting){for(const editor of _classPrivateFieldGet(this,_editors).values()){if(editor.isEmpty()){editor.setInBackground();return;}}}
const editor=_classPrivateMethodGet(this,_createAndAddNewEditor,_createAndAddNewEditor2).call(this,{offsetX:0,offsetY:0});editor.setInBackground();}
setEditingState(isEditing){_classPrivateFieldGet(this,_uiManager).setEditingState(isEditing);}
addCommands(params){_classPrivateFieldGet(this,_uiManager).addCommands(params);}
enable(){this.div.style.pointerEvents="auto";for(const editor of _classPrivateFieldGet(this,_editors).values()){editor.enableEditing();}}
disable(){this.div.style.pointerEvents="none";for(const editor of _classPrivateFieldGet(this,_editors).values()){editor.disableEditing();}}
setActiveEditor(editor){const currentActive=_classPrivateFieldGet(this,_uiManager).getActive();if(currentActive===editor){return;}
_classPrivateFieldGet(this,_uiManager).setActiveEditor(editor);}
enableClick(){this.div.addEventListener("pointerdown",_classPrivateFieldGet(this,_boundPointerdown));this.div.addEventListener("pointerup",_classPrivateFieldGet(this,_boundPointerup));}
disableClick(){this.div.removeEventListener("pointerdown",_classPrivateFieldGet(this,_boundPointerdown));this.div.removeEventListener("pointerup",_classPrivateFieldGet(this,_boundPointerup));}
attach(editor){_classPrivateFieldGet(this,_editors).set(editor.id,editor);}
detach(editor){var _classPrivateFieldGet2;_classPrivateFieldGet(this,_editors).delete(editor.id);(_classPrivateFieldGet2=_classPrivateFieldGet(this,_accessibilityManager))===null||_classPrivateFieldGet2===void 0?void 0:_classPrivateFieldGet2.removePointerInTextLayer(editor.contentDiv);}
remove(editor){_classPrivateFieldGet(this,_uiManager).removeEditor(editor);this.detach(editor);this.annotationStorage.remove(editor.id);editor.div.style.display="none";setTimeout(()=>{editor.div.style.display="";editor.div.remove();editor.isAttachedToDOM=false;if(document.activeElement===document.body){_classPrivateFieldGet(this,_uiManager).focusMainContainer();}},0);if(!_classPrivateFieldGet(this,_isCleaningUp)){this.addInkEditorIfNeeded(false);}}
add(editor){_classPrivateMethodGet(this,_changeParent,_changeParent2).call(this,editor);_classPrivateFieldGet(this,_uiManager).addEditor(editor);this.attach(editor);if(!editor.isAttachedToDOM){const div=editor.render();this.div.append(div);editor.isAttachedToDOM=true;}
this.moveEditorInDOM(editor);editor.onceAdded();this.addToAnnotationStorage(editor);}
moveEditorInDOM(editor){var _classPrivateFieldGet3;(_classPrivateFieldGet3=_classPrivateFieldGet(this,_accessibilityManager))===null||_classPrivateFieldGet3===void 0?void 0:_classPrivateFieldGet3.moveElementInDOM(this.div,editor.div,editor.contentDiv,true);}
addToAnnotationStorage(editor){if(!editor.isEmpty()&&!this.annotationStorage.has(editor.id)){this.annotationStorage.setValue(editor.id,editor);}}
addOrRebuild(editor){if(editor.needsToBeRebuilt()){editor.rebuild();}else{this.add(editor);}}
addANewEditor(editor){const cmd=()=>{this.addOrRebuild(editor);};const undo=()=>{editor.remove();};this.addCommands({cmd,undo,mustExec:true});}
addUndoableEditor(editor){const cmd=()=>{this.addOrRebuild(editor);};const undo=()=>{editor.remove();};this.addCommands({cmd,undo,mustExec:false});}
getNextId(){return _classPrivateFieldGet(this,_uiManager).getId();}
deserialize(data){switch(data.annotationType){case _util.AnnotationEditorType.FREETEXT:return _freetext.FreeTextEditor.deserialize(data,this);case _util.AnnotationEditorType.INK:return _ink.InkEditor.deserialize(data,this);}
return null;}
setSelected(editor){_classPrivateFieldGet(this,_uiManager).setSelected(editor);}
toggleSelected(editor){_classPrivateFieldGet(this,_uiManager).toggleSelected(editor);}
isSelected(editor){return _classPrivateFieldGet(this,_uiManager).isSelected(editor);}
unselect(editor){_classPrivateFieldGet(this,_uiManager).unselect(editor);}
pointerup(event){const isMac=_tools.KeyboardManager.platform.isMac;if(event.button!==0||event.ctrlKey&&isMac){return;}
if(event.target!==this.div){return;}
if(!_classPrivateFieldGet(this,_hadPointerDown)){return;}
_classPrivateFieldSet(this,_hadPointerDown,false);if(!_classPrivateFieldGet(this,_allowClick)){_classPrivateFieldSet(this,_allowClick,true);return;}
_classPrivateMethodGet(this,_createAndAddNewEditor,_createAndAddNewEditor2).call(this,event);}
pointerdown(event){const isMac=_tools.KeyboardManager.platform.isMac;if(event.button!==0||event.ctrlKey&&isMac){return;}
if(event.target!==this.div){return;}
_classPrivateFieldSet(this,_hadPointerDown,true);const editor=_classPrivateFieldGet(this,_uiManager).getActive();_classPrivateFieldSet(this,_allowClick,!editor||editor.isEmpty());}
drop(event){const id=event.dataTransfer.getData("text/plain");const editor=_classPrivateFieldGet(this,_uiManager).getEditor(id);if(!editor){return;}
event.preventDefault();event.dataTransfer.dropEffect="move";_classPrivateMethodGet(this,_changeParent,_changeParent2).call(this,editor);const rect=this.div.getBoundingClientRect();const endX=event.clientX-rect.x;const endY=event.clientY-rect.y;editor.translate(endX-editor.startX,endY-editor.startY);this.moveEditorInDOM(editor);editor.div.focus();}
dragover(event){event.preventDefault();}
destroy(){var _classPrivateFieldGet4;if(((_classPrivateFieldGet4=_classPrivateFieldGet(this,_uiManager).getActive())===null||_classPrivateFieldGet4===void 0?void 0:_classPrivateFieldGet4.parent)===this){_classPrivateFieldGet(this,_uiManager).setActiveEditor(null);}
for(const editor of _classPrivateFieldGet(this,_editors).values()){var _classPrivateFieldGet5;(_classPrivateFieldGet5=_classPrivateFieldGet(this,_accessibilityManager))===null||_classPrivateFieldGet5===void 0?void 0:_classPrivateFieldGet5.removePointerInTextLayer(editor.contentDiv);editor.isAttachedToDOM=false;editor.div.remove();editor.parent=null;}
this.div=null;_classPrivateFieldGet(this,_editors).clear();_classPrivateFieldGet(this,_uiManager).removeLayer(this);}
render(parameters){this.viewport=parameters.viewport;(0,_tools.bindEvents)(this,this.div,["dragover","drop"]);this.setDimensions();for(const editor of _classPrivateFieldGet(this,_uiManager).getEditors(this.pageIndex)){this.add(editor);}
this.updateMode();}
update(parameters){this.viewport=parameters.viewport;this.setDimensions();this.updateMode();}
get scaleFactor(){return this.viewport.scale;}
get pageDimensions(){const[pageLLx,pageLLy,pageURx,pageURy]=this.viewport.viewBox;const width=pageURx-pageLLx;const height=pageURy-pageLLy;return[width,height];}
get viewportBaseDimensions(){const{width,height,rotation}=this.viewport;return rotation%180===0?[width,height]:[height,width];}
setDimensions(){const{width,height,rotation}=this.viewport;const flipOrientation=rotation%180!==0,widthStr=Math.floor(width)+"px",heightStr=Math.floor(height)+"px";this.div.style.width=flipOrientation?heightStr:widthStr;this.div.style.height=flipOrientation?widthStr:heightStr;this.div.setAttribute("data-main-rotation",rotation);}}
exports.AnnotationEditorLayer=AnnotationEditorLayer;function _changeParent2(editor){var _editor$parent;if(editor.parent===this){return;}
this.attach(editor);editor.pageIndex=this.pageIndex;(_editor$parent=editor.parent)===null||_editor$parent===void 0?void 0:_editor$parent.detach(editor);editor.parent=this;if(editor.div&&editor.isAttachedToDOM){editor.div.remove();this.div.append(editor.div);}}
function _createNewEditor2(params){switch(_classPrivateFieldGet(this,_uiManager).getMode()){case _util.AnnotationEditorType.FREETEXT:return new _freetext.FreeTextEditor(params);case _util.AnnotationEditorType.INK:return new _ink.InkEditor(params);}
return null;}
function _createAndAddNewEditor2(event){const id=this.getNextId();const editor=_classPrivateMethodGet(this,_createNewEditor,_createNewEditor2).call(this,{parent:this,id,x:event.offsetX,y:event.offsetY});if(editor){this.add(editor);}
return editor;}
function _cleanup2(){_classPrivateFieldSet(this,_isCleaningUp,true);for(const editor of _classPrivateFieldGet(this,_editors).values()){if(editor.isEmpty()){editor.remove();}}
_classPrivateFieldSet(this,_isCleaningUp,false);}
_defineProperty(AnnotationEditorLayer,"_initialized",false);}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.FreeTextEditor=void 0;var _util=__w_pdfjs_require__(1);var _tools=__w_pdfjs_require__(132);var _editor=__w_pdfjs_require__(131);function _classPrivateMethodInitSpec(obj,privateSet){_checkPrivateRedeclaration(obj,privateSet);privateSet.add(obj);}
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}
function _classPrivateFieldInitSpec(obj,privateMap,value){_checkPrivateRedeclaration(obj,privateMap);privateMap.set(obj,value);}
function _checkPrivateRedeclaration(obj,privateCollection){if(privateCollection.has(obj)){throw new TypeError("Cannot initialize the same private elements twice on an object");}}
function _classPrivateFieldGet(receiver,privateMap){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"get");return _classApplyDescriptorGet(receiver,descriptor);}
function _classApplyDescriptorGet(receiver,descriptor){if(descriptor.get){return descriptor.get.call(receiver);}return descriptor.value;}
function _classPrivateMethodGet(receiver,privateSet,fn){if(!privateSet.has(receiver)){throw new TypeError("attempted to get private field on non-instance");}return fn;}
function _classPrivateFieldSet(receiver,privateMap,value){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"set");_classApplyDescriptorSet(receiver,descriptor,value);return value;}
function _classExtractFieldDescriptor(receiver,privateMap,action){if(!privateMap.has(receiver)){throw new TypeError("attempted to "+action+" private field on non-instance");}return privateMap.get(receiver);}
function _classApplyDescriptorSet(receiver,descriptor,value){if(descriptor.set){descriptor.set.call(receiver,value);}else{if(!descriptor.writable){throw new TypeError("attempted to set read only private field");}descriptor.value=value;}}
var _boundEditorDivBlur=new WeakMap();var _boundEditorDivFocus=new WeakMap();var _boundEditorDivKeydown=new WeakMap();var _color=new WeakMap();var _content=new WeakMap();var _hasAlreadyBeenCommitted=new WeakMap();var _fontSize=new WeakMap();var _updateFontSize=new WeakSet();var _updateColor=new WeakSet();var _extractText=new WeakSet();var _setEditorDimensions=new WeakSet();class FreeTextEditor extends _editor.AnnotationEditor{constructor(params){super({...params,name:"freeTextEditor"});_classPrivateMethodInitSpec(this,_setEditorDimensions);_classPrivateMethodInitSpec(this,_extractText);_classPrivateMethodInitSpec(this,_updateColor);_classPrivateMethodInitSpec(this,_updateFontSize);_classPrivateFieldInitSpec(this,_boundEditorDivBlur,{writable:true,value:this.editorDivBlur.bind(this)});_classPrivateFieldInitSpec(this,_boundEditorDivFocus,{writable:true,value:this.editorDivFocus.bind(this)});_classPrivateFieldInitSpec(this,_boundEditorDivKeydown,{writable:true,value:this.editorDivKeydown.bind(this)});_classPrivateFieldInitSpec(this,_color,{writable:true,value:void 0});_classPrivateFieldInitSpec(this,_content,{writable:true,value:""});_classPrivateFieldInitSpec(this,_hasAlreadyBeenCommitted,{writable:true,value:false});_classPrivateFieldInitSpec(this,_fontSize,{writable:true,value:void 0});_classPrivateFieldSet(this,_color,params.color||FreeTextEditor._defaultColor||_editor.AnnotationEditor._defaultLineColor);_classPrivateFieldSet(this,_fontSize,params.fontSize||FreeTextEditor._defaultFontSize);}
static initialize(l10n){this._l10nPromise=new Map(["free_text_default_content","editor_free_text_aria_label"].map(str=>[str,l10n.get(str)]));const style=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(style.getPropertyValue("--freetext-padding"));}
static updateDefaultParams(type,value){switch(type){case _util.AnnotationEditorParamsType.FREETEXT_SIZE:FreeTextEditor._defaultFontSize=value;break;case _util.AnnotationEditorParamsType.FREETEXT_COLOR:FreeTextEditor._defaultColor=value;break;}}
updateParams(type,value){switch(type){case _util.AnnotationEditorParamsType.FREETEXT_SIZE:_classPrivateMethodGet(this,_updateFontSize,_updateFontSize2).call(this,value);break;case _util.AnnotationEditorParamsType.FREETEXT_COLOR:_classPrivateMethodGet(this,_updateColor,_updateColor2).call(this,value);break;}}
static get defaultPropertiesToUpdate(){return[[_util.AnnotationEditorParamsType.FREETEXT_SIZE,FreeTextEditor._defaultFontSize],[_util.AnnotationEditorParamsType.FREETEXT_COLOR,FreeTextEditor._defaultColor||_editor.AnnotationEditor._defaultLineColor]];}
get propertiesToUpdate(){return[[_util.AnnotationEditorParamsType.FREETEXT_SIZE,_classPrivateFieldGet(this,_fontSize)],[_util.AnnotationEditorParamsType.FREETEXT_COLOR,_classPrivateFieldGet(this,_color)]];}
getInitialTranslation(){return[-FreeTextEditor._internalPadding*this.parent.scaleFactor,-(FreeTextEditor._internalPadding+_classPrivateFieldGet(this,_fontSize))*this.parent.scaleFactor];}
rebuild(){super.rebuild();if(this.div===null){return;}
if(!this.isAttachedToDOM){this.parent.add(this);}}
enableEditMode(){if(this.isInEditMode()){return;}
this.parent.setEditingState(false);this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT);super.enableEditMode();this.enableEditing();this.overlayDiv.classList.remove("enabled");this.editorDiv.contentEditable=true;this.div.draggable=false;this.editorDiv.addEventListener("keydown",_classPrivateFieldGet(this,_boundEditorDivKeydown));this.editorDiv.addEventListener("focus",_classPrivateFieldGet(this,_boundEditorDivFocus));this.editorDiv.addEventListener("blur",_classPrivateFieldGet(this,_boundEditorDivBlur));}
disableEditMode(){if(!this.isInEditMode()){return;}
this.parent.setEditingState(true);super.disableEditMode();this.disableEditing();this.overlayDiv.classList.add("enabled");this.editorDiv.contentEditable=false;this.div.draggable=true;this.editorDiv.removeEventListener("keydown",_classPrivateFieldGet(this,_boundEditorDivKeydown));this.editorDiv.removeEventListener("focus",_classPrivateFieldGet(this,_boundEditorDivFocus));this.editorDiv.removeEventListener("blur",_classPrivateFieldGet(this,_boundEditorDivBlur));this.div.focus();this.isEditing=false;}
focusin(event){super.focusin(event);if(event.target!==this.editorDiv){this.editorDiv.focus();}}
onceAdded(){if(this.width){return;}
this.enableEditMode();this.editorDiv.focus();}
isEmpty(){return!this.editorDiv||this.editorDiv.innerText.trim()==="";}
remove(){this.isEditing=false;this.parent.setEditingState(true);super.remove();}
commit(){super.commit();if(!_classPrivateFieldGet(this,_hasAlreadyBeenCommitted)){_classPrivateFieldSet(this,_hasAlreadyBeenCommitted,true);this.parent.addUndoableEditor(this);}
this.disableEditMode();_classPrivateFieldSet(this,_content,_classPrivateMethodGet(this,_extractText,_extractText2).call(this).trimEnd());_classPrivateMethodGet(this,_setEditorDimensions,_setEditorDimensions2).call(this);}
shouldGetKeyboardEvents(){return this.isInEditMode();}
dblclick(event){this.enableEditMode();this.editorDiv.focus();}
keydown(event){if(event.target===this.div&&event.key==="Enter"){this.enableEditMode();this.editorDiv.focus();}}
editorDivKeydown(event){FreeTextEditor._keyboardManager.exec(this,event);}
editorDivFocus(event){this.isEditing=true;}
editorDivBlur(event){this.isEditing=false;}
disableEditing(){this.editorDiv.setAttribute("role","comment");this.editorDiv.removeAttribute("aria-multiline");}
enableEditing(){this.editorDiv.setAttribute("role","textbox");this.editorDiv.setAttribute("aria-multiline",true);}
render(){if(this.div){return this.div;}
let baseX,baseY;if(this.width){baseX=this.x;baseY=this.y;}
super.render();this.editorDiv=document.createElement("div");this.editorDiv.className="internal";this.editorDiv.setAttribute("id",`${this.id}-editor`);this.enableEditing();FreeTextEditor._l10nPromise.get("editor_free_text_aria_label").then(msg=>{var _this$editorDiv;return(_this$editorDiv=this.editorDiv)===null||_this$editorDiv===void 0?void 0:_this$editorDiv.setAttribute("aria-label",msg);});FreeTextEditor._l10nPromise.get("free_text_default_content").then(msg=>{var _this$editorDiv2;return(_this$editorDiv2=this.editorDiv)===null||_this$editorDiv2===void 0?void 0:_this$editorDiv2.setAttribute("default-content",msg);});this.editorDiv.contentEditable=true;const{style}=this.editorDiv;style.fontSize=`calc(${_classPrivateFieldGet(this, _fontSize)}px * var(--scale-factor))`;style.color=_classPrivateFieldGet(this,_color);this.div.append(this.editorDiv);this.overlayDiv=document.createElement("div");this.overlayDiv.classList.add("overlay","enabled");this.div.append(this.overlayDiv);(0,_tools.bindEvents)(this,this.div,["dblclick","keydown"]);if(this.width){const[parentWidth,parentHeight]=this.parent.viewportBaseDimensions;this.setAt(baseX*parentWidth,baseY*parentHeight,this.width*parentWidth,this.height*parentHeight);for(const line of _classPrivateFieldGet(this,_content).split("\n")){const div=document.createElement("div");div.append(line?document.createTextNode(line):document.createElement("br"));this.editorDiv.append(div);}
this.div.draggable=true;this.editorDiv.contentEditable=false;}else{this.div.draggable=false;this.editorDiv.contentEditable=true;}
return this.div;}
get contentDiv(){return this.editorDiv;}
static deserialize(data,parent){const editor=super.deserialize(data,parent);_classPrivateFieldSet(editor,_fontSize,data.fontSize);_classPrivateFieldSet(editor,_color,_util.Util.makeHexColor(...data.color));_classPrivateFieldSet(editor,_content,data.value);return editor;}
serialize(){if(this.isEmpty()){return null;}
const padding=FreeTextEditor._internalPadding*this.parent.scaleFactor;const rect=this.getRect(padding,padding);const color=_editor.AnnotationEditor._colorManager.convert(getComputedStyle(this.editorDiv).color);return{annotationType:_util.AnnotationEditorType.FREETEXT,color,fontSize:_classPrivateFieldGet(this,_fontSize),value:_classPrivateFieldGet(this,_content),pageIndex:this.parent.pageIndex,rect,rotation:this.rotation};}}
exports.FreeTextEditor=FreeTextEditor;function _updateFontSize2(fontSize){const setFontsize=size=>{this.editorDiv.style.fontSize=`calc(${size}px * var(--scale-factor))`;this.translate(0,-(size-_classPrivateFieldGet(this,_fontSize))*this.parent.scaleFactor);_classPrivateFieldSet(this,_fontSize,size);_classPrivateMethodGet(this,_setEditorDimensions,_setEditorDimensions2).call(this);};const savedFontsize=_classPrivateFieldGet(this,_fontSize);this.parent.addCommands({cmd:()=>{setFontsize(fontSize);},undo:()=>{setFontsize(savedFontsize);},mustExec:true,type:_util.AnnotationEditorParamsType.FREETEXT_SIZE,overwriteIfSameType:true,keepUndo:true});}
function _updateColor2(color){const savedColor=_classPrivateFieldGet(this,_color);this.parent.addCommands({cmd:()=>{_classPrivateFieldSet(this,_color,color);this.editorDiv.style.color=color;},undo:()=>{_classPrivateFieldSet(this,_color,savedColor);this.editorDiv.style.color=savedColor;},mustExec:true,type:_util.AnnotationEditorParamsType.FREETEXT_COLOR,overwriteIfSameType:true,keepUndo:true});}
function _extractText2(){const divs=this.editorDiv.getElementsByTagName("div");if(divs.length===0){return this.editorDiv.innerText;}
const buffer=[];for(let i=0,ii=divs.length;i<ii;i++){const div=divs[i];const first=div.firstChild;if((first===null||first===void 0?void 0:first.nodeName)==="#text"){buffer.push(first.data);}else{buffer.push("");}}
return buffer.join("\n");}
function _setEditorDimensions2(){const[parentWidth,parentHeight]=this.parent.viewportBaseDimensions;const rect=this.div.getBoundingClientRect();this.width=rect.width/parentWidth;this.height=rect.height/parentHeight;}
_defineProperty(FreeTextEditor,"_freeTextDefaultContent","");_defineProperty(FreeTextEditor,"_l10nPromise",void 0);_defineProperty(FreeTextEditor,"_internalPadding",0);_defineProperty(FreeTextEditor,"_defaultColor",null);_defineProperty(FreeTextEditor,"_defaultFontSize",10);_defineProperty(FreeTextEditor,"_keyboardManager",new _tools.KeyboardManager([[["ctrl+Enter","mac+meta+Enter","Escape","mac+Escape"],FreeTextEditor.prototype.commitOrRemove]]));_defineProperty(FreeTextEditor,"_type","freetext");}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.InkEditor=void 0;Object.defineProperty(exports,"fitCurve",({enumerable:true,get:function(){return _pdfjsFitCurve.fitCurve;}}));var _util=__w_pdfjs_require__(1);var _editor=__w_pdfjs_require__(131);var _pdfjsFitCurve=__w_pdfjs_require__(150);var _tools=__w_pdfjs_require__(132);function _classPrivateMethodInitSpec(obj,privateSet){_checkPrivateRedeclaration(obj,privateSet);privateSet.add(obj);}
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}
function _classPrivateFieldInitSpec(obj,privateMap,value){_checkPrivateRedeclaration(obj,privateMap);privateMap.set(obj,value);}
function _checkPrivateRedeclaration(obj,privateCollection){if(privateCollection.has(obj)){throw new TypeError("Cannot initialize the same private elements twice on an object");}}
function _classStaticPrivateMethodGet(receiver,classConstructor,method){_classCheckPrivateStaticAccess(receiver,classConstructor);return method;}
function _classCheckPrivateStaticAccess(receiver,classConstructor){if(receiver!==classConstructor){throw new TypeError("Private static access of wrong provenance");}}
function _classPrivateFieldSet(receiver,privateMap,value){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"set");_classApplyDescriptorSet(receiver,descriptor,value);return value;}
function _classApplyDescriptorSet(receiver,descriptor,value){if(descriptor.set){descriptor.set.call(receiver,value);}else{if(!descriptor.writable){throw new TypeError("attempted to set read only private field");}descriptor.value=value;}}
function _classPrivateFieldGet(receiver,privateMap){var descriptor=_classExtractFieldDescriptor(receiver,privateMap,"get");return _classApplyDescriptorGet(receiver,descriptor);}
function _classExtractFieldDescriptor(receiver,privateMap,action){if(!privateMap.has(receiver)){throw new TypeError("attempted to "+action+" private field on non-instance");}return privateMap.get(receiver);}
function _classApplyDescriptorGet(receiver,descriptor){if(descriptor.get){return descriptor.get.call(receiver);}return descriptor.value;}
function _classPrivateMethodGet(receiver,privateSet,fn){if(!privateSet.has(receiver)){throw new TypeError("attempted to get private field on non-instance");}return fn;}
const RESIZER_SIZE=16;var _aspectRatio=new WeakMap();var _baseHeight=new WeakMap();var _baseWidth=new WeakMap();var _boundCanvasPointermove=new WeakMap();var _boundCanvasPointerleave=new WeakMap();var _boundCanvasPointerup=new WeakMap();var _boundCanvasPointerdown=new WeakMap();var _disableEditing=new WeakMap();var _isCanvasInitialized=new WeakMap();var _lastPoint=new WeakMap();var _observer=new WeakMap();var _realWidth=new WeakMap();var _realHeight=new WeakMap();var _requestFrameCallback=new WeakMap();var _updateThickness=new WeakSet();var _updateColor=new WeakSet();var _updateOpacity=new WeakSet();var _getInitialBBox=new WeakSet();var _setStroke=new WeakSet();var _startDrawing=new WeakSet();var _draw=new WeakSet();var _stopDrawing=new WeakSet();var _redraw=new WeakSet();var _endDrawing=new WeakSet();var _createCanvas=new WeakSet();var _createObserver=new WeakSet();var _setCanvasDims=new WeakSet();var _setScaleFactor=new WeakSet();var _updateTransform=new WeakSet();var _serializePaths=new WeakSet();var _extractPointsOnBezier=new WeakSet();var _isAlmostFlat=new WeakSet();var _getBbox=new WeakSet();var _getPadding=new WeakSet();var _fitToContent=new WeakSet();var _setMinDims=new WeakSet();class InkEditor extends _editor.AnnotationEditor{constructor(params){super({...params,name:"inkEditor"});_classPrivateMethodInitSpec(this,_setMinDims);_classPrivateMethodInitSpec(this,_fitToContent);_classPrivateMethodInitSpec(this,_getPadding);_classPrivateMethodInitSpec(this,_getBbox);_classPrivateMethodInitSpec(this,_isAlmostFlat);_classPrivateMethodInitSpec(this,_extractPointsOnBezier);_classPrivateMethodInitSpec(this,_serializePaths);_classPrivateMethodInitSpec(this,_updateTransform);_classPrivateMethodInitSpec(this,_setScaleFactor);_classPrivateMethodInitSpec(this,_setCanvasDims);_classPrivateMethodInitSpec(this,_createObserver);_classPrivateMethodInitSpec(this,_createCanvas);_classPrivateMethodInitSpec(this,_endDrawing);_classPrivateMethodInitSpec(this,_redraw);_classPrivateMethodInitSpec(this,_stopDrawing);_classPrivateMethodInitSpec(this,_draw);_classPrivateMethodInitSpec(this,_startDrawing);_classPrivateMethodInitSpec(this,_setStroke);_classPrivateMethodInitSpec(this,_getInitialBBox);_classPrivateMethodInitSpec(this,_updateOpacity);_classPrivateMethodInitSpec(this,_updateColor);_classPrivateMethodInitSpec(this,_updateThickness);_classPrivateFieldInitSpec(this,_aspectRatio,{writable:true,value:0});_classPrivateFieldInitSpec(this,_baseHeight,{writable:true,value:0});_classPrivateFieldInitSpec(this,_baseWidth,{writable:true,value:0});_classPrivateFieldInitSpec(this,_boundCanvasPointermove,{writable:true,value:this.canvasPointermove.bind(this)});_classPrivateFieldInitSpec(this,_boundCanvasPointerleave,{writable:true,value:this.canvasPointerleave.bind(this)});_classPrivateFieldInitSpec(this,_boundCanvasPointerup,{writable:true,value:this.canvasPointerup.bind(this)});_classPrivateFieldInitSpec(this,_boundCanvasPointerdown,{writable:true,value:this.canvasPointerdown.bind(this)});_classPrivateFieldInitSpec(this,_disableEditing,{writable:true,value:false});_classPrivateFieldInitSpec(this,_isCanvasInitialized,{writable:true,value:false});_classPrivateFieldInitSpec(this,_lastPoint,{writable:true,value:null});_classPrivateFieldInitSpec(this,_observer,{writable:true,value:null});_classPrivateFieldInitSpec(this,_realWidth,{writable:true,value:0});_classPrivateFieldInitSpec(this,_realHeight,{writable:true,value:0});_classPrivateFieldInitSpec(this,_requestFrameCallback,{writable:true,value:null});this.color=params.color||null;this.thickness=params.thickness||null;this.opacity=params.opacity||null;this.paths=[];this.bezierPath2D=[];this.currentPath=[];this.scaleFactor=1;this.translationX=this.translationY=0;this.x=0;this.y=0;}
static initialize(l10n){this._l10nPromise=new Map(["editor_ink_canvas_aria_label","editor_ink_aria_label"].map(str=>[str,l10n.get(str)]));}
static updateDefaultParams(type,value){switch(type){case _util.AnnotationEditorParamsType.INK_THICKNESS:InkEditor._defaultThickness=value;break;case _util.AnnotationEditorParamsType.INK_COLOR:InkEditor._defaultColor=value;break;case _util.AnnotationEditorParamsType.INK_OPACITY:InkEditor._defaultOpacity=value/100;break;}}
updateParams(type,value){switch(type){case _util.AnnotationEditorParamsType.INK_THICKNESS:_classPrivateMethodGet(this,_updateThickness,_updateThickness2).call(this,value);break;case _util.AnnotationEditorParamsType.INK_COLOR:_classPrivateMethodGet(this,_updateColor,_updateColor2).call(this,value);break;case _util.AnnotationEditorParamsType.INK_OPACITY:_classPrivateMethodGet(this,_updateOpacity,_updateOpacity2).call(this,value);break;}}
static get defaultPropertiesToUpdate(){return[[_util.AnnotationEditorParamsType.INK_THICKNESS,InkEditor._defaultThickness],[_util.AnnotationEditorParamsType.INK_COLOR,InkEditor._defaultColor||_editor.AnnotationEditor._defaultLineColor],[_util.AnnotationEditorParamsType.INK_OPACITY,Math.round(InkEditor._defaultOpacity*100)]];}
get propertiesToUpdate(){var _this$opacity;return[[_util.AnnotationEditorParamsType.INK_THICKNESS,this.thickness||InkEditor._defaultThickness],[_util.AnnotationEditorParamsType.INK_COLOR,this.color||InkEditor._defaultColor||_editor.AnnotationEditor._defaultLineColor],[_util.AnnotationEditorParamsType.INK_OPACITY,Math.round(100*((_this$opacity=this.opacity)!==null&&_this$opacity!==void 0?_this$opacity:InkEditor._defaultOpacity))]];}
rebuild(){super.rebuild();if(this.div===null){return;}
if(!this.canvas){_classPrivateMethodGet(this,_createCanvas,_createCanvas2).call(this);_classPrivateMethodGet(this,_createObserver,_createObserver2).call(this);}
if(!this.isAttachedToDOM){this.parent.add(this);_classPrivateMethodGet(this,_setCanvasDims,_setCanvasDims2).call(this);}
_classPrivateMethodGet(this,_fitToContent,_fitToContent2).call(this);}
remove(){if(this.canvas===null){return;}
if(!this.isEmpty()){this.commit();}
this.canvas.width=this.canvas.height=0;this.canvas.remove();this.canvas=null;_classPrivateFieldGet(this,_observer).disconnect();_classPrivateFieldSet(this,_observer,null);super.remove();}
enableEditMode(){if(_classPrivateFieldGet(this,_disableEditing)||this.canvas===null){return;}
super.enableEditMode();this.div.draggable=false;this.canvas.addEventListener("pointerdown",_classPrivateFieldGet(this,_boundCanvasPointerdown));this.canvas.addEventListener("pointerup",_classPrivateFieldGet(this,_boundCanvasPointerup));}
disableEditMode(){if(!this.isInEditMode()||this.canvas===null){return;}
super.disableEditMode();this.div.draggable=!this.isEmpty();this.div.classList.remove("editing");this.canvas.removeEventListener("pointerdown",_classPrivateFieldGet(this,_boundCanvasPointerdown));this.canvas.removeEventListener("pointerup",_classPrivateFieldGet(this,_boundCanvasPointerup));}
onceAdded(){this.div.draggable=!this.isEmpty();}
isEmpty(){return this.paths.length===0||this.paths.length===1&&this.paths[0].length===0;}
commit(){if(_classPrivateFieldGet(this,_disableEditing)){return;}
super.commit();this.isEditing=false;this.disableEditMode();this.setInForeground();_classPrivateFieldSet(this,_disableEditing,true);this.div.classList.add("disabled");_classPrivateMethodGet(this,_fitToContent,_fitToContent2).call(this,true);this.parent.addInkEditorIfNeeded(true);this.parent.moveEditorInDOM(this);this.div.focus();}
focusin(event){super.focusin(event);this.enableEditMode();}
canvasPointerdown(event){if(event.button!==0||!this.isInEditMode()||_classPrivateFieldGet(this,_disableEditing)){return;}
this.setInForeground();if(event.type!=="mouse"){this.div.focus();}
event.stopPropagation();this.canvas.addEventListener("pointerleave",_classPrivateFieldGet(this,_boundCanvasPointerleave));this.canvas.addEventListener("pointermove",_classPrivateFieldGet(this,_boundCanvasPointermove));_classPrivateMethodGet(this,_startDrawing,_startDrawing2).call(this,event.offsetX,event.offsetY);}
canvasPointermove(event){event.stopPropagation();_classPrivateMethodGet(this,_draw,_draw2).call(this,event.offsetX,event.offsetY);}
canvasPointerup(event){if(event.button!==0){return;}
if(this.isInEditMode()&&this.currentPath.length!==0){event.stopPropagation();_classPrivateMethodGet(this,_endDrawing,_endDrawing2).call(this,event);this.setInBackground();}}
canvasPointerleave(event){_classPrivateMethodGet(this,_endDrawing,_endDrawing2).call(this,event);this.setInBackground();}
render(){if(this.div){return this.div;}
let baseX,baseY;if(this.width){baseX=this.x;baseY=this.y;}
super.render();InkEditor._l10nPromise.get("editor_ink_aria_label").then(msg=>{var _this$div;return(_this$div=this.div)===null||_this$div===void 0?void 0:_this$div.setAttribute("aria-label",msg);});const[x,y,w,h]=_classPrivateMethodGet(this,_getInitialBBox,_getInitialBBox2).call(this);this.setAt(x,y,0,0);this.setDims(w,h);_classPrivateMethodGet(this,_createCanvas,_createCanvas2).call(this);if(this.width){const[parentWidth,parentHeight]=this.parent.viewportBaseDimensions;this.setAt(baseX*parentWidth,baseY*parentHeight,this.width*parentWidth,this.height*parentHeight);_classPrivateFieldSet(this,_isCanvasInitialized,true);_classPrivateMethodGet(this,_setCanvasDims,_setCanvasDims2).call(this);this.setDims(this.width*parentWidth,this.height*parentHeight);_classPrivateMethodGet(this,_redraw,_redraw2).call(this);_classPrivateMethodGet(this,_setMinDims,_setMinDims2).call(this);this.div.classList.add("disabled");}else{this.div.classList.add("editing");this.enableEditMode();}
_classPrivateMethodGet(this,_createObserver,_createObserver2).call(this);return this.div;}
setDimensions(width,height){const roundedWidth=Math.round(width);const roundedHeight=Math.round(height);if(_classPrivateFieldGet(this,_realWidth)===roundedWidth&&_classPrivateFieldGet(this,_realHeight)===roundedHeight){return;}
_classPrivateFieldSet(this,_realWidth,roundedWidth);_classPrivateFieldSet(this,_realHeight,roundedHeight);this.canvas.style.visibility="hidden";if(_classPrivateFieldGet(this,_aspectRatio)&&Math.abs(_classPrivateFieldGet(this,_aspectRatio)-width/height)>1e-2){height=Math.ceil(width/_classPrivateFieldGet(this,_aspectRatio));this.setDims(width,height);}
const[parentWidth,parentHeight]=this.parent.viewportBaseDimensions;this.width=width/parentWidth;this.height=height/parentHeight;if(_classPrivateFieldGet(this,_disableEditing)){_classPrivateMethodGet(this,_setScaleFactor,_setScaleFactor2).call(this,width,height);}
_classPrivateMethodGet(this,_setCanvasDims,_setCanvasDims2).call(this);_classPrivateMethodGet(this,_redraw,_redraw2).call(this);this.canvas.style.visibility="visible";}
static deserialize(data,parent){const editor=super.deserialize(data,parent);editor.thickness=data.thickness;editor.color=_util.Util.makeHexColor(...data.color);editor.opacity=data.opacity;const[pageWidth,pageHeight]=parent.pageDimensions;const width=editor.width*pageWidth;const height=editor.height*pageHeight;const scaleFactor=parent.scaleFactor;const padding=data.thickness/2;_classPrivateFieldSet(editor,_aspectRatio,width/height);_classPrivateFieldSet(editor,_disableEditing,true);_classPrivateFieldSet(editor,_realWidth,Math.round(width));_classPrivateFieldSet(editor,_realHeight,Math.round(height));for(const{bezier}of data.paths){const path=[];editor.paths.push(path);let p0=scaleFactor*(bezier[0]-padding);let p1=scaleFactor*(height-bezier[1]-padding);for(let i=2,ii=bezier.length;i<ii;i+=6){const p10=scaleFactor*(bezier[i]-padding);const p11=scaleFactor*(height-bezier[i+1]-padding);const p20=scaleFactor*(bezier[i+2]-padding);const p21=scaleFactor*(height-bezier[i+3]-padding);const p30=scaleFactor*(bezier[i+4]-padding);const p31=scaleFactor*(height-bezier[i+5]-padding);path.push([[p0,p1],[p10,p11],[p20,p21],[p30,p31]]);p0=p30;p1=p31;}
const path2D=_classStaticPrivateMethodGet(this,InkEditor,_buildPath2D).call(this,path);editor.bezierPath2D.push(path2D);}
const bbox=_classPrivateMethodGet(editor,_getBbox,_getBbox2).call(editor);_classPrivateFieldSet(editor,_baseWidth,Math.max(RESIZER_SIZE,bbox[2]-bbox[0]));_classPrivateFieldSet(editor,_baseHeight,Math.max(RESIZER_SIZE,bbox[3]-bbox[1]));_classPrivateMethodGet(editor,_setScaleFactor,_setScaleFactor2).call(editor,width,height);return editor;}
serialize(){if(this.isEmpty()){return null;}
const rect=this.getRect(0,0);const height=this.rotation%180===0?rect[3]-rect[1]:rect[2]-rect[0];const color=_editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);return{annotationType:_util.AnnotationEditorType.INK,color,thickness:this.thickness,opacity:this.opacity,paths:_classPrivateMethodGet(this,_serializePaths,_serializePaths2).call(this,this.scaleFactor/this.parent.scaleFactor,this.translationX,this.translationY,height),pageIndex:this.parent.pageIndex,rect,rotation:this.rotation};}}
exports.InkEditor=InkEditor;function _updateThickness2(thickness){const savedThickness=this.thickness;this.parent.addCommands({cmd:()=>{this.thickness=thickness;_classPrivateMethodGet(this,_fitToContent,_fitToContent2).call(this);},undo:()=>{this.thickness=savedThickness;_classPrivateMethodGet(this,_fitToContent,_fitToContent2).call(this);},mustExec:true,type:_util.AnnotationEditorParamsType.INK_THICKNESS,overwriteIfSameType:true,keepUndo:true});}
function _updateColor2(color){const savedColor=this.color;this.parent.addCommands({cmd:()=>{this.color=color;_classPrivateMethodGet(this,_redraw,_redraw2).call(this);},undo:()=>{this.color=savedColor;_classPrivateMethodGet(this,_redraw,_redraw2).call(this);},mustExec:true,type:_util.AnnotationEditorParamsType.INK_COLOR,overwriteIfSameType:true,keepUndo:true});}
function _updateOpacity2(opacity){opacity/=100;const savedOpacity=this.opacity;this.parent.addCommands({cmd:()=>{this.opacity=opacity;_classPrivateMethodGet(this,_redraw,_redraw2).call(this);},undo:()=>{this.opacity=savedOpacity;_classPrivateMethodGet(this,_redraw,_redraw2).call(this);},mustExec:true,type:_util.AnnotationEditorParamsType.INK_OPACITY,overwriteIfSameType:true,keepUndo:true});}
function _getInitialBBox2(){const{width,height,rotation}=this.parent.viewport;switch(rotation){case 90:return[0,width,width,height];case 180:return[width,height,width,height];case 270:return[height,0,width,height];default:return[0,0,width,height];}}
function _setStroke2(){this.ctx.lineWidth=this.thickness*this.parent.scaleFactor/this.scaleFactor;this.ctx.lineCap="round";this.ctx.lineJoin="round";this.ctx.miterLimit=10;this.ctx.strokeStyle=`${this.color}${(0, _tools.opacityToHex)(this.opacity)}`;}
function _startDrawing2(x,y){this.isEditing=true;if(!_classPrivateFieldGet(this,_isCanvasInitialized)){var _this$opacity2;_classPrivateFieldSet(this,_isCanvasInitialized,true);_classPrivateMethodGet(this,_setCanvasDims,_setCanvasDims2).call(this);this.thickness||(this.thickness=InkEditor._defaultThickness);this.color||(this.color=InkEditor._defaultColor||_editor.AnnotationEditor._defaultLineColor);(_this$opacity2=this.opacity)!==null&&_this$opacity2!==void 0?_this$opacity2:this.opacity=InkEditor._defaultOpacity;}
this.currentPath.push([x,y]);_classPrivateFieldSet(this,_lastPoint,null);_classPrivateMethodGet(this,_setStroke,_setStroke2).call(this);this.ctx.beginPath();this.ctx.moveTo(x,y);_classPrivateFieldSet(this,_requestFrameCallback,()=>{if(!_classPrivateFieldGet(this,_requestFrameCallback)){return;}
if(_classPrivateFieldGet(this,_lastPoint)){if(this.isEmpty()){this.ctx.setTransform(1,0,0,1,0,0);this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);}else{_classPrivateMethodGet(this,_redraw,_redraw2).call(this);}
this.ctx.lineTo(..._classPrivateFieldGet(this,_lastPoint));_classPrivateFieldSet(this,_lastPoint,null);this.ctx.stroke();}
window.requestAnimationFrame(_classPrivateFieldGet(this,_requestFrameCallback));});window.requestAnimationFrame(_classPrivateFieldGet(this,_requestFrameCallback));}
function _draw2(x,y){const[lastX,lastY]=this.currentPath.at(-1);if(x===lastX&&y===lastY){return;}
this.currentPath.push([x,y]);_classPrivateFieldSet(this,_lastPoint,[x,y]);}
function _stopDrawing2(x,y){this.ctx.closePath();_classPrivateFieldSet(this,_requestFrameCallback,null);x=Math.min(Math.max(x,0),this.canvas.width);y=Math.min(Math.max(y,0),this.canvas.height);const[lastX,lastY]=this.currentPath.at(-1);if(x!==lastX||y!==lastY){this.currentPath.push([x,y]);}
let bezier;if(this.currentPath.length!==1){bezier=(0,_pdfjsFitCurve.fitCurve)(this.currentPath,30,null);}else{const xy=[x,y];bezier=[[xy,xy.slice(),xy.slice(),xy]];}
const path2D=_classStaticPrivateMethodGet(InkEditor,InkEditor,_buildPath2D).call(InkEditor,bezier);this.currentPath.length=0;const cmd=()=>{this.paths.push(bezier);this.bezierPath2D.push(path2D);this.rebuild();};const undo=()=>{this.paths.pop();this.bezierPath2D.pop();if(this.paths.length===0){this.remove();}else{if(!this.canvas){_classPrivateMethodGet(this,_createCanvas,_createCanvas2).call(this);_classPrivateMethodGet(this,_createObserver,_createObserver2).call(this);}
_classPrivateMethodGet(this,_fitToContent,_fitToContent2).call(this);}};this.parent.addCommands({cmd,undo,mustExec:true});}
function _redraw2(){if(this.isEmpty()){_classPrivateMethodGet(this,_updateTransform,_updateTransform2).call(this);return;}
_classPrivateMethodGet(this,_setStroke,_setStroke2).call(this);const{canvas,ctx}=this;ctx.setTransform(1,0,0,1,0,0);ctx.clearRect(0,0,canvas.width,canvas.height);_classPrivateMethodGet(this,_updateTransform,_updateTransform2).call(this);for(const path of this.bezierPath2D){ctx.stroke(path);}}
function _endDrawing2(event){_classPrivateMethodGet(this,_stopDrawing,_stopDrawing2).call(this,event.offsetX,event.offsetY);this.canvas.removeEventListener("pointerleave",_classPrivateFieldGet(this,_boundCanvasPointerleave));this.canvas.removeEventListener("pointermove",_classPrivateFieldGet(this,_boundCanvasPointermove));this.parent.addToAnnotationStorage(this);}
function _createCanvas2(){this.canvas=document.createElement("canvas");this.canvas.width=this.canvas.height=0;this.canvas.className="inkEditorCanvas";InkEditor._l10nPromise.get("editor_ink_canvas_aria_label").then(msg=>{var _this$canvas;return(_this$canvas=this.canvas)===null||_this$canvas===void 0?void 0:_this$canvas.setAttribute("aria-label",msg);});this.div.append(this.canvas);this.ctx=this.canvas.getContext("2d");}
function _createObserver2(){_classPrivateFieldSet(this,_observer,new ResizeObserver(entries=>{const rect=entries[0].contentRect;if(rect.width&&rect.height){this.setDimensions(rect.width,rect.height);}}));_classPrivateFieldGet(this,_observer).observe(this.div);}
function _setCanvasDims2(){if(!_classPrivateFieldGet(this,_isCanvasInitialized)){return;}
const[parentWidth,parentHeight]=this.parent.viewportBaseDimensions;this.canvas.width=Math.ceil(this.width*parentWidth);this.canvas.height=Math.ceil(this.height*parentHeight);_classPrivateMethodGet(this,_updateTransform,_updateTransform2).call(this);}
function _setScaleFactor2(width,height){const padding=_classPrivateMethodGet(this,_getPadding,_getPadding2).call(this);const scaleFactorW=(width-padding)/_classPrivateFieldGet(this,_baseWidth);const scaleFactorH=(height-padding)/_classPrivateFieldGet(this,_baseHeight);this.scaleFactor=Math.min(scaleFactorW,scaleFactorH);}
function _updateTransform2(){const padding=_classPrivateMethodGet(this,_getPadding,_getPadding2).call(this)/2;this.ctx.setTransform(this.scaleFactor,0,0,this.scaleFactor,this.translationX*this.scaleFactor+padding,this.translationY*this.scaleFactor+padding);}
function _buildPath2D(bezier){const path2D=new Path2D();for(let i=0,ii=bezier.length;i<ii;i++){const[first,control1,control2,second]=bezier[i];if(i===0){path2D.moveTo(...first);}
path2D.bezierCurveTo(control1[0],control1[1],control2[0],control2[1],second[0],second[1]);}
return path2D;}
function _serializePaths2(s,tx,ty,h){const NUMBER_OF_POINTS_ON_BEZIER_CURVE=4;const paths=[];const padding=this.thickness/2;let buffer,points;for(const bezier of this.paths){buffer=[];points=[];for(let i=0,ii=bezier.length;i<ii;i++){const[first,control1,control2,second]=bezier[i];const p10=s*(first[0]+tx)+padding;const p11=h-s*(first[1]+ty)-padding;const p20=s*(control1[0]+tx)+padding;const p21=h-s*(control1[1]+ty)-padding;const p30=s*(control2[0]+tx)+padding;const p31=h-s*(control2[1]+ty)-padding;const p40=s*(second[0]+tx)+padding;const p41=h-s*(second[1]+ty)-padding;if(i===0){buffer.push(p10,p11);points.push(p10,p11);}
buffer.push(p20,p21,p30,p31,p40,p41);_classPrivateMethodGet(this,_extractPointsOnBezier,_extractPointsOnBezier2).call(this,p10,p11,p20,p21,p30,p31,p40,p41,NUMBER_OF_POINTS_ON_BEZIER_CURVE,points);}
paths.push({bezier:buffer,points});}
return paths;}
function _extractPointsOnBezier2(p10,p11,p20,p21,p30,p31,p40,p41,n,points){if(_classPrivateMethodGet(this,_isAlmostFlat,_isAlmostFlat2).call(this,p10,p11,p20,p21,p30,p31,p40,p41)){points.push(p40,p41);return;}
for(let i=1;i<n-1;i++){const t=i/n;const mt=1-t;let q10=t*p10+mt*p20;let q11=t*p11+mt*p21;let q20=t*p20+mt*p30;let q21=t*p21+mt*p31;const q30=t*p30+mt*p40;const q31=t*p31+mt*p41;q10=t*q10+mt*q20;q11=t*q11+mt*q21;q20=t*q20+mt*q30;q21=t*q21+mt*q31;q10=t*q10+mt*q20;q11=t*q11+mt*q21;points.push(q10,q11);}
points.push(p40,p41);}
function _isAlmostFlat2(p10,p11,p20,p21,p30,p31,p40,p41){const tol=10;const ax=(3*p20-2*p10-p40)**2;const ay=(3*p21-2*p11-p41)**2;const bx=(3*p30-p10-2*p40)**2;const by=(3*p31-p11-2*p41)**2;return Math.max(ax,bx)+Math.max(ay,by)<=tol;}
function _getBbox2(){let xMin=Infinity;let xMax=-Infinity;let yMin=Infinity;let yMax=-Infinity;for(const path of this.paths){for(const[first,control1,control2,second]of path){const bbox=_util.Util.bezierBoundingBox(...first,...control1,...control2,...second);xMin=Math.min(xMin,bbox[0]);yMin=Math.min(yMin,bbox[1]);xMax=Math.max(xMax,bbox[2]);yMax=Math.max(yMax,bbox[3]);}}
return[xMin,yMin,xMax,yMax];}
function _getPadding2(){return _classPrivateFieldGet(this,_disableEditing)?Math.ceil(this.thickness*this.parent.scaleFactor):0;}
function _fitToContent2(){let firstTime=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.isEmpty()){return;}
if(!_classPrivateFieldGet(this,_disableEditing)){_classPrivateMethodGet(this,_redraw,_redraw2).call(this);return;}
const bbox=_classPrivateMethodGet(this,_getBbox,_getBbox2).call(this);const padding=_classPrivateMethodGet(this,_getPadding,_getPadding2).call(this);_classPrivateFieldSet(this,_baseWidth,Math.max(RESIZER_SIZE,bbox[2]-bbox[0]));_classPrivateFieldSet(this,_baseHeight,Math.max(RESIZER_SIZE,bbox[3]-bbox[1]));const width=Math.ceil(padding+_classPrivateFieldGet(this,_baseWidth)*this.scaleFactor);const height=Math.ceil(padding+_classPrivateFieldGet(this,_baseHeight)*this.scaleFactor);const[parentWidth,parentHeight]=this.parent.viewportBaseDimensions;this.width=width/parentWidth;this.height=height/parentHeight;_classPrivateFieldSet(this,_aspectRatio,width/height);_classPrivateMethodGet(this,_setMinDims,_setMinDims2).call(this);const prevTranslationX=this.translationX;const prevTranslationY=this.translationY;this.translationX=-bbox[0];this.translationY=-bbox[1];_classPrivateMethodGet(this,_setCanvasDims,_setCanvasDims2).call(this);_classPrivateMethodGet(this,_redraw,_redraw2).call(this);_classPrivateFieldSet(this,_realWidth,width);_classPrivateFieldSet(this,_realHeight,height);this.setDims(width,height);const unscaledPadding=firstTime?padding/this.scaleFactor/2:0;this.translate(prevTranslationX-this.translationX-unscaledPadding,prevTranslationY-this.translationY-unscaledPadding);}
function _setMinDims2(){const{style}=this.div;if(_classPrivateFieldGet(this,_aspectRatio)>=1){style.minHeight=`${RESIZER_SIZE}px`;style.minWidth=`${Math.round(_classPrivateFieldGet(this, _aspectRatio) * RESIZER_SIZE)}px`;}else{style.minWidth=`${RESIZER_SIZE}px`;style.minHeight=`${Math.round(RESIZER_SIZE / _classPrivateFieldGet(this, _aspectRatio))}px`;}}
_defineProperty(InkEditor,"_defaultColor",null);_defineProperty(InkEditor,"_defaultOpacity",1);_defineProperty(InkEditor,"_defaultThickness",1);_defineProperty(InkEditor,"_l10nPromise",void 0);_defineProperty(InkEditor,"_type","ink");}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.fitCurve=void 0;const fitCurve=__w_pdfjs_require__(151);exports.fitCurve=fitCurve;}),((module)=>{"use strict";function fitCurve(points,maxError,progressCallback){if(!Array.isArray(points)){throw new TypeError("First argument should be an array");}
points.forEach(point=>{if(!Array.isArray(point)||point.some(item=>typeof item!=='number')||point.length!==points[0].length){throw Error("Each point should be an array of numbers. Each point should have the same amount of numbers.");}});points=points.filter((point,i)=>i===0||!point.every((val,j)=>val===points[i-1][j]));if(points.length<2){return[];}
const len=points.length;const leftTangent=createTangent(points[1],points[0]);const rightTangent=createTangent(points[len-2],points[len-1]);return fitCubic(points,leftTangent,rightTangent,maxError,progressCallback);}
function fitCubic(points,leftTangent,rightTangent,error,progressCallback){const MaxIterations=20;var bezCurve,u,uPrime,maxError,prevErr,splitPoint,prevSplit,centerVector,toCenterTangent,fromCenterTangent,beziers,dist,i;if(points.length===2){dist=maths.vectorLen(maths.subtract(points[0],points[1]))/3.0;bezCurve=[points[0],maths.addArrays(points[0],maths.mulItems(leftTangent,dist)),maths.addArrays(points[1],maths.mulItems(rightTangent,dist)),points[1]];return[bezCurve];}
u=chordLengthParameterize(points);[bezCurve,maxError,splitPoint]=generateAndReport(points,u,u,leftTangent,rightTangent,progressCallback);if(maxError===0||maxError<error){return[bezCurve];}
if(maxError<error*error){uPrime=u;prevErr=maxError;prevSplit=splitPoint;for(i=0;i<MaxIterations;i++){uPrime=reparameterize(bezCurve,points,uPrime);[bezCurve,maxError,splitPoint]=generateAndReport(points,u,uPrime,leftTangent,rightTangent,progressCallback);if(maxError<error){return[bezCurve];}else if(splitPoint===prevSplit){let errChange=maxError/prevErr;if(errChange>.9999&&errChange<1.0001){break;}}
prevErr=maxError;prevSplit=splitPoint;}}
beziers=[];centerVector=maths.subtract(points[splitPoint-1],points[splitPoint+1]);if(centerVector.every(val=>val===0)){centerVector=maths.subtract(points[splitPoint-1],points[splitPoint]);[centerVector[0],centerVector[1]]=[-centerVector[1],centerVector[0]];}
toCenterTangent=maths.normalize(centerVector);fromCenterTangent=maths.mulItems(toCenterTangent,-1);beziers=beziers.concat(fitCubic(points.slice(0,splitPoint+1),leftTangent,toCenterTangent,error,progressCallback));beziers=beziers.concat(fitCubic(points.slice(splitPoint),fromCenterTangent,rightTangent,error,progressCallback));return beziers;};function generateAndReport(points,paramsOrig,paramsPrime,leftTangent,rightTangent,progressCallback){var bezCurve,maxError,splitPoint;bezCurve=generateBezier(points,paramsPrime,leftTangent,rightTangent,progressCallback);[maxError,splitPoint]=computeMaxError(points,bezCurve,paramsOrig);if(progressCallback){progressCallback({bez:bezCurve,points:points,params:paramsOrig,maxErr:maxError,maxPoint:splitPoint});}
return[bezCurve,maxError,splitPoint];}
function generateBezier(points,parameters,leftTangent,rightTangent){var bezCurve,A,a,C,X,det_C0_C1,det_C0_X,det_X_C1,alpha_l,alpha_r,epsilon,segLength,i,len,tmp,u,ux,firstPoint=points[0],lastPoint=points[points.length-1];bezCurve=[firstPoint,null,null,lastPoint];A=maths.zeros_Xx2x2(parameters.length);for(i=0,len=parameters.length;i<len;i++){u=parameters[i];ux=1-u;a=A[i];a[0]=maths.mulItems(leftTangent,3*u*(ux*ux));a[1]=maths.mulItems(rightTangent,3*ux*(u*u));}
C=[[0,0],[0,0]];X=[0,0];for(i=0,len=points.length;i<len;i++){u=parameters[i];a=A[i];C[0][0]+=maths.dot(a[0],a[0]);C[0][1]+=maths.dot(a[0],a[1]);C[1][0]+=maths.dot(a[0],a[1]);C[1][1]+=maths.dot(a[1],a[1]);tmp=maths.subtract(points[i],bezier.q([firstPoint,firstPoint,lastPoint,lastPoint],u));X[0]+=maths.dot(a[0],tmp);X[1]+=maths.dot(a[1],tmp);}
det_C0_C1=C[0][0]*C[1][1]-C[1][0]*C[0][1];det_C0_X=C[0][0]*X[1]-C[1][0]*X[0];det_X_C1=X[0]*C[1][1]-X[1]*C[0][1];alpha_l=det_C0_C1===0?0:det_X_C1/det_C0_C1;alpha_r=det_C0_C1===0?0:det_C0_X/det_C0_C1;segLength=maths.vectorLen(maths.subtract(firstPoint,lastPoint));epsilon=1.0e-6*segLength;if(alpha_l<epsilon||alpha_r<epsilon){bezCurve[1]=maths.addArrays(firstPoint,maths.mulItems(leftTangent,segLength/3.0));bezCurve[2]=maths.addArrays(lastPoint,maths.mulItems(rightTangent,segLength/3.0));}else{bezCurve[1]=maths.addArrays(firstPoint,maths.mulItems(leftTangent,alpha_l));bezCurve[2]=maths.addArrays(lastPoint,maths.mulItems(rightTangent,alpha_r));}
return bezCurve;};function reparameterize(bezier,points,parameters){return parameters.map((p,i)=>newtonRaphsonRootFind(bezier,points[i],p));};function newtonRaphsonRootFind(bez,point,u){var d=maths.subtract(bezier.q(bez,u),point),qprime=bezier.qprime(bez,u),numerator=maths.mulMatrix(d,qprime),denominator=maths.sum(maths.squareItems(qprime))+2*maths.mulMatrix(d,bezier.qprimeprime(bez,u));if(denominator===0){return u;}else{return u-numerator/denominator;}};function chordLengthParameterize(points){var u=[],currU,prevU,prevP;points.forEach((p,i)=>{currU=i?prevU+maths.vectorLen(maths.subtract(p,prevP)):0;u.push(currU);prevU=currU;prevP=p;});u=u.map(x=>x/prevU);return u;};function computeMaxError(points,bez,parameters){var dist,maxDist,splitPoint,v,i,count,point,t;maxDist=0;splitPoint=Math.floor(points.length/2);const t_distMap=mapTtoRelativeDistances(bez,10);for(i=0,count=points.length;i<count;i++){point=points[i];t=find_t(bez,parameters[i],t_distMap,10);v=maths.subtract(bezier.q(bez,t),point);dist=v[0]*v[0]+v[1]*v[1];if(dist>maxDist){maxDist=dist;splitPoint=i;}}
return[maxDist,splitPoint];};var mapTtoRelativeDistances=function(bez,B_parts){var B_t_curr;var B_t_dist=[0];var B_t_prev=bez[0];var sumLen=0;for(var i=1;i<=B_parts;i++){B_t_curr=bezier.q(bez,i/B_parts);sumLen+=maths.vectorLen(maths.subtract(B_t_curr,B_t_prev));B_t_dist.push(sumLen);B_t_prev=B_t_curr;}
B_t_dist=B_t_dist.map(x=>x/sumLen);return B_t_dist;};function find_t(bez,param,t_distMap,B_parts){if(param<0){return 0;}
if(param>1){return 1;}
var lenMax,lenMin,tMax,tMin,t;for(var i=1;i<=B_parts;i++){if(param<=t_distMap[i]){tMin=(i-1)/B_parts;tMax=i/B_parts;lenMin=t_distMap[i-1];lenMax=t_distMap[i];t=(param-lenMin)/(lenMax-lenMin)*(tMax-tMin)+tMin;break;}}
return t;}
function createTangent(pointA,pointB){return maths.normalize(maths.subtract(pointA,pointB));}
class maths{static zeros_Xx2x2(x){var zs=[];while(x--){zs.push([0,0]);}
return zs;}
static mulItems(items,multiplier){return items.map(x=>x*multiplier);}
static mulMatrix(m1,m2){return m1.reduce((sum,x1,i)=>sum+x1*m2[i],0);}
static subtract(arr1,arr2){return arr1.map((x1,i)=>x1-arr2[i]);}
static addArrays(arr1,arr2){return arr1.map((x1,i)=>x1+arr2[i]);}
static addItems(items,addition){return items.map(x=>x+addition);}
static sum(items){return items.reduce((sum,x)=>sum+x);}
static dot(m1,m2){return maths.mulMatrix(m1,m2);}
static vectorLen(v){return Math.hypot(...v);}
static divItems(items,divisor){return items.map(x=>x/divisor);}
static squareItems(items){return items.map(x=>x*x);}
static normalize(v){return this.divItems(v,this.vectorLen(v));}}
class bezier{static q(ctrlPoly,t){var tx=1.0-t;var pA=maths.mulItems(ctrlPoly[0],tx*tx*tx),pB=maths.mulItems(ctrlPoly[1],3*tx*tx*t),pC=maths.mulItems(ctrlPoly[2],3*tx*t*t),pD=maths.mulItems(ctrlPoly[3],t*t*t);return maths.addArrays(maths.addArrays(pA,pB),maths.addArrays(pC,pD));}
static qprime(ctrlPoly,t){var tx=1.0-t;var pA=maths.mulItems(maths.subtract(ctrlPoly[1],ctrlPoly[0]),3*tx*tx),pB=maths.mulItems(maths.subtract(ctrlPoly[2],ctrlPoly[1]),6*tx*t),pC=maths.mulItems(maths.subtract(ctrlPoly[3],ctrlPoly[2]),3*t*t);return maths.addArrays(maths.addArrays(pA,pB),pC);}
static qprimeprime(ctrlPoly,t){return maths.addArrays(maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[2],maths.mulItems(ctrlPoly[1],2)),ctrlPoly[0]),6*(1.0-t)),maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[3],maths.mulItems(ctrlPoly[2],2)),ctrlPoly[1]),6*t));}}
module.exports=fitCurve;module.exports.fitCubic=fitCubic;module.exports.createTangent=createTangent;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.AnnotationLayer=void 0;var _util=__w_pdfjs_require__(1);var _display_utils=__w_pdfjs_require__(133);var _annotation_storage=__w_pdfjs_require__(130);var _scripting_utils=__w_pdfjs_require__(153);var _xfa_layer=__w_pdfjs_require__(154);function _classStaticPrivateMethodGet(receiver,classConstructor,method){_classCheckPrivateStaticAccess(receiver,classConstructor);return method;}
function _classCheckPrivateStaticAccess(receiver,classConstructor){if(receiver!==classConstructor){throw new TypeError("Private static access of wrong provenance");}}
const DEFAULT_TAB_INDEX=1000;const DEFAULT_FONT_SIZE=9;const GetElementsByNameSet=new WeakSet();function getRectDims(rect){return{width:rect[2]-rect[0],height:rect[3]-rect[1]};}
class AnnotationElementFactory{static create(parameters){const subtype=parameters.data.annotationType;switch(subtype){case _util.AnnotationType.LINK:return new LinkAnnotationElement(parameters);case _util.AnnotationType.TEXT:return new TextAnnotationElement(parameters);case _util.AnnotationType.WIDGET:const fieldType=parameters.data.fieldType;switch(fieldType){case"Tx":return new TextWidgetAnnotationElement(parameters);case"Btn":if(parameters.data.radioButton){return new RadioButtonWidgetAnnotationElement(parameters);}else if(parameters.data.checkBox){return new CheckboxWidgetAnnotationElement(parameters);}
return new PushButtonWidgetAnnotationElement(parameters);case"Ch":return new ChoiceWidgetAnnotationElement(parameters);}
return new WidgetAnnotationElement(parameters);case _util.AnnotationType.POPUP:return new PopupAnnotationElement(parameters);case _util.AnnotationType.FREETEXT:return new FreeTextAnnotationElement(parameters);case _util.AnnotationType.LINE:return new LineAnnotationElement(parameters);case _util.AnnotationType.SQUARE:return new SquareAnnotationElement(parameters);case _util.AnnotationType.CIRCLE:return new CircleAnnotationElement(parameters);case _util.AnnotationType.POLYLINE:return new PolylineAnnotationElement(parameters);case _util.AnnotationType.CARET:return new CaretAnnotationElement(parameters);case _util.AnnotationType.INK:return new InkAnnotationElement(parameters);case _util.AnnotationType.POLYGON:return new PolygonAnnotationElement(parameters);case _util.AnnotationType.HIGHLIGHT:return new HighlightAnnotationElement(parameters);case _util.AnnotationType.UNDERLINE:return new UnderlineAnnotationElement(parameters);case _util.AnnotationType.SQUIGGLY:return new SquigglyAnnotationElement(parameters);case _util.AnnotationType.STRIKEOUT:return new StrikeOutAnnotationElement(parameters);case _util.AnnotationType.STAMP:return new StampAnnotationElement(parameters);case _util.AnnotationType.FILEATTACHMENT:return new FileAttachmentAnnotationElement(parameters);default:return new AnnotationElement(parameters);}}}
class AnnotationElement{constructor(parameters){let{isRenderable=false,ignoreBorder=false,createQuadrilaterals=false}=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.isRenderable=isRenderable;this.data=parameters.data;this.layer=parameters.layer;this.page=parameters.page;this.viewport=parameters.viewport;this.linkService=parameters.linkService;this.downloadManager=parameters.downloadManager;this.imageResourcesPath=parameters.imageResourcesPath;this.renderForms=parameters.renderForms;this.svgFactory=parameters.svgFactory;this.annotationStorage=parameters.annotationStorage;this.enableScripting=parameters.enableScripting;this.hasJSActions=parameters.hasJSActions;this._fieldObjects=parameters.fieldObjects;this._mouseState=parameters.mouseState;if(isRenderable){this.container=this._createContainer(ignoreBorder);}
if(createQuadrilaterals){this.quadrilaterals=this._createQuadrilaterals(ignoreBorder);}}
_createContainer(){let ignoreBorder=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;const data=this.data,page=this.page,viewport=this.viewport;const container=document.createElement("section");const{width,height}=getRectDims(data.rect);const[pageLLx,pageLLy,pageURx,pageURy]=viewport.viewBox;const pageWidth=pageURx-pageLLx;const pageHeight=pageURy-pageLLy;container.setAttribute("data-annotation-id",data.id);const rect=_util.Util.normalizeRect([data.rect[0],page.view[3]-data.rect[1]+page.view[1],data.rect[2],page.view[3]-data.rect[3]+page.view[1]]);if(!ignoreBorder&&data.borderStyle.width>0){container.style.borderWidth=`${data.borderStyle.width}px`;const horizontalRadius=data.borderStyle.horizontalCornerRadius;const verticalRadius=data.borderStyle.verticalCornerRadius;if(horizontalRadius>0||verticalRadius>0){const radius=`calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;container.style.borderRadius=radius;}else if(this instanceof RadioButtonWidgetAnnotationElement){const radius=`calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;container.style.borderRadius=radius;}
switch(data.borderStyle.style){case _util.AnnotationBorderStyleType.SOLID:container.style.borderStyle="solid";break;case _util.AnnotationBorderStyleType.DASHED:container.style.borderStyle="dashed";break;case _util.AnnotationBorderStyleType.BEVELED:(0,_util.warn)("Unimplemented border style: beveled");break;case _util.AnnotationBorderStyleType.INSET:(0,_util.warn)("Unimplemented border style: inset");break;case _util.AnnotationBorderStyleType.UNDERLINE:container.style.borderBottomStyle="solid";break;default:break;}
const borderColor=data.borderColor||null;if(borderColor){container.style.borderColor=_util.Util.makeHexColor(borderColor[0]|0,borderColor[1]|0,borderColor[2]|0);}else{container.style.borderWidth=0;}}
container.style.left=`${100 * (rect[0] - pageLLx) / pageWidth}%`;container.style.top=`${100 * (rect[1] - pageLLy) / pageHeight}%`;const{rotation}=data;if(data.hasOwnCanvas||rotation===0){container.style.width=`${100 * width / pageWidth}%`;container.style.height=`${100 * height / pageHeight}%`;}else{this.setRotation(rotation,container);}
return container;}
setRotation(angle){let container=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.container;const[pageLLx,pageLLy,pageURx,pageURy]=this.viewport.viewBox;const pageWidth=pageURx-pageLLx;const pageHeight=pageURy-pageLLy;const{width,height}=getRectDims(this.data.rect);let elementWidth,elementHeight;if(angle%180===0){elementWidth=100*width/pageWidth;elementHeight=100*height/pageHeight;}else{elementWidth=100*height/pageWidth;elementHeight=100*width/pageHeight;}
container.style.width=`${elementWidth}%`;container.style.height=`${elementHeight}%`;container.setAttribute("data-main-rotation",(360-angle)%360);}
get _commonActions(){const setColor=(jsName,styleName,event)=>{const color=event.detail[jsName];event.target.style[styleName]=_scripting_utils.ColorConverters[`${color[0]}_HTML`](color.slice(1));};return(0,_util.shadow)(this,"_commonActions",{display:event=>{const hidden=event.detail.display%2===1;this.container.style.visibility=hidden?"hidden":"visible";this.annotationStorage.setValue(this.data.id,{hidden,print:event.detail.display===0||event.detail.display===3});},print:event=>{this.annotationStorage.setValue(this.data.id,{print:event.detail.print});},hidden:event=>{this.container.style.visibility=event.detail.hidden?"hidden":"visible";this.annotationStorage.setValue(this.data.id,{hidden:event.detail.hidden});},focus:event=>{setTimeout(()=>event.target.focus({preventScroll:false}),0);},userName:event=>{event.target.title=event.detail.userName;},readonly:event=>{if(event.detail.readonly){event.target.setAttribute("readonly","");}else{event.target.removeAttribute("readonly");}},required:event=>{this._setRequired(event.target,event.detail.required);},bgColor:event=>{setColor("bgColor","backgroundColor",event);},fillColor:event=>{setColor("fillColor","backgroundColor",event);},fgColor:event=>{setColor("fgColor","color",event);},textColor:event=>{setColor("textColor","color",event);},borderColor:event=>{setColor("borderColor","borderColor",event);},strokeColor:event=>{setColor("strokeColor","borderColor",event);},rotation:event=>{const angle=event.detail.rotation;this.setRotation(angle);this.annotationStorage.setValue(this.data.id,{rotation:angle});}});}
_dispatchEventFromSandbox(actions,jsEvent){const commonActions=this._commonActions;for(const name of Object.keys(jsEvent.detail)){const action=actions[name]||commonActions[name];if(action){action(jsEvent);}}}
_setDefaultPropertiesFromJS(element){if(!this.enableScripting){return;}
const storedData=this.annotationStorage.getRawValue(this.data.id);if(!storedData){return;}
const commonActions=this._commonActions;for(const[actionName,detail]of Object.entries(storedData)){const action=commonActions[actionName];if(action){const eventProxy={detail:{[actionName]:detail},target:element};action(eventProxy);delete storedData[actionName];}}}
_createQuadrilaterals(){let ignoreBorder=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(!this.data.quadPoints){return null;}
const quadrilaterals=[];const savedRect=this.data.rect;for(const quadPoint of this.data.quadPoints){this.data.rect=[quadPoint[2].x,quadPoint[2].y,quadPoint[1].x,quadPoint[1].y];quadrilaterals.push(this._createContainer(ignoreBorder));}
this.data.rect=savedRect;return quadrilaterals;}
_createPopup(trigger,data){let container=this.container;if(this.quadrilaterals){trigger=trigger||this.quadrilaterals;container=this.quadrilaterals[0];}
if(!trigger){trigger=document.createElement("div");trigger.className="popupTriggerArea";container.append(trigger);}
const popupElement=new PopupElement({container,trigger,color:data.color,titleObj:data.titleObj,modificationDate:data.modificationDate,contentsObj:data.contentsObj,richText:data.richText,hideWrapper:true});const popup=popupElement.render();popup.style.left="100%";container.append(popup);}
_renderQuadrilaterals(className){for(const quadrilateral of this.quadrilaterals){quadrilateral.className=className;}
return this.quadrilaterals;}
render(){(0,_util.unreachable)("Abstract method `AnnotationElement.render` called");}
_getElementsByName(name){let skipId=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;const fields=[];if(this._fieldObjects){const fieldObj=this._fieldObjects[name];if(fieldObj){for(const{page,id,exportValues}of fieldObj){if(page===-1){continue;}
if(id===skipId){continue;}
const exportValue=typeof exportValues==="string"?exportValues:null;const domElement=document.querySelector(`[data-element-id="${id}"]`);if(domElement&&!GetElementsByNameSet.has(domElement)){(0,_util.warn)(`_getElementsByName - element not allowed: ${id}`);continue;}
fields.push({id,exportValue,domElement});}}
return fields;}
for(const domElement of document.getElementsByName(name)){const{id,exportValue}=domElement;if(id===skipId){continue;}
if(!GetElementsByNameSet.has(domElement)){continue;}
fields.push({id,exportValue,domElement});}
return fields;}
static get platform(){const platform=typeof navigator!=="undefined"?navigator.platform:"";return(0,_util.shadow)(this,"platform",{isWin:platform.includes("Win"),isMac:platform.includes("Mac")});}}
class LinkAnnotationElement extends AnnotationElement{constructor(parameters){let options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;super(parameters,{isRenderable:true,ignoreBorder:!!(options!==null&&options!==void 0&&options.ignoreBorder),createQuadrilaterals:true});this.isTooltipOnly=parameters.data.isTooltipOnly;}
render(){const{data,linkService}=this;const link=document.createElement("a");link.setAttribute("data-element-id",data.id);let isBound=false;if(data.url){linkService.addLinkAttributes(link,data.url,data.newWindow);isBound=true;}else if(data.action){this._bindNamedAction(link,data.action);isBound=true;}else if(data.dest){this._bindLink(link,data.dest);isBound=true;}else{if(data.actions&&(data.actions.Action||data.actions["Mouse Up"]||data.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions){this._bindJSAction(link,data);isBound=true;}
if(data.resetForm){this._bindResetFormAction(link,data.resetForm);isBound=true;}else if(this.isTooltipOnly&&!isBound){this._bindLink(link,"");isBound=true;}}
if(this.quadrilaterals){return this._renderQuadrilaterals("linkAnnotation").map((quadrilateral,index)=>{const linkElement=index===0?link:link.cloneNode();quadrilateral.append(linkElement);return quadrilateral;});}
this.container.className="linkAnnotation";if(isBound){this.container.append(link);}
return this.container;}
_bindLink(link,destination){link.href=this.linkService.getDestinationHash(destination);link.onclick=()=>{if(destination){this.linkService.goToDestination(destination);}
return false;};if(destination||destination===""){link.className="internalLink";}}
_bindNamedAction(link,action){link.href=this.linkService.getAnchorUrl("");link.onclick=()=>{this.linkService.executeNamedAction(action);return false;};link.className="internalLink";}
_bindJSAction(link,data){link.href=this.linkService.getAnchorUrl("");const map=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(const name of Object.keys(data.actions)){const jsName=map.get(name);if(!jsName){continue;}
link[jsName]=()=>{var _this$linkService$eve;(_this$linkService$eve=this.linkService.eventBus)===null||_this$linkService$eve===void 0?void 0:_this$linkService$eve.dispatch("dispatcheventinsandbox",{source:this,detail:{id:data.id,name}});return false;};}
if(!link.onclick){link.onclick=()=>false;}
link.className="internalLink";}
_bindResetFormAction(link,resetForm){const otherClickAction=link.onclick;if(!otherClickAction){link.href=this.linkService.getAnchorUrl("");}
link.className="internalLink";if(!this._fieldObjects){(0,_util.warn)(`_bindResetFormAction - "resetForm" action not supported, `+"ensure that the `fieldObjects` parameter is provided.");if(!otherClickAction){link.onclick=()=>false;}
return;}
link.onclick=()=>{if(otherClickAction){otherClickAction();}
const{fields:resetFormFields,refs:resetFormRefs,include}=resetForm;const allFields=[];if(resetFormFields.length!==0||resetFormRefs.length!==0){const fieldIds=new Set(resetFormRefs);for(const fieldName of resetFormFields){const fields=this._fieldObjects[fieldName]||[];for(const{id}of fields){fieldIds.add(id);}}
for(const fields of Object.values(this._fieldObjects)){for(const field of fields){if(fieldIds.has(field.id)===include){allFields.push(field);}}}}else{for(const fields of Object.values(this._fieldObjects)){allFields.push(...fields);}}
const storage=this.annotationStorage;const allIds=[];for(const field of allFields){const{id}=field;allIds.push(id);switch(field.type){case"text":{const value=field.defaultValue||"";storage.setValue(id,{value});break;}
case"checkbox":case"radiobutton":{const value=field.defaultValue===field.exportValues;storage.setValue(id,{value});break;}
case"combobox":case"listbox":{const value=field.defaultValue||"";storage.setValue(id,{value});break;}
default:continue;}
const domElement=document.querySelector(`[data-element-id="${id}"]`);if(!domElement){continue;}else if(!GetElementsByNameSet.has(domElement)){(0,_util.warn)(`_bindResetFormAction - element not allowed: ${id}`);continue;}
domElement.dispatchEvent(new Event("resetform"));}
if(this.enableScripting){var _this$linkService$eve2;(_this$linkService$eve2=this.linkService.eventBus)===null||_this$linkService$eve2===void 0?void 0:_this$linkService$eve2.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:allIds,name:"ResetForm"}});}
return false;};}}
class TextAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl,_parameters$data$cont,_parameters$data$rich;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl=parameters.data.titleObj)!==null&&_parameters$data$titl!==void 0&&_parameters$data$titl.str||(_parameters$data$cont=parameters.data.contentsObj)!==null&&_parameters$data$cont!==void 0&&_parameters$data$cont.str||(_parameters$data$rich=parameters.data.richText)!==null&&_parameters$data$rich!==void 0&&_parameters$data$rich.str);super(parameters,{isRenderable});}
render(){this.container.className="textAnnotation";const image=document.createElement("img");image.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg";image.alt="[{{type}} Annotation]";image.dataset.l10nId="text_annotation_type";image.dataset.l10nArgs=JSON.stringify({type:this.data.name});if(!this.data.hasPopup){this._createPopup(image,this.data);}
this.container.append(image);return this.container;}}
class WidgetAnnotationElement extends AnnotationElement{render(){if(this.data.alternativeText){this.container.title=this.data.alternativeText;}
return this.container;}
_getKeyModifier(event){const{isWin,isMac}=AnnotationElement.platform;return isWin&&event.ctrlKey||isMac&&event.metaKey;}
_setEventListener(element,baseName,eventName,valueGetter){if(baseName.includes("mouse")){element.addEventListener(baseName,event=>{var _this$linkService$eve3;(_this$linkService$eve3=this.linkService.eventBus)===null||_this$linkService$eve3===void 0?void 0:_this$linkService$eve3.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:eventName,value:valueGetter(event),shift:event.shiftKey,modifier:this._getKeyModifier(event)}});});}else{element.addEventListener(baseName,event=>{var _this$linkService$eve4;(_this$linkService$eve4=this.linkService.eventBus)===null||_this$linkService$eve4===void 0?void 0:_this$linkService$eve4.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:eventName,value:valueGetter(event)}});});}}
_setEventListeners(element,names,getter){for(const[baseName,eventName]of names){var _this$data$actions;if(eventName==="Action"||(_this$data$actions=this.data.actions)!==null&&_this$data$actions!==void 0&&_this$data$actions[eventName]){this._setEventListener(element,baseName,eventName,getter);}}}
_setBackgroundColor(element){const color=this.data.backgroundColor||null;element.style.backgroundColor=color===null?"transparent":_util.Util.makeHexColor(color[0],color[1],color[2]);}
_setTextStyle(element){const TEXT_ALIGNMENT=["left","center","right"];const{fontColor}=this.data.defaultAppearanceData;const fontSize=this.data.defaultAppearanceData.fontSize||DEFAULT_FONT_SIZE;const style=element.style;let computedFontSize;if(this.data.multiLine){const height=Math.abs(this.data.rect[3]-this.data.rect[1]);const numberOfLines=Math.round(height/(_util.LINE_FACTOR*fontSize))||1;const lineHeight=height/numberOfLines;computedFontSize=Math.min(fontSize,Math.round(lineHeight/_util.LINE_FACTOR));}else{const height=Math.abs(this.data.rect[3]-this.data.rect[1]);computedFontSize=Math.min(fontSize,Math.round(height/_util.LINE_FACTOR));}
style.fontSize=`calc(${computedFontSize}px * var(--scale-factor))`;style.color=_util.Util.makeHexColor(fontColor[0],fontColor[1],fontColor[2]);if(this.data.textAlignment!==null){style.textAlign=TEXT_ALIGNMENT[this.data.textAlignment];}}
_setRequired(element,isRequired){if(isRequired){element.setAttribute("required",true);}else{element.removeAttribute("required");}
element.setAttribute("aria-required",isRequired);}}
class TextWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){const isRenderable=parameters.renderForms||!parameters.data.hasAppearance&&!!parameters.data.fieldValue;super(parameters,{isRenderable});}
setPropertyOnSiblings(base,key,value,keyInStorage){const storage=this.annotationStorage;for(const element of this._getElementsByName(base.name,base.id)){if(element.domElement){element.domElement[key]=value;}
storage.setValue(element.id,{[keyInStorage]:value});}}
render(){const storage=this.annotationStorage;const id=this.data.id;this.container.className="textWidgetAnnotation";let element=null;if(this.renderForms){const storedData=storage.getValue(id,{value:this.data.fieldValue});let textContent=storedData.formattedValue||storedData.value||"";const maxLen=storage.getValue(id,{charLimit:this.data.maxLen}).charLimit;if(maxLen&&textContent.length>maxLen){textContent=textContent.slice(0,maxLen);}
const elementData={userValue:textContent,formattedValue:null,valueOnFocus:""};if(this.data.multiLine){element=document.createElement("textarea");element.textContent=textContent;if(this.data.doNotScroll){element.style.overflowY="hidden";}}else{element=document.createElement("input");element.type="text";element.setAttribute("value",textContent);if(this.data.doNotScroll){element.style.overflowX="hidden";}}
GetElementsByNameSet.add(element);element.setAttribute("data-element-id",id);element.disabled=this.data.readOnly;element.name=this.data.fieldName;element.tabIndex=DEFAULT_TAB_INDEX;this._setRequired(element,this.data.required);if(maxLen){element.maxLength=maxLen;}
element.addEventListener("input",event=>{storage.setValue(id,{value:event.target.value});this.setPropertyOnSiblings(element,"value",event.target.value,"value");});element.addEventListener("resetform",event=>{var _this$data$defaultFie;const defaultValue=(_this$data$defaultFie=this.data.defaultFieldValue)!==null&&_this$data$defaultFie!==void 0?_this$data$defaultFie:"";element.value=elementData.userValue=defaultValue;elementData.formattedValue=null;});let blurListener=event=>{const{formattedValue}=elementData;if(formattedValue!==null&&formattedValue!==undefined){event.target.value=formattedValue;}
event.target.scrollLeft=0;};if(this.enableScripting&&this.hasJSActions){var _this$data$actions2;element.addEventListener("focus",event=>{if(elementData.userValue){event.target.value=elementData.userValue;}
elementData.valueOnFocus=event.target.value;});element.addEventListener("updatefromsandbox",jsEvent=>{const actions={value(event){var _event$detail$value;elementData.userValue=(_event$detail$value=event.detail.value)!==null&&_event$detail$value!==void 0?_event$detail$value:"";storage.setValue(id,{value:elementData.userValue.toString()});event.target.value=elementData.userValue;},formattedValue(event){const{formattedValue}=event.detail;elementData.formattedValue=formattedValue;if(formattedValue!==null&&formattedValue!==undefined&&event.target!==document.activeElement){event.target.value=formattedValue;}
storage.setValue(id,{formattedValue});},selRange(event){event.target.setSelectionRange(...event.detail.selRange);},charLimit:event=>{var _this$linkService$eve5;const{charLimit}=event.detail;const{target}=event;if(charLimit===0){target.removeAttribute("maxLength");return;}
target.setAttribute("maxLength",charLimit);let value=elementData.userValue;if(!value||value.length<=charLimit){return;}
value=value.slice(0,charLimit);target.value=elementData.userValue=value;storage.setValue(id,{value});(_this$linkService$eve5=this.linkService.eventBus)===null||_this$linkService$eve5===void 0?void 0:_this$linkService$eve5.dispatch("dispatcheventinsandbox",{source:this,detail:{id,name:"Keystroke",value,willCommit:true,commitKey:1,selStart:target.selectionStart,selEnd:target.selectionEnd}});}};this._dispatchEventFromSandbox(actions,jsEvent);});element.addEventListener("keydown",event=>{var _this$linkService$eve6;let commitKey=-1;if(event.key==="Escape"){commitKey=0;}else if(event.key==="Enter"){commitKey=2;}else if(event.key==="Tab"){commitKey=3;}
if(commitKey===-1){return;}
const{value}=event.target;if(elementData.valueOnFocus===value){return;}
elementData.userValue=value;(_this$linkService$eve6=this.linkService.eventBus)===null||_this$linkService$eve6===void 0?void 0:_this$linkService$eve6.dispatch("dispatcheventinsandbox",{source:this,detail:{id,name:"Keystroke",value,willCommit:true,commitKey,selStart:event.target.selectionStart,selEnd:event.target.selectionEnd}});});const _blurListener=blurListener;blurListener=null;element.addEventListener("blur",event=>{const{value}=event.target;elementData.userValue=value;if(this._mouseState.isDown&&elementData.valueOnFocus!==value){var _this$linkService$eve7;(_this$linkService$eve7=this.linkService.eventBus)===null||_this$linkService$eve7===void 0?void 0:_this$linkService$eve7.dispatch("dispatcheventinsandbox",{source:this,detail:{id,name:"Keystroke",value,willCommit:true,commitKey:1,selStart:event.target.selectionStart,selEnd:event.target.selectionEnd}});}
_blurListener(event);});if((_this$data$actions2=this.data.actions)!==null&&_this$data$actions2!==void 0&&_this$data$actions2.Keystroke){element.addEventListener("beforeinput",event=>{var _this$linkService$eve8;const{data,target}=event;const{value,selectionStart,selectionEnd}=target;let selStart=selectionStart,selEnd=selectionEnd;switch(event.inputType){case"deleteWordBackward":{const match=value.substring(0,selectionStart).match(/\w*[^\w]*$/);if(match){selStart-=match[0].length;}
break;}
case"deleteWordForward":{const match=value.substring(selectionStart).match(/^[^\w]*\w*/);if(match){selEnd+=match[0].length;}
break;}
case"deleteContentBackward":if(selectionStart===selectionEnd){selStart-=1;}
break;case"deleteContentForward":if(selectionStart===selectionEnd){selEnd+=1;}
break;}
event.preventDefault();(_this$linkService$eve8=this.linkService.eventBus)===null||_this$linkService$eve8===void 0?void 0:_this$linkService$eve8.dispatch("dispatcheventinsandbox",{source:this,detail:{id,name:"Keystroke",value,change:data||"",willCommit:false,selStart,selEnd}});});}
this._setEventListeners(element,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],event=>event.target.value);}
if(blurListener){element.addEventListener("blur",blurListener);}
if(this.data.comb){const fieldWidth=this.data.rect[2]-this.data.rect[0];const combWidth=fieldWidth/maxLen;element.classList.add("comb");element.style.letterSpacing=`calc(${combWidth}px * var(--scale-factor) - 1ch)`;}}else{element=document.createElement("div");element.textContent=this.data.fieldValue;element.style.verticalAlign="middle";element.style.display="table-cell";}
this._setTextStyle(element);this._setBackgroundColor(element);this._setDefaultPropertiesFromJS(element);this.container.append(element);return this.container;}}
class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){super(parameters,{isRenderable:parameters.renderForms});}
render(){const storage=this.annotationStorage;const data=this.data;const id=data.id;let value=storage.getValue(id,{value:data.exportValue===data.fieldValue}).value;if(typeof value==="string"){value=value!=="Off";storage.setValue(id,{value});}
this.container.className="buttonWidgetAnnotation checkBox";const element=document.createElement("input");GetElementsByNameSet.add(element);element.setAttribute("data-element-id",id);element.disabled=data.readOnly;this._setRequired(element,this.data.required);element.type="checkbox";element.name=data.fieldName;if(value){element.setAttribute("checked",true);}
element.setAttribute("exportValue",data.exportValue);element.tabIndex=DEFAULT_TAB_INDEX;element.addEventListener("change",event=>{const{name,checked}=event.target;for(const checkbox of this._getElementsByName(name,id)){const curChecked=checked&&checkbox.exportValue===data.exportValue;if(checkbox.domElement){checkbox.domElement.checked=curChecked;}
storage.setValue(checkbox.id,{value:curChecked});}
storage.setValue(id,{value:checked});});element.addEventListener("resetform",event=>{const defaultValue=data.defaultFieldValue||"Off";event.target.checked=defaultValue===data.exportValue;});if(this.enableScripting&&this.hasJSActions){element.addEventListener("updatefromsandbox",jsEvent=>{const actions={value(event){event.target.checked=event.detail.value!=="Off";storage.setValue(id,{value:event.target.checked});}};this._dispatchEventFromSandbox(actions,jsEvent);});this._setEventListeners(element,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],event=>event.target.checked);}
this._setBackgroundColor(element);this._setDefaultPropertiesFromJS(element);this.container.append(element);return this.container;}}
class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){super(parameters,{isRenderable:parameters.renderForms});}
render(){this.container.className="buttonWidgetAnnotation radioButton";const storage=this.annotationStorage;const data=this.data;const id=data.id;let value=storage.getValue(id,{value:data.fieldValue===data.buttonValue}).value;if(typeof value==="string"){value=value!==data.buttonValue;storage.setValue(id,{value});}
const element=document.createElement("input");GetElementsByNameSet.add(element);element.setAttribute("data-element-id",id);element.disabled=data.readOnly;this._setRequired(element,this.data.required);element.type="radio";element.name=data.fieldName;if(value){element.setAttribute("checked",true);}
element.tabIndex=DEFAULT_TAB_INDEX;element.addEventListener("change",event=>{const{name,checked}=event.target;for(const radio of this._getElementsByName(name,id)){storage.setValue(radio.id,{value:false});}
storage.setValue(id,{value:checked});});element.addEventListener("resetform",event=>{const defaultValue=data.defaultFieldValue;event.target.checked=defaultValue!==null&&defaultValue!==undefined&&defaultValue===data.buttonValue;});if(this.enableScripting&&this.hasJSActions){const pdfButtonValue=data.buttonValue;element.addEventListener("updatefromsandbox",jsEvent=>{const actions={value:event=>{const checked=pdfButtonValue===event.detail.value;for(const radio of this._getElementsByName(event.target.name)){const curChecked=checked&&radio.id===id;if(radio.domElement){radio.domElement.checked=curChecked;}
storage.setValue(radio.id,{value:curChecked});}}};this._dispatchEventFromSandbox(actions,jsEvent);});this._setEventListeners(element,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],event=>event.target.checked);}
this._setBackgroundColor(element);this._setDefaultPropertiesFromJS(element);this.container.append(element);return this.container;}}
class PushButtonWidgetAnnotationElement extends LinkAnnotationElement{constructor(parameters){super(parameters,{ignoreBorder:parameters.data.hasAppearance});}
render(){const container=super.render();container.className="buttonWidgetAnnotation pushButton";if(this.data.alternativeText){container.title=this.data.alternativeText;}
const linkElement=container.lastChild;if(this.enableScripting&&this.hasJSActions&&linkElement){this._setDefaultPropertiesFromJS(linkElement);linkElement.addEventListener("updatefromsandbox",jsEvent=>{this._dispatchEventFromSandbox({},jsEvent);});}
return container;}}
class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){super(parameters,{isRenderable:parameters.renderForms});}
render(){this.container.className="choiceWidgetAnnotation";const storage=this.annotationStorage;const id=this.data.id;const storedData=storage.getValue(id,{value:this.data.fieldValue});const selectElement=document.createElement("select");GetElementsByNameSet.add(selectElement);selectElement.setAttribute("data-element-id",id);selectElement.disabled=this.data.readOnly;this._setRequired(selectElement,this.data.required);selectElement.name=this.data.fieldName;selectElement.tabIndex=DEFAULT_TAB_INDEX;let addAnEmptyEntry=this.data.combo&&this.data.options.length>0;if(!this.data.combo){selectElement.size=this.data.options.length;if(this.data.multiSelect){selectElement.multiple=true;}}
selectElement.addEventListener("resetform",event=>{const defaultValue=this.data.defaultFieldValue;for(const option of selectElement.options){option.selected=option.value===defaultValue;}});for(const option of this.data.options){const optionElement=document.createElement("option");optionElement.textContent=option.displayValue;optionElement.value=option.exportValue;if(storedData.value.includes(option.exportValue)){optionElement.setAttribute("selected",true);addAnEmptyEntry=false;}
selectElement.append(optionElement);}
let removeEmptyEntry=null;if(addAnEmptyEntry){const noneOptionElement=document.createElement("option");noneOptionElement.value=" ";noneOptionElement.setAttribute("hidden",true);noneOptionElement.setAttribute("selected",true);selectElement.prepend(noneOptionElement);removeEmptyEntry=()=>{noneOptionElement.remove();selectElement.removeEventListener("input",removeEmptyEntry);removeEmptyEntry=null;};selectElement.addEventListener("input",removeEmptyEntry);}
const getValue=(event,isExport)=>{const name=isExport?"value":"textContent";const options=event.target.options;if(!event.target.multiple){return options.selectedIndex===-1?null:options[options.selectedIndex][name];}
return Array.prototype.filter.call(options,option=>option.selected).map(option=>option[name]);};const getItems=event=>{const options=event.target.options;return Array.prototype.map.call(options,option=>{return{displayValue:option.textContent,exportValue:option.value};});};if(this.enableScripting&&this.hasJSActions){selectElement.addEventListener("updatefromsandbox",jsEvent=>{const actions={value(event){var _removeEmptyEntry;(_removeEmptyEntry=removeEmptyEntry)===null||_removeEmptyEntry===void 0?void 0:_removeEmptyEntry();const value=event.detail.value;const values=new Set(Array.isArray(value)?value:[value]);for(const option of selectElement.options){option.selected=values.has(option.value);}
storage.setValue(id,{value:getValue(event,true)});},multipleSelection(event){selectElement.multiple=true;},remove(event){const options=selectElement.options;const index=event.detail.remove;options[index].selected=false;selectElement.remove(index);if(options.length>0){const i=Array.prototype.findIndex.call(options,option=>option.selected);if(i===-1){options[0].selected=true;}}
storage.setValue(id,{value:getValue(event,true),items:getItems(event)});},clear(event){while(selectElement.length!==0){selectElement.remove(0);}
storage.setValue(id,{value:null,items:[]});},insert(event){const{index,displayValue,exportValue}=event.detail.insert;const selectChild=selectElement.children[index];const optionElement=document.createElement("option");optionElement.textContent=displayValue;optionElement.value=exportValue;if(selectChild){selectChild.before(optionElement);}else{selectElement.append(optionElement);}
storage.setValue(id,{value:getValue(event,true),items:getItems(event)});},items(event){const{items}=event.detail;while(selectElement.length!==0){selectElement.remove(0);}
for(const item of items){const{displayValue,exportValue}=item;const optionElement=document.createElement("option");optionElement.textContent=displayValue;optionElement.value=exportValue;selectElement.append(optionElement);}
if(selectElement.options.length>0){selectElement.options[0].selected=true;}
storage.setValue(id,{value:getValue(event,true),items:getItems(event)});},indices(event){const indices=new Set(event.detail.indices);for(const option of event.target.options){option.selected=indices.has(option.index);}
storage.setValue(id,{value:getValue(event,true)});},editable(event){event.target.disabled=!event.detail.editable;}};this._dispatchEventFromSandbox(actions,jsEvent);});selectElement.addEventListener("input",event=>{var _this$linkService$eve9;const exportValue=getValue(event,true);const value=getValue(event,false);storage.setValue(id,{value:exportValue});(_this$linkService$eve9=this.linkService.eventBus)===null||_this$linkService$eve9===void 0?void 0:_this$linkService$eve9.dispatch("dispatcheventinsandbox",{source:this,detail:{id,name:"Keystroke",value,changeEx:exportValue,willCommit:true,commitKey:1,keyDown:false}});});this._setEventListeners(selectElement,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"]],event=>event.target.checked);}else{selectElement.addEventListener("input",function(event){storage.setValue(id,{value:getValue(event,true)});});}
if(this.data.combo){this._setTextStyle(selectElement);}else{}
this._setBackgroundColor(selectElement);this._setDefaultPropertiesFromJS(selectElement);this.container.append(selectElement);return this.container;}}
class PopupAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl2,_parameters$data$cont2,_parameters$data$rich2;const isRenderable=!!((_parameters$data$titl2=parameters.data.titleObj)!==null&&_parameters$data$titl2!==void 0&&_parameters$data$titl2.str||(_parameters$data$cont2=parameters.data.contentsObj)!==null&&_parameters$data$cont2!==void 0&&_parameters$data$cont2.str||(_parameters$data$rich2=parameters.data.richText)!==null&&_parameters$data$rich2!==void 0&&_parameters$data$rich2.str);super(parameters,{isRenderable});}
render(){const IGNORE_TYPES=["Line","Square","Circle","PolyLine","Polygon","Ink"];this.container.className="popupAnnotation";if(IGNORE_TYPES.includes(this.data.parentType)){return this.container;}
const selector=`[data-annotation-id="${this.data.parentId}"]`;const parentElements=this.layer.querySelectorAll(selector);if(parentElements.length===0){return this.container;}
const popup=new PopupElement({container:this.container,trigger:Array.from(parentElements),color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate,contentsObj:this.data.contentsObj,richText:this.data.richText});const page=this.page;const rect=_util.Util.normalizeRect([this.data.parentRect[0],page.view[3]-this.data.parentRect[1]+page.view[1],this.data.parentRect[2],page.view[3]-this.data.parentRect[3]+page.view[1]]);const popupLeft=rect[0]+this.data.parentRect[2]-this.data.parentRect[0];const popupTop=rect[1];const[pageLLx,pageLLy,pageURx,pageURy]=this.viewport.viewBox;const pageWidth=pageURx-pageLLx;const pageHeight=pageURy-pageLLy;this.container.style.left=`${100 * (popupLeft - pageLLx) / pageWidth}%`;this.container.style.top=`${100 * (popupTop - pageLLy) / pageHeight}%`;this.container.append(popup.render());return this.container;}}
class PopupElement{constructor(parameters){this.container=parameters.container;this.trigger=parameters.trigger;this.color=parameters.color;this.titleObj=parameters.titleObj;this.modificationDate=parameters.modificationDate;this.contentsObj=parameters.contentsObj;this.richText=parameters.richText;this.hideWrapper=parameters.hideWrapper||false;this.pinned=false;}
render(){var _this$richText,_this$contentsObj;const BACKGROUND_ENLIGHT=0.7;const wrapper=document.createElement("div");wrapper.className="popupWrapper";this.hideElement=this.hideWrapper?wrapper:this.container;this.hideElement.hidden=true;const popup=document.createElement("div");popup.className="popup";const color=this.color;if(color){const r=BACKGROUND_ENLIGHT*(255-color[0])+color[0];const g=BACKGROUND_ENLIGHT*(255-color[1])+color[1];const b=BACKGROUND_ENLIGHT*(255-color[2])+color[2];popup.style.backgroundColor=_util.Util.makeHexColor(r|0,g|0,b|0);}
const title=document.createElement("h1");title.dir=this.titleObj.dir;title.textContent=this.titleObj.str;popup.append(title);const dateObject=_display_utils.PDFDateString.toDateObject(this.modificationDate);if(dateObject){const modificationDate=document.createElement("span");modificationDate.className="popupDate";modificationDate.textContent="{{date}}, {{time}}";modificationDate.dataset.l10nId="annotation_date_string";modificationDate.dataset.l10nArgs=JSON.stringify({date:dateObject.toLocaleDateString(),time:dateObject.toLocaleTimeString()});popup.append(modificationDate);}
if((_this$richText=this.richText)!==null&&_this$richText!==void 0&&_this$richText.str&&(!((_this$contentsObj=this.contentsObj)!==null&&_this$contentsObj!==void 0&&_this$contentsObj.str)||this.contentsObj.str===this.richText.str)){_xfa_layer.XfaLayer.render({xfaHtml:this.richText.html,intent:"richText",div:popup});popup.lastChild.className="richText popupContent";}else{const contents=this._formatContents(this.contentsObj);popup.append(contents);}
if(!Array.isArray(this.trigger)){this.trigger=[this.trigger];}
for(const element of this.trigger){element.addEventListener("click",this._toggle.bind(this));element.addEventListener("mouseover",this._show.bind(this,false));element.addEventListener("mouseout",this._hide.bind(this,false));}
popup.addEventListener("click",this._hide.bind(this,true));wrapper.append(popup);return wrapper;}
_formatContents(_ref){let{str,dir}=_ref;const p=document.createElement("p");p.className="popupContent";p.dir=dir;const lines=str.split(/(?:\r\n?|\n)/);for(let i=0,ii=lines.length;i<ii;++i){const line=lines[i];p.append(document.createTextNode(line));if(i<ii-1){p.append(document.createElement("br"));}}
return p;}
_toggle(){if(this.pinned){this._hide(true);}else{this._show(true);}}
_show(){let pin=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(pin){this.pinned=true;}
if(this.hideElement.hidden){this.hideElement.hidden=false;this.container.style.zIndex=parseInt(this.container.style.zIndex)+1000;}}
_hide(){let unpin=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;if(unpin){this.pinned=false;}
if(!this.hideElement.hidden&&!this.pinned){this.hideElement.hidden=true;this.container.style.zIndex=parseInt(this.container.style.zIndex)-1000;}}}
class FreeTextAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl3,_parameters$data$cont3,_parameters$data$rich3;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl3=parameters.data.titleObj)!==null&&_parameters$data$titl3!==void 0&&_parameters$data$titl3.str||(_parameters$data$cont3=parameters.data.contentsObj)!==null&&_parameters$data$cont3!==void 0&&_parameters$data$cont3.str||(_parameters$data$rich3=parameters.data.richText)!==null&&_parameters$data$rich3!==void 0&&_parameters$data$rich3.str);super(parameters,{isRenderable,ignoreBorder:true});this.textContent=parameters.data.textContent;}
render(){this.container.className="freeTextAnnotation";if(this.textContent){const content=document.createElement("div");content.className="annotationTextContent";content.setAttribute("role","comment");for(const line of this.textContent){const lineSpan=document.createElement("span");lineSpan.textContent=line;content.append(lineSpan);}
this.container.append(content);}
if(!this.data.hasPopup){this._createPopup(null,this.data);}
return this.container;}}
class LineAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl4,_parameters$data$cont4,_parameters$data$rich4;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl4=parameters.data.titleObj)!==null&&_parameters$data$titl4!==void 0&&_parameters$data$titl4.str||(_parameters$data$cont4=parameters.data.contentsObj)!==null&&_parameters$data$cont4!==void 0&&_parameters$data$cont4.str||(_parameters$data$rich4=parameters.data.richText)!==null&&_parameters$data$rich4!==void 0&&_parameters$data$rich4.str);super(parameters,{isRenderable,ignoreBorder:true});}
render(){this.container.className="lineAnnotation";const data=this.data;const{width,height}=getRectDims(data.rect);const svg=this.svgFactory.create(width,height,true);const line=this.svgFactory.createElement("svg:line");line.setAttribute("x1",data.rect[2]-data.lineCoordinates[0]);line.setAttribute("y1",data.rect[3]-data.lineCoordinates[1]);line.setAttribute("x2",data.rect[2]-data.lineCoordinates[2]);line.setAttribute("y2",data.rect[3]-data.lineCoordinates[3]);line.setAttribute("stroke-width",data.borderStyle.width||1);line.setAttribute("stroke","transparent");line.setAttribute("fill","transparent");svg.append(line);this.container.append(svg);this._createPopup(line,data);return this.container;}}
class SquareAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl5,_parameters$data$cont5,_parameters$data$rich5;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl5=parameters.data.titleObj)!==null&&_parameters$data$titl5!==void 0&&_parameters$data$titl5.str||(_parameters$data$cont5=parameters.data.contentsObj)!==null&&_parameters$data$cont5!==void 0&&_parameters$data$cont5.str||(_parameters$data$rich5=parameters.data.richText)!==null&&_parameters$data$rich5!==void 0&&_parameters$data$rich5.str);super(parameters,{isRenderable,ignoreBorder:true});}
render(){this.container.className="squareAnnotation";const data=this.data;const{width,height}=getRectDims(data.rect);const svg=this.svgFactory.create(width,height,true);const borderWidth=data.borderStyle.width;const square=this.svgFactory.createElement("svg:rect");square.setAttribute("x",borderWidth/2);square.setAttribute("y",borderWidth/2);square.setAttribute("width",width-borderWidth);square.setAttribute("height",height-borderWidth);square.setAttribute("stroke-width",borderWidth||1);square.setAttribute("stroke","transparent");square.setAttribute("fill","transparent");svg.append(square);this.container.append(svg);this._createPopup(square,data);return this.container;}}
class CircleAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl6,_parameters$data$cont6,_parameters$data$rich6;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl6=parameters.data.titleObj)!==null&&_parameters$data$titl6!==void 0&&_parameters$data$titl6.str||(_parameters$data$cont6=parameters.data.contentsObj)!==null&&_parameters$data$cont6!==void 0&&_parameters$data$cont6.str||(_parameters$data$rich6=parameters.data.richText)!==null&&_parameters$data$rich6!==void 0&&_parameters$data$rich6.str);super(parameters,{isRenderable,ignoreBorder:true});}
render(){this.container.className="circleAnnotation";const data=this.data;const{width,height}=getRectDims(data.rect);const svg=this.svgFactory.create(width,height,true);const borderWidth=data.borderStyle.width;const circle=this.svgFactory.createElement("svg:ellipse");circle.setAttribute("cx",width/2);circle.setAttribute("cy",height/2);circle.setAttribute("rx",width/2-borderWidth/2);circle.setAttribute("ry",height/2-borderWidth/2);circle.setAttribute("stroke-width",borderWidth||1);circle.setAttribute("stroke","transparent");circle.setAttribute("fill","transparent");svg.append(circle);this.container.append(svg);this._createPopup(circle,data);return this.container;}}
class PolylineAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl7,_parameters$data$cont7,_parameters$data$rich7;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl7=parameters.data.titleObj)!==null&&_parameters$data$titl7!==void 0&&_parameters$data$titl7.str||(_parameters$data$cont7=parameters.data.contentsObj)!==null&&_parameters$data$cont7!==void 0&&_parameters$data$cont7.str||(_parameters$data$rich7=parameters.data.richText)!==null&&_parameters$data$rich7!==void 0&&_parameters$data$rich7.str);super(parameters,{isRenderable,ignoreBorder:true});this.containerClassName="polylineAnnotation";this.svgElementName="svg:polyline";}
render(){this.container.className=this.containerClassName;const data=this.data;const{width,height}=getRectDims(data.rect);const svg=this.svgFactory.create(width,height,true);let points=[];for(const coordinate of data.vertices){const x=coordinate.x-data.rect[0];const y=data.rect[3]-coordinate.y;points.push(x+","+y);}
points=points.join(" ");const polyline=this.svgFactory.createElement(this.svgElementName);polyline.setAttribute("points",points);polyline.setAttribute("stroke-width",data.borderStyle.width||1);polyline.setAttribute("stroke","transparent");polyline.setAttribute("fill","transparent");svg.append(polyline);this.container.append(svg);this._createPopup(polyline,data);return this.container;}}
class PolygonAnnotationElement extends PolylineAnnotationElement{constructor(parameters){super(parameters);this.containerClassName="polygonAnnotation";this.svgElementName="svg:polygon";}}
class CaretAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl8,_parameters$data$cont8,_parameters$data$rich8;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl8=parameters.data.titleObj)!==null&&_parameters$data$titl8!==void 0&&_parameters$data$titl8.str||(_parameters$data$cont8=parameters.data.contentsObj)!==null&&_parameters$data$cont8!==void 0&&_parameters$data$cont8.str||(_parameters$data$rich8=parameters.data.richText)!==null&&_parameters$data$rich8!==void 0&&_parameters$data$rich8.str);super(parameters,{isRenderable,ignoreBorder:true});}
render(){this.container.className="caretAnnotation";if(!this.data.hasPopup){this._createPopup(null,this.data);}
return this.container;}}
class InkAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl9,_parameters$data$cont9,_parameters$data$rich9;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl9=parameters.data.titleObj)!==null&&_parameters$data$titl9!==void 0&&_parameters$data$titl9.str||(_parameters$data$cont9=parameters.data.contentsObj)!==null&&_parameters$data$cont9!==void 0&&_parameters$data$cont9.str||(_parameters$data$rich9=parameters.data.richText)!==null&&_parameters$data$rich9!==void 0&&_parameters$data$rich9.str);super(parameters,{isRenderable,ignoreBorder:true});this.containerClassName="inkAnnotation";this.svgElementName="svg:polyline";}
render(){this.container.className=this.containerClassName;const data=this.data;const{width,height}=getRectDims(data.rect);const svg=this.svgFactory.create(width,height,true);for(const inkList of data.inkLists){let points=[];for(const coordinate of inkList){const x=coordinate.x-data.rect[0];const y=data.rect[3]-coordinate.y;points.push(`${x},${y}`);}
points=points.join(" ");const polyline=this.svgFactory.createElement(this.svgElementName);polyline.setAttribute("points",points);polyline.setAttribute("stroke-width",data.borderStyle.width||1);polyline.setAttribute("stroke","transparent");polyline.setAttribute("fill","transparent");this._createPopup(polyline,data);svg.append(polyline);}
this.container.append(svg);return this.container;}}
class HighlightAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl10,_parameters$data$cont10,_parameters$data$rich10;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl10=parameters.data.titleObj)!==null&&_parameters$data$titl10!==void 0&&_parameters$data$titl10.str||(_parameters$data$cont10=parameters.data.contentsObj)!==null&&_parameters$data$cont10!==void 0&&_parameters$data$cont10.str||(_parameters$data$rich10=parameters.data.richText)!==null&&_parameters$data$rich10!==void 0&&_parameters$data$rich10.str);super(parameters,{isRenderable,ignoreBorder:true,createQuadrilaterals:true});}
render(){if(!this.data.hasPopup){this._createPopup(null,this.data);}
if(this.quadrilaterals){return this._renderQuadrilaterals("highlightAnnotation");}
this.container.className="highlightAnnotation";return this.container;}}
class UnderlineAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl11,_parameters$data$cont11,_parameters$data$rich11;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl11=parameters.data.titleObj)!==null&&_parameters$data$titl11!==void 0&&_parameters$data$titl11.str||(_parameters$data$cont11=parameters.data.contentsObj)!==null&&_parameters$data$cont11!==void 0&&_parameters$data$cont11.str||(_parameters$data$rich11=parameters.data.richText)!==null&&_parameters$data$rich11!==void 0&&_parameters$data$rich11.str);super(parameters,{isRenderable,ignoreBorder:true,createQuadrilaterals:true});}
render(){if(!this.data.hasPopup){this._createPopup(null,this.data);}
if(this.quadrilaterals){return this._renderQuadrilaterals("underlineAnnotation");}
this.container.className="underlineAnnotation";return this.container;}}
class SquigglyAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl12,_parameters$data$cont12,_parameters$data$rich12;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl12=parameters.data.titleObj)!==null&&_parameters$data$titl12!==void 0&&_parameters$data$titl12.str||(_parameters$data$cont12=parameters.data.contentsObj)!==null&&_parameters$data$cont12!==void 0&&_parameters$data$cont12.str||(_parameters$data$rich12=parameters.data.richText)!==null&&_parameters$data$rich12!==void 0&&_parameters$data$rich12.str);super(parameters,{isRenderable,ignoreBorder:true,createQuadrilaterals:true});}
render(){if(!this.data.hasPopup){this._createPopup(null,this.data);}
if(this.quadrilaterals){return this._renderQuadrilaterals("squigglyAnnotation");}
this.container.className="squigglyAnnotation";return this.container;}}
class StrikeOutAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl13,_parameters$data$cont13,_parameters$data$rich13;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl13=parameters.data.titleObj)!==null&&_parameters$data$titl13!==void 0&&_parameters$data$titl13.str||(_parameters$data$cont13=parameters.data.contentsObj)!==null&&_parameters$data$cont13!==void 0&&_parameters$data$cont13.str||(_parameters$data$rich13=parameters.data.richText)!==null&&_parameters$data$rich13!==void 0&&_parameters$data$rich13.str);super(parameters,{isRenderable,ignoreBorder:true,createQuadrilaterals:true});}
render(){if(!this.data.hasPopup){this._createPopup(null,this.data);}
if(this.quadrilaterals){return this._renderQuadrilaterals("strikeoutAnnotation");}
this.container.className="strikeoutAnnotation";return this.container;}}
class StampAnnotationElement extends AnnotationElement{constructor(parameters){var _parameters$data$titl14,_parameters$data$cont14,_parameters$data$rich14;const isRenderable=!!(parameters.data.hasPopup||(_parameters$data$titl14=parameters.data.titleObj)!==null&&_parameters$data$titl14!==void 0&&_parameters$data$titl14.str||(_parameters$data$cont14=parameters.data.contentsObj)!==null&&_parameters$data$cont14!==void 0&&_parameters$data$cont14.str||(_parameters$data$rich14=parameters.data.richText)!==null&&_parameters$data$rich14!==void 0&&_parameters$data$rich14.str);super(parameters,{isRenderable,ignoreBorder:true});}
render(){this.container.className="stampAnnotation";if(!this.data.hasPopup){this._createPopup(null,this.data);}
return this.container;}}
class FileAttachmentAnnotationElement extends AnnotationElement{constructor(parameters){var _this$linkService$eve10;super(parameters,{isRenderable:true});const{filename,content}=this.data.file;this.filename=(0,_display_utils.getFilenameFromUrl)(filename);this.content=content;(_this$linkService$eve10=this.linkService.eventBus)===null||_this$linkService$eve10===void 0?void 0:_this$linkService$eve10.dispatch("fileattachmentannotation",{source:this,filename,content});}
render(){var _this$data$titleObj,_this$data$contentsOb;this.container.className="fileAttachmentAnnotation";const trigger=document.createElement("div");trigger.className="popupTriggerArea";trigger.addEventListener("dblclick",this._download.bind(this));if(!this.data.hasPopup&&((_this$data$titleObj=this.data.titleObj)!==null&&_this$data$titleObj!==void 0&&_this$data$titleObj.str||(_this$data$contentsOb=this.data.contentsObj)!==null&&_this$data$contentsOb!==void 0&&_this$data$contentsOb.str||this.data.richText)){this._createPopup(trigger,this.data);}
this.container.append(trigger);return this.container;}
_download(){var _this$downloadManager;(_this$downloadManager=this.downloadManager)===null||_this$downloadManager===void 0?void 0:_this$downloadManager.openOrDownloadData(this.container,this.content,this.filename);}}
class AnnotationLayer{static render(parameters){const{annotations,div,viewport,accessibilityManager}=parameters;_classStaticPrivateMethodGet(this,AnnotationLayer,_setDimensions).call(this,div,viewport);let zIndex=0;for(const data of annotations){if(data.annotationType!==_util.AnnotationType.POPUP){const{width,height}=getRectDims(data.rect);if(width<=0||height<=0){continue;}}
const element=AnnotationElementFactory.create({data,layer:div,page:parameters.page,viewport,linkService:parameters.linkService,downloadManager:parameters.downloadManager,imageResourcesPath:parameters.imageResourcesPath||"",renderForms:parameters.renderForms!==false,svgFactory:new _display_utils.DOMSVGFactory(),annotationStorage:parameters.annotationStorage||new _annotation_storage.AnnotationStorage(),enableScripting:parameters.enableScripting,hasJSActions:parameters.hasJSActions,fieldObjects:parameters.fieldObjects,mouseState:parameters.mouseState||{isDown:false}});if(element.isRenderable){const rendered=element.render();if(data.hidden){rendered.style.visibility="hidden";}
if(Array.isArray(rendered)){for(const renderedElement of rendered){renderedElement.style.zIndex=zIndex++;_classStaticPrivateMethodGet(AnnotationLayer,AnnotationLayer,_appendElement).call(AnnotationLayer,renderedElement,data.id,div,accessibilityManager);}}else{rendered.style.zIndex=zIndex++;if(element instanceof PopupAnnotationElement){div.prepend(rendered);}else{_classStaticPrivateMethodGet(AnnotationLayer,AnnotationLayer,_appendElement).call(AnnotationLayer,rendered,data.id,div,accessibilityManager);}}}}
_classStaticPrivateMethodGet(this,AnnotationLayer,_setAnnotationCanvasMap).call(this,div,parameters.annotationCanvasMap);}
static update(parameters){const{annotationCanvasMap,div,viewport}=parameters;_classStaticPrivateMethodGet(this,AnnotationLayer,_setDimensions).call(this,div,viewport);_classStaticPrivateMethodGet(this,AnnotationLayer,_setAnnotationCanvasMap).call(this,div,annotationCanvasMap);div.hidden=false;}}
exports.AnnotationLayer=AnnotationLayer;function _appendElement(element,id,div,accessibilityManager){const contentElement=element.firstChild||element;contentElement.id=`${_display_utils.AnnotationPrefix}${id}`;div.append(element);accessibilityManager===null||accessibilityManager===void 0?void 0:accessibilityManager.moveElementInDOM(div,element,contentElement,false);}
function _setDimensions(div,_ref2){let{width,height,rotation}=_ref2;const{style}=div;const flipOrientation=rotation%180!==0,widthStr=Math.floor(width)+"px",heightStr=Math.floor(height)+"px";style.width=flipOrientation?heightStr:widthStr;style.height=flipOrientation?widthStr:heightStr;div.setAttribute("data-main-rotation",rotation);}
function _setAnnotationCanvasMap(div,annotationCanvasMap){if(!annotationCanvasMap){return;}
for(const[id,canvas]of annotationCanvasMap){const element=div.querySelector(`[data-annotation-id="${id}"]`);if(!element){continue;}
const{firstChild}=element;if(!firstChild){element.append(canvas);}else if(firstChild.nodeName==="CANVAS"){firstChild.replaceWith(canvas);}else{firstChild.before(canvas);}}
annotationCanvasMap.clear();}}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.ColorConverters=void 0;function makeColorComp(n){return Math.floor(Math.max(0,Math.min(1,n))*255).toString(16).padStart(2,"0");}
class ColorConverters{static CMYK_G(_ref){let[c,y,m,k]=_ref;return["G",1-Math.min(1,0.3*c+0.59*m+0.11*y+k)];}
static G_CMYK(_ref2){let[g]=_ref2;return["CMYK",0,0,0,1-g];}
static G_RGB(_ref3){let[g]=_ref3;return["RGB",g,g,g];}
static G_HTML(_ref4){let[g]=_ref4;const G=makeColorComp(g);return`#${G}${G}${G}`;}
static RGB_G(_ref5){let[r,g,b]=_ref5;return["G",0.3*r+0.59*g+0.11*b];}
static RGB_HTML(_ref6){let[r,g,b]=_ref6;const R=makeColorComp(r);const G=makeColorComp(g);const B=makeColorComp(b);return`#${R}${G}${B}`;}
static T_HTML(){return"#00000000";}
static CMYK_RGB(_ref7){let[c,y,m,k]=_ref7;return["RGB",1-Math.min(1,c+k),1-Math.min(1,m+k),1-Math.min(1,y+k)];}
static CMYK_HTML(components){const rgb=this.CMYK_RGB(components).slice(1);return this.RGB_HTML(rgb);}
static RGB_CMYK(_ref8){let[r,g,b]=_ref8;const c=1-r;const m=1-g;const y=1-b;const k=Math.min(c,m,y);return["CMYK",c,m,y,k];}}
exports.ColorConverters=ColorConverters;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.XfaLayer=void 0;var _xfa_text=__w_pdfjs_require__(145);class XfaLayer{static setupStorage(html,id,element,storage,intent){const storedData=storage.getValue(id,{value:null});switch(element.name){case"textarea":if(storedData.value!==null){html.textContent=storedData.value;}
if(intent==="print"){break;}
html.addEventListener("input",event=>{storage.setValue(id,{value:event.target.value});});break;case"input":if(element.attributes.type==="radio"||element.attributes.type==="checkbox"){if(storedData.value===element.attributes.xfaOn){html.setAttribute("checked",true);}else if(storedData.value===element.attributes.xfaOff){html.removeAttribute("checked");}
if(intent==="print"){break;}
html.addEventListener("change",event=>{storage.setValue(id,{value:event.target.checked?event.target.getAttribute("xfaOn"):event.target.getAttribute("xfaOff")});});}else{if(storedData.value!==null){html.setAttribute("value",storedData.value);}
if(intent==="print"){break;}
html.addEventListener("input",event=>{storage.setValue(id,{value:event.target.value});});}
break;case"select":if(storedData.value!==null){for(const option of element.children){if(option.attributes.value===storedData.value){option.attributes.selected=true;}}}
html.addEventListener("input",event=>{const options=event.target.options;const value=options.selectedIndex===-1?"":options[options.selectedIndex].value;storage.setValue(id,{value});});break;}}
static setAttributes(_ref){let{html,element,storage=null,intent,linkService}=_ref;const{attributes}=element;const isHTMLAnchorElement=html instanceof HTMLAnchorElement;if(attributes.type==="radio"){attributes.name=`${attributes.name}-${intent}`;}
for(const[key,value]of Object.entries(attributes)){if(value===null||value===undefined){continue;}
switch(key){case"class":if(value.length){html.setAttribute(key,value.join(" "));}
break;case"dataId":break;case"id":html.setAttribute("data-element-id",value);break;case"style":Object.assign(html.style,value);break;case"textContent":html.textContent=value;break;default:if(!isHTMLAnchorElement||key!=="href"&&key!=="newWindow"){html.setAttribute(key,value);}}}
if(isHTMLAnchorElement){linkService.addLinkAttributes(html,attributes.href,attributes.newWindow);}
if(storage&&attributes.dataId){this.setupStorage(html,attributes.dataId,element,storage);}}
static render(parameters){const storage=parameters.annotationStorage;const linkService=parameters.linkService;const root=parameters.xfaHtml;const intent=parameters.intent||"display";const rootHtml=document.createElement(root.name);if(root.attributes){this.setAttributes({html:rootHtml,element:root,intent,linkService});}
const stack=[[root,-1,rootHtml]];const rootDiv=parameters.div;rootDiv.append(rootHtml);if(parameters.viewport){const transform=`matrix(${parameters.viewport.transform.join(",")})`;rootDiv.style.transform=transform;}
if(intent!=="richText"){rootDiv.setAttribute("class","xfaLayer xfaFont");}
const textDivs=[];while(stack.length>0){var _child$attributes;const[parent,i,html]=stack.at(-1);if(i+1===parent.children.length){stack.pop();continue;}
const child=parent.children[++stack.at(-1)[1]];if(child===null){continue;}
const{name}=child;if(name==="#text"){const node=document.createTextNode(child.value);textDivs.push(node);html.append(node);continue;}
let childHtml;if(child!==null&&child!==void 0&&(_child$attributes=child.attributes)!==null&&_child$attributes!==void 0&&_child$attributes.xmlns){childHtml=document.createElementNS(child.attributes.xmlns,name);}else{childHtml=document.createElement(name);}
html.append(childHtml);if(child.attributes){this.setAttributes({html:childHtml,element:child,storage,intent,linkService});}
if(child.children&&child.children.length>0){stack.push([child,-1,childHtml]);}else if(child.value){const node=document.createTextNode(child.value);if(_xfa_text.XfaText.shouldBuildText(name)){textDivs.push(node);}
childHtml.append(node);}}
for(const el of rootDiv.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea")){el.setAttribute("readOnly",true);}
return{textDivs};}
static update(parameters){const transform=`matrix(${parameters.viewport.transform.join(",")})`;parameters.div.style.transform=transform;parameters.div.hidden=false;}}
exports.XfaLayer=XfaLayer;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.TextLayerRenderTask=void 0;exports.renderTextLayer=renderTextLayer;var _util=__w_pdfjs_require__(1);var _display_utils=__w_pdfjs_require__(133);const MAX_TEXT_DIVS_TO_RENDER=100000;const DEFAULT_FONT_SIZE=30;const DEFAULT_FONT_ASCENT=0.8;const ascentCache=new Map();const AllWhitespaceRegexp=/^\s+$/g;function getAscent(fontFamily,ctx){const cachedAscent=ascentCache.get(fontFamily);if(cachedAscent){return cachedAscent;}
ctx.save();ctx.font=`${DEFAULT_FONT_SIZE}px ${fontFamily}`;const metrics=ctx.measureText("");let ascent=metrics.fontBoundingBoxAscent;let descent=Math.abs(metrics.fontBoundingBoxDescent);if(ascent){ctx.restore();const ratio=ascent/(ascent+descent);ascentCache.set(fontFamily,ratio);return ratio;}
ctx.strokeStyle="red";ctx.clearRect(0,0,DEFAULT_FONT_SIZE,DEFAULT_FONT_SIZE);ctx.strokeText("g",0,0);let pixels=ctx.getImageData(0,0,DEFAULT_FONT_SIZE,DEFAULT_FONT_SIZE).data;descent=0;for(let i=pixels.length-1-3;i>=0;i-=4){if(pixels[i]>0){descent=Math.ceil(i/4/DEFAULT_FONT_SIZE);break;}}
ctx.clearRect(0,0,DEFAULT_FONT_SIZE,DEFAULT_FONT_SIZE);ctx.strokeText("A",0,DEFAULT_FONT_SIZE);pixels=ctx.getImageData(0,0,DEFAULT_FONT_SIZE,DEFAULT_FONT_SIZE).data;ascent=0;for(let i=0,ii=pixels.length;i<ii;i+=4){if(pixels[i]>0){ascent=DEFAULT_FONT_SIZE-Math.floor(i/4/DEFAULT_FONT_SIZE);break;}}
ctx.restore();if(ascent){const ratio=ascent/(ascent+descent);ascentCache.set(fontFamily,ratio);return ratio;}
ascentCache.set(fontFamily,DEFAULT_FONT_ASCENT);return DEFAULT_FONT_ASCENT;}
function appendText(task,geom,styles,ctx){const textDiv=document.createElement("span");const textDivProperties=task._enhanceTextSelection?{angle:0,canvasWidth:0,hasText:geom.str!=="",hasEOL:geom.hasEOL,originalTransform:null,paddingBottom:0,paddingLeft:0,paddingRight:0,paddingTop:0,scale:1,fontSize:0}:{angle:0,canvasWidth:0,hasText:geom.str!=="",hasEOL:geom.hasEOL,fontSize:0};task._textDivs.push(textDiv);const tx=_util.Util.transform(task._viewport.transform,geom.transform);let angle=Math.atan2(tx[1],tx[0]);const style=styles[geom.fontName];if(style.vertical){angle+=Math.PI/2;}
const fontHeight=Math.hypot(tx[2],tx[3]);const fontAscent=fontHeight*getAscent(style.fontFamily,ctx);let left,top;if(angle===0){left=tx[4];top=tx[5]-fontAscent;}else{left=tx[4]+fontAscent*Math.sin(angle);top=tx[5]-fontAscent*Math.cos(angle);}
textDiv.style.left=`${left}px`;textDiv.style.top=`${top}px`;textDiv.style.fontSize=`${fontHeight}px`;textDiv.style.fontFamily=style.fontFamily;textDivProperties.fontSize=fontHeight;textDiv.setAttribute("role","presentation");textDiv.textContent=geom.str;textDiv.dir=geom.dir;if(task._fontInspectorEnabled){textDiv.dataset.fontName=geom.fontName;}
if(angle!==0){textDivProperties.angle=angle*(180/Math.PI);}
let shouldScaleText=false;if(geom.str.length>1||task._enhanceTextSelection&&AllWhitespaceRegexp.test(geom.str)){shouldScaleText=true;}else if(geom.str!==" "&&geom.transform[0]!==geom.transform[3]){const absScaleX=Math.abs(geom.transform[0]),absScaleY=Math.abs(geom.transform[3]);if(absScaleX!==absScaleY&&Math.max(absScaleX,absScaleY)/Math.min(absScaleX,absScaleY)>1.5){shouldScaleText=true;}}
if(shouldScaleText){if(style.vertical){textDivProperties.canvasWidth=geom.height*task._viewport.scale;}else{textDivProperties.canvasWidth=geom.width*task._viewport.scale;}}
task._textDivProperties.set(textDiv,textDivProperties);if(task._textContentStream){task._layoutText(textDiv);}
if(task._enhanceTextSelection&&textDivProperties.hasText){let angleCos=1,angleSin=0;if(angle!==0){angleCos=Math.cos(angle);angleSin=Math.sin(angle);}
const divWidth=(style.vertical?geom.height:geom.width)*task._viewport.scale;const divHeight=fontHeight;let m,b;if(angle!==0){m=[angleCos,angleSin,-angleSin,angleCos,left,top];b=_util.Util.getAxialAlignedBoundingBox([0,0,divWidth,divHeight],m);}else{b=[left,top,left+divWidth,top+divHeight];}
task._bounds.push({left:b[0],top:b[1],right:b[2],bottom:b[3],div:textDiv,size:[divWidth,divHeight],m});}}
function render(task){if(task._canceled){return;}
const textDivs=task._textDivs;const capability=task._capability;const textDivsLength=textDivs.length;if(textDivsLength>MAX_TEXT_DIVS_TO_RENDER){task._renderingDone=true;capability.resolve();return;}
if(!task._textContentStream){for(let i=0;i<textDivsLength;i++){task._layoutText(textDivs[i]);}}
task._renderingDone=true;capability.resolve();}
function findPositiveMin(ts,offset,count){let result=0;for(let i=0;i<count;i++){const t=ts[offset++];if(t>0){result=result?Math.min(t,result):t;}}
return result;}
function expand(task){const bounds=task._bounds;const viewport=task._viewport;const expanded=expandBounds(viewport.width,viewport.height,bounds);for(let i=0;i<expanded.length;i++){const div=bounds[i].div;const divProperties=task._textDivProperties.get(div);if(divProperties.angle===0){divProperties.paddingLeft=bounds[i].left-expanded[i].left;divProperties.paddingTop=bounds[i].top-expanded[i].top;divProperties.paddingRight=expanded[i].right-bounds[i].right;divProperties.paddingBottom=expanded[i].bottom-bounds[i].bottom;task._textDivProperties.set(div,divProperties);continue;}
const e=expanded[i],b=bounds[i];const m=b.m,c=m[0],s=m[1];const points=[[0,0],[0,b.size[1]],[b.size[0],0],b.size];const ts=new Float64Array(64);for(let j=0,jj=points.length;j<jj;j++){const t=_util.Util.applyTransform(points[j],m);ts[j+0]=c&&(e.left-t[0])/c;ts[j+4]=s&&(e.top-t[1])/s;ts[j+8]=c&&(e.right-t[0])/c;ts[j+12]=s&&(e.bottom-t[1])/s;ts[j+16]=s&&(e.left-t[0])/-s;ts[j+20]=c&&(e.top-t[1])/c;ts[j+24]=s&&(e.right-t[0])/-s;ts[j+28]=c&&(e.bottom-t[1])/c;ts[j+32]=c&&(e.left-t[0])/-c;ts[j+36]=s&&(e.top-t[1])/-s;ts[j+40]=c&&(e.right-t[0])/-c;ts[j+44]=s&&(e.bottom-t[1])/-s;ts[j+48]=s&&(e.left-t[0])/s;ts[j+52]=c&&(e.top-t[1])/-c;ts[j+56]=s&&(e.right-t[0])/s;ts[j+60]=c&&(e.bottom-t[1])/-c;}
const boxScale=1+Math.min(Math.abs(c),Math.abs(s));divProperties.paddingLeft=findPositiveMin(ts,32,16)/boxScale;divProperties.paddingTop=findPositiveMin(ts,48,16)/boxScale;divProperties.paddingRight=findPositiveMin(ts,0,16)/boxScale;divProperties.paddingBottom=findPositiveMin(ts,16,16)/boxScale;task._textDivProperties.set(div,divProperties);}}
function expandBounds(width,height,boxes){const bounds=boxes.map(function(box,i){return{x1:box.left,y1:box.top,x2:box.right,y2:box.bottom,index:i,x1New:undefined,x2New:undefined};});expandBoundsLTR(width,bounds);const expanded=new Array(boxes.length);for(const b of bounds){const i=b.index;expanded[i]={left:b.x1New,top:0,right:b.x2New,bottom:0};}
boxes.map(function(box,i){const e=expanded[i],b=bounds[i];b.x1=box.top;b.y1=width-e.right;b.x2=box.bottom;b.y2=width-e.left;b.index=i;b.x1New=undefined;b.x2New=undefined;});expandBoundsLTR(height,bounds);for(const b of bounds){const i=b.index;expanded[i].top=b.x1New;expanded[i].bottom=b.x2New;}
return expanded;}
function expandBoundsLTR(width,bounds){bounds.sort(function(a,b){return a.x1-b.x1||a.index-b.index;});const fakeBoundary={x1:-Infinity,y1:-Infinity,x2:0,y2:Infinity,index:-1,x1New:0,x2New:0};const horizon=[{start:-Infinity,end:Infinity,boundary:fakeBoundary}];for(const boundary of bounds){let i=0;while(i<horizon.length&&horizon[i].end<=boundary.y1){i++;}
let j=horizon.length-1;while(j>=0&&horizon[j].start>=boundary.y2){j--;}
let horizonPart,affectedBoundary;let q,k,maxXNew=-Infinity;for(q=i;q<=j;q++){horizonPart=horizon[q];affectedBoundary=horizonPart.boundary;let xNew;if(affectedBoundary.x2>boundary.x1){xNew=affectedBoundary.index>boundary.index?affectedBoundary.x1New:boundary.x1;}else if(affectedBoundary.x2New===undefined){xNew=(affectedBoundary.x2+boundary.x1)/2;}else{xNew=affectedBoundary.x2New;}
if(xNew>maxXNew){maxXNew=xNew;}}
boundary.x1New=maxXNew;for(q=i;q<=j;q++){horizonPart=horizon[q];affectedBoundary=horizonPart.boundary;if(affectedBoundary.x2New===undefined){if(affectedBoundary.x2>boundary.x1){if(affectedBoundary.index>boundary.index){affectedBoundary.x2New=affectedBoundary.x2;}}else{affectedBoundary.x2New=maxXNew;}}else if(affectedBoundary.x2New>maxXNew){affectedBoundary.x2New=Math.max(maxXNew,affectedBoundary.x2);}}
const changedHorizon=[];let lastBoundary=null;for(q=i;q<=j;q++){horizonPart=horizon[q];affectedBoundary=horizonPart.boundary;const useBoundary=affectedBoundary.x2>boundary.x2?affectedBoundary:boundary;if(lastBoundary===useBoundary){changedHorizon.at(-1).end=horizonPart.end;}else{changedHorizon.push({start:horizonPart.start,end:horizonPart.end,boundary:useBoundary});lastBoundary=useBoundary;}}
if(horizon[i].start<boundary.y1){changedHorizon[0].start=boundary.y1;changedHorizon.unshift({start:horizon[i].start,end:boundary.y1,boundary:horizon[i].boundary});}
if(boundary.y2<horizon[j].end){changedHorizon.at(-1).end=boundary.y2;changedHorizon.push({start:boundary.y2,end:horizon[j].end,boundary:horizon[j].boundary});}
for(q=i;q<=j;q++){horizonPart=horizon[q];affectedBoundary=horizonPart.boundary;if(affectedBoundary.x2New!==undefined){continue;}
let used=false;for(k=i-1;!used&&k>=0&&horizon[k].start>=affectedBoundary.y1;k--){used=horizon[k].boundary===affectedBoundary;}
for(k=j+1;!used&&k<horizon.length&&horizon[k].end<=affectedBoundary.y2;k++){used=horizon[k].boundary===affectedBoundary;}
for(k=0;!used&&k<changedHorizon.length;k++){used=changedHorizon[k].boundary===affectedBoundary;}
if(!used){affectedBoundary.x2New=maxXNew;}}
Array.prototype.splice.apply(horizon,[i,j-i+1,...changedHorizon]);}
for(const horizonPart of horizon){const affectedBoundary=horizonPart.boundary;if(affectedBoundary.x2New===undefined){affectedBoundary.x2New=Math.max(width,affectedBoundary.x2);}}}
class TextLayerRenderTask{constructor(_ref){var _globalThis$FontInspe;let{textContent,textContentStream,container,viewport,textDivs,textContentItemsStr,enhanceTextSelection}=_ref;if(enhanceTextSelection){(0,_display_utils.deprecated)("The `enhanceTextSelection` functionality will be removed in the future.");}
this._textContent=textContent;this._textContentStream=textContentStream;this._container=container;this._document=container.ownerDocument;this._viewport=viewport;this._textDivs=textDivs||[];this._textContentItemsStr=textContentItemsStr||[];this._enhanceTextSelection=!!enhanceTextSelection;this._fontInspectorEnabled=!!((_globalThis$FontInspe=globalThis.FontInspector)!==null&&_globalThis$FontInspe!==void 0&&_globalThis$FontInspe.enabled);this._reader=null;this._layoutTextLastFontSize=null;this._layoutTextLastFontFamily=null;this._layoutTextCtx=null;this._textDivProperties=new WeakMap();this._renderingDone=false;this._canceled=false;this._capability=(0,_util.createPromiseCapability)();this._renderTimer=null;this._bounds=[];this._devicePixelRatio=globalThis.devicePixelRatio||1;this._capability.promise.finally(()=>{if(!this._enhanceTextSelection){this._textDivProperties=null;}
if(this._layoutTextCtx){this._layoutTextCtx.canvas.width=0;this._layoutTextCtx.canvas.height=0;this._layoutTextCtx=null;}}).catch(()=>{});}
get promise(){return this._capability.promise;}
cancel(){this._canceled=true;if(this._reader){this._reader.cancel(new _util.AbortException("TextLayer task cancelled.")).catch(()=>{});this._reader=null;}
if(this._renderTimer!==null){clearTimeout(this._renderTimer);this._renderTimer=null;}
this._capability.reject(new Error("TextLayer task cancelled."));}
_processItems(items,styleCache){for(let i=0,len=items.length;i<len;i++){if(items[i].str===undefined){if(items[i].type==="beginMarkedContentProps"||items[i].type==="beginMarkedContent"){const parent=this._container;this._container=document.createElement("span");this._container.classList.add("markedContent");if(items[i].id!==null){this._container.setAttribute("id",`${items[i].id}`);}
parent.append(this._container);}else if(items[i].type==="endMarkedContent"){this._container=this._container.parentNode;}
continue;}
this._textContentItemsStr.push(items[i].str);appendText(this,items[i],styleCache,this._layoutTextCtx);}}
_layoutText(textDiv){const textDivProperties=this._textDivProperties.get(textDiv);let transform="";if(textDivProperties.canvasWidth!==0&&textDivProperties.hasText){const{fontFamily}=textDiv.style;const{fontSize}=textDivProperties;if(fontSize!==this._layoutTextLastFontSize||fontFamily!==this._layoutTextLastFontFamily){this._layoutTextCtx.font=`${fontSize * this._devicePixelRatio}px ${fontFamily}`;this._layoutTextLastFontSize=fontSize;this._layoutTextLastFontFamily=fontFamily;}
const{width}=this._layoutTextCtx.measureText(textDiv.textContent);if(width>0){const scale=this._devicePixelRatio*textDivProperties.canvasWidth/width;if(this._enhanceTextSelection){textDivProperties.scale=scale;}
transform=`scaleX(${scale})`;}}
if(textDivProperties.angle!==0){transform=`rotate(${textDivProperties.angle}deg) ${transform}`;}
if(transform.length>0){if(this._enhanceTextSelection){textDivProperties.originalTransform=transform;}
textDiv.style.transform=transform;}
if(textDivProperties.hasText){this._container.append(textDiv);}
if(textDivProperties.hasEOL){const br=document.createElement("br");br.setAttribute("role","presentation");this._container.append(br);}}
_render(){let timeout=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;const capability=(0,_util.createPromiseCapability)();let styleCache=Object.create(null);const canvas=this._document.createElement("canvas");canvas.height=canvas.width=DEFAULT_FONT_SIZE;this._layoutTextCtx=canvas.getContext("2d",{alpha:false});if(this._textContent){const textItems=this._textContent.items;const textStyles=this._textContent.styles;this._processItems(textItems,textStyles);capability.resolve();}else if(this._textContentStream){const pump=()=>{this._reader.read().then(_ref2=>{let{value,done}=_ref2;if(done){capability.resolve();return;}
Object.assign(styleCache,value.styles);this._processItems(value.items,styleCache);pump();},capability.reject);};this._reader=this._textContentStream.getReader();pump();}else{throw new Error('Neither "textContent" nor "textContentStream" parameters specified.');}
capability.promise.then(()=>{styleCache=null;if(!timeout){render(this);}else{this._renderTimer=setTimeout(()=>{render(this);this._renderTimer=null;},timeout);}},this._capability.reject);}
expandTextDivs(){let expandDivs=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(!this._enhanceTextSelection||!this._renderingDone){return;}
if(this._bounds!==null){expand(this);this._bounds=null;}
const transformBuf=[],paddingBuf=[];for(let i=0,ii=this._textDivs.length;i<ii;i++){const div=this._textDivs[i];const divProps=this._textDivProperties.get(div);if(!divProps.hasText){continue;}
if(expandDivs){transformBuf.length=0;paddingBuf.length=0;if(divProps.originalTransform){transformBuf.push(divProps.originalTransform);}
if(divProps.paddingTop>0){paddingBuf.push(`${divProps.paddingTop}px`);transformBuf.push(`translateY(${-divProps.paddingTop}px)`);}else{paddingBuf.push(0);}
if(divProps.paddingRight>0){paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);}else{paddingBuf.push(0);}
if(divProps.paddingBottom>0){paddingBuf.push(`${divProps.paddingBottom}px`);}else{paddingBuf.push(0);}
if(divProps.paddingLeft>0){paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`);}else{paddingBuf.push(0);}
div.style.padding=paddingBuf.join(" ");if(transformBuf.length){div.style.transform=transformBuf.join(" ");}}else{div.style.padding=null;div.style.transform=divProps.originalTransform;}}}}
exports.TextLayerRenderTask=TextLayerRenderTask;function renderTextLayer(renderParameters){const task=new TextLayerRenderTask({textContent:renderParameters.textContent,textContentStream:renderParameters.textContentStream,container:renderParameters.container,viewport:renderParameters.viewport,textDivs:renderParameters.textDivs,textContentItemsStr:renderParameters.textContentItemsStr,enhanceTextSelection:renderParameters.enhanceTextSelection});task._render(renderParameters.timeout);return task;}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.SVGGraphics=void 0;var _display_utils=__w_pdfjs_require__(133);var _util=__w_pdfjs_require__(1);var _is_node=__w_pdfjs_require__(3);let SVGGraphics=class{constructor(){(0,_util.unreachable)("Not implemented: SVGGraphics");}};exports.SVGGraphics=SVGGraphics;{const SVG_DEFAULTS={fontStyle:"normal",fontWeight:"normal",fillColor:"#000000"};const XML_NS="http://www.w3.org/XML/1998/namespace";const XLINK_NS="http://www.w3.org/1999/xlink";const LINE_CAP_STYLES=["butt","round","square"];const LINE_JOIN_STYLES=["miter","round","bevel"];const createObjectURL=function(data){let contentType=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";let forceDataSchema=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(URL.createObjectURL&&typeof Blob!=="undefined"&&!forceDataSchema){return URL.createObjectURL(new Blob([data],{type:contentType}));}
const digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";let buffer=`data:${contentType};base64,`;for(let i=0,ii=data.length;i<ii;i+=3){const b1=data[i]&0xff;const b2=data[i+1]&0xff;const b3=data[i+2]&0xff;const d1=b1>>2,d2=(b1&3)<<4|b2>>4;const d3=i+1<ii?(b2&0xf)<<2|b3>>6:64;const d4=i+2<ii?b3&0x3f:64;buffer+=digits[d1]+digits[d2]+digits[d3]+digits[d4];}
return buffer;};const convertImgDataToPng=function(){const PNG_HEADER=new Uint8Array([0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a]);const CHUNK_WRAPPER_SIZE=12;const crcTable=new Int32Array(256);for(let i=0;i<256;i++){let c=i;for(let h=0;h<8;h++){if(c&1){c=0xedb88320^c>>1&0x7fffffff;}else{c=c>>1&0x7fffffff;}}
crcTable[i]=c;}
function crc32(data,start,end){let crc=-1;for(let i=start;i<end;i++){const a=(crc^data[i])&0xff;const b=crcTable[a];crc=crc>>>8^b;}
return crc^-1;}
function writePngChunk(type,body,data,offset){let p=offset;const len=body.length;data[p]=len>>24&0xff;data[p+1]=len>>16&0xff;data[p+2]=len>>8&0xff;data[p+3]=len&0xff;p+=4;data[p]=type.charCodeAt(0)&0xff;data[p+1]=type.charCodeAt(1)&0xff;data[p+2]=type.charCodeAt(2)&0xff;data[p+3]=type.charCodeAt(3)&0xff;p+=4;data.set(body,p);p+=body.length;const crc=crc32(data,offset+4,p);data[p]=crc>>24&0xff;data[p+1]=crc>>16&0xff;data[p+2]=crc>>8&0xff;data[p+3]=crc&0xff;}
function adler32(data,start,end){let a=1;let b=0;for(let i=start;i<end;++i){a=(a+(data[i]&0xff))%65521;b=(b+a)%65521;}
return b<<16|a;}
function deflateSync(literals){if(!_is_node.isNodeJS){return deflateSyncUncompressed(literals);}
try{let input;if(parseInt(process.versions.node)>=8){input=literals;}else{input=Buffer.from(literals);}
const output=require("zlib").deflateSync(input,{level:9});return output instanceof Uint8Array?output:new Uint8Array(output);}catch(e){(0,_util.warn)("Not compressing PNG because zlib.deflateSync is unavailable: "+e);}
return deflateSyncUncompressed(literals);}
function deflateSyncUncompressed(literals){let len=literals.length;const maxBlockLength=0xffff;const deflateBlocks=Math.ceil(len/maxBlockLength);const idat=new Uint8Array(2+len+deflateBlocks*5+4);let pi=0;idat[pi++]=0x78;idat[pi++]=0x9c;let pos=0;while(len>maxBlockLength){idat[pi++]=0x00;idat[pi++]=0xff;idat[pi++]=0xff;idat[pi++]=0x00;idat[pi++]=0x00;idat.set(literals.subarray(pos,pos+maxBlockLength),pi);pi+=maxBlockLength;pos+=maxBlockLength;len-=maxBlockLength;}
idat[pi++]=0x01;idat[pi++]=len&0xff;idat[pi++]=len>>8&0xff;idat[pi++]=~len&0xffff&0xff;idat[pi++]=(~len&0xffff)>>8&0xff;idat.set(literals.subarray(pos),pi);pi+=literals.length-pos;const adler=adler32(literals,0,literals.length);idat[pi++]=adler>>24&0xff;idat[pi++]=adler>>16&0xff;idat[pi++]=adler>>8&0xff;idat[pi++]=adler&0xff;return idat;}
function encode(imgData,kind,forceDataSchema,isMask){const width=imgData.width;const height=imgData.height;let bitDepth,colorType,lineSize;const bytes=imgData.data;switch(kind){case _util.ImageKind.GRAYSCALE_1BPP:colorType=0;bitDepth=1;lineSize=width+7>>3;break;case _util.ImageKind.RGB_24BPP:colorType=2;bitDepth=8;lineSize=width*3;break;case _util.ImageKind.RGBA_32BPP:colorType=6;bitDepth=8;lineSize=width*4;break;default:throw new Error("invalid format");}
const literals=new Uint8Array((1+lineSize)*height);let offsetLiterals=0,offsetBytes=0;for(let y=0;y<height;++y){literals[offsetLiterals++]=0;literals.set(bytes.subarray(offsetBytes,offsetBytes+lineSize),offsetLiterals);offsetBytes+=lineSize;offsetLiterals+=lineSize;}
if(kind===_util.ImageKind.GRAYSCALE_1BPP&&isMask){offsetLiterals=0;for(let y=0;y<height;y++){offsetLiterals++;for(let i=0;i<lineSize;i++){literals[offsetLiterals++]^=0xff;}}}
const ihdr=new Uint8Array([width>>24&0xff,width>>16&0xff,width>>8&0xff,width&0xff,height>>24&0xff,height>>16&0xff,height>>8&0xff,height&0xff,bitDepth,colorType,0x00,0x00,0x00]);const idat=deflateSync(literals);const pngLength=PNG_HEADER.length+CHUNK_WRAPPER_SIZE*3+ihdr.length+idat.length;const data=new Uint8Array(pngLength);let offset=0;data.set(PNG_HEADER,offset);offset+=PNG_HEADER.length;writePngChunk("IHDR",ihdr,data,offset);offset+=CHUNK_WRAPPER_SIZE+ihdr.length;writePngChunk("IDATA",idat,data,offset);offset+=CHUNK_WRAPPER_SIZE+idat.length;writePngChunk("IEND",new Uint8Array(0),data,offset);return createObjectURL(data,"image/png",forceDataSchema);}
return function convertImgDataToPng(imgData,forceDataSchema,isMask){const kind=imgData.kind===undefined?_util.ImageKind.GRAYSCALE_1BPP:imgData.kind;return encode(imgData,kind,forceDataSchema,isMask);};}();class SVGExtraState{constructor(){this.fontSizeScale=1;this.fontWeight=SVG_DEFAULTS.fontWeight;this.fontSize=0;this.textMatrix=_util.IDENTITY_MATRIX;this.fontMatrix=_util.FONT_IDENTITY_MATRIX;this.leading=0;this.textRenderingMode=_util.TextRenderingMode.FILL;this.textMatrixScale=1;this.x=0;this.y=0;this.lineX=0;this.lineY=0;this.charSpacing=0;this.wordSpacing=0;this.textHScale=1;this.textRise=0;this.fillColor=SVG_DEFAULTS.fillColor;this.strokeColor="#000000";this.fillAlpha=1;this.strokeAlpha=1;this.lineWidth=1;this.lineJoin="";this.lineCap="";this.miterLimit=0;this.dashArray=[];this.dashPhase=0;this.dependencies=[];this.activeClipUrl=null;this.clipGroup=null;this.maskId="";}
clone(){return Object.create(this);}
setCurrentPoint(x,y){this.x=x;this.y=y;}}
function opListToTree(opList){let opTree=[];const tmp=[];for(const opListElement of opList){if(opListElement.fn==="save"){opTree.push({fnId:92,fn:"group",items:[]});tmp.push(opTree);opTree=opTree.at(-1).items;continue;}
if(opListElement.fn==="restore"){opTree=tmp.pop();}else{opTree.push(opListElement);}}
return opTree;}
function pf(value){if(Number.isInteger(value)){return value.toString();}
const s=value.toFixed(10);let i=s.length-1;if(s[i]!=="0"){return s;}
do{i--;}while(s[i]==="0");return s.substring(0,s[i]==="."?i:i+1);}
function pm(m){if(m[4]===0&&m[5]===0){if(m[1]===0&&m[2]===0){if(m[0]===1&&m[3]===1){return"";}
return`scale(${pf(m[0])} ${pf(m[3])})`;}
if(m[0]===m[3]&&m[1]===-m[2]){const a=Math.acos(m[0])*180/Math.PI;return`rotate(${pf(a)})`;}}else{if(m[0]===1&&m[1]===0&&m[2]===0&&m[3]===1){return`translate(${pf(m[4])} ${pf(m[5])})`;}}
return`matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} `+`${pf(m[5])})`;}
let clipCount=0;let maskCount=0;let shadingCount=0;exports.SVGGraphics=SVGGraphics=class{constructor(commonObjs,objs){let forceDataSchema=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;(0,_display_utils.deprecated)("The SVG back-end is no longer maintained and *may* be removed in the future.");this.svgFactory=new _display_utils.DOMSVGFactory();this.current=new SVGExtraState();this.transformMatrix=_util.IDENTITY_MATRIX;this.transformStack=[];this.extraStack=[];this.commonObjs=commonObjs;this.objs=objs;this.pendingClip=null;this.pendingEOFill=false;this.embedFonts=false;this.embeddedFonts=Object.create(null);this.cssStyle=null;this.forceDataSchema=!!forceDataSchema;this._operatorIdMapping=[];for(const op in _util.OPS){this._operatorIdMapping[_util.OPS[op]]=op;}}
save(){this.transformStack.push(this.transformMatrix);const old=this.current;this.extraStack.push(old);this.current=old.clone();}
restore(){this.transformMatrix=this.transformStack.pop();this.current=this.extraStack.pop();this.pendingClip=null;this.tgrp=null;}
group(items){this.save();this.executeOpTree(items);this.restore();}
loadDependencies(operatorList){const fnArray=operatorList.fnArray;const argsArray=operatorList.argsArray;for(let i=0,ii=fnArray.length;i<ii;i++){if(fnArray[i]!==_util.OPS.dependency){continue;}
for(const obj of argsArray[i]){const objsPool=obj.startsWith("g_")?this.commonObjs:this.objs;const promise=new Promise(resolve=>{objsPool.get(obj,resolve);});this.current.dependencies.push(promise);}}
return Promise.all(this.current.dependencies);}
transform(a,b,c,d,e,f){const transformMatrix=[a,b,c,d,e,f];this.transformMatrix=_util.Util.transform(this.transformMatrix,transformMatrix);this.tgrp=null;}
getSVG(operatorList,viewport){this.viewport=viewport;const svgElement=this._initialize(viewport);return this.loadDependencies(operatorList).then(()=>{this.transformMatrix=_util.IDENTITY_MATRIX;this.executeOpTree(this.convertOpList(operatorList));return svgElement;});}
convertOpList(operatorList){const operatorIdMapping=this._operatorIdMapping;const argsArray=operatorList.argsArray;const fnArray=operatorList.fnArray;const opList=[];for(let i=0,ii=fnArray.length;i<ii;i++){const fnId=fnArray[i];opList.push({fnId,fn:operatorIdMapping[fnId],args:argsArray[i]});}
return opListToTree(opList);}
executeOpTree(opTree){for(const opTreeElement of opTree){const fn=opTreeElement.fn;const fnId=opTreeElement.fnId;const args=opTreeElement.args;switch(fnId|0){case _util.OPS.beginText:this.beginText();break;case _util.OPS.dependency:break;case _util.OPS.setLeading:this.setLeading(args);break;case _util.OPS.setLeadingMoveText:this.setLeadingMoveText(args[0],args[1]);break;case _util.OPS.setFont:this.setFont(args);break;case _util.OPS.showText:this.showText(args[0]);break;case _util.OPS.showSpacedText:this.showText(args[0]);break;case _util.OPS.endText:this.endText();break;case _util.OPS.moveText:this.moveText(args[0],args[1]);break;case _util.OPS.setCharSpacing:this.setCharSpacing(args[0]);break;case _util.OPS.setWordSpacing:this.setWordSpacing(args[0]);break;case _util.OPS.setHScale:this.setHScale(args[0]);break;case _util.OPS.setTextMatrix:this.setTextMatrix(args[0],args[1],args[2],args[3],args[4],args[5]);break;case _util.OPS.setTextRise:this.setTextRise(args[0]);break;case _util.OPS.setTextRenderingMode:this.setTextRenderingMode(args[0]);break;case _util.OPS.setLineWidth:this.setLineWidth(args[0]);break;case _util.OPS.setLineJoin:this.setLineJoin(args[0]);break;case _util.OPS.setLineCap:this.setLineCap(args[0]);break;case _util.OPS.setMiterLimit:this.setMiterLimit(args[0]);break;case _util.OPS.setFillRGBColor:this.setFillRGBColor(args[0],args[1],args[2]);break;case _util.OPS.setStrokeRGBColor:this.setStrokeRGBColor(args[0],args[1],args[2]);break;case _util.OPS.setStrokeColorN:this.setStrokeColorN(args);break;case _util.OPS.setFillColorN:this.setFillColorN(args);break;case _util.OPS.shadingFill:this.shadingFill(args[0]);break;case _util.OPS.setDash:this.setDash(args[0],args[1]);break;case _util.OPS.setRenderingIntent:this.setRenderingIntent(args[0]);break;case _util.OPS.setFlatness:this.setFlatness(args[0]);break;case _util.OPS.setGState:this.setGState(args[0]);break;case _util.OPS.fill:this.fill();break;case _util.OPS.eoFill:this.eoFill();break;case _util.OPS.stroke:this.stroke();break;case _util.OPS.fillStroke:this.fillStroke();break;case _util.OPS.eoFillStroke:this.eoFillStroke();break;case _util.OPS.clip:this.clip("nonzero");break;case _util.OPS.eoClip:this.clip("evenodd");break;case _util.OPS.paintSolidColorImageMask:this.paintSolidColorImageMask();break;case _util.OPS.paintImageXObject:this.paintImageXObject(args[0]);break;case _util.OPS.paintInlineImageXObject:this.paintInlineImageXObject(args[0]);break;case _util.OPS.paintImageMaskXObject:this.paintImageMaskXObject(args[0]);break;case _util.OPS.paintFormXObjectBegin:this.paintFormXObjectBegin(args[0],args[1]);break;case _util.OPS.paintFormXObjectEnd:this.paintFormXObjectEnd();break;case _util.OPS.closePath:this.closePath();break;case _util.OPS.closeStroke:this.closeStroke();break;case _util.OPS.closeFillStroke:this.closeFillStroke();break;case _util.OPS.closeEOFillStroke:this.closeEOFillStroke();break;case _util.OPS.nextLine:this.nextLine();break;case _util.OPS.transform:this.transform(args[0],args[1],args[2],args[3],args[4],args[5]);break;case _util.OPS.constructPath:this.constructPath(args[0],args[1]);break;case _util.OPS.endPath:this.endPath();break;case 92:this.group(opTreeElement.items);break;default:(0,_util.warn)(`Unimplemented operator ${fn}`);break;}}}
setWordSpacing(wordSpacing){this.current.wordSpacing=wordSpacing;}
setCharSpacing(charSpacing){this.current.charSpacing=charSpacing;}
nextLine(){this.moveText(0,this.current.leading);}
setTextMatrix(a,b,c,d,e,f){const current=this.current;current.textMatrix=current.lineMatrix=[a,b,c,d,e,f];current.textMatrixScale=Math.hypot(a,b);current.x=current.lineX=0;current.y=current.lineY=0;current.xcoords=[];current.ycoords=[];current.tspan=this.svgFactory.createElement("svg:tspan");current.tspan.setAttributeNS(null,"font-family",current.fontFamily);current.tspan.setAttributeNS(null,"font-size",`${pf(current.fontSize)}px`);current.tspan.setAttributeNS(null,"y",pf(-current.y));current.txtElement=this.svgFactory.createElement("svg:text");current.txtElement.append(current.tspan);}
beginText(){const current=this.current;current.x=current.lineX=0;current.y=current.lineY=0;current.textMatrix=_util.IDENTITY_MATRIX;current.lineMatrix=_util.IDENTITY_MATRIX;current.textMatrixScale=1;current.tspan=this.svgFactory.createElement("svg:tspan");current.txtElement=this.svgFactory.createElement("svg:text");current.txtgrp=this.svgFactory.createElement("svg:g");current.xcoords=[];current.ycoords=[];}
moveText(x,y){const current=this.current;current.x=current.lineX+=x;current.y=current.lineY+=y;current.xcoords=[];current.ycoords=[];current.tspan=this.svgFactory.createElement("svg:tspan");current.tspan.setAttributeNS(null,"font-family",current.fontFamily);current.tspan.setAttributeNS(null,"font-size",`${pf(current.fontSize)}px`);current.tspan.setAttributeNS(null,"y",pf(-current.y));}
showText(glyphs){const current=this.current;const font=current.font;const fontSize=current.fontSize;if(fontSize===0){return;}
const fontSizeScale=current.fontSizeScale;const charSpacing=current.charSpacing;const wordSpacing=current.wordSpacing;const fontDirection=current.fontDirection;const textHScale=current.textHScale*fontDirection;const vertical=font.vertical;const spacingDir=vertical?1:-1;const defaultVMetrics=font.defaultVMetrics;const widthAdvanceScale=fontSize*current.fontMatrix[0];let x=0;for(const glyph of glyphs){if(glyph===null){x+=fontDirection*wordSpacing;continue;}else if(typeof glyph==="number"){x+=spacingDir*glyph*fontSize/1000;continue;}
const spacing=(glyph.isSpace?wordSpacing:0)+charSpacing;const character=glyph.fontChar;let scaledX,scaledY;let width=glyph.width;if(vertical){let vx;const vmetric=glyph.vmetric||defaultVMetrics;vx=glyph.vmetric?vmetric[1]:width*0.5;vx=-vx*widthAdvanceScale;const vy=vmetric[2]*widthAdvanceScale;width=vmetric?-vmetric[0]:width;scaledX=vx/fontSizeScale;scaledY=(x+vy)/fontSizeScale;}else{scaledX=x/fontSizeScale;scaledY=0;}
if(glyph.isInFont||font.missingFile){current.xcoords.push(current.x+scaledX);if(vertical){current.ycoords.push(-current.y+scaledY);}
current.tspan.textContent+=character;}else{}
let charWidth;if(vertical){charWidth=width*widthAdvanceScale-spacing*fontDirection;}else{charWidth=width*widthAdvanceScale+spacing*fontDirection;}
x+=charWidth;}
current.tspan.setAttributeNS(null,"x",current.xcoords.map(pf).join(" "));if(vertical){current.tspan.setAttributeNS(null,"y",current.ycoords.map(pf).join(" "));}else{current.tspan.setAttributeNS(null,"y",pf(-current.y));}
if(vertical){current.y-=x;}else{current.x+=x*textHScale;}
current.tspan.setAttributeNS(null,"font-family",current.fontFamily);current.tspan.setAttributeNS(null,"font-size",`${pf(current.fontSize)}px`);if(current.fontStyle!==SVG_DEFAULTS.fontStyle){current.tspan.setAttributeNS(null,"font-style",current.fontStyle);}
if(current.fontWeight!==SVG_DEFAULTS.fontWeight){current.tspan.setAttributeNS(null,"font-weight",current.fontWeight);}
const fillStrokeMode=current.textRenderingMode&_util.TextRenderingMode.FILL_STROKE_MASK;if(fillStrokeMode===_util.TextRenderingMode.FILL||fillStrokeMode===_util.TextRenderingMode.FILL_STROKE){if(current.fillColor!==SVG_DEFAULTS.fillColor){current.tspan.setAttributeNS(null,"fill",current.fillColor);}
if(current.fillAlpha<1){current.tspan.setAttributeNS(null,"fill-opacity",current.fillAlpha);}}else if(current.textRenderingMode===_util.TextRenderingMode.ADD_TO_PATH){current.tspan.setAttributeNS(null,"fill","transparent");}else{current.tspan.setAttributeNS(null,"fill","none");}
if(fillStrokeMode===_util.TextRenderingMode.STROKE||fillStrokeMode===_util.TextRenderingMode.FILL_STROKE){const lineWidthScale=1/(current.textMatrixScale||1);this._setStrokeAttributes(current.tspan,lineWidthScale);}
let textMatrix=current.textMatrix;if(current.textRise!==0){textMatrix=textMatrix.slice();textMatrix[5]+=current.textRise;}
current.txtElement.setAttributeNS(null,"transform",`${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);current.txtElement.setAttributeNS(XML_NS,"xml:space","preserve");current.txtElement.append(current.tspan);current.txtgrp.append(current.txtElement);this._ensureTransformGroup().append(current.txtElement);}
setLeadingMoveText(x,y){this.setLeading(-y);this.moveText(x,y);}
addFontStyle(fontObj){if(!fontObj.data){throw new Error("addFontStyle: No font data available, "+'ensure that the "fontExtraProperties" API parameter is set.');}
if(!this.cssStyle){this.cssStyle=this.svgFactory.createElement("svg:style");this.cssStyle.setAttributeNS(null,"type","text/css");this.defs.append(this.cssStyle);}
const url=createObjectURL(fontObj.data,fontObj.mimetype,this.forceDataSchema);this.cssStyle.textContent+=`@font-face { font-family: "${fontObj.loadedName}";`+` src: url(${url}); }\n`;}
setFont(details){const current=this.current;const fontObj=this.commonObjs.get(details[0]);let size=details[1];current.font=fontObj;if(this.embedFonts&&!fontObj.missingFile&&!this.embeddedFonts[fontObj.loadedName]){this.addFontStyle(fontObj);this.embeddedFonts[fontObj.loadedName]=fontObj;}
current.fontMatrix=fontObj.fontMatrix||_util.FONT_IDENTITY_MATRIX;let bold="normal";if(fontObj.black){bold="900";}else if(fontObj.bold){bold="bold";}
const italic=fontObj.italic?"italic":"normal";if(size<0){size=-size;current.fontDirection=-1;}else{current.fontDirection=1;}
current.fontSize=size;current.fontFamily=fontObj.loadedName;current.fontWeight=bold;current.fontStyle=italic;current.tspan=this.svgFactory.createElement("svg:tspan");current.tspan.setAttributeNS(null,"y",pf(-current.y));current.xcoords=[];current.ycoords=[];}
endText(){var _current$txtElement;const current=this.current;if(current.textRenderingMode&_util.TextRenderingMode.ADD_TO_PATH_FLAG&&(_current$txtElement=current.txtElement)!==null&&_current$txtElement!==void 0&&_current$txtElement.hasChildNodes()){current.element=current.txtElement;this.clip("nonzero");this.endPath();}}
setLineWidth(width){if(width>0){this.current.lineWidth=width;}}
setLineCap(style){this.current.lineCap=LINE_CAP_STYLES[style];}
setLineJoin(style){this.current.lineJoin=LINE_JOIN_STYLES[style];}
setMiterLimit(limit){this.current.miterLimit=limit;}
setStrokeAlpha(strokeAlpha){this.current.strokeAlpha=strokeAlpha;}
setStrokeRGBColor(r,g,b){this.current.strokeColor=_util.Util.makeHexColor(r,g,b);}
setFillAlpha(fillAlpha){this.current.fillAlpha=fillAlpha;}
setFillRGBColor(r,g,b){this.current.fillColor=_util.Util.makeHexColor(r,g,b);this.current.tspan=this.svgFactory.createElement("svg:tspan");this.current.xcoords=[];this.current.ycoords=[];}
setStrokeColorN(args){this.current.strokeColor=this._makeColorN_Pattern(args);}
setFillColorN(args){this.current.fillColor=this._makeColorN_Pattern(args);}
shadingFill(args){const width=this.viewport.width;const height=this.viewport.height;const inv=_util.Util.inverseTransform(this.transformMatrix);const bl=_util.Util.applyTransform([0,0],inv);const br=_util.Util.applyTransform([0,height],inv);const ul=_util.Util.applyTransform([width,0],inv);const ur=_util.Util.applyTransform([width,height],inv);const x0=Math.min(bl[0],br[0],ul[0],ur[0]);const y0=Math.min(bl[1],br[1],ul[1],ur[1]);const x1=Math.max(bl[0],br[0],ul[0],ur[0]);const y1=Math.max(bl[1],br[1],ul[1],ur[1]);const rect=this.svgFactory.createElement("svg:rect");rect.setAttributeNS(null,"x",x0);rect.setAttributeNS(null,"y",y0);rect.setAttributeNS(null,"width",x1-x0);rect.setAttributeNS(null,"height",y1-y0);rect.setAttributeNS(null,"fill",this._makeShadingPattern(args));if(this.current.fillAlpha<1){rect.setAttributeNS(null,"fill-opacity",this.current.fillAlpha);}
this._ensureTransformGroup().append(rect);}
_makeColorN_Pattern(args){if(args[0]==="TilingPattern"){return this._makeTilingPattern(args);}
return this._makeShadingPattern(args);}
_makeTilingPattern(args){const color=args[1];const operatorList=args[2];const matrix=args[3]||_util.IDENTITY_MATRIX;const[x0,y0,x1,y1]=args[4];const xstep=args[5];const ystep=args[6];const paintType=args[7];const tilingId=`shading${shadingCount++}`;const[tx0,ty0,tx1,ty1]=_util.Util.normalizeRect([..._util.Util.applyTransform([x0,y0],matrix),..._util.Util.applyTransform([x1,y1],matrix)]);const[xscale,yscale]=_util.Util.singularValueDecompose2dScale(matrix);const txstep=xstep*xscale;const tystep=ystep*yscale;const tiling=this.svgFactory.createElement("svg:pattern");tiling.setAttributeNS(null,"id",tilingId);tiling.setAttributeNS(null,"patternUnits","userSpaceOnUse");tiling.setAttributeNS(null,"width",txstep);tiling.setAttributeNS(null,"height",tystep);tiling.setAttributeNS(null,"x",`${tx0}`);tiling.setAttributeNS(null,"y",`${ty0}`);const svg=this.svg;const transformMatrix=this.transformMatrix;const fillColor=this.current.fillColor;const strokeColor=this.current.strokeColor;const bbox=this.svgFactory.create(tx1-tx0,ty1-ty0);this.svg=bbox;this.transformMatrix=matrix;if(paintType===2){const cssColor=_util.Util.makeHexColor(...color);this.current.fillColor=cssColor;this.current.strokeColor=cssColor;}
this.executeOpTree(this.convertOpList(operatorList));this.svg=svg;this.transformMatrix=transformMatrix;this.current.fillColor=fillColor;this.current.strokeColor=strokeColor;tiling.append(bbox.childNodes[0]);this.defs.append(tiling);return`url(#${tilingId})`;}
_makeShadingPattern(args){if(typeof args==="string"){args=this.objs.get(args);}
switch(args[0]){case"RadialAxial":const shadingId=`shading${shadingCount++}`;const colorStops=args[3];let gradient;switch(args[1]){case"axial":const point0=args[4];const point1=args[5];gradient=this.svgFactory.createElement("svg:linearGradient");gradient.setAttributeNS(null,"id",shadingId);gradient.setAttributeNS(null,"gradientUnits","userSpaceOnUse");gradient.setAttributeNS(null,"x1",point0[0]);gradient.setAttributeNS(null,"y1",point0[1]);gradient.setAttributeNS(null,"x2",point1[0]);gradient.setAttributeNS(null,"y2",point1[1]);break;case"radial":const focalPoint=args[4];const circlePoint=args[5];const focalRadius=args[6];const circleRadius=args[7];gradient=this.svgFactory.createElement("svg:radialGradient");gradient.setAttributeNS(null,"id",shadingId);gradient.setAttributeNS(null,"gradientUnits","userSpaceOnUse");gradient.setAttributeNS(null,"cx",circlePoint[0]);gradient.setAttributeNS(null,"cy",circlePoint[1]);gradient.setAttributeNS(null,"r",circleRadius);gradient.setAttributeNS(null,"fx",focalPoint[0]);gradient.setAttributeNS(null,"fy",focalPoint[1]);gradient.setAttributeNS(null,"fr",focalRadius);break;default:throw new Error(`Unknown RadialAxial type: ${args[1]}`);}
for(const colorStop of colorStops){const stop=this.svgFactory.createElement("svg:stop");stop.setAttributeNS(null,"offset",colorStop[0]);stop.setAttributeNS(null,"stop-color",colorStop[1]);gradient.append(stop);}
this.defs.append(gradient);return`url(#${shadingId})`;case"Mesh":(0,_util.warn)("Unimplemented pattern Mesh");return null;case"Dummy":return"hotpink";default:throw new Error(`Unknown IR type: ${args[0]}`);}}
setDash(dashArray,dashPhase){this.current.dashArray=dashArray;this.current.dashPhase=dashPhase;}
constructPath(ops,args){const current=this.current;let x=current.x,y=current.y;let d=[];let j=0;for(const op of ops){switch(op|0){case _util.OPS.rectangle:x=args[j++];y=args[j++];const width=args[j++];const height=args[j++];const xw=x+width;const yh=y+height;d.push("M",pf(x),pf(y),"L",pf(xw),pf(y),"L",pf(xw),pf(yh),"L",pf(x),pf(yh),"Z");break;case _util.OPS.moveTo:x=args[j++];y=args[j++];d.push("M",pf(x),pf(y));break;case _util.OPS.lineTo:x=args[j++];y=args[j++];d.push("L",pf(x),pf(y));break;case _util.OPS.curveTo:x=args[j+4];y=args[j+5];d.push("C",pf(args[j]),pf(args[j+1]),pf(args[j+2]),pf(args[j+3]),pf(x),pf(y));j+=6;break;case _util.OPS.curveTo2:d.push("C",pf(x),pf(y),pf(args[j]),pf(args[j+1]),pf(args[j+2]),pf(args[j+3]));x=args[j+2];y=args[j+3];j+=4;break;case _util.OPS.curveTo3:x=args[j+2];y=args[j+3];d.push("C",pf(args[j]),pf(args[j+1]),pf(x),pf(y),pf(x),pf(y));j+=4;break;case _util.OPS.closePath:d.push("Z");break;}}
d=d.join(" ");if(current.path&&ops.length>0&&ops[0]!==_util.OPS.rectangle&&ops[0]!==_util.OPS.moveTo){d=current.path.getAttributeNS(null,"d")+d;}else{current.path=this.svgFactory.createElement("svg:path");this._ensureTransformGroup().append(current.path);}
current.path.setAttributeNS(null,"d",d);current.path.setAttributeNS(null,"fill","none");current.element=current.path;current.setCurrentPoint(x,y);}
endPath(){const current=this.current;current.path=null;if(!this.pendingClip){return;}
if(!current.element){this.pendingClip=null;return;}
const clipId=`clippath${clipCount++}`;const clipPath=this.svgFactory.createElement("svg:clipPath");clipPath.setAttributeNS(null,"id",clipId);clipPath.setAttributeNS(null,"transform",pm(this.transformMatrix));const clipElement=current.element.cloneNode(true);if(this.pendingClip==="evenodd"){clipElement.setAttributeNS(null,"clip-rule","evenodd");}else{clipElement.setAttributeNS(null,"clip-rule","nonzero");}
this.pendingClip=null;clipPath.append(clipElement);this.defs.append(clipPath);if(current.activeClipUrl){current.clipGroup=null;for(const prev of this.extraStack){prev.clipGroup=null;}
clipPath.setAttributeNS(null,"clip-path",current.activeClipUrl);}
current.activeClipUrl=`url(#${clipId})`;this.tgrp=null;}
clip(type){this.pendingClip=type;}
closePath(){const current=this.current;if(current.path){const d=`${current.path.getAttributeNS(null, "d")}Z`;current.path.setAttributeNS(null,"d",d);}}
setLeading(leading){this.current.leading=-leading;}
setTextRise(textRise){this.current.textRise=textRise;}
setTextRenderingMode(textRenderingMode){this.current.textRenderingMode=textRenderingMode;}
setHScale(scale){this.current.textHScale=scale/100;}
setRenderingIntent(intent){}
setFlatness(flatness){}
setGState(states){for(const[key,value]of states){switch(key){case"LW":this.setLineWidth(value);break;case"LC":this.setLineCap(value);break;case"LJ":this.setLineJoin(value);break;case"ML":this.setMiterLimit(value);break;case"D":this.setDash(value[0],value[1]);break;case"RI":this.setRenderingIntent(value);break;case"FL":this.setFlatness(value);break;case"Font":this.setFont(value);break;case"CA":this.setStrokeAlpha(value);break;case"ca":this.setFillAlpha(value);break;default:(0,_util.warn)(`Unimplemented graphic state operator ${key}`);break;}}}
fill(){const current=this.current;if(current.element){current.element.setAttributeNS(null,"fill",current.fillColor);current.element.setAttributeNS(null,"fill-opacity",current.fillAlpha);this.endPath();}}
stroke(){const current=this.current;if(current.element){this._setStrokeAttributes(current.element);current.element.setAttributeNS(null,"fill","none");this.endPath();}}
_setStrokeAttributes(element){let lineWidthScale=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;const current=this.current;let dashArray=current.dashArray;if(lineWidthScale!==1&&dashArray.length>0){dashArray=dashArray.map(function(value){return lineWidthScale*value;});}
element.setAttributeNS(null,"stroke",current.strokeColor);element.setAttributeNS(null,"stroke-opacity",current.strokeAlpha);element.setAttributeNS(null,"stroke-miterlimit",pf(current.miterLimit));element.setAttributeNS(null,"stroke-linecap",current.lineCap);element.setAttributeNS(null,"stroke-linejoin",current.lineJoin);element.setAttributeNS(null,"stroke-width",pf(lineWidthScale*current.lineWidth)+"px");element.setAttributeNS(null,"stroke-dasharray",dashArray.map(pf).join(" "));element.setAttributeNS(null,"stroke-dashoffset",pf(lineWidthScale*current.dashPhase)+"px");}
eoFill(){if(this.current.element){this.current.element.setAttributeNS(null,"fill-rule","evenodd");}
this.fill();}
fillStroke(){this.stroke();this.fill();}
eoFillStroke(){if(this.current.element){this.current.element.setAttributeNS(null,"fill-rule","evenodd");}
this.fillStroke();}
closeStroke(){this.closePath();this.stroke();}
closeFillStroke(){this.closePath();this.fillStroke();}
closeEOFillStroke(){this.closePath();this.eoFillStroke();}
paintSolidColorImageMask(){const rect=this.svgFactory.createElement("svg:rect");rect.setAttributeNS(null,"x","0");rect.setAttributeNS(null,"y","0");rect.setAttributeNS(null,"width","1px");rect.setAttributeNS(null,"height","1px");rect.setAttributeNS(null,"fill",this.current.fillColor);this._ensureTransformGroup().append(rect);}
paintImageXObject(objId){const imgData=objId.startsWith("g_")?this.commonObjs.get(objId):this.objs.get(objId);if(!imgData){(0,_util.warn)(`Dependent image with object ID ${objId} is not ready yet`);return;}
this.paintInlineImageXObject(imgData);}
paintInlineImageXObject(imgData,mask){const width=imgData.width;const height=imgData.height;const imgSrc=convertImgDataToPng(imgData,this.forceDataSchema,!!mask);const cliprect=this.svgFactory.createElement("svg:rect");cliprect.setAttributeNS(null,"x","0");cliprect.setAttributeNS(null,"y","0");cliprect.setAttributeNS(null,"width",pf(width));cliprect.setAttributeNS(null,"height",pf(height));this.current.element=cliprect;this.clip("nonzero");const imgEl=this.svgFactory.createElement("svg:image");imgEl.setAttributeNS(XLINK_NS,"xlink:href",imgSrc);imgEl.setAttributeNS(null,"x","0");imgEl.setAttributeNS(null,"y",pf(-height));imgEl.setAttributeNS(null,"width",pf(width)+"px");imgEl.setAttributeNS(null,"height",pf(height)+"px");imgEl.setAttributeNS(null,"transform",`scale(${pf(1 / width)} ${pf(-1 / height)})`);if(mask){mask.append(imgEl);}else{this._ensureTransformGroup().append(imgEl);}}
paintImageMaskXObject(imgData){const current=this.current;const width=imgData.width;const height=imgData.height;const fillColor=current.fillColor;current.maskId=`mask${maskCount++}`;const mask=this.svgFactory.createElement("svg:mask");mask.setAttributeNS(null,"id",current.maskId);const rect=this.svgFactory.createElement("svg:rect");rect.setAttributeNS(null,"x","0");rect.setAttributeNS(null,"y","0");rect.setAttributeNS(null,"width",pf(width));rect.setAttributeNS(null,"height",pf(height));rect.setAttributeNS(null,"fill",fillColor);rect.setAttributeNS(null,"mask",`url(#${current.maskId})`);this.defs.append(mask);this._ensureTransformGroup().append(rect);this.paintInlineImageXObject(imgData,mask);}
paintFormXObjectBegin(matrix,bbox){if(Array.isArray(matrix)&&matrix.length===6){this.transform(matrix[0],matrix[1],matrix[2],matrix[3],matrix[4],matrix[5]);}
if(bbox){const width=bbox[2]-bbox[0];const height=bbox[3]-bbox[1];const cliprect=this.svgFactory.createElement("svg:rect");cliprect.setAttributeNS(null,"x",bbox[0]);cliprect.setAttributeNS(null,"y",bbox[1]);cliprect.setAttributeNS(null,"width",pf(width));cliprect.setAttributeNS(null,"height",pf(height));this.current.element=cliprect;this.clip("nonzero");this.endPath();}}
paintFormXObjectEnd(){}
_initialize(viewport){const svg=this.svgFactory.create(viewport.width,viewport.height);const definitions=this.svgFactory.createElement("svg:defs");svg.append(definitions);this.defs=definitions;const rootGroup=this.svgFactory.createElement("svg:g");rootGroup.setAttributeNS(null,"transform",pm(viewport.transform));svg.append(rootGroup);this.svg=rootGroup;return svg;}
_ensureClipGroup(){if(!this.current.clipGroup){const clipGroup=this.svgFactory.createElement("svg:g");clipGroup.setAttributeNS(null,"clip-path",this.current.activeClipUrl);this.svg.append(clipGroup);this.current.clipGroup=clipGroup;}
return this.current.clipGroup;}
_ensureTransformGroup(){if(!this.tgrp){this.tgrp=this.svgFactory.createElement("svg:g");this.tgrp.setAttributeNS(null,"transform",pm(this.transformMatrix));if(this.current.activeClipUrl){this._ensureClipGroup().append(this.tgrp);}else{this.svg.append(this.tgrp);}}
return this.tgrp;}};}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PDFNodeStream=void 0;var _util=__w_pdfjs_require__(1);var _network_utils=__w_pdfjs_require__(158);;const fs=require("fs");const http=require("http");const https=require("https");const url=require("url");const fileUriRegex=/^file:\/\/\/[a-zA-Z]:\//;function parseUrl(sourceUrl){const parsedUrl=url.parse(sourceUrl);if(parsedUrl.protocol==="file:"||parsedUrl.host){return parsedUrl;}
if(/^[a-z]:[/\\]/i.test(sourceUrl)){return url.parse(`file:///${sourceUrl}`);}
if(!parsedUrl.host){parsedUrl.protocol="file:";}
return parsedUrl;}
class PDFNodeStream{constructor(source){this.source=source;this.url=parseUrl(source.url);this.isHttp=this.url.protocol==="http:"||this.url.protocol==="https:";this.isFsUrl=this.url.protocol==="file:";this.httpHeaders=this.isHttp&&source.httpHeaders||{};this._fullRequestReader=null;this._rangeRequestReaders=[];}
get _progressiveDataLength(){var _this$_fullRequestRea,_this$_fullRequestRea2;return(_this$_fullRequestRea=(_this$_fullRequestRea2=this._fullRequestReader)===null||_this$_fullRequestRea2===void 0?void 0:_this$_fullRequestRea2._loaded)!==null&&_this$_fullRequestRea!==void 0?_this$_fullRequestRea:0;}
getFullReader(){(0,_util.assert)(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once.");this._fullRequestReader=this.isFsUrl?new PDFNodeStreamFsFullReader(this):new PDFNodeStreamFullReader(this);return this._fullRequestReader;}
getRangeReader(start,end){if(end<=this._progressiveDataLength){return null;}
const rangeReader=this.isFsUrl?new PDFNodeStreamFsRangeReader(this,start,end):new PDFNodeStreamRangeReader(this,start,end);this._rangeRequestReaders.push(rangeReader);return rangeReader;}
cancelAllRequests(reason){if(this._fullRequestReader){this._fullRequestReader.cancel(reason);}
for(const reader of this._rangeRequestReaders.slice(0)){reader.cancel(reason);}}}
exports.PDFNodeStream=PDFNodeStream;class BaseFullReader{constructor(stream){this._url=stream.url;this._done=false;this._storedError=null;this.onProgress=null;const source=stream.source;this._contentLength=source.length;this._loaded=0;this._filename=null;this._disableRange=source.disableRange||false;this._rangeChunkSize=source.rangeChunkSize;if(!this._rangeChunkSize&&!this._disableRange){this._disableRange=true;}
this._isStreamingSupported=!source.disableStream;this._isRangeSupported=!source.disableRange;this._readableStream=null;this._readCapability=(0,_util.createPromiseCapability)();this._headersCapability=(0,_util.createPromiseCapability)();}
get headersReady(){return this._headersCapability.promise;}
get filename(){return this._filename;}
get contentLength(){return this._contentLength;}
get isRangeSupported(){return this._isRangeSupported;}
get isStreamingSupported(){return this._isStreamingSupported;}
async read(){await this._readCapability.promise;if(this._done){return{value:undefined,done:true};}
if(this._storedError){throw this._storedError;}
const chunk=this._readableStream.read();if(chunk===null){this._readCapability=(0,_util.createPromiseCapability)();return this.read();}
this._loaded+=chunk.length;if(this.onProgress){this.onProgress({loaded:this._loaded,total:this._contentLength});}
const buffer=new Uint8Array(chunk).buffer;return{value:buffer,done:false};}
cancel(reason){if(!this._readableStream){this._error(reason);return;}
this._readableStream.destroy(reason);}
_error(reason){this._storedError=reason;this._readCapability.resolve();}
_setReadableStream(readableStream){this._readableStream=readableStream;readableStream.on("readable",()=>{this._readCapability.resolve();});readableStream.on("end",()=>{readableStream.destroy();this._done=true;this._readCapability.resolve();});readableStream.on("error",reason=>{this._error(reason);});if(!this._isStreamingSupported&&this._isRangeSupported){this._error(new _util.AbortException("streaming is disabled"));}
if(this._storedError){this._readableStream.destroy(this._storedError);}}}
class BaseRangeReader{constructor(stream){this._url=stream.url;this._done=false;this._storedError=null;this.onProgress=null;this._loaded=0;this._readableStream=null;this._readCapability=(0,_util.createPromiseCapability)();const source=stream.source;this._isStreamingSupported=!source.disableStream;}
get isStreamingSupported(){return this._isStreamingSupported;}
async read(){await this._readCapability.promise;if(this._done){return{value:undefined,done:true};}
if(this._storedError){throw this._storedError;}
const chunk=this._readableStream.read();if(chunk===null){this._readCapability=(0,_util.createPromiseCapability)();return this.read();}
this._loaded+=chunk.length;if(this.onProgress){this.onProgress({loaded:this._loaded});}
const buffer=new Uint8Array(chunk).buffer;return{value:buffer,done:false};}
cancel(reason){if(!this._readableStream){this._error(reason);return;}
this._readableStream.destroy(reason);}
_error(reason){this._storedError=reason;this._readCapability.resolve();}
_setReadableStream(readableStream){this._readableStream=readableStream;readableStream.on("readable",()=>{this._readCapability.resolve();});readableStream.on("end",()=>{readableStream.destroy();this._done=true;this._readCapability.resolve();});readableStream.on("error",reason=>{this._error(reason);});if(this._storedError){this._readableStream.destroy(this._storedError);}}}
function createRequestOptions(parsedUrl,headers){return{protocol:parsedUrl.protocol,auth:parsedUrl.auth,host:parsedUrl.hostname,port:parsedUrl.port,path:parsedUrl.path,method:"GET",headers};}
class PDFNodeStreamFullReader extends BaseFullReader{constructor(stream){super(stream);const handleResponse=response=>{if(response.statusCode===404){const error=new _util.MissingPDFException(`Missing PDF "${this._url}".`);this._storedError=error;this._headersCapability.reject(error);return;}
this._headersCapability.resolve();this._setReadableStream(response);const getResponseHeader=name=>{return this._readableStream.headers[name.toLowerCase()];};const{allowRangeRequests,suggestedLength}=(0,_network_utils.validateRangeRequestCapabilities)({getResponseHeader,isHttp:stream.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=allowRangeRequests;this._contentLength=suggestedLength||this._contentLength;this._filename=(0,_network_utils.extractFilenameFromHeader)(getResponseHeader);};this._request=null;if(this._url.protocol==="http:"){this._request=http.request(createRequestOptions(this._url,stream.httpHeaders),handleResponse);}else{this._request=https.request(createRequestOptions(this._url,stream.httpHeaders),handleResponse);}
this._request.on("error",reason=>{this._storedError=reason;this._headersCapability.reject(reason);});this._request.end();}}
class PDFNodeStreamRangeReader extends BaseRangeReader{constructor(stream,start,end){super(stream);this._httpHeaders={};for(const property in stream.httpHeaders){const value=stream.httpHeaders[property];if(typeof value==="undefined"){continue;}
this._httpHeaders[property]=value;}
this._httpHeaders.Range=`bytes=${start}-${end - 1}`;const handleResponse=response=>{if(response.statusCode===404){const error=new _util.MissingPDFException(`Missing PDF "${this._url}".`);this._storedError=error;return;}
this._setReadableStream(response);};this._request=null;if(this._url.protocol==="http:"){this._request=http.request(createRequestOptions(this._url,this._httpHeaders),handleResponse);}else{this._request=https.request(createRequestOptions(this._url,this._httpHeaders),handleResponse);}
this._request.on("error",reason=>{this._storedError=reason;});this._request.end();}}
class PDFNodeStreamFsFullReader extends BaseFullReader{constructor(stream){super(stream);let path=decodeURIComponent(this._url.path);if(fileUriRegex.test(this._url.href)){path=path.replace(/^\//,"");}
fs.lstat(path,(error,stat)=>{if(error){if(error.code==="ENOENT"){error=new _util.MissingPDFException(`Missing PDF "${path}".`);}
this._storedError=error;this._headersCapability.reject(error);return;}
this._contentLength=stat.size;this._setReadableStream(fs.createReadStream(path));this._headersCapability.resolve();});}}
class PDFNodeStreamFsRangeReader extends BaseRangeReader{constructor(stream,start,end){super(stream);let path=decodeURIComponent(this._url.path);if(fileUriRegex.test(this._url.href)){path=path.replace(/^\//,"");}
this._setReadableStream(fs.createReadStream(path,{start,end:end-1}));}}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.createResponseStatusError=createResponseStatusError;exports.extractFilenameFromHeader=extractFilenameFromHeader;exports.validateRangeRequestCapabilities=validateRangeRequestCapabilities;exports.validateResponseStatus=validateResponseStatus;var _util=__w_pdfjs_require__(1);var _content_disposition=__w_pdfjs_require__(159);var _display_utils=__w_pdfjs_require__(133);function validateRangeRequestCapabilities(_ref){let{getResponseHeader,isHttp,rangeChunkSize,disableRange}=_ref;const returnValues={allowRangeRequests:false,suggestedLength:undefined};const length=parseInt(getResponseHeader("Content-Length"),10);if(!Number.isInteger(length)){return returnValues;}
returnValues.suggestedLength=length;if(length<=2*rangeChunkSize){return returnValues;}
if(disableRange||!isHttp){return returnValues;}
if(getResponseHeader("Accept-Ranges")!=="bytes"){return returnValues;}
const contentEncoding=getResponseHeader("Content-Encoding")||"identity";if(contentEncoding!=="identity"){return returnValues;}
returnValues.allowRangeRequests=true;return returnValues;}
function extractFilenameFromHeader(getResponseHeader){const contentDisposition=getResponseHeader("Content-Disposition");if(contentDisposition){let filename=(0,_content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);if(filename.includes("%")){try{filename=decodeURIComponent(filename);}catch(ex){}}
if((0,_display_utils.isPdfFile)(filename)){return filename;}}
return null;}
function createResponseStatusError(status,url){if(status===404||status===0&&url.startsWith("file:")){return new _util.MissingPDFException('Missing PDF "'+url+'".');}
return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF "${url}".`,status);}
function validateResponseStatus(status){return status===200||status===206;}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.getFilenameFromContentDispositionHeader=getFilenameFromContentDispositionHeader;var _util=__w_pdfjs_require__(1);function getFilenameFromContentDispositionHeader(contentDisposition){let needsEncodingFixup=true;let tmp=toParamRegExp("filename\\*","i").exec(contentDisposition);if(tmp){tmp=tmp[1];let filename=rfc2616unquote(tmp);filename=unescape(filename);filename=rfc5987decode(filename);filename=rfc2047decode(filename);return fixupEncoding(filename);}
tmp=rfc2231getparam(contentDisposition);if(tmp){const filename=rfc2047decode(tmp);return fixupEncoding(filename);}
tmp=toParamRegExp("filename","i").exec(contentDisposition);if(tmp){tmp=tmp[1];let filename=rfc2616unquote(tmp);filename=rfc2047decode(filename);return fixupEncoding(filename);}
function toParamRegExp(attributePattern,flags){return new RegExp("(?:^|;)\\s*"+attributePattern+"\\s*=\\s*"+"("+'[^";\\s][^;\\s]*'+"|"+'"(?:[^"\\\\]|\\\\"?)+"?'+")",flags);}
function textdecode(encoding,value){if(encoding){if(!/^[\x00-\xFF]+$/.test(value)){return value;}
try{const decoder=new TextDecoder(encoding,{fatal:true});const buffer=(0,_util.stringToBytes)(value);value=decoder.decode(buffer);needsEncodingFixup=false;}catch(e){}}
return value;}
function fixupEncoding(value){if(needsEncodingFixup&&/[\x80-\xff]/.test(value)){value=textdecode("utf-8",value);if(needsEncodingFixup){value=textdecode("iso-8859-1",value);}}
return value;}
function rfc2231getparam(contentDispositionStr){const matches=[];let match;const iter=toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)","ig");while((match=iter.exec(contentDispositionStr))!==null){let[,n,quot,part]=match;n=parseInt(n,10);if(n in matches){if(n===0){break;}
continue;}
matches[n]=[quot,part];}
const parts=[];for(let n=0;n<matches.length;++n){if(!(n in matches)){break;}
let[quot,part]=matches[n];part=rfc2616unquote(part);if(quot){part=unescape(part);if(n===0){part=rfc5987decode(part);}}
parts.push(part);}
return parts.join("");}
function rfc2616unquote(value){if(value.startsWith('"')){const parts=value.slice(1).split('\\"');for(let i=0;i<parts.length;++i){const quotindex=parts[i].indexOf('"');if(quotindex!==-1){parts[i]=parts[i].slice(0,quotindex);parts.length=i+1;}
parts[i]=parts[i].replace(/\\(.)/g,"$1");}
value=parts.join('"');}
return value;}
function rfc5987decode(extvalue){const encodingend=extvalue.indexOf("'");if(encodingend===-1){return extvalue;}
const encoding=extvalue.slice(0,encodingend);const langvalue=extvalue.slice(encodingend+1);const value=langvalue.replace(/^[^']*'/,"");return textdecode(encoding,value);}
function rfc2047decode(value){if(!value.startsWith("=?")||/[\x00-\x19\x80-\xff]/.test(value)){return value;}
return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g,function(matches,charset,encoding,text){if(encoding==="q"||encoding==="Q"){text=text.replace(/_/g," ");text=text.replace(/=([0-9a-fA-F]{2})/g,function(match,hex){return String.fromCharCode(parseInt(hex,16));});return textdecode(charset,text);}
try{text=atob(text);}catch(e){}
return textdecode(charset,text);});}
return"";}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PDFNetworkStream=void 0;var _util=__w_pdfjs_require__(1);var _network_utils=__w_pdfjs_require__(158);;const OK_RESPONSE=200;const PARTIAL_CONTENT_RESPONSE=206;function getArrayBuffer(xhr){const data=xhr.response;if(typeof data!=="string"){return data;}
const array=(0,_util.stringToBytes)(data);return array.buffer;}
class NetworkManager{constructor(url){let args=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};this.url=url;this.isHttp=/^https?:/i.test(url);this.httpHeaders=this.isHttp&&args.httpHeaders||Object.create(null);this.withCredentials=args.withCredentials||false;this.getXhr=args.getXhr||function NetworkManager_getXhr(){return new XMLHttpRequest();};this.currXhrId=0;this.pendingRequests=Object.create(null);}
requestRange(begin,end,listeners){const args={begin,end};for(const prop in listeners){args[prop]=listeners[prop];}
return this.request(args);}
requestFull(listeners){return this.request(listeners);}
request(args){const xhr=this.getXhr();const xhrId=this.currXhrId++;const pendingRequest=this.pendingRequests[xhrId]={xhr};xhr.open("GET",this.url);xhr.withCredentials=this.withCredentials;for(const property in this.httpHeaders){const value=this.httpHeaders[property];if(typeof value==="undefined"){continue;}
xhr.setRequestHeader(property,value);}
if(this.isHttp&&"begin"in args&&"end"in args){xhr.setRequestHeader("Range",`bytes=${args.begin}-${args.end - 1}`);pendingRequest.expectedStatus=PARTIAL_CONTENT_RESPONSE;}else{pendingRequest.expectedStatus=OK_RESPONSE;}
xhr.responseType="arraybuffer";if(args.onError){xhr.onerror=function(evt){args.onError(xhr.status);};}
xhr.onreadystatechange=this.onStateChange.bind(this,xhrId);xhr.onprogress=this.onProgress.bind(this,xhrId);pendingRequest.onHeadersReceived=args.onHeadersReceived;pendingRequest.onDone=args.onDone;pendingRequest.onError=args.onError;pendingRequest.onProgress=args.onProgress;xhr.send(null);return xhrId;}
onProgress(xhrId,evt){var _pendingRequest$onPro;const pendingRequest=this.pendingRequests[xhrId];if(!pendingRequest){return;}
(_pendingRequest$onPro=pendingRequest.onProgress)===null||_pendingRequest$onPro===void 0?void 0:_pendingRequest$onPro.call(pendingRequest,evt);}
onStateChange(xhrId,evt){const pendingRequest=this.pendingRequests[xhrId];if(!pendingRequest){return;}
const xhr=pendingRequest.xhr;if(xhr.readyState>=2&&pendingRequest.onHeadersReceived){pendingRequest.onHeadersReceived();delete pendingRequest.onHeadersReceived;}
if(xhr.readyState!==4){return;}
if(!(xhrId in this.pendingRequests)){return;}
delete this.pendingRequests[xhrId];if(xhr.status===0&&this.isHttp){var _pendingRequest$onErr;(_pendingRequest$onErr=pendingRequest.onError)===null||_pendingRequest$onErr===void 0?void 0:_pendingRequest$onErr.call(pendingRequest,xhr.status);return;}
const xhrStatus=xhr.status||OK_RESPONSE;const ok_response_on_range_request=xhrStatus===OK_RESPONSE&&pendingRequest.expectedStatus===PARTIAL_CONTENT_RESPONSE;if(!ok_response_on_range_request&&xhrStatus!==pendingRequest.expectedStatus){var _pendingRequest$onErr2;(_pendingRequest$onErr2=pendingRequest.onError)===null||_pendingRequest$onErr2===void 0?void 0:_pendingRequest$onErr2.call(pendingRequest,xhr.status);return;}
const chunk=getArrayBuffer(xhr);if(xhrStatus===PARTIAL_CONTENT_RESPONSE){const rangeHeader=xhr.getResponseHeader("Content-Range");const matches=/bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader);pendingRequest.onDone({begin:parseInt(matches[1],10),chunk});}else if(chunk){pendingRequest.onDone({begin:0,chunk});}else{var _pendingRequest$onErr3;(_pendingRequest$onErr3=pendingRequest.onError)===null||_pendingRequest$onErr3===void 0?void 0:_pendingRequest$onErr3.call(pendingRequest,xhr.status);}}
getRequestXhr(xhrId){return this.pendingRequests[xhrId].xhr;}
isPendingRequest(xhrId){return xhrId in this.pendingRequests;}
abortRequest(xhrId){const xhr=this.pendingRequests[xhrId].xhr;delete this.pendingRequests[xhrId];xhr.abort();}}
class PDFNetworkStream{constructor(source){this._source=source;this._manager=new NetworkManager(source.url,{httpHeaders:source.httpHeaders,withCredentials:source.withCredentials});this._rangeChunkSize=source.rangeChunkSize;this._fullRequestReader=null;this._rangeRequestReaders=[];}
_onRangeRequestReaderClosed(reader){const i=this._rangeRequestReaders.indexOf(reader);if(i>=0){this._rangeRequestReaders.splice(i,1);}}
getFullReader(){(0,_util.assert)(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once.");this._fullRequestReader=new PDFNetworkStreamFullRequestReader(this._manager,this._source);return this._fullRequestReader;}
getRangeReader(begin,end){const reader=new PDFNetworkStreamRangeRequestReader(this._manager,begin,end);reader.onClosed=this._onRangeRequestReaderClosed.bind(this);this._rangeRequestReaders.push(reader);return reader;}
cancelAllRequests(reason){var _this$_fullRequestRea;(_this$_fullRequestRea=this._fullRequestReader)===null||_this$_fullRequestRea===void 0?void 0:_this$_fullRequestRea.cancel(reason);for(const reader of this._rangeRequestReaders.slice(0)){reader.cancel(reason);}}}
exports.PDFNetworkStream=PDFNetworkStream;class PDFNetworkStreamFullRequestReader{constructor(manager,source){this._manager=manager;const args={onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=source.url;this._fullRequestId=manager.requestFull(args);this._headersReceivedCapability=(0,_util.createPromiseCapability)();this._disableRange=source.disableRange||false;this._contentLength=source.length;this._rangeChunkSize=source.rangeChunkSize;if(!this._rangeChunkSize&&!this._disableRange){this._disableRange=true;}
this._isStreamingSupported=false;this._isRangeSupported=false;this._cachedChunks=[];this._requests=[];this._done=false;this._storedError=undefined;this._filename=null;this.onProgress=null;}
_onHeadersReceived(){const fullRequestXhrId=this._fullRequestId;const fullRequestXhr=this._manager.getRequestXhr(fullRequestXhrId);const getResponseHeader=name=>{return fullRequestXhr.getResponseHeader(name);};const{allowRangeRequests,suggestedLength}=(0,_network_utils.validateRangeRequestCapabilities)({getResponseHeader,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});if(allowRangeRequests){this._isRangeSupported=true;}
this._contentLength=suggestedLength||this._contentLength;this._filename=(0,_network_utils.extractFilenameFromHeader)(getResponseHeader);if(this._isRangeSupported){this._manager.abortRequest(fullRequestXhrId);}
this._headersReceivedCapability.resolve();}
_onDone(data){if(data){if(this._requests.length>0){const requestCapability=this._requests.shift();requestCapability.resolve({value:data.chunk,done:false});}else{this._cachedChunks.push(data.chunk);}}
this._done=true;if(this._cachedChunks.length>0){return;}
for(const requestCapability of this._requests){requestCapability.resolve({value:undefined,done:true});}
this._requests.length=0;}
_onError(status){this._storedError=(0,_network_utils.createResponseStatusError)(status,this._url);this._headersReceivedCapability.reject(this._storedError);for(const requestCapability of this._requests){requestCapability.reject(this._storedError);}
this._requests.length=0;this._cachedChunks.length=0;}
_onProgress(evt){var _this$onProgress;(_this$onProgress=this.onProgress)===null||_this$onProgress===void 0?void 0:_this$onProgress.call(this,{loaded:evt.loaded,total:evt.lengthComputable?evt.total:this._contentLength});}
get filename(){return this._filename;}
get isRangeSupported(){return this._isRangeSupported;}
get isStreamingSupported(){return this._isStreamingSupported;}
get contentLength(){return this._contentLength;}
get headersReady(){return this._headersReceivedCapability.promise;}
async read(){if(this._storedError){throw this._storedError;}
if(this._cachedChunks.length>0){const chunk=this._cachedChunks.shift();return{value:chunk,done:false};}
if(this._done){return{value:undefined,done:true};}
const requestCapability=(0,_util.createPromiseCapability)();this._requests.push(requestCapability);return requestCapability.promise;}
cancel(reason){this._done=true;this._headersReceivedCapability.reject(reason);for(const requestCapability of this._requests){requestCapability.resolve({value:undefined,done:true});}
this._requests.length=0;if(this._manager.isPendingRequest(this._fullRequestId)){this._manager.abortRequest(this._fullRequestId);}
this._fullRequestReader=null;}}
class PDFNetworkStreamRangeRequestReader{constructor(manager,begin,end){this._manager=manager;const args={onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=manager.url;this._requestId=manager.requestRange(begin,end,args);this._requests=[];this._queuedChunk=null;this._done=false;this._storedError=undefined;this.onProgress=null;this.onClosed=null;}
_close(){var _this$onClosed;(_this$onClosed=this.onClosed)===null||_this$onClosed===void 0?void 0:_this$onClosed.call(this,this);}
_onDone(data){const chunk=data.chunk;if(this._requests.length>0){const requestCapability=this._requests.shift();requestCapability.resolve({value:chunk,done:false});}else{this._queuedChunk=chunk;}
this._done=true;for(const requestCapability of this._requests){requestCapability.resolve({value:undefined,done:true});}
this._requests.length=0;this._close();}
_onError(status){this._storedError=(0,_network_utils.createResponseStatusError)(status,this._url);for(const requestCapability of this._requests){requestCapability.reject(this._storedError);}
this._requests.length=0;this._queuedChunk=null;}
_onProgress(evt){if(!this.isStreamingSupported){var _this$onProgress2;(_this$onProgress2=this.onProgress)===null||_this$onProgress2===void 0?void 0:_this$onProgress2.call(this,{loaded:evt.loaded});}}
get isStreamingSupported(){return false;}
async read(){if(this._storedError){throw this._storedError;}
if(this._queuedChunk!==null){const chunk=this._queuedChunk;this._queuedChunk=null;return{value:chunk,done:false};}
if(this._done){return{value:undefined,done:true};}
const requestCapability=(0,_util.createPromiseCapability)();this._requests.push(requestCapability);return requestCapability.promise;}
cancel(reason){this._done=true;for(const requestCapability of this._requests){requestCapability.resolve({value:undefined,done:true});}
this._requests.length=0;if(this._manager.isPendingRequest(this._requestId)){this._manager.abortRequest(this._requestId);}
this._close();}}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PDFFetchStream=void 0;var _util=__w_pdfjs_require__(1);var _network_utils=__w_pdfjs_require__(158);;function createFetchOptions(headers,withCredentials,abortController){return{method:"GET",headers,signal:abortController.signal,mode:"cors",credentials:withCredentials?"include":"same-origin",redirect:"follow"};}
function createHeaders(httpHeaders){const headers=new Headers();for(const property in httpHeaders){const value=httpHeaders[property];if(typeof value==="undefined"){continue;}
headers.append(property,value);}
return headers;}
class PDFFetchStream{constructor(source){this.source=source;this.isHttp=/^https?:/i.test(source.url);this.httpHeaders=this.isHttp&&source.httpHeaders||{};this._fullRequestReader=null;this._rangeRequestReaders=[];}
get _progressiveDataLength(){var _this$_fullRequestRea,_this$_fullRequestRea2;return(_this$_fullRequestRea=(_this$_fullRequestRea2=this._fullRequestReader)===null||_this$_fullRequestRea2===void 0?void 0:_this$_fullRequestRea2._loaded)!==null&&_this$_fullRequestRea!==void 0?_this$_fullRequestRea:0;}
getFullReader(){(0,_util.assert)(!this._fullRequestReader,"PDFFetchStream.getFullReader can only be called once.");this._fullRequestReader=new PDFFetchStreamReader(this);return this._fullRequestReader;}
getRangeReader(begin,end){if(end<=this._progressiveDataLength){return null;}
const reader=new PDFFetchStreamRangeReader(this,begin,end);this._rangeRequestReaders.push(reader);return reader;}
cancelAllRequests(reason){if(this._fullRequestReader){this._fullRequestReader.cancel(reason);}
for(const reader of this._rangeRequestReaders.slice(0)){reader.cancel(reason);}}}
exports.PDFFetchStream=PDFFetchStream;class PDFFetchStreamReader{constructor(stream){this._stream=stream;this._reader=null;this._loaded=0;this._filename=null;const source=stream.source;this._withCredentials=source.withCredentials||false;this._contentLength=source.length;this._headersCapability=(0,_util.createPromiseCapability)();this._disableRange=source.disableRange||false;this._rangeChunkSize=source.rangeChunkSize;if(!this._rangeChunkSize&&!this._disableRange){this._disableRange=true;}
this._abortController=new AbortController();this._isStreamingSupported=!source.disableStream;this._isRangeSupported=!source.disableRange;this._headers=createHeaders(this._stream.httpHeaders);const url=source.url;fetch(url,createFetchOptions(this._headers,this._withCredentials,this._abortController)).then(response=>{if(!(0,_network_utils.validateResponseStatus)(response.status)){throw(0,_network_utils.createResponseStatusError)(response.status,url);}
this._reader=response.body.getReader();this._headersCapability.resolve();const getResponseHeader=name=>{return response.headers.get(name);};const{allowRangeRequests,suggestedLength}=(0,_network_utils.validateRangeRequestCapabilities)({getResponseHeader,isHttp:this._stream.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=allowRangeRequests;this._contentLength=suggestedLength||this._contentLength;this._filename=(0,_network_utils.extractFilenameFromHeader)(getResponseHeader);if(!this._isStreamingSupported&&this._isRangeSupported){this.cancel(new _util.AbortException("Streaming is disabled."));}}).catch(this._headersCapability.reject);this.onProgress=null;}
get headersReady(){return this._headersCapability.promise;}
get filename(){return this._filename;}
get contentLength(){return this._contentLength;}
get isRangeSupported(){return this._isRangeSupported;}
get isStreamingSupported(){return this._isStreamingSupported;}
async read(){await this._headersCapability.promise;const{value,done}=await this._reader.read();if(done){return{value,done};}
this._loaded+=value.byteLength;if(this.onProgress){this.onProgress({loaded:this._loaded,total:this._contentLength});}
const buffer=new Uint8Array(value).buffer;return{value:buffer,done:false};}
cancel(reason){if(this._reader){this._reader.cancel(reason);}
this._abortController.abort();}}
class PDFFetchStreamRangeReader{constructor(stream,begin,end){this._stream=stream;this._reader=null;this._loaded=0;const source=stream.source;this._withCredentials=source.withCredentials||false;this._readCapability=(0,_util.createPromiseCapability)();this._isStreamingSupported=!source.disableStream;this._abortController=new AbortController();this._headers=createHeaders(this._stream.httpHeaders);this._headers.append("Range",`bytes=${begin}-${end - 1}`);const url=source.url;fetch(url,createFetchOptions(this._headers,this._withCredentials,this._abortController)).then(response=>{if(!(0,_network_utils.validateResponseStatus)(response.status)){throw(0,_network_utils.createResponseStatusError)(response.status,url);}
this._readCapability.resolve();this._reader=response.body.getReader();}).catch(this._readCapability.reject);this.onProgress=null;}
get isStreamingSupported(){return this._isStreamingSupported;}
async read(){await this._readCapability.promise;const{value,done}=await this._reader.read();if(done){return{value,done};}
this._loaded+=value.byteLength;if(this.onProgress){this.onProgress({loaded:this._loaded});}
const buffer=new Uint8Array(value).buffer;return{value:buffer,done:false};}
cancel(reason){if(this._reader){this._reader.cancel(reason);}
this._abortController.abort();}}})]);var __webpack_module_cache__={};function __w_pdfjs_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(cachedModule!==undefined){return cachedModule.exports;}
var module=__webpack_module_cache__[moduleId]={exports:{}};__webpack_modules__[moduleId](module,module.exports,__w_pdfjs_require__);return module.exports;}
var __webpack_exports__={};(()=>{"use strict";var exports=__webpack_exports__;Object.defineProperty(exports,"__esModule",({value:true}));Object.defineProperty(exports,"AnnotationEditorLayer",({enumerable:true,get:function(){return _annotation_editor_layer.AnnotationEditorLayer;}}));Object.defineProperty(exports,"AnnotationEditorParamsType",({enumerable:true,get:function(){return _util.AnnotationEditorParamsType;}}));Object.defineProperty(exports,"AnnotationEditorType",({enumerable:true,get:function(){return _util.AnnotationEditorType;}}));Object.defineProperty(exports,"AnnotationEditorUIManager",({enumerable:true,get:function(){return _tools.AnnotationEditorUIManager;}}));Object.defineProperty(exports,"AnnotationLayer",({enumerable:true,get:function(){return _annotation_layer.AnnotationLayer;}}));Object.defineProperty(exports,"AnnotationMode",({enumerable:true,get:function(){return _util.AnnotationMode;}}));Object.defineProperty(exports,"CMapCompressionType",({enumerable:true,get:function(){return _util.CMapCompressionType;}}));Object.defineProperty(exports,"GlobalWorkerOptions",({enumerable:true,get:function(){return _worker_options.GlobalWorkerOptions;}}));Object.defineProperty(exports,"InvalidPDFException",({enumerable:true,get:function(){return _util.InvalidPDFException;}}));Object.defineProperty(exports,"LoopbackPort",({enumerable:true,get:function(){return _api.LoopbackPort;}}));Object.defineProperty(exports,"MissingPDFException",({enumerable:true,get:function(){return _util.MissingPDFException;}}));Object.defineProperty(exports,"OPS",({enumerable:true,get:function(){return _util.OPS;}}));Object.defineProperty(exports,"PDFDataRangeTransport",({enumerable:true,get:function(){return _api.PDFDataRangeTransport;}}));Object.defineProperty(exports,"PDFDateString",({enumerable:true,get:function(){return _display_utils.PDFDateString;}}));Object.defineProperty(exports,"PDFWorker",({enumerable:true,get:function(){return _api.PDFWorker;}}));Object.defineProperty(exports,"PasswordResponses",({enumerable:true,get:function(){return _util.PasswordResponses;}}));Object.defineProperty(exports,"PermissionFlag",({enumerable:true,get:function(){return _util.PermissionFlag;}}));Object.defineProperty(exports,"PixelsPerInch",({enumerable:true,get:function(){return _display_utils.PixelsPerInch;}}));Object.defineProperty(exports,"RenderingCancelledException",({enumerable:true,get:function(){return _display_utils.RenderingCancelledException;}}));Object.defineProperty(exports,"SVGGraphics",({enumerable:true,get:function(){return _svg.SVGGraphics;}}));Object.defineProperty(exports,"UNSUPPORTED_FEATURES",({enumerable:true,get:function(){return _util.UNSUPPORTED_FEATURES;}}));Object.defineProperty(exports,"UnexpectedResponseException",({enumerable:true,get:function(){return _util.UnexpectedResponseException;}}));Object.defineProperty(exports,"Util",({enumerable:true,get:function(){return _util.Util;}}));Object.defineProperty(exports,"VerbosityLevel",({enumerable:true,get:function(){return _util.VerbosityLevel;}}));Object.defineProperty(exports,"XfaLayer",({enumerable:true,get:function(){return _xfa_layer.XfaLayer;}}));Object.defineProperty(exports,"build",({enumerable:true,get:function(){return _api.build;}}));Object.defineProperty(exports,"createPromiseCapability",({enumerable:true,get:function(){return _util.createPromiseCapability;}}));Object.defineProperty(exports,"createValidAbsoluteUrl",({enumerable:true,get:function(){return _util.createValidAbsoluteUrl;}}));Object.defineProperty(exports,"getDocument",({enumerable:true,get:function(){return _api.getDocument;}}));Object.defineProperty(exports,"getFilenameFromUrl",({enumerable:true,get:function(){return _display_utils.getFilenameFromUrl;}}));Object.defineProperty(exports,"getPdfFilenameFromUrl",({enumerable:true,get:function(){return _display_utils.getPdfFilenameFromUrl;}}));Object.defineProperty(exports,"getXfaPageViewport",({enumerable:true,get:function(){return _display_utils.getXfaPageViewport;}}));Object.defineProperty(exports,"isPdfFile",({enumerable:true,get:function(){return _display_utils.isPdfFile;}}));Object.defineProperty(exports,"loadScript",({enumerable:true,get:function(){return _display_utils.loadScript;}}));Object.defineProperty(exports,"renderTextLayer",({enumerable:true,get:function(){return _text_layer.renderTextLayer;}}));Object.defineProperty(exports,"shadow",({enumerable:true,get:function(){return _util.shadow;}}));Object.defineProperty(exports,"version",({enumerable:true,get:function(){return _api.version;}}));var _util=__w_pdfjs_require__(1);var _api=__w_pdfjs_require__(129);var _display_utils=__w_pdfjs_require__(133);var _annotation_editor_layer=__w_pdfjs_require__(147);var _tools=__w_pdfjs_require__(132);var _annotation_layer=__w_pdfjs_require__(152);var _worker_options=__w_pdfjs_require__(140);var _is_node=__w_pdfjs_require__(3);var _text_layer=__w_pdfjs_require__(155);var _svg=__w_pdfjs_require__(156);var _xfa_layer=__w_pdfjs_require__(154);const pdfjsVersion='2.16.105';const pdfjsBuild='172ccdbe5';{if(_is_node.isNodeJS){const{PDFNodeStream}=__w_pdfjs_require__(157);(0,_api.setPDFNetworkStreamFactory)(params=>{return new PDFNodeStream(params);});}else{const{PDFNetworkStream}=__w_pdfjs_require__(160);const{PDFFetchStream}=__w_pdfjs_require__(161);(0,_api.setPDFNetworkStreamFactory)(params=>{if((0,_display_utils.isValidFetchUrl)(params.url)){return new PDFFetchStream(params);}
return new PDFNetworkStream(params);});}}})();return __webpack_exports__;})();});;

/* /web/static/lib/pdfjs/build/pdf.worker.js */
(function webpackUniversalModuleDefinition(root,factory){if(typeof exports==='object'&&typeof module==='object')
module.exports=factory();else if(typeof define==='function'&&define.amd)
define("pdfjs-dist/build/pdf.worker",[],factory);else if(typeof exports==='object')
exports["pdfjs-dist/build/pdf.worker"]=factory();else
root["pdfjs-dist/build/pdf.worker"]=root.pdfjsWorker=factory();})(globalThis,()=>{return(()=>{var __webpack_modules__=([,((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.WorkerTask=exports.WorkerMessageHandler=void 0;var _util=__w_pdfjs_require__(2);var _primitives=__w_pdfjs_require__(130);var _core_utils=__w_pdfjs_require__(131);var _pdf_manager=__w_pdfjs_require__(133);var _cleanup_helper=__w_pdfjs_require__(196);var _writer=__w_pdfjs_require__(190);var _is_node=__w_pdfjs_require__(4);var _message_handler=__w_pdfjs_require__(227);var _worker_stream=__w_pdfjs_require__(228);class WorkerTask{constructor(name){this.name=name;this.terminated=false;this._capability=(0,_util.createPromiseCapability)();}
get finished(){return this._capability.promise;}
finish(){this._capability.resolve();}
terminate(){this.terminated=true;}
ensureNotTerminated(){if(this.terminated){throw new Error("Worker task was terminated");}}}
exports.WorkerTask=WorkerTask;class WorkerMessageHandler{static setup(handler,port){let testMessageProcessed=false;handler.on("test",function wphSetupTest(data){if(testMessageProcessed){return;}
testMessageProcessed=true;handler.send("test",data instanceof Uint8Array);});handler.on("configure",function wphConfigure(data){(0,_util.setVerbosityLevel)(data.verbosity);});handler.on("GetDocRequest",function wphSetupDoc(data){return WorkerMessageHandler.createDocumentHandler(data,port);});}
static createDocumentHandler(docParams,port){let pdfManager;let terminated=false;let cancelXHRs=null;const WorkerTasks=[];const verbosity=(0,_util.getVerbosityLevel)();const apiVersion=docParams.apiVersion;const workerVersion='2.16.105';if(apiVersion!==workerVersion){throw new Error(`The API version "${apiVersion}" does not match `+`the Worker version "${workerVersion}".`);}
const enumerableProperties=[];for(const property in[]){enumerableProperties.push(property);}
if(enumerableProperties.length){throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+enumerableProperties.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");}
if(typeof ReadableStream==="undefined"){const partialMsg="The browser/environment lacks native support for critical "+"functionality used by the PDF.js library (e.g. `ReadableStream`); ";if(_is_node.isNodeJS){throw new Error(partialMsg+"please use a `legacy`-build instead.");}
throw new Error(partialMsg+"please update to a supported browser.");}
const docId=docParams.docId;const docBaseUrl=docParams.docBaseUrl;const workerHandlerName=docParams.docId+"_worker";let handler=new _message_handler.MessageHandler(workerHandlerName,docId,port);function ensureNotTerminated(){if(terminated){throw new Error("Worker was terminated");}}
function startWorkerTask(task){WorkerTasks.push(task);}
function finishWorkerTask(task){task.finish();const i=WorkerTasks.indexOf(task);WorkerTasks.splice(i,1);}
async function loadDocument(recoveryMode){await pdfManager.ensureDoc("checkHeader");await pdfManager.ensureDoc("parseStartXRef");await pdfManager.ensureDoc("parse",[recoveryMode]);await pdfManager.ensureDoc("checkFirstPage",[recoveryMode]);await pdfManager.ensureDoc("checkLastPage",[recoveryMode]);const isPureXfa=await pdfManager.ensureDoc("isPureXfa");if(isPureXfa){const task=new WorkerTask("loadXfaFonts");startWorkerTask(task);await Promise.all([pdfManager.loadXfaFonts(handler,task).catch(reason=>{}).then(()=>finishWorkerTask(task)),pdfManager.loadXfaImages()]);}
const[numPages,fingerprints]=await Promise.all([pdfManager.ensureDoc("numPages"),pdfManager.ensureDoc("fingerprints")]);const htmlForXfa=isPureXfa?await pdfManager.ensureDoc("htmlForXfa"):null;return{numPages,fingerprints,htmlForXfa};}
function getPdfManager(data,evaluatorOptions,enableXfa){const pdfManagerCapability=(0,_util.createPromiseCapability)();let newPdfManager;const source=data.source;if(source.data){try{newPdfManager=new _pdf_manager.LocalPdfManager(docId,source.data,source.password,handler,evaluatorOptions,enableXfa,docBaseUrl);pdfManagerCapability.resolve(newPdfManager);}catch(ex){pdfManagerCapability.reject(ex);}
return pdfManagerCapability.promise;}
let pdfStream,cachedChunks=[];try{pdfStream=new _worker_stream.PDFWorkerStream(handler);}catch(ex){pdfManagerCapability.reject(ex);return pdfManagerCapability.promise;}
const fullRequest=pdfStream.getFullReader();fullRequest.headersReady.then(function(){if(!fullRequest.isRangeSupported){return;}
const disableAutoFetch=source.disableAutoFetch||fullRequest.isStreamingSupported;newPdfManager=new _pdf_manager.NetworkPdfManager(docId,pdfStream,{msgHandler:handler,password:source.password,length:fullRequest.contentLength,disableAutoFetch,rangeChunkSize:source.rangeChunkSize},evaluatorOptions,enableXfa,docBaseUrl);for(const chunk of cachedChunks){newPdfManager.sendProgressiveData(chunk);}
cachedChunks=[];pdfManagerCapability.resolve(newPdfManager);cancelXHRs=null;}).catch(function(reason){pdfManagerCapability.reject(reason);cancelXHRs=null;});let loaded=0;const flushChunks=function(){const pdfFile=(0,_util.arraysToBytes)(cachedChunks);if(source.length&&pdfFile.length!==source.length){(0,_util.warn)("reported HTTP length is different from actual");}
try{newPdfManager=new _pdf_manager.LocalPdfManager(docId,pdfFile,source.password,handler,evaluatorOptions,enableXfa,docBaseUrl);pdfManagerCapability.resolve(newPdfManager);}catch(ex){pdfManagerCapability.reject(ex);}
cachedChunks=[];};const readPromise=new Promise(function(resolve,reject){const readChunk=function(_ref){let{value,done}=_ref;try{ensureNotTerminated();if(done){if(!newPdfManager){flushChunks();}
cancelXHRs=null;return;}
loaded+=(0,_util.arrayByteLength)(value);if(!fullRequest.isStreamingSupported){handler.send("DocProgress",{loaded,total:Math.max(loaded,fullRequest.contentLength||0)});}
if(newPdfManager){newPdfManager.sendProgressiveData(value);}else{cachedChunks.push(value);}
fullRequest.read().then(readChunk,reject);}catch(e){reject(e);}};fullRequest.read().then(readChunk,reject);});readPromise.catch(function(e){pdfManagerCapability.reject(e);cancelXHRs=null;});cancelXHRs=function(reason){pdfStream.cancelAllRequests(reason);};return pdfManagerCapability.promise;}
function setupDoc(data){function onSuccess(doc){ensureNotTerminated();handler.send("GetDoc",{pdfInfo:doc});}
function onFailure(ex){ensureNotTerminated();if(ex instanceof _util.PasswordException){const task=new WorkerTask(`PasswordException: response ${ex.code}`);startWorkerTask(task);handler.sendWithPromise("PasswordRequest",ex).then(function(_ref2){let{password}=_ref2;finishWorkerTask(task);pdfManager.updatePassword(password);pdfManagerReady();}).catch(function(){finishWorkerTask(task);handler.send("DocException",ex);});}else if(ex instanceof _util.InvalidPDFException||ex instanceof _util.MissingPDFException||ex instanceof _util.UnexpectedResponseException||ex instanceof _util.UnknownErrorException){handler.send("DocException",ex);}else{handler.send("DocException",new _util.UnknownErrorException(ex.message,ex.toString()));}}
function pdfManagerReady(){ensureNotTerminated();loadDocument(false).then(onSuccess,function(reason){ensureNotTerminated();if(!(reason instanceof _core_utils.XRefParseException)){onFailure(reason);return;}
pdfManager.requestLoadedStream();pdfManager.onLoadedStream().then(function(){ensureNotTerminated();loadDocument(true).then(onSuccess,onFailure);});});}
ensureNotTerminated();const evaluatorOptions={maxImageSize:data.maxImageSize,disableFontFace:data.disableFontFace,ignoreErrors:data.ignoreErrors,isEvalSupported:data.isEvalSupported,fontExtraProperties:data.fontExtraProperties,useSystemFonts:data.useSystemFonts,cMapUrl:data.cMapUrl,standardFontDataUrl:data.standardFontDataUrl};getPdfManager(data,evaluatorOptions,data.enableXfa).then(function(newPdfManager){if(terminated){newPdfManager.terminate(new _util.AbortException("Worker was terminated."));throw new Error("Worker was terminated");}
pdfManager=newPdfManager;pdfManager.onLoadedStream().then(function(stream){handler.send("DataLoaded",{length:stream.bytes.byteLength});});}).then(pdfManagerReady,onFailure);}
handler.on("GetPage",function wphSetupGetPage(data){return pdfManager.getPage(data.pageIndex).then(function(page){return Promise.all([pdfManager.ensure(page,"rotate"),pdfManager.ensure(page,"ref"),pdfManager.ensure(page,"userUnit"),pdfManager.ensure(page,"view")]).then(function(_ref3){let[rotate,ref,userUnit,view]=_ref3;return{rotate,ref,userUnit,view};});});});handler.on("GetPageIndex",function wphSetupGetPageIndex(data){const pageRef=_primitives.Ref.get(data.num,data.gen);return pdfManager.ensureCatalog("getPageIndex",[pageRef]);});handler.on("GetDestinations",function wphSetupGetDestinations(data){return pdfManager.ensureCatalog("destinations");});handler.on("GetDestination",function wphSetupGetDestination(data){return pdfManager.ensureCatalog("getDestination",[data.id]);});handler.on("GetPageLabels",function wphSetupGetPageLabels(data){return pdfManager.ensureCatalog("pageLabels");});handler.on("GetPageLayout",function wphSetupGetPageLayout(data){return pdfManager.ensureCatalog("pageLayout");});handler.on("GetPageMode",function wphSetupGetPageMode(data){return pdfManager.ensureCatalog("pageMode");});handler.on("GetViewerPreferences",function(data){return pdfManager.ensureCatalog("viewerPreferences");});handler.on("GetOpenAction",function(data){return pdfManager.ensureCatalog("openAction");});handler.on("GetAttachments",function wphSetupGetAttachments(data){return pdfManager.ensureCatalog("attachments");});handler.on("GetJavaScript",function wphSetupGetJavaScript(data){return pdfManager.ensureCatalog("javaScript");});handler.on("GetDocJSActions",function wphSetupGetDocJSActions(data){return pdfManager.ensureCatalog("jsActions");});handler.on("GetPageJSActions",function(_ref4){let{pageIndex}=_ref4;return pdfManager.getPage(pageIndex).then(function(page){return pdfManager.ensure(page,"jsActions");});});handler.on("GetOutline",function wphSetupGetOutline(data){return pdfManager.ensureCatalog("documentOutline");});handler.on("GetOptionalContentConfig",function(data){return pdfManager.ensureCatalog("optionalContentConfig");});handler.on("GetPermissions",function(data){return pdfManager.ensureCatalog("permissions");});handler.on("GetMetadata",function wphSetupGetMetadata(data){return Promise.all([pdfManager.ensureDoc("documentInfo"),pdfManager.ensureCatalog("metadata")]);});handler.on("GetMarkInfo",function wphSetupGetMarkInfo(data){return pdfManager.ensureCatalog("markInfo");});handler.on("GetData",function wphSetupGetData(data){pdfManager.requestLoadedStream();return pdfManager.onLoadedStream().then(function(stream){return stream.bytes;});});handler.on("GetAnnotations",function(_ref5){let{pageIndex,intent}=_ref5;return pdfManager.getPage(pageIndex).then(function(page){const task=new WorkerTask(`GetAnnotations: page ${pageIndex}`);startWorkerTask(task);return page.getAnnotationsData(handler,task,intent).then(data=>{finishWorkerTask(task);return data;},reason=>{finishWorkerTask(task);});});});handler.on("GetFieldObjects",function(data){return pdfManager.ensureDoc("fieldObjects");});handler.on("HasJSActions",function(data){return pdfManager.ensureDoc("hasJSActions");});handler.on("GetCalculationOrderIds",function(data){return pdfManager.ensureDoc("calculationOrderIds");});handler.on("SaveDocument",function(_ref6){let{isPureXfa,numPages,annotationStorage,filename}=_ref6;pdfManager.requestLoadedStream();const newAnnotationsByPage=!isPureXfa?(0,_core_utils.getNewAnnotationsMap)(annotationStorage):null;const promises=[pdfManager.onLoadedStream(),pdfManager.ensureCatalog("acroForm"),pdfManager.ensureCatalog("acroFormRef"),pdfManager.ensureDoc("xref"),pdfManager.ensureDoc("startXRef")];if(newAnnotationsByPage){for(const[pageIndex,annotations]of newAnnotationsByPage){promises.push(pdfManager.getPage(pageIndex).then(page=>{const task=new WorkerTask(`Save (editor): page ${pageIndex}`);return page.saveNewAnnotations(handler,task,annotations).finally(function(){finishWorkerTask(task);});}));}}
if(isPureXfa){promises.push(pdfManager.serializeXfaData(annotationStorage));}else{for(let pageIndex=0;pageIndex<numPages;pageIndex++){promises.push(pdfManager.getPage(pageIndex).then(function(page){const task=new WorkerTask(`Save: page ${pageIndex}`);return page.save(handler,task,annotationStorage).finally(function(){finishWorkerTask(task);});}));}}
return Promise.all(promises).then(function(_ref7){let[stream,acroForm,acroFormRef,xref,startXRef,...refs]=_ref7;let newRefs=[];let xfaData=null;if(isPureXfa){xfaData=refs[0];if(!xfaData){return stream.bytes;}}else{newRefs=refs.flat(2);if(newRefs.length===0){return stream.bytes;}}
const xfa=acroForm instanceof _primitives.Dict&&acroForm.get("XFA")||null;let xfaDatasetsRef=null;let hasXfaDatasetsEntry=false;if(Array.isArray(xfa)){for(let i=0,ii=xfa.length;i<ii;i+=2){if(xfa[i]==="datasets"){xfaDatasetsRef=xfa[i+1];acroFormRef=null;hasXfaDatasetsEntry=true;}}
if(xfaDatasetsRef===null){xfaDatasetsRef=xref.getNewRef();}}else if(xfa){acroFormRef=null;(0,_util.warn)("Unsupported XFA type.");}
let newXrefInfo=Object.create(null);if(xref.trailer){const infoObj=Object.create(null);const xrefInfo=xref.trailer.get("Info")||null;if(xrefInfo instanceof _primitives.Dict){xrefInfo.forEach((key,value)=>{if(typeof value==="string"){infoObj[key]=(0,_util.stringToPDFString)(value);}});}
newXrefInfo={rootRef:xref.trailer.getRaw("Root")||null,encryptRef:xref.trailer.getRaw("Encrypt")||null,newRef:xref.getNewRef(),infoRef:xref.trailer.getRaw("Info")||null,info:infoObj,fileIds:xref.trailer.get("ID")||null,startXRef,filename};}
xref.resetNewRef();return(0,_writer.incrementalUpdate)({originalData:stream.bytes,xrefInfo:newXrefInfo,newRefs,xref,hasXfa:!!xfa,xfaDatasetsRef,hasXfaDatasetsEntry,acroFormRef,acroForm,xfaData});});});handler.on("GetOperatorList",function wphSetupRenderPage(data,sink){const pageIndex=data.pageIndex;pdfManager.getPage(pageIndex).then(function(page){const task=new WorkerTask(`GetOperatorList: page ${pageIndex}`);startWorkerTask(task);const start=verbosity>=_util.VerbosityLevel.INFOS?Date.now():0;page.getOperatorList({handler,sink,task,intent:data.intent,cacheKey:data.cacheKey,annotationStorage:data.annotationStorage}).then(function(operatorListInfo){finishWorkerTask(task);if(start){(0,_util.info)(`page=${pageIndex + 1} - getOperatorList: time=`+`${Date.now() - start}ms, len=${operatorListInfo.length}`);}
sink.close();},function(reason){finishWorkerTask(task);if(task.terminated){return;}
handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorOperatorList});sink.error(reason);});});});handler.on("GetTextContent",function wphExtractText(data,sink){const pageIndex=data.pageIndex;pdfManager.getPage(pageIndex).then(function(page){const task=new WorkerTask("GetTextContent: page "+pageIndex);startWorkerTask(task);const start=verbosity>=_util.VerbosityLevel.INFOS?Date.now():0;page.extractTextContent({handler,task,sink,includeMarkedContent:data.includeMarkedContent,combineTextItems:data.combineTextItems}).then(function(){finishWorkerTask(task);if(start){(0,_util.info)(`page=${pageIndex + 1} - getTextContent: time=`+`${Date.now() - start}ms`);}
sink.close();},function(reason){finishWorkerTask(task);if(task.terminated){return;}
sink.error(reason);});});});handler.on("GetStructTree",function wphGetStructTree(data){return pdfManager.getPage(data.pageIndex).then(function(page){return pdfManager.ensure(page,"getStructTree");});});handler.on("FontFallback",function(data){return pdfManager.fontFallback(data.id,handler);});handler.on("Cleanup",function wphCleanup(data){return pdfManager.cleanup(true);});handler.on("Terminate",function wphTerminate(data){terminated=true;const waitOn=[];if(pdfManager){pdfManager.terminate(new _util.AbortException("Worker was terminated."));const cleanupPromise=pdfManager.cleanup();waitOn.push(cleanupPromise);pdfManager=null;}else{(0,_cleanup_helper.clearGlobalCaches)();}
if(cancelXHRs){cancelXHRs(new _util.AbortException("Worker was terminated."));}
for(const task of WorkerTasks){waitOn.push(task.finished);task.terminate();}
return Promise.all(waitOn).then(function(){handler.destroy();handler=null;});});handler.on("Ready",function wphReady(data){setupDoc(docParams);docParams=null;});return workerHandlerName;}
static initializeFromPort(port){const handler=new _message_handler.MessageHandler("worker","main",port);WorkerMessageHandler.setup(handler,port);handler.send("ready",null);}}
exports.WorkerMessageHandler=WorkerMessageHandler;function isMessagePort(maybePort){return typeof maybePort.postMessage==="function"&&"onmessage"in maybePort;}
if(typeof window==="undefined"&&!_is_node.isNodeJS&&typeof self!=="undefined"&&isMessagePort(self)){WorkerMessageHandler.initializeFromPort(self);}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.VerbosityLevel=exports.Util=exports.UnknownErrorException=exports.UnexpectedResponseException=exports.UNSUPPORTED_FEATURES=exports.TextRenderingMode=exports.StreamType=exports.RenderingIntentFlag=exports.PermissionFlag=exports.PasswordResponses=exports.PasswordException=exports.PageActionEventType=exports.OPS=exports.MissingPDFException=exports.LINE_FACTOR=exports.LINE_DESCENT_FACTOR=exports.InvalidPDFException=exports.ImageKind=exports.IDENTITY_MATRIX=exports.FormatError=exports.FontType=exports.FeatureTest=exports.FONT_IDENTITY_MATRIX=exports.DocumentActionEventType=exports.CMapCompressionType=exports.BaseException=exports.AnnotationType=exports.AnnotationStateModelType=exports.AnnotationReviewState=exports.AnnotationReplyType=exports.AnnotationMode=exports.AnnotationMarkedState=exports.AnnotationFlag=exports.AnnotationFieldFlag=exports.AnnotationEditorType=exports.AnnotationEditorPrefix=exports.AnnotationEditorParamsType=exports.AnnotationBorderStyleType=exports.AnnotationActionEventType=exports.AbortException=void 0;exports.arrayByteLength=arrayByteLength;exports.arraysToBytes=arraysToBytes;exports.assert=assert;exports.bytesToString=bytesToString;exports.createPromiseCapability=createPromiseCapability;exports.createValidAbsoluteUrl=createValidAbsoluteUrl;exports.escapeString=escapeString;exports.getModificationDate=getModificationDate;exports.getVerbosityLevel=getVerbosityLevel;exports.info=info;exports.isArrayBuffer=isArrayBuffer;exports.isArrayEqual=isArrayEqual;exports.isAscii=isAscii;exports.objectFromMap=objectFromMap;exports.objectSize=objectSize;exports.setVerbosityLevel=setVerbosityLevel;exports.shadow=shadow;exports.string32=string32;exports.stringToBytes=stringToBytes;exports.stringToPDFString=stringToPDFString;exports.stringToUTF16BEString=stringToUTF16BEString;exports.stringToUTF8String=stringToUTF8String;exports.unreachable=unreachable;exports.utf8StringToString=utf8StringToString;exports.warn=warn;__w_pdfjs_require__(3);const IDENTITY_MATRIX=[1,0,0,1,0,0];exports.IDENTITY_MATRIX=IDENTITY_MATRIX;const FONT_IDENTITY_MATRIX=[0.001,0,0,0.001,0,0];exports.FONT_IDENTITY_MATRIX=FONT_IDENTITY_MATRIX;const LINE_FACTOR=1.35;exports.LINE_FACTOR=LINE_FACTOR;const LINE_DESCENT_FACTOR=0.35;exports.LINE_DESCENT_FACTOR=LINE_DESCENT_FACTOR;const RenderingIntentFlag={ANY:0x01,DISPLAY:0x02,PRINT:0x04,ANNOTATIONS_FORMS:0x10,ANNOTATIONS_STORAGE:0x20,ANNOTATIONS_DISABLE:0x40,OPLIST:0x100};exports.RenderingIntentFlag=RenderingIntentFlag;const AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3};exports.AnnotationMode=AnnotationMode;const AnnotationEditorPrefix="pdfjs_internal_editor_";exports.AnnotationEditorPrefix=AnnotationEditorPrefix;const AnnotationEditorType={DISABLE:-1,NONE:0,FREETEXT:3,INK:15};exports.AnnotationEditorType=AnnotationEditorType;const AnnotationEditorParamsType={FREETEXT_SIZE:1,FREETEXT_COLOR:2,FREETEXT_OPACITY:3,INK_COLOR:11,INK_THICKNESS:12,INK_OPACITY:13};exports.AnnotationEditorParamsType=AnnotationEditorParamsType;const PermissionFlag={PRINT:0x04,MODIFY_CONTENTS:0x08,COPY:0x10,MODIFY_ANNOTATIONS:0x20,FILL_INTERACTIVE_FORMS:0x100,COPY_FOR_ACCESSIBILITY:0x200,ASSEMBLE:0x400,PRINT_HIGH_QUALITY:0x800};exports.PermissionFlag=PermissionFlag;const TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4};exports.TextRenderingMode=TextRenderingMode;const ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};exports.ImageKind=ImageKind;const AnnotationType={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26};exports.AnnotationType=AnnotationType;const AnnotationStateModelType={MARKED:"Marked",REVIEW:"Review"};exports.AnnotationStateModelType=AnnotationStateModelType;const AnnotationMarkedState={MARKED:"Marked",UNMARKED:"Unmarked"};exports.AnnotationMarkedState=AnnotationMarkedState;const AnnotationReviewState={ACCEPTED:"Accepted",REJECTED:"Rejected",CANCELLED:"Cancelled",COMPLETED:"Completed",NONE:"None"};exports.AnnotationReviewState=AnnotationReviewState;const AnnotationReplyType={GROUP:"Group",REPLY:"R"};exports.AnnotationReplyType=AnnotationReplyType;const AnnotationFlag={INVISIBLE:0x01,HIDDEN:0x02,PRINT:0x04,NOZOOM:0x08,NOROTATE:0x10,NOVIEW:0x20,READONLY:0x40,LOCKED:0x80,TOGGLENOVIEW:0x100,LOCKEDCONTENTS:0x200};exports.AnnotationFlag=AnnotationFlag;const AnnotationFieldFlag={READONLY:0x0000001,REQUIRED:0x0000002,NOEXPORT:0x0000004,MULTILINE:0x0001000,PASSWORD:0x0002000,NOTOGGLETOOFF:0x0004000,RADIO:0x0008000,PUSHBUTTON:0x0010000,COMBO:0x0020000,EDIT:0x0040000,SORT:0x0080000,FILESELECT:0x0100000,MULTISELECT:0x0200000,DONOTSPELLCHECK:0x0400000,DONOTSCROLL:0x0800000,COMB:0x1000000,RICHTEXT:0x2000000,RADIOSINUNISON:0x2000000,COMMITONSELCHANGE:0x4000000};exports.AnnotationFieldFlag=AnnotationFieldFlag;const AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};exports.AnnotationBorderStyleType=AnnotationBorderStyleType;const AnnotationActionEventType={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"};exports.AnnotationActionEventType=AnnotationActionEventType;const DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"};exports.DocumentActionEventType=DocumentActionEventType;const PageActionEventType={O:"PageOpen",C:"PageClose"};exports.PageActionEventType=PageActionEventType;const StreamType={UNKNOWN:"UNKNOWN",FLATE:"FLATE",LZW:"LZW",DCT:"DCT",JPX:"JPX",JBIG:"JBIG",A85:"A85",AHX:"AHX",CCF:"CCF",RLX:"RLX"};exports.StreamType=StreamType;const FontType={UNKNOWN:"UNKNOWN",TYPE1:"TYPE1",TYPE1STANDARD:"TYPE1STANDARD",TYPE1C:"TYPE1C",CIDFONTTYPE0:"CIDFONTTYPE0",CIDFONTTYPE0C:"CIDFONTTYPE0C",TRUETYPE:"TRUETYPE",CIDFONTTYPE2:"CIDFONTTYPE2",TYPE3:"TYPE3",OPENTYPE:"OPENTYPE",TYPE0:"TYPE0",MMTYPE1:"MMTYPE1"};exports.FontType=FontType;const VerbosityLevel={ERRORS:0,WARNINGS:1,INFOS:5};exports.VerbosityLevel=VerbosityLevel;const CMapCompressionType={NONE:0,BINARY:1,STREAM:2};exports.CMapCompressionType=CMapCompressionType;const OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91};exports.OPS=OPS;const UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",signatures:"signatures",smask:"smask",shadingPattern:"shadingPattern",font:"font",errorTilingPattern:"errorTilingPattern",errorExtGState:"errorExtGState",errorXObject:"errorXObject",errorFontLoadType3:"errorFontLoadType3",errorFontState:"errorFontState",errorFontMissing:"errorFontMissing",errorFontTranslate:"errorFontTranslate",errorColorSpace:"errorColorSpace",errorOperatorList:"errorOperatorList",errorFontToUnicode:"errorFontToUnicode",errorFontLoadNative:"errorFontLoadNative",errorFontBuildPath:"errorFontBuildPath",errorFontGetPath:"errorFontGetPath",errorMarkedContent:"errorMarkedContent",errorContentSubStream:"errorContentSubStream"};exports.UNSUPPORTED_FEATURES=UNSUPPORTED_FEATURES;const PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};exports.PasswordResponses=PasswordResponses;let verbosity=VerbosityLevel.WARNINGS;function setVerbosityLevel(level){if(Number.isInteger(level)){verbosity=level;}}
function getVerbosityLevel(){return verbosity;}
function info(msg){if(verbosity>=VerbosityLevel.INFOS){console.log(`Info: ${msg}`);}}
function warn(msg){if(verbosity>=VerbosityLevel.WARNINGS){console.log(`Warning: ${msg}`);}}
function unreachable(msg){throw new Error(msg);}
function assert(cond,msg){if(!cond){unreachable(msg);}}
function _isValidProtocol(url){if(!url){return false;}
switch(url.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return true;default:return false;}}
function createValidAbsoluteUrl(url){let baseUrl=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;let options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(!url){return null;}
try{if(options&&typeof url==="string"){if(options.addDefaultProtocol&&url.startsWith("www.")){const dots=url.match(/\./g);if(dots&&dots.length>=2){url=`http://${url}`;}}
if(options.tryConvertEncoding){try{url=stringToUTF8String(url);}catch(ex){}}}
const absoluteUrl=baseUrl?new URL(url,baseUrl):new URL(url);if(_isValidProtocol(absoluteUrl)){return absoluteUrl;}}catch(ex){}
return null;}
function shadow(obj,prop,value){Object.defineProperty(obj,prop,{value,enumerable:true,configurable:true,writable:false});return value;}
const BaseException=function BaseExceptionClosure(){function BaseException(message,name){if(this.constructor===BaseException){unreachable("Cannot initialize BaseException.");}
this.message=message;this.name=name;}
BaseException.prototype=new Error();BaseException.constructor=BaseException;return BaseException;}();exports.BaseException=BaseException;class PasswordException extends BaseException{constructor(msg,code){super(msg,"PasswordException");this.code=code;}}
exports.PasswordException=PasswordException;class UnknownErrorException extends BaseException{constructor(msg,details){super(msg,"UnknownErrorException");this.details=details;}}
exports.UnknownErrorException=UnknownErrorException;class InvalidPDFException extends BaseException{constructor(msg){super(msg,"InvalidPDFException");}}
exports.InvalidPDFException=InvalidPDFException;class MissingPDFException extends BaseException{constructor(msg){super(msg,"MissingPDFException");}}
exports.MissingPDFException=MissingPDFException;class UnexpectedResponseException extends BaseException{constructor(msg,status){super(msg,"UnexpectedResponseException");this.status=status;}}
exports.UnexpectedResponseException=UnexpectedResponseException;class FormatError extends BaseException{constructor(msg){super(msg,"FormatError");}}
exports.FormatError=FormatError;class AbortException extends BaseException{constructor(msg){super(msg,"AbortException");}}
exports.AbortException=AbortException;function bytesToString(bytes){if(typeof bytes!=="object"||bytes===null||bytes.length===undefined){unreachable("Invalid argument for bytesToString");}
const length=bytes.length;const MAX_ARGUMENT_COUNT=8192;if(length<MAX_ARGUMENT_COUNT){return String.fromCharCode.apply(null,bytes);}
const strBuf=[];for(let i=0;i<length;i+=MAX_ARGUMENT_COUNT){const chunkEnd=Math.min(i+MAX_ARGUMENT_COUNT,length);const chunk=bytes.subarray(i,chunkEnd);strBuf.push(String.fromCharCode.apply(null,chunk));}
return strBuf.join("");}
function stringToBytes(str){if(typeof str!=="string"){unreachable("Invalid argument for stringToBytes");}
const length=str.length;const bytes=new Uint8Array(length);for(let i=0;i<length;++i){bytes[i]=str.charCodeAt(i)&0xff;}
return bytes;}
function arrayByteLength(arr){if(arr.length!==undefined){return arr.length;}
if(arr.byteLength!==undefined){return arr.byteLength;}
unreachable("Invalid argument for arrayByteLength");}
function arraysToBytes(arr){const length=arr.length;if(length===1&&arr[0]instanceof Uint8Array){return arr[0];}
let resultLength=0;for(let i=0;i<length;i++){resultLength+=arrayByteLength(arr[i]);}
let pos=0;const data=new Uint8Array(resultLength);for(let i=0;i<length;i++){let item=arr[i];if(!(item instanceof Uint8Array)){if(typeof item==="string"){item=stringToBytes(item);}else{item=new Uint8Array(item);}}
const itemLength=item.byteLength;data.set(item,pos);pos+=itemLength;}
return data;}
function string32(value){return String.fromCharCode(value>>24&0xff,value>>16&0xff,value>>8&0xff,value&0xff);}
function objectSize(obj){return Object.keys(obj).length;}
function objectFromMap(map){const obj=Object.create(null);for(const[key,value]of map){obj[key]=value;}
return obj;}
function isLittleEndian(){const buffer8=new Uint8Array(4);buffer8[0]=1;const view32=new Uint32Array(buffer8.buffer,0,1);return view32[0]===1;}
function isEvalSupported(){try{new Function("");return true;}catch(e){return false;}}
class FeatureTest{static get isLittleEndian(){return shadow(this,"isLittleEndian",isLittleEndian());}
static get isEvalSupported(){return shadow(this,"isEvalSupported",isEvalSupported());}
static get isOffscreenCanvasSupported(){return shadow(this,"isOffscreenCanvasSupported",typeof OffscreenCanvas!=="undefined");}}
exports.FeatureTest=FeatureTest;const hexNumbers=[...Array(256).keys()].map(n=>n.toString(16).padStart(2,"0"));class Util{static makeHexColor(r,g,b){return`#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;}
static scaleMinMax(transform,minMax){let temp;if(transform[0]){if(transform[0]<0){temp=minMax[0];minMax[0]=minMax[1];minMax[1]=temp;}
minMax[0]*=transform[0];minMax[1]*=transform[0];if(transform[3]<0){temp=minMax[2];minMax[2]=minMax[3];minMax[3]=temp;}
minMax[2]*=transform[3];minMax[3]*=transform[3];}else{temp=minMax[0];minMax[0]=minMax[2];minMax[2]=temp;temp=minMax[1];minMax[1]=minMax[3];minMax[3]=temp;if(transform[1]<0){temp=minMax[2];minMax[2]=minMax[3];minMax[3]=temp;}
minMax[2]*=transform[1];minMax[3]*=transform[1];if(transform[2]<0){temp=minMax[0];minMax[0]=minMax[1];minMax[1]=temp;}
minMax[0]*=transform[2];minMax[1]*=transform[2];}
minMax[0]+=transform[4];minMax[1]+=transform[4];minMax[2]+=transform[5];minMax[3]+=transform[5];}
static transform(m1,m2){return[m1[0]*m2[0]+m1[2]*m2[1],m1[1]*m2[0]+m1[3]*m2[1],m1[0]*m2[2]+m1[2]*m2[3],m1[1]*m2[2]+m1[3]*m2[3],m1[0]*m2[4]+m1[2]*m2[5]+m1[4],m1[1]*m2[4]+m1[3]*m2[5]+m1[5]];}
static applyTransform(p,m){const xt=p[0]*m[0]+p[1]*m[2]+m[4];const yt=p[0]*m[1]+p[1]*m[3]+m[5];return[xt,yt];}
static applyInverseTransform(p,m){const d=m[0]*m[3]-m[1]*m[2];const xt=(p[0]*m[3]-p[1]*m[2]+m[2]*m[5]-m[4]*m[3])/d;const yt=(-p[0]*m[1]+p[1]*m[0]+m[4]*m[1]-m[5]*m[0])/d;return[xt,yt];}
static getAxialAlignedBoundingBox(r,m){const p1=Util.applyTransform(r,m);const p2=Util.applyTransform(r.slice(2,4),m);const p3=Util.applyTransform([r[0],r[3]],m);const p4=Util.applyTransform([r[2],r[1]],m);return[Math.min(p1[0],p2[0],p3[0],p4[0]),Math.min(p1[1],p2[1],p3[1],p4[1]),Math.max(p1[0],p2[0],p3[0],p4[0]),Math.max(p1[1],p2[1],p3[1],p4[1])];}
static inverseTransform(m){const d=m[0]*m[3]-m[1]*m[2];return[m[3]/d,-m[1]/d,-m[2]/d,m[0]/d,(m[2]*m[5]-m[4]*m[3])/d,(m[4]*m[1]-m[5]*m[0])/d];}
static apply3dTransform(m,v){return[m[0]*v[0]+m[1]*v[1]+m[2]*v[2],m[3]*v[0]+m[4]*v[1]+m[5]*v[2],m[6]*v[0]+m[7]*v[1]+m[8]*v[2]];}
static singularValueDecompose2dScale(m){const transpose=[m[0],m[2],m[1],m[3]];const a=m[0]*transpose[0]+m[1]*transpose[2];const b=m[0]*transpose[1]+m[1]*transpose[3];const c=m[2]*transpose[0]+m[3]*transpose[2];const d=m[2]*transpose[1]+m[3]*transpose[3];const first=(a+d)/2;const second=Math.sqrt((a+d)**2-4*(a*d-c*b))/2;const sx=first+second||1;const sy=first-second||1;return[Math.sqrt(sx),Math.sqrt(sy)];}
static normalizeRect(rect){const r=rect.slice(0);if(rect[0]>rect[2]){r[0]=rect[2];r[2]=rect[0];}
if(rect[1]>rect[3]){r[1]=rect[3];r[3]=rect[1];}
return r;}
static intersect(rect1,rect2){const xLow=Math.max(Math.min(rect1[0],rect1[2]),Math.min(rect2[0],rect2[2]));const xHigh=Math.min(Math.max(rect1[0],rect1[2]),Math.max(rect2[0],rect2[2]));if(xLow>xHigh){return null;}
const yLow=Math.max(Math.min(rect1[1],rect1[3]),Math.min(rect2[1],rect2[3]));const yHigh=Math.min(Math.max(rect1[1],rect1[3]),Math.max(rect2[1],rect2[3]));if(yLow>yHigh){return null;}
return[xLow,yLow,xHigh,yHigh];}
static bezierBoundingBox(x0,y0,x1,y1,x2,y2,x3,y3){const tvalues=[],bounds=[[],[]];let a,b,c,t,t1,t2,b2ac,sqrtb2ac;for(let i=0;i<2;++i){if(i===0){b=6*x0-12*x1+6*x2;a=-3*x0+9*x1-9*x2+3*x3;c=3*x1-3*x0;}else{b=6*y0-12*y1+6*y2;a=-3*y0+9*y1-9*y2+3*y3;c=3*y1-3*y0;}
if(Math.abs(a)<1e-12){if(Math.abs(b)<1e-12){continue;}
t=-c/b;if(0<t&&t<1){tvalues.push(t);}
continue;}
b2ac=b*b-4*c*a;sqrtb2ac=Math.sqrt(b2ac);if(b2ac<0){continue;}
t1=(-b+sqrtb2ac)/(2*a);if(0<t1&&t1<1){tvalues.push(t1);}
t2=(-b-sqrtb2ac)/(2*a);if(0<t2&&t2<1){tvalues.push(t2);}}
let j=tvalues.length,mt;const jlen=j;while(j--){t=tvalues[j];mt=1-t;bounds[0][j]=mt*mt*mt*x0+3*mt*mt*t*x1+3*mt*t*t*x2+t*t*t*x3;bounds[1][j]=mt*mt*mt*y0+3*mt*mt*t*y1+3*mt*t*t*y2+t*t*t*y3;}
bounds[0][jlen]=x0;bounds[1][jlen]=y0;bounds[0][jlen+1]=x3;bounds[1][jlen+1]=y3;bounds[0].length=bounds[1].length=jlen+2;return[Math.min(...bounds[0]),Math.min(...bounds[1]),Math.max(...bounds[0]),Math.max(...bounds[1])];}}
exports.Util=Util;const PDFStringTranslateTable=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2d8,0x2c7,0x2c6,0x2d9,0x2dd,0x2db,0x2da,0x2dc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2022,0x2020,0x2021,0x2026,0x2014,0x2013,0x192,0x2044,0x2039,0x203a,0x2212,0x2030,0x201e,0x201c,0x201d,0x2018,0x2019,0x201a,0x2122,0xfb01,0xfb02,0x141,0x152,0x160,0x178,0x17d,0x131,0x142,0x153,0x161,0x17e,0,0x20ac];function stringToPDFString(str){if(str[0]>="\xEF"){let encoding;if(str[0]==="\xFE"&&str[1]==="\xFF"){encoding="utf-16be";}else if(str[0]==="\xFF"&&str[1]==="\xFE"){encoding="utf-16le";}else if(str[0]==="\xEF"&&str[1]==="\xBB"&&str[2]==="\xBF"){encoding="utf-8";}
if(encoding){try{const decoder=new TextDecoder(encoding,{fatal:true});const buffer=stringToBytes(str);return decoder.decode(buffer);}catch(ex){warn(`stringToPDFString: "${ex}".`);}}}
const strBuf=[];for(let i=0,ii=str.length;i<ii;i++){const code=PDFStringTranslateTable[str.charCodeAt(i)];strBuf.push(code?String.fromCharCode(code):str.charAt(i));}
return strBuf.join("");}
function escapeString(str){return str.replace(/([()\\\n\r])/g,match=>{if(match==="\n"){return"\\n";}else if(match==="\r"){return"\\r";}
return`\\${match}`;});}
function isAscii(str){return/^[\x00-\x7F]*$/.test(str);}
function stringToUTF16BEString(str){const buf=["\xFE\xFF"];for(let i=0,ii=str.length;i<ii;i++){const char=str.charCodeAt(i);buf.push(String.fromCharCode(char>>8&0xff),String.fromCharCode(char&0xff));}
return buf.join("");}
function stringToUTF8String(str){return decodeURIComponent(escape(str));}
function utf8StringToString(str){return unescape(encodeURIComponent(str));}
function isArrayBuffer(v){return typeof v==="object"&&v!==null&&v.byteLength!==undefined;}
function isArrayEqual(arr1,arr2){if(arr1.length!==arr2.length){return false;}
for(let i=0,ii=arr1.length;i<ii;i++){if(arr1[i]!==arr2[i]){return false;}}
return true;}
function getModificationDate(){let date=arguments.length>0&&arguments[0]!==undefined?arguments[0]:new Date();const buffer=[date.getUTCFullYear().toString(),(date.getUTCMonth()+1).toString().padStart(2,"0"),date.getUTCDate().toString().padStart(2,"0"),date.getUTCHours().toString().padStart(2,"0"),date.getUTCMinutes().toString().padStart(2,"0"),date.getUTCSeconds().toString().padStart(2,"0")];return buffer.join("");}
function createPromiseCapability(){const capability=Object.create(null);let isSettled=false;Object.defineProperty(capability,"settled",{get(){return isSettled;}});capability.promise=new Promise(function(resolve,reject){capability.resolve=function(data){isSettled=true;resolve(data);};capability.reject=function(reason){isSettled=true;reject(reason);};});return capability;}}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var _is_node=__w_pdfjs_require__(4);if(!globalThis._pdfjsCompatibilityChecked){globalThis._pdfjsCompatibilityChecked=true;(function checkNodeBtoa(){if(globalThis.btoa||!_is_node.isNodeJS){return;}
globalThis.btoa=function(chars){return Buffer.from(chars,"binary").toString("base64");};})();(function checkNodeAtob(){if(globalThis.atob||!_is_node.isNodeJS){return;}
globalThis.atob=function(input){return Buffer.from(input,"base64").toString("binary");};})();(function checkDOMMatrix(){if(globalThis.DOMMatrix||!_is_node.isNodeJS){return;}
globalThis.DOMMatrix=require("dommatrix/dist/dommatrix.js");})();(function checkReadableStream(){if(globalThis.ReadableStream||!_is_node.isNodeJS){return;}
globalThis.ReadableStream=require("web-streams-polyfill/dist/ponyfill.js").ReadableStream;})();(function checkArrayAt(){if(Array.prototype.at){return;}
__w_pdfjs_require__(5);})();(function checkTypedArrayAt(){if(Uint8Array.prototype.at){return;}
__w_pdfjs_require__(77);})();(function checkStructuredClone(){if(globalThis.structuredClone){return;}
__w_pdfjs_require__(87);})();}}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.isNodeJS=void 0;const isNodeJS=typeof process==="object"&&process+""==="[object process]"&&!process.versions.nw&&!(process.versions.electron&&process.type&&process.type!=="browser");exports.isNodeJS=isNodeJS;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{__w_pdfjs_require__(6);var entryUnbind=__w_pdfjs_require__(76);module.exports=entryUnbind('Array','at');}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var $=__w_pdfjs_require__(7);var toObject=__w_pdfjs_require__(42);var lengthOfArrayLike=__w_pdfjs_require__(66);var toIntegerOrInfinity=__w_pdfjs_require__(64);var addToUnscopables=__w_pdfjs_require__(71);$({target:'Array',proto:true},{at:function at(index){var O=toObject(this);var len=lengthOfArrayLike(O);var relativeIndex=toIntegerOrInfinity(index);var k=relativeIndex>=0?relativeIndex:len+relativeIndex;return k<0||k>=len?undefined:O[k];}});addToUnscopables('at');}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(8);var getOwnPropertyDescriptor=(__w_pdfjs_require__(9).f);var createNonEnumerableProperty=__w_pdfjs_require__(46);var defineBuiltIn=__w_pdfjs_require__(50);var defineGlobalProperty=__w_pdfjs_require__(40);var copyConstructorProperties=__w_pdfjs_require__(58);var isForced=__w_pdfjs_require__(70);module.exports=function(options,source){var TARGET=options.target;var GLOBAL=options.global;var STATIC=options.stat;var FORCED,target,key,targetProperty,sourceProperty,descriptor;if(GLOBAL){target=global;}else if(STATIC){target=global[TARGET]||defineGlobalProperty(TARGET,{});}else{target=(global[TARGET]||{}).prototype;}
if(target)
for(key in source){sourceProperty=source[key];if(options.dontCallGetSet){descriptor=getOwnPropertyDescriptor(target,key);targetProperty=descriptor&&descriptor.value;}else
targetProperty=target[key];FORCED=isForced(GLOBAL?key:TARGET+(STATIC?'.':'#')+key,options.forced);if(!FORCED&&targetProperty!==undefined){if(typeof sourceProperty==typeof targetProperty)
continue;copyConstructorProperties(sourceProperty,targetProperty);}
if(options.sham||targetProperty&&targetProperty.sham){createNonEnumerableProperty(sourceProperty,'sham',true);}
defineBuiltIn(target,key,sourceProperty,options);}};}),((module)=>{var check=function(it){return it&&it.Math==Math&&it;};module.exports=check(typeof globalThis=='object'&&globalThis)||check(typeof window=='object'&&window)||check(typeof self=='object'&&self)||check(typeof global=='object'&&global)||(function(){return this;}())||Function('return this')();}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(10);var call=__w_pdfjs_require__(12);var propertyIsEnumerableModule=__w_pdfjs_require__(14);var createPropertyDescriptor=__w_pdfjs_require__(15);var toIndexedObject=__w_pdfjs_require__(16);var toPropertyKey=__w_pdfjs_require__(21);var hasOwn=__w_pdfjs_require__(41);var IE8_DOM_DEFINE=__w_pdfjs_require__(44);var $getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;exports.f=DESCRIPTORS?$getOwnPropertyDescriptor:function getOwnPropertyDescriptor(O,P){O=toIndexedObject(O);P=toPropertyKey(P);if(IE8_DOM_DEFINE)
try{return $getOwnPropertyDescriptor(O,P);}catch(error){}
if(hasOwn(O,P))
return createPropertyDescriptor(!call(propertyIsEnumerableModule.f,O,P),O[P]);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(11);module.exports=!fails(function(){return Object.defineProperty({},1,{get:function(){return 7;}})[1]!=7;});}),((module)=>{module.exports=function(exec){try{return!!exec();}catch(error){return true;}};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var NATIVE_BIND=__w_pdfjs_require__(13);var call=Function.prototype.call;module.exports=NATIVE_BIND?call.bind(call):function(){return call.apply(call,arguments);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(11);module.exports=!fails(function(){var test=function(){}.bind();return typeof test!='function'||test.hasOwnProperty('prototype');});}),((__unused_webpack_module,exports)=>{"use strict";var $propertyIsEnumerable={}.propertyIsEnumerable;var getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;var NASHORN_BUG=getOwnPropertyDescriptor&&!$propertyIsEnumerable.call({1:2},1);exports.f=NASHORN_BUG?function propertyIsEnumerable(V){var descriptor=getOwnPropertyDescriptor(this,V);return!!descriptor&&descriptor.enumerable;}:$propertyIsEnumerable;}),((module)=>{module.exports=function(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value:value};};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var IndexedObject=__w_pdfjs_require__(17);var requireObjectCoercible=__w_pdfjs_require__(20);module.exports=function(it){return IndexedObject(requireObjectCoercible(it));};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(18);var fails=__w_pdfjs_require__(11);var classof=__w_pdfjs_require__(19);var $Object=Object;var split=uncurryThis(''.split);module.exports=fails(function(){return!$Object('z').propertyIsEnumerable(0);})?function(it){return classof(it)=='String'?split(it,''):$Object(it);}:$Object;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var NATIVE_BIND=__w_pdfjs_require__(13);var FunctionPrototype=Function.prototype;var bind=FunctionPrototype.bind;var call=FunctionPrototype.call;var uncurryThis=NATIVE_BIND&&bind.bind(call,call);module.exports=NATIVE_BIND?function(fn){return fn&&uncurryThis(fn);}:function(fn){return fn&&function(){return call.apply(fn,arguments);};};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(18);var toString=uncurryThis({}.toString);var stringSlice=uncurryThis(''.slice);module.exports=function(it){return stringSlice(toString(it),8,-1);};}),((module)=>{var $TypeError=TypeError;module.exports=function(it){if(it==undefined)
throw $TypeError("Can't call method on "+it);return it;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toPrimitive=__w_pdfjs_require__(22);var isSymbol=__w_pdfjs_require__(25);module.exports=function(argument){var key=toPrimitive(argument,'string');return isSymbol(key)?key:key+'';};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var call=__w_pdfjs_require__(12);var isObject=__w_pdfjs_require__(23);var isSymbol=__w_pdfjs_require__(25);var getMethod=__w_pdfjs_require__(32);var ordinaryToPrimitive=__w_pdfjs_require__(35);var wellKnownSymbol=__w_pdfjs_require__(36);var $TypeError=TypeError;var TO_PRIMITIVE=wellKnownSymbol('toPrimitive');module.exports=function(input,pref){if(!isObject(input)||isSymbol(input))
return input;var exoticToPrim=getMethod(input,TO_PRIMITIVE);var result;if(exoticToPrim){if(pref===undefined)
pref='default';result=call(exoticToPrim,input,pref);if(!isObject(result)||isSymbol(result))
return result;throw $TypeError("Can't convert object to primitive value");}
if(pref===undefined)
pref='number';return ordinaryToPrimitive(input,pref);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isCallable=__w_pdfjs_require__(24);module.exports=function(it){return typeof it=='object'?it!==null:isCallable(it);};}),((module)=>{module.exports=function(argument){return typeof argument=='function';};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var getBuiltIn=__w_pdfjs_require__(26);var isCallable=__w_pdfjs_require__(24);var isPrototypeOf=__w_pdfjs_require__(27);var USE_SYMBOL_AS_UID=__w_pdfjs_require__(28);var $Object=Object;module.exports=USE_SYMBOL_AS_UID?function(it){return typeof it=='symbol';}:function(it){var $Symbol=getBuiltIn('Symbol');return isCallable($Symbol)&&isPrototypeOf($Symbol.prototype,$Object(it));};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(8);var isCallable=__w_pdfjs_require__(24);var aFunction=function(argument){return isCallable(argument)?argument:undefined;};module.exports=function(namespace,method){return arguments.length<2?aFunction(global[namespace]):global[namespace]&&global[namespace][method];};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(18);module.exports=uncurryThis({}.isPrototypeOf);}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var NATIVE_SYMBOL=__w_pdfjs_require__(29);module.exports=NATIVE_SYMBOL&&!Symbol.sham&&typeof Symbol.iterator=='symbol';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var V8_VERSION=__w_pdfjs_require__(30);var fails=__w_pdfjs_require__(11);module.exports=!!Object.getOwnPropertySymbols&&!fails(function(){var symbol=Symbol();return!String(symbol)||!(Object(symbol)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41;});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(8);var userAgent=__w_pdfjs_require__(31);var process=global.process;var Deno=global.Deno;var versions=process&&process.versions||Deno&&Deno.version;var v8=versions&&versions.v8;var match,version;if(v8){match=v8.split('.');version=match[0]>0&&match[0]<4?1:+(match[0]+match[1]);}
if(!version&&userAgent){match=userAgent.match(/Edge\/(\d+)/);if(!match||match[1]>=74){match=userAgent.match(/Chrome\/(\d+)/);if(match)
version=+match[1];}}
module.exports=version;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var getBuiltIn=__w_pdfjs_require__(26);module.exports=getBuiltIn('navigator','userAgent')||'';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var aCallable=__w_pdfjs_require__(33);module.exports=function(V,P){var func=V[P];return func==null?undefined:aCallable(func);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isCallable=__w_pdfjs_require__(24);var tryToString=__w_pdfjs_require__(34);var $TypeError=TypeError;module.exports=function(argument){if(isCallable(argument))
return argument;throw $TypeError(tryToString(argument)+' is not a function');};}),((module)=>{var $String=String;module.exports=function(argument){try{return $String(argument);}catch(error){return'Object';}};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var call=__w_pdfjs_require__(12);var isCallable=__w_pdfjs_require__(24);var isObject=__w_pdfjs_require__(23);var $TypeError=TypeError;module.exports=function(input,pref){var fn,val;if(pref==='string'&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input)))
return val;if(isCallable(fn=input.valueOf)&&!isObject(val=call(fn,input)))
return val;if(pref!=='string'&&isCallable(fn=input.toString)&&!isObject(val=call(fn,input)))
return val;throw $TypeError("Can't convert object to primitive value");};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(8);var shared=__w_pdfjs_require__(37);var hasOwn=__w_pdfjs_require__(41);var uid=__w_pdfjs_require__(43);var NATIVE_SYMBOL=__w_pdfjs_require__(29);var USE_SYMBOL_AS_UID=__w_pdfjs_require__(28);var WellKnownSymbolsStore=shared('wks');var Symbol=global.Symbol;var symbolFor=Symbol&&Symbol['for'];var createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol:Symbol&&Symbol.withoutSetter||uid;module.exports=function(name){if(!hasOwn(WellKnownSymbolsStore,name)||!(NATIVE_SYMBOL||typeof WellKnownSymbolsStore[name]=='string')){var description='Symbol.'+name;if(NATIVE_SYMBOL&&hasOwn(Symbol,name)){WellKnownSymbolsStore[name]=Symbol[name];}else if(USE_SYMBOL_AS_UID&&symbolFor){WellKnownSymbolsStore[name]=symbolFor(description);}else{WellKnownSymbolsStore[name]=createWellKnownSymbol(description);}}
return WellKnownSymbolsStore[name];};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var IS_PURE=__w_pdfjs_require__(38);var store=__w_pdfjs_require__(39);(module.exports=function(key,value){return store[key]||(store[key]=value!==undefined?value:{});})('versions',[]).push({version:'3.24.1',mode:IS_PURE?'pure':'global',copyright:'© 2014-2022 Denis Pushkarev (zloirock.ru)',license:'https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE',source:'https://github.com/zloirock/core-js'});}),((module)=>{module.exports=false;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(8);var defineGlobalProperty=__w_pdfjs_require__(40);var SHARED='__core-js_shared__';var store=global[SHARED]||defineGlobalProperty(SHARED,{});module.exports=store;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(8);var defineProperty=Object.defineProperty;module.exports=function(key,value){try{defineProperty(global,key,{value:value,configurable:true,writable:true});}catch(error){global[key]=value;}
return value;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(18);var toObject=__w_pdfjs_require__(42);var hasOwnProperty=uncurryThis({}.hasOwnProperty);module.exports=Object.hasOwn||function hasOwn(it,key){return hasOwnProperty(toObject(it),key);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var requireObjectCoercible=__w_pdfjs_require__(20);var $Object=Object;module.exports=function(argument){return $Object(requireObjectCoercible(argument));};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(18);var id=0;var postfix=Math.random();var toString=uncurryThis(1.0.toString);module.exports=function(key){return'Symbol('+(key===undefined?'':key)+')_'+toString(++id+postfix,36);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(10);var fails=__w_pdfjs_require__(11);var createElement=__w_pdfjs_require__(45);module.exports=!DESCRIPTORS&&!fails(function(){return Object.defineProperty(createElement('div'),'a',{get:function(){return 7;}}).a!=7;});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(8);var isObject=__w_pdfjs_require__(23);var document=global.document;var EXISTS=isObject(document)&&isObject(document.createElement);module.exports=function(it){return EXISTS?document.createElement(it):{};};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(10);var definePropertyModule=__w_pdfjs_require__(47);var createPropertyDescriptor=__w_pdfjs_require__(15);module.exports=DESCRIPTORS?function(object,key,value){return definePropertyModule.f(object,key,createPropertyDescriptor(1,value));}:function(object,key,value){object[key]=value;return object;};}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(10);var IE8_DOM_DEFINE=__w_pdfjs_require__(44);var V8_PROTOTYPE_DEFINE_BUG=__w_pdfjs_require__(48);var anObject=__w_pdfjs_require__(49);var toPropertyKey=__w_pdfjs_require__(21);var $TypeError=TypeError;var $defineProperty=Object.defineProperty;var $getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;var ENUMERABLE='enumerable';var CONFIGURABLE='configurable';var WRITABLE='writable';exports.f=DESCRIPTORS?V8_PROTOTYPE_DEFINE_BUG?function defineProperty(O,P,Attributes){anObject(O);P=toPropertyKey(P);anObject(Attributes);if(typeof O==='function'&&P==='prototype'&&'value'in Attributes&&WRITABLE in Attributes&&!Attributes[WRITABLE]){var current=$getOwnPropertyDescriptor(O,P);if(current&&current[WRITABLE]){O[P]=Attributes.value;Attributes={configurable:CONFIGURABLE in Attributes?Attributes[CONFIGURABLE]:current[CONFIGURABLE],enumerable:ENUMERABLE in Attributes?Attributes[ENUMERABLE]:current[ENUMERABLE],writable:false};}}
return $defineProperty(O,P,Attributes);}:$defineProperty:function defineProperty(O,P,Attributes){anObject(O);P=toPropertyKey(P);anObject(Attributes);if(IE8_DOM_DEFINE)
try{return $defineProperty(O,P,Attributes);}catch(error){}
if('get'in Attributes||'set'in Attributes)
throw $TypeError('Accessors not supported');if('value'in Attributes)
O[P]=Attributes.value;return O;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(10);var fails=__w_pdfjs_require__(11);module.exports=DESCRIPTORS&&fails(function(){return Object.defineProperty(function(){},'prototype',{value:42,writable:false}).prototype!=42;});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isObject=__w_pdfjs_require__(23);var $String=String;var $TypeError=TypeError;module.exports=function(argument){if(isObject(argument))
return argument;throw $TypeError($String(argument)+' is not an object');};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isCallable=__w_pdfjs_require__(24);var definePropertyModule=__w_pdfjs_require__(47);var makeBuiltIn=__w_pdfjs_require__(51);var defineGlobalProperty=__w_pdfjs_require__(40);module.exports=function(O,key,value,options){if(!options)
options={};var simple=options.enumerable;var name=options.name!==undefined?options.name:key;if(isCallable(value))
makeBuiltIn(value,name,options);if(options.global){if(simple)
O[key]=value;else
defineGlobalProperty(key,value);}else{try{if(!options.unsafe)
delete O[key];else if(O[key])
simple=true;}catch(error){}
if(simple)
O[key]=value;else
definePropertyModule.f(O,key,{value:value,enumerable:false,configurable:!options.nonConfigurable,writable:!options.nonWritable});}
return O;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(11);var isCallable=__w_pdfjs_require__(24);var hasOwn=__w_pdfjs_require__(41);var DESCRIPTORS=__w_pdfjs_require__(10);var CONFIGURABLE_FUNCTION_NAME=(__w_pdfjs_require__(52).CONFIGURABLE);var inspectSource=__w_pdfjs_require__(53);var InternalStateModule=__w_pdfjs_require__(54);var enforceInternalState=InternalStateModule.enforce;var getInternalState=InternalStateModule.get;var defineProperty=Object.defineProperty;var CONFIGURABLE_LENGTH=DESCRIPTORS&&!fails(function(){return defineProperty(function(){},'length',{value:8}).length!==8;});var TEMPLATE=String(String).split('String');var makeBuiltIn=module.exports=function(value,name,options){if(String(name).slice(0,7)==='Symbol('){name='['+String(name).replace(/^Symbol\(([^)]*)\)/,'$1')+']';}
if(options&&options.getter)
name='get '+name;if(options&&options.setter)
name='set '+name;if(!hasOwn(value,'name')||CONFIGURABLE_FUNCTION_NAME&&value.name!==name){if(DESCRIPTORS)
defineProperty(value,'name',{value:name,configurable:true});else
value.name=name;}
if(CONFIGURABLE_LENGTH&&options&&hasOwn(options,'arity')&&value.length!==options.arity){defineProperty(value,'length',{value:options.arity});}
try{if(options&&hasOwn(options,'constructor')&&options.constructor){if(DESCRIPTORS)
defineProperty(value,'prototype',{writable:false});}else if(value.prototype)
value.prototype=undefined;}catch(error){}
var state=enforceInternalState(value);if(!hasOwn(state,'source')){state.source=TEMPLATE.join(typeof name=='string'?name:'');}
return value;};Function.prototype.toString=makeBuiltIn(function toString(){return isCallable(this)&&getInternalState(this).source||inspectSource(this);},'toString');}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(10);var hasOwn=__w_pdfjs_require__(41);var FunctionPrototype=Function.prototype;var getDescriptor=DESCRIPTORS&&Object.getOwnPropertyDescriptor;var EXISTS=hasOwn(FunctionPrototype,'name');var PROPER=EXISTS&&function something(){}.name==='something';var CONFIGURABLE=EXISTS&&(!DESCRIPTORS||DESCRIPTORS&&getDescriptor(FunctionPrototype,'name').configurable);module.exports={EXISTS:EXISTS,PROPER:PROPER,CONFIGURABLE:CONFIGURABLE};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(18);var isCallable=__w_pdfjs_require__(24);var store=__w_pdfjs_require__(39);var functionToString=uncurryThis(Function.toString);if(!isCallable(store.inspectSource)){store.inspectSource=function(it){return functionToString(it);};}
module.exports=store.inspectSource;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var NATIVE_WEAK_MAP=__w_pdfjs_require__(55);var global=__w_pdfjs_require__(8);var uncurryThis=__w_pdfjs_require__(18);var isObject=__w_pdfjs_require__(23);var createNonEnumerableProperty=__w_pdfjs_require__(46);var hasOwn=__w_pdfjs_require__(41);var shared=__w_pdfjs_require__(39);var sharedKey=__w_pdfjs_require__(56);var hiddenKeys=__w_pdfjs_require__(57);var OBJECT_ALREADY_INITIALIZED='Object already initialized';var TypeError=global.TypeError;var WeakMap=global.WeakMap;var set,get,has;var enforce=function(it){return has(it)?get(it):set(it,{});};var getterFor=function(TYPE){return function(it){var state;if(!isObject(it)||(state=get(it)).type!==TYPE){throw TypeError('Incompatible receiver, '+TYPE+' required');}
return state;};};if(NATIVE_WEAK_MAP||shared.state){var store=shared.state||(shared.state=new WeakMap());var wmget=uncurryThis(store.get);var wmhas=uncurryThis(store.has);var wmset=uncurryThis(store.set);set=function(it,metadata){if(wmhas(store,it))
throw new TypeError(OBJECT_ALREADY_INITIALIZED);metadata.facade=it;wmset(store,it,metadata);return metadata;};get=function(it){return wmget(store,it)||{};};has=function(it){return wmhas(store,it);};}else{var STATE=sharedKey('state');hiddenKeys[STATE]=true;set=function(it,metadata){if(hasOwn(it,STATE))
throw new TypeError(OBJECT_ALREADY_INITIALIZED);metadata.facade=it;createNonEnumerableProperty(it,STATE,metadata);return metadata;};get=function(it){return hasOwn(it,STATE)?it[STATE]:{};};has=function(it){return hasOwn(it,STATE);};}
module.exports={set:set,get:get,has:has,enforce:enforce,getterFor:getterFor};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(8);var isCallable=__w_pdfjs_require__(24);var inspectSource=__w_pdfjs_require__(53);var WeakMap=global.WeakMap;module.exports=isCallable(WeakMap)&&/native code/.test(inspectSource(WeakMap));}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var shared=__w_pdfjs_require__(37);var uid=__w_pdfjs_require__(43);var keys=shared('keys');module.exports=function(key){return keys[key]||(keys[key]=uid(key));};}),((module)=>{module.exports={};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var hasOwn=__w_pdfjs_require__(41);var ownKeys=__w_pdfjs_require__(59);var getOwnPropertyDescriptorModule=__w_pdfjs_require__(9);var definePropertyModule=__w_pdfjs_require__(47);module.exports=function(target,source,exceptions){var keys=ownKeys(source);var defineProperty=definePropertyModule.f;var getOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f;for(var i=0;i<keys.length;i++){var key=keys[i];if(!hasOwn(target,key)&&!(exceptions&&hasOwn(exceptions,key))){defineProperty(target,key,getOwnPropertyDescriptor(source,key));}}};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var getBuiltIn=__w_pdfjs_require__(26);var uncurryThis=__w_pdfjs_require__(18);var getOwnPropertyNamesModule=__w_pdfjs_require__(60);var getOwnPropertySymbolsModule=__w_pdfjs_require__(69);var anObject=__w_pdfjs_require__(49);var concat=uncurryThis([].concat);module.exports=getBuiltIn('Reflect','ownKeys')||function ownKeys(it){var keys=getOwnPropertyNamesModule.f(anObject(it));var getOwnPropertySymbols=getOwnPropertySymbolsModule.f;return getOwnPropertySymbols?concat(keys,getOwnPropertySymbols(it)):keys;};}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{var internalObjectKeys=__w_pdfjs_require__(61);var enumBugKeys=__w_pdfjs_require__(68);var hiddenKeys=enumBugKeys.concat('length','prototype');exports.f=Object.getOwnPropertyNames||function getOwnPropertyNames(O){return internalObjectKeys(O,hiddenKeys);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(18);var hasOwn=__w_pdfjs_require__(41);var toIndexedObject=__w_pdfjs_require__(16);var indexOf=(__w_pdfjs_require__(62).indexOf);var hiddenKeys=__w_pdfjs_require__(57);var push=uncurryThis([].push);module.exports=function(object,names){var O=toIndexedObject(object);var i=0;var result=[];var key;for(key in O)
!hasOwn(hiddenKeys,key)&&hasOwn(O,key)&&push(result,key);while(names.length>i)
if(hasOwn(O,key=names[i++])){~indexOf(result,key)||push(result,key);}
return result;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toIndexedObject=__w_pdfjs_require__(16);var toAbsoluteIndex=__w_pdfjs_require__(63);var lengthOfArrayLike=__w_pdfjs_require__(66);var createMethod=function(IS_INCLUDES){return function($this,el,fromIndex){var O=toIndexedObject($this);var length=lengthOfArrayLike(O);var index=toAbsoluteIndex(fromIndex,length);var value;if(IS_INCLUDES&&el!=el)
while(length>index){value=O[index++];if(value!=value)
return true;}
else
for(;length>index;index++){if((IS_INCLUDES||index in O)&&O[index]===el)
return IS_INCLUDES||index||0;}
return!IS_INCLUDES&&-1;};};module.exports={includes:createMethod(true),indexOf:createMethod(false)};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toIntegerOrInfinity=__w_pdfjs_require__(64);var max=Math.max;var min=Math.min;module.exports=function(index,length){var integer=toIntegerOrInfinity(index);return integer<0?max(integer+length,0):min(integer,length);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var trunc=__w_pdfjs_require__(65);module.exports=function(argument){var number=+argument;return number!==number||number===0?0:trunc(number);};}),((module)=>{var ceil=Math.ceil;var floor=Math.floor;module.exports=Math.trunc||function trunc(x){var n=+x;return(n>0?floor:ceil)(n);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toLength=__w_pdfjs_require__(67);module.exports=function(obj){return toLength(obj.length);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toIntegerOrInfinity=__w_pdfjs_require__(64);var min=Math.min;module.exports=function(argument){return argument>0?min(toIntegerOrInfinity(argument),0x1FFFFFFFFFFFFF):0;};}),((module)=>{module.exports=['constructor','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','toLocaleString','toString','valueOf'];}),((__unused_webpack_module,exports)=>{exports.f=Object.getOwnPropertySymbols;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(11);var isCallable=__w_pdfjs_require__(24);var replacement=/#|\.prototype\./;var isForced=function(feature,detection){var value=data[normalize(feature)];return value==POLYFILL?true:value==NATIVE?false:isCallable(detection)?fails(detection):!!detection;};var normalize=isForced.normalize=function(string){return String(string).replace(replacement,'.').toLowerCase();};var data=isForced.data={};var NATIVE=isForced.NATIVE='N';var POLYFILL=isForced.POLYFILL='P';module.exports=isForced;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var wellKnownSymbol=__w_pdfjs_require__(36);var create=__w_pdfjs_require__(72);var defineProperty=(__w_pdfjs_require__(47).f);var UNSCOPABLES=wellKnownSymbol('unscopables');var ArrayPrototype=Array.prototype;if(ArrayPrototype[UNSCOPABLES]==undefined){defineProperty(ArrayPrototype,UNSCOPABLES,{configurable:true,value:create(null)});}
module.exports=function(key){ArrayPrototype[UNSCOPABLES][key]=true;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var anObject=__w_pdfjs_require__(49);var definePropertiesModule=__w_pdfjs_require__(73);var enumBugKeys=__w_pdfjs_require__(68);var hiddenKeys=__w_pdfjs_require__(57);var html=__w_pdfjs_require__(75);var documentCreateElement=__w_pdfjs_require__(45);var sharedKey=__w_pdfjs_require__(56);var GT='>';var LT='<';var PROTOTYPE='prototype';var SCRIPT='script';var IE_PROTO=sharedKey('IE_PROTO');var EmptyConstructor=function(){};var scriptTag=function(content){return LT+SCRIPT+GT+content+LT+'/'+SCRIPT+GT;};var NullProtoObjectViaActiveX=function(activeXDocument){activeXDocument.write(scriptTag(''));activeXDocument.close();var temp=activeXDocument.parentWindow.Object;activeXDocument=null;return temp;};var NullProtoObjectViaIFrame=function(){var iframe=documentCreateElement('iframe');var JS='java'+SCRIPT+':';var iframeDocument;iframe.style.display='none';html.appendChild(iframe);iframe.src=String(JS);iframeDocument=iframe.contentWindow.document;iframeDocument.open();iframeDocument.write(scriptTag('document.F=Object'));iframeDocument.close();return iframeDocument.F;};var activeXDocument;var NullProtoObject=function(){try{activeXDocument=new ActiveXObject('htmlfile');}catch(error){}
NullProtoObject=typeof document!='undefined'?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);var length=enumBugKeys.length;while(length--)
delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];return NullProtoObject();};hiddenKeys[IE_PROTO]=true;module.exports=Object.create||function create(O,Properties){var result;if(O!==null){EmptyConstructor[PROTOTYPE]=anObject(O);result=new EmptyConstructor();EmptyConstructor[PROTOTYPE]=null;result[IE_PROTO]=O;}else
result=NullProtoObject();return Properties===undefined?result:definePropertiesModule.f(result,Properties);};}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{var DESCRIPTORS=__w_pdfjs_require__(10);var V8_PROTOTYPE_DEFINE_BUG=__w_pdfjs_require__(48);var definePropertyModule=__w_pdfjs_require__(47);var anObject=__w_pdfjs_require__(49);var toIndexedObject=__w_pdfjs_require__(16);var objectKeys=__w_pdfjs_require__(74);exports.f=DESCRIPTORS&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function defineProperties(O,Properties){anObject(O);var props=toIndexedObject(Properties);var keys=objectKeys(Properties);var length=keys.length;var index=0;var key;while(length>index)
definePropertyModule.f(O,key=keys[index++],props[key]);return O;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var internalObjectKeys=__w_pdfjs_require__(61);var enumBugKeys=__w_pdfjs_require__(68);module.exports=Object.keys||function keys(O){return internalObjectKeys(O,enumBugKeys);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var getBuiltIn=__w_pdfjs_require__(26);module.exports=getBuiltIn('document','documentElement');}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(8);var uncurryThis=__w_pdfjs_require__(18);module.exports=function(CONSTRUCTOR,METHOD){return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);};}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{__w_pdfjs_require__(78);}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var ArrayBufferViewCore=__w_pdfjs_require__(79);var lengthOfArrayLike=__w_pdfjs_require__(66);var toIntegerOrInfinity=__w_pdfjs_require__(64);var aTypedArray=ArrayBufferViewCore.aTypedArray;var exportTypedArrayMethod=ArrayBufferViewCore.exportTypedArrayMethod;exportTypedArrayMethod('at',function at(index){var O=aTypedArray(this);var len=lengthOfArrayLike(O);var relativeIndex=toIntegerOrInfinity(index);var k=relativeIndex>=0?relativeIndex:len+relativeIndex;return k<0||k>=len?undefined:O[k];});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var NATIVE_ARRAY_BUFFER=__w_pdfjs_require__(80);var DESCRIPTORS=__w_pdfjs_require__(10);var global=__w_pdfjs_require__(8);var isCallable=__w_pdfjs_require__(24);var isObject=__w_pdfjs_require__(23);var hasOwn=__w_pdfjs_require__(41);var classof=__w_pdfjs_require__(81);var tryToString=__w_pdfjs_require__(34);var createNonEnumerableProperty=__w_pdfjs_require__(46);var defineBuiltIn=__w_pdfjs_require__(50);var defineProperty=(__w_pdfjs_require__(47).f);var isPrototypeOf=__w_pdfjs_require__(27);var getPrototypeOf=__w_pdfjs_require__(83);var setPrototypeOf=__w_pdfjs_require__(85);var wellKnownSymbol=__w_pdfjs_require__(36);var uid=__w_pdfjs_require__(43);var InternalStateModule=__w_pdfjs_require__(54);var enforceInternalState=InternalStateModule.enforce;var getInternalState=InternalStateModule.get;var Int8Array=global.Int8Array;var Int8ArrayPrototype=Int8Array&&Int8Array.prototype;var Uint8ClampedArray=global.Uint8ClampedArray;var Uint8ClampedArrayPrototype=Uint8ClampedArray&&Uint8ClampedArray.prototype;var TypedArray=Int8Array&&getPrototypeOf(Int8Array);var TypedArrayPrototype=Int8ArrayPrototype&&getPrototypeOf(Int8ArrayPrototype);var ObjectPrototype=Object.prototype;var TypeError=global.TypeError;var TO_STRING_TAG=wellKnownSymbol('toStringTag');var TYPED_ARRAY_TAG=uid('TYPED_ARRAY_TAG');var TYPED_ARRAY_CONSTRUCTOR='TypedArrayConstructor';var NATIVE_ARRAY_BUFFER_VIEWS=NATIVE_ARRAY_BUFFER&&!!setPrototypeOf&&classof(global.opera)!=='Opera';var TYPED_ARRAY_TAG_REQUIRED=false;var NAME,Constructor,Prototype;var TypedArrayConstructorsList={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8};var BigIntArrayConstructorsList={BigInt64Array:8,BigUint64Array:8};var isView=function isView(it){if(!isObject(it))
return false;var klass=classof(it);return klass==='DataView'||hasOwn(TypedArrayConstructorsList,klass)||hasOwn(BigIntArrayConstructorsList,klass);};var getTypedArrayConstructor=function(it){var proto=getPrototypeOf(it);if(!isObject(proto))
return;var state=getInternalState(proto);return state&&hasOwn(state,TYPED_ARRAY_CONSTRUCTOR)?state[TYPED_ARRAY_CONSTRUCTOR]:getTypedArrayConstructor(proto);};var isTypedArray=function(it){if(!isObject(it))
return false;var klass=classof(it);return hasOwn(TypedArrayConstructorsList,klass)||hasOwn(BigIntArrayConstructorsList,klass);};var aTypedArray=function(it){if(isTypedArray(it))
return it;throw TypeError('Target is not a typed array');};var aTypedArrayConstructor=function(C){if(isCallable(C)&&(!setPrototypeOf||isPrototypeOf(TypedArray,C)))
return C;throw TypeError(tryToString(C)+' is not a typed array constructor');};var exportTypedArrayMethod=function(KEY,property,forced,options){if(!DESCRIPTORS)
return;if(forced)
for(var ARRAY in TypedArrayConstructorsList){var TypedArrayConstructor=global[ARRAY];if(TypedArrayConstructor&&hasOwn(TypedArrayConstructor.prototype,KEY))
try{delete TypedArrayConstructor.prototype[KEY];}catch(error){try{TypedArrayConstructor.prototype[KEY]=property;}catch(error2){}}}
if(!TypedArrayPrototype[KEY]||forced){defineBuiltIn(TypedArrayPrototype,KEY,forced?property:NATIVE_ARRAY_BUFFER_VIEWS&&Int8ArrayPrototype[KEY]||property,options);}};var exportTypedArrayStaticMethod=function(KEY,property,forced){var ARRAY,TypedArrayConstructor;if(!DESCRIPTORS)
return;if(setPrototypeOf){if(forced)
for(ARRAY in TypedArrayConstructorsList){TypedArrayConstructor=global[ARRAY];if(TypedArrayConstructor&&hasOwn(TypedArrayConstructor,KEY))
try{delete TypedArrayConstructor[KEY];}catch(error){}}
if(!TypedArray[KEY]||forced){try{return defineBuiltIn(TypedArray,KEY,forced?property:NATIVE_ARRAY_BUFFER_VIEWS&&TypedArray[KEY]||property);}catch(error){}}else
return;}
for(ARRAY in TypedArrayConstructorsList){TypedArrayConstructor=global[ARRAY];if(TypedArrayConstructor&&(!TypedArrayConstructor[KEY]||forced)){defineBuiltIn(TypedArrayConstructor,KEY,property);}}};for(NAME in TypedArrayConstructorsList){Constructor=global[NAME];Prototype=Constructor&&Constructor.prototype;if(Prototype)
enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR]=Constructor;else
NATIVE_ARRAY_BUFFER_VIEWS=false;}
for(NAME in BigIntArrayConstructorsList){Constructor=global[NAME];Prototype=Constructor&&Constructor.prototype;if(Prototype)
enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR]=Constructor;}
if(!NATIVE_ARRAY_BUFFER_VIEWS||!isCallable(TypedArray)||TypedArray===Function.prototype){TypedArray=function TypedArray(){throw TypeError('Incorrect invocation');};if(NATIVE_ARRAY_BUFFER_VIEWS)
for(NAME in TypedArrayConstructorsList){if(global[NAME])
setPrototypeOf(global[NAME],TypedArray);}}
if(!NATIVE_ARRAY_BUFFER_VIEWS||!TypedArrayPrototype||TypedArrayPrototype===ObjectPrototype){TypedArrayPrototype=TypedArray.prototype;if(NATIVE_ARRAY_BUFFER_VIEWS)
for(NAME in TypedArrayConstructorsList){if(global[NAME])
setPrototypeOf(global[NAME].prototype,TypedArrayPrototype);}}
if(NATIVE_ARRAY_BUFFER_VIEWS&&getPrototypeOf(Uint8ClampedArrayPrototype)!==TypedArrayPrototype){setPrototypeOf(Uint8ClampedArrayPrototype,TypedArrayPrototype);}
if(DESCRIPTORS&&!hasOwn(TypedArrayPrototype,TO_STRING_TAG)){TYPED_ARRAY_TAG_REQUIRED=true;defineProperty(TypedArrayPrototype,TO_STRING_TAG,{get:function(){return isObject(this)?this[TYPED_ARRAY_TAG]:undefined;}});for(NAME in TypedArrayConstructorsList)
if(global[NAME]){createNonEnumerableProperty(global[NAME],TYPED_ARRAY_TAG,NAME);}}
module.exports={NATIVE_ARRAY_BUFFER_VIEWS:NATIVE_ARRAY_BUFFER_VIEWS,TYPED_ARRAY_TAG:TYPED_ARRAY_TAG_REQUIRED&&TYPED_ARRAY_TAG,aTypedArray:aTypedArray,aTypedArrayConstructor:aTypedArrayConstructor,exportTypedArrayMethod:exportTypedArrayMethod,exportTypedArrayStaticMethod:exportTypedArrayStaticMethod,getTypedArrayConstructor:getTypedArrayConstructor,isView:isView,isTypedArray:isTypedArray,TypedArray:TypedArray,TypedArrayPrototype:TypedArrayPrototype};}),((module)=>{module.exports=typeof ArrayBuffer!='undefined'&&typeof DataView!='undefined';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var TO_STRING_TAG_SUPPORT=__w_pdfjs_require__(82);var isCallable=__w_pdfjs_require__(24);var classofRaw=__w_pdfjs_require__(19);var wellKnownSymbol=__w_pdfjs_require__(36);var TO_STRING_TAG=wellKnownSymbol('toStringTag');var $Object=Object;var CORRECT_ARGUMENTS=classofRaw((function(){return arguments;}()))=='Arguments';var tryGet=function(it,key){try{return it[key];}catch(error){}};module.exports=TO_STRING_TAG_SUPPORT?classofRaw:function(it){var O,tag,result;return it===undefined?'Undefined':it===null?'Null':typeof(tag=tryGet(O=$Object(it),TO_STRING_TAG))=='string'?tag:CORRECT_ARGUMENTS?classofRaw(O):(result=classofRaw(O))=='Object'&&isCallable(O.callee)?'Arguments':result;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var wellKnownSymbol=__w_pdfjs_require__(36);var TO_STRING_TAG=wellKnownSymbol('toStringTag');var test={};test[TO_STRING_TAG]='z';module.exports=String(test)==='[object z]';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var hasOwn=__w_pdfjs_require__(41);var isCallable=__w_pdfjs_require__(24);var toObject=__w_pdfjs_require__(42);var sharedKey=__w_pdfjs_require__(56);var CORRECT_PROTOTYPE_GETTER=__w_pdfjs_require__(84);var IE_PROTO=sharedKey('IE_PROTO');var $Object=Object;var ObjectPrototype=$Object.prototype;module.exports=CORRECT_PROTOTYPE_GETTER?$Object.getPrototypeOf:function(O){var object=toObject(O);if(hasOwn(object,IE_PROTO))
return object[IE_PROTO];var constructor=object.constructor;if(isCallable(constructor)&&object instanceof constructor){return constructor.prototype;}
return object instanceof $Object?ObjectPrototype:null;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(11);module.exports=!fails(function(){function F(){}
F.prototype.constructor=null;return Object.getPrototypeOf(new F())!==F.prototype;});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(18);var anObject=__w_pdfjs_require__(49);var aPossiblePrototype=__w_pdfjs_require__(86);module.exports=Object.setPrototypeOf||('__proto__'in{}?(function(){var CORRECT_SETTER=false;var test={};var setter;try{setter=uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype,'__proto__').set);setter(test,[]);CORRECT_SETTER=test instanceof Array;}catch(error){}
return function setPrototypeOf(O,proto){anObject(O);aPossiblePrototype(proto);if(CORRECT_SETTER)
setter(O,proto);else
O.__proto__=proto;return O;};}()):undefined);}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isCallable=__w_pdfjs_require__(24);var $String=String;var $TypeError=TypeError;module.exports=function(argument){if(typeof argument=='object'||isCallable(argument))
return argument;throw $TypeError("Can't set "+$String(argument)+' as a prototype');};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{__w_pdfjs_require__(88);__w_pdfjs_require__(94);__w_pdfjs_require__(96);__w_pdfjs_require__(118);__w_pdfjs_require__(120);var path=__w_pdfjs_require__(129);module.exports=path.structuredClone;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var toIndexedObject=__w_pdfjs_require__(16);var addToUnscopables=__w_pdfjs_require__(71);var Iterators=__w_pdfjs_require__(89);var InternalStateModule=__w_pdfjs_require__(54);var defineProperty=(__w_pdfjs_require__(47).f);var defineIterator=__w_pdfjs_require__(90);var IS_PURE=__w_pdfjs_require__(38);var DESCRIPTORS=__w_pdfjs_require__(10);var ARRAY_ITERATOR='Array Iterator';var setInternalState=InternalStateModule.set;var getInternalState=InternalStateModule.getterFor(ARRAY_ITERATOR);module.exports=defineIterator(Array,'Array',function(iterated,kind){setInternalState(this,{type:ARRAY_ITERATOR,target:toIndexedObject(iterated),index:0,kind:kind});},function(){var state=getInternalState(this);var target=state.target;var kind=state.kind;var index=state.index++;if(!target||index>=target.length){state.target=undefined;return{value:undefined,done:true};}
if(kind=='keys')
return{value:index,done:false};if(kind=='values')
return{value:target[index],done:false};return{value:[index,target[index]],done:false};},'values');var values=Iterators.Arguments=Iterators.Array;addToUnscopables('keys');addToUnscopables('values');addToUnscopables('entries');if(!IS_PURE&&DESCRIPTORS&&values.name!=='values')
try{defineProperty(values,'name',{value:'values'});}catch(error){}}),((module)=>{module.exports={};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var $=__w_pdfjs_require__(7);var call=__w_pdfjs_require__(12);var IS_PURE=__w_pdfjs_require__(38);var FunctionName=__w_pdfjs_require__(52);var isCallable=__w_pdfjs_require__(24);var createIteratorConstructor=__w_pdfjs_require__(91);var getPrototypeOf=__w_pdfjs_require__(83);var setPrototypeOf=__w_pdfjs_require__(85);var setToStringTag=__w_pdfjs_require__(93);var createNonEnumerableProperty=__w_pdfjs_require__(46);var defineBuiltIn=__w_pdfjs_require__(50);var wellKnownSymbol=__w_pdfjs_require__(36);var Iterators=__w_pdfjs_require__(89);var IteratorsCore=__w_pdfjs_require__(92);var PROPER_FUNCTION_NAME=FunctionName.PROPER;var CONFIGURABLE_FUNCTION_NAME=FunctionName.CONFIGURABLE;var IteratorPrototype=IteratorsCore.IteratorPrototype;var BUGGY_SAFARI_ITERATORS=IteratorsCore.BUGGY_SAFARI_ITERATORS;var ITERATOR=wellKnownSymbol('iterator');var KEYS='keys';var VALUES='values';var ENTRIES='entries';var returnThis=function(){return this;};module.exports=function(Iterable,NAME,IteratorConstructor,next,DEFAULT,IS_SET,FORCED){createIteratorConstructor(IteratorConstructor,NAME,next);var getIterationMethod=function(KIND){if(KIND===DEFAULT&&defaultIterator)
return defaultIterator;if(!BUGGY_SAFARI_ITERATORS&&KIND in IterablePrototype)
return IterablePrototype[KIND];switch(KIND){case KEYS:return function keys(){return new IteratorConstructor(this,KIND);};case VALUES:return function values(){return new IteratorConstructor(this,KIND);};case ENTRIES:return function entries(){return new IteratorConstructor(this,KIND);};}
return function(){return new IteratorConstructor(this);};};var TO_STRING_TAG=NAME+' Iterator';var INCORRECT_VALUES_NAME=false;var IterablePrototype=Iterable.prototype;var nativeIterator=IterablePrototype[ITERATOR]||IterablePrototype['@@iterator']||DEFAULT&&IterablePrototype[DEFAULT];var defaultIterator=!BUGGY_SAFARI_ITERATORS&&nativeIterator||getIterationMethod(DEFAULT);var anyNativeIterator=NAME=='Array'?IterablePrototype.entries||nativeIterator:nativeIterator;var CurrentIteratorPrototype,methods,KEY;if(anyNativeIterator){CurrentIteratorPrototype=getPrototypeOf(anyNativeIterator.call(new Iterable()));if(CurrentIteratorPrototype!==Object.prototype&&CurrentIteratorPrototype.next){if(!IS_PURE&&getPrototypeOf(CurrentIteratorPrototype)!==IteratorPrototype){if(setPrototypeOf){setPrototypeOf(CurrentIteratorPrototype,IteratorPrototype);}else if(!isCallable(CurrentIteratorPrototype[ITERATOR])){defineBuiltIn(CurrentIteratorPrototype,ITERATOR,returnThis);}}
setToStringTag(CurrentIteratorPrototype,TO_STRING_TAG,true,true);if(IS_PURE)
Iterators[TO_STRING_TAG]=returnThis;}}
if(PROPER_FUNCTION_NAME&&DEFAULT==VALUES&&nativeIterator&&nativeIterator.name!==VALUES){if(!IS_PURE&&CONFIGURABLE_FUNCTION_NAME){createNonEnumerableProperty(IterablePrototype,'name',VALUES);}else{INCORRECT_VALUES_NAME=true;defaultIterator=function values(){return call(nativeIterator,this);};}}
if(DEFAULT){methods={values:getIterationMethod(VALUES),keys:IS_SET?defaultIterator:getIterationMethod(KEYS),entries:getIterationMethod(ENTRIES)};if(FORCED)
for(KEY in methods){if(BUGGY_SAFARI_ITERATORS||INCORRECT_VALUES_NAME||!(KEY in IterablePrototype)){defineBuiltIn(IterablePrototype,KEY,methods[KEY]);}}
else
$({target:NAME,proto:true,forced:BUGGY_SAFARI_ITERATORS||INCORRECT_VALUES_NAME},methods);}
if((!IS_PURE||FORCED)&&IterablePrototype[ITERATOR]!==defaultIterator){defineBuiltIn(IterablePrototype,ITERATOR,defaultIterator,{name:DEFAULT});}
Iterators[NAME]=defaultIterator;return methods;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var IteratorPrototype=(__w_pdfjs_require__(92).IteratorPrototype);var create=__w_pdfjs_require__(72);var createPropertyDescriptor=__w_pdfjs_require__(15);var setToStringTag=__w_pdfjs_require__(93);var Iterators=__w_pdfjs_require__(89);var returnThis=function(){return this;};module.exports=function(IteratorConstructor,NAME,next,ENUMERABLE_NEXT){var TO_STRING_TAG=NAME+' Iterator';IteratorConstructor.prototype=create(IteratorPrototype,{next:createPropertyDescriptor(+!ENUMERABLE_NEXT,next)});setToStringTag(IteratorConstructor,TO_STRING_TAG,false,true);Iterators[TO_STRING_TAG]=returnThis;return IteratorConstructor;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var fails=__w_pdfjs_require__(11);var isCallable=__w_pdfjs_require__(24);var create=__w_pdfjs_require__(72);var getPrototypeOf=__w_pdfjs_require__(83);var defineBuiltIn=__w_pdfjs_require__(50);var wellKnownSymbol=__w_pdfjs_require__(36);var IS_PURE=__w_pdfjs_require__(38);var ITERATOR=wellKnownSymbol('iterator');var BUGGY_SAFARI_ITERATORS=false;var IteratorPrototype,PrototypeOfArrayIteratorPrototype,arrayIterator;if([].keys){arrayIterator=[].keys();if(!('next'in arrayIterator))
BUGGY_SAFARI_ITERATORS=true;else{PrototypeOfArrayIteratorPrototype=getPrototypeOf(getPrototypeOf(arrayIterator));if(PrototypeOfArrayIteratorPrototype!==Object.prototype)
IteratorPrototype=PrototypeOfArrayIteratorPrototype;}}
var NEW_ITERATOR_PROTOTYPE=IteratorPrototype==undefined||fails(function(){var test={};return IteratorPrototype[ITERATOR].call(test)!==test;});if(NEW_ITERATOR_PROTOTYPE)
IteratorPrototype={};else if(IS_PURE)
IteratorPrototype=create(IteratorPrototype);if(!isCallable(IteratorPrototype[ITERATOR])){defineBuiltIn(IteratorPrototype,ITERATOR,function(){return this;});}
module.exports={IteratorPrototype:IteratorPrototype,BUGGY_SAFARI_ITERATORS:BUGGY_SAFARI_ITERATORS};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var defineProperty=(__w_pdfjs_require__(47).f);var hasOwn=__w_pdfjs_require__(41);var wellKnownSymbol=__w_pdfjs_require__(36);var TO_STRING_TAG=wellKnownSymbol('toStringTag');module.exports=function(target,TAG,STATIC){if(target&&!STATIC)
target=target.prototype;if(target&&!hasOwn(target,TO_STRING_TAG)){defineProperty(target,TO_STRING_TAG,{configurable:true,value:TAG});}};}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{var TO_STRING_TAG_SUPPORT=__w_pdfjs_require__(82);var defineBuiltIn=__w_pdfjs_require__(50);var toString=__w_pdfjs_require__(95);if(!TO_STRING_TAG_SUPPORT){defineBuiltIn(Object.prototype,'toString',toString,{unsafe:true});}}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var TO_STRING_TAG_SUPPORT=__w_pdfjs_require__(82);var classof=__w_pdfjs_require__(81);module.exports=TO_STRING_TAG_SUPPORT?{}.toString:function toString(){return'[object '+classof(this)+']';};}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{__w_pdfjs_require__(97);}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var collection=__w_pdfjs_require__(98);var collectionStrong=__w_pdfjs_require__(115);collection('Map',function(init){return function Map(){return init(this,arguments.length?arguments[0]:undefined);};},collectionStrong);}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var $=__w_pdfjs_require__(7);var global=__w_pdfjs_require__(8);var uncurryThis=__w_pdfjs_require__(18);var isForced=__w_pdfjs_require__(70);var defineBuiltIn=__w_pdfjs_require__(50);var InternalMetadataModule=__w_pdfjs_require__(99);var iterate=__w_pdfjs_require__(106);var anInstance=__w_pdfjs_require__(112);var isCallable=__w_pdfjs_require__(24);var isObject=__w_pdfjs_require__(23);var fails=__w_pdfjs_require__(11);var checkCorrectnessOfIteration=__w_pdfjs_require__(113);var setToStringTag=__w_pdfjs_require__(93);var inheritIfRequired=__w_pdfjs_require__(114);module.exports=function(CONSTRUCTOR_NAME,wrapper,common){var IS_MAP=CONSTRUCTOR_NAME.indexOf('Map')!==-1;var IS_WEAK=CONSTRUCTOR_NAME.indexOf('Weak')!==-1;var ADDER=IS_MAP?'set':'add';var NativeConstructor=global[CONSTRUCTOR_NAME];var NativePrototype=NativeConstructor&&NativeConstructor.prototype;var Constructor=NativeConstructor;var exported={};var fixMethod=function(KEY){var uncurriedNativeMethod=uncurryThis(NativePrototype[KEY]);defineBuiltIn(NativePrototype,KEY,KEY=='add'?function add(value){uncurriedNativeMethod(this,value===0?0:value);return this;}:KEY=='delete'?function(key){return IS_WEAK&&!isObject(key)?false:uncurriedNativeMethod(this,key===0?0:key);}:KEY=='get'?function get(key){return IS_WEAK&&!isObject(key)?undefined:uncurriedNativeMethod(this,key===0?0:key);}:KEY=='has'?function has(key){return IS_WEAK&&!isObject(key)?false:uncurriedNativeMethod(this,key===0?0:key);}:function set(key,value){uncurriedNativeMethod(this,key===0?0:key,value);return this;});};var REPLACE=isForced(CONSTRUCTOR_NAME,!isCallable(NativeConstructor)||!(IS_WEAK||NativePrototype.forEach&&!fails(function(){new NativeConstructor().entries().next();})));if(REPLACE){Constructor=common.getConstructor(wrapper,CONSTRUCTOR_NAME,IS_MAP,ADDER);InternalMetadataModule.enable();}else if(isForced(CONSTRUCTOR_NAME,true)){var instance=new Constructor();var HASNT_CHAINING=instance[ADDER](IS_WEAK?{}:-0,1)!=instance;var THROWS_ON_PRIMITIVES=fails(function(){instance.has(1);});var ACCEPT_ITERABLES=checkCorrectnessOfIteration(function(iterable){new NativeConstructor(iterable);});var BUGGY_ZERO=!IS_WEAK&&fails(function(){var $instance=new NativeConstructor();var index=5;while(index--)
$instance[ADDER](index,index);return!$instance.has(-0);});if(!ACCEPT_ITERABLES){Constructor=wrapper(function(dummy,iterable){anInstance(dummy,NativePrototype);var that=inheritIfRequired(new NativeConstructor(),dummy,Constructor);if(iterable!=undefined)
iterate(iterable,that[ADDER],{that:that,AS_ENTRIES:IS_MAP});return that;});Constructor.prototype=NativePrototype;NativePrototype.constructor=Constructor;}
if(THROWS_ON_PRIMITIVES||BUGGY_ZERO){fixMethod('delete');fixMethod('has');IS_MAP&&fixMethod('get');}
if(BUGGY_ZERO||HASNT_CHAINING)
fixMethod(ADDER);if(IS_WEAK&&NativePrototype.clear)
delete NativePrototype.clear;}
exported[CONSTRUCTOR_NAME]=Constructor;$({global:true,constructor:true,forced:Constructor!=NativeConstructor},exported);setToStringTag(Constructor,CONSTRUCTOR_NAME);if(!IS_WEAK)
common.setStrong(Constructor,CONSTRUCTOR_NAME,IS_MAP);return Constructor;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var $=__w_pdfjs_require__(7);var uncurryThis=__w_pdfjs_require__(18);var hiddenKeys=__w_pdfjs_require__(57);var isObject=__w_pdfjs_require__(23);var hasOwn=__w_pdfjs_require__(41);var defineProperty=(__w_pdfjs_require__(47).f);var getOwnPropertyNamesModule=__w_pdfjs_require__(60);var getOwnPropertyNamesExternalModule=__w_pdfjs_require__(100);var isExtensible=__w_pdfjs_require__(103);var uid=__w_pdfjs_require__(43);var FREEZING=__w_pdfjs_require__(105);var REQUIRED=false;var METADATA=uid('meta');var id=0;var setMetadata=function(it){defineProperty(it,METADATA,{value:{objectID:'O'+id++,weakData:{}}});};var fastKey=function(it,create){if(!isObject(it))
return typeof it=='symbol'?it:(typeof it=='string'?'S':'P')+it;if(!hasOwn(it,METADATA)){if(!isExtensible(it))
return'F';if(!create)
return'E';setMetadata(it);}
return it[METADATA].objectID;};var getWeakData=function(it,create){if(!hasOwn(it,METADATA)){if(!isExtensible(it))
return true;if(!create)
return false;setMetadata(it);}
return it[METADATA].weakData;};var onFreeze=function(it){if(FREEZING&&REQUIRED&&isExtensible(it)&&!hasOwn(it,METADATA))
setMetadata(it);return it;};var enable=function(){meta.enable=function(){};REQUIRED=true;var getOwnPropertyNames=getOwnPropertyNamesModule.f;var splice=uncurryThis([].splice);var test={};test[METADATA]=1;if(getOwnPropertyNames(test).length){getOwnPropertyNamesModule.f=function(it){var result=getOwnPropertyNames(it);for(var i=0,length=result.length;i<length;i++){if(result[i]===METADATA){splice(result,i,1);break;}}
return result;};$({target:'Object',stat:true,forced:true},{getOwnPropertyNames:getOwnPropertyNamesExternalModule.f});}};var meta=module.exports={enable:enable,fastKey:fastKey,getWeakData:getWeakData,onFreeze:onFreeze};hiddenKeys[METADATA]=true;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var classof=__w_pdfjs_require__(19);var toIndexedObject=__w_pdfjs_require__(16);var $getOwnPropertyNames=(__w_pdfjs_require__(60).f);var arraySlice=__w_pdfjs_require__(101);var windowNames=typeof window=='object'&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];var getWindowNames=function(it){try{return $getOwnPropertyNames(it);}catch(error){return arraySlice(windowNames);}};module.exports.f=function getOwnPropertyNames(it){return windowNames&&classof(it)=='Window'?getWindowNames(it):$getOwnPropertyNames(toIndexedObject(it));};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var toAbsoluteIndex=__w_pdfjs_require__(63);var lengthOfArrayLike=__w_pdfjs_require__(66);var createProperty=__w_pdfjs_require__(102);var $Array=Array;var max=Math.max;module.exports=function(O,start,end){var length=lengthOfArrayLike(O);var k=toAbsoluteIndex(start,length);var fin=toAbsoluteIndex(end===undefined?length:end,length);var result=$Array(max(fin-k,0));for(var n=0;k<fin;k++,n++)
createProperty(result,n,O[k]);result.length=n;return result;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var toPropertyKey=__w_pdfjs_require__(21);var definePropertyModule=__w_pdfjs_require__(47);var createPropertyDescriptor=__w_pdfjs_require__(15);module.exports=function(object,key,value){var propertyKey=toPropertyKey(key);if(propertyKey in object)
definePropertyModule.f(object,propertyKey,createPropertyDescriptor(0,value));else
object[propertyKey]=value;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(11);var isObject=__w_pdfjs_require__(23);var classof=__w_pdfjs_require__(19);var ARRAY_BUFFER_NON_EXTENSIBLE=__w_pdfjs_require__(104);var $isExtensible=Object.isExtensible;var FAILS_ON_PRIMITIVES=fails(function(){$isExtensible(1);});module.exports=FAILS_ON_PRIMITIVES||ARRAY_BUFFER_NON_EXTENSIBLE?function isExtensible(it){if(!isObject(it))
return false;if(ARRAY_BUFFER_NON_EXTENSIBLE&&classof(it)=='ArrayBuffer')
return false;return $isExtensible?$isExtensible(it):true;}:$isExtensible;}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(11);module.exports=fails(function(){if(typeof ArrayBuffer=='function'){var buffer=new ArrayBuffer(8);if(Object.isExtensible(buffer))
Object.defineProperty(buffer,'a',{value:8});}});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(11);module.exports=!fails(function(){return Object.isExtensible(Object.preventExtensions({}));});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var bind=__w_pdfjs_require__(107);var call=__w_pdfjs_require__(12);var anObject=__w_pdfjs_require__(49);var tryToString=__w_pdfjs_require__(34);var isArrayIteratorMethod=__w_pdfjs_require__(108);var lengthOfArrayLike=__w_pdfjs_require__(66);var isPrototypeOf=__w_pdfjs_require__(27);var getIterator=__w_pdfjs_require__(109);var getIteratorMethod=__w_pdfjs_require__(110);var iteratorClose=__w_pdfjs_require__(111);var $TypeError=TypeError;var Result=function(stopped,result){this.stopped=stopped;this.result=result;};var ResultPrototype=Result.prototype;module.exports=function(iterable,unboundFunction,options){var that=options&&options.that;var AS_ENTRIES=!!(options&&options.AS_ENTRIES);var IS_RECORD=!!(options&&options.IS_RECORD);var IS_ITERATOR=!!(options&&options.IS_ITERATOR);var INTERRUPTED=!!(options&&options.INTERRUPTED);var fn=bind(unboundFunction,that);var iterator,iterFn,index,length,result,next,step;var stop=function(condition){if(iterator)
iteratorClose(iterator,'normal',condition);return new Result(true,condition);};var callFn=function(value){if(AS_ENTRIES){anObject(value);return INTERRUPTED?fn(value[0],value[1],stop):fn(value[0],value[1]);}
return INTERRUPTED?fn(value,stop):fn(value);};if(IS_RECORD){iterator=iterable.iterator;}else if(IS_ITERATOR){iterator=iterable;}else{iterFn=getIteratorMethod(iterable);if(!iterFn)
throw $TypeError(tryToString(iterable)+' is not iterable');if(isArrayIteratorMethod(iterFn)){for(index=0,length=lengthOfArrayLike(iterable);length>index;index++){result=callFn(iterable[index]);if(result&&isPrototypeOf(ResultPrototype,result))
return result;}
return new Result(false);}
iterator=getIterator(iterable,iterFn);}
next=IS_RECORD?iterable.next:iterator.next;while(!(step=call(next,iterator)).done){try{result=callFn(step.value);}catch(error){iteratorClose(iterator,'throw',error);}
if(typeof result=='object'&&result&&isPrototypeOf(ResultPrototype,result))
return result;}
return new Result(false);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(18);var aCallable=__w_pdfjs_require__(33);var NATIVE_BIND=__w_pdfjs_require__(13);var bind=uncurryThis(uncurryThis.bind);module.exports=function(fn,that){aCallable(fn);return that===undefined?fn:NATIVE_BIND?bind(fn,that):function(){return fn.apply(that,arguments);};};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var wellKnownSymbol=__w_pdfjs_require__(36);var Iterators=__w_pdfjs_require__(89);var ITERATOR=wellKnownSymbol('iterator');var ArrayPrototype=Array.prototype;module.exports=function(it){return it!==undefined&&(Iterators.Array===it||ArrayPrototype[ITERATOR]===it);};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var call=__w_pdfjs_require__(12);var aCallable=__w_pdfjs_require__(33);var anObject=__w_pdfjs_require__(49);var tryToString=__w_pdfjs_require__(34);var getIteratorMethod=__w_pdfjs_require__(110);var $TypeError=TypeError;module.exports=function(argument,usingIterator){var iteratorMethod=arguments.length<2?getIteratorMethod(argument):usingIterator;if(aCallable(iteratorMethod))
return anObject(call(iteratorMethod,argument));throw $TypeError(tryToString(argument)+' is not iterable');};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var classof=__w_pdfjs_require__(81);var getMethod=__w_pdfjs_require__(32);var Iterators=__w_pdfjs_require__(89);var wellKnownSymbol=__w_pdfjs_require__(36);var ITERATOR=wellKnownSymbol('iterator');module.exports=function(it){if(it!=undefined)
return getMethod(it,ITERATOR)||getMethod(it,'@@iterator')||Iterators[classof(it)];};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var call=__w_pdfjs_require__(12);var anObject=__w_pdfjs_require__(49);var getMethod=__w_pdfjs_require__(32);module.exports=function(iterator,kind,value){var innerResult,innerError;anObject(iterator);try{innerResult=getMethod(iterator,'return');if(!innerResult){if(kind==='throw')
throw value;return value;}
innerResult=call(innerResult,iterator);}catch(error){innerError=true;innerResult=error;}
if(kind==='throw')
throw value;if(innerError)
throw innerResult;anObject(innerResult);return value;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isPrototypeOf=__w_pdfjs_require__(27);var $TypeError=TypeError;module.exports=function(it,Prototype){if(isPrototypeOf(Prototype,it))
return it;throw $TypeError('Incorrect invocation');};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var wellKnownSymbol=__w_pdfjs_require__(36);var ITERATOR=wellKnownSymbol('iterator');var SAFE_CLOSING=false;try{var called=0;var iteratorWithReturn={next:function(){return{done:!!called++};},'return':function(){SAFE_CLOSING=true;}};iteratorWithReturn[ITERATOR]=function(){return this;};Array.from(iteratorWithReturn,function(){throw 2;});}catch(error){}
module.exports=function(exec,SKIP_CLOSING){if(!SKIP_CLOSING&&!SAFE_CLOSING)
return false;var ITERATION_SUPPORT=false;try{var object={};object[ITERATOR]=function(){return{next:function(){return{done:ITERATION_SUPPORT=true};}};};exec(object);}catch(error){}
return ITERATION_SUPPORT;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var isCallable=__w_pdfjs_require__(24);var isObject=__w_pdfjs_require__(23);var setPrototypeOf=__w_pdfjs_require__(85);module.exports=function($this,dummy,Wrapper){var NewTarget,NewTargetPrototype;if(setPrototypeOf&&isCallable(NewTarget=dummy.constructor)&&NewTarget!==Wrapper&&isObject(NewTargetPrototype=NewTarget.prototype)&&NewTargetPrototype!==Wrapper.prototype)
setPrototypeOf($this,NewTargetPrototype);return $this;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var defineProperty=(__w_pdfjs_require__(47).f);var create=__w_pdfjs_require__(72);var defineBuiltIns=__w_pdfjs_require__(116);var bind=__w_pdfjs_require__(107);var anInstance=__w_pdfjs_require__(112);var iterate=__w_pdfjs_require__(106);var defineIterator=__w_pdfjs_require__(90);var setSpecies=__w_pdfjs_require__(117);var DESCRIPTORS=__w_pdfjs_require__(10);var fastKey=(__w_pdfjs_require__(99).fastKey);var InternalStateModule=__w_pdfjs_require__(54);var setInternalState=InternalStateModule.set;var internalStateGetterFor=InternalStateModule.getterFor;module.exports={getConstructor:function(wrapper,CONSTRUCTOR_NAME,IS_MAP,ADDER){var Constructor=wrapper(function(that,iterable){anInstance(that,Prototype);setInternalState(that,{type:CONSTRUCTOR_NAME,index:create(null),first:undefined,last:undefined,size:0});if(!DESCRIPTORS)
that.size=0;if(iterable!=undefined)
iterate(iterable,that[ADDER],{that:that,AS_ENTRIES:IS_MAP});});var Prototype=Constructor.prototype;var getInternalState=internalStateGetterFor(CONSTRUCTOR_NAME);var define=function(that,key,value){var state=getInternalState(that);var entry=getEntry(that,key);var previous,index;if(entry){entry.value=value;}else{state.last=entry={index:index=fastKey(key,true),key:key,value:value,previous:previous=state.last,next:undefined,removed:false};if(!state.first)
state.first=entry;if(previous)
previous.next=entry;if(DESCRIPTORS)
state.size++;else
that.size++;if(index!=='F')
state.index[index]=entry;}
return that;};var getEntry=function(that,key){var state=getInternalState(that);var index=fastKey(key);var entry;if(index!=='F')
return state.index[index];for(entry=state.first;entry;entry=entry.next){if(entry.key==key)
return entry;}};defineBuiltIns(Prototype,{clear:function clear(){var that=this;var state=getInternalState(that);var data=state.index;var entry=state.first;while(entry){entry.removed=true;if(entry.previous)
entry.previous=entry.previous.next=undefined;delete data[entry.index];entry=entry.next;}
state.first=state.last=undefined;if(DESCRIPTORS)
state.size=0;else
that.size=0;},'delete':function(key){var that=this;var state=getInternalState(that);var entry=getEntry(that,key);if(entry){var next=entry.next;var prev=entry.previous;delete state.index[entry.index];entry.removed=true;if(prev)
prev.next=next;if(next)
next.previous=prev;if(state.first==entry)
state.first=next;if(state.last==entry)
state.last=prev;if(DESCRIPTORS)
state.size--;else
that.size--;}
return!!entry;},forEach:function forEach(callbackfn){var state=getInternalState(this);var boundFunction=bind(callbackfn,arguments.length>1?arguments[1]:undefined);var entry;while(entry=entry?entry.next:state.first){boundFunction(entry.value,entry.key,this);while(entry&&entry.removed)
entry=entry.previous;}},has:function has(key){return!!getEntry(this,key);}});defineBuiltIns(Prototype,IS_MAP?{get:function get(key){var entry=getEntry(this,key);return entry&&entry.value;},set:function set(key,value){return define(this,key===0?0:key,value);}}:{add:function add(value){return define(this,value=value===0?0:value,value);}});if(DESCRIPTORS)
defineProperty(Prototype,'size',{get:function(){return getInternalState(this).size;}});return Constructor;},setStrong:function(Constructor,CONSTRUCTOR_NAME,IS_MAP){var ITERATOR_NAME=CONSTRUCTOR_NAME+' Iterator';var getInternalCollectionState=internalStateGetterFor(CONSTRUCTOR_NAME);var getInternalIteratorState=internalStateGetterFor(ITERATOR_NAME);defineIterator(Constructor,CONSTRUCTOR_NAME,function(iterated,kind){setInternalState(this,{type:ITERATOR_NAME,target:iterated,state:getInternalCollectionState(iterated),kind:kind,last:undefined});},function(){var state=getInternalIteratorState(this);var kind=state.kind;var entry=state.last;while(entry&&entry.removed)
entry=entry.previous;if(!state.target||!(state.last=entry=entry?entry.next:state.state.first)){state.target=undefined;return{value:undefined,done:true};}
if(kind=='keys')
return{value:entry.key,done:false};if(kind=='values')
return{value:entry.value,done:false};return{value:[entry.key,entry.value],done:false};},IS_MAP?'entries':'values',!IS_MAP,true);setSpecies(CONSTRUCTOR_NAME);}};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var defineBuiltIn=__w_pdfjs_require__(50);module.exports=function(target,src,options){for(var key in src)
defineBuiltIn(target,key,src[key],options);return target;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var getBuiltIn=__w_pdfjs_require__(26);var definePropertyModule=__w_pdfjs_require__(47);var wellKnownSymbol=__w_pdfjs_require__(36);var DESCRIPTORS=__w_pdfjs_require__(10);var SPECIES=wellKnownSymbol('species');module.exports=function(CONSTRUCTOR_NAME){var Constructor=getBuiltIn(CONSTRUCTOR_NAME);var defineProperty=definePropertyModule.f;if(DESCRIPTORS&&Constructor&&!Constructor[SPECIES]){defineProperty(Constructor,SPECIES,{configurable:true,get:function(){return this;}});}};}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{__w_pdfjs_require__(119);}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var collection=__w_pdfjs_require__(98);var collectionStrong=__w_pdfjs_require__(115);collection('Set',function(init){return function Set(){return init(this,arguments.length?arguments[0]:undefined);};},collectionStrong);}),((__unused_webpack_module,__unused_webpack_exports,__w_pdfjs_require__)=>{var IS_PURE=__w_pdfjs_require__(38);var $=__w_pdfjs_require__(7);var global=__w_pdfjs_require__(8);var getBuiltin=__w_pdfjs_require__(26);var uncurryThis=__w_pdfjs_require__(18);var fails=__w_pdfjs_require__(11);var uid=__w_pdfjs_require__(43);var isCallable=__w_pdfjs_require__(24);var isConstructor=__w_pdfjs_require__(121);var isObject=__w_pdfjs_require__(23);var isSymbol=__w_pdfjs_require__(25);var iterate=__w_pdfjs_require__(106);var anObject=__w_pdfjs_require__(49);var classof=__w_pdfjs_require__(81);var hasOwn=__w_pdfjs_require__(41);var createProperty=__w_pdfjs_require__(102);var createNonEnumerableProperty=__w_pdfjs_require__(46);var lengthOfArrayLike=__w_pdfjs_require__(66);var validateArgumentsLength=__w_pdfjs_require__(122);var getRegExpFlags=__w_pdfjs_require__(123);var ERROR_STACK_INSTALLABLE=__w_pdfjs_require__(125);var V8=__w_pdfjs_require__(30);var IS_BROWSER=__w_pdfjs_require__(126);var IS_DENO=__w_pdfjs_require__(127);var IS_NODE=__w_pdfjs_require__(128);var Object=global.Object;var Date=global.Date;var Error=global.Error;var EvalError=global.EvalError;var RangeError=global.RangeError;var ReferenceError=global.ReferenceError;var SyntaxError=global.SyntaxError;var TypeError=global.TypeError;var URIError=global.URIError;var PerformanceMark=global.PerformanceMark;var WebAssembly=global.WebAssembly;var CompileError=WebAssembly&&WebAssembly.CompileError||Error;var LinkError=WebAssembly&&WebAssembly.LinkError||Error;var RuntimeError=WebAssembly&&WebAssembly.RuntimeError||Error;var DOMException=getBuiltin('DOMException');var Set=getBuiltin('Set');var Map=getBuiltin('Map');var MapPrototype=Map.prototype;var mapHas=uncurryThis(MapPrototype.has);var mapGet=uncurryThis(MapPrototype.get);var mapSet=uncurryThis(MapPrototype.set);var setAdd=uncurryThis(Set.prototype.add);var objectKeys=getBuiltin('Object','keys');var push=uncurryThis([].push);var booleanValueOf=uncurryThis(true.valueOf);var numberValueOf=uncurryThis(1.0.valueOf);var stringValueOf=uncurryThis(''.valueOf);var getTime=uncurryThis(Date.prototype.getTime);var PERFORMANCE_MARK=uid('structuredClone');var DATA_CLONE_ERROR='DataCloneError';var TRANSFERRING='Transferring';var checkBasicSemantic=function(structuredCloneImplementation){return!fails(function(){var set1=new global.Set([7]);var set2=structuredCloneImplementation(set1);var number=structuredCloneImplementation(Object(7));return set2==set1||!set2.has(7)||typeof number!='object'||number!=7;})&&structuredCloneImplementation;};var checkErrorsCloning=function(structuredCloneImplementation,$Error){return!fails(function(){var error=new $Error();var test=structuredCloneImplementation({a:error,b:error});return!(test&&test.a===test.b&&test.a instanceof $Error&&test.a.stack===error.stack);});};var checkNewErrorsCloningSemantic=function(structuredCloneImplementation){return!fails(function(){var test=structuredCloneImplementation(new global.AggregateError([1],PERFORMANCE_MARK,{cause:3}));return test.name!='AggregateError'||test.errors[0]!=1||test.message!=PERFORMANCE_MARK||test.cause!=3;});};var nativeStructuredClone=global.structuredClone;var FORCED_REPLACEMENT=IS_PURE||!checkErrorsCloning(nativeStructuredClone,Error)||!checkErrorsCloning(nativeStructuredClone,DOMException)||!checkNewErrorsCloningSemantic(nativeStructuredClone);var structuredCloneFromMark=!nativeStructuredClone&&checkBasicSemantic(function(value){return new PerformanceMark(PERFORMANCE_MARK,{detail:value}).detail;});var nativeRestrictedStructuredClone=checkBasicSemantic(nativeStructuredClone)||structuredCloneFromMark;var throwUncloneable=function(type){throw new DOMException('Uncloneable type: '+type,DATA_CLONE_ERROR);};var throwUnpolyfillable=function(type,kind){throw new DOMException((kind||'Cloning')+' of '+type+' cannot be properly polyfilled in this engine',DATA_CLONE_ERROR);};var structuredCloneInternal=function(value,map){if(isSymbol(value))
throwUncloneable('Symbol');if(!isObject(value))
return value;if(map){if(mapHas(map,value))
return mapGet(map,value);}else
map=new Map();var type=classof(value);var deep=false;var C,name,cloned,dataTransfer,i,length,keys,key,source,target;switch(type){case'Array':cloned=[];deep=true;break;case'Object':cloned={};deep=true;break;case'Map':cloned=new Map();deep=true;break;case'Set':cloned=new Set();deep=true;break;case'RegExp':cloned=new RegExp(value.source,getRegExpFlags(value));break;case'Error':name=value.name;switch(name){case'AggregateError':cloned=getBuiltin('AggregateError')([]);break;case'EvalError':cloned=EvalError();break;case'RangeError':cloned=RangeError();break;case'ReferenceError':cloned=ReferenceError();break;case'SyntaxError':cloned=SyntaxError();break;case'TypeError':cloned=TypeError();break;case'URIError':cloned=URIError();break;case'CompileError':cloned=CompileError();break;case'LinkError':cloned=LinkError();break;case'RuntimeError':cloned=RuntimeError();break;default:cloned=Error();}
deep=true;break;case'DOMException':cloned=new DOMException(value.message,value.name);deep=true;break;case'DataView':case'Int8Array':case'Uint8Array':case'Uint8ClampedArray':case'Int16Array':case'Uint16Array':case'Int32Array':case'Uint32Array':case'Float32Array':case'Float64Array':case'BigInt64Array':case'BigUint64Array':C=global[type];if(!isObject(C))
throwUnpolyfillable(type);cloned=new C(structuredCloneInternal(value.buffer,map),value.byteOffset,type==='DataView'?value.byteLength:value.length);break;case'DOMQuad':try{cloned=new DOMQuad(structuredCloneInternal(value.p1,map),structuredCloneInternal(value.p2,map),structuredCloneInternal(value.p3,map),structuredCloneInternal(value.p4,map));}catch(error){if(nativeRestrictedStructuredClone){cloned=nativeRestrictedStructuredClone(value);}else
throwUnpolyfillable(type);}
break;case'FileList':C=global.DataTransfer;if(isConstructor(C)){dataTransfer=new C();for(i=0,length=lengthOfArrayLike(value);i<length;i++){dataTransfer.items.add(structuredCloneInternal(value[i],map));}
cloned=dataTransfer.files;}else if(nativeRestrictedStructuredClone){cloned=nativeRestrictedStructuredClone(value);}else
throwUnpolyfillable(type);break;case'ImageData':try{cloned=new ImageData(structuredCloneInternal(value.data,map),value.width,value.height,{colorSpace:value.colorSpace});}catch(error){if(nativeRestrictedStructuredClone){cloned=nativeRestrictedStructuredClone(value);}else
throwUnpolyfillable(type);}
break;default:if(nativeRestrictedStructuredClone){cloned=nativeRestrictedStructuredClone(value);}else
switch(type){case'BigInt':cloned=Object(value.valueOf());break;case'Boolean':cloned=Object(booleanValueOf(value));break;case'Number':cloned=Object(numberValueOf(value));break;case'String':cloned=Object(stringValueOf(value));break;case'Date':cloned=new Date(getTime(value));break;case'ArrayBuffer':C=global.DataView;if(!C&&typeof value.slice!='function')
throwUnpolyfillable(type);try{if(typeof value.slice=='function'){cloned=value.slice(0);}else{length=value.byteLength;cloned=new ArrayBuffer(length);source=new C(value);target=new C(cloned);for(i=0;i<length;i++){target.setUint8(i,source.getUint8(i));}}}catch(error){throw new DOMException('ArrayBuffer is detached',DATA_CLONE_ERROR);}
break;case'SharedArrayBuffer':cloned=value;break;case'Blob':try{cloned=value.slice(0,value.size,value.type);}catch(error){throwUnpolyfillable(type);}
break;case'DOMPoint':case'DOMPointReadOnly':C=global[type];try{cloned=C.fromPoint?C.fromPoint(value):new C(value.x,value.y,value.z,value.w);}catch(error){throwUnpolyfillable(type);}
break;case'DOMRect':case'DOMRectReadOnly':C=global[type];try{cloned=C.fromRect?C.fromRect(value):new C(value.x,value.y,value.width,value.height);}catch(error){throwUnpolyfillable(type);}
break;case'DOMMatrix':case'DOMMatrixReadOnly':C=global[type];try{cloned=C.fromMatrix?C.fromMatrix(value):new C(value);}catch(error){throwUnpolyfillable(type);}
break;case'AudioData':case'VideoFrame':if(!isCallable(value.clone))
throwUnpolyfillable(type);try{cloned=value.clone();}catch(error){throwUncloneable(type);}
break;case'File':try{cloned=new File([value],value.name,value);}catch(error){throwUnpolyfillable(type);}
break;case'CryptoKey':case'GPUCompilationMessage':case'GPUCompilationInfo':case'ImageBitmap':case'RTCCertificate':case'WebAssembly.Module':throwUnpolyfillable(type);default:throwUncloneable(type);}}
mapSet(map,value,cloned);if(deep)
switch(type){case'Array':case'Object':keys=objectKeys(value);for(i=0,length=lengthOfArrayLike(keys);i<length;i++){key=keys[i];createProperty(cloned,key,structuredCloneInternal(value[key],map));}
break;case'Map':value.forEach(function(v,k){mapSet(cloned,structuredCloneInternal(k,map),structuredCloneInternal(v,map));});break;case'Set':value.forEach(function(v){setAdd(cloned,structuredCloneInternal(v,map));});break;case'Error':createNonEnumerableProperty(cloned,'message',structuredCloneInternal(value.message,map));if(hasOwn(value,'cause')){createNonEnumerableProperty(cloned,'cause',structuredCloneInternal(value.cause,map));}
if(name=='AggregateError'){cloned.errors=structuredCloneInternal(value.errors,map);}
case'DOMException':if(ERROR_STACK_INSTALLABLE){createNonEnumerableProperty(cloned,'stack',structuredCloneInternal(value.stack,map));}}
return cloned;};var PROPER_TRANSFER=nativeStructuredClone&&!fails(function(){if(IS_DENO&&V8>92||IS_NODE&&V8>94||IS_BROWSER&&V8>97)
return false;var buffer=new ArrayBuffer(8);var clone=nativeStructuredClone(buffer,{transfer:[buffer]});return buffer.byteLength!=0||clone.byteLength!=8;});var tryToTransfer=function(rawTransfer,map){if(!isObject(rawTransfer))
throw TypeError('Transfer option cannot be converted to a sequence');var transfer=[];iterate(rawTransfer,function(value){push(transfer,anObject(value));});var i=0;var length=lengthOfArrayLike(transfer);var value,type,C,transferredArray,transferred,canvas,context;if(PROPER_TRANSFER){transferredArray=nativeStructuredClone(transfer,{transfer:transfer});while(i<length)
mapSet(map,transfer[i],transferredArray[i++]);}else
while(i<length){value=transfer[i++];if(mapHas(map,value))
throw new DOMException('Duplicate transferable',DATA_CLONE_ERROR);type=classof(value);switch(type){case'ImageBitmap':C=global.OffscreenCanvas;if(!isConstructor(C))
throwUnpolyfillable(type,TRANSFERRING);try{canvas=new C(value.width,value.height);context=canvas.getContext('bitmaprenderer');context.transferFromImageBitmap(value);transferred=canvas.transferToImageBitmap();}catch(error){}
break;case'AudioData':case'VideoFrame':if(!isCallable(value.clone)||!isCallable(value.close))
throwUnpolyfillable(type,TRANSFERRING);try{transferred=value.clone();value.close();}catch(error){}
break;case'ArrayBuffer':case'MessagePort':case'OffscreenCanvas':case'ReadableStream':case'TransformStream':case'WritableStream':throwUnpolyfillable(type,TRANSFERRING);}
if(transferred===undefined)
throw new DOMException('This object cannot be transferred: '+type,DATA_CLONE_ERROR);mapSet(map,value,transferred);}};$({global:true,enumerable:true,sham:!PROPER_TRANSFER,forced:FORCED_REPLACEMENT},{structuredClone:function structuredClone(value){var options=validateArgumentsLength(arguments.length,1)>1&&arguments[1]!=null?anObject(arguments[1]):undefined;var transfer=options?options.transfer:undefined;var map;if(transfer!==undefined){map=new Map();tryToTransfer(transfer,map);}
return structuredCloneInternal(value,map);}});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var uncurryThis=__w_pdfjs_require__(18);var fails=__w_pdfjs_require__(11);var isCallable=__w_pdfjs_require__(24);var classof=__w_pdfjs_require__(81);var getBuiltIn=__w_pdfjs_require__(26);var inspectSource=__w_pdfjs_require__(53);var noop=function(){};var empty=[];var construct=getBuiltIn('Reflect','construct');var constructorRegExp=/^\s*(?:class|function)\b/;var exec=uncurryThis(constructorRegExp.exec);var INCORRECT_TO_STRING=!constructorRegExp.exec(noop);var isConstructorModern=function isConstructor(argument){if(!isCallable(argument))
return false;try{construct(noop,empty,argument);return true;}catch(error){return false;}};var isConstructorLegacy=function isConstructor(argument){if(!isCallable(argument))
return false;switch(classof(argument)){case'AsyncFunction':case'GeneratorFunction':case'AsyncGeneratorFunction':return false;}
try{return INCORRECT_TO_STRING||!!exec(constructorRegExp,inspectSource(argument));}catch(error){return true;}};isConstructorLegacy.sham=true;module.exports=!construct||fails(function(){var called;return isConstructorModern(isConstructorModern.call)||!isConstructorModern(Object)||!isConstructorModern(function(){called=true;})||called;})?isConstructorLegacy:isConstructorModern;}),((module)=>{var $TypeError=TypeError;module.exports=function(passed,required){if(passed<required)
throw $TypeError('Not enough arguments');return passed;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var call=__w_pdfjs_require__(12);var hasOwn=__w_pdfjs_require__(41);var isPrototypeOf=__w_pdfjs_require__(27);var regExpFlags=__w_pdfjs_require__(124);var RegExpPrototype=RegExp.prototype;module.exports=function(R){var flags=R.flags;return flags===undefined&&!('flags'in RegExpPrototype)&&!hasOwn(R,'flags')&&isPrototypeOf(RegExpPrototype,R)?call(regExpFlags,R):flags;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{"use strict";var anObject=__w_pdfjs_require__(49);module.exports=function(){var that=anObject(this);var result='';if(that.hasIndices)
result+='d';if(that.global)
result+='g';if(that.ignoreCase)
result+='i';if(that.multiline)
result+='m';if(that.dotAll)
result+='s';if(that.unicode)
result+='u';if(that.unicodeSets)
result+='v';if(that.sticky)
result+='y';return result;};}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var fails=__w_pdfjs_require__(11);var createPropertyDescriptor=__w_pdfjs_require__(15);module.exports=!fails(function(){var error=Error('a');if(!('stack'in error))
return true;Object.defineProperty(error,'stack',createPropertyDescriptor(1,7));return error.stack!==7;});}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var IS_DENO=__w_pdfjs_require__(127);var IS_NODE=__w_pdfjs_require__(128);module.exports=!IS_DENO&&!IS_NODE&&typeof window=='object'&&typeof document=='object';}),((module)=>{module.exports=typeof Deno=='object'&&Deno&&typeof Deno.version=='object';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var classof=__w_pdfjs_require__(19);var global=__w_pdfjs_require__(8);module.exports=classof(global.process)=='process';}),((module,__unused_webpack_exports,__w_pdfjs_require__)=>{var global=__w_pdfjs_require__(8);module.exports=global;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.RefSetCache=exports.RefSet=exports.Ref=exports.Name=exports.EOF=exports.Dict=exports.Cmd=exports.CIRCULAR_REF=void 0;exports.clearPrimitiveCaches=clearPrimitiveCaches;exports.isCmd=isCmd;exports.isDict=isDict;exports.isName=isName;exports.isRefsEqual=isRefsEqual;var _util=__w_pdfjs_require__(2);const CIRCULAR_REF=Symbol("CIRCULAR_REF");exports.CIRCULAR_REF=CIRCULAR_REF;const EOF=Symbol("EOF");exports.EOF=EOF;const Name=function NameClosure(){let nameCache=Object.create(null);class Name{constructor(name){this.name=name;}
static get(name){return nameCache[name]||(nameCache[name]=new Name(name));}
static _clearCache(){nameCache=Object.create(null);}}
return Name;}();exports.Name=Name;const Cmd=function CmdClosure(){let cmdCache=Object.create(null);class Cmd{constructor(cmd){this.cmd=cmd;}
static get(cmd){return cmdCache[cmd]||(cmdCache[cmd]=new Cmd(cmd));}
static _clearCache(){cmdCache=Object.create(null);}}
return Cmd;}();exports.Cmd=Cmd;const nonSerializable=function nonSerializableClosure(){return nonSerializable;};class Dict{constructor(){let xref=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;this._map=Object.create(null);this.xref=xref;this.objId=null;this.suppressEncryption=false;this.__nonSerializable__=nonSerializable;}
assignXref(newXref){this.xref=newXref;}
get size(){return Object.keys(this._map).length;}
get(key1,key2,key3){let value=this._map[key1];if(value===undefined&&key2!==undefined){value=this._map[key2];if(value===undefined&&key3!==undefined){value=this._map[key3];}}
if(value instanceof Ref&&this.xref){return this.xref.fetch(value,this.suppressEncryption);}
return value;}
async getAsync(key1,key2,key3){let value=this._map[key1];if(value===undefined&&key2!==undefined){value=this._map[key2];if(value===undefined&&key3!==undefined){value=this._map[key3];}}
if(value instanceof Ref&&this.xref){return this.xref.fetchAsync(value,this.suppressEncryption);}
return value;}
getArray(key1,key2,key3){let value=this._map[key1];if(value===undefined&&key2!==undefined){value=this._map[key2];if(value===undefined&&key3!==undefined){value=this._map[key3];}}
if(value instanceof Ref&&this.xref){value=this.xref.fetch(value,this.suppressEncryption);}
if(Array.isArray(value)){value=value.slice();for(let i=0,ii=value.length;i<ii;i++){if(value[i]instanceof Ref&&this.xref){value[i]=this.xref.fetch(value[i],this.suppressEncryption);}}}
return value;}
getRaw(key){return this._map[key];}
getKeys(){return Object.keys(this._map);}
getRawValues(){return Object.values(this._map);}
set(key,value){this._map[key]=value;}
has(key){return this._map[key]!==undefined;}
forEach(callback){for(const key in this._map){callback(key,this.get(key));}}
static get empty(){const emptyDict=new Dict(null);emptyDict.set=(key,value)=>{(0,_util.unreachable)("Should not call `set` on the empty dictionary.");};return(0,_util.shadow)(this,"empty",emptyDict);}
static merge(_ref){let{xref,dictArray,mergeSubDicts=false}=_ref;const mergedDict=new Dict(xref),properties=new Map();for(const dict of dictArray){if(!(dict instanceof Dict)){continue;}
for(const[key,value]of Object.entries(dict._map)){let property=properties.get(key);if(property===undefined){property=[];properties.set(key,property);}else if(!mergeSubDicts||!(value instanceof Dict)){continue;}
property.push(value);}}
for(const[name,values]of properties){if(values.length===1||!(values[0]instanceof Dict)){mergedDict._map[name]=values[0];continue;}
const subDict=new Dict(xref);for(const dict of values){for(const[key,value]of Object.entries(dict._map)){if(subDict._map[key]===undefined){subDict._map[key]=value;}}}
if(subDict.size>0){mergedDict._map[name]=subDict;}}
properties.clear();return mergedDict.size>0?mergedDict:Dict.empty;}}
exports.Dict=Dict;const Ref=function RefClosure(){let refCache=Object.create(null);class Ref{constructor(num,gen){this.num=num;this.gen=gen;}
toString(){if(this.gen===0){return`${this.num}R`;}
return`${this.num}R${this.gen}`;}
static get(num,gen){const key=gen===0?`${num}R`:`${num}R${gen}`;return refCache[key]||(refCache[key]=new Ref(num,gen));}
static _clearCache(){refCache=Object.create(null);}}
return Ref;}();exports.Ref=Ref;class RefSet{constructor(){let parent=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;this._set=new Set(parent&&parent._set);}
has(ref){return this._set.has(ref.toString());}
put(ref){this._set.add(ref.toString());}
remove(ref){this._set.delete(ref.toString());}
[Symbol.iterator](){return this._set.values();}
clear(){this._set.clear();}}
exports.RefSet=RefSet;class RefSetCache{constructor(){this._map=new Map();}
get size(){return this._map.size;}
get(ref){return this._map.get(ref.toString());}
has(ref){return this._map.has(ref.toString());}
put(ref,obj){this._map.set(ref.toString(),obj);}
putAlias(ref,aliasRef){this._map.set(ref.toString(),this.get(aliasRef));}
[Symbol.iterator](){return this._map.values();}
clear(){this._map.clear();}}
exports.RefSetCache=RefSetCache;function isName(v,name){return v instanceof Name&&(name===undefined||v.name===name);}
function isCmd(v,cmd){return v instanceof Cmd&&(cmd===undefined||v.cmd===cmd);}
function isDict(v,type){return v instanceof Dict&&(type===undefined||isName(v.get("Type"),type));}
function isRefsEqual(v1,v2){return v1.num===v2.num&&v1.gen===v2.gen;}
function clearPrimitiveCaches(){Cmd._clearCache();Name._clearCache();Ref._clearCache();}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.XRefParseException=exports.XRefEntryException=exports.ParserEOFException=exports.MissingDataException=exports.DocStats=void 0;exports.collectActions=collectActions;exports.encodeToXmlString=encodeToXmlString;exports.escapePDFName=escapePDFName;exports.getArrayLookupTableFactory=getArrayLookupTableFactory;exports.getInheritableProperty=getInheritableProperty;exports.getLookupTableFactory=getLookupTableFactory;exports.getNewAnnotationsMap=getNewAnnotationsMap;exports.isWhiteSpace=isWhiteSpace;exports.log2=log2;exports.numberToString=numberToString;exports.parseXFAPath=parseXFAPath;exports.readInt8=readInt8;exports.readUint16=readUint16;exports.readUint32=readUint32;exports.recoverJsURL=recoverJsURL;exports.toRomanNumerals=toRomanNumerals;exports.validateCSSFont=validateCSSFont;var _util=__w_pdfjs_require__(2);var _primitives=__w_pdfjs_require__(130);var _base_stream=__w_pdfjs_require__(132);function getLookupTableFactory(initializer){let lookup;return function(){if(initializer){lookup=Object.create(null);initializer(lookup);initializer=null;}
return lookup;};}
function getArrayLookupTableFactory(initializer){let lookup;return function(){if(initializer){let arr=initializer();initializer=null;lookup=Object.create(null);for(let i=0,ii=arr.length;i<ii;i+=2){lookup[arr[i]]=arr[i+1];}
arr=null;}
return lookup;};}
class MissingDataException extends _util.BaseException{constructor(begin,end){super(`Missing data [${begin}, ${end})`,"MissingDataException");this.begin=begin;this.end=end;}}
exports.MissingDataException=MissingDataException;class ParserEOFException extends _util.BaseException{constructor(msg){super(msg,"ParserEOFException");}}
exports.ParserEOFException=ParserEOFException;class XRefEntryException extends _util.BaseException{constructor(msg){super(msg,"XRefEntryException");}}
exports.XRefEntryException=XRefEntryException;class XRefParseException extends _util.BaseException{constructor(msg){super(msg,"XRefParseException");}}
exports.XRefParseException=XRefParseException;class DocStats{constructor(handler){this._handler=handler;this._streamTypes=new Set();this._fontTypes=new Set();}
_send(){const streamTypes=Object.create(null),fontTypes=Object.create(null);for(const type of this._streamTypes){streamTypes[type]=true;}
for(const type of this._fontTypes){fontTypes[type]=true;}
this._handler.send("DocStats",{streamTypes,fontTypes});}
addStreamType(type){if(this._streamTypes.has(type)){return;}
this._streamTypes.add(type);this._send();}
addFontType(type){if(this._fontTypes.has(type)){return;}
this._fontTypes.add(type);this._send();}}
exports.DocStats=DocStats;function getInheritableProperty(_ref){let{dict,key,getArray=false,stopWhenFound=true}=_ref;let values;const visited=new _primitives.RefSet();while(dict instanceof _primitives.Dict&&!(dict.objId&&visited.has(dict.objId))){if(dict.objId){visited.put(dict.objId);}
const value=getArray?dict.getArray(key):dict.get(key);if(value!==undefined){if(stopWhenFound){return value;}
if(!values){values=[];}
values.push(value);}
dict=dict.get("Parent");}
return values;}
const ROMAN_NUMBER_MAP=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];function toRomanNumerals(number){let lowerCase=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;(0,_util.assert)(Number.isInteger(number)&&number>0,"The number should be a positive integer.");const romanBuf=[];let pos;while(number>=1000){number-=1000;romanBuf.push("M");}
pos=number/100|0;number%=100;romanBuf.push(ROMAN_NUMBER_MAP[pos]);pos=number/10|0;number%=10;romanBuf.push(ROMAN_NUMBER_MAP[10+pos]);romanBuf.push(ROMAN_NUMBER_MAP[20+number]);const romanStr=romanBuf.join("");return lowerCase?romanStr.toLowerCase():romanStr;}
function log2(x){if(x<=0){return 0;}
return Math.ceil(Math.log2(x));}
function readInt8(data,offset){return data[offset]<<24>>24;}
function readUint16(data,offset){return data[offset]<<8|data[offset+1];}
function readUint32(data,offset){return(data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3])>>>0;}
function isWhiteSpace(ch){return ch===0x20||ch===0x09||ch===0x0d||ch===0x0a;}
function parseXFAPath(path){const positionPattern=/(.+)\[(\d+)\]$/;return path.split(".").map(component=>{const m=component.match(positionPattern);if(m){return{name:m[1],pos:parseInt(m[2],10)};}
return{name:component,pos:0};});}
function escapePDFName(str){const buffer=[];let start=0;for(let i=0,ii=str.length;i<ii;i++){const char=str.charCodeAt(i);if(char<0x21||char>0x7e||char===0x23||char===0x28||char===0x29||char===0x3c||char===0x3e||char===0x5b||char===0x5d||char===0x7b||char===0x7d||char===0x2f||char===0x25){if(start<i){buffer.push(str.substring(start,i));}
buffer.push(`#${char.toString(16)}`);start=i+1;}}
if(buffer.length===0){return str;}
if(start<str.length){buffer.push(str.substring(start,str.length));}
return buffer.join("");}
function _collectJS(entry,xref,list,parents){if(!entry){return;}
let parent=null;if(entry instanceof _primitives.Ref){if(parents.has(entry)){return;}
parent=entry;parents.put(parent);entry=xref.fetch(entry);}
if(Array.isArray(entry)){for(const element of entry){_collectJS(element,xref,list,parents);}}else if(entry instanceof _primitives.Dict){if((0,_primitives.isName)(entry.get("S"),"JavaScript")){const js=entry.get("JS");let code;if(js instanceof _base_stream.BaseStream){code=js.getString();}else if(typeof js==="string"){code=js;}
code=code&&(0,_util.stringToPDFString)(code).replace(/\u0000/g,"");if(code){list.push(code);}}
_collectJS(entry.getRaw("Next"),xref,list,parents);}
if(parent){parents.remove(parent);}}
function collectActions(xref,dict,eventType){const actions=Object.create(null);const additionalActionsDicts=getInheritableProperty({dict,key:"AA",stopWhenFound:false});if(additionalActionsDicts){for(let i=additionalActionsDicts.length-1;i>=0;i--){const additionalActions=additionalActionsDicts[i];if(!(additionalActions instanceof _primitives.Dict)){continue;}
for(const key of additionalActions.getKeys()){const action=eventType[key];if(!action){continue;}
const actionDict=additionalActions.getRaw(key);const parents=new _primitives.RefSet();const list=[];_collectJS(actionDict,xref,list,parents);if(list.length>0){actions[action]=list;}}}}
if(dict.has("A")){const actionDict=dict.get("A");const parents=new _primitives.RefSet();const list=[];_collectJS(actionDict,xref,list,parents);if(list.length>0){actions.Action=list;}}
return(0,_util.objectSize)(actions)>0?actions:null;}
const XMLEntities={0x3c:"&lt;",0x3e:"&gt;",0x26:"&amp;",0x22:"&quot;",0x27:"&apos;"};function encodeToXmlString(str){const buffer=[];let start=0;for(let i=0,ii=str.length;i<ii;i++){const char=str.codePointAt(i);if(0x20<=char&&char<=0x7e){const entity=XMLEntities[char];if(entity){if(start<i){buffer.push(str.substring(start,i));}
buffer.push(entity);start=i+1;}}else{if(start<i){buffer.push(str.substring(start,i));}
buffer.push(`&#x${char.toString(16).toUpperCase()};`);if(char>0xd7ff&&(char<0xe000||char>0xfffd)){i++;}
start=i+1;}}
if(buffer.length===0){return str;}
if(start<str.length){buffer.push(str.substring(start,str.length));}
return buffer.join("");}
function validateCSSFont(cssFontInfo){const DEFAULT_CSS_FONT_OBLIQUE="14";const DEFAULT_CSS_FONT_WEIGHT="400";const CSS_FONT_WEIGHT_VALUES=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]);const{fontFamily,fontWeight,italicAngle}=cssFontInfo;if(/^".*"$/.test(fontFamily)){if(/[^\\]"/.test(fontFamily.slice(1,fontFamily.length-1))){(0,_util.warn)(`XFA - FontFamily contains some unescaped ": ${fontFamily}.`);return false;}}else if(/^'.*'$/.test(fontFamily)){if(/[^\\]'/.test(fontFamily.slice(1,fontFamily.length-1))){(0,_util.warn)(`XFA - FontFamily contains some unescaped ': ${fontFamily}.`);return false;}}else{for(const ident of fontFamily.split(/[ \t]+/)){if(/^(\d|(-(\d|-)))/.test(ident)||!/^[\w-\\]+$/.test(ident)){(0,_util.warn)(`XFA - FontFamily contains some invalid <custom-ident>: ${fontFamily}.`);return false;}}}
const weight=fontWeight?fontWeight.toString():"";cssFontInfo.fontWeight=CSS_FONT_WEIGHT_VALUES.has(weight)?weight:DEFAULT_CSS_FONT_WEIGHT;const angle=parseFloat(italicAngle);cssFontInfo.italicAngle=isNaN(angle)||angle<-90||angle>90?DEFAULT_CSS_FONT_OBLIQUE:italicAngle.toString();return true;}
function recoverJsURL(str){const URL_OPEN_METHODS=["app.launchURL","window.open","xfa.host.gotoURL"];const regex=new RegExp("^\\s*("+URL_OPEN_METHODS.join("|").split(".").join("\\.")+")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))","i");const jsUrl=regex.exec(str);if(jsUrl&&jsUrl[2]){const url=jsUrl[2];let newWindow=false;if(jsUrl[3]==="true"&&jsUrl[1]==="app.launchURL"){newWindow=true;}
return{url,newWindow};}
return null;}
function numberToString(value){if(Number.isInteger(value)){return value.toString();}
const roundedValue=Math.round(value*100);if(roundedValue%100===0){return(roundedValue/100).toString();}
if(roundedValue%10===0){return value.toFixed(1);}
return value.toFixed(2);}
function getNewAnnotationsMap(annotationStorage){if(!annotationStorage){return null;}
const newAnnotationsByPage=new Map();for(const[key,value]of annotationStorage){if(!key.startsWith(_util.AnnotationEditorPrefix)){continue;}
let annotations=newAnnotationsByPage.get(value.pageIndex);if(!annotations){annotations=[];newAnnotationsByPage.set(value.pageIndex,annotations);}
annotations.push(value);}
return newAnnotationsByPage.size>0?newAnnotationsByPage:null;}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.BaseStream=void 0;var _util=__w_pdfjs_require__(2);class BaseStream{constructor(){if(this.constructor===BaseStream){(0,_util.unreachable)("Cannot initialize BaseStream.");}}
get length(){(0,_util.unreachable)("Abstract getter `length` accessed");}
get isEmpty(){(0,_util.unreachable)("Abstract getter `isEmpty` accessed");}
get isDataLoaded(){return(0,_util.shadow)(this,"isDataLoaded",true);}
getByte(){(0,_util.unreachable)("Abstract method `getByte` called");}
getBytes(length){(0,_util.unreachable)("Abstract method `getBytes` called");}
peekByte(){const peekedByte=this.getByte();if(peekedByte!==-1){this.pos--;}
return peekedByte;}
peekBytes(length){const bytes=this.getBytes(length);this.pos-=bytes.length;return bytes;}
getUint16(){const b0=this.getByte();const b1=this.getByte();if(b0===-1||b1===-1){return-1;}
return(b0<<8)+b1;}
getInt32(){const b0=this.getByte();const b1=this.getByte();const b2=this.getByte();const b3=this.getByte();return(b0<<24)+(b1<<16)+(b2<<8)+b3;}
getByteRange(begin,end){(0,_util.unreachable)("Abstract method `getByteRange` called");}
getString(length){return(0,_util.bytesToString)(this.getBytes(length));}
skip(n){this.pos+=n||1;}
reset(){(0,_util.unreachable)("Abstract method `reset` called");}
moveStart(){(0,_util.unreachable)("Abstract method `moveStart` called");}
makeSubStream(start,length){let dict=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;(0,_util.unreachable)("Abstract method `makeSubStream` called");}
getBaseStreams(){return null;}}
exports.BaseStream=BaseStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.NetworkPdfManager=exports.LocalPdfManager=void 0;var _util=__w_pdfjs_require__(2);var _chunked_stream=__w_pdfjs_require__(134);var _core_utils=__w_pdfjs_require__(131);var _document=__w_pdfjs_require__(136);var _stream=__w_pdfjs_require__(135);function parseDocBaseUrl(url){if(url){const absoluteUrl=(0,_util.createValidAbsoluteUrl)(url);if(absoluteUrl){return absoluteUrl.href;}
(0,_util.warn)(`Invalid absolute docBaseUrl: "${url}".`);}
return null;}
class BasePdfManager{constructor(){if(this.constructor===BasePdfManager){(0,_util.unreachable)("Cannot initialize BasePdfManager.");}}
get docId(){return this._docId;}
get password(){return this._password;}
get docBaseUrl(){const catalog=this.pdfDocument.catalog;return(0,_util.shadow)(this,"docBaseUrl",catalog.baseUrl||this._docBaseUrl);}
onLoadedStream(){(0,_util.unreachable)("Abstract method `onLoadedStream` called");}
ensureDoc(prop,args){return this.ensure(this.pdfDocument,prop,args);}
ensureXRef(prop,args){return this.ensure(this.pdfDocument.xref,prop,args);}
ensureCatalog(prop,args){return this.ensure(this.pdfDocument.catalog,prop,args);}
getPage(pageIndex){return this.pdfDocument.getPage(pageIndex);}
fontFallback(id,handler){return this.pdfDocument.fontFallback(id,handler);}
loadXfaFonts(handler,task){return this.pdfDocument.loadXfaFonts(handler,task);}
loadXfaImages(){return this.pdfDocument.loadXfaImages();}
serializeXfaData(annotationStorage){return this.pdfDocument.serializeXfaData(annotationStorage);}
cleanup(){let manuallyTriggered=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return this.pdfDocument.cleanup(manuallyTriggered);}
async ensure(obj,prop,args){(0,_util.unreachable)("Abstract method `ensure` called");}
requestRange(begin,end){(0,_util.unreachable)("Abstract method `requestRange` called");}
requestLoadedStream(){(0,_util.unreachable)("Abstract method `requestLoadedStream` called");}
sendProgressiveData(chunk){(0,_util.unreachable)("Abstract method `sendProgressiveData` called");}
updatePassword(password){this._password=password;}
terminate(reason){(0,_util.unreachable)("Abstract method `terminate` called");}}
class LocalPdfManager extends BasePdfManager{constructor(docId,data,password,msgHandler,evaluatorOptions,enableXfa,docBaseUrl){super();this._docId=docId;this._password=password;this._docBaseUrl=parseDocBaseUrl(docBaseUrl);this.msgHandler=msgHandler;this.evaluatorOptions=evaluatorOptions;this.enableXfa=enableXfa;const stream=new _stream.Stream(data);this.pdfDocument=new _document.PDFDocument(this,stream);this._loadedStreamPromise=Promise.resolve(stream);}
async ensure(obj,prop,args){const value=obj[prop];if(typeof value==="function"){return value.apply(obj,args);}
return value;}
requestRange(begin,end){return Promise.resolve();}
requestLoadedStream(){}
onLoadedStream(){return this._loadedStreamPromise;}
terminate(reason){}}
exports.LocalPdfManager=LocalPdfManager;class NetworkPdfManager extends BasePdfManager{constructor(docId,pdfNetworkStream,args,evaluatorOptions,enableXfa,docBaseUrl){super();this._docId=docId;this._password=args.password;this._docBaseUrl=parseDocBaseUrl(docBaseUrl);this.msgHandler=args.msgHandler;this.evaluatorOptions=evaluatorOptions;this.enableXfa=enableXfa;this.streamManager=new _chunked_stream.ChunkedStreamManager(pdfNetworkStream,{msgHandler:args.msgHandler,length:args.length,disableAutoFetch:args.disableAutoFetch,rangeChunkSize:args.rangeChunkSize});this.pdfDocument=new _document.PDFDocument(this,this.streamManager.getStream());}
async ensure(obj,prop,args){try{const value=obj[prop];if(typeof value==="function"){return value.apply(obj,args);}
return value;}catch(ex){if(!(ex instanceof _core_utils.MissingDataException)){throw ex;}
await this.requestRange(ex.begin,ex.end);return this.ensure(obj,prop,args);}}
requestRange(begin,end){return this.streamManager.requestRange(begin,end);}
requestLoadedStream(){this.streamManager.requestAllChunks();}
sendProgressiveData(chunk){this.streamManager.onReceiveData({chunk});}
onLoadedStream(){return this.streamManager.onLoadedStream();}
terminate(reason){this.streamManager.abort(reason);}}
exports.NetworkPdfManager=NetworkPdfManager;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.ChunkedStreamManager=exports.ChunkedStream=void 0;var _util=__w_pdfjs_require__(2);var _core_utils=__w_pdfjs_require__(131);var _stream=__w_pdfjs_require__(135);class ChunkedStream extends _stream.Stream{constructor(length,chunkSize,manager){super(new Uint8Array(length),0,length,null);this.chunkSize=chunkSize;this._loadedChunks=new Set();this.numChunks=Math.ceil(length/chunkSize);this.manager=manager;this.progressiveDataLength=0;this.lastSuccessfulEnsureByteChunk=-1;}
getMissingChunks(){const chunks=[];for(let chunk=0,n=this.numChunks;chunk<n;++chunk){if(!this._loadedChunks.has(chunk)){chunks.push(chunk);}}
return chunks;}
get numChunksLoaded(){return this._loadedChunks.size;}
get isDataLoaded(){return this.numChunksLoaded===this.numChunks;}
onReceiveData(begin,chunk){const chunkSize=this.chunkSize;if(begin%chunkSize!==0){throw new Error(`Bad begin offset: ${begin}`);}
const end=begin+chunk.byteLength;if(end%chunkSize!==0&&end!==this.bytes.length){throw new Error(`Bad end offset: ${end}`);}
this.bytes.set(new Uint8Array(chunk),begin);const beginChunk=Math.floor(begin/chunkSize);const endChunk=Math.floor((end-1)/chunkSize)+1;for(let curChunk=beginChunk;curChunk<endChunk;++curChunk){this._loadedChunks.add(curChunk);}}
onReceiveProgressiveData(data){let position=this.progressiveDataLength;const beginChunk=Math.floor(position/this.chunkSize);this.bytes.set(new Uint8Array(data),position);position+=data.byteLength;this.progressiveDataLength=position;const endChunk=position>=this.end?this.numChunks:Math.floor(position/this.chunkSize);for(let curChunk=beginChunk;curChunk<endChunk;++curChunk){this._loadedChunks.add(curChunk);}}
ensureByte(pos){if(pos<this.progressiveDataLength){return;}
const chunk=Math.floor(pos/this.chunkSize);if(chunk>this.numChunks){return;}
if(chunk===this.lastSuccessfulEnsureByteChunk){return;}
if(!this._loadedChunks.has(chunk)){throw new _core_utils.MissingDataException(pos,pos+1);}
this.lastSuccessfulEnsureByteChunk=chunk;}
ensureRange(begin,end){if(begin>=end){return;}
if(end<=this.progressiveDataLength){return;}
const beginChunk=Math.floor(begin/this.chunkSize);if(beginChunk>this.numChunks){return;}
const endChunk=Math.min(Math.floor((end-1)/this.chunkSize)+1,this.numChunks);for(let chunk=beginChunk;chunk<endChunk;++chunk){if(!this._loadedChunks.has(chunk)){throw new _core_utils.MissingDataException(begin,end);}}}
nextEmptyChunk(beginChunk){const numChunks=this.numChunks;for(let i=0;i<numChunks;++i){const chunk=(beginChunk+i)%numChunks;if(!this._loadedChunks.has(chunk)){return chunk;}}
return null;}
hasChunk(chunk){return this._loadedChunks.has(chunk);}
getByte(){const pos=this.pos;if(pos>=this.end){return-1;}
if(pos>=this.progressiveDataLength){this.ensureByte(pos);}
return this.bytes[this.pos++];}
getBytes(length){const bytes=this.bytes;const pos=this.pos;const strEnd=this.end;if(!length){if(strEnd>this.progressiveDataLength){this.ensureRange(pos,strEnd);}
return bytes.subarray(pos,strEnd);}
let end=pos+length;if(end>strEnd){end=strEnd;}
if(end>this.progressiveDataLength){this.ensureRange(pos,end);}
this.pos=end;return bytes.subarray(pos,end);}
getByteRange(begin,end){if(begin<0){begin=0;}
if(end>this.end){end=this.end;}
if(end>this.progressiveDataLength){this.ensureRange(begin,end);}
return this.bytes.subarray(begin,end);}
makeSubStream(start,length){let dict=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(length){if(start+length>this.progressiveDataLength){this.ensureRange(start,start+length);}}else{if(start>=this.progressiveDataLength){this.ensureByte(start);}}
function ChunkedStreamSubstream(){}
ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){const chunkSize=this.chunkSize;const beginChunk=Math.floor(this.start/chunkSize);const endChunk=Math.floor((this.end-1)/chunkSize)+1;const missingChunks=[];for(let chunk=beginChunk;chunk<endChunk;++chunk){if(!this._loadedChunks.has(chunk)){missingChunks.push(chunk);}}
return missingChunks;};Object.defineProperty(ChunkedStreamSubstream.prototype,"isDataLoaded",{get(){if(this.numChunksLoaded===this.numChunks){return true;}
return this.getMissingChunks().length===0;},configurable:true});const subStream=new ChunkedStreamSubstream();subStream.pos=subStream.start=start;subStream.end=start+length||this.end;subStream.dict=dict;return subStream;}
getBaseStreams(){return[this];}}
exports.ChunkedStream=ChunkedStream;class ChunkedStreamManager{constructor(pdfNetworkStream,args){this.length=args.length;this.chunkSize=args.rangeChunkSize;this.stream=new ChunkedStream(this.length,this.chunkSize,this);this.pdfNetworkStream=pdfNetworkStream;this.disableAutoFetch=args.disableAutoFetch;this.msgHandler=args.msgHandler;this.currRequestId=0;this._chunksNeededByRequest=new Map();this._requestsByChunk=new Map();this._promisesByRequest=new Map();this.progressiveDataLength=0;this.aborted=false;this._loadedStreamCapability=(0,_util.createPromiseCapability)();}
onLoadedStream(){return this._loadedStreamCapability.promise;}
sendRequest(begin,end){const rangeReader=this.pdfNetworkStream.getRangeReader(begin,end);if(!rangeReader.isStreamingSupported){rangeReader.onProgress=this.onProgress.bind(this);}
let chunks=[],loaded=0;return new Promise((resolve,reject)=>{const readChunk=chunk=>{try{if(!chunk.done){const data=chunk.value;chunks.push(data);loaded+=(0,_util.arrayByteLength)(data);if(rangeReader.isStreamingSupported){this.onProgress({loaded});}
rangeReader.read().then(readChunk,reject);return;}
const chunkData=(0,_util.arraysToBytes)(chunks);chunks=null;resolve(chunkData);}catch(e){reject(e);}};rangeReader.read().then(readChunk,reject);}).then(data=>{if(this.aborted){return;}
this.onReceiveData({chunk:data,begin});});}
requestAllChunks(){const missingChunks=this.stream.getMissingChunks();this._requestChunks(missingChunks);return this._loadedStreamCapability.promise;}
_requestChunks(chunks){const requestId=this.currRequestId++;const chunksNeeded=new Set();this._chunksNeededByRequest.set(requestId,chunksNeeded);for(const chunk of chunks){if(!this.stream.hasChunk(chunk)){chunksNeeded.add(chunk);}}
if(chunksNeeded.size===0){return Promise.resolve();}
const capability=(0,_util.createPromiseCapability)();this._promisesByRequest.set(requestId,capability);const chunksToRequest=[];for(const chunk of chunksNeeded){let requestIds=this._requestsByChunk.get(chunk);if(!requestIds){requestIds=[];this._requestsByChunk.set(chunk,requestIds);chunksToRequest.push(chunk);}
requestIds.push(requestId);}
if(chunksToRequest.length>0){const groupedChunksToRequest=this.groupChunks(chunksToRequest);for(const groupedChunk of groupedChunksToRequest){const begin=groupedChunk.beginChunk*this.chunkSize;const end=Math.min(groupedChunk.endChunk*this.chunkSize,this.length);this.sendRequest(begin,end).catch(capability.reject);}}
return capability.promise.catch(reason=>{if(this.aborted){return;}
throw reason;});}
getStream(){return this.stream;}
requestRange(begin,end){end=Math.min(end,this.length);const beginChunk=this.getBeginChunk(begin);const endChunk=this.getEndChunk(end);const chunks=[];for(let chunk=beginChunk;chunk<endChunk;++chunk){chunks.push(chunk);}
return this._requestChunks(chunks);}
requestRanges(){let ranges=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];const chunksToRequest=[];for(const range of ranges){const beginChunk=this.getBeginChunk(range.begin);const endChunk=this.getEndChunk(range.end);for(let chunk=beginChunk;chunk<endChunk;++chunk){if(!chunksToRequest.includes(chunk)){chunksToRequest.push(chunk);}}}
chunksToRequest.sort(function(a,b){return a-b;});return this._requestChunks(chunksToRequest);}
groupChunks(chunks){const groupedChunks=[];let beginChunk=-1;let prevChunk=-1;for(let i=0,ii=chunks.length;i<ii;++i){const chunk=chunks[i];if(beginChunk<0){beginChunk=chunk;}
if(prevChunk>=0&&prevChunk+1!==chunk){groupedChunks.push({beginChunk,endChunk:prevChunk+1});beginChunk=chunk;}
if(i+1===chunks.length){groupedChunks.push({beginChunk,endChunk:chunk+1});}
prevChunk=chunk;}
return groupedChunks;}
onProgress(args){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+args.loaded,total:this.length});}
onReceiveData(args){const chunk=args.chunk;const isProgressive=args.begin===undefined;const begin=isProgressive?this.progressiveDataLength:args.begin;const end=begin+chunk.byteLength;const beginChunk=Math.floor(begin/this.chunkSize);const endChunk=end<this.length?Math.floor(end/this.chunkSize):Math.ceil(end/this.chunkSize);if(isProgressive){this.stream.onReceiveProgressiveData(chunk);this.progressiveDataLength=end;}else{this.stream.onReceiveData(begin,chunk);}
if(this.stream.isDataLoaded){this._loadedStreamCapability.resolve(this.stream);}
const loadedRequests=[];for(let curChunk=beginChunk;curChunk<endChunk;++curChunk){const requestIds=this._requestsByChunk.get(curChunk);if(!requestIds){continue;}
this._requestsByChunk.delete(curChunk);for(const requestId of requestIds){const chunksNeeded=this._chunksNeededByRequest.get(requestId);if(chunksNeeded.has(curChunk)){chunksNeeded.delete(curChunk);}
if(chunksNeeded.size>0){continue;}
loadedRequests.push(requestId);}}
if(!this.disableAutoFetch&&this._requestsByChunk.size===0){let nextEmptyChunk;if(this.stream.numChunksLoaded===1){const lastChunk=this.stream.numChunks-1;if(!this.stream.hasChunk(lastChunk)){nextEmptyChunk=lastChunk;}}else{nextEmptyChunk=this.stream.nextEmptyChunk(endChunk);}
if(Number.isInteger(nextEmptyChunk)){this._requestChunks([nextEmptyChunk]);}}
for(const requestId of loadedRequests){const capability=this._promisesByRequest.get(requestId);this._promisesByRequest.delete(requestId);capability.resolve();}
this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length});}
onError(err){this._loadedStreamCapability.reject(err);}
getBeginChunk(begin){return Math.floor(begin/this.chunkSize);}
getEndChunk(end){return Math.floor((end-1)/this.chunkSize)+1;}
abort(reason){this.aborted=true;if(this.pdfNetworkStream){this.pdfNetworkStream.cancelAllRequests(reason);}
for(const capability of this._promisesByRequest.values()){capability.reject(reason);}}}
exports.ChunkedStreamManager=ChunkedStreamManager;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.StringStream=exports.Stream=exports.NullStream=void 0;var _base_stream=__w_pdfjs_require__(132);var _util=__w_pdfjs_require__(2);class Stream extends _base_stream.BaseStream{constructor(arrayBuffer,start,length,dict){super();this.bytes=arrayBuffer instanceof Uint8Array?arrayBuffer:new Uint8Array(arrayBuffer);this.start=start||0;this.pos=this.start;this.end=start+length||this.bytes.length;this.dict=dict;}
get length(){return this.end-this.start;}
get isEmpty(){return this.length===0;}
getByte(){if(this.pos>=this.end){return-1;}
return this.bytes[this.pos++];}
getBytes(length){const bytes=this.bytes;const pos=this.pos;const strEnd=this.end;if(!length){return bytes.subarray(pos,strEnd);}
let end=pos+length;if(end>strEnd){end=strEnd;}
this.pos=end;return bytes.subarray(pos,end);}
getByteRange(begin,end){if(begin<0){begin=0;}
if(end>this.end){end=this.end;}
return this.bytes.subarray(begin,end);}
reset(){this.pos=this.start;}
moveStart(){this.start=this.pos;}
makeSubStream(start,length){let dict=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;return new Stream(this.bytes.buffer,start,length,dict);}}
exports.Stream=Stream;class StringStream extends Stream{constructor(str){super((0,_util.stringToBytes)(str));}}
exports.StringStream=StringStream;class NullStream extends Stream{constructor(){super(new Uint8Array(0));}}
exports.NullStream=NullStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Page=exports.PDFDocument=void 0;var _annotation=__w_pdfjs_require__(137);var _util=__w_pdfjs_require__(2);var _core_utils=__w_pdfjs_require__(131);var _primitives=__w_pdfjs_require__(130);var _xfa_fonts=__w_pdfjs_require__(176);var _base_stream=__w_pdfjs_require__(132);var _crypto=__w_pdfjs_require__(192);var _catalog=__w_pdfjs_require__(194);var _cleanup_helper=__w_pdfjs_require__(196);var _dataset_reader=__w_pdfjs_require__(225);var _parser=__w_pdfjs_require__(142);var _stream=__w_pdfjs_require__(135);var _object_loader=__w_pdfjs_require__(200);var _operator_list=__w_pdfjs_require__(187);var _evaluator=__w_pdfjs_require__(140);var _decode_stream=__w_pdfjs_require__(144);var _struct_tree=__w_pdfjs_require__(199);var _writer=__w_pdfjs_require__(190);var _factory=__w_pdfjs_require__(201);var _xref=__w_pdfjs_require__(226);const DEFAULT_USER_UNIT=1.0;const LETTER_SIZE_MEDIABOX=[0,0,612,792];class Page{constructor(_ref){let{pdfManager,xref,pageIndex,pageDict,ref,globalIdFactory,fontCache,builtInCMapCache,standardFontDataCache,globalImageCache,nonBlendModesSet,xfaFactory}=_ref;this.pdfManager=pdfManager;this.pageIndex=pageIndex;this.pageDict=pageDict;this.xref=xref;this.ref=ref;this.fontCache=fontCache;this.builtInCMapCache=builtInCMapCache;this.standardFontDataCache=standardFontDataCache;this.globalImageCache=globalImageCache;this.nonBlendModesSet=nonBlendModesSet;this.evaluatorOptions=pdfManager.evaluatorOptions;this.resourcesPromise=null;this.xfaFactory=xfaFactory;const idCounters={obj:0};this._localIdFactory=class extends globalIdFactory{static createObjId(){return`p${pageIndex}_${++idCounters.obj}`;}
static getPageObjId(){return`page${ref.toString()}`;}};}
_getInheritableProperty(key){let getArray=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;const value=(0,_core_utils.getInheritableProperty)({dict:this.pageDict,key,getArray,stopWhenFound:false});if(!Array.isArray(value)){return value;}
if(value.length===1||!(value[0]instanceof _primitives.Dict)){return value[0];}
return _primitives.Dict.merge({xref:this.xref,dictArray:value});}
get content(){return this.pageDict.getArray("Contents");}
get resources(){const resources=this._getInheritableProperty("Resources");return(0,_util.shadow)(this,"resources",resources instanceof _primitives.Dict?resources:_primitives.Dict.empty);}
_getBoundingBox(name){if(this.xfaData){return this.xfaData.bbox;}
const box=this._getInheritableProperty(name,true);if(Array.isArray(box)&&box.length===4){if(box[2]-box[0]!==0&&box[3]-box[1]!==0){return box;}
(0,_util.warn)(`Empty /${name} entry.`);}
return null;}
get mediaBox(){return(0,_util.shadow)(this,"mediaBox",this._getBoundingBox("MediaBox")||LETTER_SIZE_MEDIABOX);}
get cropBox(){return(0,_util.shadow)(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox);}
get userUnit(){let obj=this.pageDict.get("UserUnit");if(typeof obj!=="number"||obj<=0){obj=DEFAULT_USER_UNIT;}
return(0,_util.shadow)(this,"userUnit",obj);}
get view(){const{cropBox,mediaBox}=this;let view;if(cropBox===mediaBox||(0,_util.isArrayEqual)(cropBox,mediaBox)){view=mediaBox;}else{const box=_util.Util.intersect(cropBox,mediaBox);if(box&&box[2]-box[0]!==0&&box[3]-box[1]!==0){view=box;}else{(0,_util.warn)("Empty /CropBox and /MediaBox intersection.");}}
return(0,_util.shadow)(this,"view",view||mediaBox);}
get rotate(){let rotate=this._getInheritableProperty("Rotate")||0;if(rotate%90!==0){rotate=0;}else if(rotate>=360){rotate%=360;}else if(rotate<0){rotate=(rotate%360+360)%360;}
return(0,_util.shadow)(this,"rotate",rotate);}
_onSubStreamError(handler,reason,objId){if(this.evaluatorOptions.ignoreErrors){handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorContentSubStream});(0,_util.warn)(`getContentStream - ignoring sub-stream (${objId}): "${reason}".`);return;}
throw reason;}
getContentStream(handler){return this.pdfManager.ensure(this,"content").then(content=>{if(content instanceof _base_stream.BaseStream){return content;}
if(Array.isArray(content)){return new _decode_stream.StreamsSequenceStream(content,this._onSubStreamError.bind(this,handler));}
return new _stream.NullStream();});}
get xfaData(){return(0,_util.shadow)(this,"xfaData",this.xfaFactory?{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}:null);}
async saveNewAnnotations(handler,task,annotations){if(this.xfaFactory){throw new Error("XFA: Cannot save new annotations.");}
const partialEvaluator=new _evaluator.PartialEvaluator({xref:this.xref,handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});const pageDict=this.pageDict;const annotationsArray=this.annotations.slice();const newData=await _annotation.AnnotationFactory.saveNewAnnotations(partialEvaluator,task,annotations);for(const{ref}of newData.annotations){annotationsArray.push(ref);}
const savedDict=pageDict.get("Annots");pageDict.set("Annots",annotationsArray);const buffer=[];let transform=null;if(this.xref.encrypt){transform=this.xref.encrypt.createCipherTransform(this.ref.num,this.ref.gen);}
(0,_writer.writeObject)(this.ref,pageDict,buffer,transform);if(savedDict){pageDict.set("Annots",savedDict);}
const objects=newData.dependencies;objects.push({ref:this.ref,data:buffer.join("")},...newData.annotations);return objects;}
save(handler,task,annotationStorage){const partialEvaluator=new _evaluator.PartialEvaluator({xref:this.xref,handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return this._parsedAnnotations.then(function(annotations){const newRefsPromises=[];for(const annotation of annotations){if(!annotation.mustBePrinted(annotationStorage)){continue;}
newRefsPromises.push(annotation.save(partialEvaluator,task,annotationStorage).catch(function(reason){(0,_util.warn)("save - ignoring annotation data during "+`"${task.name}" task: "${reason}".`);return null;}));}
return Promise.all(newRefsPromises).then(function(newRefs){return newRefs.filter(newRef=>!!newRef);});});}
loadResources(keys){if(!this.resourcesPromise){this.resourcesPromise=this.pdfManager.ensure(this,"resources");}
return this.resourcesPromise.then(()=>{const objectLoader=new _object_loader.ObjectLoader(this.resources,keys,this.xref);return objectLoader.load();});}
getOperatorList(_ref2){let{handler,sink,task,intent,cacheKey,annotationStorage=null}=_ref2;const contentStreamPromise=this.getContentStream(handler);const resourcesPromise=this.loadResources(["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"]);const partialEvaluator=new _evaluator.PartialEvaluator({xref:this.xref,handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});const newAnnotationsByPage=!this.xfaFactory?(0,_core_utils.getNewAnnotationsMap)(annotationStorage):null;let newAnnotationsPromise=Promise.resolve(null);if(newAnnotationsByPage){const newAnnotations=newAnnotationsByPage.get(this.pageIndex);if(newAnnotations){newAnnotationsPromise=_annotation.AnnotationFactory.printNewAnnotations(partialEvaluator,task,newAnnotations);}}
const dataPromises=Promise.all([contentStreamPromise,resourcesPromise]);const pageListPromise=dataPromises.then(_ref3=>{let[contentStream]=_ref3;const opList=new _operator_list.OperatorList(intent,sink);handler.send("StartRenderPage",{transparency:partialEvaluator.hasBlendModes(this.resources,this.nonBlendModesSet),pageIndex:this.pageIndex,cacheKey});return partialEvaluator.getOperatorList({stream:contentStream,task,resources:this.resources,operatorList:opList}).then(function(){return opList;});});return Promise.all([pageListPromise,this._parsedAnnotations,newAnnotationsPromise]).then(function(_ref4){let[pageOpList,annotations,newAnnotations]=_ref4;if(newAnnotations){annotations=annotations.concat(newAnnotations);}
if(annotations.length===0||intent&_util.RenderingIntentFlag.ANNOTATIONS_DISABLE){pageOpList.flush(true);return{length:pageOpList.totalLength};}
const renderForms=!!(intent&_util.RenderingIntentFlag.ANNOTATIONS_FORMS),intentAny=!!(intent&_util.RenderingIntentFlag.ANY),intentDisplay=!!(intent&_util.RenderingIntentFlag.DISPLAY),intentPrint=!!(intent&_util.RenderingIntentFlag.PRINT);const opListPromises=[];for(const annotation of annotations){if(intentAny||intentDisplay&&annotation.mustBeViewed(annotationStorage)||intentPrint&&annotation.mustBePrinted(annotationStorage)){opListPromises.push(annotation.getOperatorList(partialEvaluator,task,intent,renderForms,annotationStorage).catch(function(reason){(0,_util.warn)("getOperatorList - ignoring annotation data during "+`"${task.name}" task: "${reason}".`);return null;}));}}
return Promise.all(opListPromises).then(function(opLists){let form=false,canvas=false;for(const{opList,separateForm,separateCanvas}of opLists){pageOpList.addOpList(opList);if(separateForm){form=separateForm;}
if(separateCanvas){canvas=separateCanvas;}}
pageOpList.flush(true,{form,canvas});return{length:pageOpList.totalLength};});});}
extractTextContent(_ref5){let{handler,task,includeMarkedContent,sink,combineTextItems}=_ref5;const contentStreamPromise=this.getContentStream(handler);const resourcesPromise=this.loadResources(["ExtGState","Font","Properties","XObject"]);const dataPromises=Promise.all([contentStreamPromise,resourcesPromise]);return dataPromises.then(_ref6=>{let[contentStream]=_ref6;const partialEvaluator=new _evaluator.PartialEvaluator({xref:this.xref,handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return partialEvaluator.getTextContent({stream:contentStream,task,resources:this.resources,includeMarkedContent,combineTextItems,sink,viewBox:this.view});});}
async getStructTree(){const structTreeRoot=await this.pdfManager.ensureCatalog("structTreeRoot");if(!structTreeRoot){return null;}
const structTree=await this.pdfManager.ensure(this,"_parseStructTree",[structTreeRoot]);return structTree.serializable;}
_parseStructTree(structTreeRoot){const tree=new _struct_tree.StructTreePage(structTreeRoot,this.pageDict);tree.parse();return tree;}
async getAnnotationsData(handler,task,intent){const annotations=await this._parsedAnnotations;if(annotations.length===0){return[];}
const textContentPromises=[];const annotationsData=[];let partialEvaluator;const intentAny=!!(intent&_util.RenderingIntentFlag.ANY),intentDisplay=!!(intent&_util.RenderingIntentFlag.DISPLAY),intentPrint=!!(intent&_util.RenderingIntentFlag.PRINT);for(const annotation of annotations){const isVisible=intentAny||intentDisplay&&annotation.viewable;if(isVisible||intentPrint&&annotation.printable){annotationsData.push(annotation.data);}
if(annotation.hasTextContent&&isVisible){if(!partialEvaluator){partialEvaluator=new _evaluator.PartialEvaluator({xref:this.xref,handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});}
textContentPromises.push(annotation.extractTextContent(partialEvaluator,task,this.view).catch(function(reason){(0,_util.warn)(`getAnnotationsData - ignoring textContent during "${task.name}" task: "${reason}".`);}));}}
await Promise.all(textContentPromises);return annotationsData;}
get annotations(){const annots=this._getInheritableProperty("Annots");return(0,_util.shadow)(this,"annotations",Array.isArray(annots)?annots:[]);}
get _parsedAnnotations(){const parsedAnnotations=this.pdfManager.ensure(this,"annotations").then(()=>{const annotationPromises=[];for(const annotationRef of this.annotations){annotationPromises.push(_annotation.AnnotationFactory.create(this.xref,annotationRef,this.pdfManager,this._localIdFactory,false).catch(function(reason){(0,_util.warn)(`_parsedAnnotations: "${reason}".`);return null;}));}
return Promise.all(annotationPromises).then(function(annotations){if(annotations.length===0){return annotations;}
const sortedAnnotations=[];let popupAnnotations;for(const annotation of annotations){if(!annotation){continue;}
if(annotation instanceof _annotation.PopupAnnotation){if(!popupAnnotations){popupAnnotations=[];}
popupAnnotations.push(annotation);continue;}
sortedAnnotations.push(annotation);}
if(popupAnnotations){sortedAnnotations.push(...popupAnnotations);}
return sortedAnnotations;});});return(0,_util.shadow)(this,"_parsedAnnotations",parsedAnnotations);}
get jsActions(){const actions=(0,_core_utils.collectActions)(this.xref,this.pageDict,_util.PageActionEventType);return(0,_util.shadow)(this,"jsActions",actions);}}
exports.Page=Page;const PDF_HEADER_SIGNATURE=new Uint8Array([0x25,0x50,0x44,0x46,0x2d]);const STARTXREF_SIGNATURE=new Uint8Array([0x73,0x74,0x61,0x72,0x74,0x78,0x72,0x65,0x66]);const ENDOBJ_SIGNATURE=new Uint8Array([0x65,0x6e,0x64,0x6f,0x62,0x6a]);const FINGERPRINT_FIRST_BYTES=1024;const EMPTY_FINGERPRINT="\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";const PDF_HEADER_VERSION_REGEXP=/^[1-9]\.\d$/;function find(stream,signature){let limit=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1024;let backwards=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;const signatureLength=signature.length;const scanBytes=stream.peekBytes(limit);const scanLength=scanBytes.length-signatureLength;if(scanLength<=0){return false;}
if(backwards){const signatureEnd=signatureLength-1;let pos=scanBytes.length-1;while(pos>=signatureEnd){let j=0;while(j<signatureLength&&scanBytes[pos-j]===signature[signatureEnd-j]){j++;}
if(j>=signatureLength){stream.pos+=pos-signatureEnd;return true;}
pos--;}}else{let pos=0;while(pos<=scanLength){let j=0;while(j<signatureLength&&scanBytes[pos+j]===signature[j]){j++;}
if(j>=signatureLength){stream.pos+=pos;return true;}
pos++;}}
return false;}
class PDFDocument{constructor(pdfManager,stream){if(stream.length<=0){throw new _util.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");}
this.pdfManager=pdfManager;this.stream=stream;this.xref=new _xref.XRef(stream,pdfManager);this._pagePromises=new Map();this._version=null;const idCounters={font:0};this._globalIdFactory=class{static getDocId(){return`g_${pdfManager.docId}`;}
static createFontId(){return`f${++idCounters.font}`;}
static createObjId(){(0,_util.unreachable)("Abstract method `createObjId` called.");}
static getPageObjId(){(0,_util.unreachable)("Abstract method `getPageObjId` called.");}};}
parse(recoveryMode){this.xref.parse(recoveryMode);this.catalog=new _catalog.Catalog(this.pdfManager,this.xref);if(this.catalog.version){this._version=this.catalog.version;}}
get linearization(){let linearization=null;try{linearization=_parser.Linearization.create(this.stream);}catch(err){if(err instanceof _core_utils.MissingDataException){throw err;}
(0,_util.info)(err);}
return(0,_util.shadow)(this,"linearization",linearization);}
get startXRef(){const stream=this.stream;let startXRef=0;if(this.linearization){stream.reset();if(find(stream,ENDOBJ_SIGNATURE)){startXRef=stream.pos+6-stream.start;}}else{const step=1024;const startXRefLength=STARTXREF_SIGNATURE.length;let found=false,pos=stream.end;while(!found&&pos>0){pos-=step-startXRefLength;if(pos<0){pos=0;}
stream.pos=pos;found=find(stream,STARTXREF_SIGNATURE,step,true);}
if(found){stream.skip(9);let ch;do{ch=stream.getByte();}while((0,_core_utils.isWhiteSpace)(ch));let str="";while(ch>=0x20&&ch<=0x39){str+=String.fromCharCode(ch);ch=stream.getByte();}
startXRef=parseInt(str,10);if(isNaN(startXRef)){startXRef=0;}}}
return(0,_util.shadow)(this,"startXRef",startXRef);}
checkHeader(){const stream=this.stream;stream.reset();if(!find(stream,PDF_HEADER_SIGNATURE)){return;}
stream.moveStart();const MAX_PDF_VERSION_LENGTH=12;let version="",ch;while((ch=stream.getByte())>0x20){if(version.length>=MAX_PDF_VERSION_LENGTH){break;}
version+=String.fromCharCode(ch);}
if(!this._version){this._version=version.substring(5);}}
parseStartXRef(){this.xref.setStartXRef(this.startXRef);}
get numPages(){let num=0;if(this.catalog.hasActualNumPages){num=this.catalog.numPages;}else if(this.xfaFactory){num=this.xfaFactory.getNumPages();}else if(this.linearization){num=this.linearization.numPages;}else{num=this.catalog.numPages;}
return(0,_util.shadow)(this,"numPages",num);}
_hasOnlyDocumentSignatures(fields){let recursionDepth=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;const RECURSION_LIMIT=10;if(!Array.isArray(fields)){return false;}
return fields.every(field=>{field=this.xref.fetchIfRef(field);if(!(field instanceof _primitives.Dict)){return false;}
if(field.has("Kids")){if(++recursionDepth>RECURSION_LIMIT){(0,_util.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached");return false;}
return this._hasOnlyDocumentSignatures(field.get("Kids"),recursionDepth);}
const isSignature=(0,_primitives.isName)(field.get("FT"),"Sig");const rectangle=field.get("Rect");const isInvisible=Array.isArray(rectangle)&&rectangle.every(value=>value===0);return isSignature&&isInvisible;});}
get _xfaStreams(){const acroForm=this.catalog.acroForm;if(!acroForm){return null;}
const xfa=acroForm.get("XFA");const entries={"xdp:xdp":"",template:"",datasets:"",config:"",connectionSet:"",localeSet:"",stylesheet:"","/xdp:xdp":""};if(xfa instanceof _base_stream.BaseStream&&!xfa.isEmpty){entries["xdp:xdp"]=xfa;return entries;}
if(!Array.isArray(xfa)||xfa.length===0){return null;}
for(let i=0,ii=xfa.length;i<ii;i+=2){let name;if(i===0){name="xdp:xdp";}else if(i===ii-2){name="/xdp:xdp";}else{name=xfa[i];}
if(!entries.hasOwnProperty(name)){continue;}
const data=this.xref.fetchIfRef(xfa[i+1]);if(!(data instanceof _base_stream.BaseStream)||data.isEmpty){continue;}
entries[name]=data;}
return entries;}
get xfaDatasets(){const streams=this._xfaStreams;if(!streams){return(0,_util.shadow)(this,"xfaDatasets",null);}
for(const key of["datasets","xdp:xdp"]){const stream=streams[key];if(!stream){continue;}
try{const str=(0,_util.stringToUTF8String)(stream.getString());const data={[key]:str};return(0,_util.shadow)(this,"xfaDatasets",new _dataset_reader.DatasetReader(data));}catch(_){(0,_util.warn)("XFA - Invalid utf-8 string.");break;}}
return(0,_util.shadow)(this,"xfaDatasets",null);}
get xfaData(){const streams=this._xfaStreams;if(!streams){return null;}
const data=Object.create(null);for(const[key,stream]of Object.entries(streams)){if(!stream){continue;}
try{data[key]=(0,_util.stringToUTF8String)(stream.getString());}catch(_){(0,_util.warn)("XFA - Invalid utf-8 string.");return null;}}
return data;}
get xfaFactory(){let data;if(this.pdfManager.enableXfa&&this.catalog.needsRendering&&this.formInfo.hasXfa&&!this.formInfo.hasAcroForm){data=this.xfaData;}
return(0,_util.shadow)(this,"xfaFactory",data?new _factory.XFAFactory(data):null);}
get isPureXfa(){return this.xfaFactory?this.xfaFactory.isValid():false;}
get htmlForXfa(){return this.xfaFactory?this.xfaFactory.getPages():null;}
async loadXfaImages(){const xfaImagesDict=await this.pdfManager.ensureCatalog("xfaImages");if(!xfaImagesDict){return;}
const keys=xfaImagesDict.getKeys();const objectLoader=new _object_loader.ObjectLoader(xfaImagesDict,keys,this.xref);await objectLoader.load();const xfaImages=new Map();for(const key of keys){const stream=xfaImagesDict.get(key);if(stream instanceof _base_stream.BaseStream){xfaImages.set(key,stream.getBytes());}}
this.xfaFactory.setImages(xfaImages);}
async loadXfaFonts(handler,task){const acroForm=await this.pdfManager.ensureCatalog("acroForm");if(!acroForm){return;}
const resources=await acroForm.getAsync("DR");if(!(resources instanceof _primitives.Dict)){return;}
const objectLoader=new _object_loader.ObjectLoader(resources,["Font"],this.xref);await objectLoader.load();const fontRes=resources.get("Font");if(!(fontRes instanceof _primitives.Dict)){return;}
const options=Object.assign(Object.create(null),this.pdfManager.evaluatorOptions);options.useSystemFonts=false;const partialEvaluator=new _evaluator.PartialEvaluator({xref:this.xref,handler,pageIndex:-1,idFactory:this._globalIdFactory,fontCache:this.catalog.fontCache,builtInCMapCache:this.catalog.builtInCMapCache,standardFontDataCache:this.catalog.standardFontDataCache,options});const operatorList=new _operator_list.OperatorList();const pdfFonts=[];const initialState={get font(){return pdfFonts.at(-1);},set font(font){pdfFonts.push(font);},clone(){return this;}};const fonts=new Map();fontRes.forEach((fontName,font)=>{fonts.set(fontName,font);});const promises=[];for(const[fontName,font]of fonts){const descriptor=font.get("FontDescriptor");if(!(descriptor instanceof _primitives.Dict)){continue;}
let fontFamily=descriptor.get("FontFamily");fontFamily=fontFamily.replace(/[ ]+(\d)/g,"$1");const fontWeight=descriptor.get("FontWeight");const italicAngle=-descriptor.get("ItalicAngle");const cssFontInfo={fontFamily,fontWeight,italicAngle};if(!(0,_core_utils.validateCSSFont)(cssFontInfo)){continue;}
promises.push(partialEvaluator.handleSetFont(resources,[_primitives.Name.get(fontName),1],null,operatorList,task,initialState,null,cssFontInfo).catch(function(reason){(0,_util.warn)(`loadXfaFonts: "${reason}".`);return null;}));}
await Promise.all(promises);const missingFonts=this.xfaFactory.setFonts(pdfFonts);if(!missingFonts){return;}
options.ignoreErrors=true;promises.length=0;pdfFonts.length=0;const reallyMissingFonts=new Set();for(const missing of missingFonts){if(!(0,_xfa_fonts.getXfaFontName)(`${missing}-Regular`)){reallyMissingFonts.add(missing);}}
if(reallyMissingFonts.size){missingFonts.push("PdfJS-Fallback");}
for(const missing of missingFonts){if(reallyMissingFonts.has(missing)){continue;}
for(const fontInfo of[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}]){const name=`${missing}-${fontInfo.name}`;const dict=(0,_xfa_fonts.getXfaFontDict)(name);promises.push(partialEvaluator.handleSetFont(resources,[_primitives.Name.get(name),1],null,operatorList,task,initialState,dict,{fontFamily:missing,fontWeight:fontInfo.fontWeight,italicAngle:fontInfo.italicAngle}).catch(function(reason){(0,_util.warn)(`loadXfaFonts: "${reason}".`);return null;}));}}
await Promise.all(promises);this.xfaFactory.appendFonts(pdfFonts,reallyMissingFonts);}
async serializeXfaData(annotationStorage){return this.xfaFactory?this.xfaFactory.serializeData(annotationStorage):null;}
get formInfo(){const formInfo={hasFields:false,hasAcroForm:false,hasXfa:false,hasSignatures:false};const acroForm=this.catalog.acroForm;if(!acroForm){return(0,_util.shadow)(this,"formInfo",formInfo);}
try{const fields=acroForm.get("Fields");const hasFields=Array.isArray(fields)&&fields.length>0;formInfo.hasFields=hasFields;const xfa=acroForm.get("XFA");formInfo.hasXfa=Array.isArray(xfa)&&xfa.length>0||xfa instanceof _base_stream.BaseStream&&!xfa.isEmpty;const sigFlags=acroForm.get("SigFlags");const hasSignatures=!!(sigFlags&0x1);const hasOnlyDocumentSignatures=hasSignatures&&this._hasOnlyDocumentSignatures(fields);formInfo.hasAcroForm=hasFields&&!hasOnlyDocumentSignatures;formInfo.hasSignatures=hasSignatures;}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)(`Cannot fetch form information: "${ex}".`);}
return(0,_util.shadow)(this,"formInfo",formInfo);}
get documentInfo(){let version=this._version;if(typeof version!=="string"||!PDF_HEADER_VERSION_REGEXP.test(version)){(0,_util.warn)(`Invalid PDF header version number: ${version}`);version=null;}
const docInfo={PDFFormatVersion:version,Language:this.catalog.lang,EncryptFilterName:this.xref.encrypt?this.xref.encrypt.filterName:null,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection,IsSignaturesPresent:this.formInfo.hasSignatures};let infoDict;try{infoDict=this.xref.trailer.get("Info");}catch(err){if(err instanceof _core_utils.MissingDataException){throw err;}
(0,_util.info)("The document information dictionary is invalid.");}
if(!(infoDict instanceof _primitives.Dict)){return(0,_util.shadow)(this,"documentInfo",docInfo);}
for(const key of infoDict.getKeys()){const value=infoDict.get(key);switch(key){case"Title":case"Author":case"Subject":case"Keywords":case"Creator":case"Producer":case"CreationDate":case"ModDate":if(typeof value==="string"){docInfo[key]=(0,_util.stringToPDFString)(value);continue;}
break;case"Trapped":if(value instanceof _primitives.Name){docInfo[key]=value;continue;}
break;default:let customValue;switch(typeof value){case"string":customValue=(0,_util.stringToPDFString)(value);break;case"number":case"boolean":customValue=value;break;default:if(value instanceof _primitives.Name){customValue=value;}
break;}
if(customValue===undefined){(0,_util.warn)(`Bad value, for custom key "${key}", in Info: ${value}.`);continue;}
if(!docInfo.Custom){docInfo.Custom=Object.create(null);}
docInfo.Custom[key]=customValue;continue;}
(0,_util.warn)(`Bad value, for key "${key}", in Info: ${value}.`);}
return(0,_util.shadow)(this,"documentInfo",docInfo);}
get fingerprints(){function validate(data){return typeof data==="string"&&data.length>0&&data!==EMPTY_FINGERPRINT;}
function hexString(hash){const buf=[];for(let i=0,ii=hash.length;i<ii;i++){const hex=hash[i].toString(16);buf.push(hex.padStart(2,"0"));}
return buf.join("");}
const idArray=this.xref.trailer.get("ID");let hashOriginal,hashModified;if(Array.isArray(idArray)&&validate(idArray[0])){hashOriginal=(0,_util.stringToBytes)(idArray[0]);if(idArray[1]!==idArray[0]&&validate(idArray[1])){hashModified=(0,_util.stringToBytes)(idArray[1]);}}else{hashOriginal=(0,_crypto.calculateMD5)(this.stream.getByteRange(0,FINGERPRINT_FIRST_BYTES),0,FINGERPRINT_FIRST_BYTES);}
return(0,_util.shadow)(this,"fingerprints",[hexString(hashOriginal),hashModified?hexString(hashModified):null]);}
async _getLinearizationPage(pageIndex){const{catalog,linearization,xref}=this;const ref=_primitives.Ref.get(linearization.objectNumberFirst,0);try{const obj=await xref.fetchAsync(ref);if(obj instanceof _primitives.Dict){let type=obj.getRaw("Type");if(type instanceof _primitives.Ref){type=await xref.fetchAsync(type);}
if((0,_primitives.isName)(type,"Page")||!obj.has("Type")&&!obj.has("Kids")){if(!catalog.pageKidsCountCache.has(ref)){catalog.pageKidsCountCache.put(ref,1);}
if(!catalog.pageIndexCache.has(ref)){catalog.pageIndexCache.put(ref,0);}
return[obj,ref];}}
throw new _util.FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.");}catch(reason){(0,_util.warn)(`_getLinearizationPage: "${reason.message}".`);return catalog.getPageDict(pageIndex);}}
getPage(pageIndex){const cachedPromise=this._pagePromises.get(pageIndex);if(cachedPromise){return cachedPromise;}
const{catalog,linearization,xfaFactory}=this;let promise;if(xfaFactory){promise=Promise.resolve([_primitives.Dict.empty,null]);}else if(linearization&&linearization.pageFirst===pageIndex){promise=this._getLinearizationPage(pageIndex);}else{promise=catalog.getPageDict(pageIndex);}
promise=promise.then(_ref7=>{let[pageDict,ref]=_ref7;return new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex,pageDict,ref,globalIdFactory:this._globalIdFactory,fontCache:catalog.fontCache,builtInCMapCache:catalog.builtInCMapCache,standardFontDataCache:catalog.standardFontDataCache,globalImageCache:catalog.globalImageCache,nonBlendModesSet:catalog.nonBlendModesSet,xfaFactory});});this._pagePromises.set(pageIndex,promise);return promise;}
async checkFirstPage(){let recoveryMode=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(recoveryMode){return;}
try{await this.getPage(0);}catch(reason){if(reason instanceof _core_utils.XRefEntryException){this._pagePromises.delete(0);await this.cleanup();throw new _core_utils.XRefParseException();}}}
async checkLastPage(){let recoveryMode=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;const{catalog,pdfManager}=this;catalog.setActualNumPages();let numPages;try{await Promise.all([pdfManager.ensureDoc("xfaFactory"),pdfManager.ensureDoc("linearization"),pdfManager.ensureCatalog("numPages")]);if(this.xfaFactory){return;}else if(this.linearization){numPages=this.linearization.numPages;}else{numPages=catalog.numPages;}
if(!Number.isInteger(numPages)){throw new _util.FormatError("Page count is not an integer.");}else if(numPages<=1){return;}
await this.getPage(numPages-1);}catch(reason){this._pagePromises.delete(numPages-1);await this.cleanup();if(reason instanceof _core_utils.XRefEntryException&&!recoveryMode){throw new _core_utils.XRefParseException();}
(0,_util.warn)(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);let pagesTree;try{pagesTree=await catalog.getAllPageDicts(recoveryMode);}catch(reasonAll){if(reasonAll instanceof _core_utils.XRefEntryException&&!recoveryMode){throw new _core_utils.XRefParseException();}
catalog.setActualNumPages(1);return;}
for(const[pageIndex,[pageDict,ref]]of pagesTree){let promise;if(pageDict instanceof Error){promise=Promise.reject(pageDict);promise.catch(()=>{});}else{promise=Promise.resolve(new Page({pdfManager,xref:this.xref,pageIndex,pageDict,ref,globalIdFactory:this._globalIdFactory,fontCache:catalog.fontCache,builtInCMapCache:catalog.builtInCMapCache,standardFontDataCache:catalog.standardFontDataCache,globalImageCache:catalog.globalImageCache,nonBlendModesSet:catalog.nonBlendModesSet,xfaFactory:null}));}
this._pagePromises.set(pageIndex,promise);}
catalog.setActualNumPages(pagesTree.size);}}
fontFallback(id,handler){return this.catalog.fontFallback(id,handler);}
async cleanup(){let manuallyTriggered=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return this.catalog?this.catalog.cleanup(manuallyTriggered):(0,_cleanup_helper.clearGlobalCaches)();}
_collectFieldObjects(name,fieldRef,promises){const field=this.xref.fetchIfRef(fieldRef);if(field.has("T")){const partName=(0,_util.stringToPDFString)(field.get("T"));if(name===""){name=partName;}else{name=`${name}.${partName}`;}}
if(!promises.has(name)){promises.set(name,[]);}
promises.get(name).push(_annotation.AnnotationFactory.create(this.xref,fieldRef,this.pdfManager,this._localIdFactory,true).then(annotation=>annotation&&annotation.getFieldObject()).catch(function(reason){(0,_util.warn)(`_collectFieldObjects: "${reason}".`);return null;}));if(field.has("Kids")){const kids=field.get("Kids");for(const kid of kids){this._collectFieldObjects(name,kid,promises);}}}
get fieldObjects(){if(!this.formInfo.hasFields){return(0,_util.shadow)(this,"fieldObjects",Promise.resolve(null));}
const allFields=Object.create(null);const fieldPromises=new Map();for(const fieldRef of this.catalog.acroForm.get("Fields")){this._collectFieldObjects("",fieldRef,fieldPromises);}
const allPromises=[];for(const[name,promises]of fieldPromises){allPromises.push(Promise.all(promises).then(fields=>{fields=fields.filter(field=>!!field);if(fields.length>0){allFields[name]=fields;}}));}
return(0,_util.shadow)(this,"fieldObjects",Promise.all(allPromises).then(()=>allFields));}
get hasJSActions(){const promise=this.pdfManager.ensureDoc("_parseHasJSActions");return(0,_util.shadow)(this,"hasJSActions",promise);}
async _parseHasJSActions(){const[catalogJsActions,fieldObjects]=await Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);if(catalogJsActions){return true;}
if(fieldObjects){return Object.values(fieldObjects).some(fieldObject=>fieldObject.some(object=>object.actions!==null));}
return false;}
get calculationOrderIds(){const acroForm=this.catalog.acroForm;if(!acroForm||!acroForm.has("CO")){return(0,_util.shadow)(this,"calculationOrderIds",null);}
const calculationOrder=acroForm.get("CO");if(!Array.isArray(calculationOrder)||calculationOrder.length===0){return(0,_util.shadow)(this,"calculationOrderIds",null);}
const ids=[];for(const id of calculationOrder){if(id instanceof _primitives.Ref){ids.push(id.toString());}}
if(ids.length===0){return(0,_util.shadow)(this,"calculationOrderIds",null);}
return(0,_util.shadow)(this,"calculationOrderIds",ids);}}
exports.PDFDocument=PDFDocument;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PopupAnnotation=exports.MarkupAnnotation=exports.AnnotationFactory=exports.AnnotationBorderStyle=exports.Annotation=void 0;exports.getQuadPoints=getQuadPoints;var _util=__w_pdfjs_require__(2);var _core_utils=__w_pdfjs_require__(131);var _default_appearance=__w_pdfjs_require__(138);var _primitives=__w_pdfjs_require__(130);var _writer=__w_pdfjs_require__(190);var _base_stream=__w_pdfjs_require__(132);var _bidi=__w_pdfjs_require__(185);var _catalog=__w_pdfjs_require__(194);var _colorspace=__w_pdfjs_require__(139);var _file_spec=__w_pdfjs_require__(197);var _object_loader=__w_pdfjs_require__(200);var _operator_list=__w_pdfjs_require__(187);var _stream=__w_pdfjs_require__(135);var _factory=__w_pdfjs_require__(201);class AnnotationFactory{static create(xref,ref,pdfManager,idFactory,collectFields){return Promise.all([pdfManager.ensureCatalog("acroForm"),pdfManager.ensureCatalog("baseUrl"),pdfManager.ensureDoc("xfaDatasets"),collectFields?this._getPageIndex(xref,ref,pdfManager):-1]).then(_ref=>{let[acroForm,baseUrl,xfaDatasets,pageIndex]=_ref;return pdfManager.ensure(this,"_create",[xref,ref,pdfManager,idFactory,acroForm,xfaDatasets,collectFields,pageIndex]);});}
static _create(xref,ref,pdfManager,idFactory,acroForm,xfaDatasets,collectFields){let pageIndex=arguments.length>7&&arguments[7]!==undefined?arguments[7]:-1;const dict=xref.fetchIfRef(ref);if(!(dict instanceof _primitives.Dict)){return undefined;}
const id=ref instanceof _primitives.Ref?ref.toString():`annot_${idFactory.createObjId()}`;let subtype=dict.get("Subtype");subtype=subtype instanceof _primitives.Name?subtype.name:null;const parameters={xref,ref,dict,subtype,id,pdfManager,acroForm:acroForm instanceof _primitives.Dict?acroForm:_primitives.Dict.empty,xfaDatasets,collectFields,pageIndex};switch(subtype){case"Link":return new LinkAnnotation(parameters);case"Text":return new TextAnnotation(parameters);case"Widget":let fieldType=(0,_core_utils.getInheritableProperty)({dict,key:"FT"});fieldType=fieldType instanceof _primitives.Name?fieldType.name:null;switch(fieldType){case"Tx":return new TextWidgetAnnotation(parameters);case"Btn":return new ButtonWidgetAnnotation(parameters);case"Ch":return new ChoiceWidgetAnnotation(parameters);case"Sig":return new SignatureWidgetAnnotation(parameters);}
(0,_util.warn)(`Unimplemented widget field type "${fieldType}", `+"falling back to base field type.");return new WidgetAnnotation(parameters);case"Popup":return new PopupAnnotation(parameters);case"FreeText":return new FreeTextAnnotation(parameters);case"Line":return new LineAnnotation(parameters);case"Square":return new SquareAnnotation(parameters);case"Circle":return new CircleAnnotation(parameters);case"PolyLine":return new PolylineAnnotation(parameters);case"Polygon":return new PolygonAnnotation(parameters);case"Caret":return new CaretAnnotation(parameters);case"Ink":return new InkAnnotation(parameters);case"Highlight":return new HighlightAnnotation(parameters);case"Underline":return new UnderlineAnnotation(parameters);case"Squiggly":return new SquigglyAnnotation(parameters);case"StrikeOut":return new StrikeOutAnnotation(parameters);case"Stamp":return new StampAnnotation(parameters);case"FileAttachment":return new FileAttachmentAnnotation(parameters);default:if(!collectFields){if(!subtype){(0,_util.warn)("Annotation is missing the required /Subtype.");}else{(0,_util.warn)(`Unimplemented annotation type "${subtype}", `+"falling back to base annotation.");}}
return new Annotation(parameters);}}
static async _getPageIndex(xref,ref,pdfManager){try{const annotDict=await xref.fetchIfRefAsync(ref);if(!(annotDict instanceof _primitives.Dict)){return-1;}
const pageRef=annotDict.getRaw("P");if(!(pageRef instanceof _primitives.Ref)){return-1;}
const pageIndex=await pdfManager.ensureCatalog("getPageIndex",[pageRef]);return pageIndex;}catch(ex){(0,_util.warn)(`_getPageIndex: "${ex}".`);return-1;}}
static async saveNewAnnotations(evaluator,task,annotations){const xref=evaluator.xref;let baseFontRef;const dependencies=[];const promises=[];for(const annotation of annotations){switch(annotation.annotationType){case _util.AnnotationEditorType.FREETEXT:if(!baseFontRef){const baseFont=new _primitives.Dict(xref);baseFont.set("BaseFont",_primitives.Name.get("Helvetica"));baseFont.set("Type",_primitives.Name.get("Font"));baseFont.set("Subtype",_primitives.Name.get("Type1"));baseFont.set("Encoding",_primitives.Name.get("WinAnsiEncoding"));const buffer=[];baseFontRef=xref.getNewRef();(0,_writer.writeObject)(baseFontRef,baseFont,buffer,null);dependencies.push({ref:baseFontRef,data:buffer.join("")});}
promises.push(FreeTextAnnotation.createNewAnnotation(xref,annotation,dependencies,{evaluator,task,baseFontRef}));break;case _util.AnnotationEditorType.INK:promises.push(InkAnnotation.createNewAnnotation(xref,annotation,dependencies));}}
return{annotations:await Promise.all(promises),dependencies};}
static async printNewAnnotations(evaluator,task,annotations){if(!annotations){return null;}
const xref=evaluator.xref;const promises=[];for(const annotation of annotations){switch(annotation.annotationType){case _util.AnnotationEditorType.FREETEXT:promises.push(FreeTextAnnotation.createNewPrintAnnotation(xref,annotation,{evaluator,task}));break;case _util.AnnotationEditorType.INK:promises.push(InkAnnotation.createNewPrintAnnotation(xref,annotation));break;}}
return Promise.all(promises);}}
exports.AnnotationFactory=AnnotationFactory;function getRgbColor(color){let defaultColor=arguments.length>1&&arguments[1]!==undefined?arguments[1]:new Uint8ClampedArray(3);if(!Array.isArray(color)){return defaultColor;}
const rgbColor=defaultColor||new Uint8ClampedArray(3);switch(color.length){case 0:return null;case 1:_colorspace.ColorSpace.singletons.gray.getRgbItem(color,0,rgbColor,0);return rgbColor;case 3:_colorspace.ColorSpace.singletons.rgb.getRgbItem(color,0,rgbColor,0);return rgbColor;case 4:_colorspace.ColorSpace.singletons.cmyk.getRgbItem(color,0,rgbColor,0);return rgbColor;default:return defaultColor;}}
function getQuadPoints(dict,rect){if(!dict.has("QuadPoints")){return null;}
const quadPoints=dict.getArray("QuadPoints");if(!Array.isArray(quadPoints)||quadPoints.length===0||quadPoints.length%8>0){return null;}
const quadPointsLists=[];for(let i=0,ii=quadPoints.length/8;i<ii;i++){quadPointsLists.push([]);for(let j=i*8,jj=i*8+8;j<jj;j+=2){const x=quadPoints[j];const y=quadPoints[j+1];if(rect!==null&&(x<rect[0]||x>rect[2]||y<rect[1]||y>rect[3])){return null;}
quadPointsLists[i].push({x,y});}}
return quadPointsLists.map(quadPointsList=>{const[minX,maxX,minY,maxY]=quadPointsList.reduce((_ref2,quadPoint)=>{let[mX,MX,mY,MY]=_ref2;return[Math.min(mX,quadPoint.x),Math.max(MX,quadPoint.x),Math.min(mY,quadPoint.y),Math.max(MY,quadPoint.y)];},[Number.MAX_VALUE,Number.MIN_VALUE,Number.MAX_VALUE,Number.MIN_VALUE]);return[{x:minX,y:maxY},{x:maxX,y:maxY},{x:minX,y:minY},{x:maxX,y:minY}];});}
function getTransformMatrix(rect,bbox,matrix){const[minX,minY,maxX,maxY]=_util.Util.getAxialAlignedBoundingBox(bbox,matrix);if(minX===maxX||minY===maxY){return[1,0,0,1,rect[0],rect[1]];}
const xRatio=(rect[2]-rect[0])/(maxX-minX);const yRatio=(rect[3]-rect[1])/(maxY-minY);return[xRatio,0,0,yRatio,rect[0]-minX*xRatio,rect[1]-minY*yRatio];}
class Annotation{constructor(params){const dict=params.dict;this.setTitle(dict.get("T"));this.setContents(dict.get("Contents"));this.setModificationDate(dict.get("M"));this.setFlags(dict.get("F"));this.setRectangle(dict.getArray("Rect"));this.setColor(dict.getArray("C"));this.setBorderStyle(dict);this.setAppearance(dict);this.setOptionalContent(dict);const MK=dict.get("MK");this.setBorderAndBackgroundColors(MK);this.setRotation(MK);this._streams=[];if(this.appearance){this._streams.push(this.appearance);}
this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,rotation:this.rotation,contentsObj:this._contents,hasAppearance:!!this.appearance,id:params.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:params.subtype,hasOwnCanvas:false};if(params.collectFields){const kids=dict.get("Kids");if(Array.isArray(kids)){const kidIds=[];for(const kid of kids){if(kid instanceof _primitives.Ref){kidIds.push(kid.toString());}}
if(kidIds.length!==0){this.data.kidIds=kidIds;}}
this.data.actions=(0,_core_utils.collectActions)(params.xref,dict,_util.AnnotationActionEventType);this.data.fieldName=this._constructFieldName(dict);this.data.pageIndex=params.pageIndex;}
this._fallbackFontDict=null;}
_hasFlag(flags,flag){return!!(flags&flag);}
_isViewable(flags){return!this._hasFlag(flags,_util.AnnotationFlag.INVISIBLE)&&!this._hasFlag(flags,_util.AnnotationFlag.NOVIEW);}
_isPrintable(flags){return this._hasFlag(flags,_util.AnnotationFlag.PRINT)&&!this._hasFlag(flags,_util.AnnotationFlag.INVISIBLE);}
mustBeViewed(annotationStorage){const storageEntry=annotationStorage&&annotationStorage.get(this.data.id);if(storageEntry&&storageEntry.hidden!==undefined){return!storageEntry.hidden;}
return this.viewable&&!this._hasFlag(this.flags,_util.AnnotationFlag.HIDDEN);}
mustBePrinted(annotationStorage){const storageEntry=annotationStorage&&annotationStorage.get(this.data.id);if(storageEntry&&storageEntry.print!==undefined){return storageEntry.print;}
return this.printable;}
get viewable(){if(this.data.quadPoints===null){return false;}
if(this.flags===0){return true;}
return this._isViewable(this.flags);}
get printable(){if(this.data.quadPoints===null){return false;}
if(this.flags===0){return false;}
return this._isPrintable(this.flags);}
_parseStringHelper(data){const str=typeof data==="string"?(0,_util.stringToPDFString)(data):"";const dir=str&&(0,_bidi.bidi)(str).dir==="rtl"?"rtl":"ltr";return{str,dir};}
setTitle(title){this._title=this._parseStringHelper(title);}
setContents(contents){this._contents=this._parseStringHelper(contents);}
setModificationDate(modificationDate){this.modificationDate=typeof modificationDate==="string"?modificationDate:null;}
setFlags(flags){this.flags=Number.isInteger(flags)&&flags>0?flags:0;}
hasFlag(flag){return this._hasFlag(this.flags,flag);}
setRectangle(rectangle){if(Array.isArray(rectangle)&&rectangle.length===4){this.rectangle=_util.Util.normalizeRect(rectangle);}else{this.rectangle=[0,0,0,0];}}
setColor(color){this.color=getRgbColor(color);}
setLineEndings(lineEndings){this.lineEndings=["None","None"];if(Array.isArray(lineEndings)&&lineEndings.length===2){for(let i=0;i<2;i++){const obj=lineEndings[i];if(obj instanceof _primitives.Name){switch(obj.name){case"None":continue;case"Square":case"Circle":case"Diamond":case"OpenArrow":case"ClosedArrow":case"Butt":case"ROpenArrow":case"RClosedArrow":case"Slash":this.lineEndings[i]=obj.name;continue;}}
(0,_util.warn)(`Ignoring invalid lineEnding: ${obj}`);}}}
setRotation(mk){this.rotation=0;if(mk instanceof _primitives.Dict){let angle=mk.get("R")||0;if(Number.isInteger(angle)&&angle!==0){angle%=360;if(angle<0){angle+=360;}
if(angle%90===0){this.rotation=angle;}}}}
setBorderAndBackgroundColors(mk){if(mk instanceof _primitives.Dict){this.borderColor=getRgbColor(mk.getArray("BC"),null);this.backgroundColor=getRgbColor(mk.getArray("BG"),null);}else{this.borderColor=this.backgroundColor=null;}}
setBorderStyle(borderStyle){this.borderStyle=new AnnotationBorderStyle();if(!(borderStyle instanceof _primitives.Dict)){return;}
if(borderStyle.has("BS")){const dict=borderStyle.get("BS");const dictType=dict.get("Type");if(!dictType||(0,_primitives.isName)(dictType,"Border")){this.borderStyle.setWidth(dict.get("W"),this.rectangle);this.borderStyle.setStyle(dict.get("S"));this.borderStyle.setDashArray(dict.getArray("D"));}}else if(borderStyle.has("Border")){const array=borderStyle.getArray("Border");if(Array.isArray(array)&&array.length>=3){this.borderStyle.setHorizontalCornerRadius(array[0]);this.borderStyle.setVerticalCornerRadius(array[1]);this.borderStyle.setWidth(array[2],this.rectangle);if(array.length===4){this.borderStyle.setDashArray(array[3],true);}}}else{this.borderStyle.setWidth(0);}}
setAppearance(dict){this.appearance=null;const appearanceStates=dict.get("AP");if(!(appearanceStates instanceof _primitives.Dict)){return;}
const normalAppearanceState=appearanceStates.get("N");if(normalAppearanceState instanceof _base_stream.BaseStream){this.appearance=normalAppearanceState;return;}
if(!(normalAppearanceState instanceof _primitives.Dict)){return;}
const as=dict.get("AS");if(!(as instanceof _primitives.Name)||!normalAppearanceState.has(as.name)){return;}
this.appearance=normalAppearanceState.get(as.name);}
setOptionalContent(dict){this.oc=null;const oc=dict.get("OC");if(oc instanceof _primitives.Name){(0,_util.warn)("setOptionalContent: Support for /Name-entry is not implemented.");}else if(oc instanceof _primitives.Dict){this.oc=oc;}}
loadResources(keys,appearance){return appearance.dict.getAsync("Resources").then(resources=>{if(!resources){return undefined;}
const objectLoader=new _object_loader.ObjectLoader(resources,keys,resources.xref);return objectLoader.load().then(function(){return resources;});});}
async getOperatorList(evaluator,task,intent,renderForms,annotationStorage){const data=this.data;let appearance=this.appearance;const isUsingOwnCanvas=!!(this.data.hasOwnCanvas&&intent&_util.RenderingIntentFlag.DISPLAY);if(!appearance){if(!isUsingOwnCanvas){return{opList:new _operator_list.OperatorList(),separateForm:false,separateCanvas:false};}
appearance=new _stream.StringStream("");appearance.dict=new _primitives.Dict();}
const appearanceDict=appearance.dict;const resources=await this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"],appearance);const bbox=appearanceDict.getArray("BBox")||[0,0,1,1];const matrix=appearanceDict.getArray("Matrix")||[1,0,0,1,0,0];const transform=getTransformMatrix(data.rect,bbox,matrix);const opList=new _operator_list.OperatorList();let optionalContent;if(this.oc){optionalContent=await evaluator.parseMarkedContentProps(this.oc,null);}
if(optionalContent!==undefined){opList.addOp(_util.OPS.beginMarkedContentProps,["OC",optionalContent]);}
opList.addOp(_util.OPS.beginAnnotation,[data.id,data.rect,transform,matrix,isUsingOwnCanvas]);await evaluator.getOperatorList({stream:appearance,task,resources,operatorList:opList,fallbackFontDict:this._fallbackFontDict});opList.addOp(_util.OPS.endAnnotation,[]);if(optionalContent!==undefined){opList.addOp(_util.OPS.endMarkedContent,[]);}
this.reset();return{opList,separateForm:false,separateCanvas:isUsingOwnCanvas};}
async save(evaluator,task,annotationStorage){return null;}
get hasTextContent(){return false;}
async extractTextContent(evaluator,task,viewBox){if(!this.appearance){return;}
const resources=await this.loadResources(["ExtGState","Font","Properties","XObject"],this.appearance);const text=[];const buffer=[];const sink={desiredSize:Math.Infinity,ready:true,enqueue(chunk,size){for(const item of chunk.items){buffer.push(item.str);if(item.hasEOL){text.push(buffer.join(""));buffer.length=0;}}}};await evaluator.getTextContent({stream:this.appearance,task,resources,includeMarkedContent:true,combineTextItems:true,sink,viewBox});this.reset();if(buffer.length){text.push(buffer.join(""));}
if(text.length>0){this.data.textContent=text;}}
getFieldObject(){if(this.data.kidIds){return{id:this.data.id,actions:this.data.actions,name:this.data.fieldName,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"",kidIds:this.data.kidIds,page:this.data.pageIndex,rotation:this.rotation};}
return null;}
reset(){for(const stream of this._streams){stream.reset();}}
_constructFieldName(dict){if(!dict.has("T")&&!dict.has("Parent")){(0,_util.warn)("Unknown field name, falling back to empty field name.");return"";}
if(!dict.has("Parent")){return(0,_util.stringToPDFString)(dict.get("T"));}
const fieldName=[];if(dict.has("T")){fieldName.unshift((0,_util.stringToPDFString)(dict.get("T")));}
let loopDict=dict;const visited=new _primitives.RefSet();if(dict.objId){visited.put(dict.objId);}
while(loopDict.has("Parent")){loopDict=loopDict.get("Parent");if(!(loopDict instanceof _primitives.Dict)||loopDict.objId&&visited.has(loopDict.objId)){break;}
if(loopDict.objId){visited.put(loopDict.objId);}
if(loopDict.has("T")){fieldName.unshift((0,_util.stringToPDFString)(loopDict.get("T")));}}
return fieldName.join(".");}}
exports.Annotation=Annotation;class AnnotationBorderStyle{constructor(){this.width=1;this.style=_util.AnnotationBorderStyleType.SOLID;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0;}
setWidth(width){let rect=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[0,0,0,0];if(width instanceof _primitives.Name){this.width=0;return;}
if(typeof width==="number"){if(width>0){const maxWidth=(rect[2]-rect[0])/2;const maxHeight=(rect[3]-rect[1])/2;if(maxWidth>0&&maxHeight>0&&(width>maxWidth||width>maxHeight)){(0,_util.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);width=1;}}
this.width=width;}}
setStyle(style){if(!(style instanceof _primitives.Name)){return;}
switch(style.name){case"S":this.style=_util.AnnotationBorderStyleType.SOLID;break;case"D":this.style=_util.AnnotationBorderStyleType.DASHED;break;case"B":this.style=_util.AnnotationBorderStyleType.BEVELED;break;case"I":this.style=_util.AnnotationBorderStyleType.INSET;break;case"U":this.style=_util.AnnotationBorderStyleType.UNDERLINE;break;default:break;}}
setDashArray(dashArray){let forceStyle=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(Array.isArray(dashArray)&&dashArray.length>0){let isValid=true;let allZeros=true;for(const element of dashArray){const validNumber=+element>=0;if(!validNumber){isValid=false;break;}else if(element>0){allZeros=false;}}
if(isValid&&!allZeros){this.dashArray=dashArray;if(forceStyle){this.setStyle(_primitives.Name.get("D"));}}else{this.width=0;}}else if(dashArray){this.width=0;}}
setHorizontalCornerRadius(radius){if(Number.isInteger(radius)){this.horizontalCornerRadius=radius;}}
setVerticalCornerRadius(radius){if(Number.isInteger(radius)){this.verticalCornerRadius=radius;}}}
exports.AnnotationBorderStyle=AnnotationBorderStyle;class MarkupAnnotation extends Annotation{constructor(parameters){super(parameters);const dict=parameters.dict;if(dict.has("IRT")){const rawIRT=dict.getRaw("IRT");this.data.inReplyTo=rawIRT instanceof _primitives.Ref?rawIRT.toString():null;const rt=dict.get("RT");this.data.replyType=rt instanceof _primitives.Name?rt.name:_util.AnnotationReplyType.REPLY;}
if(this.data.replyType===_util.AnnotationReplyType.GROUP){const parent=dict.get("IRT");this.setTitle(parent.get("T"));this.data.titleObj=this._title;this.setContents(parent.get("Contents"));this.data.contentsObj=this._contents;if(!parent.has("CreationDate")){this.data.creationDate=null;}else{this.setCreationDate(parent.get("CreationDate"));this.data.creationDate=this.creationDate;}
if(!parent.has("M")){this.data.modificationDate=null;}else{this.setModificationDate(parent.get("M"));this.data.modificationDate=this.modificationDate;}
this.data.hasPopup=parent.has("Popup");if(!parent.has("C")){this.data.color=null;}else{this.setColor(parent.getArray("C"));this.data.color=this.color;}}else{this.data.titleObj=this._title;this.setCreationDate(dict.get("CreationDate"));this.data.creationDate=this.creationDate;this.data.hasPopup=dict.has("Popup");if(!dict.has("C")){this.data.color=null;}}
if(dict.has("RC")){this.data.richText=_factory.XFAFactory.getRichTextAsHtml(dict.get("RC"));}}
setCreationDate(creationDate){this.creationDate=typeof creationDate==="string"?creationDate:null;}
_setDefaultAppearance(_ref3){let{xref,extra,strokeColor,fillColor,blendMode,strokeAlpha,fillAlpha,pointsCallback}=_ref3;let minX=Number.MAX_VALUE;let minY=Number.MAX_VALUE;let maxX=Number.MIN_VALUE;let maxY=Number.MIN_VALUE;const buffer=["q"];if(extra){buffer.push(extra);}
if(strokeColor){buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`);}
if(fillColor){buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);}
let pointsArray=this.data.quadPoints;if(!pointsArray){pointsArray=[[{x:this.rectangle[0],y:this.rectangle[3]},{x:this.rectangle[2],y:this.rectangle[3]},{x:this.rectangle[0],y:this.rectangle[1]},{x:this.rectangle[2],y:this.rectangle[1]}]];}
for(const points of pointsArray){const[mX,MX,mY,MY]=pointsCallback(buffer,points);minX=Math.min(minX,mX);maxX=Math.max(maxX,MX);minY=Math.min(minY,mY);maxY=Math.max(maxY,MY);}
buffer.push("Q");const formDict=new _primitives.Dict(xref);const appearanceStreamDict=new _primitives.Dict(xref);appearanceStreamDict.set("Subtype",_primitives.Name.get("Form"));const appearanceStream=new _stream.StringStream(buffer.join(" "));appearanceStream.dict=appearanceStreamDict;formDict.set("Fm0",appearanceStream);const gsDict=new _primitives.Dict(xref);if(blendMode){gsDict.set("BM",_primitives.Name.get(blendMode));}
if(typeof strokeAlpha==="number"){gsDict.set("CA",strokeAlpha);}
if(typeof fillAlpha==="number"){gsDict.set("ca",fillAlpha);}
const stateDict=new _primitives.Dict(xref);stateDict.set("GS0",gsDict);const resources=new _primitives.Dict(xref);resources.set("ExtGState",stateDict);resources.set("XObject",formDict);const appearanceDict=new _primitives.Dict(xref);appearanceDict.set("Resources",resources);const bbox=this.data.rect=[minX,minY,maxX,maxY];appearanceDict.set("BBox",bbox);this.appearance=new _stream.StringStream("/GS0 gs /Fm0 Do");this.appearance.dict=appearanceDict;this._streams.push(this.appearance,appearanceStream);}
static async createNewAnnotation(xref,annotation,dependencies,params){const annotationRef=xref.getNewRef();const apRef=xref.getNewRef();const annotationDict=this.createNewDict(annotation,xref,{apRef});const ap=await this.createNewAppearanceStream(annotation,xref,params);const buffer=[];let transform=xref.encrypt?xref.encrypt.createCipherTransform(apRef.num,apRef.gen):null;(0,_writer.writeObject)(apRef,ap,buffer,transform);dependencies.push({ref:apRef,data:buffer.join("")});buffer.length=0;transform=xref.encrypt?xref.encrypt.createCipherTransform(annotationRef.num,annotationRef.gen):null;(0,_writer.writeObject)(annotationRef,annotationDict,buffer,transform);return{ref:annotationRef,data:buffer.join("")};}
static async createNewPrintAnnotation(xref,annotation,params){const ap=await this.createNewAppearanceStream(annotation,xref,params);const annotationDict=this.createNewDict(annotation,xref,{ap});return new this.prototype.constructor({dict:annotationDict,xref});}}
exports.MarkupAnnotation=MarkupAnnotation;class WidgetAnnotation extends Annotation{constructor(params){super(params);const dict=params.dict;const data=this.data;this.ref=params.ref;data.annotationType=_util.AnnotationType.WIDGET;if(data.fieldName===undefined){data.fieldName=this._constructFieldName(dict);}
if(data.actions===undefined){data.actions=(0,_core_utils.collectActions)(params.xref,dict,_util.AnnotationActionEventType);}
let fieldValue=(0,_core_utils.getInheritableProperty)({dict,key:"V",getArray:true});data.fieldValue=this._decodeFormValue(fieldValue);const defaultFieldValue=(0,_core_utils.getInheritableProperty)({dict,key:"DV",getArray:true});data.defaultFieldValue=this._decodeFormValue(defaultFieldValue);if(fieldValue===undefined&&params.xfaDatasets){const path=this._title.str;if(path){this._hasValueFromXFA=true;data.fieldValue=fieldValue=params.xfaDatasets.getValue(path);}}
if(fieldValue===undefined&&data.defaultFieldValue!==null){data.fieldValue=data.defaultFieldValue;}
data.alternativeText=(0,_util.stringToPDFString)(dict.get("TU")||"");const defaultAppearance=(0,_core_utils.getInheritableProperty)({dict,key:"DA"})||params.acroForm.get("DA");this._defaultAppearance=typeof defaultAppearance==="string"?defaultAppearance:"";data.defaultAppearanceData=(0,_default_appearance.parseDefaultAppearance)(this._defaultAppearance);const fieldType=(0,_core_utils.getInheritableProperty)({dict,key:"FT"});data.fieldType=fieldType instanceof _primitives.Name?fieldType.name:null;const localResources=(0,_core_utils.getInheritableProperty)({dict,key:"DR"});const acroFormResources=params.acroForm.get("DR");const appearanceResources=this.appearance&&this.appearance.dict.get("Resources");this._fieldResources={localResources,acroFormResources,appearanceResources,mergedResources:_primitives.Dict.merge({xref:params.xref,dictArray:[localResources,appearanceResources,acroFormResources],mergeSubDicts:true})};data.fieldFlags=(0,_core_utils.getInheritableProperty)({dict,key:"Ff"});if(!Number.isInteger(data.fieldFlags)||data.fieldFlags<0){data.fieldFlags=0;}
data.readOnly=this.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);data.required=this.hasFieldFlag(_util.AnnotationFieldFlag.REQUIRED);data.hidden=this._hasFlag(data.annotationFlags,_util.AnnotationFlag.HIDDEN);}
_decodeFormValue(formValue){if(Array.isArray(formValue)){return formValue.filter(item=>typeof item==="string").map(item=>(0,_util.stringToPDFString)(item));}else if(formValue instanceof _primitives.Name){return(0,_util.stringToPDFString)(formValue.name);}else if(typeof formValue==="string"){return(0,_util.stringToPDFString)(formValue);}
return null;}
hasFieldFlag(flag){return!!(this.data.fieldFlags&flag);}
static _getRotationMatrix(rotation,width,height){switch(rotation){case 90:return[0,1,-1,0,width,0];case 180:return[-1,0,0,-1,width,height];case 270:return[0,-1,1,0,0,height];default:throw new Error("Invalid rotation");}}
getRotationMatrix(annotationStorage){const storageEntry=annotationStorage?annotationStorage.get(this.data.id):undefined;let rotation=storageEntry&&storageEntry.rotation;if(rotation===undefined){rotation=this.rotation;}
if(rotation===0){return _util.IDENTITY_MATRIX;}
const width=this.data.rect[2]-this.data.rect[0];const height=this.data.rect[3]-this.data.rect[1];return WidgetAnnotation._getRotationMatrix(rotation,width,height);}
getBorderAndBackgroundAppearances(annotationStorage){const storageEntry=annotationStorage?annotationStorage.get(this.data.id):undefined;let rotation=storageEntry&&storageEntry.rotation;if(rotation===undefined){rotation=this.rotation;}
if(!this.backgroundColor&&!this.borderColor){return"";}
const width=this.data.rect[2]-this.data.rect[0];const height=this.data.rect[3]-this.data.rect[1];const rect=rotation===0||rotation===180?`0 0 ${width} ${height} re`:`0 0 ${height} ${width} re`;let str="";if(this.backgroundColor){str=`${(0, _default_appearance.getPdfColor)(this.backgroundColor, true)} ${rect} f `;}
if(this.borderColor){const borderWidth=this.borderStyle.width||1;str+=`${borderWidth} w ${(0, _default_appearance.getPdfColor)(this.borderColor, false)} ${rect} S `;}
return str;}
async getOperatorList(evaluator,task,intent,renderForms,annotationStorage){if(renderForms&&!(this instanceof SignatureWidgetAnnotation)){return{opList:new _operator_list.OperatorList(),separateForm:true,separateCanvas:false};}
if(!this._hasText){return super.getOperatorList(evaluator,task,intent,renderForms,annotationStorage);}
const content=await this._getAppearance(evaluator,task,annotationStorage);if(this.appearance&&content===null){return super.getOperatorList(evaluator,task,intent,renderForms,annotationStorage);}
const opList=new _operator_list.OperatorList();if(!this._defaultAppearance||content===null){return{opList,separateForm:false,separateCanvas:false};}
const matrix=[1,0,0,1,0,0];const bbox=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]];const transform=getTransformMatrix(this.data.rect,bbox,matrix);let optionalContent;if(this.oc){optionalContent=await evaluator.parseMarkedContentProps(this.oc,null);}
if(optionalContent!==undefined){opList.addOp(_util.OPS.beginMarkedContentProps,["OC",optionalContent]);}
opList.addOp(_util.OPS.beginAnnotation,[this.data.id,this.data.rect,transform,this.getRotationMatrix(annotationStorage),false]);const stream=new _stream.StringStream(content);await evaluator.getOperatorList({stream,task,resources:this._fieldResources.mergedResources,operatorList:opList});opList.addOp(_util.OPS.endAnnotation,[]);if(optionalContent!==undefined){opList.addOp(_util.OPS.endMarkedContent,[]);}
return{opList,separateForm:false,separateCanvas:false};}
_getMKDict(rotation){const mk=new _primitives.Dict(null);if(rotation){mk.set("R",rotation);}
if(this.borderColor){mk.set("BC",Array.from(this.borderColor).map(c=>c/255));}
if(this.backgroundColor){mk.set("BG",Array.from(this.backgroundColor).map(c=>c/255));}
return mk.size>0?mk:null;}
async save(evaluator,task,annotationStorage){const storageEntry=annotationStorage?annotationStorage.get(this.data.id):undefined;let value=storageEntry&&storageEntry.value;let rotation=storageEntry&&storageEntry.rotation;if(value===this.data.fieldValue||value===undefined){if(!this._hasValueFromXFA&&rotation===undefined){return null;}
value=value||this.data.fieldValue;}
if(rotation===undefined&&!this._hasValueFromXFA&&Array.isArray(value)&&Array.isArray(this.data.fieldValue)&&value.length===this.data.fieldValue.length&&value.every((x,i)=>x===this.data.fieldValue[i])){return null;}
if(rotation===undefined){rotation=this.rotation;}
let appearance=await this._getAppearance(evaluator,task,annotationStorage);if(appearance===null){return null;}
const{xref}=evaluator;const dict=xref.fetchIfRef(this.ref);if(!(dict instanceof _primitives.Dict)){return null;}
const bbox=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]];const xfa={path:(0,_util.stringToPDFString)(dict.get("T")||""),value};const newRef=xref.getNewRef();const AP=new _primitives.Dict(xref);AP.set("N",newRef);const encrypt=xref.encrypt;let originalTransform=null;let newTransform=null;if(encrypt){originalTransform=encrypt.createCipherTransform(this.ref.num,this.ref.gen);newTransform=encrypt.createCipherTransform(newRef.num,newRef.gen);appearance=newTransform.encryptString(appearance);}
const encoder=val=>(0,_util.isAscii)(val)?val:(0,_util.stringToUTF16BEString)(val);dict.set("V",Array.isArray(value)?value.map(encoder):encoder(value));dict.set("AP",AP);dict.set("M",`D:${(0, _util.getModificationDate)()}`);const maybeMK=this._getMKDict(rotation);if(maybeMK){dict.set("MK",maybeMK);}
const appearanceDict=new _primitives.Dict(xref);appearanceDict.set("Length",appearance.length);appearanceDict.set("Subtype",_primitives.Name.get("Form"));appearanceDict.set("Resources",this._getSaveFieldResources(xref));appearanceDict.set("BBox",bbox);const rotationMatrix=this.getRotationMatrix(annotationStorage);if(rotationMatrix!==_util.IDENTITY_MATRIX){appearanceDict.set("Matrix",rotationMatrix);}
const bufferOriginal=[`${this.ref.num} ${this.ref.gen} obj\n`];(0,_writer.writeDict)(dict,bufferOriginal,originalTransform);bufferOriginal.push("\nendobj\n");const bufferNew=[`${newRef.num} ${newRef.gen} obj\n`];(0,_writer.writeDict)(appearanceDict,bufferNew,newTransform);bufferNew.push(" stream\n",appearance,"\nendstream\nendobj\n");return[{ref:this.ref,data:bufferOriginal.join(""),xfa},{ref:newRef,data:bufferNew.join(""),xfa:null}];}
async _getAppearance(evaluator,task,annotationStorage){const isPassword=this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD);if(isPassword){return null;}
const storageEntry=annotationStorage?annotationStorage.get(this.data.id):undefined;let value,rotation;if(storageEntry){value=storageEntry.formattedValue||storageEntry.value;rotation=storageEntry.rotation;}
if(rotation===undefined&&value===undefined){if(!this._hasValueFromXFA||this.appearance){return null;}}
if(value===undefined){value=this.data.fieldValue;if(!value){return"";}}
if(Array.isArray(value)&&value.length===1){value=value[0];}
(0,_util.assert)(typeof value==="string","Expected `value` to be a string.");value=value.trim();if(value===""){return"";}
if(rotation===undefined){rotation=this.rotation;}
let lineCount=-1;if(this.data.multiLine){lineCount=value.split(/\r\n|\r|\n/).length;}
const defaultPadding=2;const hPadding=defaultPadding;let totalHeight=this.data.rect[3]-this.data.rect[1];let totalWidth=this.data.rect[2]-this.data.rect[0];if(rotation===90||rotation===270){[totalWidth,totalHeight]=[totalHeight,totalWidth];}
if(!this._defaultAppearance){this.data.defaultAppearanceData=(0,_default_appearance.parseDefaultAppearance)(this._defaultAppearance="/Helvetica 0 Tf 0 g");}
const font=await WidgetAnnotation._getFontData(evaluator,task,this.data.defaultAppearanceData,this._fieldResources.mergedResources);const[defaultAppearance,fontSize]=this._computeFontSize(totalHeight-defaultPadding,totalWidth-2*hPadding,value,font,lineCount);let descent=font.descent;if(isNaN(descent)){descent=0;}
const defaultVPadding=Math.min(Math.floor((totalHeight-fontSize)/2),defaultPadding);const vPadding=defaultVPadding+Math.abs(descent)*fontSize;const alignment=this.data.textAlignment;if(this.data.multiLine){return this._getMultilineAppearance(defaultAppearance,value,font,fontSize,totalWidth,totalHeight,alignment,hPadding,vPadding,annotationStorage);}
const encodedString=font.encodeString(value).join("");if(this.data.comb){return this._getCombAppearance(defaultAppearance,font,encodedString,totalWidth,hPadding,vPadding,annotationStorage);}
const colors=this.getBorderAndBackgroundAppearances(annotationStorage);if(alignment===0||alignment>2){return`/Tx BMC q ${colors}BT `+defaultAppearance+` 1 0 0 1 ${hPadding} ${vPadding} Tm (${(0, _util.escapeString)(encodedString)}) Tj`+" ET Q EMC";}
const renderedText=this._renderText(encodedString,font,fontSize,totalWidth,alignment,hPadding,vPadding);return`/Tx BMC q ${colors}BT `+defaultAppearance+` 1 0 0 1 0 0 Tm ${renderedText}`+" ET Q EMC";}
static async _getFontData(evaluator,task,appearanceData,resources){const operatorList=new _operator_list.OperatorList();const initialState={font:null,clone(){return this;}};const{fontName,fontSize}=appearanceData;await evaluator.handleSetFont(resources,[fontName&&_primitives.Name.get(fontName),fontSize],null,operatorList,task,initialState,null);return initialState.font;}
_getTextWidth(text,font){return font.charsToGlyphs(text).reduce((width,glyph)=>width+glyph.width,0)/1000;}
_computeFontSize(height,width,text,font,lineCount){let{fontSize}=this.data.defaultAppearanceData;if(!fontSize){const roundWithTwoDigits=x=>Math.floor(x*100)/100;if(lineCount===-1){const textWidth=this._getTextWidth(text,font);fontSize=roundWithTwoDigits(Math.min(height/_util.LINE_FACTOR,width/textWidth));}else{const lines=text.split(/\r\n?|\n/);const cachedLines=[];for(const line of lines){const encoded=font.encodeString(line).join("");const glyphs=font.charsToGlyphs(encoded);const positions=font.getCharPositions(encoded);cachedLines.push({line:encoded,glyphs,positions});}
const isTooBig=fsize=>{let totalHeight=0;for(const cache of cachedLines){const chunks=this._splitLine(null,font,fsize,width,cache);totalHeight+=chunks.length*fsize;if(totalHeight>height){return true;}}
return false;};fontSize=12;let lineHeight=fontSize*_util.LINE_FACTOR;let numberOfLines=Math.round(height/lineHeight);numberOfLines=Math.max(numberOfLines,lineCount);while(true){lineHeight=height/numberOfLines;fontSize=roundWithTwoDigits(lineHeight/_util.LINE_FACTOR);if(isTooBig(fontSize)){numberOfLines++;continue;}
break;}}
const{fontName,fontColor}=this.data.defaultAppearanceData;this._defaultAppearance=(0,_default_appearance.createDefaultAppearance)({fontSize,fontName,fontColor});}
return[this._defaultAppearance,fontSize];}
_renderText(text,font,fontSize,totalWidth,alignment,hPadding,vPadding){let shift;if(alignment===1){const width=this._getTextWidth(text,font)*fontSize;shift=(totalWidth-width)/2;}else if(alignment===2){const width=this._getTextWidth(text,font)*fontSize;shift=totalWidth-width-hPadding;}else{shift=hPadding;}
shift=(0,_core_utils.numberToString)(shift);vPadding=(0,_core_utils.numberToString)(vPadding);return`${shift} ${vPadding} Td (${(0, _util.escapeString)(text)}) Tj`;}
_getSaveFieldResources(xref){const{localResources,appearanceResources,acroFormResources}=this._fieldResources;const fontName=this.data.defaultAppearanceData&&this.data.defaultAppearanceData.fontName;if(!fontName){return localResources||_primitives.Dict.empty;}
for(const resources of[localResources,appearanceResources]){if(resources instanceof _primitives.Dict){const localFont=resources.get("Font");if(localFont instanceof _primitives.Dict&&localFont.has(fontName)){return resources;}}}
if(acroFormResources instanceof _primitives.Dict){const acroFormFont=acroFormResources.get("Font");if(acroFormFont instanceof _primitives.Dict&&acroFormFont.has(fontName)){const subFontDict=new _primitives.Dict(xref);subFontDict.set(fontName,acroFormFont.getRaw(fontName));const subResourcesDict=new _primitives.Dict(xref);subResourcesDict.set("Font",subFontDict);return _primitives.Dict.merge({xref,dictArray:[subResourcesDict,localResources],mergeSubDicts:true});}}
return localResources||_primitives.Dict.empty;}
getFieldObject(){return null;}}
class TextWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params);this._hasText=true;const dict=params.dict;if(typeof this.data.fieldValue!=="string"){this.data.fieldValue="";}
let alignment=(0,_core_utils.getInheritableProperty)({dict,key:"Q"});if(!Number.isInteger(alignment)||alignment<0||alignment>2){alignment=null;}
this.data.textAlignment=alignment;let maximumLength=(0,_core_utils.getInheritableProperty)({dict,key:"MaxLen"});if(!Number.isInteger(maximumLength)||maximumLength<0){maximumLength=0;}
this.data.maxLen=maximumLength;this.data.multiLine=this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);this.data.comb=this.hasFieldFlag(_util.AnnotationFieldFlag.COMB)&&!this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE)&&!this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD)&&!this.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT)&&this.data.maxLen!==0;this.data.doNotScroll=this.hasFieldFlag(_util.AnnotationFieldFlag.DONOTSCROLL);}
_getCombAppearance(defaultAppearance,font,text,width,hPadding,vPadding,annotationStorage){const combWidth=(0,_core_utils.numberToString)(width/this.data.maxLen);const buf=[];const positions=font.getCharPositions(text);for(const[start,end]of positions){buf.push(`(${(0, _util.escapeString)(text.substring(start, end))}) Tj`);}
const colors=this.getBorderAndBackgroundAppearances(annotationStorage);const renderedComb=buf.join(` ${combWidth} 0 Td `);return`/Tx BMC q ${colors}BT `+defaultAppearance+` 1 0 0 1 ${hPadding} ${vPadding} Tm ${renderedComb}`+" ET Q EMC";}
_getMultilineAppearance(defaultAppearance,text,font,fontSize,width,height,alignment,hPadding,vPadding,annotationStorage){const lines=text.split(/\r\n?|\n/);const buf=[];const totalWidth=width-2*hPadding;for(const line of lines){const chunks=this._splitLine(line,font,fontSize,totalWidth);for(const chunk of chunks){const padding=buf.length===0?hPadding:0;buf.push(this._renderText(chunk,font,fontSize,width,alignment,padding,-fontSize));}}
const renderedText=buf.join("\n");const colors=this.getBorderAndBackgroundAppearances(annotationStorage);return`/Tx BMC q ${colors}BT `+defaultAppearance+` 1 0 0 1 0 ${height} Tm ${renderedText}`+" ET Q EMC";}
_splitLine(line,font,fontSize,width){let cache=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};line=cache.line||font.encodeString(line).join("");const glyphs=cache.glyphs||font.charsToGlyphs(line);if(glyphs.length<=1){return[line];}
const positions=cache.positions||font.getCharPositions(line);const scale=fontSize/1000;const chunks=[];let lastSpacePosInStringStart=-1,lastSpacePosInStringEnd=-1,lastSpacePos=-1,startChunk=0,currentWidth=0;for(let i=0,ii=glyphs.length;i<ii;i++){const[start,end]=positions[i];const glyph=glyphs[i];const glyphWidth=glyph.width*scale;if(glyph.unicode===" "){if(currentWidth+glyphWidth>width){chunks.push(line.substring(startChunk,start));startChunk=start;currentWidth=glyphWidth;lastSpacePosInStringStart=-1;lastSpacePos=-1;}else{currentWidth+=glyphWidth;lastSpacePosInStringStart=start;lastSpacePosInStringEnd=end;lastSpacePos=i;}}else{if(currentWidth+glyphWidth>width){if(lastSpacePosInStringStart!==-1){chunks.push(line.substring(startChunk,lastSpacePosInStringEnd));startChunk=lastSpacePosInStringEnd;i=lastSpacePos+1;lastSpacePosInStringStart=-1;currentWidth=0;}else{chunks.push(line.substring(startChunk,start));startChunk=start;currentWidth=glyphWidth;}}else{currentWidth+=glyphWidth;}}}
if(startChunk<line.length){chunks.push(line.substring(startChunk,line.length));}
return chunks;}
getFieldObject(){return{id:this.data.id,value:this.data.fieldValue,defaultValue:this.data.defaultFieldValue||"",multiline:this.data.multiLine,password:this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD),charLimit:this.data.maxLen,comb:this.data.comb,editable:!this.data.readOnly,hidden:this.data.hidden,name:this.data.fieldName,rect:this.data.rect,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:"text"};}}
class ButtonWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params);this.checkedAppearance=null;this.uncheckedAppearance=null;this.data.checkBox=!this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO)&&!this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);this.data.radioButton=this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO)&&!this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);this.data.pushButton=this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);this.data.isTooltipOnly=false;if(this.data.checkBox){this._processCheckBox(params);}else if(this.data.radioButton){this._processRadioButton(params);}else if(this.data.pushButton){this.data.hasOwnCanvas=true;this._processPushButton(params);}else{(0,_util.warn)("Invalid field flags for button widget annotation");}}
async getOperatorList(evaluator,task,intent,renderForms,annotationStorage){if(this.data.pushButton){return super.getOperatorList(evaluator,task,intent,false,annotationStorage);}
let value=null;let rotation=null;if(annotationStorage){const storageEntry=annotationStorage.get(this.data.id);value=storageEntry?storageEntry.value:null;rotation=storageEntry?storageEntry.rotation:null;}
if(value===null&&this.appearance){return super.getOperatorList(evaluator,task,intent,renderForms,annotationStorage);}
if(value===null||value===undefined){if(this.data.checkBox){value=this.data.fieldValue===this.data.exportValue;}else{value=this.data.fieldValue===this.data.buttonValue;}}
const appearance=value?this.checkedAppearance:this.uncheckedAppearance;if(appearance){const savedAppearance=this.appearance;const savedMatrix=appearance.dict.getArray("Matrix")||_util.IDENTITY_MATRIX;if(rotation){appearance.dict.set("Matrix",this.getRotationMatrix(annotationStorage));}
this.appearance=appearance;const operatorList=super.getOperatorList(evaluator,task,intent,renderForms,annotationStorage);this.appearance=savedAppearance;appearance.dict.set("Matrix",savedMatrix);return operatorList;}
return{opList:new _operator_list.OperatorList(),separateForm:false,separateCanvas:false};}
async save(evaluator,task,annotationStorage){if(this.data.checkBox){return this._saveCheckbox(evaluator,task,annotationStorage);}
if(this.data.radioButton){return this._saveRadioButton(evaluator,task,annotationStorage);}
return null;}
async _saveCheckbox(evaluator,task,annotationStorage){if(!annotationStorage){return null;}
const storageEntry=annotationStorage.get(this.data.id);let rotation=storageEntry&&storageEntry.rotation;let value=storageEntry&&storageEntry.value;if(rotation===undefined){if(value===undefined){return null;}
const defaultValue=this.data.fieldValue===this.data.exportValue;if(defaultValue===value){return null;}}
const dict=evaluator.xref.fetchIfRef(this.ref);if(!(dict instanceof _primitives.Dict)){return null;}
if(rotation===undefined){rotation=this.rotation;}
if(value===undefined){value=this.data.fieldValue===this.data.exportValue;}
const xfa={path:(0,_util.stringToPDFString)(dict.get("T")||""),value:value?this.data.exportValue:""};const name=_primitives.Name.get(value?this.data.exportValue:"Off");dict.set("V",name);dict.set("AS",name);dict.set("M",`D:${(0, _util.getModificationDate)()}`);const maybeMK=this._getMKDict(rotation);if(maybeMK){dict.set("MK",maybeMK);}
const encrypt=evaluator.xref.encrypt;let originalTransform=null;if(encrypt){originalTransform=encrypt.createCipherTransform(this.ref.num,this.ref.gen);}
const buffer=[`${this.ref.num} ${this.ref.gen} obj\n`];(0,_writer.writeDict)(dict,buffer,originalTransform);buffer.push("\nendobj\n");return[{ref:this.ref,data:buffer.join(""),xfa}];}
async _saveRadioButton(evaluator,task,annotationStorage){if(!annotationStorage){return null;}
const storageEntry=annotationStorage.get(this.data.id);let rotation=storageEntry&&storageEntry.rotation;let value=storageEntry&&storageEntry.value;if(rotation===undefined){if(value===undefined){return null;}
const defaultValue=this.data.fieldValue===this.data.buttonValue;if(defaultValue===value){return null;}}
const dict=evaluator.xref.fetchIfRef(this.ref);if(!(dict instanceof _primitives.Dict)){return null;}
if(value===undefined){value=this.data.fieldValue===this.data.buttonValue;}
if(rotation===undefined){rotation=this.rotation;}
const xfa={path:(0,_util.stringToPDFString)(dict.get("T")||""),value:value?this.data.buttonValue:""};const name=_primitives.Name.get(value?this.data.buttonValue:"Off");let parentBuffer=null;const encrypt=evaluator.xref.encrypt;if(value){if(this.parent instanceof _primitives.Ref){const parent=evaluator.xref.fetch(this.parent);let parentTransform=null;if(encrypt){parentTransform=encrypt.createCipherTransform(this.parent.num,this.parent.gen);}
parent.set("V",name);parentBuffer=[`${this.parent.num} ${this.parent.gen} obj\n`];(0,_writer.writeDict)(parent,parentBuffer,parentTransform);parentBuffer.push("\nendobj\n");}else if(this.parent instanceof _primitives.Dict){this.parent.set("V",name);}}
dict.set("AS",name);dict.set("M",`D:${(0, _util.getModificationDate)()}`);const maybeMK=this._getMKDict(rotation);if(maybeMK){dict.set("MK",maybeMK);}
let originalTransform=null;if(encrypt){originalTransform=encrypt.createCipherTransform(this.ref.num,this.ref.gen);}
const buffer=[`${this.ref.num} ${this.ref.gen} obj\n`];(0,_writer.writeDict)(dict,buffer,originalTransform);buffer.push("\nendobj\n");const newRefs=[{ref:this.ref,data:buffer.join(""),xfa}];if(parentBuffer!==null){newRefs.push({ref:this.parent,data:parentBuffer.join(""),xfa:null});}
return newRefs;}
_getDefaultCheckedAppearance(params,type){const width=this.data.rect[2]-this.data.rect[0];const height=this.data.rect[3]-this.data.rect[1];const bbox=[0,0,width,height];const FONT_RATIO=0.8;const fontSize=Math.min(width,height)*FONT_RATIO;let metrics,char;if(type==="check"){metrics={width:0.755*fontSize,height:0.705*fontSize};char="\x33";}else if(type==="disc"){metrics={width:0.791*fontSize,height:0.705*fontSize};char="\x6C";}else{(0,_util.unreachable)(`_getDefaultCheckedAppearance - unsupported type: ${type}`);}
const xShift=(0,_core_utils.numberToString)((width-metrics.width)/2);const yShift=(0,_core_utils.numberToString)((height-metrics.height)/2);const appearance=`q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`;const appearanceStreamDict=new _primitives.Dict(params.xref);appearanceStreamDict.set("FormType",1);appearanceStreamDict.set("Subtype",_primitives.Name.get("Form"));appearanceStreamDict.set("Type",_primitives.Name.get("XObject"));appearanceStreamDict.set("BBox",bbox);appearanceStreamDict.set("Matrix",[1,0,0,1,0,0]);appearanceStreamDict.set("Length",appearance.length);const resources=new _primitives.Dict(params.xref);const font=new _primitives.Dict(params.xref);font.set("PdfJsZaDb",this.fallbackFontDict);resources.set("Font",font);appearanceStreamDict.set("Resources",resources);this.checkedAppearance=new _stream.StringStream(appearance);this.checkedAppearance.dict=appearanceStreamDict;this._streams.push(this.checkedAppearance);}
_processCheckBox(params){const customAppearance=params.dict.get("AP");if(!(customAppearance instanceof _primitives.Dict)){return;}
const normalAppearance=customAppearance.get("N");if(!(normalAppearance instanceof _primitives.Dict)){return;}
const asValue=this._decodeFormValue(params.dict.get("AS"));if(typeof asValue==="string"){this.data.fieldValue=asValue;}
const yes=this.data.fieldValue!==null&&this.data.fieldValue!=="Off"?this.data.fieldValue:"Yes";const exportValues=normalAppearance.getKeys();if(exportValues.length===0){exportValues.push("Off",yes);}else if(exportValues.length===1){if(exportValues[0]==="Off"){exportValues.push(yes);}else{exportValues.unshift("Off");}}else if(exportValues.includes(yes)){exportValues.length=0;exportValues.push("Off",yes);}else{const otherYes=exportValues.find(v=>v!=="Off");exportValues.length=0;exportValues.push("Off",otherYes);}
if(!exportValues.includes(this.data.fieldValue)){this.data.fieldValue="Off";}
this.data.exportValue=exportValues[1];this.checkedAppearance=normalAppearance.get(this.data.exportValue)||null;this.uncheckedAppearance=normalAppearance.get("Off")||null;if(this.checkedAppearance){this._streams.push(this.checkedAppearance);}else{this._getDefaultCheckedAppearance(params,"check");}
if(this.uncheckedAppearance){this._streams.push(this.uncheckedAppearance);}
this._fallbackFontDict=this.fallbackFontDict;}
_processRadioButton(params){this.data.fieldValue=this.data.buttonValue=null;const fieldParent=params.dict.get("Parent");if(fieldParent instanceof _primitives.Dict){this.parent=params.dict.getRaw("Parent");const fieldParentValue=fieldParent.get("V");if(fieldParentValue instanceof _primitives.Name){this.data.fieldValue=this._decodeFormValue(fieldParentValue);}}
const appearanceStates=params.dict.get("AP");if(!(appearanceStates instanceof _primitives.Dict)){return;}
const normalAppearance=appearanceStates.get("N");if(!(normalAppearance instanceof _primitives.Dict)){return;}
for(const key of normalAppearance.getKeys()){if(key!=="Off"){this.data.buttonValue=this._decodeFormValue(key);break;}}
this.checkedAppearance=normalAppearance.get(this.data.buttonValue)||null;this.uncheckedAppearance=normalAppearance.get("Off")||null;if(this.checkedAppearance){this._streams.push(this.checkedAppearance);}else{this._getDefaultCheckedAppearance(params,"disc");}
if(this.uncheckedAppearance){this._streams.push(this.uncheckedAppearance);}
this._fallbackFontDict=this.fallbackFontDict;}
_processPushButton(params){if(!params.dict.has("A")&&!params.dict.has("AA")&&!this.data.alternativeText){(0,_util.warn)("Push buttons without action dictionaries are not supported");return;}
this.data.isTooltipOnly=!params.dict.has("A")&&!params.dict.has("AA");_catalog.Catalog.parseDestDictionary({destDict:params.dict,resultObj:this.data,docBaseUrl:params.pdfManager.docBaseUrl});}
getFieldObject(){let type="button";let exportValues;if(this.data.checkBox){type="checkbox";exportValues=this.data.exportValue;}else if(this.data.radioButton){type="radiobutton";exportValues=this.data.buttonValue;}
return{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type};}
get fallbackFontDict(){const dict=new _primitives.Dict();dict.set("BaseFont",_primitives.Name.get("ZapfDingbats"));dict.set("Type",_primitives.Name.get("FallbackType"));dict.set("Subtype",_primitives.Name.get("FallbackType"));dict.set("Encoding",_primitives.Name.get("ZapfDingbatsEncoding"));return(0,_util.shadow)(this,"fallbackFontDict",dict);}}
class ChoiceWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params);this.data.options=[];const options=(0,_core_utils.getInheritableProperty)({dict:params.dict,key:"Opt"});if(Array.isArray(options)){const xref=params.xref;for(let i=0,ii=options.length;i<ii;i++){const option=xref.fetchIfRef(options[i]);const isOptionArray=Array.isArray(option);this.data.options[i]={exportValue:this._decodeFormValue(isOptionArray?xref.fetchIfRef(option[0]):option),displayValue:this._decodeFormValue(isOptionArray?xref.fetchIfRef(option[1]):option)};}}
if(typeof this.data.fieldValue==="string"){this.data.fieldValue=[this.data.fieldValue];}else if(!this.data.fieldValue){this.data.fieldValue=[];}
this.data.combo=this.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);this.data.multiSelect=this.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);this._hasText=true;}
getFieldObject(){const type=this.data.combo?"combobox":"listbox";const value=this.data.fieldValue.length>0?this.data.fieldValue[0]:null;return{id:this.data.id,value,defaultValue:this.data.defaultFieldValue,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,numItems:this.data.fieldValue.length,multipleSelection:this.data.multiSelect,hidden:this.data.hidden,actions:this.data.actions,items:this.data.options,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type};}
async _getAppearance(evaluator,task,annotationStorage){if(this.data.combo){return super._getAppearance(evaluator,task,annotationStorage);}
if(!annotationStorage){return null;}
const storageEntry=annotationStorage.get(this.data.id);if(!storageEntry){return null;}
const rotation=storageEntry.rotation;let exportedValue=storageEntry.value;if(rotation===undefined&&exportedValue===undefined){return null;}
if(exportedValue===undefined){exportedValue=this.data.fieldValue;}else if(!Array.isArray(exportedValue)){exportedValue=[exportedValue];}
const defaultPadding=2;const hPadding=defaultPadding;let totalHeight=this.data.rect[3]-this.data.rect[1];let totalWidth=this.data.rect[2]-this.data.rect[0];if(rotation===90||rotation===270){[totalWidth,totalHeight]=[totalHeight,totalWidth];}
const lineCount=this.data.options.length;const valueIndices=[];for(let i=0;i<lineCount;i++){const{exportValue}=this.data.options[i];if(exportedValue.includes(exportValue)){valueIndices.push(i);}}
if(!this._defaultAppearance){this.data.defaultAppearanceData=(0,_default_appearance.parseDefaultAppearance)(this._defaultAppearance="/Helvetica 0 Tf 0 g");}
const font=await WidgetAnnotation._getFontData(evaluator,task,this.data.defaultAppearanceData,this._fieldResources.mergedResources);let defaultAppearance;let{fontSize}=this.data.defaultAppearanceData;if(!fontSize){const lineHeight=(totalHeight-defaultPadding)/lineCount;let lineWidth=-1;let value;for(const{displayValue}of this.data.options){const width=this._getTextWidth(displayValue,font);if(width>lineWidth){lineWidth=width;value=displayValue;}}
[defaultAppearance,fontSize]=this._computeFontSize(lineHeight,totalWidth-2*hPadding,value,font,-1);}else{defaultAppearance=this._defaultAppearance;}
const lineHeight=fontSize*_util.LINE_FACTOR;const vPadding=(lineHeight-fontSize)/2;const numberOfVisibleLines=Math.floor(totalHeight/lineHeight);let firstIndex;if(valueIndices.length===1){const valuePosition=valueIndices[0];const indexInPage=valuePosition%numberOfVisibleLines;firstIndex=valuePosition-indexInPage;}else{firstIndex=valueIndices.length?valueIndices[0]:0;}
const end=Math.min(firstIndex+numberOfVisibleLines+1,lineCount);const buf=["/Tx BMC q",`1 1 ${totalWidth} ${totalHeight} re W n`];if(valueIndices.length){buf.push("0.600006 0.756866 0.854904 rg");for(const index of valueIndices){if(firstIndex<=index&&index<end){buf.push(`1 ${totalHeight - (index - firstIndex + 1) * lineHeight} ${totalWidth} ${lineHeight} re f`);}}}
buf.push("BT",defaultAppearance,`1 0 0 1 0 ${totalHeight} Tm`);for(let i=firstIndex;i<end;i++){const{displayValue}=this.data.options[i];const hpadding=i===firstIndex?hPadding:0;const vpadding=i===firstIndex?vPadding:0;buf.push(this._renderText(displayValue,font,fontSize,totalWidth,0,hpadding,-lineHeight+vpadding));}
buf.push("ET Q EMC");return buf.join("\n");}}
class SignatureWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params);this.data.fieldValue=null;}
getFieldObject(){return{id:this.data.id,value:null,page:this.data.pageIndex,type:"signature"};}}
class TextAnnotation extends MarkupAnnotation{constructor(parameters){const DEFAULT_ICON_SIZE=22;super(parameters);const dict=parameters.dict;this.data.annotationType=_util.AnnotationType.TEXT;if(this.data.hasAppearance){this.data.name="NoIcon";}else{this.data.rect[1]=this.data.rect[3]-DEFAULT_ICON_SIZE;this.data.rect[2]=this.data.rect[0]+DEFAULT_ICON_SIZE;this.data.name=dict.has("Name")?dict.get("Name").name:"Note";}
if(dict.has("State")){this.data.state=dict.get("State")||null;this.data.stateModel=dict.get("StateModel")||null;}else{this.data.state=null;this.data.stateModel=null;}}}
class LinkAnnotation extends Annotation{constructor(params){super(params);this.data.annotationType=_util.AnnotationType.LINK;const quadPoints=getQuadPoints(params.dict,this.rectangle);if(quadPoints){this.data.quadPoints=quadPoints;}
this.data.borderColor=this.data.borderColor||this.data.color;_catalog.Catalog.parseDestDictionary({destDict:params.dict,resultObj:this.data,docBaseUrl:params.pdfManager.docBaseUrl});}}
class PopupAnnotation extends Annotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.POPUP;let parentItem=parameters.dict.get("Parent");if(!parentItem){(0,_util.warn)("Popup annotation has a missing or invalid parent annotation.");return;}
const parentSubtype=parentItem.get("Subtype");this.data.parentType=parentSubtype instanceof _primitives.Name?parentSubtype.name:null;const rawParent=parameters.dict.getRaw("Parent");this.data.parentId=rawParent instanceof _primitives.Ref?rawParent.toString():null;const parentRect=parentItem.getArray("Rect");if(Array.isArray(parentRect)&&parentRect.length===4){this.data.parentRect=_util.Util.normalizeRect(parentRect);}else{this.data.parentRect=[0,0,0,0];}
const rt=parentItem.get("RT");if((0,_primitives.isName)(rt,_util.AnnotationReplyType.GROUP)){parentItem=parentItem.get("IRT");}
if(!parentItem.has("M")){this.data.modificationDate=null;}else{this.setModificationDate(parentItem.get("M"));this.data.modificationDate=this.modificationDate;}
if(!parentItem.has("C")){this.data.color=null;}else{this.setColor(parentItem.getArray("C"));this.data.color=this.color;}
if(!this.viewable){const parentFlags=parentItem.get("F");if(this._isViewable(parentFlags)){this.setFlags(parentFlags);}}
this.setTitle(parentItem.get("T"));this.data.titleObj=this._title;this.setContents(parentItem.get("Contents"));this.data.contentsObj=this._contents;if(parentItem.has("RC")){this.data.richText=_factory.XFAFactory.getRichTextAsHtml(parentItem.get("RC"));}}}
exports.PopupAnnotation=PopupAnnotation;class FreeTextAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.FREETEXT;}
get hasTextContent(){return!!this.appearance;}
static createNewDict(annotation,xref,_ref4){let{apRef,ap}=_ref4;const{color,fontSize,rect,rotation,user,value}=annotation;const freetext=new _primitives.Dict(xref);freetext.set("Type",_primitives.Name.get("Annot"));freetext.set("Subtype",_primitives.Name.get("FreeText"));freetext.set("CreationDate",`D:${(0, _util.getModificationDate)()}`);freetext.set("Rect",rect);const da=`/Helv ${fontSize} Tf ${(0, _default_appearance.getPdfColor)(color, true)}`;freetext.set("DA",da);freetext.set("Contents",value);freetext.set("F",4);freetext.set("Border",[0,0,0]);freetext.set("Rotate",rotation);if(user){freetext.set("T",(0,_util.stringToUTF8String)(user));}
const n=new _primitives.Dict(xref);freetext.set("AP",n);if(apRef){n.set("N",apRef);}else{n.set("N",ap);}
return freetext;}
static async createNewAppearanceStream(annotation,xref,params){const{baseFontRef,evaluator,task}=params;const{color,fontSize,rect,rotation,value}=annotation;const resources=new _primitives.Dict(xref);const font=new _primitives.Dict(xref);if(baseFontRef){font.set("Helv",baseFontRef);}else{const baseFont=new _primitives.Dict(xref);baseFont.set("BaseFont",_primitives.Name.get("Helvetica"));baseFont.set("Type",_primitives.Name.get("Font"));baseFont.set("Subtype",_primitives.Name.get("Type1"));baseFont.set("Encoding",_primitives.Name.get("WinAnsiEncoding"));font.set("Helv",baseFont);}
resources.set("Font",font);const helv=await WidgetAnnotation._getFontData(evaluator,task,{fontName:"Helvetica",fontSize},resources);const[x1,y1,x2,y2]=rect;let w=x2-x1;let h=y2-y1;if(rotation%180!==0){[w,h]=[h,w];}
const lines=value.split("\n");const scale=fontSize/1000;let totalWidth=-Infinity;const encodedLines=[];for(let line of lines){line=helv.encodeString(line).join("");encodedLines.push(line);let lineWidth=0;const glyphs=helv.charsToGlyphs(line);for(const glyph of glyphs){lineWidth+=glyph.width*scale;}
totalWidth=Math.max(totalWidth,lineWidth);}
let hscale=1;if(totalWidth>w){hscale=w/totalWidth;}
let vscale=1;const lineHeight=_util.LINE_FACTOR*fontSize;const lineDescent=_util.LINE_DESCENT_FACTOR*fontSize;const totalHeight=lineHeight*lines.length;if(totalHeight>h){vscale=h/totalHeight;}
const fscale=Math.min(hscale,vscale);const newFontSize=fontSize*fscale;const buffer=["q",`0 0 ${(0, _core_utils.numberToString)(w)} ${(0, _core_utils.numberToString)(h)} re W n`,`BT`,`1 0 0 1 0 ${(0, _core_utils.numberToString)(h + lineDescent)} Tm 0 Tc ${(0, _default_appearance.getPdfColor)(color, true)}`,`/Helv ${(0, _core_utils.numberToString)(newFontSize)} Tf`];const vShift=(0,_core_utils.numberToString)(lineHeight);for(const line of encodedLines){buffer.push(`0 -${vShift} Td (${(0, _util.escapeString)(line)}) Tj`);}
buffer.push("ET","Q");const appearance=buffer.join("\n");const appearanceStreamDict=new _primitives.Dict(xref);appearanceStreamDict.set("FormType",1);appearanceStreamDict.set("Subtype",_primitives.Name.get("Form"));appearanceStreamDict.set("Type",_primitives.Name.get("XObject"));appearanceStreamDict.set("BBox",[0,0,w,h]);appearanceStreamDict.set("Length",appearance.length);appearanceStreamDict.set("Resources",resources);if(rotation){const matrix=WidgetAnnotation._getRotationMatrix(rotation,w,h);appearanceStreamDict.set("Matrix",matrix);}
const ap=new _stream.StringStream(appearance);ap.dict=appearanceStreamDict;return ap;}}
class LineAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);const{dict}=parameters;this.data.annotationType=_util.AnnotationType.LINE;const lineCoordinates=dict.getArray("L");this.data.lineCoordinates=_util.Util.normalizeRect(lineCoordinates);this.setLineEndings(dict.getArray("LE"));this.data.lineEndings=this.lineEndings;if(!this.appearance){const strokeColor=this.color?Array.from(this.color).map(c=>c/255):[0,0,0];const strokeAlpha=dict.get("CA");let fillColor=null,interiorColor=dict.getArray("IC");if(interiorColor){interiorColor=getRgbColor(interiorColor,null);fillColor=interiorColor?Array.from(interiorColor).map(c=>c/255):null;}
const fillAlpha=fillColor?strokeAlpha:null;const borderWidth=this.borderStyle.width||1,borderAdjust=2*borderWidth;const bbox=[this.data.lineCoordinates[0]-borderAdjust,this.data.lineCoordinates[1]-borderAdjust,this.data.lineCoordinates[2]+borderAdjust,this.data.lineCoordinates[3]+borderAdjust];if(!_util.Util.intersect(this.rectangle,bbox)){this.rectangle=bbox;}
this._setDefaultAppearance({xref:parameters.xref,extra:`${borderWidth} w`,strokeColor,fillColor,strokeAlpha,fillAlpha,pointsCallback:(buffer,points)=>{buffer.push(`${lineCoordinates[0]} ${lineCoordinates[1]} m`,`${lineCoordinates[2]} ${lineCoordinates[3]} l`,"S");return[points[0].x-borderWidth,points[1].x+borderWidth,points[3].y-borderWidth,points[1].y+borderWidth];}});}}}
class SquareAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.SQUARE;if(!this.appearance){const strokeColor=this.color?Array.from(this.color).map(c=>c/255):[0,0,0];const strokeAlpha=parameters.dict.get("CA");let fillColor=null,interiorColor=parameters.dict.getArray("IC");if(interiorColor){interiorColor=getRgbColor(interiorColor,null);fillColor=interiorColor?Array.from(interiorColor).map(c=>c/255):null;}
const fillAlpha=fillColor?strokeAlpha:null;if(this.borderStyle.width===0&&!fillColor){return;}
this._setDefaultAppearance({xref:parameters.xref,extra:`${this.borderStyle.width} w`,strokeColor,fillColor,strokeAlpha,fillAlpha,pointsCallback:(buffer,points)=>{const x=points[2].x+this.borderStyle.width/2;const y=points[2].y+this.borderStyle.width/2;const width=points[3].x-points[2].x-this.borderStyle.width;const height=points[1].y-points[3].y-this.borderStyle.width;buffer.push(`${x} ${y} ${width} ${height} re`);if(fillColor){buffer.push("B");}else{buffer.push("S");}
return[points[0].x,points[1].x,points[3].y,points[1].y];}});}}}
class CircleAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.CIRCLE;if(!this.appearance){const strokeColor=this.color?Array.from(this.color).map(c=>c/255):[0,0,0];const strokeAlpha=parameters.dict.get("CA");let fillColor=null;let interiorColor=parameters.dict.getArray("IC");if(interiorColor){interiorColor=getRgbColor(interiorColor,null);fillColor=interiorColor?Array.from(interiorColor).map(c=>c/255):null;}
const fillAlpha=fillColor?strokeAlpha:null;if(this.borderStyle.width===0&&!fillColor){return;}
const controlPointsDistance=4/3*Math.tan(Math.PI/(2*4));this._setDefaultAppearance({xref:parameters.xref,extra:`${this.borderStyle.width} w`,strokeColor,fillColor,strokeAlpha,fillAlpha,pointsCallback:(buffer,points)=>{const x0=points[0].x+this.borderStyle.width/2;const y0=points[0].y-this.borderStyle.width/2;const x1=points[3].x-this.borderStyle.width/2;const y1=points[3].y+this.borderStyle.width/2;const xMid=x0+(x1-x0)/2;const yMid=y0+(y1-y0)/2;const xOffset=(x1-x0)/2*controlPointsDistance;const yOffset=(y1-y0)/2*controlPointsDistance;buffer.push(`${xMid} ${y1} m`,`${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`,`${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`,`${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`,`${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`,"h");if(fillColor){buffer.push("B");}else{buffer.push("S");}
return[points[0].x,points[1].x,points[3].y,points[1].y];}});}}}
class PolylineAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);const{dict}=parameters;this.data.annotationType=_util.AnnotationType.POLYLINE;this.data.vertices=[];if(!(this instanceof PolygonAnnotation)){this.setLineEndings(dict.getArray("LE"));this.data.lineEndings=this.lineEndings;}
const rawVertices=dict.getArray("Vertices");if(!Array.isArray(rawVertices)){return;}
for(let i=0,ii=rawVertices.length;i<ii;i+=2){this.data.vertices.push({x:rawVertices[i],y:rawVertices[i+1]});}
if(!this.appearance){const strokeColor=this.color?Array.from(this.color).map(c=>c/255):[0,0,0];const strokeAlpha=dict.get("CA");const borderWidth=this.borderStyle.width||1,borderAdjust=2*borderWidth;const bbox=[Infinity,Infinity,-Infinity,-Infinity];for(const vertex of this.data.vertices){bbox[0]=Math.min(bbox[0],vertex.x-borderAdjust);bbox[1]=Math.min(bbox[1],vertex.y-borderAdjust);bbox[2]=Math.max(bbox[2],vertex.x+borderAdjust);bbox[3]=Math.max(bbox[3],vertex.y+borderAdjust);}
if(!_util.Util.intersect(this.rectangle,bbox)){this.rectangle=bbox;}
this._setDefaultAppearance({xref:parameters.xref,extra:`${borderWidth} w`,strokeColor,strokeAlpha,pointsCallback:(buffer,points)=>{const vertices=this.data.vertices;for(let i=0,ii=vertices.length;i<ii;i++){buffer.push(`${vertices[i].x} ${vertices[i].y} ${i === 0 ? "m" : "l"}`);}
buffer.push("S");return[points[0].x,points[1].x,points[3].y,points[1].y];}});}}}
class PolygonAnnotation extends PolylineAnnotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.POLYGON;}}
class CaretAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.CARET;}}
class InkAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.INK;this.data.inkLists=[];const rawInkLists=parameters.dict.getArray("InkList");if(!Array.isArray(rawInkLists)){return;}
const xref=parameters.xref;for(let i=0,ii=rawInkLists.length;i<ii;++i){this.data.inkLists.push([]);for(let j=0,jj=rawInkLists[i].length;j<jj;j+=2){this.data.inkLists[i].push({x:xref.fetchIfRef(rawInkLists[i][j]),y:xref.fetchIfRef(rawInkLists[i][j+1])});}}
if(!this.appearance){const strokeColor=this.color?Array.from(this.color).map(c=>c/255):[0,0,0];const strokeAlpha=parameters.dict.get("CA");const borderWidth=this.borderStyle.width||1,borderAdjust=2*borderWidth;const bbox=[Infinity,Infinity,-Infinity,-Infinity];for(const inkLists of this.data.inkLists){for(const vertex of inkLists){bbox[0]=Math.min(bbox[0],vertex.x-borderAdjust);bbox[1]=Math.min(bbox[1],vertex.y-borderAdjust);bbox[2]=Math.max(bbox[2],vertex.x+borderAdjust);bbox[3]=Math.max(bbox[3],vertex.y+borderAdjust);}}
if(!_util.Util.intersect(this.rectangle,bbox)){this.rectangle=bbox;}
this._setDefaultAppearance({xref:parameters.xref,extra:`${borderWidth} w`,strokeColor,strokeAlpha,pointsCallback:(buffer,points)=>{for(const inkList of this.data.inkLists){for(let i=0,ii=inkList.length;i<ii;i++){buffer.push(`${inkList[i].x} ${inkList[i].y} ${i === 0 ? "m" : "l"}`);}
buffer.push("S");}
return[points[0].x,points[1].x,points[3].y,points[1].y];}});}}
static createNewDict(annotation,xref,_ref5){let{apRef,ap}=_ref5;const{paths,rect,rotation}=annotation;const ink=new _primitives.Dict(xref);ink.set("Type",_primitives.Name.get("Annot"));ink.set("Subtype",_primitives.Name.get("Ink"));ink.set("CreationDate",`D:${(0, _util.getModificationDate)()}`);ink.set("Rect",rect);ink.set("InkList",paths.map(p=>p.points));ink.set("F",4);ink.set("Border",[0,0,0]);ink.set("Rotate",rotation);const n=new _primitives.Dict(xref);ink.set("AP",n);if(apRef){n.set("N",apRef);}else{n.set("N",ap);}
return ink;}
static async createNewAppearanceStream(annotation,xref,params){const{color,rect,rotation,paths,thickness,opacity}=annotation;const[x1,y1,x2,y2]=rect;let w=x2-x1;let h=y2-y1;if(rotation%180!==0){[w,h]=[h,w];}
const appearanceBuffer=[`${thickness} w 1 J 1 j`,`${(0, _default_appearance.getPdfColor)(color, false)}`];if(opacity!==1){appearanceBuffer.push("/R0 gs");}
const buffer=[];for(const{bezier}of paths){buffer.length=0;buffer.push(`${(0, _core_utils.numberToString)(bezier[0])} ${(0, _core_utils.numberToString)(bezier[1])} m`);for(let i=2,ii=bezier.length;i<ii;i+=6){const curve=bezier.slice(i,i+6).map(_core_utils.numberToString).join(" ");buffer.push(`${curve} c`);}
buffer.push("S");appearanceBuffer.push(buffer.join("\n"));}
const appearance=appearanceBuffer.join("\n");const appearanceStreamDict=new _primitives.Dict(xref);appearanceStreamDict.set("FormType",1);appearanceStreamDict.set("Subtype",_primitives.Name.get("Form"));appearanceStreamDict.set("Type",_primitives.Name.get("XObject"));appearanceStreamDict.set("BBox",[0,0,w,h]);appearanceStreamDict.set("Length",appearance.length);if(rotation){const matrix=WidgetAnnotation._getRotationMatrix(rotation,w,h);appearanceStreamDict.set("Matrix",matrix);}
if(opacity!==1){const resources=new _primitives.Dict(xref);const extGState=new _primitives.Dict(xref);const r0=new _primitives.Dict(xref);r0.set("CA",opacity);r0.set("Type",_primitives.Name.get("ExtGState"));extGState.set("R0",r0);resources.set("ExtGState",extGState);appearanceStreamDict.set("Resources",resources);}
const ap=new _stream.StringStream(appearance);ap.dict=appearanceStreamDict;return ap;}}
class HighlightAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.HIGHLIGHT;const quadPoints=this.data.quadPoints=getQuadPoints(parameters.dict,null);if(quadPoints){const resources=this.appearance&&this.appearance.dict.get("Resources");if(!this.appearance||!(resources&&resources.has("ExtGState"))){if(this.appearance){(0,_util.warn)("HighlightAnnotation - ignoring built-in appearance stream.");}
const fillColor=this.color?Array.from(this.color).map(c=>c/255):[1,1,0];const fillAlpha=parameters.dict.get("CA");this._setDefaultAppearance({xref:parameters.xref,fillColor,blendMode:"Multiply",fillAlpha,pointsCallback:(buffer,points)=>{buffer.push(`${points[0].x} ${points[0].y} m`,`${points[1].x} ${points[1].y} l`,`${points[3].x} ${points[3].y} l`,`${points[2].x} ${points[2].y} l`,"f");return[points[0].x,points[1].x,points[3].y,points[1].y];}});}}else{this.data.hasPopup=false;}}}
class UnderlineAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.UNDERLINE;const quadPoints=this.data.quadPoints=getQuadPoints(parameters.dict,null);if(quadPoints){if(!this.appearance){const strokeColor=this.color?Array.from(this.color).map(c=>c/255):[0,0,0];const strokeAlpha=parameters.dict.get("CA");this._setDefaultAppearance({xref:parameters.xref,extra:"[] 0 d 1 w",strokeColor,strokeAlpha,pointsCallback:(buffer,points)=>{buffer.push(`${points[2].x} ${points[2].y} m`,`${points[3].x} ${points[3].y} l`,"S");return[points[0].x,points[1].x,points[3].y,points[1].y];}});}}else{this.data.hasPopup=false;}}}
class SquigglyAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.SQUIGGLY;const quadPoints=this.data.quadPoints=getQuadPoints(parameters.dict,null);if(quadPoints){if(!this.appearance){const strokeColor=this.color?Array.from(this.color).map(c=>c/255):[0,0,0];const strokeAlpha=parameters.dict.get("CA");this._setDefaultAppearance({xref:parameters.xref,extra:"[] 0 d 1 w",strokeColor,strokeAlpha,pointsCallback:(buffer,points)=>{const dy=(points[0].y-points[2].y)/6;let shift=dy;let x=points[2].x;const y=points[2].y;const xEnd=points[3].x;buffer.push(`${x} ${y + shift} m`);do{x+=2;shift=shift===0?dy:0;buffer.push(`${x} ${y + shift} l`);}while(x<xEnd);buffer.push("S");return[points[2].x,xEnd,y-2*dy,y+2*dy];}});}}else{this.data.hasPopup=false;}}}
class StrikeOutAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.STRIKEOUT;const quadPoints=this.data.quadPoints=getQuadPoints(parameters.dict,null);if(quadPoints){if(!this.appearance){const strokeColor=this.color?Array.from(this.color).map(c=>c/255):[0,0,0];const strokeAlpha=parameters.dict.get("CA");this._setDefaultAppearance({xref:parameters.xref,extra:"[] 0 d 1 w",strokeColor,strokeAlpha,pointsCallback:(buffer,points)=>{buffer.push(`${(points[0].x + points[2].x) / 2} `+`${(points[0].y + points[2].y) / 2} m`,`${(points[1].x + points[3].x) / 2} `+`${(points[1].y + points[3].y) / 2} l`,"S");return[points[0].x,points[1].x,points[3].y,points[1].y];}});}}else{this.data.hasPopup=false;}}}
class StampAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);this.data.annotationType=_util.AnnotationType.STAMP;}}
class FileAttachmentAnnotation extends MarkupAnnotation{constructor(parameters){super(parameters);const file=new _file_spec.FileSpec(parameters.dict.get("FS"),parameters.xref);this.data.annotationType=_util.AnnotationType.FILEATTACHMENT;this.data.file=file.serializable;}}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.createDefaultAppearance=createDefaultAppearance;exports.getPdfColor=getPdfColor;exports.parseDefaultAppearance=parseDefaultAppearance;var _core_utils=__w_pdfjs_require__(131);var _util=__w_pdfjs_require__(2);var _colorspace=__w_pdfjs_require__(139);var _evaluator=__w_pdfjs_require__(140);var _primitives=__w_pdfjs_require__(130);var _stream=__w_pdfjs_require__(135);class DefaultAppearanceEvaluator extends _evaluator.EvaluatorPreprocessor{constructor(str){super(new _stream.StringStream(str));}
parse(){const operation={fn:0,args:[]};const result={fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3)};try{while(true){operation.args.length=0;if(!this.read(operation)){break;}
if(this.savedStatesDepth!==0){continue;}
const{fn,args}=operation;switch(fn|0){case _util.OPS.setFont:const[fontName,fontSize]=args;if(fontName instanceof _primitives.Name){result.fontName=fontName.name;}
if(typeof fontSize==="number"&&fontSize>0){result.fontSize=fontSize;}
break;case _util.OPS.setFillRGBColor:_colorspace.ColorSpace.singletons.rgb.getRgbItem(args,0,result.fontColor,0);break;case _util.OPS.setFillGray:_colorspace.ColorSpace.singletons.gray.getRgbItem(args,0,result.fontColor,0);break;case _util.OPS.setFillColorSpace:_colorspace.ColorSpace.singletons.cmyk.getRgbItem(args,0,result.fontColor,0);break;}}}catch(reason){(0,_util.warn)(`parseDefaultAppearance - ignoring errors: "${reason}".`);}
return result;}}
function parseDefaultAppearance(str){return new DefaultAppearanceEvaluator(str).parse();}
function getPdfColor(color,isFill){if(color[0]===color[1]&&color[1]===color[2]){const gray=color[0]/255;return`${(0, _core_utils.numberToString)(gray)} ${isFill ? "g" : "G"}`;}
return Array.from(color).map(c=>(0,_core_utils.numberToString)(c/255)).join(" ")+` ${isFill ? "rg" : "RG"}`;}
function createDefaultAppearance(_ref){let{fontSize,fontName,fontColor}=_ref;return`/${(0, _core_utils.escapePDFName)(fontName)} ${fontSize} Tf ${getPdfColor(fontColor, true)}`;}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.ColorSpace=void 0;var _util=__w_pdfjs_require__(2);var _primitives=__w_pdfjs_require__(130);var _base_stream=__w_pdfjs_require__(132);var _core_utils=__w_pdfjs_require__(131);function resizeRgbImage(src,dest,w1,h1,w2,h2,alpha01){const COMPONENTS=3;alpha01=alpha01!==1?0:alpha01;const xRatio=w1/w2;const yRatio=h1/h2;let newIndex=0,oldIndex;const xScaled=new Uint16Array(w2);const w1Scanline=w1*COMPONENTS;for(let i=0;i<w2;i++){xScaled[i]=Math.floor(i*xRatio)*COMPONENTS;}
for(let i=0;i<h2;i++){const py=Math.floor(i*yRatio)*w1Scanline;for(let j=0;j<w2;j++){oldIndex=py+xScaled[j];dest[newIndex++]=src[oldIndex++];dest[newIndex++]=src[oldIndex++];dest[newIndex++]=src[oldIndex++];newIndex+=alpha01;}}}
class ColorSpace{constructor(name,numComps){if(this.constructor===ColorSpace){(0,_util.unreachable)("Cannot initialize ColorSpace.");}
this.name=name;this.numComps=numComps;}
getRgb(src,srcOffset){const rgb=new Uint8ClampedArray(3);this.getRgbItem(src,srcOffset,rgb,0);return rgb;}
getRgbItem(src,srcOffset,dest,destOffset){(0,_util.unreachable)("Should not call ColorSpace.getRgbItem");}
getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){(0,_util.unreachable)("Should not call ColorSpace.getRgbBuffer");}
getOutputLength(inputLength,alpha01){(0,_util.unreachable)("Should not call ColorSpace.getOutputLength");}
isPassthrough(bits){return false;}
isDefaultDecode(decodeMap,bpc){return ColorSpace.isDefaultDecode(decodeMap,this.numComps);}
fillRgb(dest,originalWidth,originalHeight,width,height,actualHeight,bpc,comps,alpha01){const count=originalWidth*originalHeight;let rgbBuf=null;const numComponentColors=1<<bpc;const needsResizing=originalHeight!==height||originalWidth!==width;if(this.isPassthrough(bpc)){rgbBuf=comps;}else if(this.numComps===1&&count>numComponentColors&&this.name!=="DeviceGray"&&this.name!=="DeviceRGB"){const allColors=bpc<=8?new Uint8Array(numComponentColors):new Uint16Array(numComponentColors);for(let i=0;i<numComponentColors;i++){allColors[i]=i;}
const colorMap=new Uint8ClampedArray(numComponentColors*3);this.getRgbBuffer(allColors,0,numComponentColors,colorMap,0,bpc,0);if(!needsResizing){let destPos=0;for(let i=0;i<count;++i){const key=comps[i]*3;dest[destPos++]=colorMap[key];dest[destPos++]=colorMap[key+1];dest[destPos++]=colorMap[key+2];destPos+=alpha01;}}else{rgbBuf=new Uint8Array(count*3);let rgbPos=0;for(let i=0;i<count;++i){const key=comps[i]*3;rgbBuf[rgbPos++]=colorMap[key];rgbBuf[rgbPos++]=colorMap[key+1];rgbBuf[rgbPos++]=colorMap[key+2];}}}else{if(!needsResizing){this.getRgbBuffer(comps,0,width*actualHeight,dest,0,bpc,alpha01);}else{rgbBuf=new Uint8ClampedArray(count*3);this.getRgbBuffer(comps,0,count,rgbBuf,0,bpc,0);}}
if(rgbBuf){if(needsResizing){resizeRgbImage(rgbBuf,dest,originalWidth,originalHeight,width,height,alpha01);}else{let destPos=0,rgbPos=0;for(let i=0,ii=width*actualHeight;i<ii;i++){dest[destPos++]=rgbBuf[rgbPos++];dest[destPos++]=rgbBuf[rgbPos++];dest[destPos++]=rgbBuf[rgbPos++];destPos+=alpha01;}}}}
get usesZeroToOneRange(){return(0,_util.shadow)(this,"usesZeroToOneRange",true);}
static _cache(cacheKey,xref,localColorSpaceCache,parsedColorSpace){if(!localColorSpaceCache){throw new Error('ColorSpace._cache - expected "localColorSpaceCache" argument.');}
if(!parsedColorSpace){throw new Error('ColorSpace._cache - expected "parsedColorSpace" argument.');}
let csName,csRef;if(cacheKey instanceof _primitives.Ref){csRef=cacheKey;cacheKey=xref.fetch(cacheKey);}
if(cacheKey instanceof _primitives.Name){csName=cacheKey.name;}
if(csName||csRef){localColorSpaceCache.set(csName,csRef,parsedColorSpace);}}
static getCached(cacheKey,xref,localColorSpaceCache){if(!localColorSpaceCache){throw new Error('ColorSpace.getCached - expected "localColorSpaceCache" argument.');}
if(cacheKey instanceof _primitives.Ref){const localColorSpace=localColorSpaceCache.getByRef(cacheKey);if(localColorSpace){return localColorSpace;}
try{cacheKey=xref.fetch(cacheKey);}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}}}
if(cacheKey instanceof _primitives.Name){const localColorSpace=localColorSpaceCache.getByName(cacheKey.name);if(localColorSpace){return localColorSpace;}}
return null;}
static async parseAsync(_ref){let{cs,xref,resources=null,pdfFunctionFactory,localColorSpaceCache}=_ref;const parsedColorSpace=this._parse(cs,xref,resources,pdfFunctionFactory);this._cache(cs,xref,localColorSpaceCache,parsedColorSpace);return parsedColorSpace;}
static parse(_ref2){let{cs,xref,resources=null,pdfFunctionFactory,localColorSpaceCache}=_ref2;const cachedColorSpace=this.getCached(cs,xref,localColorSpaceCache);if(cachedColorSpace){return cachedColorSpace;}
const parsedColorSpace=this._parse(cs,xref,resources,pdfFunctionFactory);this._cache(cs,xref,localColorSpaceCache,parsedColorSpace);return parsedColorSpace;}
static _parse(cs,xref){let resources=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;let pdfFunctionFactory=arguments.length>3?arguments[3]:undefined;cs=xref.fetchIfRef(cs);if(cs instanceof _primitives.Name){switch(cs.name){case"G":case"DeviceGray":return this.singletons.gray;case"RGB":case"DeviceRGB":return this.singletons.rgb;case"CMYK":case"DeviceCMYK":return this.singletons.cmyk;case"Pattern":return new PatternCS(null);default:if(resources instanceof _primitives.Dict){const colorSpaces=resources.get("ColorSpace");if(colorSpaces instanceof _primitives.Dict){const resourcesCS=colorSpaces.get(cs.name);if(resourcesCS){if(resourcesCS instanceof _primitives.Name){return this._parse(resourcesCS,xref,resources,pdfFunctionFactory);}
cs=resourcesCS;break;}}}
throw new _util.FormatError(`Unrecognized ColorSpace: ${cs.name}`);}}
if(Array.isArray(cs)){const mode=xref.fetchIfRef(cs[0]).name;let params,numComps,baseCS,whitePoint,blackPoint,gamma;switch(mode){case"G":case"DeviceGray":return this.singletons.gray;case"RGB":case"DeviceRGB":return this.singletons.rgb;case"CMYK":case"DeviceCMYK":return this.singletons.cmyk;case"CalGray":params=xref.fetchIfRef(cs[1]);whitePoint=params.getArray("WhitePoint");blackPoint=params.getArray("BlackPoint");gamma=params.get("Gamma");return new CalGrayCS(whitePoint,blackPoint,gamma);case"CalRGB":params=xref.fetchIfRef(cs[1]);whitePoint=params.getArray("WhitePoint");blackPoint=params.getArray("BlackPoint");gamma=params.getArray("Gamma");const matrix=params.getArray("Matrix");return new CalRGBCS(whitePoint,blackPoint,gamma,matrix);case"ICCBased":const stream=xref.fetchIfRef(cs[1]);const dict=stream.dict;numComps=dict.get("N");const alt=dict.get("Alternate");if(alt){const altCS=this._parse(alt,xref,resources,pdfFunctionFactory);if(altCS.numComps===numComps){return altCS;}
(0,_util.warn)("ICCBased color space: Ignoring incorrect /Alternate entry.");}
if(numComps===1){return this.singletons.gray;}else if(numComps===3){return this.singletons.rgb;}else if(numComps===4){return this.singletons.cmyk;}
break;case"Pattern":baseCS=cs[1]||null;if(baseCS){baseCS=this._parse(baseCS,xref,resources,pdfFunctionFactory);}
return new PatternCS(baseCS);case"I":case"Indexed":baseCS=this._parse(cs[1],xref,resources,pdfFunctionFactory);const hiVal=xref.fetchIfRef(cs[2])+1;const lookup=xref.fetchIfRef(cs[3]);return new IndexedCS(baseCS,hiVal,lookup);case"Separation":case"DeviceN":const name=xref.fetchIfRef(cs[1]);numComps=Array.isArray(name)?name.length:1;baseCS=this._parse(cs[2],xref,resources,pdfFunctionFactory);const tintFn=pdfFunctionFactory.create(cs[3]);return new AlternateCS(numComps,baseCS,tintFn);case"Lab":params=xref.fetchIfRef(cs[1]);whitePoint=params.getArray("WhitePoint");blackPoint=params.getArray("BlackPoint");const range=params.getArray("Range");return new LabCS(whitePoint,blackPoint,range);default:throw new _util.FormatError(`Unimplemented ColorSpace object: ${mode}`);}}
throw new _util.FormatError(`Unrecognized ColorSpace object: ${cs}`);}
static isDefaultDecode(decode,numComps){if(!Array.isArray(decode)){return true;}
if(numComps*2!==decode.length){(0,_util.warn)("The decode map is not the correct length");return true;}
for(let i=0,ii=decode.length;i<ii;i+=2){if(decode[i]!==0||decode[i+1]!==1){return false;}}
return true;}
static get singletons(){return(0,_util.shadow)(this,"singletons",{get gray(){return(0,_util.shadow)(this,"gray",new DeviceGrayCS());},get rgb(){return(0,_util.shadow)(this,"rgb",new DeviceRgbCS());},get cmyk(){return(0,_util.shadow)(this,"cmyk",new DeviceCmykCS());}});}}
exports.ColorSpace=ColorSpace;class AlternateCS extends ColorSpace{constructor(numComps,base,tintFn){super("Alternate",numComps);this.base=base;this.tintFn=tintFn;this.tmpBuf=new Float32Array(base.numComps);}
getRgbItem(src,srcOffset,dest,destOffset){const tmpBuf=this.tmpBuf;this.tintFn(src,srcOffset,tmpBuf,0);this.base.getRgbItem(tmpBuf,0,dest,destOffset);}
getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){const tintFn=this.tintFn;const base=this.base;const scale=1/((1<<bits)-1);const baseNumComps=base.numComps;const usesZeroToOneRange=base.usesZeroToOneRange;const isPassthrough=(base.isPassthrough(8)||!usesZeroToOneRange)&&alpha01===0;let pos=isPassthrough?destOffset:0;const baseBuf=isPassthrough?dest:new Uint8ClampedArray(baseNumComps*count);const numComps=this.numComps;const scaled=new Float32Array(numComps);const tinted=new Float32Array(baseNumComps);let i,j;for(i=0;i<count;i++){for(j=0;j<numComps;j++){scaled[j]=src[srcOffset++]*scale;}
tintFn(scaled,0,tinted,0);if(usesZeroToOneRange){for(j=0;j<baseNumComps;j++){baseBuf[pos++]=tinted[j]*255;}}else{base.getRgbItem(tinted,0,baseBuf,pos);pos+=baseNumComps;}}
if(!isPassthrough){base.getRgbBuffer(baseBuf,0,count,dest,destOffset,8,alpha01);}}
getOutputLength(inputLength,alpha01){return this.base.getOutputLength(inputLength*this.base.numComps/this.numComps,alpha01);}}
class PatternCS extends ColorSpace{constructor(baseCS){super("Pattern",null);this.base=baseCS;}
isDefaultDecode(decodeMap,bpc){(0,_util.unreachable)("Should not call PatternCS.isDefaultDecode");}}
class IndexedCS extends ColorSpace{constructor(base,highVal,lookup){super("Indexed",1);this.base=base;this.highVal=highVal;const length=base.numComps*highVal;this.lookup=new Uint8Array(length);if(lookup instanceof _base_stream.BaseStream){const bytes=lookup.getBytes(length);this.lookup.set(bytes);}else if(typeof lookup==="string"){for(let i=0;i<length;++i){this.lookup[i]=lookup.charCodeAt(i)&0xff;}}else{throw new _util.FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);}}
getRgbItem(src,srcOffset,dest,destOffset){const numComps=this.base.numComps;const start=src[srcOffset]*numComps;this.base.getRgbBuffer(this.lookup,start,1,dest,destOffset,8,0);}
getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){const base=this.base;const numComps=base.numComps;const outputDelta=base.getOutputLength(numComps,alpha01);const lookup=this.lookup;for(let i=0;i<count;++i){const lookupPos=src[srcOffset++]*numComps;base.getRgbBuffer(lookup,lookupPos,1,dest,destOffset,8,alpha01);destOffset+=outputDelta;}}
getOutputLength(inputLength,alpha01){return this.base.getOutputLength(inputLength*this.base.numComps,alpha01);}
isDefaultDecode(decodeMap,bpc){if(!Array.isArray(decodeMap)){return true;}
if(decodeMap.length!==2){(0,_util.warn)("Decode map length is not correct");return true;}
if(!Number.isInteger(bpc)||bpc<1){(0,_util.warn)("Bits per component is not correct");return true;}
return decodeMap[0]===0&&decodeMap[1]===(1<<bpc)-1;}}
class DeviceGrayCS extends ColorSpace{constructor(){super("DeviceGray",1);}
getRgbItem(src,srcOffset,dest,destOffset){const c=src[srcOffset]*255;dest[destOffset]=dest[destOffset+1]=dest[destOffset+2]=c;}
getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){const scale=255/((1<<bits)-1);let j=srcOffset,q=destOffset;for(let i=0;i<count;++i){const c=scale*src[j++];dest[q++]=c;dest[q++]=c;dest[q++]=c;q+=alpha01;}}
getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01);}}
class DeviceRgbCS extends ColorSpace{constructor(){super("DeviceRGB",3);}
getRgbItem(src,srcOffset,dest,destOffset){dest[destOffset]=src[srcOffset]*255;dest[destOffset+1]=src[srcOffset+1]*255;dest[destOffset+2]=src[srcOffset+2]*255;}
getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){if(bits===8&&alpha01===0){dest.set(src.subarray(srcOffset,srcOffset+count*3),destOffset);return;}
const scale=255/((1<<bits)-1);let j=srcOffset,q=destOffset;for(let i=0;i<count;++i){dest[q++]=scale*src[j++];dest[q++]=scale*src[j++];dest[q++]=scale*src[j++];q+=alpha01;}}
getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)/3|0;}
isPassthrough(bits){return bits===8;}}
const DeviceCmykCS=function DeviceCmykCSClosure(){function convertToRgb(src,srcOffset,srcScale,dest,destOffset){const c=src[srcOffset]*srcScale;const m=src[srcOffset+1]*srcScale;const y=src[srcOffset+2]*srcScale;const k=src[srcOffset+3]*srcScale;dest[destOffset]=255+c*(-4.387332384609988*c+54.48615194189176*m+18.82290502165302*y+212.25662451639585*k+-285.2331026137004)+m*(1.7149763477362134*m-5.6096736904047315*y+-17.873870861415444*k-5.497006427196366)+y*(-2.5217340131683033*y-21.248923337353073*k+17.5119270841813)+k*(-21.86122147463605*k-189.48180835922747);dest[destOffset+1]=255+c*(8.841041422036149*c+60.118027045597366*m+6.871425592049007*y+31.159100130055922*k+-79.2970844816548)+m*(-15.310361306967817*m+17.575251261109482*y+131.35250912493976*k-190.9453302588951)+y*(4.444339102852739*y+9.8632861493405*k-24.86741582555878)+k*(-20.737325471181034*k-187.80453709719578);dest[destOffset+2]=255+c*(0.8842522430003296*c+8.078677503112928*m+30.89978309703729*y-0.23883238689178934*k+-14.183576799673286)+m*(10.49593273432072*m+63.02378494754052*y+50.606957656360734*k-112.23884253719248)+y*(0.03296041114873217*y+115.60384449646641*k+-193.58209356861505)+k*(-22.33816807309886*k-180.12613974708367);}
class DeviceCmykCS extends ColorSpace{constructor(){super("DeviceCMYK",4);}
getRgbItem(src,srcOffset,dest,destOffset){convertToRgb(src,srcOffset,1,dest,destOffset);}
getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){const scale=1/((1<<bits)-1);for(let i=0;i<count;i++){convertToRgb(src,srcOffset,scale,dest,destOffset);srcOffset+=4;destOffset+=3+alpha01;}}
getOutputLength(inputLength,alpha01){return inputLength/4*(3+alpha01)|0;}}
return DeviceCmykCS;}();const CalGrayCS=function CalGrayCSClosure(){function convertToRgb(cs,src,srcOffset,dest,destOffset,scale){const A=src[srcOffset]*scale;const AG=A**cs.G;const L=cs.YW*AG;const val=Math.max(295.8*L**0.3333333333333333-40.8,0);dest[destOffset]=val;dest[destOffset+1]=val;dest[destOffset+2]=val;}
class CalGrayCS extends ColorSpace{constructor(whitePoint,blackPoint,gamma){super("CalGray",1);if(!whitePoint){throw new _util.FormatError("WhitePoint missing - required for color space CalGray");}
blackPoint=blackPoint||[0,0,0];gamma=gamma||1;this.XW=whitePoint[0];this.YW=whitePoint[1];this.ZW=whitePoint[2];this.XB=blackPoint[0];this.YB=blackPoint[1];this.ZB=blackPoint[2];this.G=gamma;if(this.XW<0||this.ZW<0||this.YW!==1){throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}`+", no fallback available");}
if(this.XB<0||this.YB<0||this.ZB<0){(0,_util.info)(`Invalid BlackPoint for ${this.name}, falling back to default.`);this.XB=this.YB=this.ZB=0;}
if(this.XB!==0||this.YB!==0||this.ZB!==0){(0,_util.warn)(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, `+`ZB: ${this.ZB}, only default values are supported.`);}
if(this.G<1){(0,_util.info)(`Invalid Gamma: ${this.G} for ${this.name}, `+"falling back to default.");this.G=1;}}
getRgbItem(src,srcOffset,dest,destOffset){convertToRgb(this,src,srcOffset,dest,destOffset,1);}
getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){const scale=1/((1<<bits)-1);for(let i=0;i<count;++i){convertToRgb(this,src,srcOffset,dest,destOffset,scale);srcOffset+=1;destOffset+=3+alpha01;}}
getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01);}}
return CalGrayCS;}();const CalRGBCS=function CalRGBCSClosure(){const BRADFORD_SCALE_MATRIX=new Float32Array([0.8951,0.2664,-0.1614,-0.7502,1.7135,0.0367,0.0389,-0.0685,1.0296]);const BRADFORD_SCALE_INVERSE_MATRIX=new Float32Array([0.9869929,-0.1470543,0.1599627,0.4323053,0.5183603,0.0492912,-0.0085287,0.0400428,0.9684867]);const SRGB_D65_XYZ_TO_RGB_MATRIX=new Float32Array([3.2404542,-1.5371385,-0.4985314,-0.9692660,1.8760108,0.0415560,0.0556434,-0.2040259,1.0572252]);const FLAT_WHITEPOINT_MATRIX=new Float32Array([1,1,1]);const tempNormalizeMatrix=new Float32Array(3);const tempConvertMatrix1=new Float32Array(3);const tempConvertMatrix2=new Float32Array(3);const DECODE_L_CONSTANT=((8+16)/116)**3/8.0;function matrixProduct(a,b,result){result[0]=a[0]*b[0]+a[1]*b[1]+a[2]*b[2];result[1]=a[3]*b[0]+a[4]*b[1]+a[5]*b[2];result[2]=a[6]*b[0]+a[7]*b[1]+a[8]*b[2];}
function convertToFlat(sourceWhitePoint,LMS,result){result[0]=LMS[0]*1/sourceWhitePoint[0];result[1]=LMS[1]*1/sourceWhitePoint[1];result[2]=LMS[2]*1/sourceWhitePoint[2];}
function convertToD65(sourceWhitePoint,LMS,result){const D65X=0.95047;const D65Y=1;const D65Z=1.08883;result[0]=LMS[0]*D65X/sourceWhitePoint[0];result[1]=LMS[1]*D65Y/sourceWhitePoint[1];result[2]=LMS[2]*D65Z/sourceWhitePoint[2];}
function sRGBTransferFunction(color){if(color<=0.0031308){return adjustToRange(0,1,12.92*color);}
if(color>=0.99554525){return 1;}
return adjustToRange(0,1,(1+0.055)*color**(1/2.4)-0.055);}
function adjustToRange(min,max,value){return Math.max(min,Math.min(max,value));}
function decodeL(L){if(L<0){return-decodeL(-L);}
if(L>8.0){return((L+16)/116)**3;}
return L*DECODE_L_CONSTANT;}
function compensateBlackPoint(sourceBlackPoint,XYZ_Flat,result){if(sourceBlackPoint[0]===0&&sourceBlackPoint[1]===0&&sourceBlackPoint[2]===0){result[0]=XYZ_Flat[0];result[1]=XYZ_Flat[1];result[2]=XYZ_Flat[2];return;}
const zeroDecodeL=decodeL(0);const X_DST=zeroDecodeL;const X_SRC=decodeL(sourceBlackPoint[0]);const Y_DST=zeroDecodeL;const Y_SRC=decodeL(sourceBlackPoint[1]);const Z_DST=zeroDecodeL;const Z_SRC=decodeL(sourceBlackPoint[2]);const X_Scale=(1-X_DST)/(1-X_SRC);const X_Offset=1-X_Scale;const Y_Scale=(1-Y_DST)/(1-Y_SRC);const Y_Offset=1-Y_Scale;const Z_Scale=(1-Z_DST)/(1-Z_SRC);const Z_Offset=1-Z_Scale;result[0]=XYZ_Flat[0]*X_Scale+X_Offset;result[1]=XYZ_Flat[1]*Y_Scale+Y_Offset;result[2]=XYZ_Flat[2]*Z_Scale+Z_Offset;}
function normalizeWhitePointToFlat(sourceWhitePoint,XYZ_In,result){if(sourceWhitePoint[0]===1&&sourceWhitePoint[2]===1){result[0]=XYZ_In[0];result[1]=XYZ_In[1];result[2]=XYZ_In[2];return;}
const LMS=result;matrixProduct(BRADFORD_SCALE_MATRIX,XYZ_In,LMS);const LMS_Flat=tempNormalizeMatrix;convertToFlat(sourceWhitePoint,LMS,LMS_Flat);matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX,LMS_Flat,result);}
function normalizeWhitePointToD65(sourceWhitePoint,XYZ_In,result){const LMS=result;matrixProduct(BRADFORD_SCALE_MATRIX,XYZ_In,LMS);const LMS_D65=tempNormalizeMatrix;convertToD65(sourceWhitePoint,LMS,LMS_D65);matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX,LMS_D65,result);}
function convertToRgb(cs,src,srcOffset,dest,destOffset,scale){const A=adjustToRange(0,1,src[srcOffset]*scale);const B=adjustToRange(0,1,src[srcOffset+1]*scale);const C=adjustToRange(0,1,src[srcOffset+2]*scale);const AGR=A===1?1:A**cs.GR;const BGG=B===1?1:B**cs.GG;const CGB=C===1?1:C**cs.GB;const X=cs.MXA*AGR+cs.MXB*BGG+cs.MXC*CGB;const Y=cs.MYA*AGR+cs.MYB*BGG+cs.MYC*CGB;const Z=cs.MZA*AGR+cs.MZB*BGG+cs.MZC*CGB;const XYZ=tempConvertMatrix1;XYZ[0]=X;XYZ[1]=Y;XYZ[2]=Z;const XYZ_Flat=tempConvertMatrix2;normalizeWhitePointToFlat(cs.whitePoint,XYZ,XYZ_Flat);const XYZ_Black=tempConvertMatrix1;compensateBlackPoint(cs.blackPoint,XYZ_Flat,XYZ_Black);const XYZ_D65=tempConvertMatrix2;normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX,XYZ_Black,XYZ_D65);const SRGB=tempConvertMatrix1;matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX,XYZ_D65,SRGB);dest[destOffset]=sRGBTransferFunction(SRGB[0])*255;dest[destOffset+1]=sRGBTransferFunction(SRGB[1])*255;dest[destOffset+2]=sRGBTransferFunction(SRGB[2])*255;}
class CalRGBCS extends ColorSpace{constructor(whitePoint,blackPoint,gamma,matrix){super("CalRGB",3);if(!whitePoint){throw new _util.FormatError("WhitePoint missing - required for color space CalRGB");}
blackPoint=blackPoint||new Float32Array(3);gamma=gamma||new Float32Array([1,1,1]);matrix=matrix||new Float32Array([1,0,0,0,1,0,0,0,1]);const XW=whitePoint[0];const YW=whitePoint[1];const ZW=whitePoint[2];this.whitePoint=whitePoint;const XB=blackPoint[0];const YB=blackPoint[1];const ZB=blackPoint[2];this.blackPoint=blackPoint;this.GR=gamma[0];this.GG=gamma[1];this.GB=gamma[2];this.MXA=matrix[0];this.MYA=matrix[1];this.MZA=matrix[2];this.MXB=matrix[3];this.MYB=matrix[4];this.MZB=matrix[5];this.MXC=matrix[6];this.MYC=matrix[7];this.MZC=matrix[8];if(XW<0||ZW<0||YW!==1){throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}`+", no fallback available");}
if(XB<0||YB<0||ZB<0){(0,_util.info)(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], `+"falling back to default.");this.blackPoint=new Float32Array(3);}
if(this.GR<0||this.GG<0||this.GB<0){(0,_util.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for `+`${this.name}, falling back to default.`);this.GR=this.GG=this.GB=1;}}
getRgbItem(src,srcOffset,dest,destOffset){convertToRgb(this,src,srcOffset,dest,destOffset,1);}
getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){const scale=1/((1<<bits)-1);for(let i=0;i<count;++i){convertToRgb(this,src,srcOffset,dest,destOffset,scale);srcOffset+=3;destOffset+=3+alpha01;}}
getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)/3|0;}}
return CalRGBCS;}();const LabCS=function LabCSClosure(){function fn_g(x){let result;if(x>=6/29){result=x**3;}else{result=108/841*(x-4/29);}
return result;}
function decode(value,high1,low2,high2){return low2+value*(high2-low2)/high1;}
function convertToRgb(cs,src,srcOffset,maxVal,dest,destOffset){let Ls=src[srcOffset];let as=src[srcOffset+1];let bs=src[srcOffset+2];if(maxVal!==false){Ls=decode(Ls,maxVal,0,100);as=decode(as,maxVal,cs.amin,cs.amax);bs=decode(bs,maxVal,cs.bmin,cs.bmax);}
if(as>cs.amax){as=cs.amax;}else if(as<cs.amin){as=cs.amin;}
if(bs>cs.bmax){bs=cs.bmax;}else if(bs<cs.bmin){bs=cs.bmin;}
const M=(Ls+16)/116;const L=M+as/500;const N=M-bs/200;const X=cs.XW*fn_g(L);const Y=cs.YW*fn_g(M);const Z=cs.ZW*fn_g(N);let r,g,b;if(cs.ZW<1){r=X*3.1339+Y*-1.617+Z*-0.4906;g=X*-0.9785+Y*1.916+Z*0.0333;b=X*0.072+Y*-0.229+Z*1.4057;}else{r=X*3.2406+Y*-1.5372+Z*-0.4986;g=X*-0.9689+Y*1.8758+Z*0.0415;b=X*0.0557+Y*-0.204+Z*1.057;}
dest[destOffset]=Math.sqrt(r)*255;dest[destOffset+1]=Math.sqrt(g)*255;dest[destOffset+2]=Math.sqrt(b)*255;}
class LabCS extends ColorSpace{constructor(whitePoint,blackPoint,range){super("Lab",3);if(!whitePoint){throw new _util.FormatError("WhitePoint missing - required for color space Lab");}
blackPoint=blackPoint||[0,0,0];range=range||[-100,100,-100,100];this.XW=whitePoint[0];this.YW=whitePoint[1];this.ZW=whitePoint[2];this.amin=range[0];this.amax=range[1];this.bmin=range[2];this.bmax=range[3];this.XB=blackPoint[0];this.YB=blackPoint[1];this.ZB=blackPoint[2];if(this.XW<0||this.ZW<0||this.YW!==1){throw new _util.FormatError("Invalid WhitePoint components, no fallback available");}
if(this.XB<0||this.YB<0||this.ZB<0){(0,_util.info)("Invalid BlackPoint, falling back to default");this.XB=this.YB=this.ZB=0;}
if(this.amin>this.amax||this.bmin>this.bmax){(0,_util.info)("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100;}}
getRgbItem(src,srcOffset,dest,destOffset){convertToRgb(this,src,srcOffset,false,dest,destOffset);}
getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){const maxVal=(1<<bits)-1;for(let i=0;i<count;i++){convertToRgb(this,src,srcOffset,maxVal,dest,destOffset);srcOffset+=3;destOffset+=3+alpha01;}}
getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)/3|0;}
isDefaultDecode(decodeMap,bpc){return true;}
get usesZeroToOneRange(){return(0,_util.shadow)(this,"usesZeroToOneRange",false);}}
return LabCS;}();}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PartialEvaluator=exports.EvaluatorPreprocessor=void 0;var _util=__w_pdfjs_require__(2);var _cmap=__w_pdfjs_require__(141);var _primitives=__w_pdfjs_require__(130);var _fonts=__w_pdfjs_require__(159);var _fonts_utils=__w_pdfjs_require__(163);var _encodings=__w_pdfjs_require__(162);var _standard_fonts=__w_pdfjs_require__(166);var _unicode=__w_pdfjs_require__(165);var _pattern=__w_pdfjs_require__(175);var _xfa_fonts=__w_pdfjs_require__(176);var _to_unicode_map=__w_pdfjs_require__(167);var _function=__w_pdfjs_require__(182);var _parser=__w_pdfjs_require__(142);var _image_utils=__w_pdfjs_require__(184);var _stream=__w_pdfjs_require__(135);var _base_stream=__w_pdfjs_require__(132);var _bidi=__w_pdfjs_require__(185);var _colorspace=__w_pdfjs_require__(139);var _decode_stream=__w_pdfjs_require__(144);var _glyphlist=__w_pdfjs_require__(164);var _core_utils=__w_pdfjs_require__(131);var _metrics=__w_pdfjs_require__(170);var _murmurhash=__w_pdfjs_require__(186);var _operator_list=__w_pdfjs_require__(187);var _image=__w_pdfjs_require__(188);const DefaultPartialEvaluatorOptions=Object.freeze({maxImageSize:-1,disableFontFace:false,ignoreErrors:false,isEvalSupported:true,fontExtraProperties:false,useSystemFonts:true,cMapUrl:null,standardFontDataUrl:null});const PatternType={TILING:1,SHADING:2};const TEXT_CHUNK_BATCH_SIZE=10;const deferred=Promise.resolve();function normalizeBlendMode(value){let parsingArray=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(Array.isArray(value)){for(let i=0,ii=value.length;i<ii;i++){const maybeBM=normalizeBlendMode(value[i],true);if(maybeBM){return maybeBM;}}
(0,_util.warn)(`Unsupported blend mode Array: ${value}`);return"source-over";}
if(!(value instanceof _primitives.Name)){if(parsingArray){return null;}
return"source-over";}
switch(value.name){case"Normal":case"Compatible":return"source-over";case"Multiply":return"multiply";case"Screen":return"screen";case"Overlay":return"overlay";case"Darken":return"darken";case"Lighten":return"lighten";case"ColorDodge":return"color-dodge";case"ColorBurn":return"color-burn";case"HardLight":return"hard-light";case"SoftLight":return"soft-light";case"Difference":return"difference";case"Exclusion":return"exclusion";case"Hue":return"hue";case"Saturation":return"saturation";case"Color":return"color";case"Luminosity":return"luminosity";}
if(parsingArray){return null;}
(0,_util.warn)(`Unsupported blend mode: ${value.name}`);return"source-over";}
function incrementCachedImageMaskCount(data){if(data.fn===_util.OPS.paintImageMaskXObject&&data.args[0]&&data.args[0].count>0){data.args[0].count++;}}
class TimeSlotManager{static get TIME_SLOT_DURATION_MS(){return(0,_util.shadow)(this,"TIME_SLOT_DURATION_MS",20);}
static get CHECK_TIME_EVERY(){return(0,_util.shadow)(this,"CHECK_TIME_EVERY",100);}
constructor(){this.reset();}
check(){if(++this.checked<TimeSlotManager.CHECK_TIME_EVERY){return false;}
this.checked=0;return this.endTime<=Date.now();}
reset(){this.endTime=Date.now()+TimeSlotManager.TIME_SLOT_DURATION_MS;this.checked=0;}}
class PartialEvaluator{constructor(_ref){let{xref,handler,pageIndex,idFactory,fontCache,builtInCMapCache,standardFontDataCache,globalImageCache,options=null}=_ref;this.xref=xref;this.handler=handler;this.pageIndex=pageIndex;this.idFactory=idFactory;this.fontCache=fontCache;this.builtInCMapCache=builtInCMapCache;this.standardFontDataCache=standardFontDataCache;this.globalImageCache=globalImageCache;this.options=options||DefaultPartialEvaluatorOptions;this.parsingType3Font=false;this._fetchBuiltInCMapBound=this.fetchBuiltInCMap.bind(this);}
get _pdfFunctionFactory(){const pdfFunctionFactory=new _function.PDFFunctionFactory({xref:this.xref,isEvalSupported:this.options.isEvalSupported});return(0,_util.shadow)(this,"_pdfFunctionFactory",pdfFunctionFactory);}
clone(){let newOptions=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;const newEvaluator=Object.create(this);newEvaluator.options=Object.assign(Object.create(null),this.options,newOptions);return newEvaluator;}
hasBlendModes(resources,nonBlendModesSet){if(!(resources instanceof _primitives.Dict)){return false;}
if(resources.objId&&nonBlendModesSet.has(resources.objId)){return false;}
const processed=new _primitives.RefSet(nonBlendModesSet);if(resources.objId){processed.put(resources.objId);}
const nodes=[resources],xref=this.xref;while(nodes.length){const node=nodes.shift();const graphicStates=node.get("ExtGState");if(graphicStates instanceof _primitives.Dict){for(let graphicState of graphicStates.getRawValues()){if(graphicState instanceof _primitives.Ref){if(processed.has(graphicState)){continue;}
try{graphicState=xref.fetch(graphicState);}catch(ex){processed.put(graphicState);(0,_util.info)(`hasBlendModes - ignoring ExtGState: "${ex}".`);continue;}}
if(!(graphicState instanceof _primitives.Dict)){continue;}
if(graphicState.objId){processed.put(graphicState.objId);}
const bm=graphicState.get("BM");if(bm instanceof _primitives.Name){if(bm.name!=="Normal"){return true;}
continue;}
if(bm!==undefined&&Array.isArray(bm)){for(const element of bm){if(element instanceof _primitives.Name&&element.name!=="Normal"){return true;}}}}}
const xObjects=node.get("XObject");if(!(xObjects instanceof _primitives.Dict)){continue;}
for(let xObject of xObjects.getRawValues()){if(xObject instanceof _primitives.Ref){if(processed.has(xObject)){continue;}
try{xObject=xref.fetch(xObject);}catch(ex){processed.put(xObject);(0,_util.info)(`hasBlendModes - ignoring XObject: "${ex}".`);continue;}}
if(!(xObject instanceof _base_stream.BaseStream)){continue;}
if(xObject.dict.objId){processed.put(xObject.dict.objId);}
const xResources=xObject.dict.get("Resources");if(!(xResources instanceof _primitives.Dict)){continue;}
if(xResources.objId&&processed.has(xResources.objId)){continue;}
nodes.push(xResources);if(xResources.objId){processed.put(xResources.objId);}}}
for(const ref of processed){nonBlendModesSet.put(ref);}
return false;}
async fetchBuiltInCMap(name){const cachedData=this.builtInCMapCache.get(name);if(cachedData){return cachedData;}
let data;if(this.options.cMapUrl!==null){const url=`${this.options.cMapUrl}${name}.bcmap`;const response=await fetch(url);if(!response.ok){throw new Error(`fetchBuiltInCMap: failed to fetch file "${url}" with "${response.statusText}".`);}
data={cMapData:new Uint8Array(await response.arrayBuffer()),compressionType:_util.CMapCompressionType.BINARY};}else{data=await this.handler.sendWithPromise("FetchBuiltInCMap",{name});}
if(data.compressionType!==_util.CMapCompressionType.NONE){this.builtInCMapCache.set(name,data);}
return data;}
async fetchStandardFontData(name){const cachedData=this.standardFontDataCache.get(name);if(cachedData){return new _stream.Stream(cachedData);}
if(this.options.useSystemFonts&&name!=="Symbol"&&name!=="ZapfDingbats"){return null;}
const standardFontNameToFileName=(0,_standard_fonts.getFontNameToFileMap)(),filename=standardFontNameToFileName[name];let data;if(this.options.standardFontDataUrl!==null){const url=`${this.options.standardFontDataUrl}${filename}`;const response=await fetch(url);if(!response.ok){(0,_util.warn)(`fetchStandardFontData: failed to fetch file "${url}" with "${response.statusText}".`);}else{data=await response.arrayBuffer();}}else{try{data=await this.handler.sendWithPromise("FetchStandardFontData",{filename});}catch(e){(0,_util.warn)(`fetchStandardFontData: failed to fetch file "${filename}" with "${e}".`);}}
if(!data){return null;}
this.standardFontDataCache.set(name,data);return new _stream.Stream(data);}
async buildFormXObject(resources,xobj,smask,operatorList,task,initialState,localColorSpaceCache){const dict=xobj.dict;const matrix=dict.getArray("Matrix");let bbox=dict.getArray("BBox");if(Array.isArray(bbox)&&bbox.length===4){bbox=_util.Util.normalizeRect(bbox);}else{bbox=null;}
let optionalContent,groupOptions;if(dict.has("OC")){optionalContent=await this.parseMarkedContentProps(dict.get("OC"),resources);}
if(optionalContent!==undefined){operatorList.addOp(_util.OPS.beginMarkedContentProps,["OC",optionalContent]);}
const group=dict.get("Group");if(group){groupOptions={matrix,bbox,smask,isolated:false,knockout:false};const groupSubtype=group.get("S");let colorSpace=null;if((0,_primitives.isName)(groupSubtype,"Transparency")){groupOptions.isolated=group.get("I")||false;groupOptions.knockout=group.get("K")||false;if(group.has("CS")){const cs=group.getRaw("CS");const cachedColorSpace=_colorspace.ColorSpace.getCached(cs,this.xref,localColorSpaceCache);if(cachedColorSpace){colorSpace=cachedColorSpace;}else{colorSpace=await this.parseColorSpace({cs,resources,localColorSpaceCache});}}}
if(smask&&smask.backdrop){colorSpace=colorSpace||_colorspace.ColorSpace.singletons.rgb;smask.backdrop=colorSpace.getRgb(smask.backdrop,0);}
operatorList.addOp(_util.OPS.beginGroup,[groupOptions]);}
const args=group?[matrix,null]:[matrix,bbox];operatorList.addOp(_util.OPS.paintFormXObjectBegin,args);return this.getOperatorList({stream:xobj,task,resources:dict.get("Resources")||resources,operatorList,initialState}).then(function(){operatorList.addOp(_util.OPS.paintFormXObjectEnd,[]);if(group){operatorList.addOp(_util.OPS.endGroup,[groupOptions]);}
if(optionalContent!==undefined){operatorList.addOp(_util.OPS.endMarkedContent,[]);}});}
_sendImgData(objId,imgData){let cacheGlobally=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;const transfers=imgData?[imgData.bitmap||imgData.data.buffer]:null;if(this.parsingType3Font||cacheGlobally){return this.handler.send("commonobj",[objId,"Image",imgData],transfers);}
return this.handler.send("obj",[objId,this.pageIndex,"Image",imgData],transfers);}
async buildPaintImageXObject(_ref2){let{resources,image,isInline=false,operatorList,cacheKey,localImageCache,localColorSpaceCache}=_ref2;const dict=image.dict;const imageRef=dict.objId;const w=dict.get("W","Width");const h=dict.get("H","Height");if(!(w&&typeof w==="number")||!(h&&typeof h==="number")){(0,_util.warn)("Image dimensions are missing, or not numbers.");return;}
const maxImageSize=this.options.maxImageSize;if(maxImageSize!==-1&&w*h>maxImageSize){const msg="Image exceeded maximum allowed size and was removed.";if(this.options.ignoreErrors){(0,_util.warn)(msg);return;}
throw new Error(msg);}
let optionalContent;if(dict.has("OC")){optionalContent=await this.parseMarkedContentProps(dict.get("OC"),resources);}
const imageMask=dict.get("IM","ImageMask")||false;let imgData,args;if(imageMask){const interpolate=dict.get("I","Interpolate");const bitStrideLength=w+7>>3;const imgArray=image.getBytes(bitStrideLength*h);const decode=dict.getArray("D","Decode");if(this.parsingType3Font){imgData=_image.PDFImage.createRawMask({imgArray,width:w,height:h,imageIsFromDecodeStream:image instanceof _decode_stream.DecodeStream,inverseDecode:!!decode&&decode[0]>0,interpolate});imgData.cached=!!cacheKey;args=[imgData];operatorList.addImageOps(_util.OPS.paintImageMaskXObject,args,optionalContent);if(cacheKey){localImageCache.set(cacheKey,imageRef,{fn:_util.OPS.paintImageMaskXObject,args,optionalContent});}
return;}
imgData=_image.PDFImage.createMask({imgArray,width:w,height:h,imageIsFromDecodeStream:image instanceof _decode_stream.DecodeStream,inverseDecode:!!decode&&decode[0]>0,interpolate});if(imgData.isSingleOpaquePixel){operatorList.addImageOps(_util.OPS.paintSolidColorImageMask,[],optionalContent);if(cacheKey){localImageCache.set(cacheKey,imageRef,{fn:_util.OPS.paintSolidColorImageMask,args:[],optionalContent});}
return;}
const objId=`mask_${this.idFactory.createObjId()}`;operatorList.addDependency(objId);this._sendImgData(objId,imgData);args=[{data:objId,width:imgData.width,height:imgData.height,interpolate:imgData.interpolate,count:1}];operatorList.addImageOps(_util.OPS.paintImageMaskXObject,args,optionalContent);if(cacheKey){localImageCache.set(cacheKey,imageRef,{fn:_util.OPS.paintImageMaskXObject,args,optionalContent});}
return;}
const softMask=dict.get("SM","SMask")||false;const mask=dict.get("Mask")||false;const SMALL_IMAGE_DIMENSIONS=200;if(isInline&&!softMask&&!mask&&w+h<SMALL_IMAGE_DIMENSIONS){const imageObj=new _image.PDFImage({xref:this.xref,res:resources,image,isInline,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache});imgData=imageObj.createImageData(true);operatorList.addImageOps(_util.OPS.paintInlineImageXObject,[imgData],optionalContent);return;}
let objId=`img_${this.idFactory.createObjId()}`,cacheGlobally=false;if(this.parsingType3Font){objId=`${this.idFactory.getDocId()}_type3_${objId}`;}else if(imageRef){cacheGlobally=this.globalImageCache.shouldCache(imageRef,this.pageIndex);if(cacheGlobally){objId=`${this.idFactory.getDocId()}_${objId}`;}}
operatorList.addDependency(objId);args=[objId,w,h];_image.PDFImage.buildImage({xref:this.xref,res:resources,image,isInline,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache}).then(imageObj=>{imgData=imageObj.createImageData(false);if(cacheKey&&imageRef&&cacheGlobally){this.globalImageCache.addByteSize(imageRef,imgData.data.length);}
return this._sendImgData(objId,imgData,cacheGlobally);}).catch(reason=>{(0,_util.warn)(`Unable to decode image "${objId}": "${reason}".`);return this._sendImgData(objId,null,cacheGlobally);});operatorList.addImageOps(_util.OPS.paintImageXObject,args,optionalContent);if(cacheKey){localImageCache.set(cacheKey,imageRef,{fn:_util.OPS.paintImageXObject,args,optionalContent});if(imageRef){(0,_util.assert)(!isInline,"Cannot cache an inline image globally.");this.globalImageCache.addPageIndex(imageRef,this.pageIndex);if(cacheGlobally){this.globalImageCache.setData(imageRef,{objId,fn:_util.OPS.paintImageXObject,args,optionalContent,byteSize:0});}}}}
handleSMask(smask,resources,operatorList,task,stateManager,localColorSpaceCache){const smaskContent=smask.get("G");const smaskOptions={subtype:smask.get("S").name,backdrop:smask.get("BC")};const transferObj=smask.get("TR");if((0,_function.isPDFFunction)(transferObj)){const transferFn=this._pdfFunctionFactory.create(transferObj);const transferMap=new Uint8Array(256);const tmp=new Float32Array(1);for(let i=0;i<256;i++){tmp[0]=i/255;transferFn(tmp,0,tmp,0);transferMap[i]=tmp[0]*255|0;}
smaskOptions.transferMap=transferMap;}
return this.buildFormXObject(resources,smaskContent,smaskOptions,operatorList,task,stateManager.state.clone(),localColorSpaceCache);}
handleTransferFunction(tr){let transferArray;if(Array.isArray(tr)){transferArray=tr;}else if((0,_function.isPDFFunction)(tr)){transferArray=[tr];}else{return null;}
const transferMaps=[];let numFns=0,numEffectfulFns=0;for(const entry of transferArray){const transferObj=this.xref.fetchIfRef(entry);numFns++;if((0,_primitives.isName)(transferObj,"Identity")){transferMaps.push(null);continue;}else if(!(0,_function.isPDFFunction)(transferObj)){return null;}
const transferFn=this._pdfFunctionFactory.create(transferObj);const transferMap=new Uint8Array(256),tmp=new Float32Array(1);for(let j=0;j<256;j++){tmp[0]=j/255;transferFn(tmp,0,tmp,0);transferMap[j]=tmp[0]*255|0;}
transferMaps.push(transferMap);numEffectfulFns++;}
if(!(numFns===1||numFns===4)){return null;}
if(numEffectfulFns===0){return null;}
return transferMaps;}
handleTilingType(fn,color,resources,pattern,patternDict,operatorList,task,localTilingPatternCache){const tilingOpList=new _operator_list.OperatorList();const patternResources=_primitives.Dict.merge({xref:this.xref,dictArray:[patternDict.get("Resources"),resources]});return this.getOperatorList({stream:pattern,task,resources:patternResources,operatorList:tilingOpList}).then(function(){const operatorListIR=tilingOpList.getIR();const tilingPatternIR=(0,_pattern.getTilingPatternIR)(operatorListIR,patternDict,color);operatorList.addDependencies(tilingOpList.dependencies);operatorList.addOp(fn,tilingPatternIR);if(patternDict.objId){localTilingPatternCache.set(null,patternDict.objId,{operatorListIR,dict:patternDict});}}).catch(reason=>{if(reason instanceof _util.AbortException){return;}
if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorTilingPattern});(0,_util.warn)(`handleTilingType - ignoring pattern: "${reason}".`);return;}
throw reason;});}
handleSetFont(resources,fontArgs,fontRef,operatorList,task,state){let fallbackFontDict=arguments.length>6&&arguments[6]!==undefined?arguments[6]:null;let cssFontInfo=arguments.length>7&&arguments[7]!==undefined?arguments[7]:null;const fontName=fontArgs&&fontArgs[0]instanceof _primitives.Name?fontArgs[0].name:null;return this.loadFont(fontName,fontRef,resources,fallbackFontDict,cssFontInfo).then(translated=>{if(!translated.font.isType3Font){return translated;}
return translated.loadType3Data(this,resources,task).then(function(){operatorList.addDependencies(translated.type3Dependencies);return translated;}).catch(reason=>{this.handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorFontLoadType3});return new TranslatedFont({loadedName:"g_font_error",font:new _fonts.ErrorFont(`Type3 font load error: ${reason}`),dict:translated.font,evaluatorOptions:this.options});});}).then(translated=>{state.font=translated.font;translated.send(this.handler);return translated.loadedName;});}
handleText(chars,state){const font=state.font;const glyphs=font.charsToGlyphs(chars);if(font.data){const isAddToPathSet=!!(state.textRenderingMode&_util.TextRenderingMode.ADD_TO_PATH_FLAG);if(isAddToPathSet||state.fillColorSpace.name==="Pattern"||font.disableFontFace||this.options.disableFontFace){PartialEvaluator.buildFontPaths(font,glyphs,this.handler,this.options);}}
return glyphs;}
ensureStateFont(state){if(state.font){return;}
const reason=new _util.FormatError("Missing setFont (Tf) operator before text rendering operator.");if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorFontState});(0,_util.warn)(`ensureStateFont: "${reason}".`);return;}
throw reason;}
async setGState(_ref3){let{resources,gState,operatorList,cacheKey,task,stateManager,localGStateCache,localColorSpaceCache}=_ref3;const gStateRef=gState.objId;let isSimpleGState=true;const gStateObj=[];const gStateKeys=gState.getKeys();let promise=Promise.resolve();for(let i=0,ii=gStateKeys.length;i<ii;i++){const key=gStateKeys[i];const value=gState.get(key);switch(key){case"Type":break;case"LW":case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":gStateObj.push([key,value]);break;case"Font":isSimpleGState=false;promise=promise.then(()=>{return this.handleSetFont(resources,null,value[0],operatorList,task,stateManager.state).then(function(loadedName){operatorList.addDependency(loadedName);gStateObj.push([key,[loadedName,value[1]]]);});});break;case"BM":gStateObj.push([key,normalizeBlendMode(value)]);break;case"SMask":if((0,_primitives.isName)(value,"None")){gStateObj.push([key,false]);break;}
if(value instanceof _primitives.Dict){isSimpleGState=false;promise=promise.then(()=>{return this.handleSMask(value,resources,operatorList,task,stateManager,localColorSpaceCache);});gStateObj.push([key,true]);}else{(0,_util.warn)("Unsupported SMask type");}
break;case"TR":const transferMaps=this.handleTransferFunction(value);gStateObj.push([key,transferMaps]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":(0,_util.info)("graphic state operator "+key);break;default:(0,_util.info)("Unknown graphic state operator "+key);break;}}
return promise.then(function(){if(gStateObj.length>0){operatorList.addOp(_util.OPS.setGState,[gStateObj]);}
if(isSimpleGState){localGStateCache.set(cacheKey,gStateRef,gStateObj);}});}
loadFont(fontName,font,resources){let fallbackFontDict=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;let cssFontInfo=arguments.length>4&&arguments[4]!==undefined?arguments[4]:null;const errorFont=async()=>{return new TranslatedFont({loadedName:"g_font_error",font:new _fonts.ErrorFont(`Font "${fontName}" is not available.`),dict:font,evaluatorOptions:this.options});};const xref=this.xref;let fontRef;if(font){if(font instanceof _primitives.Ref){fontRef=font;}}else{const fontRes=resources.get("Font");if(fontRes){fontRef=fontRes.getRaw(fontName);}}
if(!fontRef){const partialMsg=`Font "${fontName || font && font.toString()}" is not available`;if(!this.options.ignoreErrors&&!this.parsingType3Font){(0,_util.warn)(`${partialMsg}.`);return errorFont();}
this.handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorFontMissing});(0,_util.warn)(`${partialMsg} -- attempting to fallback to a default font.`);if(fallbackFontDict){fontRef=fallbackFontDict;}else{fontRef=PartialEvaluator.fallbackFontDict;}}
if(this.parsingType3Font&&this.type3FontRefs.has(fontRef)){return errorFont();}
if(this.fontCache.has(fontRef)){return this.fontCache.get(fontRef);}
font=xref.fetchIfRef(fontRef);if(!(font instanceof _primitives.Dict)){return errorFont();}
if(font.cacheKey&&this.fontCache.has(font.cacheKey)){return this.fontCache.get(font.cacheKey);}
const fontCapability=(0,_util.createPromiseCapability)();let preEvaluatedFont;try{preEvaluatedFont=this.preEvaluateFont(font);preEvaluatedFont.cssFontInfo=cssFontInfo;}catch(reason){(0,_util.warn)(`loadFont - preEvaluateFont failed: "${reason}".`);return errorFont();}
const{descriptor,hash}=preEvaluatedFont;const fontRefIsRef=fontRef instanceof _primitives.Ref;let fontID;if(fontRefIsRef){fontID=`f${fontRef.toString()}`;}
if(hash&&descriptor instanceof _primitives.Dict){if(!descriptor.fontAliases){descriptor.fontAliases=Object.create(null);}
const fontAliases=descriptor.fontAliases;if(fontAliases[hash]){const aliasFontRef=fontAliases[hash].aliasRef;if(fontRefIsRef&&aliasFontRef&&this.fontCache.has(aliasFontRef)){this.fontCache.putAlias(fontRef,aliasFontRef);return this.fontCache.get(fontRef);}}else{fontAliases[hash]={fontID:this.idFactory.createFontId()};}
if(fontRefIsRef){fontAliases[hash].aliasRef=fontRef;}
fontID=fontAliases[hash].fontID;}
if(fontRefIsRef){this.fontCache.put(fontRef,fontCapability.promise);}else{if(!fontID){fontID=this.idFactory.createFontId();}
font.cacheKey=`cacheKey_${fontID}`;this.fontCache.put(font.cacheKey,fontCapability.promise);}
(0,_util.assert)(fontID&&fontID.startsWith("f"),'The "fontID" must be (correctly) defined.');font.loadedName=`${this.idFactory.getDocId()}_${fontID}`;this.translateFont(preEvaluatedFont).then(translatedFont=>{if(translatedFont.fontType!==undefined){xref.stats.addFontType(translatedFont.fontType);}
fontCapability.resolve(new TranslatedFont({loadedName:font.loadedName,font:translatedFont,dict:font,evaluatorOptions:this.options}));}).catch(reason=>{this.handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorFontTranslate});(0,_util.warn)(`loadFont - translateFont failed: "${reason}".`);try{const fontFile3=descriptor&&descriptor.get("FontFile3");const subtype=fontFile3&&fontFile3.get("Subtype");const fontType=(0,_fonts_utils.getFontType)(preEvaluatedFont.type,subtype&&subtype.name);if(fontType!==undefined){xref.stats.addFontType(fontType);}}catch(ex){}
fontCapability.resolve(new TranslatedFont({loadedName:font.loadedName,font:new _fonts.ErrorFont(reason instanceof Error?reason.message:reason),dict:font,evaluatorOptions:this.options}));});return fontCapability.promise;}
buildPath(operatorList,fn,args){let parsingText=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;const lastIndex=operatorList.length-1;if(!args){args=[];}
let minMax;if(lastIndex<0||operatorList.fnArray[lastIndex]!==_util.OPS.constructPath){if(parsingText){(0,_util.warn)(`Encountered path operator "${fn}" inside of a text object.`);operatorList.addOp(_util.OPS.save,null);}
minMax=[Infinity,-Infinity,Infinity,-Infinity];operatorList.addOp(_util.OPS.constructPath,[[fn],args,minMax]);if(parsingText){operatorList.addOp(_util.OPS.restore,null);}}else{const opArgs=operatorList.argsArray[lastIndex];opArgs[0].push(fn);Array.prototype.push.apply(opArgs[1],args);minMax=opArgs[2];}
switch(fn){case _util.OPS.rectangle:minMax[0]=Math.min(minMax[0],args[0],args[0]+args[2]);minMax[1]=Math.max(minMax[1],args[0],args[0]+args[2]);minMax[2]=Math.min(minMax[2],args[1],args[1]+args[3]);minMax[3]=Math.max(minMax[3],args[1],args[1]+args[3]);break;case _util.OPS.moveTo:case _util.OPS.lineTo:minMax[0]=Math.min(minMax[0],args[0]);minMax[1]=Math.max(minMax[1],args[0]);minMax[2]=Math.min(minMax[2],args[1]);minMax[3]=Math.max(minMax[3],args[1]);break;}}
parseColorSpace(_ref4){let{cs,resources,localColorSpaceCache}=_ref4;return _colorspace.ColorSpace.parseAsync({cs,xref:this.xref,resources,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache}).catch(reason=>{if(reason instanceof _util.AbortException){return null;}
if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorColorSpace});(0,_util.warn)(`parseColorSpace - ignoring ColorSpace: "${reason}".`);return null;}
throw reason;});}
parseShading(_ref5){let{shading,resources,localColorSpaceCache,localShadingPatternCache}=_ref5;let id=localShadingPatternCache.get(shading);if(!id){var shadingFill=_pattern.Pattern.parseShading(shading,this.xref,resources,this.handler,this._pdfFunctionFactory,localColorSpaceCache);const patternIR=shadingFill.getIR();id=`pattern_${this.idFactory.createObjId()}`;localShadingPatternCache.set(shading,id);this.handler.send("obj",[id,this.pageIndex,"Pattern",patternIR]);}
return id;}
handleColorN(operatorList,fn,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache){const patternName=args.pop();if(patternName instanceof _primitives.Name){const rawPattern=patterns.getRaw(patternName.name);const localTilingPattern=rawPattern instanceof _primitives.Ref&&localTilingPatternCache.getByRef(rawPattern);if(localTilingPattern){try{const color=cs.base?cs.base.getRgb(args,0):null;const tilingPatternIR=(0,_pattern.getTilingPatternIR)(localTilingPattern.operatorListIR,localTilingPattern.dict,color);operatorList.addOp(fn,tilingPatternIR);return undefined;}catch(ex){}}
const pattern=this.xref.fetchIfRef(rawPattern);if(pattern){const dict=pattern instanceof _base_stream.BaseStream?pattern.dict:pattern;const typeNum=dict.get("PatternType");if(typeNum===PatternType.TILING){const color=cs.base?cs.base.getRgb(args,0):null;return this.handleTilingType(fn,color,resources,pattern,dict,operatorList,task,localTilingPatternCache);}else if(typeNum===PatternType.SHADING){const shading=dict.get("Shading");const matrix=dict.getArray("Matrix");const objId=this.parseShading({shading,resources,localColorSpaceCache,localShadingPatternCache});operatorList.addOp(fn,["Shading",objId,matrix]);return undefined;}
throw new _util.FormatError(`Unknown PatternType: ${typeNum}`);}}
throw new _util.FormatError(`Unknown PatternName: ${patternName}`);}
_parseVisibilityExpression(array,nestingCounter,currentResult){const MAX_NESTING=10;if(++nestingCounter>MAX_NESTING){(0,_util.warn)("Visibility expression is too deeply nested");return;}
const length=array.length;const operator=this.xref.fetchIfRef(array[0]);if(length<2||!(operator instanceof _primitives.Name)){(0,_util.warn)("Invalid visibility expression");return;}
switch(operator.name){case"And":case"Or":case"Not":currentResult.push(operator.name);break;default:(0,_util.warn)(`Invalid operator ${operator.name} in visibility expression`);return;}
for(let i=1;i<length;i++){const raw=array[i];const object=this.xref.fetchIfRef(raw);if(Array.isArray(object)){const nestedResult=[];currentResult.push(nestedResult);this._parseVisibilityExpression(object,nestingCounter,nestedResult);}else if(raw instanceof _primitives.Ref){currentResult.push(raw.toString());}}}
async parseMarkedContentProps(contentProperties,resources){let optionalContent;if(contentProperties instanceof _primitives.Name){const properties=resources.get("Properties");optionalContent=properties.get(contentProperties.name);}else if(contentProperties instanceof _primitives.Dict){optionalContent=contentProperties;}else{throw new _util.FormatError("Optional content properties malformed.");}
const optionalContentType=optionalContent.get("Type").name;if(optionalContentType==="OCG"){return{type:optionalContentType,id:optionalContent.objId};}else if(optionalContentType==="OCMD"){const expression=optionalContent.get("VE");if(Array.isArray(expression)){const result=[];this._parseVisibilityExpression(expression,0,result);if(result.length>0){return{type:"OCMD",expression:result};}}
const optionalContentGroups=optionalContent.get("OCGs");if(Array.isArray(optionalContentGroups)||optionalContentGroups instanceof _primitives.Dict){const groupIds=[];if(Array.isArray(optionalContentGroups)){for(const ocg of optionalContentGroups){groupIds.push(ocg.toString());}}else{groupIds.push(optionalContentGroups.objId);}
return{type:optionalContentType,ids:groupIds,policy:optionalContent.get("P")instanceof _primitives.Name?optionalContent.get("P").name:null,expression:null};}else if(optionalContentGroups instanceof _primitives.Ref){return{type:optionalContentType,id:optionalContentGroups.toString()};}}
return null;}
getOperatorList(_ref6){let{stream,task,resources,operatorList,initialState=null,fallbackFontDict=null}=_ref6;resources=resources||_primitives.Dict.empty;initialState=initialState||new EvalState();if(!operatorList){throw new Error('getOperatorList: missing "operatorList" parameter');}
const self=this;const xref=this.xref;let parsingText=false;const localImageCache=new _image_utils.LocalImageCache();const localColorSpaceCache=new _image_utils.LocalColorSpaceCache();const localGStateCache=new _image_utils.LocalGStateCache();const localTilingPatternCache=new _image_utils.LocalTilingPatternCache();const localShadingPatternCache=new Map();const xobjs=resources.get("XObject")||_primitives.Dict.empty;const patterns=resources.get("Pattern")||_primitives.Dict.empty;const stateManager=new StateManager(initialState);const preprocessor=new EvaluatorPreprocessor(stream,xref,stateManager);const timeSlotManager=new TimeSlotManager();function closePendingRestoreOPS(argument){for(let i=0,ii=preprocessor.savedStatesDepth;i<ii;i++){operatorList.addOp(_util.OPS.restore,[]);}}
return new Promise(function promiseBody(resolve,reject){const next=function(promise){Promise.all([promise,operatorList.ready]).then(function(){try{promiseBody(resolve,reject);}catch(ex){reject(ex);}},reject);};task.ensureNotTerminated();timeSlotManager.reset();const operation={};let stop,i,ii,cs,name,isValidName;while(!(stop=timeSlotManager.check())){operation.args=null;if(!preprocessor.read(operation)){break;}
let args=operation.args;let fn=operation.fn;switch(fn|0){case _util.OPS.paintXObject:isValidName=args[0]instanceof _primitives.Name;name=args[0].name;if(isValidName){const localImage=localImageCache.getByName(name);if(localImage){operatorList.addImageOps(localImage.fn,localImage.args,localImage.optionalContent);incrementCachedImageMaskCount(localImage);args=null;continue;}}
next(new Promise(function(resolveXObject,rejectXObject){if(!isValidName){throw new _util.FormatError("XObject must be referred to by name.");}
let xobj=xobjs.getRaw(name);if(xobj instanceof _primitives.Ref){const localImage=localImageCache.getByRef(xobj);if(localImage){operatorList.addImageOps(localImage.fn,localImage.args,localImage.optionalContent);incrementCachedImageMaskCount(localImage);resolveXObject();return;}
const globalImage=self.globalImageCache.getData(xobj,self.pageIndex);if(globalImage){operatorList.addDependency(globalImage.objId);operatorList.addImageOps(globalImage.fn,globalImage.args,globalImage.optionalContent);resolveXObject();return;}
xobj=xref.fetch(xobj);}
if(!(xobj instanceof _base_stream.BaseStream)){throw new _util.FormatError("XObject should be a stream");}
const type=xobj.dict.get("Subtype");if(!(type instanceof _primitives.Name)){throw new _util.FormatError("XObject should have a Name subtype");}
if(type.name==="Form"){stateManager.save();self.buildFormXObject(resources,xobj,null,operatorList,task,stateManager.state.clone(),localColorSpaceCache).then(function(){stateManager.restore();resolveXObject();},rejectXObject);return;}else if(type.name==="Image"){self.buildPaintImageXObject({resources,image:xobj,operatorList,cacheKey:name,localImageCache,localColorSpaceCache}).then(resolveXObject,rejectXObject);return;}else if(type.name==="PS"){(0,_util.info)("Ignored XObject subtype PS");}else{throw new _util.FormatError(`Unhandled XObject subtype ${type.name}`);}
resolveXObject();}).catch(function(reason){if(reason instanceof _util.AbortException){return;}
if(self.options.ignoreErrors){self.handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorXObject});(0,_util.warn)(`getOperatorList - ignoring XObject: "${reason}".`);return;}
throw reason;}));return;case _util.OPS.setFont:var fontSize=args[1];next(self.handleSetFont(resources,args,null,operatorList,task,stateManager.state,fallbackFontDict).then(function(loadedName){operatorList.addDependency(loadedName);operatorList.addOp(_util.OPS.setFont,[loadedName,fontSize]);}));return;case _util.OPS.beginText:parsingText=true;break;case _util.OPS.endText:parsingText=false;break;case _util.OPS.endInlineImage:var cacheKey=args[0].cacheKey;if(cacheKey){const localImage=localImageCache.getByName(cacheKey);if(localImage){operatorList.addImageOps(localImage.fn,localImage.args,localImage.optionalContent);incrementCachedImageMaskCount(localImage);args=null;continue;}}
next(self.buildPaintImageXObject({resources,image:args[0],isInline:true,operatorList,cacheKey,localImageCache,localColorSpaceCache}));return;case _util.OPS.showText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue;}
args[0]=self.handleText(args[0],stateManager.state);break;case _util.OPS.showSpacedText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue;}
var arr=args[0];var combinedGlyphs=[];var arrLength=arr.length;var state=stateManager.state;for(i=0;i<arrLength;++i){const arrItem=arr[i];if(typeof arrItem==="string"){Array.prototype.push.apply(combinedGlyphs,self.handleText(arrItem,state));}else if(typeof arrItem==="number"){combinedGlyphs.push(arrItem);}}
args[0]=combinedGlyphs;fn=_util.OPS.showText;break;case _util.OPS.nextLineShowText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue;}
operatorList.addOp(_util.OPS.nextLine);args[0]=self.handleText(args[0],stateManager.state);fn=_util.OPS.showText;break;case _util.OPS.nextLineSetSpacingShowText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue;}
operatorList.addOp(_util.OPS.nextLine);operatorList.addOp(_util.OPS.setWordSpacing,[args.shift()]);operatorList.addOp(_util.OPS.setCharSpacing,[args.shift()]);args[0]=self.handleText(args[0],stateManager.state);fn=_util.OPS.showText;break;case _util.OPS.setTextRenderingMode:stateManager.state.textRenderingMode=args[0];break;case _util.OPS.setFillColorSpace:{const cachedColorSpace=_colorspace.ColorSpace.getCached(args[0],xref,localColorSpaceCache);if(cachedColorSpace){stateManager.state.fillColorSpace=cachedColorSpace;continue;}
next(self.parseColorSpace({cs:args[0],resources,localColorSpaceCache}).then(function(colorSpace){if(colorSpace){stateManager.state.fillColorSpace=colorSpace;}}));return;}
case _util.OPS.setStrokeColorSpace:{const cachedColorSpace=_colorspace.ColorSpace.getCached(args[0],xref,localColorSpaceCache);if(cachedColorSpace){stateManager.state.strokeColorSpace=cachedColorSpace;continue;}
next(self.parseColorSpace({cs:args[0],resources,localColorSpaceCache}).then(function(colorSpace){if(colorSpace){stateManager.state.strokeColorSpace=colorSpace;}}));return;}
case _util.OPS.setFillColor:cs=stateManager.state.fillColorSpace;args=cs.getRgb(args,0);fn=_util.OPS.setFillRGBColor;break;case _util.OPS.setStrokeColor:cs=stateManager.state.strokeColorSpace;args=cs.getRgb(args,0);fn=_util.OPS.setStrokeRGBColor;break;case _util.OPS.setFillGray:stateManager.state.fillColorSpace=_colorspace.ColorSpace.singletons.gray;args=_colorspace.ColorSpace.singletons.gray.getRgb(args,0);fn=_util.OPS.setFillRGBColor;break;case _util.OPS.setStrokeGray:stateManager.state.strokeColorSpace=_colorspace.ColorSpace.singletons.gray;args=_colorspace.ColorSpace.singletons.gray.getRgb(args,0);fn=_util.OPS.setStrokeRGBColor;break;case _util.OPS.setFillCMYKColor:stateManager.state.fillColorSpace=_colorspace.ColorSpace.singletons.cmyk;args=_colorspace.ColorSpace.singletons.cmyk.getRgb(args,0);fn=_util.OPS.setFillRGBColor;break;case _util.OPS.setStrokeCMYKColor:stateManager.state.strokeColorSpace=_colorspace.ColorSpace.singletons.cmyk;args=_colorspace.ColorSpace.singletons.cmyk.getRgb(args,0);fn=_util.OPS.setStrokeRGBColor;break;case _util.OPS.setFillRGBColor:stateManager.state.fillColorSpace=_colorspace.ColorSpace.singletons.rgb;args=_colorspace.ColorSpace.singletons.rgb.getRgb(args,0);break;case _util.OPS.setStrokeRGBColor:stateManager.state.strokeColorSpace=_colorspace.ColorSpace.singletons.rgb;args=_colorspace.ColorSpace.singletons.rgb.getRgb(args,0);break;case _util.OPS.setFillColorN:cs=stateManager.state.fillColorSpace;if(cs.name==="Pattern"){next(self.handleColorN(operatorList,_util.OPS.setFillColorN,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache));return;}
args=cs.getRgb(args,0);fn=_util.OPS.setFillRGBColor;break;case _util.OPS.setStrokeColorN:cs=stateManager.state.strokeColorSpace;if(cs.name==="Pattern"){next(self.handleColorN(operatorList,_util.OPS.setStrokeColorN,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache));return;}
args=cs.getRgb(args,0);fn=_util.OPS.setStrokeRGBColor;break;case _util.OPS.shadingFill:var shadingRes=resources.get("Shading");if(!shadingRes){throw new _util.FormatError("No shading resource found");}
var shading=shadingRes.get(args[0].name);if(!shading){throw new _util.FormatError("No shading object found");}
const patternId=self.parseShading({shading,resources,localColorSpaceCache,localShadingPatternCache});args=[patternId];fn=_util.OPS.shadingFill;break;case _util.OPS.setGState:isValidName=args[0]instanceof _primitives.Name;name=args[0].name;if(isValidName){const localGStateObj=localGStateCache.getByName(name);if(localGStateObj){if(localGStateObj.length>0){operatorList.addOp(_util.OPS.setGState,[localGStateObj]);}
args=null;continue;}}
next(new Promise(function(resolveGState,rejectGState){if(!isValidName){throw new _util.FormatError("GState must be referred to by name.");}
const extGState=resources.get("ExtGState");if(!(extGState instanceof _primitives.Dict)){throw new _util.FormatError("ExtGState should be a dictionary.");}
const gState=extGState.get(name);if(!(gState instanceof _primitives.Dict)){throw new _util.FormatError("GState should be a dictionary.");}
self.setGState({resources,gState,operatorList,cacheKey:name,task,stateManager,localGStateCache,localColorSpaceCache}).then(resolveGState,rejectGState);}).catch(function(reason){if(reason instanceof _util.AbortException){return;}
if(self.options.ignoreErrors){self.handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorExtGState});(0,_util.warn)(`getOperatorList - ignoring ExtGState: "${reason}".`);return;}
throw reason;}));return;case _util.OPS.moveTo:case _util.OPS.lineTo:case _util.OPS.curveTo:case _util.OPS.curveTo2:case _util.OPS.curveTo3:case _util.OPS.closePath:case _util.OPS.rectangle:self.buildPath(operatorList,fn,args,parsingText);continue;case _util.OPS.markPoint:case _util.OPS.markPointProps:case _util.OPS.beginCompat:case _util.OPS.endCompat:continue;case _util.OPS.beginMarkedContentProps:if(!(args[0]instanceof _primitives.Name)){(0,_util.warn)(`Expected name for beginMarkedContentProps arg0=${args[0]}`);continue;}
if(args[0].name==="OC"){next(self.parseMarkedContentProps(args[1],resources).then(data=>{operatorList.addOp(_util.OPS.beginMarkedContentProps,["OC",data]);}).catch(reason=>{if(reason instanceof _util.AbortException){return;}
if(self.options.ignoreErrors){self.handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorMarkedContent});(0,_util.warn)(`getOperatorList - ignoring beginMarkedContentProps: "${reason}".`);return;}
throw reason;}));return;}
args=[args[0].name,args[1]instanceof _primitives.Dict?args[1].get("MCID"):null];break;case _util.OPS.beginMarkedContent:case _util.OPS.endMarkedContent:default:if(args!==null){for(i=0,ii=args.length;i<ii;i++){if(args[i]instanceof _primitives.Dict){break;}}
if(i<ii){(0,_util.warn)("getOperatorList - ignoring operator: "+fn);continue;}}}
operatorList.addOp(fn,args);}
if(stop){next(deferred);return;}
closePendingRestoreOPS();resolve();}).catch(reason=>{if(reason instanceof _util.AbortException){return;}
if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorOperatorList});(0,_util.warn)(`getOperatorList - ignoring errors during "${task.name}" `+`task: "${reason}".`);closePendingRestoreOPS();return;}
throw reason;});}
getTextContent(_ref7){let{stream,task,resources,stateManager=null,combineTextItems=false,includeMarkedContent=false,sink,seenStyles=new Set(),viewBox}=_ref7;resources=resources||_primitives.Dict.empty;stateManager=stateManager||new StateManager(new TextState());const NormalizedUnicodes=(0,_unicode.getNormalizedUnicodes)();const textContent={items:[],styles:Object.create(null)};const textContentItem={initialized:false,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:false,prevTransform:null,textAdvanceScale:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:Infinity,negativeSpaceMax:-Infinity,notASpace:-Infinity,transform:null,fontName:null,hasEOL:false};const twoLastChars=[" "," "];let twoLastCharsPos=0;function saveLastChar(char){const nextPos=(twoLastCharsPos+1)%2;const ret=twoLastChars[twoLastCharsPos]!==" "&&twoLastChars[nextPos]===" ";twoLastChars[twoLastCharsPos]=char;twoLastCharsPos=nextPos;return ret;}
function resetLastChars(){twoLastChars[0]=twoLastChars[1]=" ";twoLastCharsPos=0;}
const TRACKING_SPACE_FACTOR=0.1;const NOT_A_SPACE_FACTOR=0.03;const NEGATIVE_SPACE_FACTOR=-0.2;const SPACE_IN_FLOW_MIN_FACTOR=0.1;const SPACE_IN_FLOW_MAX_FACTOR=0.6;const self=this;const xref=this.xref;const showSpacedTextBuffer=[];let xobjs=null;const emptyXObjectCache=new _image_utils.LocalImageCache();const emptyGStateCache=new _image_utils.LocalGStateCache();const preprocessor=new EvaluatorPreprocessor(stream,xref,stateManager);let textState;function getCurrentTextTransform(){const font=textState.font;const tsm=[textState.fontSize*textState.textHScale,0,0,textState.fontSize,0,textState.textRise];if(font.isType3Font&&(textState.fontSize<=1||font.isCharBBox)&&!(0,_util.isArrayEqual)(textState.fontMatrix,_util.FONT_IDENTITY_MATRIX)){const glyphHeight=font.bbox[3]-font.bbox[1];if(glyphHeight>0){tsm[3]*=glyphHeight*textState.fontMatrix[3];}}
return _util.Util.transform(textState.ctm,_util.Util.transform(textState.textMatrix,tsm));}
function ensureTextContentItem(){if(textContentItem.initialized){return textContentItem;}
const font=textState.font,loadedName=font.loadedName;if(!seenStyles.has(loadedName)){seenStyles.add(loadedName);textContent.styles[loadedName]={fontFamily:font.fallbackName,ascent:font.ascent,descent:font.descent,vertical:font.vertical};}
textContentItem.fontName=loadedName;const trm=textContentItem.transform=getCurrentTextTransform();if(!font.vertical){textContentItem.width=textContentItem.totalWidth=0;textContentItem.height=textContentItem.totalHeight=Math.hypot(trm[2],trm[3]);textContentItem.vertical=false;}else{textContentItem.width=textContentItem.totalWidth=Math.hypot(trm[0],trm[1]);textContentItem.height=textContentItem.totalHeight=0;textContentItem.vertical=true;}
const scaleLineX=Math.hypot(textState.textLineMatrix[0],textState.textLineMatrix[1]);const scaleCtmX=Math.hypot(textState.ctm[0],textState.ctm[1]);textContentItem.textAdvanceScale=scaleCtmX*scaleLineX;textContentItem.trackingSpaceMin=textState.fontSize*TRACKING_SPACE_FACTOR;textContentItem.notASpace=textState.fontSize*NOT_A_SPACE_FACTOR;textContentItem.negativeSpaceMax=textState.fontSize*NEGATIVE_SPACE_FACTOR;textContentItem.spaceInFlowMin=textState.fontSize*SPACE_IN_FLOW_MIN_FACTOR;textContentItem.spaceInFlowMax=textState.fontSize*SPACE_IN_FLOW_MAX_FACTOR;textContentItem.hasEOL=false;textContentItem.initialized=true;return textContentItem;}
function updateAdvanceScale(){if(!textContentItem.initialized){return;}
const scaleLineX=Math.hypot(textState.textLineMatrix[0],textState.textLineMatrix[1]);const scaleCtmX=Math.hypot(textState.ctm[0],textState.ctm[1]);const scaleFactor=scaleCtmX*scaleLineX;if(scaleFactor===textContentItem.textAdvanceScale){return;}
if(!textContentItem.vertical){textContentItem.totalWidth+=textContentItem.width*textContentItem.textAdvanceScale;textContentItem.width=0;}else{textContentItem.totalHeight+=textContentItem.height*textContentItem.textAdvanceScale;textContentItem.height=0;}
textContentItem.textAdvanceScale=scaleFactor;}
function runBidiTransform(textChunk){const text=textChunk.str.join("");const bidiResult=(0,_bidi.bidi)(text,-1,textChunk.vertical);return{str:bidiResult.str,dir:bidiResult.dir,width:Math.abs(textChunk.totalWidth),height:Math.abs(textChunk.totalHeight),transform:textChunk.transform,fontName:textChunk.fontName,hasEOL:textChunk.hasEOL};}
function handleSetFont(fontName,fontRef){return self.loadFont(fontName,fontRef,resources).then(function(translated){if(!translated.font.isType3Font){return translated;}
return translated.loadType3Data(self,resources,task).catch(function(){}).then(function(){return translated;});}).then(function(translated){textState.font=translated.font;textState.fontMatrix=translated.font.fontMatrix||_util.FONT_IDENTITY_MATRIX;});}
function applyInverseRotation(x,y,matrix){const scale=Math.hypot(matrix[0],matrix[1]);return[(matrix[0]*x+matrix[1]*y)/scale,(matrix[2]*x+matrix[3]*y)/scale];}
function compareWithLastPosition(){const currentTransform=getCurrentTextTransform();let posX=currentTransform[4];let posY=currentTransform[5];const shiftedX=posX-viewBox[0];const shiftedY=posY-viewBox[1];if(shiftedX<0||shiftedX>viewBox[2]||shiftedY<0||shiftedY>viewBox[3]){return false;}
if(!combineTextItems||!textState.font||!textContentItem.prevTransform){return true;}
let lastPosX=textContentItem.prevTransform[4];let lastPosY=textContentItem.prevTransform[5];if(lastPosX===posX&&lastPosY===posY){return true;}
let rotate=-1;if(currentTransform[0]&&currentTransform[1]===0&&currentTransform[2]===0){rotate=currentTransform[0]>0?0:180;}else if(currentTransform[1]&&currentTransform[0]===0&&currentTransform[3]===0){rotate=currentTransform[1]>0?90:270;}
switch(rotate){case 0:break;case 90:[posX,posY]=[posY,posX];[lastPosX,lastPosY]=[lastPosY,lastPosX];break;case 180:[posX,posY,lastPosX,lastPosY]=[-posX,-posY,-lastPosX,-lastPosY];break;case 270:[posX,posY]=[-posY,-posX];[lastPosX,lastPosY]=[-lastPosY,-lastPosX];break;default:[posX,posY]=applyInverseRotation(posX,posY,currentTransform);[lastPosX,lastPosY]=applyInverseRotation(lastPosX,lastPosY,textContentItem.prevTransform);}
if(textState.font.vertical){const advanceY=(lastPosY-posY)/textContentItem.textAdvanceScale;const advanceX=posX-lastPosX;const textOrientation=Math.sign(textContentItem.height);if(advanceY<textOrientation*textContentItem.negativeSpaceMax){if(Math.abs(advanceX)>0.5*textContentItem.width){appendEOL();return true;}
resetLastChars();flushTextContentItem();return true;}
if(Math.abs(advanceX)>textContentItem.width){appendEOL();return true;}
if(advanceY<=textOrientation*textContentItem.notASpace){resetLastChars();}
if(advanceY<=textOrientation*textContentItem.trackingSpaceMin){textContentItem.height+=advanceY;}else if(!addFakeSpaces(advanceY,textContentItem.prevTransform,textOrientation)){if(textContentItem.str.length===0){resetLastChars();textContent.items.push({str:" ",dir:"ltr",width:0,height:Math.abs(advanceY),transform:textContentItem.prevTransform,fontName:textContentItem.fontName,hasEOL:false});}else{textContentItem.height+=advanceY;}}
return true;}
const advanceX=(posX-lastPosX)/textContentItem.textAdvanceScale;const advanceY=posY-lastPosY;const textOrientation=Math.sign(textContentItem.width);if(advanceX<textOrientation*textContentItem.negativeSpaceMax){if(Math.abs(advanceY)>0.5*textContentItem.height){appendEOL();return true;}
resetLastChars();flushTextContentItem();return true;}
if(Math.abs(advanceY)>textContentItem.height){appendEOL();return true;}
if(advanceX<=textOrientation*textContentItem.notASpace){resetLastChars();}
if(advanceX<=textOrientation*textContentItem.trackingSpaceMin){textContentItem.width+=advanceX;}else if(!addFakeSpaces(advanceX,textContentItem.prevTransform,textOrientation)){if(textContentItem.str.length===0){resetLastChars();textContent.items.push({str:" ",dir:"ltr",width:Math.abs(advanceX),height:0,transform:textContentItem.prevTransform,fontName:textContentItem.fontName,hasEOL:false});}else{textContentItem.width+=advanceX;}}
return true;}
function buildTextContentItem(_ref8){let{chars,extraSpacing}=_ref8;const font=textState.font;if(!chars){const charSpacing=textState.charSpacing+extraSpacing;if(charSpacing){if(!font.vertical){textState.translateTextMatrix(charSpacing*textState.textHScale,0);}else{textState.translateTextMatrix(0,-charSpacing);}}
return;}
const glyphs=font.charsToGlyphs(chars);const scale=textState.fontMatrix[0]*textState.fontSize;for(let i=0,ii=glyphs.length;i<ii;i++){const glyph=glyphs[i];if(glyph.isInvisibleFormatMark){continue;}
let charSpacing=textState.charSpacing+(i+1===ii?extraSpacing:0);let glyphWidth=glyph.width;if(font.vertical){glyphWidth=glyph.vmetric?glyph.vmetric[0]:-glyphWidth;}
let scaledDim=glyphWidth*scale;if(glyph.isWhitespace){if(!font.vertical){charSpacing+=scaledDim+textState.wordSpacing;textState.translateTextMatrix(charSpacing*textState.textHScale,0);}else{charSpacing+=-scaledDim+textState.wordSpacing;textState.translateTextMatrix(0,-charSpacing);}
saveLastChar(" ");continue;}
if(!compareWithLastPosition()){continue;}
const textChunk=ensureTextContentItem();if(glyph.isZeroWidthDiacritic){scaledDim=0;}
if(!font.vertical){scaledDim*=textState.textHScale;textState.translateTextMatrix(scaledDim,0);textChunk.width+=scaledDim;}else{textState.translateTextMatrix(0,scaledDim);scaledDim=Math.abs(scaledDim);textChunk.height+=scaledDim;}
if(scaledDim){textChunk.prevTransform=getCurrentTextTransform();}
let glyphUnicode=glyph.unicode;glyphUnicode=NormalizedUnicodes[glyphUnicode]||glyphUnicode;glyphUnicode=(0,_unicode.reverseIfRtl)(glyphUnicode);if(saveLastChar(glyphUnicode)){textChunk.str.push(" ");}
textChunk.str.push(glyphUnicode);if(charSpacing){if(!font.vertical){textState.translateTextMatrix(charSpacing*textState.textHScale,0);}else{textState.translateTextMatrix(0,-charSpacing);}}}}
function appendEOL(){resetLastChars();if(textContentItem.initialized){textContentItem.hasEOL=true;flushTextContentItem();}else{textContent.items.push({str:"",dir:"ltr",width:0,height:0,transform:getCurrentTextTransform(),fontName:textState.font.loadedName,hasEOL:true});}}
function addFakeSpaces(width,transf,textOrientation){if(textOrientation*textContentItem.spaceInFlowMin<=width&&width<=textOrientation*textContentItem.spaceInFlowMax){if(textContentItem.initialized){resetLastChars();textContentItem.str.push(" ");}
return false;}
const fontName=textContentItem.fontName;let height=0;if(textContentItem.vertical){height=width;width=0;}
flushTextContentItem();resetLastChars();textContent.items.push({str:" ",dir:"ltr",width:Math.abs(width),height:Math.abs(height),transform:transf||getCurrentTextTransform(),fontName,hasEOL:false});return true;}
function flushTextContentItem(){if(!textContentItem.initialized||!textContentItem.str){return;}
if(!textContentItem.vertical){textContentItem.totalWidth+=textContentItem.width*textContentItem.textAdvanceScale;}else{textContentItem.totalHeight+=textContentItem.height*textContentItem.textAdvanceScale;}
textContent.items.push(runBidiTransform(textContentItem));textContentItem.initialized=false;textContentItem.str.length=0;}
function enqueueChunk(){let batch=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;const length=textContent.items.length;if(length===0){return;}
if(batch&&length<TEXT_CHUNK_BATCH_SIZE){return;}
sink.enqueue(textContent,length);textContent.items=[];textContent.styles=Object.create(null);}
const timeSlotManager=new TimeSlotManager();return new Promise(function promiseBody(resolve,reject){const next=function(promise){enqueueChunk(true);Promise.all([promise,sink.ready]).then(function(){try{promiseBody(resolve,reject);}catch(ex){reject(ex);}},reject);};task.ensureNotTerminated();timeSlotManager.reset();const operation={};let stop,args=[];while(!(stop=timeSlotManager.check())){args.length=0;operation.args=args;if(!preprocessor.read(operation)){break;}
textState=stateManager.state;const fn=operation.fn;args=operation.args;switch(fn|0){case _util.OPS.setFont:var fontNameArg=args[0].name,fontSizeArg=args[1];if(textState.font&&fontNameArg===textState.fontName&&fontSizeArg===textState.fontSize){break;}
flushTextContentItem();textState.fontName=fontNameArg;textState.fontSize=fontSizeArg;next(handleSetFont(fontNameArg,null));return;case _util.OPS.setTextRise:textState.textRise=args[0];break;case _util.OPS.setHScale:textState.textHScale=args[0]/100;break;case _util.OPS.setLeading:textState.leading=args[0];break;case _util.OPS.moveText:textState.translateTextLineMatrix(args[0],args[1]);textState.textMatrix=textState.textLineMatrix.slice();break;case _util.OPS.setLeadingMoveText:textState.leading=-args[1];textState.translateTextLineMatrix(args[0],args[1]);textState.textMatrix=textState.textLineMatrix.slice();break;case _util.OPS.nextLine:textState.carriageReturn();break;case _util.OPS.setTextMatrix:textState.setTextMatrix(args[0],args[1],args[2],args[3],args[4],args[5]);textState.setTextLineMatrix(args[0],args[1],args[2],args[3],args[4],args[5]);updateAdvanceScale();break;case _util.OPS.setCharSpacing:textState.charSpacing=args[0];break;case _util.OPS.setWordSpacing:textState.wordSpacing=args[0];break;case _util.OPS.beginText:textState.textMatrix=_util.IDENTITY_MATRIX.slice();textState.textLineMatrix=_util.IDENTITY_MATRIX.slice();break;case _util.OPS.showSpacedText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue;}
const spaceFactor=(textState.font.vertical?1:-1)*textState.fontSize/1000;const elements=args[0];for(let i=0,ii=elements.length;i<ii-1;i++){const item=elements[i];if(typeof item==="string"){showSpacedTextBuffer.push(item);}else if(typeof item==="number"&&item!==0){const str=showSpacedTextBuffer.join("");showSpacedTextBuffer.length=0;buildTextContentItem({chars:str,extraSpacing:item*spaceFactor});}}
const item=elements.at(-1);if(typeof item==="string"){showSpacedTextBuffer.push(item);}
if(showSpacedTextBuffer.length>0){const str=showSpacedTextBuffer.join("");showSpacedTextBuffer.length=0;buildTextContentItem({chars:str,extraSpacing:0});}
break;case _util.OPS.showText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue;}
buildTextContentItem({chars:args[0],extraSpacing:0});break;case _util.OPS.nextLineShowText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue;}
textState.carriageReturn();buildTextContentItem({chars:args[0],extraSpacing:0});break;case _util.OPS.nextLineSetSpacingShowText:if(!stateManager.state.font){self.ensureStateFont(stateManager.state);continue;}
textState.wordSpacing=args[0];textState.charSpacing=args[1];textState.carriageReturn();buildTextContentItem({chars:args[2],extraSpacing:0});break;case _util.OPS.paintXObject:flushTextContentItem();if(!xobjs){xobjs=resources.get("XObject")||_primitives.Dict.empty;}
var isValidName=args[0]instanceof _primitives.Name;var name=args[0].name;if(isValidName&&emptyXObjectCache.getByName(name)){break;}
next(new Promise(function(resolveXObject,rejectXObject){if(!isValidName){throw new _util.FormatError("XObject must be referred to by name.");}
let xobj=xobjs.getRaw(name);if(xobj instanceof _primitives.Ref){if(emptyXObjectCache.getByRef(xobj)){resolveXObject();return;}
const globalImage=self.globalImageCache.getData(xobj,self.pageIndex);if(globalImage){resolveXObject();return;}
xobj=xref.fetch(xobj);}
if(!(xobj instanceof _base_stream.BaseStream)){throw new _util.FormatError("XObject should be a stream");}
const type=xobj.dict.get("Subtype");if(!(type instanceof _primitives.Name)){throw new _util.FormatError("XObject should have a Name subtype");}
if(type.name!=="Form"){emptyXObjectCache.set(name,xobj.dict.objId,true);resolveXObject();return;}
const currentState=stateManager.state.clone();const xObjStateManager=new StateManager(currentState);const matrix=xobj.dict.getArray("Matrix");if(Array.isArray(matrix)&&matrix.length===6){xObjStateManager.transform(matrix);}
enqueueChunk();const sinkWrapper={enqueueInvoked:false,enqueue(chunk,size){this.enqueueInvoked=true;sink.enqueue(chunk,size);},get desiredSize(){return sink.desiredSize;},get ready(){return sink.ready;}};self.getTextContent({stream:xobj,task,resources:xobj.dict.get("Resources")||resources,stateManager:xObjStateManager,combineTextItems,includeMarkedContent,sink:sinkWrapper,seenStyles,viewBox}).then(function(){if(!sinkWrapper.enqueueInvoked){emptyXObjectCache.set(name,xobj.dict.objId,true);}
resolveXObject();},rejectXObject);}).catch(function(reason){if(reason instanceof _util.AbortException){return;}
if(self.options.ignoreErrors){(0,_util.warn)(`getTextContent - ignoring XObject: "${reason}".`);return;}
throw reason;}));return;case _util.OPS.setGState:isValidName=args[0]instanceof _primitives.Name;name=args[0].name;if(isValidName&&emptyGStateCache.getByName(name)){break;}
next(new Promise(function(resolveGState,rejectGState){if(!isValidName){throw new _util.FormatError("GState must be referred to by name.");}
const extGState=resources.get("ExtGState");if(!(extGState instanceof _primitives.Dict)){throw new _util.FormatError("ExtGState should be a dictionary.");}
const gState=extGState.get(name);if(!(gState instanceof _primitives.Dict)){throw new _util.FormatError("GState should be a dictionary.");}
const gStateFont=gState.get("Font");if(!gStateFont){emptyGStateCache.set(name,gState.objId,true);resolveGState();return;}
flushTextContentItem();textState.fontName=null;textState.fontSize=gStateFont[1];handleSetFont(null,gStateFont[0]).then(resolveGState,rejectGState);}).catch(function(reason){if(reason instanceof _util.AbortException){return;}
if(self.options.ignoreErrors){(0,_util.warn)(`getTextContent - ignoring ExtGState: "${reason}".`);return;}
throw reason;}));return;case _util.OPS.beginMarkedContent:flushTextContentItem();if(includeMarkedContent){textContent.items.push({type:"beginMarkedContent",tag:args[0]instanceof _primitives.Name?args[0].name:null});}
break;case _util.OPS.beginMarkedContentProps:flushTextContentItem();if(includeMarkedContent){let mcid=null;if(args[1]instanceof _primitives.Dict){mcid=args[1].get("MCID");}
textContent.items.push({type:"beginMarkedContentProps",id:Number.isInteger(mcid)?`${self.idFactory.getPageObjId()}_mcid${mcid}`:null,tag:args[0]instanceof _primitives.Name?args[0].name:null});}
break;case _util.OPS.endMarkedContent:flushTextContentItem();if(includeMarkedContent){textContent.items.push({type:"endMarkedContent"});}
break;}
if(textContent.items.length>=sink.desiredSize){stop=true;break;}}
if(stop){next(deferred);return;}
flushTextContentItem();enqueueChunk();resolve();}).catch(reason=>{if(reason instanceof _util.AbortException){return;}
if(this.options.ignoreErrors){(0,_util.warn)(`getTextContent - ignoring errors during "${task.name}" `+`task: "${reason}".`);flushTextContentItem();enqueueChunk();return;}
throw reason;});}
extractDataStructures(dict,baseDict,properties){const xref=this.xref;let cidToGidBytes;const toUnicodePromise=this.readToUnicode(properties.toUnicode||dict.get("ToUnicode")||baseDict.get("ToUnicode"));if(properties.composite){const cidSystemInfo=dict.get("CIDSystemInfo");if(cidSystemInfo instanceof _primitives.Dict){properties.cidSystemInfo={registry:(0,_util.stringToPDFString)(cidSystemInfo.get("Registry")),ordering:(0,_util.stringToPDFString)(cidSystemInfo.get("Ordering")),supplement:cidSystemInfo.get("Supplement")};}
try{const cidToGidMap=dict.get("CIDToGIDMap");if(cidToGidMap instanceof _base_stream.BaseStream){cidToGidBytes=cidToGidMap.getBytes();}}catch(ex){if(!this.options.ignoreErrors){throw ex;}
(0,_util.warn)(`extractDataStructures - ignoring CIDToGIDMap data: "${ex}".`);}}
const differences=[];let baseEncodingName=null;let encoding;if(dict.has("Encoding")){encoding=dict.get("Encoding");if(encoding instanceof _primitives.Dict){baseEncodingName=encoding.get("BaseEncoding");baseEncodingName=baseEncodingName instanceof _primitives.Name?baseEncodingName.name:null;if(encoding.has("Differences")){const diffEncoding=encoding.get("Differences");let index=0;for(let j=0,jj=diffEncoding.length;j<jj;j++){const data=xref.fetchIfRef(diffEncoding[j]);if(typeof data==="number"){index=data;}else if(data instanceof _primitives.Name){differences[index++]=data.name;}else{throw new _util.FormatError(`Invalid entry in 'Differences' array: ${data}`);}}}}else if(encoding instanceof _primitives.Name){baseEncodingName=encoding.name;}else{const msg="Encoding is not a Name nor a Dict";if(!this.options.ignoreErrors){throw new _util.FormatError(msg);}
(0,_util.warn)(msg);}
if(baseEncodingName!=="MacRomanEncoding"&&baseEncodingName!=="MacExpertEncoding"&&baseEncodingName!=="WinAnsiEncoding"){baseEncodingName=null;}}
if(baseEncodingName){properties.defaultEncoding=(0,_encodings.getEncoding)(baseEncodingName);}else{const isSymbolicFont=!!(properties.flags&_fonts_utils.FontFlags.Symbolic);const isNonsymbolicFont=!!(properties.flags&_fonts_utils.FontFlags.Nonsymbolic);encoding=_encodings.StandardEncoding;if(properties.type==="TrueType"&&!isNonsymbolicFont){encoding=_encodings.WinAnsiEncoding;}
if(isSymbolicFont){encoding=_encodings.MacRomanEncoding;if(!properties.file||properties.isInternalFont){if(/Symbol/i.test(properties.name)){encoding=_encodings.SymbolSetEncoding;}else if(/Dingbats|Wingdings/i.test(properties.name)){encoding=_encodings.ZapfDingbatsEncoding;}}}
properties.defaultEncoding=encoding;}
properties.differences=differences;properties.baseEncodingName=baseEncodingName;properties.hasEncoding=!!baseEncodingName||differences.length>0;properties.dict=dict;return toUnicodePromise.then(readToUnicode=>{properties.toUnicode=readToUnicode;return this.buildToUnicode(properties);}).then(builtToUnicode=>{properties.toUnicode=builtToUnicode;if(cidToGidBytes){properties.cidToGidMap=this.readCidToGidMap(cidToGidBytes,builtToUnicode);}
return properties;});}
_simpleFontToUnicode(properties){let forceGlyphs=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;(0,_util.assert)(!properties.composite,"Must be a simple font.");const toUnicode=[];const encoding=properties.defaultEncoding.slice();const baseEncodingName=properties.baseEncodingName;const differences=properties.differences;for(const charcode in differences){const glyphName=differences[charcode];if(glyphName===".notdef"){continue;}
encoding[charcode]=glyphName;}
const glyphsUnicodeMap=(0,_glyphlist.getGlyphsUnicode)();for(const charcode in encoding){let glyphName=encoding[charcode];if(glyphName===""){continue;}else if(glyphsUnicodeMap[glyphName]===undefined){let code=0;switch(glyphName[0]){case"G":if(glyphName.length===3){code=parseInt(glyphName.substring(1),16);}
break;case"g":if(glyphName.length===5){code=parseInt(glyphName.substring(1),16);}
break;case"C":case"c":if(glyphName.length>=3&&glyphName.length<=4){const codeStr=glyphName.substring(1);if(forceGlyphs){code=parseInt(codeStr,16);break;}
code=+codeStr;if(Number.isNaN(code)&&Number.isInteger(parseInt(codeStr,16))){return this._simpleFontToUnicode(properties,true);}}
break;default:const unicode=(0,_unicode.getUnicodeForGlyph)(glyphName,glyphsUnicodeMap);if(unicode!==-1){code=unicode;}}
if(code>0&&code<=0x10ffff&&Number.isInteger(code)){if(baseEncodingName&&code===+charcode){const baseEncoding=(0,_encodings.getEncoding)(baseEncodingName);if(baseEncoding&&(glyphName=baseEncoding[charcode])){toUnicode[charcode]=String.fromCharCode(glyphsUnicodeMap[glyphName]);continue;}}
toUnicode[charcode]=String.fromCodePoint(code);}
continue;}
toUnicode[charcode]=String.fromCharCode(glyphsUnicodeMap[glyphName]);}
return toUnicode;}
async buildToUnicode(properties){properties.hasIncludedToUnicodeMap=!!properties.toUnicode&&properties.toUnicode.length>0;if(properties.hasIncludedToUnicodeMap){if(!properties.composite&&properties.hasEncoding){properties.fallbackToUnicode=this._simpleFontToUnicode(properties);}
return properties.toUnicode;}
if(!properties.composite){return new _to_unicode_map.ToUnicodeMap(this._simpleFontToUnicode(properties));}
if(properties.composite&&(properties.cMap.builtInCMap&&!(properties.cMap instanceof _cmap.IdentityCMap)||properties.cidSystemInfo.registry==="Adobe"&&(properties.cidSystemInfo.ordering==="GB1"||properties.cidSystemInfo.ordering==="CNS1"||properties.cidSystemInfo.ordering==="Japan1"||properties.cidSystemInfo.ordering==="Korea1"))){const{registry,ordering}=properties.cidSystemInfo;const ucs2CMapName=_primitives.Name.get(`${registry}-${ordering}-UCS2`);const ucs2CMap=await _cmap.CMapFactory.create({encoding:ucs2CMapName,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null});const toUnicode=[];properties.cMap.forEach(function(charcode,cid){if(cid>0xffff){throw new _util.FormatError("Max size of CID is 65,535");}
const ucs2=ucs2CMap.lookup(cid);if(ucs2){toUnicode[charcode]=String.fromCharCode((ucs2.charCodeAt(0)<<8)+ucs2.charCodeAt(1));}});return new _to_unicode_map.ToUnicodeMap(toUnicode);}
return new _to_unicode_map.IdentityToUnicodeMap(properties.firstChar,properties.lastChar);}
readToUnicode(cmapObj){if(!cmapObj){return Promise.resolve(null);}
if(cmapObj instanceof _primitives.Name){return _cmap.CMapFactory.create({encoding:cmapObj,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then(function(cmap){if(cmap instanceof _cmap.IdentityCMap){return new _to_unicode_map.IdentityToUnicodeMap(0,0xffff);}
return new _to_unicode_map.ToUnicodeMap(cmap.getMap());});}else if(cmapObj instanceof _base_stream.BaseStream){return _cmap.CMapFactory.create({encoding:cmapObj,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then(function(cmap){if(cmap instanceof _cmap.IdentityCMap){return new _to_unicode_map.IdentityToUnicodeMap(0,0xffff);}
const map=new Array(cmap.length);cmap.forEach(function(charCode,token){if(typeof token==="number"){map[charCode]=String.fromCodePoint(token);return;}
const str=[];for(let k=0;k<token.length;k+=2){const w1=token.charCodeAt(k)<<8|token.charCodeAt(k+1);if((w1&0xf800)!==0xd800){str.push(w1);continue;}
k+=2;const w2=token.charCodeAt(k)<<8|token.charCodeAt(k+1);str.push(((w1&0x3ff)<<10)+(w2&0x3ff)+0x10000);}
map[charCode]=String.fromCodePoint(...str);});return new _to_unicode_map.ToUnicodeMap(map);},reason=>{if(reason instanceof _util.AbortException){return null;}
if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorFontToUnicode});(0,_util.warn)(`readToUnicode - ignoring ToUnicode data: "${reason}".`);return null;}
throw reason;});}
return Promise.resolve(null);}
readCidToGidMap(glyphsData,toUnicode){const result=[];for(let j=0,jj=glyphsData.length;j<jj;j++){const glyphID=glyphsData[j++]<<8|glyphsData[j];const code=j>>1;if(glyphID===0&&!toUnicode.has(code)){continue;}
result[code]=glyphID;}
return result;}
extractWidths(dict,descriptor,properties){const xref=this.xref;let glyphsWidths=[];let defaultWidth=0;const glyphsVMetrics=[];let defaultVMetrics;let i,ii,j,jj,start,code,widths;if(properties.composite){defaultWidth=dict.has("DW")?dict.get("DW"):1000;widths=dict.get("W");if(widths){for(i=0,ii=widths.length;i<ii;i++){start=xref.fetchIfRef(widths[i++]);code=xref.fetchIfRef(widths[i]);if(Array.isArray(code)){for(j=0,jj=code.length;j<jj;j++){glyphsWidths[start++]=xref.fetchIfRef(code[j]);}}else{const width=xref.fetchIfRef(widths[++i]);for(j=start;j<=code;j++){glyphsWidths[j]=width;}}}}
if(properties.vertical){let vmetrics=dict.getArray("DW2")||[880,-1000];defaultVMetrics=[vmetrics[1],defaultWidth*0.5,vmetrics[0]];vmetrics=dict.get("W2");if(vmetrics){for(i=0,ii=vmetrics.length;i<ii;i++){start=xref.fetchIfRef(vmetrics[i++]);code=xref.fetchIfRef(vmetrics[i]);if(Array.isArray(code)){for(j=0,jj=code.length;j<jj;j++){glyphsVMetrics[start++]=[xref.fetchIfRef(code[j++]),xref.fetchIfRef(code[j++]),xref.fetchIfRef(code[j])];}}else{const vmetric=[xref.fetchIfRef(vmetrics[++i]),xref.fetchIfRef(vmetrics[++i]),xref.fetchIfRef(vmetrics[++i])];for(j=start;j<=code;j++){glyphsVMetrics[j]=vmetric;}}}}}}else{const firstChar=properties.firstChar;widths=dict.get("Widths");if(widths){j=firstChar;for(i=0,ii=widths.length;i<ii;i++){glyphsWidths[j++]=xref.fetchIfRef(widths[i]);}
defaultWidth=parseFloat(descriptor.get("MissingWidth"))||0;}else{const baseFontName=dict.get("BaseFont");if(baseFontName instanceof _primitives.Name){const metrics=this.getBaseFontMetrics(baseFontName.name);glyphsWidths=this.buildCharCodeToWidth(metrics.widths,properties);defaultWidth=metrics.defaultWidth;}}}
let isMonospace=true;let firstWidth=defaultWidth;for(const glyph in glyphsWidths){const glyphWidth=glyphsWidths[glyph];if(!glyphWidth){continue;}
if(!firstWidth){firstWidth=glyphWidth;continue;}
if(firstWidth!==glyphWidth){isMonospace=false;break;}}
if(isMonospace){properties.flags|=_fonts_utils.FontFlags.FixedPitch;}
properties.defaultWidth=defaultWidth;properties.widths=glyphsWidths;properties.defaultVMetrics=defaultVMetrics;properties.vmetrics=glyphsVMetrics;}
isSerifFont(baseFontName){const fontNameWoStyle=baseFontName.split("-")[0];return fontNameWoStyle in(0,_standard_fonts.getSerifFonts)()||fontNameWoStyle.search(/serif/gi)!==-1;}
getBaseFontMetrics(name){let defaultWidth=0;let widths=Object.create(null);let monospace=false;const stdFontMap=(0,_standard_fonts.getStdFontMap)();let lookupName=stdFontMap[name]||name;const Metrics=(0,_metrics.getMetrics)();if(!(lookupName in Metrics)){if(this.isSerifFont(name)){lookupName="Times-Roman";}else{lookupName="Helvetica";}}
const glyphWidths=Metrics[lookupName];if(typeof glyphWidths==="number"){defaultWidth=glyphWidths;monospace=true;}else{widths=glyphWidths();}
return{defaultWidth,monospace,widths};}
buildCharCodeToWidth(widthsByGlyphName,properties){const widths=Object.create(null);const differences=properties.differences;const encoding=properties.defaultEncoding;for(let charCode=0;charCode<256;charCode++){if(charCode in differences&&widthsByGlyphName[differences[charCode]]){widths[charCode]=widthsByGlyphName[differences[charCode]];continue;}
if(charCode in encoding&&widthsByGlyphName[encoding[charCode]]){widths[charCode]=widthsByGlyphName[encoding[charCode]];continue;}}
return widths;}
preEvaluateFont(dict){const baseDict=dict;let type=dict.get("Subtype");if(!(type instanceof _primitives.Name)){throw new _util.FormatError("invalid font Subtype");}
let composite=false;let hash,toUnicode;if(type.name==="Type0"){const df=dict.get("DescendantFonts");if(!df){throw new _util.FormatError("Descendant fonts are not specified");}
dict=Array.isArray(df)?this.xref.fetchIfRef(df[0]):df;if(!(dict instanceof _primitives.Dict)){throw new _util.FormatError("Descendant font is not a dictionary.");}
type=dict.get("Subtype");if(!(type instanceof _primitives.Name)){throw new _util.FormatError("invalid font Subtype");}
composite=true;}
const firstChar=dict.get("FirstChar")||0,lastChar=dict.get("LastChar")||(composite?0xffff:0xff);const descriptor=dict.get("FontDescriptor");if(descriptor){hash=new _murmurhash.MurmurHash3_64();const encoding=baseDict.getRaw("Encoding");if(encoding instanceof _primitives.Name){hash.update(encoding.name);}else if(encoding instanceof _primitives.Ref){hash.update(encoding.toString());}else if(encoding instanceof _primitives.Dict){for(const entry of encoding.getRawValues()){if(entry instanceof _primitives.Name){hash.update(entry.name);}else if(entry instanceof _primitives.Ref){hash.update(entry.toString());}else if(Array.isArray(entry)){const diffLength=entry.length,diffBuf=new Array(diffLength);for(let j=0;j<diffLength;j++){const diffEntry=entry[j];if(diffEntry instanceof _primitives.Name){diffBuf[j]=diffEntry.name;}else if(typeof diffEntry==="number"||diffEntry instanceof _primitives.Ref){diffBuf[j]=diffEntry.toString();}}
hash.update(diffBuf.join());}}}
hash.update(`${firstChar}-${lastChar}`);toUnicode=dict.get("ToUnicode")||baseDict.get("ToUnicode");if(toUnicode instanceof _base_stream.BaseStream){const stream=toUnicode.str||toUnicode;const uint8array=stream.buffer?new Uint8Array(stream.buffer.buffer,0,stream.bufferLength):new Uint8Array(stream.bytes.buffer,stream.start,stream.end-stream.start);hash.update(uint8array);}else if(toUnicode instanceof _primitives.Name){hash.update(toUnicode.name);}
const widths=dict.get("Widths")||baseDict.get("Widths");if(Array.isArray(widths)){const widthsBuf=[];for(const entry of widths){if(typeof entry==="number"||entry instanceof _primitives.Ref){widthsBuf.push(entry.toString());}}
hash.update(widthsBuf.join());}
if(composite){hash.update("compositeFont");const compositeWidths=dict.get("W")||baseDict.get("W");if(Array.isArray(compositeWidths)){const widthsBuf=[];for(const entry of compositeWidths){if(typeof entry==="number"||entry instanceof _primitives.Ref){widthsBuf.push(entry.toString());}else if(Array.isArray(entry)){const subWidthsBuf=[];for(const element of entry){if(typeof element==="number"||element instanceof _primitives.Ref){subWidthsBuf.push(element.toString());}}
widthsBuf.push(`[${subWidthsBuf.join()}]`);}}
hash.update(widthsBuf.join());}
const cidToGidMap=dict.getRaw("CIDToGIDMap")||baseDict.getRaw("CIDToGIDMap");if(cidToGidMap instanceof _primitives.Name){hash.update(cidToGidMap.name);}else if(cidToGidMap instanceof _primitives.Ref){hash.update(cidToGidMap.toString());}else if(cidToGidMap instanceof _base_stream.BaseStream){hash.update(cidToGidMap.peekBytes());}}}
return{descriptor,dict,baseDict,composite,type:type.name,firstChar,lastChar,toUnicode,hash:hash?hash.hexdigest():""};}
async translateFont(_ref9){let{descriptor,dict,baseDict,composite,type,firstChar,lastChar,toUnicode,cssFontInfo}=_ref9;const isType3Font=type==="Type3";let properties;if(!descriptor){if(isType3Font){descriptor=new _primitives.Dict(null);descriptor.set("FontName",_primitives.Name.get(type));descriptor.set("FontBBox",dict.getArray("FontBBox")||[0,0,0,0]);}else{let baseFontName=dict.get("BaseFont");if(!(baseFontName instanceof _primitives.Name)){throw new _util.FormatError("Base font is not specified");}
baseFontName=baseFontName.name.replace(/[,_]/g,"-");const metrics=this.getBaseFontMetrics(baseFontName);const fontNameWoStyle=baseFontName.split("-")[0];const flags=(this.isSerifFont(fontNameWoStyle)?_fonts_utils.FontFlags.Serif:0)|(metrics.monospace?_fonts_utils.FontFlags.FixedPitch:0)|((0,_standard_fonts.getSymbolsFonts)()[fontNameWoStyle]?_fonts_utils.FontFlags.Symbolic:_fonts_utils.FontFlags.Nonsymbolic);properties={type,name:baseFontName,loadedName:baseDict.loadedName,widths:metrics.widths,defaultWidth:metrics.defaultWidth,isSimulatedFlags:true,flags,firstChar,lastChar,toUnicode,xHeight:0,capHeight:0,italicAngle:0,isType3Font};const widths=dict.get("Widths");const standardFontName=(0,_standard_fonts.getStandardFontName)(baseFontName);let file=null;if(standardFontName){properties.isStandardFont=true;file=await this.fetchStandardFontData(standardFontName);properties.isInternalFont=!!file;}
return this.extractDataStructures(dict,dict,properties).then(newProperties=>{if(widths){const glyphWidths=[];let j=firstChar;for(let i=0,ii=widths.length;i<ii;i++){glyphWidths[j++]=this.xref.fetchIfRef(widths[i]);}
newProperties.widths=glyphWidths;}else{newProperties.widths=this.buildCharCodeToWidth(metrics.widths,newProperties);}
return new _fonts.Font(baseFontName,file,newProperties);});}}
let fontName=descriptor.get("FontName");let baseFont=dict.get("BaseFont");if(typeof fontName==="string"){fontName=_primitives.Name.get(fontName);}
if(typeof baseFont==="string"){baseFont=_primitives.Name.get(baseFont);}
if(!isType3Font){const fontNameStr=fontName&&fontName.name;const baseFontStr=baseFont&&baseFont.name;if(fontNameStr!==baseFontStr){(0,_util.info)(`The FontDescriptor's FontName is "${fontNameStr}" but `+`should be the same as the Font's BaseFont "${baseFontStr}".`);if(fontNameStr&&baseFontStr&&baseFontStr.startsWith(fontNameStr)){fontName=baseFont;}}}
fontName=fontName||baseFont;if(!(fontName instanceof _primitives.Name)){throw new _util.FormatError("invalid font name");}
let fontFile,subtype,length1,length2,length3;try{fontFile=descriptor.get("FontFile","FontFile2","FontFile3");}catch(ex){if(!this.options.ignoreErrors){throw ex;}
(0,_util.warn)(`translateFont - fetching "${fontName.name}" font file: "${ex}".`);fontFile=new _stream.NullStream();}
let isStandardFont=false;let isInternalFont=false;let glyphScaleFactors=null;if(fontFile){if(fontFile.dict){const subtypeEntry=fontFile.dict.get("Subtype");if(subtypeEntry instanceof _primitives.Name){subtype=subtypeEntry.name;}
length1=fontFile.dict.get("Length1");length2=fontFile.dict.get("Length2");length3=fontFile.dict.get("Length3");}}else if(cssFontInfo){const standardFontName=(0,_xfa_fonts.getXfaFontName)(fontName.name);if(standardFontName){cssFontInfo.fontFamily=`${cssFontInfo.fontFamily}-PdfJS-XFA`;cssFontInfo.metrics=standardFontName.metrics||null;glyphScaleFactors=standardFontName.factors||null;fontFile=await this.fetchStandardFontData(standardFontName.name);isInternalFont=!!fontFile;baseDict=dict=(0,_xfa_fonts.getXfaFontDict)(fontName.name);composite=true;}}else if(!isType3Font){const standardFontName=(0,_standard_fonts.getStandardFontName)(fontName.name);if(standardFontName){isStandardFont=true;fontFile=await this.fetchStandardFontData(standardFontName);isInternalFont=!!fontFile;}}
properties={type,name:fontName.name,subtype,file:fontFile,length1,length2,length3,isStandardFont,isInternalFont,loadedName:baseDict.loadedName,composite,fixedPitch:false,fontMatrix:dict.getArray("FontMatrix")||_util.FONT_IDENTITY_MATRIX,firstChar,lastChar,toUnicode,bbox:descriptor.getArray("FontBBox")||dict.getArray("FontBBox"),ascent:descriptor.get("Ascent"),descent:descriptor.get("Descent"),xHeight:descriptor.get("XHeight")||0,capHeight:descriptor.get("CapHeight")||0,flags:descriptor.get("Flags"),italicAngle:descriptor.get("ItalicAngle")||0,isType3Font,cssFontInfo,scaleFactors:glyphScaleFactors};if(composite){const cidEncoding=baseDict.get("Encoding");if(cidEncoding instanceof _primitives.Name){properties.cidEncoding=cidEncoding.name;}
const cMap=await _cmap.CMapFactory.create({encoding:cidEncoding,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null});properties.cMap=cMap;properties.vertical=properties.cMap.vertical;}
return this.extractDataStructures(dict,baseDict,properties).then(newProperties=>{this.extractWidths(dict,descriptor,newProperties);return new _fonts.Font(fontName.name,fontFile,newProperties);});}
static buildFontPaths(font,glyphs,handler,evaluatorOptions){function buildPath(fontChar){const glyphName=`${font.loadedName}_path_${fontChar}`;try{if(font.renderer.hasBuiltPath(fontChar)){return;}
handler.send("commonobj",[glyphName,"FontPath",font.renderer.getPathJs(fontChar)]);}catch(reason){if(evaluatorOptions.ignoreErrors){handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.errorFontBuildPath});(0,_util.warn)(`buildFontPaths - ignoring ${glyphName} glyph: "${reason}".`);return;}
throw reason;}}
for(const glyph of glyphs){buildPath(glyph.fontChar);const accent=glyph.accent;if(accent&&accent.fontChar){buildPath(accent.fontChar);}}}
static get fallbackFontDict(){const dict=new _primitives.Dict();dict.set("BaseFont",_primitives.Name.get("PDFJS-FallbackFont"));dict.set("Type",_primitives.Name.get("FallbackType"));dict.set("Subtype",_primitives.Name.get("FallbackType"));dict.set("Encoding",_primitives.Name.get("WinAnsiEncoding"));return(0,_util.shadow)(this,"fallbackFontDict",dict);}}
exports.PartialEvaluator=PartialEvaluator;class TranslatedFont{constructor(_ref10){let{loadedName,font,dict,evaluatorOptions}=_ref10;this.loadedName=loadedName;this.font=font;this.dict=dict;this._evaluatorOptions=evaluatorOptions||DefaultPartialEvaluatorOptions;this.type3Loaded=null;this.type3Dependencies=font.isType3Font?new Set():null;this.sent=false;}
send(handler){if(this.sent){return;}
this.sent=true;handler.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._evaluatorOptions.fontExtraProperties)]);}
fallback(handler){if(!this.font.data){return;}
this.font.disableFontFace=true;PartialEvaluator.buildFontPaths(this.font,this.font.glyphCacheValues,handler,this._evaluatorOptions);}
loadType3Data(evaluator,resources,task){if(this.type3Loaded){return this.type3Loaded;}
if(!this.font.isType3Font){throw new Error("Must be a Type3 font.");}
const type3Evaluator=evaluator.clone({ignoreErrors:false});type3Evaluator.parsingType3Font=true;const type3FontRefs=new _primitives.RefSet(evaluator.type3FontRefs);if(this.dict.objId&&!type3FontRefs.has(this.dict.objId)){type3FontRefs.put(this.dict.objId);}
type3Evaluator.type3FontRefs=type3FontRefs;const translatedFont=this.font,type3Dependencies=this.type3Dependencies;let loadCharProcsPromise=Promise.resolve();const charProcs=this.dict.get("CharProcs");const fontResources=this.dict.get("Resources")||resources;const charProcOperatorList=Object.create(null);const fontBBox=_util.Util.normalizeRect(translatedFont.bbox||[0,0,0,0]),width=fontBBox[2]-fontBBox[0],height=fontBBox[3]-fontBBox[1];const fontBBoxSize=Math.hypot(width,height);for(const key of charProcs.getKeys()){loadCharProcsPromise=loadCharProcsPromise.then(()=>{const glyphStream=charProcs.get(key);const operatorList=new _operator_list.OperatorList();return type3Evaluator.getOperatorList({stream:glyphStream,task,resources:fontResources,operatorList}).then(()=>{if(operatorList.fnArray[0]===_util.OPS.setCharWidthAndBounds){this._removeType3ColorOperators(operatorList,fontBBoxSize);}
charProcOperatorList[key]=operatorList.getIR();for(const dependency of operatorList.dependencies){type3Dependencies.add(dependency);}}).catch(function(reason){(0,_util.warn)(`Type3 font resource "${key}" is not available.`);const dummyOperatorList=new _operator_list.OperatorList();charProcOperatorList[key]=dummyOperatorList.getIR();});});}
this.type3Loaded=loadCharProcsPromise.then(()=>{translatedFont.charProcOperatorList=charProcOperatorList;if(this._bbox){translatedFont.isCharBBox=true;translatedFont.bbox=this._bbox;}});return this.type3Loaded;}
_removeType3ColorOperators(operatorList){let fontBBoxSize=arguments.length>1&&arguments[1]!==undefined?arguments[1]:NaN;const charBBox=_util.Util.normalizeRect(operatorList.argsArray[0].slice(2)),width=charBBox[2]-charBBox[0],height=charBBox[3]-charBBox[1];const charBBoxSize=Math.hypot(width,height);if(width===0||height===0){operatorList.fnArray.splice(0,1);operatorList.argsArray.splice(0,1);}else if(fontBBoxSize===0||Math.round(charBBoxSize/fontBBoxSize)>=10){if(!this._bbox){this._bbox=[Infinity,Infinity,-Infinity,-Infinity];}
this._bbox[0]=Math.min(this._bbox[0],charBBox[0]);this._bbox[1]=Math.min(this._bbox[1],charBBox[1]);this._bbox[2]=Math.max(this._bbox[2],charBBox[2]);this._bbox[3]=Math.max(this._bbox[3],charBBox[3]);}
let i=0,ii=operatorList.length;while(i<ii){switch(operatorList.fnArray[i]){case _util.OPS.setCharWidthAndBounds:break;case _util.OPS.setStrokeColorSpace:case _util.OPS.setFillColorSpace:case _util.OPS.setStrokeColor:case _util.OPS.setStrokeColorN:case _util.OPS.setFillColor:case _util.OPS.setFillColorN:case _util.OPS.setStrokeGray:case _util.OPS.setFillGray:case _util.OPS.setStrokeRGBColor:case _util.OPS.setFillRGBColor:case _util.OPS.setStrokeCMYKColor:case _util.OPS.setFillCMYKColor:case _util.OPS.shadingFill:case _util.OPS.setRenderingIntent:operatorList.fnArray.splice(i,1);operatorList.argsArray.splice(i,1);ii--;continue;case _util.OPS.setGState:const[gStateObj]=operatorList.argsArray[i];let j=0,jj=gStateObj.length;while(j<jj){const[gStateKey]=gStateObj[j];switch(gStateKey){case"TR":case"TR2":case"HT":case"BG":case"BG2":case"UCR":case"UCR2":gStateObj.splice(j,1);jj--;continue;}
j++;}
break;}
i++;}}}
class StateManager{constructor(){let initialState=arguments.length>0&&arguments[0]!==undefined?arguments[0]:new EvalState();this.state=initialState;this.stateStack=[];}
save(){const old=this.state;this.stateStack.push(this.state);this.state=old.clone();}
restore(){const prev=this.stateStack.pop();if(prev){this.state=prev;}}
transform(args){this.state.ctm=_util.Util.transform(this.state.ctm,args);}}
class TextState{constructor(){this.ctm=new Float32Array(_util.IDENTITY_MATRIX);this.fontName=null;this.fontSize=0;this.font=null;this.fontMatrix=_util.FONT_IDENTITY_MATRIX;this.textMatrix=_util.IDENTITY_MATRIX.slice();this.textLineMatrix=_util.IDENTITY_MATRIX.slice();this.charSpacing=0;this.wordSpacing=0;this.leading=0;this.textHScale=1;this.textRise=0;}
setTextMatrix(a,b,c,d,e,f){const m=this.textMatrix;m[0]=a;m[1]=b;m[2]=c;m[3]=d;m[4]=e;m[5]=f;}
setTextLineMatrix(a,b,c,d,e,f){const m=this.textLineMatrix;m[0]=a;m[1]=b;m[2]=c;m[3]=d;m[4]=e;m[5]=f;}
translateTextMatrix(x,y){const m=this.textMatrix;m[4]=m[0]*x+m[2]*y+m[4];m[5]=m[1]*x+m[3]*y+m[5];}
translateTextLineMatrix(x,y){const m=this.textLineMatrix;m[4]=m[0]*x+m[2]*y+m[4];m[5]=m[1]*x+m[3]*y+m[5];}
carriageReturn(){this.translateTextLineMatrix(0,-this.leading);this.textMatrix=this.textLineMatrix.slice();}
clone(){const clone=Object.create(this);clone.textMatrix=this.textMatrix.slice();clone.textLineMatrix=this.textLineMatrix.slice();clone.fontMatrix=this.fontMatrix.slice();return clone;}}
class EvalState{constructor(){this.ctm=new Float32Array(_util.IDENTITY_MATRIX);this.font=null;this.textRenderingMode=_util.TextRenderingMode.FILL;this.fillColorSpace=_colorspace.ColorSpace.singletons.gray;this.strokeColorSpace=_colorspace.ColorSpace.singletons.gray;}
clone(){return Object.create(this);}}
class EvaluatorPreprocessor{static get opMap(){const getOPMap=(0,_core_utils.getLookupTableFactory)(function(t){t.w={id:_util.OPS.setLineWidth,numArgs:1,variableArgs:false};t.J={id:_util.OPS.setLineCap,numArgs:1,variableArgs:false};t.j={id:_util.OPS.setLineJoin,numArgs:1,variableArgs:false};t.M={id:_util.OPS.setMiterLimit,numArgs:1,variableArgs:false};t.d={id:_util.OPS.setDash,numArgs:2,variableArgs:false};t.ri={id:_util.OPS.setRenderingIntent,numArgs:1,variableArgs:false};t.i={id:_util.OPS.setFlatness,numArgs:1,variableArgs:false};t.gs={id:_util.OPS.setGState,numArgs:1,variableArgs:false};t.q={id:_util.OPS.save,numArgs:0,variableArgs:false};t.Q={id:_util.OPS.restore,numArgs:0,variableArgs:false};t.cm={id:_util.OPS.transform,numArgs:6,variableArgs:false};t.m={id:_util.OPS.moveTo,numArgs:2,variableArgs:false};t.l={id:_util.OPS.lineTo,numArgs:2,variableArgs:false};t.c={id:_util.OPS.curveTo,numArgs:6,variableArgs:false};t.v={id:_util.OPS.curveTo2,numArgs:4,variableArgs:false};t.y={id:_util.OPS.curveTo3,numArgs:4,variableArgs:false};t.h={id:_util.OPS.closePath,numArgs:0,variableArgs:false};t.re={id:_util.OPS.rectangle,numArgs:4,variableArgs:false};t.S={id:_util.OPS.stroke,numArgs:0,variableArgs:false};t.s={id:_util.OPS.closeStroke,numArgs:0,variableArgs:false};t.f={id:_util.OPS.fill,numArgs:0,variableArgs:false};t.F={id:_util.OPS.fill,numArgs:0,variableArgs:false};t["f*"]={id:_util.OPS.eoFill,numArgs:0,variableArgs:false};t.B={id:_util.OPS.fillStroke,numArgs:0,variableArgs:false};t["B*"]={id:_util.OPS.eoFillStroke,numArgs:0,variableArgs:false};t.b={id:_util.OPS.closeFillStroke,numArgs:0,variableArgs:false};t["b*"]={id:_util.OPS.closeEOFillStroke,numArgs:0,variableArgs:false};t.n={id:_util.OPS.endPath,numArgs:0,variableArgs:false};t.W={id:_util.OPS.clip,numArgs:0,variableArgs:false};t["W*"]={id:_util.OPS.eoClip,numArgs:0,variableArgs:false};t.BT={id:_util.OPS.beginText,numArgs:0,variableArgs:false};t.ET={id:_util.OPS.endText,numArgs:0,variableArgs:false};t.Tc={id:_util.OPS.setCharSpacing,numArgs:1,variableArgs:false};t.Tw={id:_util.OPS.setWordSpacing,numArgs:1,variableArgs:false};t.Tz={id:_util.OPS.setHScale,numArgs:1,variableArgs:false};t.TL={id:_util.OPS.setLeading,numArgs:1,variableArgs:false};t.Tf={id:_util.OPS.setFont,numArgs:2,variableArgs:false};t.Tr={id:_util.OPS.setTextRenderingMode,numArgs:1,variableArgs:false};t.Ts={id:_util.OPS.setTextRise,numArgs:1,variableArgs:false};t.Td={id:_util.OPS.moveText,numArgs:2,variableArgs:false};t.TD={id:_util.OPS.setLeadingMoveText,numArgs:2,variableArgs:false};t.Tm={id:_util.OPS.setTextMatrix,numArgs:6,variableArgs:false};t["T*"]={id:_util.OPS.nextLine,numArgs:0,variableArgs:false};t.Tj={id:_util.OPS.showText,numArgs:1,variableArgs:false};t.TJ={id:_util.OPS.showSpacedText,numArgs:1,variableArgs:false};t["'"]={id:_util.OPS.nextLineShowText,numArgs:1,variableArgs:false};t['"']={id:_util.OPS.nextLineSetSpacingShowText,numArgs:3,variableArgs:false};t.d0={id:_util.OPS.setCharWidth,numArgs:2,variableArgs:false};t.d1={id:_util.OPS.setCharWidthAndBounds,numArgs:6,variableArgs:false};t.CS={id:_util.OPS.setStrokeColorSpace,numArgs:1,variableArgs:false};t.cs={id:_util.OPS.setFillColorSpace,numArgs:1,variableArgs:false};t.SC={id:_util.OPS.setStrokeColor,numArgs:4,variableArgs:true};t.SCN={id:_util.OPS.setStrokeColorN,numArgs:33,variableArgs:true};t.sc={id:_util.OPS.setFillColor,numArgs:4,variableArgs:true};t.scn={id:_util.OPS.setFillColorN,numArgs:33,variableArgs:true};t.G={id:_util.OPS.setStrokeGray,numArgs:1,variableArgs:false};t.g={id:_util.OPS.setFillGray,numArgs:1,variableArgs:false};t.RG={id:_util.OPS.setStrokeRGBColor,numArgs:3,variableArgs:false};t.rg={id:_util.OPS.setFillRGBColor,numArgs:3,variableArgs:false};t.K={id:_util.OPS.setStrokeCMYKColor,numArgs:4,variableArgs:false};t.k={id:_util.OPS.setFillCMYKColor,numArgs:4,variableArgs:false};t.sh={id:_util.OPS.shadingFill,numArgs:1,variableArgs:false};t.BI={id:_util.OPS.beginInlineImage,numArgs:0,variableArgs:false};t.ID={id:_util.OPS.beginImageData,numArgs:0,variableArgs:false};t.EI={id:_util.OPS.endInlineImage,numArgs:1,variableArgs:false};t.Do={id:_util.OPS.paintXObject,numArgs:1,variableArgs:false};t.MP={id:_util.OPS.markPoint,numArgs:1,variableArgs:false};t.DP={id:_util.OPS.markPointProps,numArgs:2,variableArgs:false};t.BMC={id:_util.OPS.beginMarkedContent,numArgs:1,variableArgs:false};t.BDC={id:_util.OPS.beginMarkedContentProps,numArgs:2,variableArgs:false};t.EMC={id:_util.OPS.endMarkedContent,numArgs:0,variableArgs:false};t.BX={id:_util.OPS.beginCompat,numArgs:0,variableArgs:false};t.EX={id:_util.OPS.endCompat,numArgs:0,variableArgs:false};t.BM=null;t.BD=null;t.true=null;t.fa=null;t.fal=null;t.fals=null;t.false=null;t.nu=null;t.nul=null;t.null=null;});return(0,_util.shadow)(this,"opMap",getOPMap());}
static get MAX_INVALID_PATH_OPS(){return(0,_util.shadow)(this,"MAX_INVALID_PATH_OPS",10);}
constructor(stream,xref){let stateManager=arguments.length>2&&arguments[2]!==undefined?arguments[2]:new StateManager();this.parser=new _parser.Parser({lexer:new _parser.Lexer(stream,EvaluatorPreprocessor.opMap),xref});this.stateManager=stateManager;this.nonProcessedArgs=[];this._isPathOp=false;this._numInvalidPathOPS=0;}
get savedStatesDepth(){return this.stateManager.stateStack.length;}
read(operation){let args=operation.args;while(true){const obj=this.parser.getObj();if(obj instanceof _primitives.Cmd){const cmd=obj.cmd;const opSpec=EvaluatorPreprocessor.opMap[cmd];if(!opSpec){(0,_util.warn)(`Unknown command "${cmd}".`);continue;}
const fn=opSpec.id;const numArgs=opSpec.numArgs;let argsLength=args!==null?args.length:0;if(!this._isPathOp){this._numInvalidPathOPS=0;}
this._isPathOp=fn>=_util.OPS.moveTo&&fn<=_util.OPS.endPath;if(!opSpec.variableArgs){if(argsLength!==numArgs){const nonProcessedArgs=this.nonProcessedArgs;while(argsLength>numArgs){nonProcessedArgs.push(args.shift());argsLength--;}
while(argsLength<numArgs&&nonProcessedArgs.length!==0){if(args===null){args=[];}
args.unshift(nonProcessedArgs.pop());argsLength++;}}
if(argsLength<numArgs){const partialMsg=`command ${cmd}: expected ${numArgs} args, `+`but received ${argsLength} args.`;if(this._isPathOp&&++this._numInvalidPathOPS>EvaluatorPreprocessor.MAX_INVALID_PATH_OPS){throw new _util.FormatError(`Invalid ${partialMsg}`);}
(0,_util.warn)(`Skipping ${partialMsg}`);if(args!==null){args.length=0;}
continue;}}else if(argsLength>numArgs){(0,_util.info)(`Command ${cmd}: expected [0, ${numArgs}] args, `+`but received ${argsLength} args.`);}
this.preprocessCommand(fn,args);operation.fn=fn;operation.args=args;return true;}
if(obj===_primitives.EOF){return false;}
if(obj!==null){if(args===null){args=[];}
args.push(obj);if(args.length>33){throw new _util.FormatError("Too many arguments");}}}}
preprocessCommand(fn,args){switch(fn|0){case _util.OPS.save:this.stateManager.save();break;case _util.OPS.restore:this.stateManager.restore();break;case _util.OPS.transform:this.stateManager.transform(args);break;}}}
exports.EvaluatorPreprocessor=EvaluatorPreprocessor;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.IdentityCMap=exports.CMapFactory=exports.CMap=void 0;var _util=__w_pdfjs_require__(2);var _primitives=__w_pdfjs_require__(130);var _base_stream=__w_pdfjs_require__(132);var _parser=__w_pdfjs_require__(142);var _core_utils=__w_pdfjs_require__(131);var _stream=__w_pdfjs_require__(135);const BUILT_IN_CMAPS=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"];const MAX_MAP_RANGE=2**24-1;class CMap{constructor(){let builtInCMap=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=false;this.useCMap=null;this.builtInCMap=builtInCMap;}
addCodespaceRange(n,low,high){this.codespaceRanges[n-1].push(low,high);this.numCodespaceRanges++;}
mapCidRange(low,high,dstLow){if(high-low>MAX_MAP_RANGE){throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");}
while(low<=high){this._map[low++]=dstLow++;}}
mapBfRange(low,high,dstLow){if(high-low>MAX_MAP_RANGE){throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");}
const lastByte=dstLow.length-1;while(low<=high){this._map[low++]=dstLow;const nextCharCode=dstLow.charCodeAt(lastByte)+1;if(nextCharCode>0xff){dstLow=dstLow.substring(0,lastByte-1)+String.fromCharCode(dstLow.charCodeAt(lastByte-1)+1)+"\x00";continue;}
dstLow=dstLow.substring(0,lastByte)+String.fromCharCode(nextCharCode);}}
mapBfRangeToArray(low,high,array){if(high-low>MAX_MAP_RANGE){throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");}
const ii=array.length;let i=0;while(low<=high&&i<ii){this._map[low]=array[i++];++low;}}
mapOne(src,dst){this._map[src]=dst;}
lookup(code){return this._map[code];}
contains(code){return this._map[code]!==undefined;}
forEach(callback){const map=this._map;const length=map.length;if(length<=0x10000){for(let i=0;i<length;i++){if(map[i]!==undefined){callback(i,map[i]);}}}else{for(const i in map){callback(i,map[i]);}}}
charCodeOf(value){const map=this._map;if(map.length<=0x10000){return map.indexOf(value);}
for(const charCode in map){if(map[charCode]===value){return charCode|0;}}
return-1;}
getMap(){return this._map;}
readCharCode(str,offset,out){let c=0;const codespaceRanges=this.codespaceRanges;for(let n=0,nn=codespaceRanges.length;n<nn;n++){c=(c<<8|str.charCodeAt(offset+n))>>>0;const codespaceRange=codespaceRanges[n];for(let k=0,kk=codespaceRange.length;k<kk;){const low=codespaceRange[k++];const high=codespaceRange[k++];if(c>=low&&c<=high){out.charcode=c;out.length=n+1;return;}}}
out.charcode=0;out.length=1;}
getCharCodeLength(charCode){const codespaceRanges=this.codespaceRanges;for(let n=0,nn=codespaceRanges.length;n<nn;n++){const codespaceRange=codespaceRanges[n];for(let k=0,kk=codespaceRange.length;k<kk;){const low=codespaceRange[k++];const high=codespaceRange[k++];if(charCode>=low&&charCode<=high){return n+1;}}}
return 1;}
get length(){return this._map.length;}
get isIdentityCMap(){if(!(this.name==="Identity-H"||this.name==="Identity-V")){return false;}
if(this._map.length!==0x10000){return false;}
for(let i=0;i<0x10000;i++){if(this._map[i]!==i){return false;}}
return true;}}
exports.CMap=CMap;class IdentityCMap extends CMap{constructor(vertical,n){super();this.vertical=vertical;this.addCodespaceRange(n,0,0xffff);}
mapCidRange(low,high,dstLow){(0,_util.unreachable)("should not call mapCidRange");}
mapBfRange(low,high,dstLow){(0,_util.unreachable)("should not call mapBfRange");}
mapBfRangeToArray(low,high,array){(0,_util.unreachable)("should not call mapBfRangeToArray");}
mapOne(src,dst){(0,_util.unreachable)("should not call mapCidOne");}
lookup(code){return Number.isInteger(code)&&code<=0xffff?code:undefined;}
contains(code){return Number.isInteger(code)&&code<=0xffff;}
forEach(callback){for(let i=0;i<=0xffff;i++){callback(i,i);}}
charCodeOf(value){return Number.isInteger(value)&&value<=0xffff?value:-1;}
getMap(){const map=new Array(0x10000);for(let i=0;i<=0xffff;i++){map[i]=i;}
return map;}
get length(){return 0x10000;}
get isIdentityCMap(){(0,_util.unreachable)("should not access .isIdentityCMap");}}
exports.IdentityCMap=IdentityCMap;const BinaryCMapReader=function BinaryCMapReaderClosure(){function hexToInt(a,size){let n=0;for(let i=0;i<=size;i++){n=n<<8|a[i];}
return n>>>0;}
function hexToStr(a,size){if(size===1){return String.fromCharCode(a[0],a[1]);}
if(size===3){return String.fromCharCode(a[0],a[1],a[2],a[3]);}
return String.fromCharCode.apply(null,a.subarray(0,size+1));}
function addHex(a,b,size){let c=0;for(let i=size;i>=0;i--){c+=a[i]+b[i];a[i]=c&255;c>>=8;}}
function incHex(a,size){let c=1;for(let i=size;i>=0&&c>0;i--){c+=a[i];a[i]=c&255;c>>=8;}}
const MAX_NUM_SIZE=16;const MAX_ENCODED_NUM_SIZE=19;class BinaryCMapStream{constructor(data){this.buffer=data;this.pos=0;this.end=data.length;this.tmpBuf=new Uint8Array(MAX_ENCODED_NUM_SIZE);}
readByte(){if(this.pos>=this.end){return-1;}
return this.buffer[this.pos++];}
readNumber(){let n=0;let last;do{const b=this.readByte();if(b<0){throw new _util.FormatError("unexpected EOF in bcmap");}
last=!(b&0x80);n=n<<7|b&0x7f;}while(!last);return n;}
readSigned(){const n=this.readNumber();return n&1?~(n>>>1):n>>>1;}
readHex(num,size){num.set(this.buffer.subarray(this.pos,this.pos+size+1));this.pos+=size+1;}
readHexNumber(num,size){let last;const stack=this.tmpBuf;let sp=0;do{const b=this.readByte();if(b<0){throw new _util.FormatError("unexpected EOF in bcmap");}
last=!(b&0x80);stack[sp++]=b&0x7f;}while(!last);let i=size,buffer=0,bufferSize=0;while(i>=0){while(bufferSize<8&&stack.length>0){buffer|=stack[--sp]<<bufferSize;bufferSize+=7;}
num[i]=buffer&255;i--;buffer>>=8;bufferSize-=8;}}
readHexSigned(num,size){this.readHexNumber(num,size);const sign=num[size]&1?255:0;let c=0;for(let i=0;i<=size;i++){c=(c&1)<<8|num[i];num[i]=c>>1^sign;}}
readString(){const len=this.readNumber();let s="";for(let i=0;i<len;i++){s+=String.fromCharCode(this.readNumber());}
return s;}}
class BinaryCMapReader{async process(data,cMap,extend){const stream=new BinaryCMapStream(data);const header=stream.readByte();cMap.vertical=!!(header&1);let useCMap=null;const start=new Uint8Array(MAX_NUM_SIZE);const end=new Uint8Array(MAX_NUM_SIZE);const char=new Uint8Array(MAX_NUM_SIZE);const charCode=new Uint8Array(MAX_NUM_SIZE);const tmp=new Uint8Array(MAX_NUM_SIZE);let code;let b;while((b=stream.readByte())>=0){const type=b>>5;if(type===7){switch(b&0x1f){case 0:stream.readString();break;case 1:useCMap=stream.readString();break;}
continue;}
const sequence=!!(b&0x10);const dataSize=b&15;if(dataSize+1>MAX_NUM_SIZE){throw new Error("BinaryCMapReader.process: Invalid dataSize.");}
const ucs2DataSize=1;const subitemsCount=stream.readNumber();switch(type){case 0:stream.readHex(start,dataSize);stream.readHexNumber(end,dataSize);addHex(end,start,dataSize);cMap.addCodespaceRange(dataSize+1,hexToInt(start,dataSize),hexToInt(end,dataSize));for(let i=1;i<subitemsCount;i++){incHex(end,dataSize);stream.readHexNumber(start,dataSize);addHex(start,end,dataSize);stream.readHexNumber(end,dataSize);addHex(end,start,dataSize);cMap.addCodespaceRange(dataSize+1,hexToInt(start,dataSize),hexToInt(end,dataSize));}
break;case 1:stream.readHex(start,dataSize);stream.readHexNumber(end,dataSize);addHex(end,start,dataSize);stream.readNumber();for(let i=1;i<subitemsCount;i++){incHex(end,dataSize);stream.readHexNumber(start,dataSize);addHex(start,end,dataSize);stream.readHexNumber(end,dataSize);addHex(end,start,dataSize);stream.readNumber();}
break;case 2:stream.readHex(char,dataSize);code=stream.readNumber();cMap.mapOne(hexToInt(char,dataSize),code);for(let i=1;i<subitemsCount;i++){incHex(char,dataSize);if(!sequence){stream.readHexNumber(tmp,dataSize);addHex(char,tmp,dataSize);}
code=stream.readSigned()+(code+1);cMap.mapOne(hexToInt(char,dataSize),code);}
break;case 3:stream.readHex(start,dataSize);stream.readHexNumber(end,dataSize);addHex(end,start,dataSize);code=stream.readNumber();cMap.mapCidRange(hexToInt(start,dataSize),hexToInt(end,dataSize),code);for(let i=1;i<subitemsCount;i++){incHex(end,dataSize);if(!sequence){stream.readHexNumber(start,dataSize);addHex(start,end,dataSize);}else{start.set(end);}
stream.readHexNumber(end,dataSize);addHex(end,start,dataSize);code=stream.readNumber();cMap.mapCidRange(hexToInt(start,dataSize),hexToInt(end,dataSize),code);}
break;case 4:stream.readHex(char,ucs2DataSize);stream.readHex(charCode,dataSize);cMap.mapOne(hexToInt(char,ucs2DataSize),hexToStr(charCode,dataSize));for(let i=1;i<subitemsCount;i++){incHex(char,ucs2DataSize);if(!sequence){stream.readHexNumber(tmp,ucs2DataSize);addHex(char,tmp,ucs2DataSize);}
incHex(charCode,dataSize);stream.readHexSigned(tmp,dataSize);addHex(charCode,tmp,dataSize);cMap.mapOne(hexToInt(char,ucs2DataSize),hexToStr(charCode,dataSize));}
break;case 5:stream.readHex(start,ucs2DataSize);stream.readHexNumber(end,ucs2DataSize);addHex(end,start,ucs2DataSize);stream.readHex(charCode,dataSize);cMap.mapBfRange(hexToInt(start,ucs2DataSize),hexToInt(end,ucs2DataSize),hexToStr(charCode,dataSize));for(let i=1;i<subitemsCount;i++){incHex(end,ucs2DataSize);if(!sequence){stream.readHexNumber(start,ucs2DataSize);addHex(start,end,ucs2DataSize);}else{start.set(end);}
stream.readHexNumber(end,ucs2DataSize);addHex(end,start,ucs2DataSize);stream.readHex(charCode,dataSize);cMap.mapBfRange(hexToInt(start,ucs2DataSize),hexToInt(end,ucs2DataSize),hexToStr(charCode,dataSize));}
break;default:throw new Error(`BinaryCMapReader.process - unknown type: ${type}`);}}
if(useCMap){return extend(useCMap);}
return cMap;}}
return BinaryCMapReader;}();const CMapFactory=function CMapFactoryClosure(){function strToInt(str){let a=0;for(let i=0;i<str.length;i++){a=a<<8|str.charCodeAt(i);}
return a>>>0;}
function expectString(obj){if(typeof obj!=="string"){throw new _util.FormatError("Malformed CMap: expected string.");}}
function expectInt(obj){if(!Number.isInteger(obj)){throw new _util.FormatError("Malformed CMap: expected int.");}}
function parseBfChar(cMap,lexer){while(true){let obj=lexer.getObj();if(obj===_primitives.EOF){break;}
if((0,_primitives.isCmd)(obj,"endbfchar")){return;}
expectString(obj);const src=strToInt(obj);obj=lexer.getObj();expectString(obj);const dst=obj;cMap.mapOne(src,dst);}}
function parseBfRange(cMap,lexer){while(true){let obj=lexer.getObj();if(obj===_primitives.EOF){break;}
if((0,_primitives.isCmd)(obj,"endbfrange")){return;}
expectString(obj);const low=strToInt(obj);obj=lexer.getObj();expectString(obj);const high=strToInt(obj);obj=lexer.getObj();if(Number.isInteger(obj)||typeof obj==="string"){const dstLow=Number.isInteger(obj)?String.fromCharCode(obj):obj;cMap.mapBfRange(low,high,dstLow);}else if((0,_primitives.isCmd)(obj,"[")){obj=lexer.getObj();const array=[];while(!(0,_primitives.isCmd)(obj,"]")&&obj!==_primitives.EOF){array.push(obj);obj=lexer.getObj();}
cMap.mapBfRangeToArray(low,high,array);}else{break;}}
throw new _util.FormatError("Invalid bf range.");}
function parseCidChar(cMap,lexer){while(true){let obj=lexer.getObj();if(obj===_primitives.EOF){break;}
if((0,_primitives.isCmd)(obj,"endcidchar")){return;}
expectString(obj);const src=strToInt(obj);obj=lexer.getObj();expectInt(obj);const dst=obj;cMap.mapOne(src,dst);}}
function parseCidRange(cMap,lexer){while(true){let obj=lexer.getObj();if(obj===_primitives.EOF){break;}
if((0,_primitives.isCmd)(obj,"endcidrange")){return;}
expectString(obj);const low=strToInt(obj);obj=lexer.getObj();expectString(obj);const high=strToInt(obj);obj=lexer.getObj();expectInt(obj);const dstLow=obj;cMap.mapCidRange(low,high,dstLow);}}
function parseCodespaceRange(cMap,lexer){while(true){let obj=lexer.getObj();if(obj===_primitives.EOF){break;}
if((0,_primitives.isCmd)(obj,"endcodespacerange")){return;}
if(typeof obj!=="string"){break;}
const low=strToInt(obj);obj=lexer.getObj();if(typeof obj!=="string"){break;}
const high=strToInt(obj);cMap.addCodespaceRange(obj.length,low,high);}
throw new _util.FormatError("Invalid codespace range.");}
function parseWMode(cMap,lexer){const obj=lexer.getObj();if(Number.isInteger(obj)){cMap.vertical=!!obj;}}
function parseCMapName(cMap,lexer){const obj=lexer.getObj();if(obj instanceof _primitives.Name){cMap.name=obj.name;}}
async function parseCMap(cMap,lexer,fetchBuiltInCMap,useCMap){let previous,embeddedUseCMap;objLoop:while(true){try{const obj=lexer.getObj();if(obj===_primitives.EOF){break;}else if(obj instanceof _primitives.Name){if(obj.name==="WMode"){parseWMode(cMap,lexer);}else if(obj.name==="CMapName"){parseCMapName(cMap,lexer);}
previous=obj;}else if(obj instanceof _primitives.Cmd){switch(obj.cmd){case"endcmap":break objLoop;case"usecmap":if(previous instanceof _primitives.Name){embeddedUseCMap=previous.name;}
break;case"begincodespacerange":parseCodespaceRange(cMap,lexer);break;case"beginbfchar":parseBfChar(cMap,lexer);break;case"begincidchar":parseCidChar(cMap,lexer);break;case"beginbfrange":parseBfRange(cMap,lexer);break;case"begincidrange":parseCidRange(cMap,lexer);break;}}}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)("Invalid cMap data: "+ex);continue;}}
if(!useCMap&&embeddedUseCMap){useCMap=embeddedUseCMap;}
if(useCMap){return extendCMap(cMap,fetchBuiltInCMap,useCMap);}
return cMap;}
async function extendCMap(cMap,fetchBuiltInCMap,useCMap){cMap.useCMap=await createBuiltInCMap(useCMap,fetchBuiltInCMap);if(cMap.numCodespaceRanges===0){const useCodespaceRanges=cMap.useCMap.codespaceRanges;for(let i=0;i<useCodespaceRanges.length;i++){cMap.codespaceRanges[i]=useCodespaceRanges[i].slice();}
cMap.numCodespaceRanges=cMap.useCMap.numCodespaceRanges;}
cMap.useCMap.forEach(function(key,value){if(!cMap.contains(key)){cMap.mapOne(key,cMap.useCMap.lookup(key));}});return cMap;}
async function createBuiltInCMap(name,fetchBuiltInCMap){if(name==="Identity-H"){return new IdentityCMap(false,2);}else if(name==="Identity-V"){return new IdentityCMap(true,2);}
if(!BUILT_IN_CMAPS.includes(name)){throw new Error("Unknown CMap name: "+name);}
if(!fetchBuiltInCMap){throw new Error("Built-in CMap parameters are not provided.");}
const{cMapData,compressionType}=await fetchBuiltInCMap(name);const cMap=new CMap(true);if(compressionType===_util.CMapCompressionType.BINARY){return new BinaryCMapReader().process(cMapData,cMap,useCMap=>{return extendCMap(cMap,fetchBuiltInCMap,useCMap);});}
if(compressionType===_util.CMapCompressionType.NONE){const lexer=new _parser.Lexer(new _stream.Stream(cMapData));return parseCMap(cMap,lexer,fetchBuiltInCMap,null);}
throw new Error("TODO: Only BINARY/NONE CMap compression is currently supported.");}
return{async create(params){const encoding=params.encoding;const fetchBuiltInCMap=params.fetchBuiltInCMap;const useCMap=params.useCMap;if(encoding instanceof _primitives.Name){return createBuiltInCMap(encoding.name,fetchBuiltInCMap);}else if(encoding instanceof _base_stream.BaseStream){const parsedCMap=await parseCMap(new CMap(),new _parser.Lexer(encoding),fetchBuiltInCMap,useCMap);if(parsedCMap.isIdentityCMap){return createBuiltInCMap(parsedCMap.name,fetchBuiltInCMap);}
return parsedCMap;}
throw new Error("Encoding required.");}};}();exports.CMapFactory=CMapFactory;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Parser=exports.Linearization=exports.Lexer=void 0;var _util=__w_pdfjs_require__(2);var _primitives=__w_pdfjs_require__(130);var _core_utils=__w_pdfjs_require__(131);var _ascii_85_stream=__w_pdfjs_require__(143);var _ascii_hex_stream=__w_pdfjs_require__(145);var _ccitt_stream=__w_pdfjs_require__(146);var _flate_stream=__w_pdfjs_require__(148);var _jbig2_stream=__w_pdfjs_require__(149);var _jpeg_stream=__w_pdfjs_require__(152);var _jpx_stream=__w_pdfjs_require__(154);var _lzw_stream=__w_pdfjs_require__(156);var _stream=__w_pdfjs_require__(135);var _predictor_stream=__w_pdfjs_require__(157);var _run_length_stream=__w_pdfjs_require__(158);const MAX_LENGTH_TO_CACHE=1000;const MAX_ADLER32_LENGTH=5552;function computeAdler32(bytes){const bytesLength=bytes.length;let a=1,b=0;for(let i=0;i<bytesLength;++i){a+=bytes[i]&0xff;b+=a;}
return b%65521<<16|a%65521;}
class Parser{constructor(_ref){let{lexer,xref,allowStreams=false,recoveryMode=false}=_ref;this.lexer=lexer;this.xref=xref;this.allowStreams=allowStreams;this.recoveryMode=recoveryMode;this.imageCache=Object.create(null);this.refill();}
refill(){this.buf1=this.lexer.getObj();this.buf2=this.lexer.getObj();}
shift(){if(this.buf2 instanceof _primitives.Cmd&&this.buf2.cmd==="ID"){this.buf1=this.buf2;this.buf2=null;}else{this.buf1=this.buf2;this.buf2=this.lexer.getObj();}}
tryShift(){try{this.shift();return true;}catch(e){if(e instanceof _core_utils.MissingDataException){throw e;}
return false;}}
getObj(){let cipherTransform=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;const buf1=this.buf1;this.shift();if(buf1 instanceof _primitives.Cmd){switch(buf1.cmd){case"BI":return this.makeInlineImage(cipherTransform);case"[":const array=[];while(!(0,_primitives.isCmd)(this.buf1,"]")&&this.buf1!==_primitives.EOF){array.push(this.getObj(cipherTransform));}
if(this.buf1===_primitives.EOF){if(this.recoveryMode){return array;}
throw new _core_utils.ParserEOFException("End of file inside array.");}
this.shift();return array;case"<<":const dict=new _primitives.Dict(this.xref);while(!(0,_primitives.isCmd)(this.buf1,">>")&&this.buf1!==_primitives.EOF){if(!(this.buf1 instanceof _primitives.Name)){(0,_util.info)("Malformed dictionary: key must be a name object");this.shift();continue;}
const key=this.buf1.name;this.shift();if(this.buf1===_primitives.EOF){break;}
dict.set(key,this.getObj(cipherTransform));}
if(this.buf1===_primitives.EOF){if(this.recoveryMode){return dict;}
throw new _core_utils.ParserEOFException("End of file inside dictionary.");}
if((0,_primitives.isCmd)(this.buf2,"stream")){return this.allowStreams?this.makeStream(dict,cipherTransform):dict;}
this.shift();return dict;default:return buf1;}}
if(Number.isInteger(buf1)){if(Number.isInteger(this.buf1)&&(0,_primitives.isCmd)(this.buf2,"R")){const ref=_primitives.Ref.get(buf1,this.buf1);this.shift();this.shift();return ref;}
return buf1;}
if(typeof buf1==="string"){if(cipherTransform){return cipherTransform.decryptString(buf1);}
return buf1;}
return buf1;}
findDefaultInlineStreamEnd(stream){const E=0x45,I=0x49,SPACE=0x20,LF=0xa,CR=0xd,NUL=0x0;const lexer=this.lexer,startPos=stream.pos,n=10;let state=0,ch,maybeEIPos;while((ch=stream.getByte())!==-1){if(state===0){state=ch===E?1:0;}else if(state===1){state=ch===I?2:0;}else{(0,_util.assert)(state===2,"findDefaultInlineStreamEnd - invalid state.");if(ch===SPACE||ch===LF||ch===CR){maybeEIPos=stream.pos;const followingBytes=stream.peekBytes(n);for(let i=0,ii=followingBytes.length;i<ii;i++){ch=followingBytes[i];if(ch===NUL&&followingBytes[i+1]!==NUL){continue;}
if(ch!==LF&&ch!==CR&&(ch<SPACE||ch>0x7f)){state=0;break;}}
if(state!==2){continue;}
if(lexer.knownCommands){const nextObj=lexer.peekObj();if(nextObj instanceof _primitives.Cmd&&!lexer.knownCommands[nextObj.cmd]){state=0;}}else{(0,_util.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");}
if(state===2){break;}}else{state=0;}}}
if(ch===-1){(0,_util.warn)("findDefaultInlineStreamEnd: "+"Reached the end of the stream without finding a valid EI marker");if(maybeEIPos){(0,_util.warn)('... trying to recover by using the last "EI" occurrence.');stream.skip(-(stream.pos-maybeEIPos));}}
let endOffset=4;stream.skip(-endOffset);ch=stream.peekByte();stream.skip(endOffset);if(!(0,_core_utils.isWhiteSpace)(ch)){endOffset--;}
return stream.pos-endOffset-startPos;}
findDCTDecodeInlineStreamEnd(stream){const startPos=stream.pos;let foundEOI=false,b,markerLength;while((b=stream.getByte())!==-1){if(b!==0xff){continue;}
switch(stream.getByte()){case 0x00:break;case 0xff:stream.skip(-1);break;case 0xd9:foundEOI=true;break;case 0xc0:case 0xc1:case 0xc2:case 0xc3:case 0xc5:case 0xc6:case 0xc7:case 0xc9:case 0xca:case 0xcb:case 0xcd:case 0xce:case 0xcf:case 0xc4:case 0xcc:case 0xda:case 0xdb:case 0xdc:case 0xdd:case 0xde:case 0xdf:case 0xe0:case 0xe1:case 0xe2:case 0xe3:case 0xe4:case 0xe5:case 0xe6:case 0xe7:case 0xe8:case 0xe9:case 0xea:case 0xeb:case 0xec:case 0xed:case 0xee:case 0xef:case 0xfe:markerLength=stream.getUint16();if(markerLength>2){stream.skip(markerLength-2);}else{stream.skip(-2);}
break;}
if(foundEOI){break;}}
const length=stream.pos-startPos;if(b===-1){(0,_util.warn)("Inline DCTDecode image stream: "+"EOI marker not found, searching for /EI/ instead.");stream.skip(-length);return this.findDefaultInlineStreamEnd(stream);}
this.inlineStreamSkipEI(stream);return length;}
findASCII85DecodeInlineStreamEnd(stream){const TILDE=0x7e,GT=0x3e;const startPos=stream.pos;let ch;while((ch=stream.getByte())!==-1){if(ch===TILDE){const tildePos=stream.pos;ch=stream.peekByte();while((0,_core_utils.isWhiteSpace)(ch)){stream.skip();ch=stream.peekByte();}
if(ch===GT){stream.skip();break;}
if(stream.pos>tildePos){const maybeEI=stream.peekBytes(2);if(maybeEI[0]===0x45&&maybeEI[1]===0x49){break;}}}}
const length=stream.pos-startPos;if(ch===-1){(0,_util.warn)("Inline ASCII85Decode image stream: "+"EOD marker not found, searching for /EI/ instead.");stream.skip(-length);return this.findDefaultInlineStreamEnd(stream);}
this.inlineStreamSkipEI(stream);return length;}
findASCIIHexDecodeInlineStreamEnd(stream){const GT=0x3e;const startPos=stream.pos;let ch;while((ch=stream.getByte())!==-1){if(ch===GT){break;}}
const length=stream.pos-startPos;if(ch===-1){(0,_util.warn)("Inline ASCIIHexDecode image stream: "+"EOD marker not found, searching for /EI/ instead.");stream.skip(-length);return this.findDefaultInlineStreamEnd(stream);}
this.inlineStreamSkipEI(stream);return length;}
inlineStreamSkipEI(stream){const E=0x45,I=0x49;let state=0,ch;while((ch=stream.getByte())!==-1){if(state===0){state=ch===E?1:0;}else if(state===1){state=ch===I?2:0;}else if(state===2){break;}}}
makeInlineImage(cipherTransform){const lexer=this.lexer;const stream=lexer.stream;const dict=new _primitives.Dict(this.xref);let dictLength;while(!(0,_primitives.isCmd)(this.buf1,"ID")&&this.buf1!==_primitives.EOF){if(!(this.buf1 instanceof _primitives.Name)){throw new _util.FormatError("Dictionary key must be a name object");}
const key=this.buf1.name;this.shift();if(this.buf1===_primitives.EOF){break;}
dict.set(key,this.getObj(cipherTransform));}
if(lexer.beginInlineImagePos!==-1){dictLength=stream.pos-lexer.beginInlineImagePos;}
const filter=dict.get("F","Filter");let filterName;if(filter instanceof _primitives.Name){filterName=filter.name;}else if(Array.isArray(filter)){const filterZero=this.xref.fetchIfRef(filter[0]);if(filterZero instanceof _primitives.Name){filterName=filterZero.name;}}
const startPos=stream.pos;let length;switch(filterName){case"DCT":case"DCTDecode":length=this.findDCTDecodeInlineStreamEnd(stream);break;case"A85":case"ASCII85Decode":length=this.findASCII85DecodeInlineStreamEnd(stream);break;case"AHx":case"ASCIIHexDecode":length=this.findASCIIHexDecodeInlineStreamEnd(stream);break;default:length=this.findDefaultInlineStreamEnd(stream);}
let imageStream=stream.makeSubStream(startPos,length,dict);let cacheKey;if(length<MAX_LENGTH_TO_CACHE&&dictLength<MAX_ADLER32_LENGTH){const imageBytes=imageStream.getBytes();imageStream.reset();const initialStreamPos=stream.pos;stream.pos=lexer.beginInlineImagePos;const dictBytes=stream.getBytes(dictLength);stream.pos=initialStreamPos;cacheKey=computeAdler32(imageBytes)+"_"+computeAdler32(dictBytes);const cacheEntry=this.imageCache[cacheKey];if(cacheEntry!==undefined){this.buf2=_primitives.Cmd.get("EI");this.shift();cacheEntry.reset();return cacheEntry;}}
if(cipherTransform){imageStream=cipherTransform.createStream(imageStream,length);}
imageStream=this.filter(imageStream,dict,length);imageStream.dict=dict;if(cacheKey!==undefined){imageStream.cacheKey=`inline_${length}_${cacheKey}`;this.imageCache[cacheKey]=imageStream;}
this.buf2=_primitives.Cmd.get("EI");this.shift();return imageStream;}
_findStreamLength(startPos,signature){const{stream}=this.lexer;stream.pos=startPos;const SCAN_BLOCK_LENGTH=2048;const signatureLength=signature.length;while(stream.pos<stream.end){const scanBytes=stream.peekBytes(SCAN_BLOCK_LENGTH);const scanLength=scanBytes.length-signatureLength;if(scanLength<=0){break;}
let pos=0;while(pos<scanLength){let j=0;while(j<signatureLength&&scanBytes[pos+j]===signature[j]){j++;}
if(j>=signatureLength){stream.pos+=pos;return stream.pos-startPos;}
pos++;}
stream.pos+=scanLength;}
return-1;}
makeStream(dict,cipherTransform){const lexer=this.lexer;let stream=lexer.stream;lexer.skipToNextLine();const startPos=stream.pos-1;let length=dict.get("Length");if(!Number.isInteger(length)){(0,_util.info)(`Bad length "${length && length.toString()}" in stream.`);length=0;}
stream.pos=startPos+length;lexer.nextChar();if(this.tryShift()&&(0,_primitives.isCmd)(this.buf2,"endstream")){this.shift();}else{const ENDSTREAM_SIGNATURE=new Uint8Array([0x65,0x6e,0x64,0x73,0x74,0x72,0x65,0x61,0x6d]);let actualLength=this._findStreamLength(startPos,ENDSTREAM_SIGNATURE);if(actualLength<0){const MAX_TRUNCATION=1;for(let i=1;i<=MAX_TRUNCATION;i++){const end=ENDSTREAM_SIGNATURE.length-i;const TRUNCATED_SIGNATURE=ENDSTREAM_SIGNATURE.slice(0,end);const maybeLength=this._findStreamLength(startPos,TRUNCATED_SIGNATURE);if(maybeLength>=0){const lastByte=stream.peekBytes(end+1)[end];if(!(0,_core_utils.isWhiteSpace)(lastByte)){break;}
(0,_util.info)(`Found "${(0, _util.bytesToString)(TRUNCATED_SIGNATURE)}" when `+"searching for endstream command.");actualLength=maybeLength;break;}}
if(actualLength<0){throw new _util.FormatError("Missing endstream command.");}}
length=actualLength;lexer.nextChar();this.shift();this.shift();}
this.shift();stream=stream.makeSubStream(startPos,length,dict);if(cipherTransform){stream=cipherTransform.createStream(stream,length);}
stream=this.filter(stream,dict,length);stream.dict=dict;return stream;}
filter(stream,dict,length){let filter=dict.get("F","Filter");let params=dict.get("DP","DecodeParms");if(filter instanceof _primitives.Name){if(Array.isArray(params)){(0,_util.warn)("/DecodeParms should not be an Array, when /Filter is a Name.");}
return this.makeFilter(stream,filter.name,length,params);}
let maybeLength=length;if(Array.isArray(filter)){const filterArray=filter;const paramsArray=params;for(let i=0,ii=filterArray.length;i<ii;++i){filter=this.xref.fetchIfRef(filterArray[i]);if(!(filter instanceof _primitives.Name)){throw new _util.FormatError(`Bad filter name "${filter}"`);}
params=null;if(Array.isArray(paramsArray)&&i in paramsArray){params=this.xref.fetchIfRef(paramsArray[i]);}
stream=this.makeFilter(stream,filter.name,maybeLength,params);maybeLength=null;}}
return stream;}
makeFilter(stream,name,maybeLength,params){if(maybeLength===0){(0,_util.warn)(`Empty "${name}" stream.`);return new _stream.NullStream();}
const xrefStats=this.xref.stats;try{switch(name){case"Fl":case"FlateDecode":xrefStats.addStreamType(_util.StreamType.FLATE);if(params){return new _predictor_stream.PredictorStream(new _flate_stream.FlateStream(stream,maybeLength),maybeLength,params);}
return new _flate_stream.FlateStream(stream,maybeLength);case"LZW":case"LZWDecode":xrefStats.addStreamType(_util.StreamType.LZW);let earlyChange=1;if(params){if(params.has("EarlyChange")){earlyChange=params.get("EarlyChange");}
return new _predictor_stream.PredictorStream(new _lzw_stream.LZWStream(stream,maybeLength,earlyChange),maybeLength,params);}
return new _lzw_stream.LZWStream(stream,maybeLength,earlyChange);case"DCT":case"DCTDecode":xrefStats.addStreamType(_util.StreamType.DCT);return new _jpeg_stream.JpegStream(stream,maybeLength,params);case"JPX":case"JPXDecode":xrefStats.addStreamType(_util.StreamType.JPX);return new _jpx_stream.JpxStream(stream,maybeLength,params);case"A85":case"ASCII85Decode":xrefStats.addStreamType(_util.StreamType.A85);return new _ascii_85_stream.Ascii85Stream(stream,maybeLength);case"AHx":case"ASCIIHexDecode":xrefStats.addStreamType(_util.StreamType.AHX);return new _ascii_hex_stream.AsciiHexStream(stream,maybeLength);case"CCF":case"CCITTFaxDecode":xrefStats.addStreamType(_util.StreamType.CCF);return new _ccitt_stream.CCITTFaxStream(stream,maybeLength,params);case"RL":case"RunLengthDecode":xrefStats.addStreamType(_util.StreamType.RLX);return new _run_length_stream.RunLengthStream(stream,maybeLength);case"JBIG2Decode":xrefStats.addStreamType(_util.StreamType.JBIG);return new _jbig2_stream.Jbig2Stream(stream,maybeLength,params);}
(0,_util.warn)(`Filter "${name}" is not supported.`);return stream;}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)(`Invalid stream: "${ex}"`);return new _stream.NullStream();}}}
exports.Parser=Parser;const specialChars=[1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function toHexDigit(ch){if(ch>=0x30&&ch<=0x39){return ch&0x0f;}
if(ch>=0x41&&ch<=0x46||ch>=0x61&&ch<=0x66){return(ch&0x0f)+9;}
return-1;}
class Lexer{constructor(stream){let knownCommands=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;this.stream=stream;this.nextChar();this.strBuf=[];this.knownCommands=knownCommands;this._hexStringNumWarn=0;this.beginInlineImagePos=-1;}
nextChar(){return this.currentChar=this.stream.getByte();}
peekChar(){return this.stream.peekByte();}
getNumber(){let ch=this.currentChar;let eNotation=false;let divideBy=0;let sign=0;if(ch===0x2d){sign=-1;ch=this.nextChar();if(ch===0x2d){ch=this.nextChar();}}else if(ch===0x2b){sign=1;ch=this.nextChar();}
if(ch===0x0a||ch===0x0d){do{ch=this.nextChar();}while(ch===0x0a||ch===0x0d);}
if(ch===0x2e){divideBy=10;ch=this.nextChar();}
if(ch<0x30||ch>0x39){if((0,_core_utils.isWhiteSpace)(ch)||ch===-1){if(divideBy===10&&sign===0){(0,_util.warn)("Lexer.getNumber - treating a single decimal point as zero.");return 0;}
if(divideBy===0&&sign===-1){(0,_util.warn)("Lexer.getNumber - treating a single minus sign as zero.");return 0;}}
throw new _util.FormatError(`Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`);}
sign=sign||1;let baseValue=ch-0x30;let powerValue=0;let powerValueSign=1;while((ch=this.nextChar())>=0){if(ch>=0x30&&ch<=0x39){const currentDigit=ch-0x30;if(eNotation){powerValue=powerValue*10+currentDigit;}else{if(divideBy!==0){divideBy*=10;}
baseValue=baseValue*10+currentDigit;}}else if(ch===0x2e){if(divideBy===0){divideBy=1;}else{break;}}else if(ch===0x2d){(0,_util.warn)("Badly formatted number: minus sign in the middle");}else if(ch===0x45||ch===0x65){ch=this.peekChar();if(ch===0x2b||ch===0x2d){powerValueSign=ch===0x2d?-1:1;this.nextChar();}else if(ch<0x30||ch>0x39){break;}
eNotation=true;}else{break;}}
if(divideBy!==0){baseValue/=divideBy;}
if(eNotation){baseValue*=10**(powerValueSign*powerValue);}
return sign*baseValue;}
getString(){let numParen=1;let done=false;const strBuf=this.strBuf;strBuf.length=0;let ch=this.nextChar();while(true){let charBuffered=false;switch(ch|0){case-1:(0,_util.warn)("Unterminated string");done=true;break;case 0x28:++numParen;strBuf.push("(");break;case 0x29:if(--numParen===0){this.nextChar();done=true;}else{strBuf.push(")");}
break;case 0x5c:ch=this.nextChar();switch(ch){case-1:(0,_util.warn)("Unterminated string");done=true;break;case 0x6e:strBuf.push("\n");break;case 0x72:strBuf.push("\r");break;case 0x74:strBuf.push("\t");break;case 0x62:strBuf.push("\b");break;case 0x66:strBuf.push("\f");break;case 0x5c:case 0x28:case 0x29:strBuf.push(String.fromCharCode(ch));break;case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36:case 0x37:let x=ch&0x0f;ch=this.nextChar();charBuffered=true;if(ch>=0x30&&ch<=0x37){x=(x<<3)+(ch&0x0f);ch=this.nextChar();if(ch>=0x30&&ch<=0x37){charBuffered=false;x=(x<<3)+(ch&0x0f);}}
strBuf.push(String.fromCharCode(x));break;case 0x0d:if(this.peekChar()===0x0a){this.nextChar();}
break;case 0x0a:break;default:strBuf.push(String.fromCharCode(ch));break;}
break;default:strBuf.push(String.fromCharCode(ch));break;}
if(done){break;}
if(!charBuffered){ch=this.nextChar();}}
return strBuf.join("");}
getName(){let ch,previousCh;const strBuf=this.strBuf;strBuf.length=0;while((ch=this.nextChar())>=0&&!specialChars[ch]){if(ch===0x23){ch=this.nextChar();if(specialChars[ch]){(0,_util.warn)("Lexer_getName: "+"NUMBER SIGN (#) should be followed by a hexadecimal number.");strBuf.push("#");break;}
const x=toHexDigit(ch);if(x!==-1){previousCh=ch;ch=this.nextChar();const x2=toHexDigit(ch);if(x2===-1){(0,_util.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) `+"in hexadecimal number.");strBuf.push("#",String.fromCharCode(previousCh));if(specialChars[ch]){break;}
strBuf.push(String.fromCharCode(ch));continue;}
strBuf.push(String.fromCharCode(x<<4|x2));}else{strBuf.push("#",String.fromCharCode(ch));}}else{strBuf.push(String.fromCharCode(ch));}}
if(strBuf.length>127){(0,_util.warn)(`Name token is longer than allowed by the spec: ${strBuf.length}`);}
return _primitives.Name.get(strBuf.join(""));}
_hexStringWarn(ch){const MAX_HEX_STRING_NUM_WARN=5;if(this._hexStringNumWarn++===MAX_HEX_STRING_NUM_WARN){(0,_util.warn)("getHexString - ignoring additional invalid characters.");return;}
if(this._hexStringNumWarn>MAX_HEX_STRING_NUM_WARN){return;}
(0,_util.warn)(`getHexString - ignoring invalid character: ${ch}`);}
getHexString(){const strBuf=this.strBuf;strBuf.length=0;let ch=this.currentChar;let isFirstHex=true;let firstDigit,secondDigit;this._hexStringNumWarn=0;while(true){if(ch<0){(0,_util.warn)("Unterminated hex string");break;}else if(ch===0x3e){this.nextChar();break;}else if(specialChars[ch]===1){ch=this.nextChar();continue;}else{if(isFirstHex){firstDigit=toHexDigit(ch);if(firstDigit===-1){this._hexStringWarn(ch);ch=this.nextChar();continue;}}else{secondDigit=toHexDigit(ch);if(secondDigit===-1){this._hexStringWarn(ch);ch=this.nextChar();continue;}
strBuf.push(String.fromCharCode(firstDigit<<4|secondDigit));}
isFirstHex=!isFirstHex;ch=this.nextChar();}}
return strBuf.join("");}
getObj(){let comment=false;let ch=this.currentChar;while(true){if(ch<0){return _primitives.EOF;}
if(comment){if(ch===0x0a||ch===0x0d){comment=false;}}else if(ch===0x25){comment=true;}else if(specialChars[ch]!==1){break;}
ch=this.nextChar();}
switch(ch|0){case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36:case 0x37:case 0x38:case 0x39:case 0x2b:case 0x2d:case 0x2e:return this.getNumber();case 0x28:return this.getString();case 0x2f:return this.getName();case 0x5b:this.nextChar();return _primitives.Cmd.get("[");case 0x5d:this.nextChar();return _primitives.Cmd.get("]");case 0x3c:ch=this.nextChar();if(ch===0x3c){this.nextChar();return _primitives.Cmd.get("<<");}
return this.getHexString();case 0x3e:ch=this.nextChar();if(ch===0x3e){this.nextChar();return _primitives.Cmd.get(">>");}
return _primitives.Cmd.get(">");case 0x7b:this.nextChar();return _primitives.Cmd.get("{");case 0x7d:this.nextChar();return _primitives.Cmd.get("}");case 0x29:this.nextChar();throw new _util.FormatError(`Illegal character: ${ch}`);}
let str=String.fromCharCode(ch);if(ch<0x20||ch>0x7f){const nextCh=this.peekChar();if(nextCh>=0x20&&nextCh<=0x7f){this.nextChar();return _primitives.Cmd.get(str);}}
const knownCommands=this.knownCommands;let knownCommandFound=knownCommands&&knownCommands[str]!==undefined;while((ch=this.nextChar())>=0&&!specialChars[ch]){const possibleCommand=str+String.fromCharCode(ch);if(knownCommandFound&&knownCommands[possibleCommand]===undefined){break;}
if(str.length===128){throw new _util.FormatError(`Command token too long: ${str.length}`);}
str=possibleCommand;knownCommandFound=knownCommands&&knownCommands[str]!==undefined;}
if(str==="true"){return true;}
if(str==="false"){return false;}
if(str==="null"){return null;}
if(str==="BI"){this.beginInlineImagePos=this.stream.pos;}
return _primitives.Cmd.get(str);}
peekObj(){const streamPos=this.stream.pos,currentChar=this.currentChar,beginInlineImagePos=this.beginInlineImagePos;let nextObj;try{nextObj=this.getObj();}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)(`peekObj: ${ex}`);}
this.stream.pos=streamPos;this.currentChar=currentChar;this.beginInlineImagePos=beginInlineImagePos;return nextObj;}
skipToNextLine(){let ch=this.currentChar;while(ch>=0){if(ch===0x0d){ch=this.nextChar();if(ch===0x0a){this.nextChar();}
break;}else if(ch===0x0a){this.nextChar();break;}
ch=this.nextChar();}}}
exports.Lexer=Lexer;class Linearization{static create(stream){function getInt(linDict,name){let allowZeroValue=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;const obj=linDict.get(name);if(Number.isInteger(obj)&&(allowZeroValue?obj>=0:obj>0)){return obj;}
throw new Error(`The "${name}" parameter in the linearization `+"dictionary is invalid.");}
function getHints(linDict){const hints=linDict.get("H");let hintsLength;if(Array.isArray(hints)&&((hintsLength=hints.length)===2||hintsLength===4)){for(let index=0;index<hintsLength;index++){const hint=hints[index];if(!(Number.isInteger(hint)&&hint>0)){throw new Error(`Hint (${index}) in the linearization dictionary is invalid.`);}}
return hints;}
throw new Error("Hint array in the linearization dictionary is invalid.");}
const parser=new Parser({lexer:new Lexer(stream),xref:null});const obj1=parser.getObj();const obj2=parser.getObj();const obj3=parser.getObj();const linDict=parser.getObj();let obj,length;if(!(Number.isInteger(obj1)&&Number.isInteger(obj2)&&(0,_primitives.isCmd)(obj3,"obj")&&linDict instanceof _primitives.Dict&&typeof(obj=linDict.get("Linearized"))==="number"&&obj>0)){return null;}else if((length=getInt(linDict,"L"))!==stream.length){throw new Error('The "L" parameter in the linearization dictionary '+"does not equal the stream length.");}
return{length,hints:getHints(linDict),objectNumberFirst:getInt(linDict,"O"),endFirst:getInt(linDict,"E"),numPages:getInt(linDict,"N"),mainXRefEntriesOffset:getInt(linDict,"T"),pageFirst:linDict.has("P")?getInt(linDict,"P",true):0};}}
exports.Linearization=Linearization;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Ascii85Stream=void 0;var _decode_stream=__w_pdfjs_require__(144);var _core_utils=__w_pdfjs_require__(131);class Ascii85Stream extends _decode_stream.DecodeStream{constructor(str,maybeLength){if(maybeLength){maybeLength*=0.8;}
super(maybeLength);this.str=str;this.dict=str.dict;this.input=new Uint8Array(5);}
readBlock(){const TILDA_CHAR=0x7e;const Z_LOWER_CHAR=0x7a;const EOF=-1;const str=this.str;let c=str.getByte();while((0,_core_utils.isWhiteSpace)(c)){c=str.getByte();}
if(c===EOF||c===TILDA_CHAR){this.eof=true;return;}
const bufferLength=this.bufferLength;let buffer,i;if(c===Z_LOWER_CHAR){buffer=this.ensureBuffer(bufferLength+4);for(i=0;i<4;++i){buffer[bufferLength+i]=0;}
this.bufferLength+=4;}else{const input=this.input;input[0]=c;for(i=1;i<5;++i){c=str.getByte();while((0,_core_utils.isWhiteSpace)(c)){c=str.getByte();}
input[i]=c;if(c===EOF||c===TILDA_CHAR){break;}}
buffer=this.ensureBuffer(bufferLength+i-1);this.bufferLength+=i-1;if(i<5){for(;i<5;++i){input[i]=0x21+84;}
this.eof=true;}
let t=0;for(i=0;i<5;++i){t=t*85+(input[i]-0x21);}
for(i=3;i>=0;--i){buffer[bufferLength+i]=t&0xff;t>>=8;}}}}
exports.Ascii85Stream=Ascii85Stream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.StreamsSequenceStream=exports.DecodeStream=void 0;var _base_stream=__w_pdfjs_require__(132);var _stream=__w_pdfjs_require__(135);const emptyBuffer=new Uint8Array(0);class DecodeStream extends _base_stream.BaseStream{constructor(maybeMinBufferLength){super();this._rawMinBufferLength=maybeMinBufferLength||0;this.pos=0;this.bufferLength=0;this.eof=false;this.buffer=emptyBuffer;this.minBufferLength=512;if(maybeMinBufferLength){while(this.minBufferLength<maybeMinBufferLength){this.minBufferLength*=2;}}}
get isEmpty(){while(!this.eof&&this.bufferLength===0){this.readBlock();}
return this.bufferLength===0;}
ensureBuffer(requested){const buffer=this.buffer;if(requested<=buffer.byteLength){return buffer;}
let size=this.minBufferLength;while(size<requested){size*=2;}
const buffer2=new Uint8Array(size);buffer2.set(buffer);return this.buffer=buffer2;}
getByte(){const pos=this.pos;while(this.bufferLength<=pos){if(this.eof){return-1;}
this.readBlock();}
return this.buffer[this.pos++];}
getBytes(length){const pos=this.pos;let end;if(length){this.ensureBuffer(pos+length);end=pos+length;while(!this.eof&&this.bufferLength<end){this.readBlock();}
const bufEnd=this.bufferLength;if(end>bufEnd){end=bufEnd;}}else{while(!this.eof){this.readBlock();}
end=this.bufferLength;}
this.pos=end;return this.buffer.subarray(pos,end);}
reset(){this.pos=0;}
makeSubStream(start,length){let dict=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(length===undefined){while(!this.eof){this.readBlock();}}else{const end=start+length;while(this.bufferLength<=end&&!this.eof){this.readBlock();}}
return new _stream.Stream(this.buffer,start,length,dict);}
getBaseStreams(){return this.str?this.str.getBaseStreams():null;}}
exports.DecodeStream=DecodeStream;class StreamsSequenceStream extends DecodeStream{constructor(streams){let onError=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;let maybeLength=0;for(const stream of streams){maybeLength+=stream instanceof DecodeStream?stream._rawMinBufferLength:stream.length;}
super(maybeLength);this.streams=streams;this._onError=onError;}
readBlock(){const streams=this.streams;if(streams.length===0){this.eof=true;return;}
const stream=streams.shift();let chunk;try{chunk=stream.getBytes();}catch(reason){if(this._onError){this._onError(reason,stream.dict&&stream.dict.objId);return;}
throw reason;}
const bufferLength=this.bufferLength;const newLength=bufferLength+chunk.length;const buffer=this.ensureBuffer(newLength);buffer.set(chunk,bufferLength);this.bufferLength=newLength;}
getBaseStreams(){const baseStreamsBuf=[];for(const stream of this.streams){const baseStreams=stream.getBaseStreams();if(baseStreams){baseStreamsBuf.push(...baseStreams);}}
return baseStreamsBuf.length>0?baseStreamsBuf:null;}}
exports.StreamsSequenceStream=StreamsSequenceStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.AsciiHexStream=void 0;var _decode_stream=__w_pdfjs_require__(144);class AsciiHexStream extends _decode_stream.DecodeStream{constructor(str,maybeLength){if(maybeLength){maybeLength*=0.5;}
super(maybeLength);this.str=str;this.dict=str.dict;this.firstDigit=-1;}
readBlock(){const UPSTREAM_BLOCK_SIZE=8000;const bytes=this.str.getBytes(UPSTREAM_BLOCK_SIZE);if(!bytes.length){this.eof=true;return;}
const maxDecodeLength=bytes.length+1>>1;const buffer=this.ensureBuffer(this.bufferLength+maxDecodeLength);let bufferLength=this.bufferLength;let firstDigit=this.firstDigit;for(const ch of bytes){let digit;if(ch>=0x30&&ch<=0x39){digit=ch&0x0f;}else if(ch>=0x41&&ch<=0x46||ch>=0x61&&ch<=0x66){digit=(ch&0x0f)+9;}else if(ch===0x3e){this.eof=true;break;}else{continue;}
if(firstDigit<0){firstDigit=digit;}else{buffer[bufferLength++]=firstDigit<<4|digit;firstDigit=-1;}}
if(firstDigit>=0&&this.eof){buffer[bufferLength++]=firstDigit<<4;firstDigit=-1;}
this.firstDigit=firstDigit;this.bufferLength=bufferLength;}}
exports.AsciiHexStream=AsciiHexStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.CCITTFaxStream=void 0;var _ccitt=__w_pdfjs_require__(147);var _decode_stream=__w_pdfjs_require__(144);var _primitives=__w_pdfjs_require__(130);class CCITTFaxStream extends _decode_stream.DecodeStream{constructor(str,maybeLength,params){super(maybeLength);this.str=str;this.dict=str.dict;if(!(params instanceof _primitives.Dict)){params=_primitives.Dict.empty;}
const source={next(){return str.getByte();}};this.ccittFaxDecoder=new _ccitt.CCITTFaxDecoder(source,{K:params.get("K"),EndOfLine:params.get("EndOfLine"),EncodedByteAlign:params.get("EncodedByteAlign"),Columns:params.get("Columns"),Rows:params.get("Rows"),EndOfBlock:params.get("EndOfBlock"),BlackIs1:params.get("BlackIs1")});}
readBlock(){while(!this.eof){const c=this.ccittFaxDecoder.readNextChar();if(c===-1){this.eof=true;return;}
this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=c;}}}
exports.CCITTFaxStream=CCITTFaxStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.CCITTFaxDecoder=void 0;var _util=__w_pdfjs_require__(2);const ccittEOL=-2;const ccittEOF=-1;const twoDimPass=0;const twoDimHoriz=1;const twoDimVert0=2;const twoDimVertR1=3;const twoDimVertL1=4;const twoDimVertR2=5;const twoDimVertL2=6;const twoDimVertR3=7;const twoDimVertL3=8;const twoDimTable=[[-1,-1],[-1,-1],[7,twoDimVertL3],[7,twoDimVertR3],[6,twoDimVertL2],[6,twoDimVertL2],[6,twoDimVertR2],[6,twoDimVertR2],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0]];const whiteTable1=[[-1,-1],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]];const whiteTable2=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]];const blackTable1=[[-1,-1],[-1,-1],[12,ccittEOL],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]];const blackTable2=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]];const blackTable3=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];class CCITTFaxDecoder{constructor(source){let options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(!source||typeof source.next!=="function"){throw new Error('CCITTFaxDecoder - invalid "source" parameter.');}
this.source=source;this.eof=false;this.encoding=options.K||0;this.eoline=options.EndOfLine||false;this.byteAlign=options.EncodedByteAlign||false;this.columns=options.Columns||1728;this.rows=options.Rows||0;let eoblock=options.EndOfBlock;if(eoblock===null||eoblock===undefined){eoblock=true;}
this.eoblock=eoblock;this.black=options.BlackIs1||false;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=false;let code1;while((code1=this._lookBits(12))===0){this._eatBits(1);}
if(code1===1){this._eatBits(12);}
if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1);}}
readNextChar(){if(this.eof){return-1;}
const refLine=this.refLine;const codingLine=this.codingLine;const columns=this.columns;let refPos,blackPixels,bits,i;if(this.outputBits===0){if(this.rowsDone){this.eof=true;}
if(this.eof){return-1;}
this.err=false;let code1,code2,code3;if(this.nextLine2D){for(i=0;codingLine[i]<columns;++i){refLine[i]=codingLine[i];}
refLine[i++]=columns;refLine[i]=columns;codingLine[0]=0;this.codingPos=0;refPos=0;blackPixels=0;while(codingLine[this.codingPos]<columns){code1=this._getTwoDimCode();switch(code1){case twoDimPass:this._addPixels(refLine[refPos+1],blackPixels);if(refLine[refPos+1]<columns){refPos+=2;}
break;case twoDimHoriz:code1=code2=0;if(blackPixels){do{code1+=code3=this._getBlackCode();}while(code3>=64);do{code2+=code3=this._getWhiteCode();}while(code3>=64);}else{do{code1+=code3=this._getWhiteCode();}while(code3>=64);do{code2+=code3=this._getBlackCode();}while(code3>=64);}
this._addPixels(codingLine[this.codingPos]+code1,blackPixels);if(codingLine[this.codingPos]<columns){this._addPixels(codingLine[this.codingPos]+code2,blackPixels^1);}
while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns){refPos+=2;}
break;case twoDimVertR3:this._addPixels(refLine[refPos]+3,blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){++refPos;while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns){refPos+=2;}}
break;case twoDimVertR2:this._addPixels(refLine[refPos]+2,blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){++refPos;while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns){refPos+=2;}}
break;case twoDimVertR1:this._addPixels(refLine[refPos]+1,blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){++refPos;while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns){refPos+=2;}}
break;case twoDimVert0:this._addPixels(refLine[refPos],blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){++refPos;while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns){refPos+=2;}}
break;case twoDimVertL3:this._addPixelsNeg(refLine[refPos]-3,blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){if(refPos>0){--refPos;}else{++refPos;}
while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns){refPos+=2;}}
break;case twoDimVertL2:this._addPixelsNeg(refLine[refPos]-2,blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){if(refPos>0){--refPos;}else{++refPos;}
while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns){refPos+=2;}}
break;case twoDimVertL1:this._addPixelsNeg(refLine[refPos]-1,blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){if(refPos>0){--refPos;}else{++refPos;}
while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns){refPos+=2;}}
break;case ccittEOF:this._addPixels(columns,0);this.eof=true;break;default:(0,_util.info)("bad 2d code");this._addPixels(columns,0);this.err=true;}}}else{codingLine[0]=0;this.codingPos=0;blackPixels=0;while(codingLine[this.codingPos]<columns){code1=0;if(blackPixels){do{code1+=code3=this._getBlackCode();}while(code3>=64);}else{do{code1+=code3=this._getWhiteCode();}while(code3>=64);}
this._addPixels(codingLine[this.codingPos]+code1,blackPixels);blackPixels^=1;}}
let gotEOL=false;if(this.byteAlign){this.inputBits&=~7;}
if(!this.eoblock&&this.row===this.rows-1){this.rowsDone=true;}else{code1=this._lookBits(12);if(this.eoline){while(code1!==ccittEOF&&code1!==1){this._eatBits(1);code1=this._lookBits(12);}}else{while(code1===0){this._eatBits(1);code1=this._lookBits(12);}}
if(code1===1){this._eatBits(12);gotEOL=true;}else if(code1===ccittEOF){this.eof=true;}}
if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1);}
if(this.eoblock&&gotEOL&&this.byteAlign){code1=this._lookBits(12);if(code1===1){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1);}
if(this.encoding>=0){for(i=0;i<4;++i){code1=this._lookBits(12);if(code1!==1){(0,_util.info)("bad rtc code: "+code1);}
this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1);}}}
this.eof=true;}}else if(this.err&&this.eoline){while(true){code1=this._lookBits(13);if(code1===ccittEOF){this.eof=true;return-1;}
if(code1>>1===1){break;}
this._eatBits(1);}
this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(code1&1);}}
if(codingLine[0]>0){this.outputBits=codingLine[this.codingPos=0];}else{this.outputBits=codingLine[this.codingPos=1];}
this.row++;}
let c;if(this.outputBits>=8){c=this.codingPos&1?0:0xff;this.outputBits-=8;if(this.outputBits===0&&codingLine[this.codingPos]<columns){this.codingPos++;this.outputBits=codingLine[this.codingPos]-codingLine[this.codingPos-1];}}else{bits=8;c=0;do{if(typeof this.outputBits!=="number"){throw new _util.FormatError('Invalid /CCITTFaxDecode data, "outputBits" must be a number.');}
if(this.outputBits>bits){c<<=bits;if(!(this.codingPos&1)){c|=0xff>>8-bits;}
this.outputBits-=bits;bits=0;}else{c<<=this.outputBits;if(!(this.codingPos&1)){c|=0xff>>8-this.outputBits;}
bits-=this.outputBits;this.outputBits=0;if(codingLine[this.codingPos]<columns){this.codingPos++;this.outputBits=codingLine[this.codingPos]-codingLine[this.codingPos-1];}else if(bits>0){c<<=bits;bits=0;}}}while(bits);}
if(this.black){c^=0xff;}
return c;}
_addPixels(a1,blackPixels){const codingLine=this.codingLine;let codingPos=this.codingPos;if(a1>codingLine[codingPos]){if(a1>this.columns){(0,_util.info)("row is wrong length");this.err=true;a1=this.columns;}
if(codingPos&1^blackPixels){++codingPos;}
codingLine[codingPos]=a1;}
this.codingPos=codingPos;}
_addPixelsNeg(a1,blackPixels){const codingLine=this.codingLine;let codingPos=this.codingPos;if(a1>codingLine[codingPos]){if(a1>this.columns){(0,_util.info)("row is wrong length");this.err=true;a1=this.columns;}
if(codingPos&1^blackPixels){++codingPos;}
codingLine[codingPos]=a1;}else if(a1<codingLine[codingPos]){if(a1<0){(0,_util.info)("invalid code");this.err=true;a1=0;}
while(codingPos>0&&a1<codingLine[codingPos-1]){--codingPos;}
codingLine[codingPos]=a1;}
this.codingPos=codingPos;}
_findTableCode(start,end,table,limit){const limitValue=limit||0;for(let i=start;i<=end;++i){let code=this._lookBits(i);if(code===ccittEOF){return[true,1,false];}
if(i<end){code<<=end-i;}
if(!limitValue||code>=limitValue){const p=table[code-limitValue];if(p[0]===i){this._eatBits(i);return[true,p[1],true];}}}
return[false,0,false];}
_getTwoDimCode(){let code=0;let p;if(this.eoblock){code=this._lookBits(7);p=twoDimTable[code];if(p&&p[0]>0){this._eatBits(p[0]);return p[1];}}else{const result=this._findTableCode(1,7,twoDimTable);if(result[0]&&result[2]){return result[1];}}
(0,_util.info)("Bad two dim code");return ccittEOF;}
_getWhiteCode(){let code=0;let p;if(this.eoblock){code=this._lookBits(12);if(code===ccittEOF){return 1;}
if(code>>5===0){p=whiteTable1[code];}else{p=whiteTable2[code>>3];}
if(p[0]>0){this._eatBits(p[0]);return p[1];}}else{let result=this._findTableCode(1,9,whiteTable2);if(result[0]){return result[1];}
result=this._findTableCode(11,12,whiteTable1);if(result[0]){return result[1];}}
(0,_util.info)("bad white code");this._eatBits(1);return 1;}
_getBlackCode(){let code,p;if(this.eoblock){code=this._lookBits(13);if(code===ccittEOF){return 1;}
if(code>>7===0){p=blackTable1[code];}else if(code>>9===0&&code>>7!==0){p=blackTable2[(code>>1)-64];}else{p=blackTable3[code>>7];}
if(p[0]>0){this._eatBits(p[0]);return p[1];}}else{let result=this._findTableCode(2,6,blackTable3);if(result[0]){return result[1];}
result=this._findTableCode(7,12,blackTable2,64);if(result[0]){return result[1];}
result=this._findTableCode(10,13,blackTable1);if(result[0]){return result[1];}}
(0,_util.info)("bad black code");this._eatBits(1);return 1;}
_lookBits(n){let c;while(this.inputBits<n){if((c=this.source.next())===-1){if(this.inputBits===0){return ccittEOF;}
return this.inputBuf<<n-this.inputBits&0xffff>>16-n;}
this.inputBuf=this.inputBuf<<8|c;this.inputBits+=8;}
return this.inputBuf>>this.inputBits-n&0xffff>>16-n;}
_eatBits(n){if((this.inputBits-=n)<0){this.inputBits=0;}}}
exports.CCITTFaxDecoder=CCITTFaxDecoder;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.FlateStream=void 0;var _decode_stream=__w_pdfjs_require__(144);var _util=__w_pdfjs_require__(2);const codeLenCodeMap=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);const lengthDecode=new Int32Array([0x00003,0x00004,0x00005,0x00006,0x00007,0x00008,0x00009,0x0000a,0x1000b,0x1000d,0x1000f,0x10011,0x20013,0x20017,0x2001b,0x2001f,0x30023,0x3002b,0x30033,0x3003b,0x40043,0x40053,0x40063,0x40073,0x50083,0x500a3,0x500c3,0x500e3,0x00102,0x00102,0x00102]);const distDecode=new Int32Array([0x00001,0x00002,0x00003,0x00004,0x10005,0x10007,0x20009,0x2000d,0x30011,0x30019,0x40021,0x40031,0x50041,0x50061,0x60081,0x600c1,0x70101,0x70181,0x80201,0x80301,0x90401,0x90601,0xa0801,0xa0c01,0xb1001,0xb1801,0xc2001,0xc3001,0xd4001,0xd6001]);const fixedLitCodeTab=[new Int32Array([0x70100,0x80050,0x80010,0x80118,0x70110,0x80070,0x80030,0x900c0,0x70108,0x80060,0x80020,0x900a0,0x80000,0x80080,0x80040,0x900e0,0x70104,0x80058,0x80018,0x90090,0x70114,0x80078,0x80038,0x900d0,0x7010c,0x80068,0x80028,0x900b0,0x80008,0x80088,0x80048,0x900f0,0x70102,0x80054,0x80014,0x8011c,0x70112,0x80074,0x80034,0x900c8,0x7010a,0x80064,0x80024,0x900a8,0x80004,0x80084,0x80044,0x900e8,0x70106,0x8005c,0x8001c,0x90098,0x70116,0x8007c,0x8003c,0x900d8,0x7010e,0x8006c,0x8002c,0x900b8,0x8000c,0x8008c,0x8004c,0x900f8,0x70101,0x80052,0x80012,0x8011a,0x70111,0x80072,0x80032,0x900c4,0x70109,0x80062,0x80022,0x900a4,0x80002,0x80082,0x80042,0x900e4,0x70105,0x8005a,0x8001a,0x90094,0x70115,0x8007a,0x8003a,0x900d4,0x7010d,0x8006a,0x8002a,0x900b4,0x8000a,0x8008a,0x8004a,0x900f4,0x70103,0x80056,0x80016,0x8011e,0x70113,0x80076,0x80036,0x900cc,0x7010b,0x80066,0x80026,0x900ac,0x80006,0x80086,0x80046,0x900ec,0x70107,0x8005e,0x8001e,0x9009c,0x70117,0x8007e,0x8003e,0x900dc,0x7010f,0x8006e,0x8002e,0x900bc,0x8000e,0x8008e,0x8004e,0x900fc,0x70100,0x80051,0x80011,0x80119,0x70110,0x80071,0x80031,0x900c2,0x70108,0x80061,0x80021,0x900a2,0x80001,0x80081,0x80041,0x900e2,0x70104,0x80059,0x80019,0x90092,0x70114,0x80079,0x80039,0x900d2,0x7010c,0x80069,0x80029,0x900b2,0x80009,0x80089,0x80049,0x900f2,0x70102,0x80055,0x80015,0x8011d,0x70112,0x80075,0x80035,0x900ca,0x7010a,0x80065,0x80025,0x900aa,0x80005,0x80085,0x80045,0x900ea,0x70106,0x8005d,0x8001d,0x9009a,0x70116,0x8007d,0x8003d,0x900da,0x7010e,0x8006d,0x8002d,0x900ba,0x8000d,0x8008d,0x8004d,0x900fa,0x70101,0x80053,0x80013,0x8011b,0x70111,0x80073,0x80033,0x900c6,0x70109,0x80063,0x80023,0x900a6,0x80003,0x80083,0x80043,0x900e6,0x70105,0x8005b,0x8001b,0x90096,0x70115,0x8007b,0x8003b,0x900d6,0x7010d,0x8006b,0x8002b,0x900b6,0x8000b,0x8008b,0x8004b,0x900f6,0x70103,0x80057,0x80017,0x8011f,0x70113,0x80077,0x80037,0x900ce,0x7010b,0x80067,0x80027,0x900ae,0x80007,0x80087,0x80047,0x900ee,0x70107,0x8005f,0x8001f,0x9009e,0x70117,0x8007f,0x8003f,0x900de,0x7010f,0x8006f,0x8002f,0x900be,0x8000f,0x8008f,0x8004f,0x900fe,0x70100,0x80050,0x80010,0x80118,0x70110,0x80070,0x80030,0x900c1,0x70108,0x80060,0x80020,0x900a1,0x80000,0x80080,0x80040,0x900e1,0x70104,0x80058,0x80018,0x90091,0x70114,0x80078,0x80038,0x900d1,0x7010c,0x80068,0x80028,0x900b1,0x80008,0x80088,0x80048,0x900f1,0x70102,0x80054,0x80014,0x8011c,0x70112,0x80074,0x80034,0x900c9,0x7010a,0x80064,0x80024,0x900a9,0x80004,0x80084,0x80044,0x900e9,0x70106,0x8005c,0x8001c,0x90099,0x70116,0x8007c,0x8003c,0x900d9,0x7010e,0x8006c,0x8002c,0x900b9,0x8000c,0x8008c,0x8004c,0x900f9,0x70101,0x80052,0x80012,0x8011a,0x70111,0x80072,0x80032,0x900c5,0x70109,0x80062,0x80022,0x900a5,0x80002,0x80082,0x80042,0x900e5,0x70105,0x8005a,0x8001a,0x90095,0x70115,0x8007a,0x8003a,0x900d5,0x7010d,0x8006a,0x8002a,0x900b5,0x8000a,0x8008a,0x8004a,0x900f5,0x70103,0x80056,0x80016,0x8011e,0x70113,0x80076,0x80036,0x900cd,0x7010b,0x80066,0x80026,0x900ad,0x80006,0x80086,0x80046,0x900ed,0x70107,0x8005e,0x8001e,0x9009d,0x70117,0x8007e,0x8003e,0x900dd,0x7010f,0x8006e,0x8002e,0x900bd,0x8000e,0x8008e,0x8004e,0x900fd,0x70100,0x80051,0x80011,0x80119,0x70110,0x80071,0x80031,0x900c3,0x70108,0x80061,0x80021,0x900a3,0x80001,0x80081,0x80041,0x900e3,0x70104,0x80059,0x80019,0x90093,0x70114,0x80079,0x80039,0x900d3,0x7010c,0x80069,0x80029,0x900b3,0x80009,0x80089,0x80049,0x900f3,0x70102,0x80055,0x80015,0x8011d,0x70112,0x80075,0x80035,0x900cb,0x7010a,0x80065,0x80025,0x900ab,0x80005,0x80085,0x80045,0x900eb,0x70106,0x8005d,0x8001d,0x9009b,0x70116,0x8007d,0x8003d,0x900db,0x7010e,0x8006d,0x8002d,0x900bb,0x8000d,0x8008d,0x8004d,0x900fb,0x70101,0x80053,0x80013,0x8011b,0x70111,0x80073,0x80033,0x900c7,0x70109,0x80063,0x80023,0x900a7,0x80003,0x80083,0x80043,0x900e7,0x70105,0x8005b,0x8001b,0x90097,0x70115,0x8007b,0x8003b,0x900d7,0x7010d,0x8006b,0x8002b,0x900b7,0x8000b,0x8008b,0x8004b,0x900f7,0x70103,0x80057,0x80017,0x8011f,0x70113,0x80077,0x80037,0x900cf,0x7010b,0x80067,0x80027,0x900af,0x80007,0x80087,0x80047,0x900ef,0x70107,0x8005f,0x8001f,0x9009f,0x70117,0x8007f,0x8003f,0x900df,0x7010f,0x8006f,0x8002f,0x900bf,0x8000f,0x8008f,0x8004f,0x900ff]),9];const fixedDistCodeTab=[new Int32Array([0x50000,0x50010,0x50008,0x50018,0x50004,0x50014,0x5000c,0x5001c,0x50002,0x50012,0x5000a,0x5001a,0x50006,0x50016,0x5000e,0x00000,0x50001,0x50011,0x50009,0x50019,0x50005,0x50015,0x5000d,0x5001d,0x50003,0x50013,0x5000b,0x5001b,0x50007,0x50017,0x5000f,0x00000]),5];class FlateStream extends _decode_stream.DecodeStream{constructor(str,maybeLength){super(maybeLength);this.str=str;this.dict=str.dict;const cmf=str.getByte();const flg=str.getByte();if(cmf===-1||flg===-1){throw new _util.FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);}
if((cmf&0x0f)!==0x08){throw new _util.FormatError(`Unknown compression method in flate stream: ${cmf}, ${flg}`);}
if(((cmf<<8)+flg)%31!==0){throw new _util.FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);}
if(flg&0x20){throw new _util.FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);}
this.codeSize=0;this.codeBuf=0;}
getBits(bits){const str=this.str;let codeSize=this.codeSize;let codeBuf=this.codeBuf;let b;while(codeSize<bits){if((b=str.getByte())===-1){throw new _util.FormatError("Bad encoding in flate stream");}
codeBuf|=b<<codeSize;codeSize+=8;}
b=codeBuf&(1<<bits)-1;this.codeBuf=codeBuf>>bits;this.codeSize=codeSize-=bits;return b;}
getCode(table){const str=this.str;const codes=table[0];const maxLen=table[1];let codeSize=this.codeSize;let codeBuf=this.codeBuf;let b;while(codeSize<maxLen){if((b=str.getByte())===-1){break;}
codeBuf|=b<<codeSize;codeSize+=8;}
const code=codes[codeBuf&(1<<maxLen)-1];const codeLen=code>>16;const codeVal=code&0xffff;if(codeLen<1||codeSize<codeLen){throw new _util.FormatError("Bad encoding in flate stream");}
this.codeBuf=codeBuf>>codeLen;this.codeSize=codeSize-codeLen;return codeVal;}
generateHuffmanTable(lengths){const n=lengths.length;let maxLen=0;let i;for(i=0;i<n;++i){if(lengths[i]>maxLen){maxLen=lengths[i];}}
const size=1<<maxLen;const codes=new Int32Array(size);for(let len=1,code=0,skip=2;len<=maxLen;++len,code<<=1,skip<<=1){for(let val=0;val<n;++val){if(lengths[val]===len){let code2=0;let t=code;for(i=0;i<len;++i){code2=code2<<1|t&1;t>>=1;}
for(i=code2;i<size;i+=skip){codes[i]=len<<16|val;}
++code;}}}
return[codes,maxLen];}
readBlock(){let buffer,len;const str=this.str;let hdr=this.getBits(3);if(hdr&1){this.eof=true;}
hdr>>=1;if(hdr===0){let b;if((b=str.getByte())===-1){throw new _util.FormatError("Bad block header in flate stream");}
let blockLen=b;if((b=str.getByte())===-1){throw new _util.FormatError("Bad block header in flate stream");}
blockLen|=b<<8;if((b=str.getByte())===-1){throw new _util.FormatError("Bad block header in flate stream");}
let check=b;if((b=str.getByte())===-1){throw new _util.FormatError("Bad block header in flate stream");}
check|=b<<8;if(check!==(~blockLen&0xffff)&&(blockLen!==0||check!==0)){throw new _util.FormatError("Bad uncompressed block length in flate stream");}
this.codeBuf=0;this.codeSize=0;const bufferLength=this.bufferLength,end=bufferLength+blockLen;buffer=this.ensureBuffer(end);this.bufferLength=end;if(blockLen===0){if(str.peekByte()===-1){this.eof=true;}}else{const block=str.getBytes(blockLen);buffer.set(block,bufferLength);if(block.length<blockLen){this.eof=true;}}
return;}
let litCodeTable;let distCodeTable;if(hdr===1){litCodeTable=fixedLitCodeTab;distCodeTable=fixedDistCodeTab;}else if(hdr===2){const numLitCodes=this.getBits(5)+257;const numDistCodes=this.getBits(5)+1;const numCodeLenCodes=this.getBits(4)+4;const codeLenCodeLengths=new Uint8Array(codeLenCodeMap.length);let i;for(i=0;i<numCodeLenCodes;++i){codeLenCodeLengths[codeLenCodeMap[i]]=this.getBits(3);}
const codeLenCodeTab=this.generateHuffmanTable(codeLenCodeLengths);len=0;i=0;const codes=numLitCodes+numDistCodes;const codeLengths=new Uint8Array(codes);let bitsLength,bitsOffset,what;while(i<codes){const code=this.getCode(codeLenCodeTab);if(code===16){bitsLength=2;bitsOffset=3;what=len;}else if(code===17){bitsLength=3;bitsOffset=3;what=len=0;}else if(code===18){bitsLength=7;bitsOffset=11;what=len=0;}else{codeLengths[i++]=len=code;continue;}
let repeatLength=this.getBits(bitsLength)+bitsOffset;while(repeatLength-->0){codeLengths[i++]=what;}}
litCodeTable=this.generateHuffmanTable(codeLengths.subarray(0,numLitCodes));distCodeTable=this.generateHuffmanTable(codeLengths.subarray(numLitCodes,codes));}else{throw new _util.FormatError("Unknown block type in flate stream");}
buffer=this.buffer;let limit=buffer?buffer.length:0;let pos=this.bufferLength;while(true){let code1=this.getCode(litCodeTable);if(code1<256){if(pos+1>=limit){buffer=this.ensureBuffer(pos+1);limit=buffer.length;}
buffer[pos++]=code1;continue;}
if(code1===256){this.bufferLength=pos;return;}
code1-=257;code1=lengthDecode[code1];let code2=code1>>16;if(code2>0){code2=this.getBits(code2);}
len=(code1&0xffff)+code2;code1=this.getCode(distCodeTable);code1=distDecode[code1];code2=code1>>16;if(code2>0){code2=this.getBits(code2);}
const dist=(code1&0xffff)+code2;if(pos+len>=limit){buffer=this.ensureBuffer(pos+len);limit=buffer.length;}
for(let k=0;k<len;++k,++pos){buffer[pos]=buffer[pos-dist];}}}}
exports.FlateStream=FlateStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Jbig2Stream=void 0;var _base_stream=__w_pdfjs_require__(132);var _decode_stream=__w_pdfjs_require__(144);var _primitives=__w_pdfjs_require__(130);var _jbig=__w_pdfjs_require__(150);var _util=__w_pdfjs_require__(2);class Jbig2Stream extends _decode_stream.DecodeStream{constructor(stream,maybeLength,params){super(maybeLength);this.stream=stream;this.dict=stream.dict;this.maybeLength=maybeLength;this.params=params;}
get bytes(){return(0,_util.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength));}
ensureBuffer(requested){}
readBlock(){if(this.eof){return;}
const jbig2Image=new _jbig.Jbig2Image();const chunks=[];if(this.params instanceof _primitives.Dict){const globalsStream=this.params.get("JBIG2Globals");if(globalsStream instanceof _base_stream.BaseStream){const globals=globalsStream.getBytes();chunks.push({data:globals,start:0,end:globals.length});}}
chunks.push({data:this.bytes,start:0,end:this.bytes.length});const data=jbig2Image.parseChunks(chunks);const dataLength=data.length;for(let i=0;i<dataLength;i++){data[i]^=0xff;}
this.buffer=data;this.bufferLength=dataLength;this.eof=true;}}
exports.Jbig2Stream=Jbig2Stream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Jbig2Image=void 0;var _util=__w_pdfjs_require__(2);var _core_utils=__w_pdfjs_require__(131);var _arithmetic_decoder=__w_pdfjs_require__(151);var _ccitt=__w_pdfjs_require__(147);class Jbig2Error extends _util.BaseException{constructor(msg){super(`JBIG2 error: ${msg}`,"Jbig2Error");}}
class ContextCache{getContexts(id){if(id in this){return this[id];}
return this[id]=new Int8Array(1<<16);}}
class DecodingContext{constructor(data,start,end){this.data=data;this.start=start;this.end=end;}
get decoder(){const decoder=new _arithmetic_decoder.ArithmeticDecoder(this.data,this.start,this.end);return(0,_util.shadow)(this,"decoder",decoder);}
get contextCache(){const cache=new ContextCache();return(0,_util.shadow)(this,"contextCache",cache);}}
function decodeInteger(contextCache,procedure,decoder){const contexts=contextCache.getContexts(procedure);let prev=1;function readBits(length){let v=0;for(let i=0;i<length;i++){const bit=decoder.readBit(contexts,prev);prev=prev<256?prev<<1|bit:(prev<<1|bit)&511|256;v=v<<1|bit;}
return v>>>0;}
const sign=readBits(1);const value=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);if(sign===0){return value;}else if(value>0){return-value;}
return null;}
function decodeIAID(contextCache,decoder,codeLength){const contexts=contextCache.getContexts("IAID");let prev=1;for(let i=0;i<codeLength;i++){const bit=decoder.readBit(contexts,prev);prev=prev<<1|bit;}
if(codeLength<31){return prev&(1<<codeLength)-1;}
return prev&0x7fffffff;}
const SegmentTypes=["SymbolDictionary",null,null,null,"IntermediateTextRegion",null,"ImmediateTextRegion","ImmediateLosslessTextRegion",null,null,null,null,null,null,null,null,"PatternDictionary",null,null,null,"IntermediateHalftoneRegion",null,"ImmediateHalftoneRegion","ImmediateLosslessHalftoneRegion",null,null,null,null,null,null,null,null,null,null,null,null,"IntermediateGenericRegion",null,"ImmediateGenericRegion","ImmediateLosslessGenericRegion","IntermediateGenericRefinementRegion",null,"ImmediateGenericRefinementRegion","ImmediateLosslessGenericRefinementRegion",null,null,null,null,"PageInformation","EndOfPage","EndOfStripe","EndOfFile","Profiles","Tables",null,null,null,null,null,null,null,null,"Extension"];const CodingTemplates=[[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:2,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-2,y:0},{x:-1,y:0}],[{x:-3,y:-1},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}]];const RefinementTemplates=[{coding:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:-1,y:1},{x:0,y:1},{x:1,y:1}]},{coding:[{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]}];const ReusedContexts=[0x9b25,0x0795,0x00e5,0x0195];const RefinementReusedContexts=[0x0020,0x0008];function decodeBitmapTemplate0(width,height,decodingContext){const decoder=decodingContext.decoder;const contexts=decodingContext.contextCache.getContexts("GB");const bitmap=[];let contextLabel,i,j,pixel,row,row1,row2;const OLD_PIXEL_MASK=0x7bf7;for(i=0;i<height;i++){row=bitmap[i]=new Uint8Array(width);row1=i<1?row:bitmap[i-1];row2=i<2?row:bitmap[i-2];contextLabel=row2[0]<<13|row2[1]<<12|row2[2]<<11|row1[0]<<7|row1[1]<<6|row1[2]<<5|row1[3]<<4;for(j=0;j<width;j++){row[j]=pixel=decoder.readBit(contexts,contextLabel);contextLabel=(contextLabel&OLD_PIXEL_MASK)<<1|(j+3<width?row2[j+3]<<11:0)|(j+4<width?row1[j+4]<<4:0)|pixel;}}
return bitmap;}
function decodeBitmap(mmr,width,height,templateIndex,prediction,skip,at,decodingContext){if(mmr){const input=new Reader(decodingContext.data,decodingContext.start,decodingContext.end);return decodeMMRBitmap(input,width,height,false);}
if(templateIndex===0&&!skip&&!prediction&&at.length===4&&at[0].x===3&&at[0].y===-1&&at[1].x===-3&&at[1].y===-1&&at[2].x===2&&at[2].y===-2&&at[3].x===-2&&at[3].y===-2){return decodeBitmapTemplate0(width,height,decodingContext);}
const useskip=!!skip;const template=CodingTemplates[templateIndex].concat(at);template.sort(function(a,b){return a.y-b.y||a.x-b.x;});const templateLength=template.length;const templateX=new Int8Array(templateLength);const templateY=new Int8Array(templateLength);const changingTemplateEntries=[];let reuseMask=0,minX=0,maxX=0,minY=0;let c,k;for(k=0;k<templateLength;k++){templateX[k]=template[k].x;templateY[k]=template[k].y;minX=Math.min(minX,template[k].x);maxX=Math.max(maxX,template[k].x);minY=Math.min(minY,template[k].y);if(k<templateLength-1&&template[k].y===template[k+1].y&&template[k].x===template[k+1].x-1){reuseMask|=1<<templateLength-1-k;}else{changingTemplateEntries.push(k);}}
const changingEntriesLength=changingTemplateEntries.length;const changingTemplateX=new Int8Array(changingEntriesLength);const changingTemplateY=new Int8Array(changingEntriesLength);const changingTemplateBit=new Uint16Array(changingEntriesLength);for(c=0;c<changingEntriesLength;c++){k=changingTemplateEntries[c];changingTemplateX[c]=template[k].x;changingTemplateY[c]=template[k].y;changingTemplateBit[c]=1<<templateLength-1-k;}
const sbb_left=-minX;const sbb_top=-minY;const sbb_right=width-maxX;const pseudoPixelContext=ReusedContexts[templateIndex];let row=new Uint8Array(width);const bitmap=[];const decoder=decodingContext.decoder;const contexts=decodingContext.contextCache.getContexts("GB");let ltp=0,j,i0,j0,contextLabel=0,bit,shift;for(let i=0;i<height;i++){if(prediction){const sltp=decoder.readBit(contexts,pseudoPixelContext);ltp^=sltp;if(ltp){bitmap.push(row);continue;}}
row=new Uint8Array(row);bitmap.push(row);for(j=0;j<width;j++){if(useskip&&skip[i][j]){row[j]=0;continue;}
if(j>=sbb_left&&j<sbb_right&&i>=sbb_top){contextLabel=contextLabel<<1&reuseMask;for(k=0;k<changingEntriesLength;k++){i0=i+changingTemplateY[k];j0=j+changingTemplateX[k];bit=bitmap[i0][j0];if(bit){bit=changingTemplateBit[k];contextLabel|=bit;}}}else{contextLabel=0;shift=templateLength-1;for(k=0;k<templateLength;k++,shift--){j0=j+templateX[k];if(j0>=0&&j0<width){i0=i+templateY[k];if(i0>=0){bit=bitmap[i0][j0];if(bit){contextLabel|=bit<<shift;}}}}}
const pixel=decoder.readBit(contexts,contextLabel);row[j]=pixel;}}
return bitmap;}
function decodeRefinement(width,height,templateIndex,referenceBitmap,offsetX,offsetY,prediction,at,decodingContext){let codingTemplate=RefinementTemplates[templateIndex].coding;if(templateIndex===0){codingTemplate=codingTemplate.concat([at[0]]);}
const codingTemplateLength=codingTemplate.length;const codingTemplateX=new Int32Array(codingTemplateLength);const codingTemplateY=new Int32Array(codingTemplateLength);let k;for(k=0;k<codingTemplateLength;k++){codingTemplateX[k]=codingTemplate[k].x;codingTemplateY[k]=codingTemplate[k].y;}
let referenceTemplate=RefinementTemplates[templateIndex].reference;if(templateIndex===0){referenceTemplate=referenceTemplate.concat([at[1]]);}
const referenceTemplateLength=referenceTemplate.length;const referenceTemplateX=new Int32Array(referenceTemplateLength);const referenceTemplateY=new Int32Array(referenceTemplateLength);for(k=0;k<referenceTemplateLength;k++){referenceTemplateX[k]=referenceTemplate[k].x;referenceTemplateY[k]=referenceTemplate[k].y;}
const referenceWidth=referenceBitmap[0].length;const referenceHeight=referenceBitmap.length;const pseudoPixelContext=RefinementReusedContexts[templateIndex];const bitmap=[];const decoder=decodingContext.decoder;const contexts=decodingContext.contextCache.getContexts("GR");let ltp=0;for(let i=0;i<height;i++){if(prediction){const sltp=decoder.readBit(contexts,pseudoPixelContext);ltp^=sltp;if(ltp){throw new Jbig2Error("prediction is not supported");}}
const row=new Uint8Array(width);bitmap.push(row);for(let j=0;j<width;j++){let i0,j0;let contextLabel=0;for(k=0;k<codingTemplateLength;k++){i0=i+codingTemplateY[k];j0=j+codingTemplateX[k];if(i0<0||j0<0||j0>=width){contextLabel<<=1;}else{contextLabel=contextLabel<<1|bitmap[i0][j0];}}
for(k=0;k<referenceTemplateLength;k++){i0=i+referenceTemplateY[k]-offsetY;j0=j+referenceTemplateX[k]-offsetX;if(i0<0||i0>=referenceHeight||j0<0||j0>=referenceWidth){contextLabel<<=1;}else{contextLabel=contextLabel<<1|referenceBitmap[i0][j0];}}
const pixel=decoder.readBit(contexts,contextLabel);row[j]=pixel;}}
return bitmap;}
function decodeSymbolDictionary(huffman,refinement,symbols,numberOfNewSymbols,numberOfExportedSymbols,huffmanTables,templateIndex,at,refinementTemplateIndex,refinementAt,decodingContext,huffmanInput){if(huffman&&refinement){throw new Jbig2Error("symbol refinement with Huffman is not supported");}
const newSymbols=[];let currentHeight=0;let symbolCodeLength=(0,_core_utils.log2)(symbols.length+numberOfNewSymbols);const decoder=decodingContext.decoder;const contextCache=decodingContext.contextCache;let tableB1,symbolWidths;if(huffman){tableB1=getStandardTable(1);symbolWidths=[];symbolCodeLength=Math.max(symbolCodeLength,1);}
while(newSymbols.length<numberOfNewSymbols){const deltaHeight=huffman?huffmanTables.tableDeltaHeight.decode(huffmanInput):decodeInteger(contextCache,"IADH",decoder);currentHeight+=deltaHeight;let currentWidth=0,totalWidth=0;const firstSymbol=huffman?symbolWidths.length:0;while(true){const deltaWidth=huffman?huffmanTables.tableDeltaWidth.decode(huffmanInput):decodeInteger(contextCache,"IADW",decoder);if(deltaWidth===null){break;}
currentWidth+=deltaWidth;totalWidth+=currentWidth;let bitmap;if(refinement){const numberOfInstances=decodeInteger(contextCache,"IAAI",decoder);if(numberOfInstances>1){bitmap=decodeTextRegion(huffman,refinement,currentWidth,currentHeight,0,numberOfInstances,1,symbols.concat(newSymbols),symbolCodeLength,0,0,1,0,huffmanTables,refinementTemplateIndex,refinementAt,decodingContext,0,huffmanInput);}else{const symbolId=decodeIAID(contextCache,decoder,symbolCodeLength);const rdx=decodeInteger(contextCache,"IARDX",decoder);const rdy=decodeInteger(contextCache,"IARDY",decoder);const symbol=symbolId<symbols.length?symbols[symbolId]:newSymbols[symbolId-symbols.length];bitmap=decodeRefinement(currentWidth,currentHeight,refinementTemplateIndex,symbol,rdx,rdy,false,refinementAt,decodingContext);}
newSymbols.push(bitmap);}else if(huffman){symbolWidths.push(currentWidth);}else{bitmap=decodeBitmap(false,currentWidth,currentHeight,templateIndex,false,null,at,decodingContext);newSymbols.push(bitmap);}}
if(huffman&&!refinement){const bitmapSize=huffmanTables.tableBitmapSize.decode(huffmanInput);huffmanInput.byteAlign();let collectiveBitmap;if(bitmapSize===0){collectiveBitmap=readUncompressedBitmap(huffmanInput,totalWidth,currentHeight);}else{const originalEnd=huffmanInput.end;const bitmapEnd=huffmanInput.position+bitmapSize;huffmanInput.end=bitmapEnd;collectiveBitmap=decodeMMRBitmap(huffmanInput,totalWidth,currentHeight,false);huffmanInput.end=originalEnd;huffmanInput.position=bitmapEnd;}
const numberOfSymbolsDecoded=symbolWidths.length;if(firstSymbol===numberOfSymbolsDecoded-1){newSymbols.push(collectiveBitmap);}else{let i,y,xMin=0,xMax,bitmapWidth,symbolBitmap;for(i=firstSymbol;i<numberOfSymbolsDecoded;i++){bitmapWidth=symbolWidths[i];xMax=xMin+bitmapWidth;symbolBitmap=[];for(y=0;y<currentHeight;y++){symbolBitmap.push(collectiveBitmap[y].subarray(xMin,xMax));}
newSymbols.push(symbolBitmap);xMin=xMax;}}}}
const exportedSymbols=[],flags=[];let currentFlag=false,i,ii;const totalSymbolsLength=symbols.length+numberOfNewSymbols;while(flags.length<totalSymbolsLength){let runLength=huffman?tableB1.decode(huffmanInput):decodeInteger(contextCache,"IAEX",decoder);while(runLength--){flags.push(currentFlag);}
currentFlag=!currentFlag;}
for(i=0,ii=symbols.length;i<ii;i++){if(flags[i]){exportedSymbols.push(symbols[i]);}}
for(let j=0;j<numberOfNewSymbols;i++,j++){if(flags[i]){exportedSymbols.push(newSymbols[j]);}}
return exportedSymbols;}
function decodeTextRegion(huffman,refinement,width,height,defaultPixelValue,numberOfSymbolInstances,stripSize,inputSymbols,symbolCodeLength,transposed,dsOffset,referenceCorner,combinationOperator,huffmanTables,refinementTemplateIndex,refinementAt,decodingContext,logStripSize,huffmanInput){if(huffman&&refinement){throw new Jbig2Error("refinement with Huffman is not supported");}
const bitmap=[];let i,row;for(i=0;i<height;i++){row=new Uint8Array(width);if(defaultPixelValue){for(let j=0;j<width;j++){row[j]=defaultPixelValue;}}
bitmap.push(row);}
const decoder=decodingContext.decoder;const contextCache=decodingContext.contextCache;let stripT=huffman?-huffmanTables.tableDeltaT.decode(huffmanInput):-decodeInteger(contextCache,"IADT",decoder);let firstS=0;i=0;while(i<numberOfSymbolInstances){const deltaT=huffman?huffmanTables.tableDeltaT.decode(huffmanInput):decodeInteger(contextCache,"IADT",decoder);stripT+=deltaT;const deltaFirstS=huffman?huffmanTables.tableFirstS.decode(huffmanInput):decodeInteger(contextCache,"IAFS",decoder);firstS+=deltaFirstS;let currentS=firstS;do{let currentT=0;if(stripSize>1){currentT=huffman?huffmanInput.readBits(logStripSize):decodeInteger(contextCache,"IAIT",decoder);}
const t=stripSize*stripT+currentT;const symbolId=huffman?huffmanTables.symbolIDTable.decode(huffmanInput):decodeIAID(contextCache,decoder,symbolCodeLength);const applyRefinement=refinement&&(huffman?huffmanInput.readBit():decodeInteger(contextCache,"IARI",decoder));let symbolBitmap=inputSymbols[symbolId];let symbolWidth=symbolBitmap[0].length;let symbolHeight=symbolBitmap.length;if(applyRefinement){const rdw=decodeInteger(contextCache,"IARDW",decoder);const rdh=decodeInteger(contextCache,"IARDH",decoder);const rdx=decodeInteger(contextCache,"IARDX",decoder);const rdy=decodeInteger(contextCache,"IARDY",decoder);symbolWidth+=rdw;symbolHeight+=rdh;symbolBitmap=decodeRefinement(symbolWidth,symbolHeight,refinementTemplateIndex,symbolBitmap,(rdw>>1)+rdx,(rdh>>1)+rdy,false,refinementAt,decodingContext);}
const offsetT=t-(referenceCorner&1?0:symbolHeight-1);const offsetS=currentS-(referenceCorner&2?symbolWidth-1:0);let s2,t2,symbolRow;if(transposed){for(s2=0;s2<symbolHeight;s2++){row=bitmap[offsetS+s2];if(!row){continue;}
symbolRow=symbolBitmap[s2];const maxWidth=Math.min(width-offsetT,symbolWidth);switch(combinationOperator){case 0:for(t2=0;t2<maxWidth;t2++){row[offsetT+t2]|=symbolRow[t2];}
break;case 2:for(t2=0;t2<maxWidth;t2++){row[offsetT+t2]^=symbolRow[t2];}
break;default:throw new Jbig2Error(`operator ${combinationOperator} is not supported`);}}
currentS+=symbolHeight-1;}else{for(t2=0;t2<symbolHeight;t2++){row=bitmap[offsetT+t2];if(!row){continue;}
symbolRow=symbolBitmap[t2];switch(combinationOperator){case 0:for(s2=0;s2<symbolWidth;s2++){row[offsetS+s2]|=symbolRow[s2];}
break;case 2:for(s2=0;s2<symbolWidth;s2++){row[offsetS+s2]^=symbolRow[s2];}
break;default:throw new Jbig2Error(`operator ${combinationOperator} is not supported`);}}
currentS+=symbolWidth-1;}
i++;const deltaS=huffman?huffmanTables.tableDeltaS.decode(huffmanInput):decodeInteger(contextCache,"IADS",decoder);if(deltaS===null){break;}
currentS+=deltaS+dsOffset;}while(true);}
return bitmap;}
function decodePatternDictionary(mmr,patternWidth,patternHeight,maxPatternIndex,template,decodingContext){const at=[];if(!mmr){at.push({x:-patternWidth,y:0});if(template===0){at.push({x:-3,y:-1},{x:2,y:-2},{x:-2,y:-2});}}
const collectiveWidth=(maxPatternIndex+1)*patternWidth;const collectiveBitmap=decodeBitmap(mmr,collectiveWidth,patternHeight,template,false,null,at,decodingContext);const patterns=[];for(let i=0;i<=maxPatternIndex;i++){const patternBitmap=[];const xMin=patternWidth*i;const xMax=xMin+patternWidth;for(let y=0;y<patternHeight;y++){patternBitmap.push(collectiveBitmap[y].subarray(xMin,xMax));}
patterns.push(patternBitmap);}
return patterns;}
function decodeHalftoneRegion(mmr,patterns,template,regionWidth,regionHeight,defaultPixelValue,enableSkip,combinationOperator,gridWidth,gridHeight,gridOffsetX,gridOffsetY,gridVectorX,gridVectorY,decodingContext){const skip=null;if(enableSkip){throw new Jbig2Error("skip is not supported");}
if(combinationOperator!==0){throw new Jbig2Error(`operator "${combinationOperator}" is not supported in halftone region`);}
const regionBitmap=[];let i,j,row;for(i=0;i<regionHeight;i++){row=new Uint8Array(regionWidth);if(defaultPixelValue){for(j=0;j<regionWidth;j++){row[j]=defaultPixelValue;}}
regionBitmap.push(row);}
const numberOfPatterns=patterns.length;const pattern0=patterns[0];const patternWidth=pattern0[0].length,patternHeight=pattern0.length;const bitsPerValue=(0,_core_utils.log2)(numberOfPatterns);const at=[];if(!mmr){at.push({x:template<=1?3:2,y:-1});if(template===0){at.push({x:-3,y:-1},{x:2,y:-2},{x:-2,y:-2});}}
const grayScaleBitPlanes=[];let mmrInput,bitmap;if(mmr){mmrInput=new Reader(decodingContext.data,decodingContext.start,decodingContext.end);}
for(i=bitsPerValue-1;i>=0;i--){if(mmr){bitmap=decodeMMRBitmap(mmrInput,gridWidth,gridHeight,true);}else{bitmap=decodeBitmap(false,gridWidth,gridHeight,template,false,skip,at,decodingContext);}
grayScaleBitPlanes[i]=bitmap;}
let mg,ng,bit,patternIndex,patternBitmap,x,y,patternRow,regionRow;for(mg=0;mg<gridHeight;mg++){for(ng=0;ng<gridWidth;ng++){bit=0;patternIndex=0;for(j=bitsPerValue-1;j>=0;j--){bit^=grayScaleBitPlanes[j][mg][ng];patternIndex|=bit<<j;}
patternBitmap=patterns[patternIndex];x=gridOffsetX+mg*gridVectorY+ng*gridVectorX>>8;y=gridOffsetY+mg*gridVectorX-ng*gridVectorY>>8;if(x>=0&&x+patternWidth<=regionWidth&&y>=0&&y+patternHeight<=regionHeight){for(i=0;i<patternHeight;i++){regionRow=regionBitmap[y+i];patternRow=patternBitmap[i];for(j=0;j<patternWidth;j++){regionRow[x+j]|=patternRow[j];}}}else{let regionX,regionY;for(i=0;i<patternHeight;i++){regionY=y+i;if(regionY<0||regionY>=regionHeight){continue;}
regionRow=regionBitmap[regionY];patternRow=patternBitmap[i];for(j=0;j<patternWidth;j++){regionX=x+j;if(regionX>=0&&regionX<regionWidth){regionRow[regionX]|=patternRow[j];}}}}}}
return regionBitmap;}
function readSegmentHeader(data,start){const segmentHeader={};segmentHeader.number=(0,_core_utils.readUint32)(data,start);const flags=data[start+4];const segmentType=flags&0x3f;if(!SegmentTypes[segmentType]){throw new Jbig2Error("invalid segment type: "+segmentType);}
segmentHeader.type=segmentType;segmentHeader.typeName=SegmentTypes[segmentType];segmentHeader.deferredNonRetain=!!(flags&0x80);const pageAssociationFieldSize=!!(flags&0x40);const referredFlags=data[start+5];let referredToCount=referredFlags>>5&7;const retainBits=[referredFlags&31];let position=start+6;if(referredFlags===7){referredToCount=(0,_core_utils.readUint32)(data,position-1)&0x1fffffff;position+=3;let bytes=referredToCount+7>>3;retainBits[0]=data[position++];while(--bytes>0){retainBits.push(data[position++]);}}else if(referredFlags===5||referredFlags===6){throw new Jbig2Error("invalid referred-to flags");}
segmentHeader.retainBits=retainBits;let referredToSegmentNumberSize=4;if(segmentHeader.number<=256){referredToSegmentNumberSize=1;}else if(segmentHeader.number<=65536){referredToSegmentNumberSize=2;}
const referredTo=[];let i,ii;for(i=0;i<referredToCount;i++){let number;if(referredToSegmentNumberSize===1){number=data[position];}else if(referredToSegmentNumberSize===2){number=(0,_core_utils.readUint16)(data,position);}else{number=(0,_core_utils.readUint32)(data,position);}
referredTo.push(number);position+=referredToSegmentNumberSize;}
segmentHeader.referredTo=referredTo;if(!pageAssociationFieldSize){segmentHeader.pageAssociation=data[position++];}else{segmentHeader.pageAssociation=(0,_core_utils.readUint32)(data,position);position+=4;}
segmentHeader.length=(0,_core_utils.readUint32)(data,position);position+=4;if(segmentHeader.length===0xffffffff){if(segmentType===38){const genericRegionInfo=readRegionSegmentInformation(data,position);const genericRegionSegmentFlags=data[position+RegionSegmentInformationFieldLength];const genericRegionMmr=!!(genericRegionSegmentFlags&1);const searchPatternLength=6;const searchPattern=new Uint8Array(searchPatternLength);if(!genericRegionMmr){searchPattern[0]=0xff;searchPattern[1]=0xac;}
searchPattern[2]=genericRegionInfo.height>>>24&0xff;searchPattern[3]=genericRegionInfo.height>>16&0xff;searchPattern[4]=genericRegionInfo.height>>8&0xff;searchPattern[5]=genericRegionInfo.height&0xff;for(i=position,ii=data.length;i<ii;i++){let j=0;while(j<searchPatternLength&&searchPattern[j]===data[i+j]){j++;}
if(j===searchPatternLength){segmentHeader.length=i+searchPatternLength;break;}}
if(segmentHeader.length===0xffffffff){throw new Jbig2Error("segment end was not found");}}else{throw new Jbig2Error("invalid unknown segment length");}}
segmentHeader.headerEnd=position;return segmentHeader;}
function readSegments(header,data,start,end){const segments=[];let position=start;while(position<end){const segmentHeader=readSegmentHeader(data,position);position=segmentHeader.headerEnd;const segment={header:segmentHeader,data};if(!header.randomAccess){segment.start=position;position+=segmentHeader.length;segment.end=position;}
segments.push(segment);if(segmentHeader.type===51){break;}}
if(header.randomAccess){for(let i=0,ii=segments.length;i<ii;i++){segments[i].start=position;position+=segments[i].header.length;segments[i].end=position;}}
return segments;}
function readRegionSegmentInformation(data,start){return{width:(0,_core_utils.readUint32)(data,start),height:(0,_core_utils.readUint32)(data,start+4),x:(0,_core_utils.readUint32)(data,start+8),y:(0,_core_utils.readUint32)(data,start+12),combinationOperator:data[start+16]&7};}
const RegionSegmentInformationFieldLength=17;function processSegment(segment,visitor){const header=segment.header;const data=segment.data,end=segment.end;let position=segment.start;let args,at,i,atLength;switch(header.type){case 0:const dictionary={};const dictionaryFlags=(0,_core_utils.readUint16)(data,position);dictionary.huffman=!!(dictionaryFlags&1);dictionary.refinement=!!(dictionaryFlags&2);dictionary.huffmanDHSelector=dictionaryFlags>>2&3;dictionary.huffmanDWSelector=dictionaryFlags>>4&3;dictionary.bitmapSizeSelector=dictionaryFlags>>6&1;dictionary.aggregationInstancesSelector=dictionaryFlags>>7&1;dictionary.bitmapCodingContextUsed=!!(dictionaryFlags&256);dictionary.bitmapCodingContextRetained=!!(dictionaryFlags&512);dictionary.template=dictionaryFlags>>10&3;dictionary.refinementTemplate=dictionaryFlags>>12&1;position+=2;if(!dictionary.huffman){atLength=dictionary.template===0?4:1;at=[];for(i=0;i<atLength;i++){at.push({x:(0,_core_utils.readInt8)(data,position),y:(0,_core_utils.readInt8)(data,position+1)});position+=2;}
dictionary.at=at;}
if(dictionary.refinement&&!dictionary.refinementTemplate){at=[];for(i=0;i<2;i++){at.push({x:(0,_core_utils.readInt8)(data,position),y:(0,_core_utils.readInt8)(data,position+1)});position+=2;}
dictionary.refinementAt=at;}
dictionary.numberOfExportedSymbols=(0,_core_utils.readUint32)(data,position);position+=4;dictionary.numberOfNewSymbols=(0,_core_utils.readUint32)(data,position);position+=4;args=[dictionary,header.number,header.referredTo,data,position,end];break;case 6:case 7:const textRegion={};textRegion.info=readRegionSegmentInformation(data,position);position+=RegionSegmentInformationFieldLength;const textRegionSegmentFlags=(0,_core_utils.readUint16)(data,position);position+=2;textRegion.huffman=!!(textRegionSegmentFlags&1);textRegion.refinement=!!(textRegionSegmentFlags&2);textRegion.logStripSize=textRegionSegmentFlags>>2&3;textRegion.stripSize=1<<textRegion.logStripSize;textRegion.referenceCorner=textRegionSegmentFlags>>4&3;textRegion.transposed=!!(textRegionSegmentFlags&64);textRegion.combinationOperator=textRegionSegmentFlags>>7&3;textRegion.defaultPixelValue=textRegionSegmentFlags>>9&1;textRegion.dsOffset=textRegionSegmentFlags<<17>>27;textRegion.refinementTemplate=textRegionSegmentFlags>>15&1;if(textRegion.huffman){const textRegionHuffmanFlags=(0,_core_utils.readUint16)(data,position);position+=2;textRegion.huffmanFS=textRegionHuffmanFlags&3;textRegion.huffmanDS=textRegionHuffmanFlags>>2&3;textRegion.huffmanDT=textRegionHuffmanFlags>>4&3;textRegion.huffmanRefinementDW=textRegionHuffmanFlags>>6&3;textRegion.huffmanRefinementDH=textRegionHuffmanFlags>>8&3;textRegion.huffmanRefinementDX=textRegionHuffmanFlags>>10&3;textRegion.huffmanRefinementDY=textRegionHuffmanFlags>>12&3;textRegion.huffmanRefinementSizeSelector=!!(textRegionHuffmanFlags&0x4000);}
if(textRegion.refinement&&!textRegion.refinementTemplate){at=[];for(i=0;i<2;i++){at.push({x:(0,_core_utils.readInt8)(data,position),y:(0,_core_utils.readInt8)(data,position+1)});position+=2;}
textRegion.refinementAt=at;}
textRegion.numberOfSymbolInstances=(0,_core_utils.readUint32)(data,position);position+=4;args=[textRegion,header.referredTo,data,position,end];break;case 16:const patternDictionary={};const patternDictionaryFlags=data[position++];patternDictionary.mmr=!!(patternDictionaryFlags&1);patternDictionary.template=patternDictionaryFlags>>1&3;patternDictionary.patternWidth=data[position++];patternDictionary.patternHeight=data[position++];patternDictionary.maxPatternIndex=(0,_core_utils.readUint32)(data,position);position+=4;args=[patternDictionary,header.number,data,position,end];break;case 22:case 23:const halftoneRegion={};halftoneRegion.info=readRegionSegmentInformation(data,position);position+=RegionSegmentInformationFieldLength;const halftoneRegionFlags=data[position++];halftoneRegion.mmr=!!(halftoneRegionFlags&1);halftoneRegion.template=halftoneRegionFlags>>1&3;halftoneRegion.enableSkip=!!(halftoneRegionFlags&8);halftoneRegion.combinationOperator=halftoneRegionFlags>>4&7;halftoneRegion.defaultPixelValue=halftoneRegionFlags>>7&1;halftoneRegion.gridWidth=(0,_core_utils.readUint32)(data,position);position+=4;halftoneRegion.gridHeight=(0,_core_utils.readUint32)(data,position);position+=4;halftoneRegion.gridOffsetX=(0,_core_utils.readUint32)(data,position)&0xffffffff;position+=4;halftoneRegion.gridOffsetY=(0,_core_utils.readUint32)(data,position)&0xffffffff;position+=4;halftoneRegion.gridVectorX=(0,_core_utils.readUint16)(data,position);position+=2;halftoneRegion.gridVectorY=(0,_core_utils.readUint16)(data,position);position+=2;args=[halftoneRegion,header.referredTo,data,position,end];break;case 38:case 39:const genericRegion={};genericRegion.info=readRegionSegmentInformation(data,position);position+=RegionSegmentInformationFieldLength;const genericRegionSegmentFlags=data[position++];genericRegion.mmr=!!(genericRegionSegmentFlags&1);genericRegion.template=genericRegionSegmentFlags>>1&3;genericRegion.prediction=!!(genericRegionSegmentFlags&8);if(!genericRegion.mmr){atLength=genericRegion.template===0?4:1;at=[];for(i=0;i<atLength;i++){at.push({x:(0,_core_utils.readInt8)(data,position),y:(0,_core_utils.readInt8)(data,position+1)});position+=2;}
genericRegion.at=at;}
args=[genericRegion,data,position,end];break;case 48:const pageInfo={width:(0,_core_utils.readUint32)(data,position),height:(0,_core_utils.readUint32)(data,position+4),resolutionX:(0,_core_utils.readUint32)(data,position+8),resolutionY:(0,_core_utils.readUint32)(data,position+12)};if(pageInfo.height===0xffffffff){delete pageInfo.height;}
const pageSegmentFlags=data[position+16];(0,_core_utils.readUint16)(data,position+17);pageInfo.lossless=!!(pageSegmentFlags&1);pageInfo.refinement=!!(pageSegmentFlags&2);pageInfo.defaultPixelValue=pageSegmentFlags>>2&1;pageInfo.combinationOperator=pageSegmentFlags>>3&3;pageInfo.requiresBuffer=!!(pageSegmentFlags&32);pageInfo.combinationOperatorOverride=!!(pageSegmentFlags&64);args=[pageInfo];break;case 49:break;case 50:break;case 51:break;case 53:args=[header.number,data,position,end];break;case 62:break;default:throw new Jbig2Error(`segment type ${header.typeName}(${header.type}) is not implemented`);}
const callbackName="on"+header.typeName;if(callbackName in visitor){visitor[callbackName].apply(visitor,args);}}
function processSegments(segments,visitor){for(let i=0,ii=segments.length;i<ii;i++){processSegment(segments[i],visitor);}}
function parseJbig2Chunks(chunks){const visitor=new SimpleSegmentVisitor();for(let i=0,ii=chunks.length;i<ii;i++){const chunk=chunks[i];const segments=readSegments({},chunk.data,chunk.start,chunk.end);processSegments(segments,visitor);}
return visitor.buffer;}
function parseJbig2(data){throw new Error("Not implemented: parseJbig2");}
class SimpleSegmentVisitor{onPageInformation(info){this.currentPageInfo=info;const rowSize=info.width+7>>3;const buffer=new Uint8ClampedArray(rowSize*info.height);if(info.defaultPixelValue){buffer.fill(0xff);}
this.buffer=buffer;}
drawBitmap(regionInfo,bitmap){const pageInfo=this.currentPageInfo;const width=regionInfo.width,height=regionInfo.height;const rowSize=pageInfo.width+7>>3;const combinationOperator=pageInfo.combinationOperatorOverride?regionInfo.combinationOperator:pageInfo.combinationOperator;const buffer=this.buffer;const mask0=128>>(regionInfo.x&7);let offset0=regionInfo.y*rowSize+(regionInfo.x>>3);let i,j,mask,offset;switch(combinationOperator){case 0:for(i=0;i<height;i++){mask=mask0;offset=offset0;for(j=0;j<width;j++){if(bitmap[i][j]){buffer[offset]|=mask;}
mask>>=1;if(!mask){mask=128;offset++;}}
offset0+=rowSize;}
break;case 2:for(i=0;i<height;i++){mask=mask0;offset=offset0;for(j=0;j<width;j++){if(bitmap[i][j]){buffer[offset]^=mask;}
mask>>=1;if(!mask){mask=128;offset++;}}
offset0+=rowSize;}
break;default:throw new Jbig2Error(`operator ${combinationOperator} is not supported`);}}
onImmediateGenericRegion(region,data,start,end){const regionInfo=region.info;const decodingContext=new DecodingContext(data,start,end);const bitmap=decodeBitmap(region.mmr,regionInfo.width,regionInfo.height,region.template,region.prediction,null,region.at,decodingContext);this.drawBitmap(regionInfo,bitmap);}
onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion(...arguments);}
onSymbolDictionary(dictionary,currentSegment,referredSegments,data,start,end){let huffmanTables,huffmanInput;if(dictionary.huffman){huffmanTables=getSymbolDictionaryHuffmanTables(dictionary,referredSegments,this.customTables);huffmanInput=new Reader(data,start,end);}
let symbols=this.symbols;if(!symbols){this.symbols=symbols={};}
const inputSymbols=[];for(const referredSegment of referredSegments){const referredSymbols=symbols[referredSegment];if(referredSymbols){inputSymbols.push(...referredSymbols);}}
const decodingContext=new DecodingContext(data,start,end);symbols[currentSegment]=decodeSymbolDictionary(dictionary.huffman,dictionary.refinement,inputSymbols,dictionary.numberOfNewSymbols,dictionary.numberOfExportedSymbols,huffmanTables,dictionary.template,dictionary.at,dictionary.refinementTemplate,dictionary.refinementAt,decodingContext,huffmanInput);}
onImmediateTextRegion(region,referredSegments,data,start,end){const regionInfo=region.info;let huffmanTables,huffmanInput;const symbols=this.symbols;const inputSymbols=[];for(const referredSegment of referredSegments){const referredSymbols=symbols[referredSegment];if(referredSymbols){inputSymbols.push(...referredSymbols);}}
const symbolCodeLength=(0,_core_utils.log2)(inputSymbols.length);if(region.huffman){huffmanInput=new Reader(data,start,end);huffmanTables=getTextRegionHuffmanTables(region,referredSegments,this.customTables,inputSymbols.length,huffmanInput);}
const decodingContext=new DecodingContext(data,start,end);const bitmap=decodeTextRegion(region.huffman,region.refinement,regionInfo.width,regionInfo.height,region.defaultPixelValue,region.numberOfSymbolInstances,region.stripSize,inputSymbols,symbolCodeLength,region.transposed,region.dsOffset,region.referenceCorner,region.combinationOperator,huffmanTables,region.refinementTemplate,region.refinementAt,decodingContext,region.logStripSize,huffmanInput);this.drawBitmap(regionInfo,bitmap);}
onImmediateLosslessTextRegion(){this.onImmediateTextRegion(...arguments);}
onPatternDictionary(dictionary,currentSegment,data,start,end){let patterns=this.patterns;if(!patterns){this.patterns=patterns={};}
const decodingContext=new DecodingContext(data,start,end);patterns[currentSegment]=decodePatternDictionary(dictionary.mmr,dictionary.patternWidth,dictionary.patternHeight,dictionary.maxPatternIndex,dictionary.template,decodingContext);}
onImmediateHalftoneRegion(region,referredSegments,data,start,end){const patterns=this.patterns[referredSegments[0]];const regionInfo=region.info;const decodingContext=new DecodingContext(data,start,end);const bitmap=decodeHalftoneRegion(region.mmr,patterns,region.template,regionInfo.width,regionInfo.height,region.defaultPixelValue,region.enableSkip,region.combinationOperator,region.gridWidth,region.gridHeight,region.gridOffsetX,region.gridOffsetY,region.gridVectorX,region.gridVectorY,decodingContext);this.drawBitmap(regionInfo,bitmap);}
onImmediateLosslessHalftoneRegion(){this.onImmediateHalftoneRegion(...arguments);}
onTables(currentSegment,data,start,end){let customTables=this.customTables;if(!customTables){this.customTables=customTables={};}
customTables[currentSegment]=decodeTablesSegment(data,start,end);}}
class HuffmanLine{constructor(lineData){if(lineData.length===2){this.isOOB=true;this.rangeLow=0;this.prefixLength=lineData[0];this.rangeLength=0;this.prefixCode=lineData[1];this.isLowerRange=false;}else{this.isOOB=false;this.rangeLow=lineData[0];this.prefixLength=lineData[1];this.rangeLength=lineData[2];this.prefixCode=lineData[3];this.isLowerRange=lineData[4]==="lower";}}}
class HuffmanTreeNode{constructor(line){this.children=[];if(line){this.isLeaf=true;this.rangeLength=line.rangeLength;this.rangeLow=line.rangeLow;this.isLowerRange=line.isLowerRange;this.isOOB=line.isOOB;}else{this.isLeaf=false;}}
buildTree(line,shift){const bit=line.prefixCode>>shift&1;if(shift<=0){this.children[bit]=new HuffmanTreeNode(line);}else{let node=this.children[bit];if(!node){this.children[bit]=node=new HuffmanTreeNode(null);}
node.buildTree(line,shift-1);}}
decodeNode(reader){if(this.isLeaf){if(this.isOOB){return null;}
const htOffset=reader.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-htOffset:htOffset);}
const node=this.children[reader.readBit()];if(!node){throw new Jbig2Error("invalid Huffman data");}
return node.decodeNode(reader);}}
class HuffmanTable{constructor(lines,prefixCodesDone){if(!prefixCodesDone){this.assignPrefixCodes(lines);}
this.rootNode=new HuffmanTreeNode(null);for(let i=0,ii=lines.length;i<ii;i++){const line=lines[i];if(line.prefixLength>0){this.rootNode.buildTree(line,line.prefixLength-1);}}}
decode(reader){return this.rootNode.decodeNode(reader);}
assignPrefixCodes(lines){const linesLength=lines.length;let prefixLengthMax=0;for(let i=0;i<linesLength;i++){prefixLengthMax=Math.max(prefixLengthMax,lines[i].prefixLength);}
const histogram=new Uint32Array(prefixLengthMax+1);for(let i=0;i<linesLength;i++){histogram[lines[i].prefixLength]++;}
let currentLength=1,firstCode=0,currentCode,currentTemp,line;histogram[0]=0;while(currentLength<=prefixLengthMax){firstCode=firstCode+histogram[currentLength-1]<<1;currentCode=firstCode;currentTemp=0;while(currentTemp<linesLength){line=lines[currentTemp];if(line.prefixLength===currentLength){line.prefixCode=currentCode;currentCode++;}
currentTemp++;}
currentLength++;}}}
function decodeTablesSegment(data,start,end){const flags=data[start];const lowestValue=(0,_core_utils.readUint32)(data,start+1)&0xffffffff;const highestValue=(0,_core_utils.readUint32)(data,start+5)&0xffffffff;const reader=new Reader(data,start+9,end);const prefixSizeBits=(flags>>1&7)+1;const rangeSizeBits=(flags>>4&7)+1;const lines=[];let prefixLength,rangeLength,currentRangeLow=lowestValue;do{prefixLength=reader.readBits(prefixSizeBits);rangeLength=reader.readBits(rangeSizeBits);lines.push(new HuffmanLine([currentRangeLow,prefixLength,rangeLength,0]));currentRangeLow+=1<<rangeLength;}while(currentRangeLow<highestValue);prefixLength=reader.readBits(prefixSizeBits);lines.push(new HuffmanLine([lowestValue-1,prefixLength,32,0,"lower"]));prefixLength=reader.readBits(prefixSizeBits);lines.push(new HuffmanLine([highestValue,prefixLength,32,0]));if(flags&1){prefixLength=reader.readBits(prefixSizeBits);lines.push(new HuffmanLine([prefixLength,0]));}
return new HuffmanTable(lines,false);}
const standardTablesCache={};function getStandardTable(number){let table=standardTablesCache[number];if(table){return table;}
let lines;switch(number){case 1:lines=[[0,1,4,0x0],[16,2,8,0x2],[272,3,16,0x6],[65808,3,32,0x7]];break;case 2:lines=[[0,1,0,0x0],[1,2,0,0x2],[2,3,0,0x6],[3,4,3,0xe],[11,5,6,0x1e],[75,6,32,0x3e],[6,0x3f]];break;case 3:lines=[[-256,8,8,0xfe],[0,1,0,0x0],[1,2,0,0x2],[2,3,0,0x6],[3,4,3,0xe],[11,5,6,0x1e],[-257,8,32,0xff,"lower"],[75,7,32,0x7e],[6,0x3e]];break;case 4:lines=[[1,1,0,0x0],[2,2,0,0x2],[3,3,0,0x6],[4,4,3,0xe],[12,5,6,0x1e],[76,5,32,0x1f]];break;case 5:lines=[[-255,7,8,0x7e],[1,1,0,0x0],[2,2,0,0x2],[3,3,0,0x6],[4,4,3,0xe],[12,5,6,0x1e],[-256,7,32,0x7f,"lower"],[76,6,32,0x3e]];break;case 6:lines=[[-2048,5,10,0x1c],[-1024,4,9,0x8],[-512,4,8,0x9],[-256,4,7,0xa],[-128,5,6,0x1d],[-64,5,5,0x1e],[-32,4,5,0xb],[0,2,7,0x0],[128,3,7,0x2],[256,3,8,0x3],[512,4,9,0xc],[1024,4,10,0xd],[-2049,6,32,0x3e,"lower"],[2048,6,32,0x3f]];break;case 7:lines=[[-1024,4,9,0x8],[-512,3,8,0x0],[-256,4,7,0x9],[-128,5,6,0x1a],[-64,5,5,0x1b],[-32,4,5,0xa],[0,4,5,0xb],[32,5,5,0x1c],[64,5,6,0x1d],[128,4,7,0xc],[256,3,8,0x1],[512,3,9,0x2],[1024,3,10,0x3],[-1025,5,32,0x1e,"lower"],[2048,5,32,0x1f]];break;case 8:lines=[[-15,8,3,0xfc],[-7,9,1,0x1fc],[-5,8,1,0xfd],[-3,9,0,0x1fd],[-2,7,0,0x7c],[-1,4,0,0xa],[0,2,1,0x0],[2,5,0,0x1a],[3,6,0,0x3a],[4,3,4,0x4],[20,6,1,0x3b],[22,4,4,0xb],[38,4,5,0xc],[70,5,6,0x1b],[134,5,7,0x1c],[262,6,7,0x3c],[390,7,8,0x7d],[646,6,10,0x3d],[-16,9,32,0x1fe,"lower"],[1670,9,32,0x1ff],[2,0x1]];break;case 9:lines=[[-31,8,4,0xfc],[-15,9,2,0x1fc],[-11,8,2,0xfd],[-7,9,1,0x1fd],[-5,7,1,0x7c],[-3,4,1,0xa],[-1,3,1,0x2],[1,3,1,0x3],[3,5,1,0x1a],[5,6,1,0x3a],[7,3,5,0x4],[39,6,2,0x3b],[43,4,5,0xb],[75,4,6,0xc],[139,5,7,0x1b],[267,5,8,0x1c],[523,6,8,0x3c],[779,7,9,0x7d],[1291,6,11,0x3d],[-32,9,32,0x1fe,"lower"],[3339,9,32,0x1ff],[2,0x0]];break;case 10:lines=[[-21,7,4,0x7a],[-5,8,0,0xfc],[-4,7,0,0x7b],[-3,5,0,0x18],[-2,2,2,0x0],[2,5,0,0x19],[3,6,0,0x36],[4,7,0,0x7c],[5,8,0,0xfd],[6,2,6,0x1],[70,5,5,0x1a],[102,6,5,0x37],[134,6,6,0x38],[198,6,7,0x39],[326,6,8,0x3a],[582,6,9,0x3b],[1094,6,10,0x3c],[2118,7,11,0x7d],[-22,8,32,0xfe,"lower"],[4166,8,32,0xff],[2,0x2]];break;case 11:lines=[[1,1,0,0x0],[2,2,1,0x2],[4,4,0,0xc],[5,4,1,0xd],[7,5,1,0x1c],[9,5,2,0x1d],[13,6,2,0x3c],[17,7,2,0x7a],[21,7,3,0x7b],[29,7,4,0x7c],[45,7,5,0x7d],[77,7,6,0x7e],[141,7,32,0x7f]];break;case 12:lines=[[1,1,0,0x0],[2,2,0,0x2],[3,3,1,0x6],[5,5,0,0x1c],[6,5,1,0x1d],[8,6,1,0x3c],[10,7,0,0x7a],[11,7,1,0x7b],[13,7,2,0x7c],[17,7,3,0x7d],[25,7,4,0x7e],[41,8,5,0xfe],[73,8,32,0xff]];break;case 13:lines=[[1,1,0,0x0],[2,3,0,0x4],[3,4,0,0xc],[4,5,0,0x1c],[5,4,1,0xd],[7,3,3,0x5],[15,6,1,0x3a],[17,6,2,0x3b],[21,6,3,0x3c],[29,6,4,0x3d],[45,6,5,0x3e],[77,7,6,0x7e],[141,7,32,0x7f]];break;case 14:lines=[[-2,3,0,0x4],[-1,3,0,0x5],[0,1,0,0x0],[1,3,0,0x6],[2,3,0,0x7]];break;case 15:lines=[[-24,7,4,0x7c],[-8,6,2,0x3c],[-4,5,1,0x1c],[-2,4,0,0xc],[-1,3,0,0x4],[0,1,0,0x0],[1,3,0,0x5],[2,4,0,0xd],[3,5,1,0x1d],[5,6,2,0x3d],[9,7,4,0x7d],[-25,7,32,0x7e,"lower"],[25,7,32,0x7f]];break;default:throw new Jbig2Error(`standard table B.${number} does not exist`);}
for(let i=0,ii=lines.length;i<ii;i++){lines[i]=new HuffmanLine(lines[i]);}
table=new HuffmanTable(lines,true);standardTablesCache[number]=table;return table;}
class Reader{constructor(data,start,end){this.data=data;this.start=start;this.end=end;this.position=start;this.shift=-1;this.currentByte=0;}
readBit(){if(this.shift<0){if(this.position>=this.end){throw new Jbig2Error("end of data while reading bit");}
this.currentByte=this.data[this.position++];this.shift=7;}
const bit=this.currentByte>>this.shift&1;this.shift--;return bit;}
readBits(numBits){let result=0,i;for(i=numBits-1;i>=0;i--){result|=this.readBit()<<i;}
return result;}
byteAlign(){this.shift=-1;}
next(){if(this.position>=this.end){return-1;}
return this.data[this.position++];}}
function getCustomHuffmanTable(index,referredTo,customTables){let currentIndex=0;for(let i=0,ii=referredTo.length;i<ii;i++){const table=customTables[referredTo[i]];if(table){if(index===currentIndex){return table;}
currentIndex++;}}
throw new Jbig2Error("can't find custom Huffman table");}
function getTextRegionHuffmanTables(textRegion,referredTo,customTables,numberOfSymbols,reader){const codes=[];for(let i=0;i<=34;i++){const codeLength=reader.readBits(4);codes.push(new HuffmanLine([i,codeLength,0,0]));}
const runCodesTable=new HuffmanTable(codes,false);codes.length=0;for(let i=0;i<numberOfSymbols;){const codeLength=runCodesTable.decode(reader);if(codeLength>=32){let repeatedLength,numberOfRepeats,j;switch(codeLength){case 32:if(i===0){throw new Jbig2Error("no previous value in symbol ID table");}
numberOfRepeats=reader.readBits(2)+3;repeatedLength=codes[i-1].prefixLength;break;case 33:numberOfRepeats=reader.readBits(3)+3;repeatedLength=0;break;case 34:numberOfRepeats=reader.readBits(7)+11;repeatedLength=0;break;default:throw new Jbig2Error("invalid code length in symbol ID table");}
for(j=0;j<numberOfRepeats;j++){codes.push(new HuffmanLine([i,repeatedLength,0,0]));i++;}}else{codes.push(new HuffmanLine([i,codeLength,0,0]));i++;}}
reader.byteAlign();const symbolIDTable=new HuffmanTable(codes,false);let customIndex=0,tableFirstS,tableDeltaS,tableDeltaT;switch(textRegion.huffmanFS){case 0:case 1:tableFirstS=getStandardTable(textRegion.huffmanFS+6);break;case 3:tableFirstS=getCustomHuffmanTable(customIndex,referredTo,customTables);customIndex++;break;default:throw new Jbig2Error("invalid Huffman FS selector");}
switch(textRegion.huffmanDS){case 0:case 1:case 2:tableDeltaS=getStandardTable(textRegion.huffmanDS+8);break;case 3:tableDeltaS=getCustomHuffmanTable(customIndex,referredTo,customTables);customIndex++;break;default:throw new Jbig2Error("invalid Huffman DS selector");}
switch(textRegion.huffmanDT){case 0:case 1:case 2:tableDeltaT=getStandardTable(textRegion.huffmanDT+11);break;case 3:tableDeltaT=getCustomHuffmanTable(customIndex,referredTo,customTables);customIndex++;break;default:throw new Jbig2Error("invalid Huffman DT selector");}
if(textRegion.refinement){throw new Jbig2Error("refinement with Huffman is not supported");}
return{symbolIDTable,tableFirstS,tableDeltaS,tableDeltaT};}
function getSymbolDictionaryHuffmanTables(dictionary,referredTo,customTables){let customIndex=0,tableDeltaHeight,tableDeltaWidth;switch(dictionary.huffmanDHSelector){case 0:case 1:tableDeltaHeight=getStandardTable(dictionary.huffmanDHSelector+4);break;case 3:tableDeltaHeight=getCustomHuffmanTable(customIndex,referredTo,customTables);customIndex++;break;default:throw new Jbig2Error("invalid Huffman DH selector");}
switch(dictionary.huffmanDWSelector){case 0:case 1:tableDeltaWidth=getStandardTable(dictionary.huffmanDWSelector+2);break;case 3:tableDeltaWidth=getCustomHuffmanTable(customIndex,referredTo,customTables);customIndex++;break;default:throw new Jbig2Error("invalid Huffman DW selector");}
let tableBitmapSize,tableAggregateInstances;if(dictionary.bitmapSizeSelector){tableBitmapSize=getCustomHuffmanTable(customIndex,referredTo,customTables);customIndex++;}else{tableBitmapSize=getStandardTable(1);}
if(dictionary.aggregationInstancesSelector){tableAggregateInstances=getCustomHuffmanTable(customIndex,referredTo,customTables);}else{tableAggregateInstances=getStandardTable(1);}
return{tableDeltaHeight,tableDeltaWidth,tableBitmapSize,tableAggregateInstances};}
function readUncompressedBitmap(reader,width,height){const bitmap=[];for(let y=0;y<height;y++){const row=new Uint8Array(width);bitmap.push(row);for(let x=0;x<width;x++){row[x]=reader.readBit();}
reader.byteAlign();}
return bitmap;}
function decodeMMRBitmap(input,width,height,endOfBlock){const params={K:-1,Columns:width,Rows:height,BlackIs1:true,EndOfBlock:endOfBlock};const decoder=new _ccitt.CCITTFaxDecoder(input,params);const bitmap=[];let currentByte,eof=false;for(let y=0;y<height;y++){const row=new Uint8Array(width);bitmap.push(row);let shift=-1;for(let x=0;x<width;x++){if(shift<0){currentByte=decoder.readNextChar();if(currentByte===-1){currentByte=0;eof=true;}
shift=7;}
row[x]=currentByte>>shift&1;shift--;}}
if(endOfBlock&&!eof){const lookForEOFLimit=5;for(let i=0;i<lookForEOFLimit;i++){if(decoder.readNextChar()===-1){break;}}}
return bitmap;}
class Jbig2Image{parseChunks(chunks){return parseJbig2Chunks(chunks);}
parse(data){throw new Error("Not implemented: Jbig2Image.parse");}}
exports.Jbig2Image=Jbig2Image;}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.ArithmeticDecoder=void 0;const QeTable=[{qe:0x5601,nmps:1,nlps:1,switchFlag:1},{qe:0x3401,nmps:2,nlps:6,switchFlag:0},{qe:0x1801,nmps:3,nlps:9,switchFlag:0},{qe:0x0ac1,nmps:4,nlps:12,switchFlag:0},{qe:0x0521,nmps:5,nlps:29,switchFlag:0},{qe:0x0221,nmps:38,nlps:33,switchFlag:0},{qe:0x5601,nmps:7,nlps:6,switchFlag:1},{qe:0x5401,nmps:8,nlps:14,switchFlag:0},{qe:0x4801,nmps:9,nlps:14,switchFlag:0},{qe:0x3801,nmps:10,nlps:14,switchFlag:0},{qe:0x3001,nmps:11,nlps:17,switchFlag:0},{qe:0x2401,nmps:12,nlps:18,switchFlag:0},{qe:0x1c01,nmps:13,nlps:20,switchFlag:0},{qe:0x1601,nmps:29,nlps:21,switchFlag:0},{qe:0x5601,nmps:15,nlps:14,switchFlag:1},{qe:0x5401,nmps:16,nlps:14,switchFlag:0},{qe:0x5101,nmps:17,nlps:15,switchFlag:0},{qe:0x4801,nmps:18,nlps:16,switchFlag:0},{qe:0x3801,nmps:19,nlps:17,switchFlag:0},{qe:0x3401,nmps:20,nlps:18,switchFlag:0},{qe:0x3001,nmps:21,nlps:19,switchFlag:0},{qe:0x2801,nmps:22,nlps:19,switchFlag:0},{qe:0x2401,nmps:23,nlps:20,switchFlag:0},{qe:0x2201,nmps:24,nlps:21,switchFlag:0},{qe:0x1c01,nmps:25,nlps:22,switchFlag:0},{qe:0x1801,nmps:26,nlps:23,switchFlag:0},{qe:0x1601,nmps:27,nlps:24,switchFlag:0},{qe:0x1401,nmps:28,nlps:25,switchFlag:0},{qe:0x1201,nmps:29,nlps:26,switchFlag:0},{qe:0x1101,nmps:30,nlps:27,switchFlag:0},{qe:0x0ac1,nmps:31,nlps:28,switchFlag:0},{qe:0x09c1,nmps:32,nlps:29,switchFlag:0},{qe:0x08a1,nmps:33,nlps:30,switchFlag:0},{qe:0x0521,nmps:34,nlps:31,switchFlag:0},{qe:0x0441,nmps:35,nlps:32,switchFlag:0},{qe:0x02a1,nmps:36,nlps:33,switchFlag:0},{qe:0x0221,nmps:37,nlps:34,switchFlag:0},{qe:0x0141,nmps:38,nlps:35,switchFlag:0},{qe:0x0111,nmps:39,nlps:36,switchFlag:0},{qe:0x0085,nmps:40,nlps:37,switchFlag:0},{qe:0x0049,nmps:41,nlps:38,switchFlag:0},{qe:0x0025,nmps:42,nlps:39,switchFlag:0},{qe:0x0015,nmps:43,nlps:40,switchFlag:0},{qe:0x0009,nmps:44,nlps:41,switchFlag:0},{qe:0x0005,nmps:45,nlps:42,switchFlag:0},{qe:0x0001,nmps:45,nlps:43,switchFlag:0},{qe:0x5601,nmps:46,nlps:46,switchFlag:0}];class ArithmeticDecoder{constructor(data,start,end){this.data=data;this.bp=start;this.dataEnd=end;this.chigh=data[start];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&0xffff|this.clow>>9&0x7f;this.clow=this.clow<<7&0xffff;this.ct-=7;this.a=0x8000;}
byteIn(){const data=this.data;let bp=this.bp;if(data[bp]===0xff){if(data[bp+1]>0x8f){this.clow+=0xff00;this.ct=8;}else{bp++;this.clow+=data[bp]<<9;this.ct=7;this.bp=bp;}}else{bp++;this.clow+=bp<this.dataEnd?data[bp]<<8:0xff00;this.ct=8;this.bp=bp;}
if(this.clow>0xffff){this.chigh+=this.clow>>16;this.clow&=0xffff;}}
readBit(contexts,pos){let cx_index=contexts[pos]>>1,cx_mps=contexts[pos]&1;const qeTableIcx=QeTable[cx_index];const qeIcx=qeTableIcx.qe;let d;let a=this.a-qeIcx;if(this.chigh<qeIcx){if(a<qeIcx){a=qeIcx;d=cx_mps;cx_index=qeTableIcx.nmps;}else{a=qeIcx;d=1^cx_mps;if(qeTableIcx.switchFlag===1){cx_mps=d;}
cx_index=qeTableIcx.nlps;}}else{this.chigh-=qeIcx;if((a&0x8000)!==0){this.a=a;return cx_mps;}
if(a<qeIcx){d=1^cx_mps;if(qeTableIcx.switchFlag===1){cx_mps=d;}
cx_index=qeTableIcx.nlps;}else{d=cx_mps;cx_index=qeTableIcx.nmps;}}
do{if(this.ct===0){this.byteIn();}
a<<=1;this.chigh=this.chigh<<1&0xffff|this.clow>>15&1;this.clow=this.clow<<1&0xffff;this.ct--;}while((a&0x8000)===0);this.a=a;contexts[pos]=cx_index<<1|cx_mps;return d;}}
exports.ArithmeticDecoder=ArithmeticDecoder;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.JpegStream=void 0;var _decode_stream=__w_pdfjs_require__(144);var _primitives=__w_pdfjs_require__(130);var _jpg=__w_pdfjs_require__(153);var _util=__w_pdfjs_require__(2);class JpegStream extends _decode_stream.DecodeStream{constructor(stream,maybeLength,params){let ch;while((ch=stream.getByte())!==-1){if(ch===0xff){stream.skip(-1);break;}}
super(maybeLength);this.stream=stream;this.dict=stream.dict;this.maybeLength=maybeLength;this.params=params;}
get bytes(){return(0,_util.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength));}
ensureBuffer(requested){}
readBlock(){if(this.eof){return;}
const jpegOptions={decodeTransform:undefined,colorTransform:undefined};const decodeArr=this.dict.getArray("D","Decode");if(this.forceRGB&&Array.isArray(decodeArr)){const bitsPerComponent=this.dict.get("BPC","BitsPerComponent")||8;const decodeArrLength=decodeArr.length;const transform=new Int32Array(decodeArrLength);let transformNeeded=false;const maxValue=(1<<bitsPerComponent)-1;for(let i=0;i<decodeArrLength;i+=2){transform[i]=(decodeArr[i+1]-decodeArr[i])*256|0;transform[i+1]=decodeArr[i]*maxValue|0;if(transform[i]!==256||transform[i+1]!==0){transformNeeded=true;}}
if(transformNeeded){jpegOptions.decodeTransform=transform;}}
if(this.params instanceof _primitives.Dict){const colorTransform=this.params.get("ColorTransform");if(Number.isInteger(colorTransform)){jpegOptions.colorTransform=colorTransform;}}
const jpegImage=new _jpg.JpegImage(jpegOptions);jpegImage.parse(this.bytes);const data=jpegImage.getData({width:this.drawWidth,height:this.drawHeight,forceRGB:this.forceRGB,isSourcePDF:true});this.buffer=data;this.bufferLength=data.length;this.eof=true;}}
exports.JpegStream=JpegStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.JpegImage=void 0;var _util=__w_pdfjs_require__(2);var _core_utils=__w_pdfjs_require__(131);class JpegError extends _util.BaseException{constructor(msg){super(`JPEG error: ${msg}`,"JpegError");}}
class DNLMarkerError extends _util.BaseException{constructor(message,scanLines){super(message,"DNLMarkerError");this.scanLines=scanLines;}}
class EOIMarkerError extends _util.BaseException{constructor(msg){super(msg,"EOIMarkerError");}}
const dctZigZag=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);const dctCos1=4017;const dctSin1=799;const dctCos3=3406;const dctSin3=2276;const dctCos6=1567;const dctSin6=3784;const dctSqrt2=5793;const dctSqrt1d2=2896;function buildHuffmanTable(codeLengths,values){let k=0,i,j,length=16;while(length>0&&!codeLengths[length-1]){length--;}
const code=[{children:[],index:0}];let p=code[0],q;for(i=0;i<length;i++){for(j=0;j<codeLengths[i];j++){p=code.pop();p.children[p.index]=values[k];while(p.index>0){p=code.pop();}
p.index++;code.push(p);while(code.length<=i){code.push(q={children:[],index:0});p.children[p.index]=q.children;p=q;}
k++;}
if(i+1<length){code.push(q={children:[],index:0});p.children[p.index]=q.children;p=q;}}
return code[0].children;}
function getBlockBufferOffset(component,row,col){return 64*((component.blocksPerLine+1)*row+col);}
function decodeScan(data,offset,frame,components,resetInterval,spectralStart,spectralEnd,successivePrev,successive){let parseDNLMarker=arguments.length>9&&arguments[9]!==undefined?arguments[9]:false;const mcusPerLine=frame.mcusPerLine;const progressive=frame.progressive;const startOffset=offset;let bitsData=0,bitsCount=0;function readBit(){if(bitsCount>0){bitsCount--;return bitsData>>bitsCount&1;}
bitsData=data[offset++];if(bitsData===0xff){const nextByte=data[offset++];if(nextByte){if(nextByte===0xdc&&parseDNLMarker){offset+=2;const scanLines=(0,_core_utils.readUint16)(data,offset);offset+=2;if(scanLines>0&&scanLines!==frame.scanLines){throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",scanLines);}}else if(nextByte===0xd9){if(parseDNLMarker){const maybeScanLines=blockRow*(frame.precision===8?8:0);if(maybeScanLines>0&&Math.round(frame.scanLines/maybeScanLines)>=10){throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, "+"possibly caused by incorrect `scanLines` parameter",maybeScanLines);}}
throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data");}
throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`);}}
bitsCount=7;return bitsData>>>7;}
function decodeHuffman(tree){let node=tree;while(true){node=node[readBit()];switch(typeof node){case"number":return node;case"object":continue;}
throw new JpegError("invalid huffman sequence");}}
function receive(length){let n=0;while(length>0){n=n<<1|readBit();length--;}
return n;}
function receiveAndExtend(length){if(length===1){return readBit()===1?1:-1;}
const n=receive(length);if(n>=1<<length-1){return n;}
return n+(-1<<length)+1;}
function decodeBaseline(component,blockOffset){const t=decodeHuffman(component.huffmanTableDC);const diff=t===0?0:receiveAndExtend(t);component.blockData[blockOffset]=component.pred+=diff;let k=1;while(k<64){const rs=decodeHuffman(component.huffmanTableAC);const s=rs&15,r=rs>>4;if(s===0){if(r<15){break;}
k+=16;continue;}
k+=r;const z=dctZigZag[k];component.blockData[blockOffset+z]=receiveAndExtend(s);k++;}}
function decodeDCFirst(component,blockOffset){const t=decodeHuffman(component.huffmanTableDC);const diff=t===0?0:receiveAndExtend(t)<<successive;component.blockData[blockOffset]=component.pred+=diff;}
function decodeDCSuccessive(component,blockOffset){component.blockData[blockOffset]|=readBit()<<successive;}
let eobrun=0;function decodeACFirst(component,blockOffset){if(eobrun>0){eobrun--;return;}
let k=spectralStart;const e=spectralEnd;while(k<=e){const rs=decodeHuffman(component.huffmanTableAC);const s=rs&15,r=rs>>4;if(s===0){if(r<15){eobrun=receive(r)+(1<<r)-1;break;}
k+=16;continue;}
k+=r;const z=dctZigZag[k];component.blockData[blockOffset+z]=receiveAndExtend(s)*(1<<successive);k++;}}
let successiveACState=0,successiveACNextValue;function decodeACSuccessive(component,blockOffset){let k=spectralStart;const e=spectralEnd;let r=0;let s;let rs;while(k<=e){const offsetZ=blockOffset+dctZigZag[k];const sign=component.blockData[offsetZ]<0?-1:1;switch(successiveACState){case 0:rs=decodeHuffman(component.huffmanTableAC);s=rs&15;r=rs>>4;if(s===0){if(r<15){eobrun=receive(r)+(1<<r);successiveACState=4;}else{r=16;successiveACState=1;}}else{if(s!==1){throw new JpegError("invalid ACn encoding");}
successiveACNextValue=receiveAndExtend(s);successiveACState=r?2:3;}
continue;case 1:case 2:if(component.blockData[offsetZ]){component.blockData[offsetZ]+=sign*(readBit()<<successive);}else{r--;if(r===0){successiveACState=successiveACState===2?3:0;}}
break;case 3:if(component.blockData[offsetZ]){component.blockData[offsetZ]+=sign*(readBit()<<successive);}else{component.blockData[offsetZ]=successiveACNextValue<<successive;successiveACState=0;}
break;case 4:if(component.blockData[offsetZ]){component.blockData[offsetZ]+=sign*(readBit()<<successive);}
break;}
k++;}
if(successiveACState===4){eobrun--;if(eobrun===0){successiveACState=0;}}}
let blockRow=0;function decodeMcu(component,decode,mcu,row,col){const mcuRow=mcu/mcusPerLine|0;const mcuCol=mcu%mcusPerLine;blockRow=mcuRow*component.v+row;const blockCol=mcuCol*component.h+col;const blockOffset=getBlockBufferOffset(component,blockRow,blockCol);decode(component,blockOffset);}
function decodeBlock(component,decode,mcu){blockRow=mcu/component.blocksPerLine|0;const blockCol=mcu%component.blocksPerLine;const blockOffset=getBlockBufferOffset(component,blockRow,blockCol);decode(component,blockOffset);}
const componentsLength=components.length;let component,i,j,k,n;let decodeFn;if(progressive){if(spectralStart===0){decodeFn=successivePrev===0?decodeDCFirst:decodeDCSuccessive;}else{decodeFn=successivePrev===0?decodeACFirst:decodeACSuccessive;}}else{decodeFn=decodeBaseline;}
let mcu=0,fileMarker;let mcuExpected;if(componentsLength===1){mcuExpected=components[0].blocksPerLine*components[0].blocksPerColumn;}else{mcuExpected=mcusPerLine*frame.mcusPerColumn;}
let h,v;while(mcu<=mcuExpected){const mcuToRead=resetInterval?Math.min(mcuExpected-mcu,resetInterval):mcuExpected;if(mcuToRead>0){for(i=0;i<componentsLength;i++){components[i].pred=0;}
eobrun=0;if(componentsLength===1){component=components[0];for(n=0;n<mcuToRead;n++){decodeBlock(component,decodeFn,mcu);mcu++;}}else{for(n=0;n<mcuToRead;n++){for(i=0;i<componentsLength;i++){component=components[i];h=component.h;v=component.v;for(j=0;j<v;j++){for(k=0;k<h;k++){decodeMcu(component,decodeFn,mcu,j,k);}}}
mcu++;}}}
bitsCount=0;fileMarker=findNextFileMarker(data,offset);if(!fileMarker){break;}
if(fileMarker.invalid){const partialMsg=mcuToRead>0?"unexpected":"excessive";(0,_util.warn)(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`);offset=fileMarker.offset;}
if(fileMarker.marker>=0xffd0&&fileMarker.marker<=0xffd7){offset+=2;}else{break;}}
return offset-startOffset;}
function quantizeAndInverse(component,blockBufferOffset,p){const qt=component.quantizationTable,blockData=component.blockData;let v0,v1,v2,v3,v4,v5,v6,v7;let p0,p1,p2,p3,p4,p5,p6,p7;let t;if(!qt){throw new JpegError("missing required Quantization Table.");}
for(let row=0;row<64;row+=8){p0=blockData[blockBufferOffset+row];p1=blockData[blockBufferOffset+row+1];p2=blockData[blockBufferOffset+row+2];p3=blockData[blockBufferOffset+row+3];p4=blockData[blockBufferOffset+row+4];p5=blockData[blockBufferOffset+row+5];p6=blockData[blockBufferOffset+row+6];p7=blockData[blockBufferOffset+row+7];p0*=qt[row];if((p1|p2|p3|p4|p5|p6|p7)===0){t=dctSqrt2*p0+512>>10;p[row]=t;p[row+1]=t;p[row+2]=t;p[row+3]=t;p[row+4]=t;p[row+5]=t;p[row+6]=t;p[row+7]=t;continue;}
p1*=qt[row+1];p2*=qt[row+2];p3*=qt[row+3];p4*=qt[row+4];p5*=qt[row+5];p6*=qt[row+6];p7*=qt[row+7];v0=dctSqrt2*p0+128>>8;v1=dctSqrt2*p4+128>>8;v2=p2;v3=p6;v4=dctSqrt1d2*(p1-p7)+128>>8;v7=dctSqrt1d2*(p1+p7)+128>>8;v5=p3<<4;v6=p5<<4;v0=v0+v1+1>>1;v1=v0-v1;t=v2*dctSin6+v3*dctCos6+128>>8;v2=v2*dctCos6-v3*dctSin6+128>>8;v3=t;v4=v4+v6+1>>1;v6=v4-v6;v7=v7+v5+1>>1;v5=v7-v5;v0=v0+v3+1>>1;v3=v0-v3;v1=v1+v2+1>>1;v2=v1-v2;t=v4*dctSin3+v7*dctCos3+2048>>12;v4=v4*dctCos3-v7*dctSin3+2048>>12;v7=t;t=v5*dctSin1+v6*dctCos1+2048>>12;v5=v5*dctCos1-v6*dctSin1+2048>>12;v6=t;p[row]=v0+v7;p[row+7]=v0-v7;p[row+1]=v1+v6;p[row+6]=v1-v6;p[row+2]=v2+v5;p[row+5]=v2-v5;p[row+3]=v3+v4;p[row+4]=v3-v4;}
for(let col=0;col<8;++col){p0=p[col];p1=p[col+8];p2=p[col+16];p3=p[col+24];p4=p[col+32];p5=p[col+40];p6=p[col+48];p7=p[col+56];if((p1|p2|p3|p4|p5|p6|p7)===0){t=dctSqrt2*p0+8192>>14;if(t<-2040){t=0;}else if(t>=2024){t=255;}else{t=t+2056>>4;}
blockData[blockBufferOffset+col]=t;blockData[blockBufferOffset+col+8]=t;blockData[blockBufferOffset+col+16]=t;blockData[blockBufferOffset+col+24]=t;blockData[blockBufferOffset+col+32]=t;blockData[blockBufferOffset+col+40]=t;blockData[blockBufferOffset+col+48]=t;blockData[blockBufferOffset+col+56]=t;continue;}
v0=dctSqrt2*p0+2048>>12;v1=dctSqrt2*p4+2048>>12;v2=p2;v3=p6;v4=dctSqrt1d2*(p1-p7)+2048>>12;v7=dctSqrt1d2*(p1+p7)+2048>>12;v5=p3;v6=p5;v0=(v0+v1+1>>1)+4112;v1=v0-v1;t=v2*dctSin6+v3*dctCos6+2048>>12;v2=v2*dctCos6-v3*dctSin6+2048>>12;v3=t;v4=v4+v6+1>>1;v6=v4-v6;v7=v7+v5+1>>1;v5=v7-v5;v0=v0+v3+1>>1;v3=v0-v3;v1=v1+v2+1>>1;v2=v1-v2;t=v4*dctSin3+v7*dctCos3+2048>>12;v4=v4*dctCos3-v7*dctSin3+2048>>12;v7=t;t=v5*dctSin1+v6*dctCos1+2048>>12;v5=v5*dctCos1-v6*dctSin1+2048>>12;v6=t;p0=v0+v7;p7=v0-v7;p1=v1+v6;p6=v1-v6;p2=v2+v5;p5=v2-v5;p3=v3+v4;p4=v3-v4;if(p0<16){p0=0;}else if(p0>=4080){p0=255;}else{p0>>=4;}
if(p1<16){p1=0;}else if(p1>=4080){p1=255;}else{p1>>=4;}
if(p2<16){p2=0;}else if(p2>=4080){p2=255;}else{p2>>=4;}
if(p3<16){p3=0;}else if(p3>=4080){p3=255;}else{p3>>=4;}
if(p4<16){p4=0;}else if(p4>=4080){p4=255;}else{p4>>=4;}
if(p5<16){p5=0;}else if(p5>=4080){p5=255;}else{p5>>=4;}
if(p6<16){p6=0;}else if(p6>=4080){p6=255;}else{p6>>=4;}
if(p7<16){p7=0;}else if(p7>=4080){p7=255;}else{p7>>=4;}
blockData[blockBufferOffset+col]=p0;blockData[blockBufferOffset+col+8]=p1;blockData[blockBufferOffset+col+16]=p2;blockData[blockBufferOffset+col+24]=p3;blockData[blockBufferOffset+col+32]=p4;blockData[blockBufferOffset+col+40]=p5;blockData[blockBufferOffset+col+48]=p6;blockData[blockBufferOffset+col+56]=p7;}}
function buildComponentData(frame,component){const blocksPerLine=component.blocksPerLine;const blocksPerColumn=component.blocksPerColumn;const computationBuffer=new Int16Array(64);for(let blockRow=0;blockRow<blocksPerColumn;blockRow++){for(let blockCol=0;blockCol<blocksPerLine;blockCol++){const offset=getBlockBufferOffset(component,blockRow,blockCol);quantizeAndInverse(component,offset,computationBuffer);}}
return component.blockData;}
function findNextFileMarker(data,currentPos){let startPos=arguments.length>2&&arguments[2]!==undefined?arguments[2]:currentPos;const maxPos=data.length-1;let newPos=startPos<currentPos?startPos:currentPos;if(currentPos>=maxPos){return null;}
const currentMarker=(0,_core_utils.readUint16)(data,currentPos);if(currentMarker>=0xffc0&&currentMarker<=0xfffe){return{invalid:null,marker:currentMarker,offset:currentPos};}
let newMarker=(0,_core_utils.readUint16)(data,newPos);while(!(newMarker>=0xffc0&&newMarker<=0xfffe)){if(++newPos>=maxPos){return null;}
newMarker=(0,_core_utils.readUint16)(data,newPos);}
return{invalid:currentMarker.toString(16),marker:newMarker,offset:newPos};}
class JpegImage{constructor(){let{decodeTransform=null,colorTransform=-1}=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};this._decodeTransform=decodeTransform;this._colorTransform=colorTransform;}
parse(data){let{dnlScanLines=null}=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};function readDataBlock(){const length=(0,_core_utils.readUint16)(data,offset);offset+=2;let endOffset=offset+length-2;const fileMarker=findNextFileMarker(data,endOffset,offset);if(fileMarker&&fileMarker.invalid){(0,_util.warn)("readDataBlock - incorrect length, current marker is: "+fileMarker.invalid);endOffset=fileMarker.offset;}
const array=data.subarray(offset,endOffset);offset+=array.length;return array;}
function prepareComponents(frame){const mcusPerLine=Math.ceil(frame.samplesPerLine/8/frame.maxH);const mcusPerColumn=Math.ceil(frame.scanLines/8/frame.maxV);for(let i=0,ii=frame.components.length;i<ii;i++){const component=frame.components[i];const blocksPerLine=Math.ceil(Math.ceil(frame.samplesPerLine/8)*component.h/frame.maxH);const blocksPerColumn=Math.ceil(Math.ceil(frame.scanLines/8)*component.v/frame.maxV);const blocksPerLineForMcu=mcusPerLine*component.h;const blocksPerColumnForMcu=mcusPerColumn*component.v;const blocksBufferSize=64*blocksPerColumnForMcu*(blocksPerLineForMcu+1);component.blockData=new Int16Array(blocksBufferSize);component.blocksPerLine=blocksPerLine;component.blocksPerColumn=blocksPerColumn;}
frame.mcusPerLine=mcusPerLine;frame.mcusPerColumn=mcusPerColumn;}
let offset=0;let jfif=null;let adobe=null;let frame,resetInterval;let numSOSMarkers=0;const quantizationTables=[];const huffmanTablesAC=[],huffmanTablesDC=[];let fileMarker=(0,_core_utils.readUint16)(data,offset);offset+=2;if(fileMarker!==0xffd8){throw new JpegError("SOI not found");}
fileMarker=(0,_core_utils.readUint16)(data,offset);offset+=2;markerLoop:while(fileMarker!==0xffd9){let i,j,l;switch(fileMarker){case 0xffe0:case 0xffe1:case 0xffe2:case 0xffe3:case 0xffe4:case 0xffe5:case 0xffe6:case 0xffe7:case 0xffe8:case 0xffe9:case 0xffea:case 0xffeb:case 0xffec:case 0xffed:case 0xffee:case 0xffef:case 0xfffe:const appData=readDataBlock();if(fileMarker===0xffe0){if(appData[0]===0x4a&&appData[1]===0x46&&appData[2]===0x49&&appData[3]===0x46&&appData[4]===0){jfif={version:{major:appData[5],minor:appData[6]},densityUnits:appData[7],xDensity:appData[8]<<8|appData[9],yDensity:appData[10]<<8|appData[11],thumbWidth:appData[12],thumbHeight:appData[13],thumbData:appData.subarray(14,14+3*appData[12]*appData[13])};}}
if(fileMarker===0xffee){if(appData[0]===0x41&&appData[1]===0x64&&appData[2]===0x6f&&appData[3]===0x62&&appData[4]===0x65){adobe={version:appData[5]<<8|appData[6],flags0:appData[7]<<8|appData[8],flags1:appData[9]<<8|appData[10],transformCode:appData[11]};}}
break;case 0xffdb:const quantizationTablesLength=(0,_core_utils.readUint16)(data,offset);offset+=2;const quantizationTablesEnd=quantizationTablesLength+offset-2;let z;while(offset<quantizationTablesEnd){const quantizationTableSpec=data[offset++];const tableData=new Uint16Array(64);if(quantizationTableSpec>>4===0){for(j=0;j<64;j++){z=dctZigZag[j];tableData[z]=data[offset++];}}else if(quantizationTableSpec>>4===1){for(j=0;j<64;j++){z=dctZigZag[j];tableData[z]=(0,_core_utils.readUint16)(data,offset);offset+=2;}}else{throw new JpegError("DQT - invalid table spec");}
quantizationTables[quantizationTableSpec&15]=tableData;}
break;case 0xffc0:case 0xffc1:case 0xffc2:if(frame){throw new JpegError("Only single frame JPEGs supported");}
offset+=2;frame={};frame.extended=fileMarker===0xffc1;frame.progressive=fileMarker===0xffc2;frame.precision=data[offset++];const sofScanLines=(0,_core_utils.readUint16)(data,offset);offset+=2;frame.scanLines=dnlScanLines||sofScanLines;frame.samplesPerLine=(0,_core_utils.readUint16)(data,offset);offset+=2;frame.components=[];frame.componentIds={};const componentsCount=data[offset++];let maxH=0,maxV=0;for(i=0;i<componentsCount;i++){const componentId=data[offset];const h=data[offset+1]>>4;const v=data[offset+1]&15;if(maxH<h){maxH=h;}
if(maxV<v){maxV=v;}
const qId=data[offset+2];l=frame.components.push({h,v,quantizationId:qId,quantizationTable:null});frame.componentIds[componentId]=l-1;offset+=3;}
frame.maxH=maxH;frame.maxV=maxV;prepareComponents(frame);break;case 0xffc4:const huffmanLength=(0,_core_utils.readUint16)(data,offset);offset+=2;for(i=2;i<huffmanLength;){const huffmanTableSpec=data[offset++];const codeLengths=new Uint8Array(16);let codeLengthSum=0;for(j=0;j<16;j++,offset++){codeLengthSum+=codeLengths[j]=data[offset];}
const huffmanValues=new Uint8Array(codeLengthSum);for(j=0;j<codeLengthSum;j++,offset++){huffmanValues[j]=data[offset];}
i+=17+codeLengthSum;(huffmanTableSpec>>4===0?huffmanTablesDC:huffmanTablesAC)[huffmanTableSpec&15]=buildHuffmanTable(codeLengths,huffmanValues);}
break;case 0xffdd:offset+=2;resetInterval=(0,_core_utils.readUint16)(data,offset);offset+=2;break;case 0xffda:const parseDNLMarker=++numSOSMarkers===1&&!dnlScanLines;offset+=2;const selectorsCount=data[offset++],components=[];for(i=0;i<selectorsCount;i++){const index=data[offset++];const componentIndex=frame.componentIds[index];const component=frame.components[componentIndex];component.index=index;const tableSpec=data[offset++];component.huffmanTableDC=huffmanTablesDC[tableSpec>>4];component.huffmanTableAC=huffmanTablesAC[tableSpec&15];components.push(component);}
const spectralStart=data[offset++],spectralEnd=data[offset++],successiveApproximation=data[offset++];try{const processed=decodeScan(data,offset,frame,components,resetInterval,spectralStart,spectralEnd,successiveApproximation>>4,successiveApproximation&15,parseDNLMarker);offset+=processed;}catch(ex){if(ex instanceof DNLMarkerError){(0,_util.warn)(`${ex.message} -- attempting to re-parse the JPEG image.`);return this.parse(data,{dnlScanLines:ex.scanLines});}else if(ex instanceof EOIMarkerError){(0,_util.warn)(`${ex.message} -- ignoring the rest of the image data.`);break markerLoop;}
throw ex;}
break;case 0xffdc:offset+=4;break;case 0xffff:if(data[offset]!==0xff){offset--;}
break;default:const nextFileMarker=findNextFileMarker(data,offset-2,offset-3);if(nextFileMarker&&nextFileMarker.invalid){(0,_util.warn)("JpegImage.parse - unexpected data, current marker is: "+nextFileMarker.invalid);offset=nextFileMarker.offset;break;}
if(!nextFileMarker||offset>=data.length-1){(0,_util.warn)("JpegImage.parse - reached the end of the image data "+"without finding an EOI marker (0xFFD9).");break markerLoop;}
throw new JpegError("JpegImage.parse - unknown marker: "+fileMarker.toString(16));}
fileMarker=(0,_core_utils.readUint16)(data,offset);offset+=2;}
this.width=frame.samplesPerLine;this.height=frame.scanLines;this.jfif=jfif;this.adobe=adobe;this.components=[];for(let i=0,ii=frame.components.length;i<ii;i++){const component=frame.components[i];const quantizationTable=quantizationTables[component.quantizationId];if(quantizationTable){component.quantizationTable=quantizationTable;}
this.components.push({index:component.index,output:buildComponentData(frame,component),scaleX:component.h/frame.maxH,scaleY:component.v/frame.maxV,blocksPerLine:component.blocksPerLine,blocksPerColumn:component.blocksPerColumn});}
this.numComponents=this.components.length;return undefined;}
_getLinearizedBlockData(width,height){let isSourcePDF=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;const scaleX=this.width/width,scaleY=this.height/height;let component,componentScaleX,componentScaleY,blocksPerScanline;let x,y,i,j,k;let index;let offset=0;let output;const numComponents=this.components.length;const dataLength=width*height*numComponents;const data=new Uint8ClampedArray(dataLength);const xScaleBlockOffset=new Uint32Array(width);const mask3LSB=0xfffffff8;let lastComponentScaleX;for(i=0;i<numComponents;i++){component=this.components[i];componentScaleX=component.scaleX*scaleX;componentScaleY=component.scaleY*scaleY;offset=i;output=component.output;blocksPerScanline=component.blocksPerLine+1<<3;if(componentScaleX!==lastComponentScaleX){for(x=0;x<width;x++){j=0|x*componentScaleX;xScaleBlockOffset[x]=(j&mask3LSB)<<3|j&7;}
lastComponentScaleX=componentScaleX;}
for(y=0;y<height;y++){j=0|y*componentScaleY;index=blocksPerScanline*(j&mask3LSB)|(j&7)<<3;for(x=0;x<width;x++){data[offset]=output[index+xScaleBlockOffset[x]];offset+=numComponents;}}}
let transform=this._decodeTransform;if(!isSourcePDF&&numComponents===4&&!transform){transform=new Int32Array([-256,255,-256,255,-256,255,-256,255]);}
if(transform){for(i=0;i<dataLength;){for(j=0,k=0;j<numComponents;j++,i++,k+=2){data[i]=(data[i]*transform[k]>>8)+transform[k+1];}}}
return data;}
get _isColorConversionNeeded(){if(this.adobe){return!!this.adobe.transformCode;}
if(this.numComponents===3){if(this._colorTransform===0){return false;}else if(this.components[0].index===0x52&&this.components[1].index===0x47&&this.components[2].index===0x42){return false;}
return true;}
if(this._colorTransform===1){return true;}
return false;}
_convertYccToRgb(data){let Y,Cb,Cr;for(let i=0,length=data.length;i<length;i+=3){Y=data[i];Cb=data[i+1];Cr=data[i+2];data[i]=Y-179.456+1.402*Cr;data[i+1]=Y+135.459-0.344*Cb-0.714*Cr;data[i+2]=Y-226.816+1.772*Cb;}
return data;}
_convertYcckToRgb(data){let Y,Cb,Cr,k;let offset=0;for(let i=0,length=data.length;i<length;i+=4){Y=data[i];Cb=data[i+1];Cr=data[i+2];k=data[i+3];data[offset++]=-122.67195406894+Cb*(-6.60635669420364e-5*Cb+0.000437130475926232*Cr-5.4080610064599e-5*Y+0.00048449797120281*k-0.154362151871126)+Cr*(-0.000957964378445773*Cr+0.000817076911346625*Y-0.00477271405408747*k+1.53380253221734)+Y*(0.000961250184130688*Y-0.00266257332283933*k+0.48357088451265)+k*(-0.000336197177618394*k+0.484791561490776);data[offset++]=107.268039397724+Cb*(2.19927104525741e-5*Cb-0.000640992018297945*Cr+0.000659397001245577*Y+0.000426105652938837*k-0.176491792462875)+Cr*(-0.000778269941513683*Cr+0.00130872261408275*Y+0.000770482631801132*k-0.151051492775562)+Y*(0.00126935368114843*Y-0.00265090189010898*k+0.25802910206845)+k*(-0.000318913117588328*k-0.213742400323665);data[offset++]=-20.810012546947+Cb*(-0.000570115196973677*Cb-2.63409051004589e-5*Cr+0.0020741088115012*Y-0.00288260236853442*k+0.814272968359295)+Cr*(-1.53496057440975e-5*Cr-0.000132689043961446*Y+0.000560833691242812*k-0.195152027534049)+Y*(0.00174418132927582*Y-0.00255243321439347*k+0.116935020465145)+k*(-0.000343531996510555*k+0.24165260232407);}
return data.subarray(0,offset);}
_convertYcckToCmyk(data){let Y,Cb,Cr;for(let i=0,length=data.length;i<length;i+=4){Y=data[i];Cb=data[i+1];Cr=data[i+2];data[i]=434.456-Y-1.402*Cr;data[i+1]=119.541-Y+0.344*Cb+0.714*Cr;data[i+2]=481.816-Y-1.772*Cb;}
return data;}
_convertCmykToRgb(data){let c,m,y,k;let offset=0;for(let i=0,length=data.length;i<length;i+=4){c=data[i];m=data[i+1];y=data[i+2];k=data[i+3];data[offset++]=255+c*(-0.00006747147073602441*c+0.0008379262121013727*m+0.0002894718188643294*y+0.003264231057537806*k-1.1185611867203937)+m*(0.000026374107616089405*m-0.00008626949158638572*y-0.0002748769067499491*k-0.02155688794978967)+y*(-0.00003878099212869363*y-0.0003267808279485286*k+0.0686742238595345)-k*(0.0003361971776183937*k+0.7430659151342254);data[offset++]=255+c*(0.00013596372813588848*c+0.000924537132573585*m+0.00010567359618683593*y+0.0004791864687436512*k-0.3109689587515875)+m*(-0.00023545346108370344*m+0.0002702845253534714*y+0.0020200308977307156*k-0.7488052167015494)+y*(0.00006834815998235662*y+0.00015168452363460973*k-0.09751927774728933)-k*(0.0003189131175883281*k+0.7364883807733168);data[offset++]=255+c*(0.000013598650411385307*c+0.00012423956175490851*m+0.0004751985097583589*y-0.0000036729317476630422*k-0.05562186980264034)+m*(0.00016141380598724676*m+0.0009692239130725186*y+0.0007782692450036253*k-0.44015232367526463)+y*(5.068882914068769e-7*y+0.0017778369011375071*k-0.7591454649749609)-k*(0.0003435319965105553*k+0.7063770186160144);}
return data.subarray(0,offset);}
getData(_ref){let{width,height,forceRGB=false,isSourcePDF=false}=_ref;if(this.numComponents>4){throw new JpegError("Unsupported color mode");}
const data=this._getLinearizedBlockData(width,height,isSourcePDF);if(this.numComponents===1&&forceRGB){const dataLength=data.length;const rgbData=new Uint8ClampedArray(dataLength*3);let offset=0;for(let i=0;i<dataLength;i++){const grayColor=data[i];rgbData[offset++]=grayColor;rgbData[offset++]=grayColor;rgbData[offset++]=grayColor;}
return rgbData;}else if(this.numComponents===3&&this._isColorConversionNeeded){return this._convertYccToRgb(data);}else if(this.numComponents===4){if(this._isColorConversionNeeded){if(forceRGB){return this._convertYcckToRgb(data);}
return this._convertYcckToCmyk(data);}else if(forceRGB){return this._convertCmykToRgb(data);}}
return data;}}
exports.JpegImage=JpegImage;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.JpxStream=void 0;var _decode_stream=__w_pdfjs_require__(144);var _jpx=__w_pdfjs_require__(155);var _util=__w_pdfjs_require__(2);class JpxStream extends _decode_stream.DecodeStream{constructor(stream,maybeLength,params){super(maybeLength);this.stream=stream;this.dict=stream.dict;this.maybeLength=maybeLength;this.params=params;}
get bytes(){return(0,_util.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength));}
ensureBuffer(requested){}
readBlock(){if(this.eof){return;}
const jpxImage=new _jpx.JpxImage();jpxImage.parse(this.bytes);const width=jpxImage.width;const height=jpxImage.height;const componentsCount=jpxImage.componentsCount;const tileCount=jpxImage.tiles.length;if(tileCount===1){this.buffer=jpxImage.tiles[0].items;}else{const data=new Uint8ClampedArray(width*height*componentsCount);for(let k=0;k<tileCount;k++){const tileComponents=jpxImage.tiles[k];const tileWidth=tileComponents.width;const tileHeight=tileComponents.height;const tileLeft=tileComponents.left;const tileTop=tileComponents.top;const src=tileComponents.items;let srcPosition=0;let dataPosition=(width*tileTop+tileLeft)*componentsCount;const imgRowSize=width*componentsCount;const tileRowSize=tileWidth*componentsCount;for(let j=0;j<tileHeight;j++){const rowBytes=src.subarray(srcPosition,srcPosition+tileRowSize);data.set(rowBytes,dataPosition);srcPosition+=tileRowSize;dataPosition+=imgRowSize;}}
this.buffer=data;}
this.bufferLength=this.buffer.length;this.eof=true;}}
exports.JpxStream=JpxStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.JpxImage=void 0;var _util=__w_pdfjs_require__(2);var _core_utils=__w_pdfjs_require__(131);var _arithmetic_decoder=__w_pdfjs_require__(151);class JpxError extends _util.BaseException{constructor(msg){super(`JPX error: ${msg}`,"JpxError");}}
const SubbandsGainLog2={LL:0,LH:1,HL:1,HH:2};class JpxImage{constructor(){this.failOnCorruptedImage=false;}
parse(data){const head=(0,_core_utils.readUint16)(data,0);if(head===0xff4f){this.parseCodestream(data,0,data.length);return;}
const length=data.length;let position=0;while(position<length){let headerSize=8;let lbox=(0,_core_utils.readUint32)(data,position);const tbox=(0,_core_utils.readUint32)(data,position+4);position+=headerSize;if(lbox===1){lbox=(0,_core_utils.readUint32)(data,position)*4294967296+(0,_core_utils.readUint32)(data,position+4);position+=8;headerSize+=8;}
if(lbox===0){lbox=length-position+headerSize;}
if(lbox<headerSize){throw new JpxError("Invalid box field size");}
const dataLength=lbox-headerSize;let jumpDataLength=true;switch(tbox){case 0x6a703268:jumpDataLength=false;break;case 0x636f6c72:const method=data[position];if(method===1){const colorspace=(0,_core_utils.readUint32)(data,position+3);switch(colorspace){case 16:case 17:case 18:break;default:(0,_util.warn)("Unknown colorspace "+colorspace);break;}}else if(method===2){(0,_util.info)("ICC profile not supported");}
break;case 0x6a703263:this.parseCodestream(data,position,position+dataLength);break;case 0x6a502020:if((0,_core_utils.readUint32)(data,position)!==0x0d0a870a){(0,_util.warn)("Invalid JP2 signature");}
break;case 0x6a501a1a:case 0x66747970:case 0x72726571:case 0x72657320:case 0x69686472:break;default:const headerType=String.fromCharCode(tbox>>24&0xff,tbox>>16&0xff,tbox>>8&0xff,tbox&0xff);(0,_util.warn)(`Unsupported header type ${tbox} (${headerType}).`);break;}
if(jumpDataLength){position+=dataLength;}}}
parseImageProperties(stream){let newByte=stream.getByte();while(newByte>=0){const oldByte=newByte;newByte=stream.getByte();const code=oldByte<<8|newByte;if(code===0xff51){stream.skip(4);const Xsiz=stream.getInt32()>>>0;const Ysiz=stream.getInt32()>>>0;const XOsiz=stream.getInt32()>>>0;const YOsiz=stream.getInt32()>>>0;stream.skip(16);const Csiz=stream.getUint16();this.width=Xsiz-XOsiz;this.height=Ysiz-YOsiz;this.componentsCount=Csiz;this.bitsPerComponent=8;return;}}
throw new JpxError("No size marker found in JPX stream");}
parseCodestream(data,start,end){const context={};let doNotRecover=false;try{let position=start;while(position+1<end){const code=(0,_core_utils.readUint16)(data,position);position+=2;let length=0,j,sqcd,spqcds,spqcdSize,scalarExpounded,tile;switch(code){case 0xff4f:context.mainHeader=true;break;case 0xffd9:break;case 0xff51:length=(0,_core_utils.readUint16)(data,position);const siz={};siz.Xsiz=(0,_core_utils.readUint32)(data,position+4);siz.Ysiz=(0,_core_utils.readUint32)(data,position+8);siz.XOsiz=(0,_core_utils.readUint32)(data,position+12);siz.YOsiz=(0,_core_utils.readUint32)(data,position+16);siz.XTsiz=(0,_core_utils.readUint32)(data,position+20);siz.YTsiz=(0,_core_utils.readUint32)(data,position+24);siz.XTOsiz=(0,_core_utils.readUint32)(data,position+28);siz.YTOsiz=(0,_core_utils.readUint32)(data,position+32);const componentsCount=(0,_core_utils.readUint16)(data,position+36);siz.Csiz=componentsCount;const components=[];j=position+38;for(let i=0;i<componentsCount;i++){const component={precision:(data[j]&0x7f)+1,isSigned:!!(data[j]&0x80),XRsiz:data[j+1],YRsiz:data[j+2]};j+=3;calculateComponentDimensions(component,siz);components.push(component);}
context.SIZ=siz;context.components=components;calculateTileGrids(context,components);context.QCC=[];context.COC=[];break;case 0xff5c:length=(0,_core_utils.readUint16)(data,position);const qcd={};j=position+2;sqcd=data[j++];switch(sqcd&0x1f){case 0:spqcdSize=8;scalarExpounded=true;break;case 1:spqcdSize=16;scalarExpounded=false;break;case 2:spqcdSize=16;scalarExpounded=true;break;default:throw new Error("Invalid SQcd value "+sqcd);}
qcd.noQuantization=spqcdSize===8;qcd.scalarExpounded=scalarExpounded;qcd.guardBits=sqcd>>5;spqcds=[];while(j<length+position){const spqcd={};if(spqcdSize===8){spqcd.epsilon=data[j++]>>3;spqcd.mu=0;}else{spqcd.epsilon=data[j]>>3;spqcd.mu=(data[j]&0x7)<<8|data[j+1];j+=2;}
spqcds.push(spqcd);}
qcd.SPqcds=spqcds;if(context.mainHeader){context.QCD=qcd;}else{context.currentTile.QCD=qcd;context.currentTile.QCC=[];}
break;case 0xff5d:length=(0,_core_utils.readUint16)(data,position);const qcc={};j=position+2;let cqcc;if(context.SIZ.Csiz<257){cqcc=data[j++];}else{cqcc=(0,_core_utils.readUint16)(data,j);j+=2;}
sqcd=data[j++];switch(sqcd&0x1f){case 0:spqcdSize=8;scalarExpounded=true;break;case 1:spqcdSize=16;scalarExpounded=false;break;case 2:spqcdSize=16;scalarExpounded=true;break;default:throw new Error("Invalid SQcd value "+sqcd);}
qcc.noQuantization=spqcdSize===8;qcc.scalarExpounded=scalarExpounded;qcc.guardBits=sqcd>>5;spqcds=[];while(j<length+position){const spqcd={};if(spqcdSize===8){spqcd.epsilon=data[j++]>>3;spqcd.mu=0;}else{spqcd.epsilon=data[j]>>3;spqcd.mu=(data[j]&0x7)<<8|data[j+1];j+=2;}
spqcds.push(spqcd);}
qcc.SPqcds=spqcds;if(context.mainHeader){context.QCC[cqcc]=qcc;}else{context.currentTile.QCC[cqcc]=qcc;}
break;case 0xff52:length=(0,_core_utils.readUint16)(data,position);const cod={};j=position+2;const scod=data[j++];cod.entropyCoderWithCustomPrecincts=!!(scod&1);cod.sopMarkerUsed=!!(scod&2);cod.ephMarkerUsed=!!(scod&4);cod.progressionOrder=data[j++];cod.layersCount=(0,_core_utils.readUint16)(data,j);j+=2;cod.multipleComponentTransform=data[j++];cod.decompositionLevelsCount=data[j++];cod.xcb=(data[j++]&0xf)+2;cod.ycb=(data[j++]&0xf)+2;const blockStyle=data[j++];cod.selectiveArithmeticCodingBypass=!!(blockStyle&1);cod.resetContextProbabilities=!!(blockStyle&2);cod.terminationOnEachCodingPass=!!(blockStyle&4);cod.verticallyStripe=!!(blockStyle&8);cod.predictableTermination=!!(blockStyle&16);cod.segmentationSymbolUsed=!!(blockStyle&32);cod.reversibleTransformation=data[j++];if(cod.entropyCoderWithCustomPrecincts){const precinctsSizes=[];while(j<length+position){const precinctsSize=data[j++];precinctsSizes.push({PPx:precinctsSize&0xf,PPy:precinctsSize>>4});}
cod.precinctsSizes=precinctsSizes;}
const unsupported=[];if(cod.selectiveArithmeticCodingBypass){unsupported.push("selectiveArithmeticCodingBypass");}
if(cod.terminationOnEachCodingPass){unsupported.push("terminationOnEachCodingPass");}
if(cod.verticallyStripe){unsupported.push("verticallyStripe");}
if(cod.predictableTermination){unsupported.push("predictableTermination");}
if(unsupported.length>0){doNotRecover=true;(0,_util.warn)(`JPX: Unsupported COD options (${unsupported.join(", ")}).`);}
if(context.mainHeader){context.COD=cod;}else{context.currentTile.COD=cod;context.currentTile.COC=[];}
break;case 0xff90:length=(0,_core_utils.readUint16)(data,position);tile={};tile.index=(0,_core_utils.readUint16)(data,position+2);tile.length=(0,_core_utils.readUint32)(data,position+4);tile.dataEnd=tile.length+position-2;tile.partIndex=data[position+8];tile.partsCount=data[position+9];context.mainHeader=false;if(tile.partIndex===0){tile.COD=context.COD;tile.COC=context.COC.slice(0);tile.QCD=context.QCD;tile.QCC=context.QCC.slice(0);}
context.currentTile=tile;break;case 0xff93:tile=context.currentTile;if(tile.partIndex===0){initializeTile(context,tile.index);buildPackets(context);}
length=tile.dataEnd-position;parseTilePackets(context,data,position,length);break;case 0xff53:(0,_util.warn)("JPX: Codestream code 0xFF53 (COC) is not implemented.");case 0xff55:case 0xff57:case 0xff58:case 0xff64:length=(0,_core_utils.readUint16)(data,position);break;default:throw new Error("Unknown codestream code: "+code.toString(16));}
position+=length;}}catch(e){if(doNotRecover||this.failOnCorruptedImage){throw new JpxError(e.message);}else{(0,_util.warn)(`JPX: Trying to recover from: "${e.message}".`);}}
this.tiles=transformComponents(context);this.width=context.SIZ.Xsiz-context.SIZ.XOsiz;this.height=context.SIZ.Ysiz-context.SIZ.YOsiz;this.componentsCount=context.SIZ.Csiz;}}
exports.JpxImage=JpxImage;function calculateComponentDimensions(component,siz){component.x0=Math.ceil(siz.XOsiz/component.XRsiz);component.x1=Math.ceil(siz.Xsiz/component.XRsiz);component.y0=Math.ceil(siz.YOsiz/component.YRsiz);component.y1=Math.ceil(siz.Ysiz/component.YRsiz);component.width=component.x1-component.x0;component.height=component.y1-component.y0;}
function calculateTileGrids(context,components){const siz=context.SIZ;const tiles=[];let tile;const numXtiles=Math.ceil((siz.Xsiz-siz.XTOsiz)/siz.XTsiz);const numYtiles=Math.ceil((siz.Ysiz-siz.YTOsiz)/siz.YTsiz);for(let q=0;q<numYtiles;q++){for(let p=0;p<numXtiles;p++){tile={};tile.tx0=Math.max(siz.XTOsiz+p*siz.XTsiz,siz.XOsiz);tile.ty0=Math.max(siz.YTOsiz+q*siz.YTsiz,siz.YOsiz);tile.tx1=Math.min(siz.XTOsiz+(p+1)*siz.XTsiz,siz.Xsiz);tile.ty1=Math.min(siz.YTOsiz+(q+1)*siz.YTsiz,siz.Ysiz);tile.width=tile.tx1-tile.tx0;tile.height=tile.ty1-tile.ty0;tile.components=[];tiles.push(tile);}}
context.tiles=tiles;const componentsCount=siz.Csiz;for(let i=0,ii=componentsCount;i<ii;i++){const component=components[i];for(let j=0,jj=tiles.length;j<jj;j++){const tileComponent={};tile=tiles[j];tileComponent.tcx0=Math.ceil(tile.tx0/component.XRsiz);tileComponent.tcy0=Math.ceil(tile.ty0/component.YRsiz);tileComponent.tcx1=Math.ceil(tile.tx1/component.XRsiz);tileComponent.tcy1=Math.ceil(tile.ty1/component.YRsiz);tileComponent.width=tileComponent.tcx1-tileComponent.tcx0;tileComponent.height=tileComponent.tcy1-tileComponent.tcy0;tile.components[i]=tileComponent;}}}
function getBlocksDimensions(context,component,r){const codOrCoc=component.codingStyleParameters;const result={};if(!codOrCoc.entropyCoderWithCustomPrecincts){result.PPx=15;result.PPy=15;}else{result.PPx=codOrCoc.precinctsSizes[r].PPx;result.PPy=codOrCoc.precinctsSizes[r].PPy;}
result.xcb_=r>0?Math.min(codOrCoc.xcb,result.PPx-1):Math.min(codOrCoc.xcb,result.PPx);result.ycb_=r>0?Math.min(codOrCoc.ycb,result.PPy-1):Math.min(codOrCoc.ycb,result.PPy);return result;}
function buildPrecincts(context,resolution,dimensions){const precinctWidth=1<<dimensions.PPx;const precinctHeight=1<<dimensions.PPy;const isZeroRes=resolution.resLevel===0;const precinctWidthInSubband=1<<dimensions.PPx+(isZeroRes?0:-1);const precinctHeightInSubband=1<<dimensions.PPy+(isZeroRes?0:-1);const numprecinctswide=resolution.trx1>resolution.trx0?Math.ceil(resolution.trx1/precinctWidth)-Math.floor(resolution.trx0/precinctWidth):0;const numprecinctshigh=resolution.try1>resolution.try0?Math.ceil(resolution.try1/precinctHeight)-Math.floor(resolution.try0/precinctHeight):0;const numprecincts=numprecinctswide*numprecinctshigh;resolution.precinctParameters={precinctWidth,precinctHeight,numprecinctswide,numprecinctshigh,numprecincts,precinctWidthInSubband,precinctHeightInSubband};}
function buildCodeblocks(context,subband,dimensions){const xcb_=dimensions.xcb_;const ycb_=dimensions.ycb_;const codeblockWidth=1<<xcb_;const codeblockHeight=1<<ycb_;const cbx0=subband.tbx0>>xcb_;const cby0=subband.tby0>>ycb_;const cbx1=subband.tbx1+codeblockWidth-1>>xcb_;const cby1=subband.tby1+codeblockHeight-1>>ycb_;const precinctParameters=subband.resolution.precinctParameters;const codeblocks=[];const precincts=[];let i,j,codeblock,precinctNumber;for(j=cby0;j<cby1;j++){for(i=cbx0;i<cbx1;i++){codeblock={cbx:i,cby:j,tbx0:codeblockWidth*i,tby0:codeblockHeight*j,tbx1:codeblockWidth*(i+1),tby1:codeblockHeight*(j+1)};codeblock.tbx0_=Math.max(subband.tbx0,codeblock.tbx0);codeblock.tby0_=Math.max(subband.tby0,codeblock.tby0);codeblock.tbx1_=Math.min(subband.tbx1,codeblock.tbx1);codeblock.tby1_=Math.min(subband.tby1,codeblock.tby1);const pi=Math.floor((codeblock.tbx0_-subband.tbx0)/precinctParameters.precinctWidthInSubband);const pj=Math.floor((codeblock.tby0_-subband.tby0)/precinctParameters.precinctHeightInSubband);precinctNumber=pi+pj*precinctParameters.numprecinctswide;codeblock.precinctNumber=precinctNumber;codeblock.subbandType=subband.type;codeblock.Lblock=3;if(codeblock.tbx1_<=codeblock.tbx0_||codeblock.tby1_<=codeblock.tby0_){continue;}
codeblocks.push(codeblock);let precinct=precincts[precinctNumber];if(precinct!==undefined){if(i<precinct.cbxMin){precinct.cbxMin=i;}else if(i>precinct.cbxMax){precinct.cbxMax=i;}
if(j<precinct.cbyMin){precinct.cbxMin=j;}else if(j>precinct.cbyMax){precinct.cbyMax=j;}}else{precincts[precinctNumber]=precinct={cbxMin:i,cbyMin:j,cbxMax:i,cbyMax:j};}
codeblock.precinct=precinct;}}
subband.codeblockParameters={codeblockWidth:xcb_,codeblockHeight:ycb_,numcodeblockwide:cbx1-cbx0+1,numcodeblockhigh:cby1-cby0+1};subband.codeblocks=codeblocks;subband.precincts=precincts;}
function createPacket(resolution,precinctNumber,layerNumber){const precinctCodeblocks=[];const subbands=resolution.subbands;for(let i=0,ii=subbands.length;i<ii;i++){const subband=subbands[i];const codeblocks=subband.codeblocks;for(let j=0,jj=codeblocks.length;j<jj;j++){const codeblock=codeblocks[j];if(codeblock.precinctNumber!==precinctNumber){continue;}
precinctCodeblocks.push(codeblock);}}
return{layerNumber,codeblocks:precinctCodeblocks};}
function LayerResolutionComponentPositionIterator(context){const siz=context.SIZ;const tileIndex=context.currentTile.index;const tile=context.tiles[tileIndex];const layersCount=tile.codingStyleDefaultParameters.layersCount;const componentsCount=siz.Csiz;let maxDecompositionLevelsCount=0;for(let q=0;q<componentsCount;q++){maxDecompositionLevelsCount=Math.max(maxDecompositionLevelsCount,tile.components[q].codingStyleParameters.decompositionLevelsCount);}
let l=0,r=0,i=0,k=0;this.nextPacket=function JpxImage_nextPacket(){for(;l<layersCount;l++){for(;r<=maxDecompositionLevelsCount;r++){for(;i<componentsCount;i++){const component=tile.components[i];if(r>component.codingStyleParameters.decompositionLevelsCount){continue;}
const resolution=component.resolutions[r];const numprecincts=resolution.precinctParameters.numprecincts;for(;k<numprecincts;){const packet=createPacket(resolution,k,l);k++;return packet;}
k=0;}
i=0;}
r=0;}
throw new JpxError("Out of packets");};}
function ResolutionLayerComponentPositionIterator(context){const siz=context.SIZ;const tileIndex=context.currentTile.index;const tile=context.tiles[tileIndex];const layersCount=tile.codingStyleDefaultParameters.layersCount;const componentsCount=siz.Csiz;let maxDecompositionLevelsCount=0;for(let q=0;q<componentsCount;q++){maxDecompositionLevelsCount=Math.max(maxDecompositionLevelsCount,tile.components[q].codingStyleParameters.decompositionLevelsCount);}
let r=0,l=0,i=0,k=0;this.nextPacket=function JpxImage_nextPacket(){for(;r<=maxDecompositionLevelsCount;r++){for(;l<layersCount;l++){for(;i<componentsCount;i++){const component=tile.components[i];if(r>component.codingStyleParameters.decompositionLevelsCount){continue;}
const resolution=component.resolutions[r];const numprecincts=resolution.precinctParameters.numprecincts;for(;k<numprecincts;){const packet=createPacket(resolution,k,l);k++;return packet;}
k=0;}
i=0;}
l=0;}
throw new JpxError("Out of packets");};}
function ResolutionPositionComponentLayerIterator(context){const siz=context.SIZ;const tileIndex=context.currentTile.index;const tile=context.tiles[tileIndex];const layersCount=tile.codingStyleDefaultParameters.layersCount;const componentsCount=siz.Csiz;let l,r,c,p;let maxDecompositionLevelsCount=0;for(c=0;c<componentsCount;c++){const component=tile.components[c];maxDecompositionLevelsCount=Math.max(maxDecompositionLevelsCount,component.codingStyleParameters.decompositionLevelsCount);}
const maxNumPrecinctsInLevel=new Int32Array(maxDecompositionLevelsCount+1);for(r=0;r<=maxDecompositionLevelsCount;++r){let maxNumPrecincts=0;for(c=0;c<componentsCount;++c){const resolutions=tile.components[c].resolutions;if(r<resolutions.length){maxNumPrecincts=Math.max(maxNumPrecincts,resolutions[r].precinctParameters.numprecincts);}}
maxNumPrecinctsInLevel[r]=maxNumPrecincts;}
l=0;r=0;c=0;p=0;this.nextPacket=function JpxImage_nextPacket(){for(;r<=maxDecompositionLevelsCount;r++){for(;p<maxNumPrecinctsInLevel[r];p++){for(;c<componentsCount;c++){const component=tile.components[c];if(r>component.codingStyleParameters.decompositionLevelsCount){continue;}
const resolution=component.resolutions[r];const numprecincts=resolution.precinctParameters.numprecincts;if(p>=numprecincts){continue;}
for(;l<layersCount;){const packet=createPacket(resolution,p,l);l++;return packet;}
l=0;}
c=0;}
p=0;}
throw new JpxError("Out of packets");};}
function PositionComponentResolutionLayerIterator(context){const siz=context.SIZ;const tileIndex=context.currentTile.index;const tile=context.tiles[tileIndex];const layersCount=tile.codingStyleDefaultParameters.layersCount;const componentsCount=siz.Csiz;const precinctsSizes=getPrecinctSizesInImageScale(tile);const precinctsIterationSizes=precinctsSizes;let l=0,r=0,c=0,px=0,py=0;this.nextPacket=function JpxImage_nextPacket(){for(;py<precinctsIterationSizes.maxNumHigh;py++){for(;px<precinctsIterationSizes.maxNumWide;px++){for(;c<componentsCount;c++){const component=tile.components[c];const decompositionLevelsCount=component.codingStyleParameters.decompositionLevelsCount;for(;r<=decompositionLevelsCount;r++){const resolution=component.resolutions[r];const sizeInImageScale=precinctsSizes.components[c].resolutions[r];const k=getPrecinctIndexIfExist(px,py,sizeInImageScale,precinctsIterationSizes,resolution);if(k===null){continue;}
for(;l<layersCount;){const packet=createPacket(resolution,k,l);l++;return packet;}
l=0;}
r=0;}
c=0;}
px=0;}
throw new JpxError("Out of packets");};}
function ComponentPositionResolutionLayerIterator(context){const siz=context.SIZ;const tileIndex=context.currentTile.index;const tile=context.tiles[tileIndex];const layersCount=tile.codingStyleDefaultParameters.layersCount;const componentsCount=siz.Csiz;const precinctsSizes=getPrecinctSizesInImageScale(tile);let l=0,r=0,c=0,px=0,py=0;this.nextPacket=function JpxImage_nextPacket(){for(;c<componentsCount;++c){const component=tile.components[c];const precinctsIterationSizes=precinctsSizes.components[c];const decompositionLevelsCount=component.codingStyleParameters.decompositionLevelsCount;for(;py<precinctsIterationSizes.maxNumHigh;py++){for(;px<precinctsIterationSizes.maxNumWide;px++){for(;r<=decompositionLevelsCount;r++){const resolution=component.resolutions[r];const sizeInImageScale=precinctsIterationSizes.resolutions[r];const k=getPrecinctIndexIfExist(px,py,sizeInImageScale,precinctsIterationSizes,resolution);if(k===null){continue;}
for(;l<layersCount;){const packet=createPacket(resolution,k,l);l++;return packet;}
l=0;}
r=0;}
px=0;}
py=0;}
throw new JpxError("Out of packets");};}
function getPrecinctIndexIfExist(pxIndex,pyIndex,sizeInImageScale,precinctIterationSizes,resolution){const posX=pxIndex*precinctIterationSizes.minWidth;const posY=pyIndex*precinctIterationSizes.minHeight;if(posX%sizeInImageScale.width!==0||posY%sizeInImageScale.height!==0){return null;}
const startPrecinctRowIndex=posY/sizeInImageScale.width*resolution.precinctParameters.numprecinctswide;return posX/sizeInImageScale.height+startPrecinctRowIndex;}
function getPrecinctSizesInImageScale(tile){const componentsCount=tile.components.length;let minWidth=Number.MAX_VALUE;let minHeight=Number.MAX_VALUE;let maxNumWide=0;let maxNumHigh=0;const sizePerComponent=new Array(componentsCount);for(let c=0;c<componentsCount;c++){const component=tile.components[c];const decompositionLevelsCount=component.codingStyleParameters.decompositionLevelsCount;const sizePerResolution=new Array(decompositionLevelsCount+1);let minWidthCurrentComponent=Number.MAX_VALUE;let minHeightCurrentComponent=Number.MAX_VALUE;let maxNumWideCurrentComponent=0;let maxNumHighCurrentComponent=0;let scale=1;for(let r=decompositionLevelsCount;r>=0;--r){const resolution=component.resolutions[r];const widthCurrentResolution=scale*resolution.precinctParameters.precinctWidth;const heightCurrentResolution=scale*resolution.precinctParameters.precinctHeight;minWidthCurrentComponent=Math.min(minWidthCurrentComponent,widthCurrentResolution);minHeightCurrentComponent=Math.min(minHeightCurrentComponent,heightCurrentResolution);maxNumWideCurrentComponent=Math.max(maxNumWideCurrentComponent,resolution.precinctParameters.numprecinctswide);maxNumHighCurrentComponent=Math.max(maxNumHighCurrentComponent,resolution.precinctParameters.numprecinctshigh);sizePerResolution[r]={width:widthCurrentResolution,height:heightCurrentResolution};scale<<=1;}
minWidth=Math.min(minWidth,minWidthCurrentComponent);minHeight=Math.min(minHeight,minHeightCurrentComponent);maxNumWide=Math.max(maxNumWide,maxNumWideCurrentComponent);maxNumHigh=Math.max(maxNumHigh,maxNumHighCurrentComponent);sizePerComponent[c]={resolutions:sizePerResolution,minWidth:minWidthCurrentComponent,minHeight:minHeightCurrentComponent,maxNumWide:maxNumWideCurrentComponent,maxNumHigh:maxNumHighCurrentComponent};}
return{components:sizePerComponent,minWidth,minHeight,maxNumWide,maxNumHigh};}
function buildPackets(context){const siz=context.SIZ;const tileIndex=context.currentTile.index;const tile=context.tiles[tileIndex];const componentsCount=siz.Csiz;for(let c=0;c<componentsCount;c++){const component=tile.components[c];const decompositionLevelsCount=component.codingStyleParameters.decompositionLevelsCount;const resolutions=[];const subbands=[];for(let r=0;r<=decompositionLevelsCount;r++){const blocksDimensions=getBlocksDimensions(context,component,r);const resolution={};const scale=1<<decompositionLevelsCount-r;resolution.trx0=Math.ceil(component.tcx0/scale);resolution.try0=Math.ceil(component.tcy0/scale);resolution.trx1=Math.ceil(component.tcx1/scale);resolution.try1=Math.ceil(component.tcy1/scale);resolution.resLevel=r;buildPrecincts(context,resolution,blocksDimensions);resolutions.push(resolution);let subband;if(r===0){subband={};subband.type="LL";subband.tbx0=Math.ceil(component.tcx0/scale);subband.tby0=Math.ceil(component.tcy0/scale);subband.tbx1=Math.ceil(component.tcx1/scale);subband.tby1=Math.ceil(component.tcy1/scale);subband.resolution=resolution;buildCodeblocks(context,subband,blocksDimensions);subbands.push(subband);resolution.subbands=[subband];}else{const bscale=1<<decompositionLevelsCount-r+1;const resolutionSubbands=[];subband={};subband.type="HL";subband.tbx0=Math.ceil(component.tcx0/bscale-0.5);subband.tby0=Math.ceil(component.tcy0/bscale);subband.tbx1=Math.ceil(component.tcx1/bscale-0.5);subband.tby1=Math.ceil(component.tcy1/bscale);subband.resolution=resolution;buildCodeblocks(context,subband,blocksDimensions);subbands.push(subband);resolutionSubbands.push(subband);subband={};subband.type="LH";subband.tbx0=Math.ceil(component.tcx0/bscale);subband.tby0=Math.ceil(component.tcy0/bscale-0.5);subband.tbx1=Math.ceil(component.tcx1/bscale);subband.tby1=Math.ceil(component.tcy1/bscale-0.5);subband.resolution=resolution;buildCodeblocks(context,subband,blocksDimensions);subbands.push(subband);resolutionSubbands.push(subband);subband={};subband.type="HH";subband.tbx0=Math.ceil(component.tcx0/bscale-0.5);subband.tby0=Math.ceil(component.tcy0/bscale-0.5);subband.tbx1=Math.ceil(component.tcx1/bscale-0.5);subband.tby1=Math.ceil(component.tcy1/bscale-0.5);subband.resolution=resolution;buildCodeblocks(context,subband,blocksDimensions);subbands.push(subband);resolutionSubbands.push(subband);resolution.subbands=resolutionSubbands;}}
component.resolutions=resolutions;component.subbands=subbands;}
const progressionOrder=tile.codingStyleDefaultParameters.progressionOrder;switch(progressionOrder){case 0:tile.packetsIterator=new LayerResolutionComponentPositionIterator(context);break;case 1:tile.packetsIterator=new ResolutionLayerComponentPositionIterator(context);break;case 2:tile.packetsIterator=new ResolutionPositionComponentLayerIterator(context);break;case 3:tile.packetsIterator=new PositionComponentResolutionLayerIterator(context);break;case 4:tile.packetsIterator=new ComponentPositionResolutionLayerIterator(context);break;default:throw new JpxError(`Unsupported progression order ${progressionOrder}`);}}
function parseTilePackets(context,data,offset,dataLength){let position=0;let buffer,bufferSize=0,skipNextBit=false;function readBits(count){while(bufferSize<count){const b=data[offset+position];position++;if(skipNextBit){buffer=buffer<<7|b;bufferSize+=7;skipNextBit=false;}else{buffer=buffer<<8|b;bufferSize+=8;}
if(b===0xff){skipNextBit=true;}}
bufferSize-=count;return buffer>>>bufferSize&(1<<count)-1;}
function skipMarkerIfEqual(value){if(data[offset+position-1]===0xff&&data[offset+position]===value){skipBytes(1);return true;}else if(data[offset+position]===0xff&&data[offset+position+1]===value){skipBytes(2);return true;}
return false;}
function skipBytes(count){position+=count;}
function alignToByte(){bufferSize=0;if(skipNextBit){position++;skipNextBit=false;}}
function readCodingpasses(){if(readBits(1)===0){return 1;}
if(readBits(1)===0){return 2;}
let value=readBits(2);if(value<3){return value+3;}
value=readBits(5);if(value<31){return value+6;}
value=readBits(7);return value+37;}
const tileIndex=context.currentTile.index;const tile=context.tiles[tileIndex];const sopMarkerUsed=context.COD.sopMarkerUsed;const ephMarkerUsed=context.COD.ephMarkerUsed;const packetsIterator=tile.packetsIterator;while(position<dataLength){alignToByte();if(sopMarkerUsed&&skipMarkerIfEqual(0x91)){skipBytes(4);}
const packet=packetsIterator.nextPacket();if(!readBits(1)){continue;}
const layerNumber=packet.layerNumber,queue=[];let codeblock;for(let i=0,ii=packet.codeblocks.length;i<ii;i++){codeblock=packet.codeblocks[i];let precinct=codeblock.precinct;const codeblockColumn=codeblock.cbx-precinct.cbxMin;const codeblockRow=codeblock.cby-precinct.cbyMin;let codeblockIncluded=false;let firstTimeInclusion=false;let valueReady,zeroBitPlanesTree;if(codeblock.included!==undefined){codeblockIncluded=!!readBits(1);}else{precinct=codeblock.precinct;let inclusionTree;if(precinct.inclusionTree!==undefined){inclusionTree=precinct.inclusionTree;}else{const width=precinct.cbxMax-precinct.cbxMin+1;const height=precinct.cbyMax-precinct.cbyMin+1;inclusionTree=new InclusionTree(width,height,layerNumber);zeroBitPlanesTree=new TagTree(width,height);precinct.inclusionTree=inclusionTree;precinct.zeroBitPlanesTree=zeroBitPlanesTree;for(let l=0;l<layerNumber;l++){if(readBits(1)!==0){throw new JpxError("Invalid tag tree");}}}
if(inclusionTree.reset(codeblockColumn,codeblockRow,layerNumber)){while(true){if(readBits(1)){valueReady=!inclusionTree.nextLevel();if(valueReady){codeblock.included=true;codeblockIncluded=firstTimeInclusion=true;break;}}else{inclusionTree.incrementValue(layerNumber);break;}}}}
if(!codeblockIncluded){continue;}
if(firstTimeInclusion){zeroBitPlanesTree=precinct.zeroBitPlanesTree;zeroBitPlanesTree.reset(codeblockColumn,codeblockRow);while(true){if(readBits(1)){valueReady=!zeroBitPlanesTree.nextLevel();if(valueReady){break;}}else{zeroBitPlanesTree.incrementValue();}}
codeblock.zeroBitPlanes=zeroBitPlanesTree.value;}
const codingpasses=readCodingpasses();while(readBits(1)){codeblock.Lblock++;}
const codingpassesLog2=(0,_core_utils.log2)(codingpasses);const bits=(codingpasses<1<<codingpassesLog2?codingpassesLog2-1:codingpassesLog2)+codeblock.Lblock;const codedDataLength=readBits(bits);queue.push({codeblock,codingpasses,dataLength:codedDataLength});}
alignToByte();if(ephMarkerUsed){skipMarkerIfEqual(0x92);}
while(queue.length>0){const packetItem=queue.shift();codeblock=packetItem.codeblock;if(codeblock.data===undefined){codeblock.data=[];}
codeblock.data.push({data,start:offset+position,end:offset+position+packetItem.dataLength,codingpasses:packetItem.codingpasses});position+=packetItem.dataLength;}}
return position;}
function copyCoefficients(coefficients,levelWidth,levelHeight,subband,delta,mb,reversible,segmentationSymbolUsed,resetContextProbabilities){const x0=subband.tbx0;const y0=subband.tby0;const width=subband.tbx1-subband.tbx0;const codeblocks=subband.codeblocks;const right=subband.type.charAt(0)==="H"?1:0;const bottom=subband.type.charAt(1)==="H"?levelWidth:0;for(let i=0,ii=codeblocks.length;i<ii;++i){const codeblock=codeblocks[i];const blockWidth=codeblock.tbx1_-codeblock.tbx0_;const blockHeight=codeblock.tby1_-codeblock.tby0_;if(blockWidth===0||blockHeight===0){continue;}
if(codeblock.data===undefined){continue;}
const bitModel=new BitModel(blockWidth,blockHeight,codeblock.subbandType,codeblock.zeroBitPlanes,mb);let currentCodingpassType=2;const data=codeblock.data;let totalLength=0,codingpasses=0;let j,jj,dataItem;for(j=0,jj=data.length;j<jj;j++){dataItem=data[j];totalLength+=dataItem.end-dataItem.start;codingpasses+=dataItem.codingpasses;}
const encodedData=new Uint8Array(totalLength);let position=0;for(j=0,jj=data.length;j<jj;j++){dataItem=data[j];const chunk=dataItem.data.subarray(dataItem.start,dataItem.end);encodedData.set(chunk,position);position+=chunk.length;}
const decoder=new _arithmetic_decoder.ArithmeticDecoder(encodedData,0,totalLength);bitModel.setDecoder(decoder);for(j=0;j<codingpasses;j++){switch(currentCodingpassType){case 0:bitModel.runSignificancePropagationPass();break;case 1:bitModel.runMagnitudeRefinementPass();break;case 2:bitModel.runCleanupPass();if(segmentationSymbolUsed){bitModel.checkSegmentationSymbol();}
break;}
if(resetContextProbabilities){bitModel.reset();}
currentCodingpassType=(currentCodingpassType+1)%3;}
let offset=codeblock.tbx0_-x0+(codeblock.tby0_-y0)*width;const sign=bitModel.coefficentsSign;const magnitude=bitModel.coefficentsMagnitude;const bitsDecoded=bitModel.bitsDecoded;const magnitudeCorrection=reversible?0:0.5;let k,n,nb;position=0;const interleave=subband.type!=="LL";for(j=0;j<blockHeight;j++){const row=offset/width|0;const levelOffset=2*row*(levelWidth-width)+right+bottom;for(k=0;k<blockWidth;k++){n=magnitude[position];if(n!==0){n=(n+magnitudeCorrection)*delta;if(sign[position]!==0){n=-n;}
nb=bitsDecoded[position];const pos=interleave?levelOffset+(offset<<1):offset;if(reversible&&nb>=mb){coefficients[pos]=n;}else{coefficients[pos]=n*(1<<mb-nb);}}
offset++;position++;}
offset+=width-blockWidth;}}}
function transformTile(context,tile,c){const component=tile.components[c];const codingStyleParameters=component.codingStyleParameters;const quantizationParameters=component.quantizationParameters;const decompositionLevelsCount=codingStyleParameters.decompositionLevelsCount;const spqcds=quantizationParameters.SPqcds;const scalarExpounded=quantizationParameters.scalarExpounded;const guardBits=quantizationParameters.guardBits;const segmentationSymbolUsed=codingStyleParameters.segmentationSymbolUsed;const resetContextProbabilities=codingStyleParameters.resetContextProbabilities;const precision=context.components[c].precision;const reversible=codingStyleParameters.reversibleTransformation;const transform=reversible?new ReversibleTransform():new IrreversibleTransform();const subbandCoefficients=[];let b=0;for(let i=0;i<=decompositionLevelsCount;i++){const resolution=component.resolutions[i];const width=resolution.trx1-resolution.trx0;const height=resolution.try1-resolution.try0;const coefficients=new Float32Array(width*height);for(let j=0,jj=resolution.subbands.length;j<jj;j++){let mu,epsilon;if(!scalarExpounded){mu=spqcds[0].mu;epsilon=spqcds[0].epsilon+(i>0?1-i:0);}else{mu=spqcds[b].mu;epsilon=spqcds[b].epsilon;b++;}
const subband=resolution.subbands[j];const gainLog2=SubbandsGainLog2[subband.type];const delta=reversible?1:2**(precision+gainLog2-epsilon)*(1+mu/2048);const mb=guardBits+epsilon-1;copyCoefficients(coefficients,width,height,subband,delta,mb,reversible,segmentationSymbolUsed,resetContextProbabilities);}
subbandCoefficients.push({width,height,items:coefficients});}
const result=transform.calculate(subbandCoefficients,component.tcx0,component.tcy0);return{left:component.tcx0,top:component.tcy0,width:result.width,height:result.height,items:result.items};}
function transformComponents(context){const siz=context.SIZ;const components=context.components;const componentsCount=siz.Csiz;const resultImages=[];for(let i=0,ii=context.tiles.length;i<ii;i++){const tile=context.tiles[i];const transformedTiles=[];for(let c=0;c<componentsCount;c++){transformedTiles[c]=transformTile(context,tile,c);}
const tile0=transformedTiles[0];const out=new Uint8ClampedArray(tile0.items.length*componentsCount);const result={left:tile0.left,top:tile0.top,width:tile0.width,height:tile0.height,items:out};let shift,offset;let pos=0,j,jj,y0,y1,y2;if(tile.codingStyleDefaultParameters.multipleComponentTransform){const fourComponents=componentsCount===4;const y0items=transformedTiles[0].items;const y1items=transformedTiles[1].items;const y2items=transformedTiles[2].items;const y3items=fourComponents?transformedTiles[3].items:null;shift=components[0].precision-8;offset=(128<<shift)+0.5;const component0=tile.components[0];const alpha01=componentsCount-3;jj=y0items.length;if(!component0.codingStyleParameters.reversibleTransformation){for(j=0;j<jj;j++,pos+=alpha01){y0=y0items[j]+offset;y1=y1items[j];y2=y2items[j];out[pos++]=y0+1.402*y2>>shift;out[pos++]=y0-0.34413*y1-0.71414*y2>>shift;out[pos++]=y0+1.772*y1>>shift;}}else{for(j=0;j<jj;j++,pos+=alpha01){y0=y0items[j]+offset;y1=y1items[j];y2=y2items[j];const g=y0-(y2+y1>>2);out[pos++]=g+y2>>shift;out[pos++]=g>>shift;out[pos++]=g+y1>>shift;}}
if(fourComponents){for(j=0,pos=3;j<jj;j++,pos+=4){out[pos]=y3items[j]+offset>>shift;}}}else{for(let c=0;c<componentsCount;c++){const items=transformedTiles[c].items;shift=components[c].precision-8;offset=(128<<shift)+0.5;for(pos=c,j=0,jj=items.length;j<jj;j++){out[pos]=items[j]+offset>>shift;pos+=componentsCount;}}}
resultImages.push(result);}
return resultImages;}
function initializeTile(context,tileIndex){const siz=context.SIZ;const componentsCount=siz.Csiz;const tile=context.tiles[tileIndex];for(let c=0;c<componentsCount;c++){const component=tile.components[c];const qcdOrQcc=context.currentTile.QCC[c]!==undefined?context.currentTile.QCC[c]:context.currentTile.QCD;component.quantizationParameters=qcdOrQcc;const codOrCoc=context.currentTile.COC[c]!==undefined?context.currentTile.COC[c]:context.currentTile.COD;component.codingStyleParameters=codOrCoc;}
tile.codingStyleDefaultParameters=context.currentTile.COD;}
class TagTree{constructor(width,height){const levelsLength=(0,_core_utils.log2)(Math.max(width,height))+1;this.levels=[];for(let i=0;i<levelsLength;i++){const level={width,height,items:[]};this.levels.push(level);width=Math.ceil(width/2);height=Math.ceil(height/2);}}
reset(i,j){let currentLevel=0,value=0,level;while(currentLevel<this.levels.length){level=this.levels[currentLevel];const index=i+j*level.width;if(level.items[index]!==undefined){value=level.items[index];break;}
level.index=index;i>>=1;j>>=1;currentLevel++;}
currentLevel--;level=this.levels[currentLevel];level.items[level.index]=value;this.currentLevel=currentLevel;delete this.value;}
incrementValue(){const level=this.levels[this.currentLevel];level.items[level.index]++;}
nextLevel(){let currentLevel=this.currentLevel;let level=this.levels[currentLevel];const value=level.items[level.index];currentLevel--;if(currentLevel<0){this.value=value;return false;}
this.currentLevel=currentLevel;level=this.levels[currentLevel];level.items[level.index]=value;return true;}}
class InclusionTree{constructor(width,height,defaultValue){const levelsLength=(0,_core_utils.log2)(Math.max(width,height))+1;this.levels=[];for(let i=0;i<levelsLength;i++){const items=new Uint8Array(width*height);for(let j=0,jj=items.length;j<jj;j++){items[j]=defaultValue;}
const level={width,height,items};this.levels.push(level);width=Math.ceil(width/2);height=Math.ceil(height/2);}}
reset(i,j,stopValue){let currentLevel=0;while(currentLevel<this.levels.length){const level=this.levels[currentLevel];const index=i+j*level.width;level.index=index;const value=level.items[index];if(value===0xff){break;}
if(value>stopValue){this.currentLevel=currentLevel;this.propagateValues();return false;}
i>>=1;j>>=1;currentLevel++;}
this.currentLevel=currentLevel-1;return true;}
incrementValue(stopValue){const level=this.levels[this.currentLevel];level.items[level.index]=stopValue+1;this.propagateValues();}
propagateValues(){let levelIndex=this.currentLevel;let level=this.levels[levelIndex];const currentValue=level.items[level.index];while(--levelIndex>=0){level=this.levels[levelIndex];level.items[level.index]=currentValue;}}
nextLevel(){let currentLevel=this.currentLevel;let level=this.levels[currentLevel];const value=level.items[level.index];level.items[level.index]=0xff;currentLevel--;if(currentLevel<0){return false;}
this.currentLevel=currentLevel;level=this.levels[currentLevel];level.items[level.index]=value;return true;}}
const BitModel=function BitModelClosure(){const UNIFORM_CONTEXT=17;const RUNLENGTH_CONTEXT=18;const LLAndLHContextsLabel=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]);const HLContextLabel=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]);const HHContextLabel=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);class BitModel{constructor(width,height,subband,zeroBitPlanes,mb){this.width=width;this.height=height;let contextLabelTable;if(subband==="HH"){contextLabelTable=HHContextLabel;}else if(subband==="HL"){contextLabelTable=HLContextLabel;}else{contextLabelTable=LLAndLHContextsLabel;}
this.contextLabelTable=contextLabelTable;const coefficientCount=width*height;this.neighborsSignificance=new Uint8Array(coefficientCount);this.coefficentsSign=new Uint8Array(coefficientCount);let coefficentsMagnitude;if(mb>14){coefficentsMagnitude=new Uint32Array(coefficientCount);}else if(mb>6){coefficentsMagnitude=new Uint16Array(coefficientCount);}else{coefficentsMagnitude=new Uint8Array(coefficientCount);}
this.coefficentsMagnitude=coefficentsMagnitude;this.processingFlags=new Uint8Array(coefficientCount);const bitsDecoded=new Uint8Array(coefficientCount);if(zeroBitPlanes!==0){for(let i=0;i<coefficientCount;i++){bitsDecoded[i]=zeroBitPlanes;}}
this.bitsDecoded=bitsDecoded;this.reset();}
setDecoder(decoder){this.decoder=decoder;}
reset(){this.contexts=new Int8Array(19);this.contexts[0]=4<<1|0;this.contexts[UNIFORM_CONTEXT]=46<<1|0;this.contexts[RUNLENGTH_CONTEXT]=3<<1|0;}
setNeighborsSignificance(row,column,index){const neighborsSignificance=this.neighborsSignificance;const width=this.width,height=this.height;const left=column>0;const right=column+1<width;let i;if(row>0){i=index-width;if(left){neighborsSignificance[i-1]+=0x10;}
if(right){neighborsSignificance[i+1]+=0x10;}
neighborsSignificance[i]+=0x04;}
if(row+1<height){i=index+width;if(left){neighborsSignificance[i-1]+=0x10;}
if(right){neighborsSignificance[i+1]+=0x10;}
neighborsSignificance[i]+=0x04;}
if(left){neighborsSignificance[index-1]+=0x01;}
if(right){neighborsSignificance[index+1]+=0x01;}
neighborsSignificance[index]|=0x80;}
runSignificancePropagationPass(){const decoder=this.decoder;const width=this.width,height=this.height;const coefficentsMagnitude=this.coefficentsMagnitude;const coefficentsSign=this.coefficentsSign;const neighborsSignificance=this.neighborsSignificance;const processingFlags=this.processingFlags;const contexts=this.contexts;const labels=this.contextLabelTable;const bitsDecoded=this.bitsDecoded;const processedInverseMask=~1;const processedMask=1;const firstMagnitudeBitMask=2;for(let i0=0;i0<height;i0+=4){for(let j=0;j<width;j++){let index=i0*width+j;for(let i1=0;i1<4;i1++,index+=width){const i=i0+i1;if(i>=height){break;}
processingFlags[index]&=processedInverseMask;if(coefficentsMagnitude[index]||!neighborsSignificance[index]){continue;}
const contextLabel=labels[neighborsSignificance[index]];const decision=decoder.readBit(contexts,contextLabel);if(decision){const sign=this.decodeSignBit(i,j,index);coefficentsSign[index]=sign;coefficentsMagnitude[index]=1;this.setNeighborsSignificance(i,j,index);processingFlags[index]|=firstMagnitudeBitMask;}
bitsDecoded[index]++;processingFlags[index]|=processedMask;}}}}
decodeSignBit(row,column,index){const width=this.width,height=this.height;const coefficentsMagnitude=this.coefficentsMagnitude;const coefficentsSign=this.coefficentsSign;let contribution,sign0,sign1,significance1;let contextLabel,decoded;significance1=column>0&&coefficentsMagnitude[index-1]!==0;if(column+1<width&&coefficentsMagnitude[index+1]!==0){sign1=coefficentsSign[index+1];if(significance1){sign0=coefficentsSign[index-1];contribution=1-sign1-sign0;}else{contribution=1-sign1-sign1;}}else if(significance1){sign0=coefficentsSign[index-1];contribution=1-sign0-sign0;}else{contribution=0;}
const horizontalContribution=3*contribution;significance1=row>0&&coefficentsMagnitude[index-width]!==0;if(row+1<height&&coefficentsMagnitude[index+width]!==0){sign1=coefficentsSign[index+width];if(significance1){sign0=coefficentsSign[index-width];contribution=1-sign1-sign0+horizontalContribution;}else{contribution=1-sign1-sign1+horizontalContribution;}}else if(significance1){sign0=coefficentsSign[index-width];contribution=1-sign0-sign0+horizontalContribution;}else{contribution=horizontalContribution;}
if(contribution>=0){contextLabel=9+contribution;decoded=this.decoder.readBit(this.contexts,contextLabel);}else{contextLabel=9-contribution;decoded=this.decoder.readBit(this.contexts,contextLabel)^1;}
return decoded;}
runMagnitudeRefinementPass(){const decoder=this.decoder;const width=this.width,height=this.height;const coefficentsMagnitude=this.coefficentsMagnitude;const neighborsSignificance=this.neighborsSignificance;const contexts=this.contexts;const bitsDecoded=this.bitsDecoded;const processingFlags=this.processingFlags;const processedMask=1;const firstMagnitudeBitMask=2;const length=width*height;const width4=width*4;for(let index0=0,indexNext;index0<length;index0=indexNext){indexNext=Math.min(length,index0+width4);for(let j=0;j<width;j++){for(let index=index0+j;index<indexNext;index+=width){if(!coefficentsMagnitude[index]||(processingFlags[index]&processedMask)!==0){continue;}
let contextLabel=16;if((processingFlags[index]&firstMagnitudeBitMask)!==0){processingFlags[index]^=firstMagnitudeBitMask;const significance=neighborsSignificance[index]&127;contextLabel=significance===0?15:14;}
const bit=decoder.readBit(contexts,contextLabel);coefficentsMagnitude[index]=coefficentsMagnitude[index]<<1|bit;bitsDecoded[index]++;processingFlags[index]|=processedMask;}}}}
runCleanupPass(){const decoder=this.decoder;const width=this.width,height=this.height;const neighborsSignificance=this.neighborsSignificance;const coefficentsMagnitude=this.coefficentsMagnitude;const coefficentsSign=this.coefficentsSign;const contexts=this.contexts;const labels=this.contextLabelTable;const bitsDecoded=this.bitsDecoded;const processingFlags=this.processingFlags;const processedMask=1;const firstMagnitudeBitMask=2;const oneRowDown=width;const twoRowsDown=width*2;const threeRowsDown=width*3;let iNext;for(let i0=0;i0<height;i0=iNext){iNext=Math.min(i0+4,height);const indexBase=i0*width;const checkAllEmpty=i0+3<height;for(let j=0;j<width;j++){const index0=indexBase+j;const allEmpty=checkAllEmpty&&processingFlags[index0]===0&&processingFlags[index0+oneRowDown]===0&&processingFlags[index0+twoRowsDown]===0&&processingFlags[index0+threeRowsDown]===0&&neighborsSignificance[index0]===0&&neighborsSignificance[index0+oneRowDown]===0&&neighborsSignificance[index0+twoRowsDown]===0&&neighborsSignificance[index0+threeRowsDown]===0;let i1=0,index=index0;let i=i0,sign;if(allEmpty){const hasSignificantCoefficent=decoder.readBit(contexts,RUNLENGTH_CONTEXT);if(!hasSignificantCoefficent){bitsDecoded[index0]++;bitsDecoded[index0+oneRowDown]++;bitsDecoded[index0+twoRowsDown]++;bitsDecoded[index0+threeRowsDown]++;continue;}
i1=decoder.readBit(contexts,UNIFORM_CONTEXT)<<1|decoder.readBit(contexts,UNIFORM_CONTEXT);if(i1!==0){i=i0+i1;index+=i1*width;}
sign=this.decodeSignBit(i,j,index);coefficentsSign[index]=sign;coefficentsMagnitude[index]=1;this.setNeighborsSignificance(i,j,index);processingFlags[index]|=firstMagnitudeBitMask;index=index0;for(let i2=i0;i2<=i;i2++,index+=width){bitsDecoded[index]++;}
i1++;}
for(i=i0+i1;i<iNext;i++,index+=width){if(coefficentsMagnitude[index]||(processingFlags[index]&processedMask)!==0){continue;}
const contextLabel=labels[neighborsSignificance[index]];const decision=decoder.readBit(contexts,contextLabel);if(decision===1){sign=this.decodeSignBit(i,j,index);coefficentsSign[index]=sign;coefficentsMagnitude[index]=1;this.setNeighborsSignificance(i,j,index);processingFlags[index]|=firstMagnitudeBitMask;}
bitsDecoded[index]++;}}}}
checkSegmentationSymbol(){const decoder=this.decoder;const contexts=this.contexts;const symbol=decoder.readBit(contexts,UNIFORM_CONTEXT)<<3|decoder.readBit(contexts,UNIFORM_CONTEXT)<<2|decoder.readBit(contexts,UNIFORM_CONTEXT)<<1|decoder.readBit(contexts,UNIFORM_CONTEXT);if(symbol!==0xa){throw new JpxError("Invalid segmentation symbol");}}}
return BitModel;}();class Transform{constructor(){if(this.constructor===Transform){(0,_util.unreachable)("Cannot initialize Transform.");}}
calculate(subbands,u0,v0){let ll=subbands[0];for(let i=1,ii=subbands.length;i<ii;i++){ll=this.iterate(ll,subbands[i],u0,v0);}
return ll;}
extend(buffer,offset,size){let i1=offset-1,j1=offset+1;let i2=offset+size-2,j2=offset+size;buffer[i1--]=buffer[j1++];buffer[j2++]=buffer[i2--];buffer[i1--]=buffer[j1++];buffer[j2++]=buffer[i2--];buffer[i1--]=buffer[j1++];buffer[j2++]=buffer[i2--];buffer[i1]=buffer[j1];buffer[j2]=buffer[i2];}
filter(x,offset,length){(0,_util.unreachable)("Abstract method `filter` called");}
iterate(ll,hl_lh_hh,u0,v0){const llWidth=ll.width,llHeight=ll.height;let llItems=ll.items;const width=hl_lh_hh.width;const height=hl_lh_hh.height;const items=hl_lh_hh.items;let i,j,k,l,u,v;for(k=0,i=0;i<llHeight;i++){l=i*2*width;for(j=0;j<llWidth;j++,k++,l+=2){items[l]=llItems[k];}}
llItems=ll.items=null;const bufferPadding=4;const rowBuffer=new Float32Array(width+2*bufferPadding);if(width===1){if((u0&1)!==0){for(v=0,k=0;v<height;v++,k+=width){items[k]*=0.5;}}}else{for(v=0,k=0;v<height;v++,k+=width){rowBuffer.set(items.subarray(k,k+width),bufferPadding);this.extend(rowBuffer,bufferPadding,width);this.filter(rowBuffer,bufferPadding,width);items.set(rowBuffer.subarray(bufferPadding,bufferPadding+width),k);}}
let numBuffers=16;const colBuffers=[];for(i=0;i<numBuffers;i++){colBuffers.push(new Float32Array(height+2*bufferPadding));}
let b,currentBuffer=0;ll=bufferPadding+height;if(height===1){if((v0&1)!==0){for(u=0;u<width;u++){items[u]*=0.5;}}}else{for(u=0;u<width;u++){if(currentBuffer===0){numBuffers=Math.min(width-u,numBuffers);for(k=u,l=bufferPadding;l<ll;k+=width,l++){for(b=0;b<numBuffers;b++){colBuffers[b][l]=items[k+b];}}
currentBuffer=numBuffers;}
currentBuffer--;const buffer=colBuffers[currentBuffer];this.extend(buffer,bufferPadding,height);this.filter(buffer,bufferPadding,height);if(currentBuffer===0){k=u-numBuffers+1;for(l=bufferPadding;l<ll;k+=width,l++){for(b=0;b<numBuffers;b++){items[k+b]=colBuffers[b][l];}}}}}
return{width,height,items};}}
class IrreversibleTransform extends Transform{filter(x,offset,length){const len=length>>1;offset|=0;let j,n,current,next;const alpha=-1.586134342059924;const beta=-0.052980118572961;const gamma=0.882911075530934;const delta=0.443506852043971;const K=1.230174104914001;const K_=1/K;j=offset-3;for(n=len+4;n--;j+=2){x[j]*=K_;}
j=offset-2;current=delta*x[j-1];for(n=len+3;n--;j+=2){next=delta*x[j+1];x[j]=K*x[j]-current-next;if(n--){j+=2;current=delta*x[j+1];x[j]=K*x[j]-current-next;}else{break;}}
j=offset-1;current=gamma*x[j-1];for(n=len+2;n--;j+=2){next=gamma*x[j+1];x[j]-=current+next;if(n--){j+=2;current=gamma*x[j+1];x[j]-=current+next;}else{break;}}
j=offset;current=beta*x[j-1];for(n=len+1;n--;j+=2){next=beta*x[j+1];x[j]-=current+next;if(n--){j+=2;current=beta*x[j+1];x[j]-=current+next;}else{break;}}
if(len!==0){j=offset+1;current=alpha*x[j-1];for(n=len;n--;j+=2){next=alpha*x[j+1];x[j]-=current+next;if(n--){j+=2;current=alpha*x[j+1];x[j]-=current+next;}else{break;}}}}}
class ReversibleTransform extends Transform{filter(x,offset,length){const len=length>>1;offset|=0;let j,n;for(j=offset,n=len+1;n--;j+=2){x[j]-=x[j-1]+x[j+1]+2>>2;}
for(j=offset+1,n=len;n--;j+=2){x[j]+=x[j-1]+x[j+1]>>1;}}}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.LZWStream=void 0;var _decode_stream=__w_pdfjs_require__(144);class LZWStream extends _decode_stream.DecodeStream{constructor(str,maybeLength,earlyChange){super(maybeLength);this.str=str;this.dict=str.dict;this.cachedData=0;this.bitsCached=0;const maxLzwDictionarySize=4096;const lzwState={earlyChange,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(maxLzwDictionarySize),dictionaryLengths:new Uint16Array(maxLzwDictionarySize),dictionaryPrevCodes:new Uint16Array(maxLzwDictionarySize),currentSequence:new Uint8Array(maxLzwDictionarySize),currentSequenceLength:0};for(let i=0;i<256;++i){lzwState.dictionaryValues[i]=i;lzwState.dictionaryLengths[i]=1;}
this.lzwState=lzwState;}
readBits(n){let bitsCached=this.bitsCached;let cachedData=this.cachedData;while(bitsCached<n){const c=this.str.getByte();if(c===-1){this.eof=true;return null;}
cachedData=cachedData<<8|c;bitsCached+=8;}
this.bitsCached=bitsCached-=n;this.cachedData=cachedData;this.lastCode=null;return cachedData>>>bitsCached&(1<<n)-1;}
readBlock(){const blockSize=512,decodedSizeDelta=blockSize;let estimatedDecodedSize=blockSize*2;let i,j,q;const lzwState=this.lzwState;if(!lzwState){return;}
const earlyChange=lzwState.earlyChange;let nextCode=lzwState.nextCode;const dictionaryValues=lzwState.dictionaryValues;const dictionaryLengths=lzwState.dictionaryLengths;const dictionaryPrevCodes=lzwState.dictionaryPrevCodes;let codeLength=lzwState.codeLength;let prevCode=lzwState.prevCode;const currentSequence=lzwState.currentSequence;let currentSequenceLength=lzwState.currentSequenceLength;let decodedLength=0;let currentBufferLength=this.bufferLength;let buffer=this.ensureBuffer(this.bufferLength+estimatedDecodedSize);for(i=0;i<blockSize;i++){const code=this.readBits(codeLength);const hasPrev=currentSequenceLength>0;if(code<256){currentSequence[0]=code;currentSequenceLength=1;}else if(code>=258){if(code<nextCode){currentSequenceLength=dictionaryLengths[code];for(j=currentSequenceLength-1,q=code;j>=0;j--){currentSequence[j]=dictionaryValues[q];q=dictionaryPrevCodes[q];}}else{currentSequence[currentSequenceLength++]=currentSequence[0];}}else if(code===256){codeLength=9;nextCode=258;currentSequenceLength=0;continue;}else{this.eof=true;delete this.lzwState;break;}
if(hasPrev){dictionaryPrevCodes[nextCode]=prevCode;dictionaryLengths[nextCode]=dictionaryLengths[prevCode]+1;dictionaryValues[nextCode]=currentSequence[0];nextCode++;codeLength=nextCode+earlyChange&nextCode+earlyChange-1?codeLength:Math.min(Math.log(nextCode+earlyChange)/0.6931471805599453+1,12)|0;}
prevCode=code;decodedLength+=currentSequenceLength;if(estimatedDecodedSize<decodedLength){do{estimatedDecodedSize+=decodedSizeDelta;}while(estimatedDecodedSize<decodedLength);buffer=this.ensureBuffer(this.bufferLength+estimatedDecodedSize);}
for(j=0;j<currentSequenceLength;j++){buffer[currentBufferLength++]=currentSequence[j];}}
lzwState.nextCode=nextCode;lzwState.codeLength=codeLength;lzwState.prevCode=prevCode;lzwState.currentSequenceLength=currentSequenceLength;this.bufferLength=currentBufferLength;}}
exports.LZWStream=LZWStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PredictorStream=void 0;var _decode_stream=__w_pdfjs_require__(144);var _primitives=__w_pdfjs_require__(130);var _util=__w_pdfjs_require__(2);class PredictorStream extends _decode_stream.DecodeStream{constructor(str,maybeLength,params){super(maybeLength);if(!(params instanceof _primitives.Dict)){return str;}
const predictor=this.predictor=params.get("Predictor")||1;if(predictor<=1){return str;}
if(predictor!==2&&(predictor<10||predictor>15)){throw new _util.FormatError(`Unsupported predictor: ${predictor}`);}
if(predictor===2){this.readBlock=this.readBlockTiff;}else{this.readBlock=this.readBlockPng;}
this.str=str;this.dict=str.dict;const colors=this.colors=params.get("Colors")||1;const bits=this.bits=params.get("BPC","BitsPerComponent")||8;const columns=this.columns=params.get("Columns")||1;this.pixBytes=colors*bits+7>>3;this.rowBytes=columns*colors*bits+7>>3;return this;}
readBlockTiff(){const rowBytes=this.rowBytes;const bufferLength=this.bufferLength;const buffer=this.ensureBuffer(bufferLength+rowBytes);const bits=this.bits;const colors=this.colors;const rawBytes=this.str.getBytes(rowBytes);this.eof=!rawBytes.length;if(this.eof){return;}
let inbuf=0,outbuf=0;let inbits=0,outbits=0;let pos=bufferLength;let i;if(bits===1&&colors===1){for(i=0;i<rowBytes;++i){let c=rawBytes[i]^inbuf;c^=c>>1;c^=c>>2;c^=c>>4;inbuf=(c&1)<<7;buffer[pos++]=c;}}else if(bits===8){for(i=0;i<colors;++i){buffer[pos++]=rawBytes[i];}
for(;i<rowBytes;++i){buffer[pos]=buffer[pos-colors]+rawBytes[i];pos++;}}else if(bits===16){const bytesPerPixel=colors*2;for(i=0;i<bytesPerPixel;++i){buffer[pos++]=rawBytes[i];}
for(;i<rowBytes;i+=2){const sum=((rawBytes[i]&0xff)<<8)+(rawBytes[i+1]&0xff)+((buffer[pos-bytesPerPixel]&0xff)<<8)+(buffer[pos-bytesPerPixel+1]&0xff);buffer[pos++]=sum>>8&0xff;buffer[pos++]=sum&0xff;}}else{const compArray=new Uint8Array(colors+1);const bitMask=(1<<bits)-1;let j=0,k=bufferLength;const columns=this.columns;for(i=0;i<columns;++i){for(let kk=0;kk<colors;++kk){if(inbits<bits){inbuf=inbuf<<8|rawBytes[j++]&0xff;inbits+=8;}
compArray[kk]=compArray[kk]+(inbuf>>inbits-bits)&bitMask;inbits-=bits;outbuf=outbuf<<bits|compArray[kk];outbits+=bits;if(outbits>=8){buffer[k++]=outbuf>>outbits-8&0xff;outbits-=8;}}}
if(outbits>0){buffer[k++]=(outbuf<<8-outbits)+(inbuf&(1<<8-outbits)-1);}}
this.bufferLength+=rowBytes;}
readBlockPng(){const rowBytes=this.rowBytes;const pixBytes=this.pixBytes;const predictor=this.str.getByte();const rawBytes=this.str.getBytes(rowBytes);this.eof=!rawBytes.length;if(this.eof){return;}
const bufferLength=this.bufferLength;const buffer=this.ensureBuffer(bufferLength+rowBytes);let prevRow=buffer.subarray(bufferLength-rowBytes,bufferLength);if(prevRow.length===0){prevRow=new Uint8Array(rowBytes);}
let i,j=bufferLength,up,c;switch(predictor){case 0:for(i=0;i<rowBytes;++i){buffer[j++]=rawBytes[i];}
break;case 1:for(i=0;i<pixBytes;++i){buffer[j++]=rawBytes[i];}
for(;i<rowBytes;++i){buffer[j]=buffer[j-pixBytes]+rawBytes[i]&0xff;j++;}
break;case 2:for(i=0;i<rowBytes;++i){buffer[j++]=prevRow[i]+rawBytes[i]&0xff;}
break;case 3:for(i=0;i<pixBytes;++i){buffer[j++]=(prevRow[i]>>1)+rawBytes[i];}
for(;i<rowBytes;++i){buffer[j]=(prevRow[i]+buffer[j-pixBytes]>>1)+rawBytes[i]&0xff;j++;}
break;case 4:for(i=0;i<pixBytes;++i){up=prevRow[i];c=rawBytes[i];buffer[j++]=up+c;}
for(;i<rowBytes;++i){up=prevRow[i];const upLeft=prevRow[i-pixBytes];const left=buffer[j-pixBytes];const p=left+up-upLeft;let pa=p-left;if(pa<0){pa=-pa;}
let pb=p-up;if(pb<0){pb=-pb;}
let pc=p-upLeft;if(pc<0){pc=-pc;}
c=rawBytes[i];if(pa<=pb&&pa<=pc){buffer[j++]=left+c;}else if(pb<=pc){buffer[j++]=up+c;}else{buffer[j++]=upLeft+c;}}
break;default:throw new _util.FormatError(`Unsupported predictor: ${predictor}`);}
this.bufferLength+=rowBytes;}}
exports.PredictorStream=PredictorStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.RunLengthStream=void 0;var _decode_stream=__w_pdfjs_require__(144);class RunLengthStream extends _decode_stream.DecodeStream{constructor(str,maybeLength){super(maybeLength);this.str=str;this.dict=str.dict;}
readBlock(){const repeatHeader=this.str.getBytes(2);if(!repeatHeader||repeatHeader.length<2||repeatHeader[0]===128){this.eof=true;return;}
let buffer;let bufferLength=this.bufferLength;let n=repeatHeader[0];if(n<128){buffer=this.ensureBuffer(bufferLength+n+1);buffer[bufferLength++]=repeatHeader[1];if(n>0){const source=this.str.getBytes(n);buffer.set(source,bufferLength);bufferLength+=n;}}else{n=257-n;const b=repeatHeader[1];buffer=this.ensureBuffer(bufferLength+n+1);for(let i=0;i<n;i++){buffer[bufferLength++]=b;}}
this.bufferLength=bufferLength;}}
exports.RunLengthStream=RunLengthStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Font=exports.ErrorFont=void 0;var _util=__w_pdfjs_require__(2);var _cff_parser=__w_pdfjs_require__(160);var _fonts_utils=__w_pdfjs_require__(163);var _unicode=__w_pdfjs_require__(165);var _glyphlist=__w_pdfjs_require__(164);var _encodings=__w_pdfjs_require__(162);var _standard_fonts=__w_pdfjs_require__(166);var _to_unicode_map=__w_pdfjs_require__(167);var _cff_font=__w_pdfjs_require__(168);var _font_renderer=__w_pdfjs_require__(169);var _metrics=__w_pdfjs_require__(170);var _glyf=__w_pdfjs_require__(171);var _cmap=__w_pdfjs_require__(141);var _opentype_file_builder=__w_pdfjs_require__(172);var _core_utils=__w_pdfjs_require__(131);var _stream=__w_pdfjs_require__(135);var _type1_font=__w_pdfjs_require__(173);const PRIVATE_USE_AREAS=[[0xe000,0xf8ff],[0x100000,0x10fffd]];const PDF_GLYPH_SPACE_UNITS=1000;const EXPORT_DATA_PROPERTIES=["ascent","bbox","black","bold","charProcOperatorList","composite","cssFontInfo","data","defaultVMetrics","defaultWidth","descent","fallbackName","fontMatrix","fontType","isType3Font","italic","loadedName","mimetype","missingFile","name","remeasure","subtype","type","vertical"];const EXPORT_DATA_EXTRA_PROPERTIES=["cMap","defaultEncoding","differences","isMonospace","isSerifFont","isSymbolicFont","seacMap","toFontChar","toUnicode","vmetrics","widths"];function adjustWidths(properties){if(!properties.fontMatrix){return;}
if(properties.fontMatrix[0]===_util.FONT_IDENTITY_MATRIX[0]){return;}
const scale=0.001/properties.fontMatrix[0];const glyphsWidths=properties.widths;for(const glyph in glyphsWidths){glyphsWidths[glyph]*=scale;}
properties.defaultWidth*=scale;}
function adjustToUnicode(properties,builtInEncoding){if(properties.isInternalFont){return;}
if(builtInEncoding===properties.defaultEncoding){return;}
if(properties.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap){return;}
const toUnicode=[],glyphsUnicodeMap=(0,_glyphlist.getGlyphsUnicode)();for(const charCode in builtInEncoding){if(properties.hasIncludedToUnicodeMap){if(properties.toUnicode.has(charCode)){continue;}}else if(properties.hasEncoding){if(properties.differences.length===0||properties.differences[charCode]!==undefined){continue;}}
const glyphName=builtInEncoding[charCode];const unicode=(0,_unicode.getUnicodeForGlyph)(glyphName,glyphsUnicodeMap);if(unicode!==-1){toUnicode[charCode]=String.fromCharCode(unicode);}}
if(toUnicode.length>0){properties.toUnicode.amend(toUnicode);}}
function amendFallbackToUnicode(properties){if(!properties.fallbackToUnicode){return;}
if(properties.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap){return;}
const toUnicode=[];for(const charCode in properties.fallbackToUnicode){if(properties.toUnicode.has(charCode)){continue;}
toUnicode[charCode]=properties.fallbackToUnicode[charCode];}
if(toUnicode.length>0){properties.toUnicode.amend(toUnicode);}}
class Glyph{constructor(originalCharCode,fontChar,unicode,accent,width,vmetric,operatorListId,isSpace,isInFont){this.originalCharCode=originalCharCode;this.fontChar=fontChar;this.unicode=unicode;this.accent=accent;this.width=width;this.vmetric=vmetric;this.operatorListId=operatorListId;this.isSpace=isSpace;this.isInFont=isInFont;const category=(0,_unicode.getCharUnicodeCategory)(unicode);this.isWhitespace=category.isWhitespace;this.isZeroWidthDiacritic=category.isZeroWidthDiacritic;this.isInvisibleFormatMark=category.isInvisibleFormatMark;}
matchesForCache(originalCharCode,fontChar,unicode,accent,width,vmetric,operatorListId,isSpace,isInFont){return this.originalCharCode===originalCharCode&&this.fontChar===fontChar&&this.unicode===unicode&&this.accent===accent&&this.width===width&&this.vmetric===vmetric&&this.operatorListId===operatorListId&&this.isSpace===isSpace&&this.isInFont===isInFont;}}
function int16(b0,b1){return(b0<<8)+b1;}
function writeSignedInt16(bytes,index,value){bytes[index+1]=value;bytes[index]=value>>>8;}
function signedInt16(b0,b1){const value=(b0<<8)+b1;return value&1<<15?value-0x10000:value;}
function int32(b0,b1,b2,b3){return(b0<<24)+(b1<<16)+(b2<<8)+b3;}
function string16(value){return String.fromCharCode(value>>8&0xff,value&0xff);}
function safeString16(value){if(value>0x7fff){value=0x7fff;}else if(value<-0x8000){value=-0x8000;}
return String.fromCharCode(value>>8&0xff,value&0xff);}
function isTrueTypeFile(file){const header=file.peekBytes(4);return(0,_core_utils.readUint32)(header,0)===0x00010000||(0,_util.bytesToString)(header)==="true";}
function isTrueTypeCollectionFile(file){const header=file.peekBytes(4);return(0,_util.bytesToString)(header)==="ttcf";}
function isOpenTypeFile(file){const header=file.peekBytes(4);return(0,_util.bytesToString)(header)==="OTTO";}
function isType1File(file){const header=file.peekBytes(2);if(header[0]===0x25&&header[1]===0x21){return true;}
if(header[0]===0x80&&header[1]===0x01){return true;}
return false;}
function isCFFFile(file){const header=file.peekBytes(4);if(header[0]>=1&&header[3]>=1&&header[3]<=4){return true;}
return false;}
function getFontFileType(file,_ref){let{type,subtype,composite}=_ref;let fileType,fileSubtype;if(isTrueTypeFile(file)||isTrueTypeCollectionFile(file)){if(composite){fileType="CIDFontType2";}else{fileType="TrueType";}}else if(isOpenTypeFile(file)){if(composite){fileType="CIDFontType2";}else{fileType="OpenType";}}else if(isType1File(file)){if(composite){fileType="CIDFontType0";}else{fileType=type==="MMType1"?"MMType1":"Type1";}}else if(isCFFFile(file)){if(composite){fileType="CIDFontType0";fileSubtype="CIDFontType0C";}else{fileType=type==="MMType1"?"MMType1":"Type1";fileSubtype="Type1C";}}else{(0,_util.warn)("getFontFileType: Unable to detect correct font file Type/Subtype.");fileType=type;fileSubtype=subtype;}
return[fileType,fileSubtype];}
function applyStandardFontGlyphMap(map,glyphMap){for(const charCode in glyphMap){map[+charCode]=glyphMap[charCode];}}
function buildToFontChar(encoding,glyphsUnicodeMap,differences){const toFontChar=[];let unicode;for(let i=0,ii=encoding.length;i<ii;i++){unicode=(0,_unicode.getUnicodeForGlyph)(encoding[i],glyphsUnicodeMap);if(unicode!==-1){toFontChar[i]=unicode;}}
for(const charCode in differences){unicode=(0,_unicode.getUnicodeForGlyph)(differences[charCode],glyphsUnicodeMap);if(unicode!==-1){toFontChar[+charCode]=unicode;}}
return toFontChar;}
function convertCidString(charCode,cid){let shouldThrow=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;switch(cid.length){case 1:return cid.charCodeAt(0);case 2:return cid.charCodeAt(0)<<8|cid.charCodeAt(1);}
const msg=`Unsupported CID string (charCode ${charCode}): "${cid}".`;if(shouldThrow){throw new _util.FormatError(msg);}
(0,_util.warn)(msg);return cid;}
function adjustMapping(charCodeToGlyphId,hasGlyph,newGlyphZeroId,toUnicode){const newMap=Object.create(null);const toUnicodeExtraMap=new Map();const toFontChar=[];const usedGlyphIds=new Set();let privateUseAreaIndex=0;const privateUseOffetStart=PRIVATE_USE_AREAS[privateUseAreaIndex][0];let nextAvailableFontCharCode=privateUseOffetStart;let privateUseOffetEnd=PRIVATE_USE_AREAS[privateUseAreaIndex][1];for(let originalCharCode in charCodeToGlyphId){originalCharCode|=0;let glyphId=charCodeToGlyphId[originalCharCode];if(!hasGlyph(glyphId)){continue;}
if(nextAvailableFontCharCode>privateUseOffetEnd){privateUseAreaIndex++;if(privateUseAreaIndex>=PRIVATE_USE_AREAS.length){(0,_util.warn)("Ran out of space in font private use area.");break;}
nextAvailableFontCharCode=PRIVATE_USE_AREAS[privateUseAreaIndex][0];privateUseOffetEnd=PRIVATE_USE_AREAS[privateUseAreaIndex][1];}
const fontCharCode=nextAvailableFontCharCode++;if(glyphId===0){glyphId=newGlyphZeroId;}
let unicode=toUnicode.get(originalCharCode);if(typeof unicode==="string"){unicode=unicode.codePointAt(0);}
if(unicode&&unicode<privateUseOffetStart&&!usedGlyphIds.has(glyphId)){toUnicodeExtraMap.set(unicode,glyphId);usedGlyphIds.add(glyphId);}
newMap[fontCharCode]=glyphId;toFontChar[originalCharCode]=fontCharCode;}
return{toFontChar,charCodeToGlyphId:newMap,toUnicodeExtraMap,nextAvailableFontCharCode};}
function getRanges(glyphs,toUnicodeExtraMap,numGlyphs){const codes=[];for(const charCode in glyphs){if(glyphs[charCode]>=numGlyphs){continue;}
codes.push({fontCharCode:charCode|0,glyphId:glyphs[charCode]});}
if(toUnicodeExtraMap){for(const[unicode,glyphId]of toUnicodeExtraMap){if(glyphId>=numGlyphs){continue;}
codes.push({fontCharCode:unicode,glyphId});}}
if(codes.length===0){codes.push({fontCharCode:0,glyphId:0});}
codes.sort(function fontGetRangesSort(a,b){return a.fontCharCode-b.fontCharCode;});const ranges=[];const length=codes.length;for(let n=0;n<length;){const start=codes[n].fontCharCode;const codeIndices=[codes[n].glyphId];++n;let end=start;while(n<length&&end+1===codes[n].fontCharCode){codeIndices.push(codes[n].glyphId);++end;++n;if(end===0xffff){break;}}
ranges.push([start,end,codeIndices]);}
return ranges;}
function createCmapTable(glyphs,toUnicodeExtraMap,numGlyphs){const ranges=getRanges(glyphs,toUnicodeExtraMap,numGlyphs);const numTables=ranges.at(-1)[1]>0xffff?2:1;let cmap="\x00\x00"+string16(numTables)+"\x00\x03"+"\x00\x01"+(0,_util.string32)(4+numTables*8);let i,ii,j,jj;for(i=ranges.length-1;i>=0;--i){if(ranges[i][0]<=0xffff){break;}}
const bmpLength=i+1;if(ranges[i][0]<0xffff&&ranges[i][1]===0xffff){ranges[i][1]=0xfffe;}
const trailingRangesCount=ranges[i][1]<0xffff?1:0;const segCount=bmpLength+trailingRangesCount;const searchParams=_opentype_file_builder.OpenTypeFileBuilder.getSearchParams(segCount,2);let startCount="";let endCount="";let idDeltas="";let idRangeOffsets="";let glyphsIds="";let bias=0;let range,start,end,codes;for(i=0,ii=bmpLength;i<ii;i++){range=ranges[i];start=range[0];end=range[1];startCount+=string16(start);endCount+=string16(end);codes=range[2];let contiguous=true;for(j=1,jj=codes.length;j<jj;++j){if(codes[j]!==codes[j-1]+1){contiguous=false;break;}}
if(!contiguous){const offset=(segCount-i)*2+bias*2;bias+=end-start+1;idDeltas+=string16(0);idRangeOffsets+=string16(offset);for(j=0,jj=codes.length;j<jj;++j){glyphsIds+=string16(codes[j]);}}else{const startCode=codes[0];idDeltas+=string16(startCode-start&0xffff);idRangeOffsets+=string16(0);}}
if(trailingRangesCount>0){endCount+="\xFF\xFF";startCount+="\xFF\xFF";idDeltas+="\x00\x01";idRangeOffsets+="\x00\x00";}
const format314="\x00\x00"+string16(2*segCount)+string16(searchParams.range)+string16(searchParams.entry)+string16(searchParams.rangeShift)+endCount+"\x00\x00"+startCount+idDeltas+idRangeOffsets+glyphsIds;let format31012="";let header31012="";if(numTables>1){cmap+="\x00\x03"+"\x00\x0A"+(0,_util.string32)(4+numTables*8+4+format314.length);format31012="";for(i=0,ii=ranges.length;i<ii;i++){range=ranges[i];start=range[0];codes=range[2];let code=codes[0];for(j=1,jj=codes.length;j<jj;++j){if(codes[j]!==codes[j-1]+1){end=range[0]+j-1;format31012+=(0,_util.string32)(start)+(0,_util.string32)(end)+(0,_util.string32)(code);start=end+1;code=codes[j];}}
format31012+=(0,_util.string32)(start)+(0,_util.string32)(range[1])+(0,_util.string32)(code);}
header31012="\x00\x0C"+"\x00\x00"+(0,_util.string32)(format31012.length+16)+"\x00\x00\x00\x00"+(0,_util.string32)(format31012.length/12);}
return cmap+"\x00\x04"+string16(format314.length+4)+format314+header31012+format31012;}
function validateOS2Table(os2,file){file.pos=(file.start||0)+os2.offset;const version=file.getUint16();file.skip(60);const selection=file.getUint16();if(version<4&&selection&0x0300){return false;}
const firstChar=file.getUint16();const lastChar=file.getUint16();if(firstChar>lastChar){return false;}
file.skip(6);const usWinAscent=file.getUint16();if(usWinAscent===0){return false;}
os2.data[8]=os2.data[9]=0;return true;}
function createOS2Table(properties,charstrings,override){override=override||{unitsPerEm:0,yMax:0,yMin:0,ascent:0,descent:0};let ulUnicodeRange1=0;let ulUnicodeRange2=0;let ulUnicodeRange3=0;let ulUnicodeRange4=0;let firstCharIndex=null;let lastCharIndex=0;if(charstrings){for(let code in charstrings){code|=0;if(firstCharIndex>code||!firstCharIndex){firstCharIndex=code;}
if(lastCharIndex<code){lastCharIndex=code;}
const position=(0,_unicode.getUnicodeRangeFor)(code);if(position<32){ulUnicodeRange1|=1<<position;}else if(position<64){ulUnicodeRange2|=1<<position-32;}else if(position<96){ulUnicodeRange3|=1<<position-64;}else if(position<123){ulUnicodeRange4|=1<<position-96;}else{throw new _util.FormatError("Unicode ranges Bits > 123 are reserved for internal usage");}}
if(lastCharIndex>0xffff){lastCharIndex=0xffff;}}else{firstCharIndex=0;lastCharIndex=255;}
const bbox=properties.bbox||[0,0,0,0];const unitsPerEm=override.unitsPerEm||1/(properties.fontMatrix||_util.FONT_IDENTITY_MATRIX)[0];const scale=properties.ascentScaled?1.0:unitsPerEm/PDF_GLYPH_SPACE_UNITS;const typoAscent=override.ascent||Math.round(scale*(properties.ascent||bbox[3]));let typoDescent=override.descent||Math.round(scale*(properties.descent||bbox[1]));if(typoDescent>0&&properties.descent>0&&bbox[1]<0){typoDescent=-typoDescent;}
const winAscent=override.yMax||typoAscent;const winDescent=-override.yMin||-typoDescent;return"\x00\x03"+"\x02\x24"+"\x01\xF4"+"\x00\x05"+"\x00\x00"+"\x02\x8A"+"\x02\xBB"+"\x00\x00"+"\x00\x8C"+"\x02\x8A"+"\x02\xBB"+"\x00\x00"+"\x01\xDF"+"\x00\x31"+"\x01\x02"+"\x00\x00"+"\x00\x00\x06"+String.fromCharCode(properties.fixedPitch?0x09:0x00)+"\x00\x00\x00\x00\x00\x00"+(0,_util.string32)(ulUnicodeRange1)+(0,_util.string32)(ulUnicodeRange2)+(0,_util.string32)(ulUnicodeRange3)+(0,_util.string32)(ulUnicodeRange4)+"\x2A\x32\x31\x2A"+string16(properties.italicAngle?1:0)+string16(firstCharIndex||properties.firstChar)+string16(lastCharIndex||properties.lastChar)+string16(typoAscent)+string16(typoDescent)+"\x00\x64"+string16(winAscent)+string16(winDescent)+"\x00\x00\x00\x00"+"\x00\x00\x00\x00"+string16(properties.xHeight)+string16(properties.capHeight)+string16(0)+string16(firstCharIndex||properties.firstChar)+"\x00\x03";}
function createPostTable(properties){const angle=Math.floor(properties.italicAngle*2**16);return"\x00\x03\x00\x00"+(0,_util.string32)(angle)+"\x00\x00"+"\x00\x00"+(0,_util.string32)(properties.fixedPitch?1:0)+"\x00\x00\x00\x00"+"\x00\x00\x00\x00"+"\x00\x00\x00\x00"+"\x00\x00\x00\x00";}
function createPostscriptName(name){return name.replace(/[^\x21-\x7E]|[[\](){}<>/%]/g,"").slice(0,63);}
function createNameTable(name,proto){if(!proto){proto=[[],[]];}
const strings=[proto[0][0]||"Original licence",proto[0][1]||name,proto[0][2]||"Unknown",proto[0][3]||"uniqueID",proto[0][4]||name,proto[0][5]||"Version 0.11",proto[0][6]||createPostscriptName(name),proto[0][7]||"Unknown",proto[0][8]||"Unknown",proto[0][9]||"Unknown"];const stringsUnicode=[];let i,ii,j,jj,str;for(i=0,ii=strings.length;i<ii;i++){str=proto[1][i]||strings[i];const strBufUnicode=[];for(j=0,jj=str.length;j<jj;j++){strBufUnicode.push(string16(str.charCodeAt(j)));}
stringsUnicode.push(strBufUnicode.join(""));}
const names=[strings,stringsUnicode];const platforms=["\x00\x01","\x00\x03"];const encodings=["\x00\x00","\x00\x01"];const languages=["\x00\x00","\x04\x09"];const namesRecordCount=strings.length*platforms.length;let nameTable="\x00\x00"+string16(namesRecordCount)+string16(namesRecordCount*12+6);let strOffset=0;for(i=0,ii=platforms.length;i<ii;i++){const strs=names[i];for(j=0,jj=strs.length;j<jj;j++){str=strs[j];const nameRecord=platforms[i]+encodings[i]+languages[i]+string16(j)+string16(str.length)+string16(strOffset);nameTable+=nameRecord;strOffset+=str.length;}}
nameTable+=strings.join("")+stringsUnicode.join("");return nameTable;}
class Font{constructor(name,file,properties){this.name=name;this.psName=null;this.mimetype=null;this.disableFontFace=false;this.loadedName=properties.loadedName;this.isType3Font=properties.isType3Font;this.missingFile=false;this.cssFontInfo=properties.cssFontInfo;this._charsCache=Object.create(null);this._glyphCache=Object.create(null);let isSerifFont=!!(properties.flags&_fonts_utils.FontFlags.Serif);if(!isSerifFont&&!properties.isSimulatedFlags){const baseName=name.replace(/[,_]/g,"-").split("-")[0],serifFonts=(0,_standard_fonts.getSerifFonts)();for(const namePart of baseName.split("+")){if(serifFonts[namePart]){isSerifFont=true;break;}}}
this.isSerifFont=isSerifFont;this.isSymbolicFont=!!(properties.flags&_fonts_utils.FontFlags.Symbolic);this.isMonospace=!!(properties.flags&_fonts_utils.FontFlags.FixedPitch);let type=properties.type;let subtype=properties.subtype;this.type=type;this.subtype=subtype;let fallbackName="sans-serif";if(this.isMonospace){fallbackName="monospace";}else if(this.isSerifFont){fallbackName="serif";}
this.fallbackName=fallbackName;this.differences=properties.differences;this.widths=properties.widths;this.defaultWidth=properties.defaultWidth;this.composite=properties.composite;this.cMap=properties.cMap;this.capHeight=properties.capHeight/PDF_GLYPH_SPACE_UNITS;this.ascent=properties.ascent/PDF_GLYPH_SPACE_UNITS;this.descent=properties.descent/PDF_GLYPH_SPACE_UNITS;this.lineHeight=this.ascent-this.descent;this.fontMatrix=properties.fontMatrix;this.bbox=properties.bbox;this.defaultEncoding=properties.defaultEncoding;this.toUnicode=properties.toUnicode;this.toFontChar=[];if(properties.type==="Type3"){for(let charCode=0;charCode<256;charCode++){this.toFontChar[charCode]=this.differences[charCode]||properties.defaultEncoding[charCode];}
this.fontType=_util.FontType.TYPE3;return;}
this.cidEncoding=properties.cidEncoding||"";this.vertical=!!properties.vertical;if(this.vertical){this.vmetrics=properties.vmetrics;this.defaultVMetrics=properties.defaultVMetrics;}
if(!file||file.isEmpty){if(file){(0,_util.warn)('Font file is empty in "'+name+'" ('+this.loadedName+")");}
this.fallbackToSystemFont(properties);return;}
[type,subtype]=getFontFileType(file,properties);if(type!==this.type||subtype!==this.subtype){(0,_util.info)("Inconsistent font file Type/SubType, expected: "+`${this.type}/${this.subtype} but found: ${type}/${subtype}.`);}
let data;try{switch(type){case"MMType1":(0,_util.info)("MMType1 font ("+name+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";const cff=subtype==="Type1C"||subtype==="CIDFontType0C"?new _cff_font.CFFFont(file,properties):new _type1_font.Type1Font(name,file,properties);adjustWidths(properties);data=this.convert(name,cff,properties);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype";data=this.checkAndRepair(name,file,properties);if(this.isOpenType){adjustWidths(properties);type="OpenType";}
break;default:throw new _util.FormatError(`Font ${type} is not supported`);}}catch(e){(0,_util.warn)(e);this.fallbackToSystemFont(properties);return;}
amendFallbackToUnicode(properties);this.data=data;this.fontType=(0,_fonts_utils.getFontType)(type,subtype,properties.isStandardFont);this.fontMatrix=properties.fontMatrix;this.widths=properties.widths;this.defaultWidth=properties.defaultWidth;this.toUnicode=properties.toUnicode;this.seacMap=properties.seacMap;}
get renderer(){const renderer=_font_renderer.FontRendererFactory.create(this,_fonts_utils.SEAC_ANALYSIS_ENABLED);return(0,_util.shadow)(this,"renderer",renderer);}
exportData(){let extraProperties=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;const exportDataProperties=extraProperties?[...EXPORT_DATA_PROPERTIES,...EXPORT_DATA_EXTRA_PROPERTIES]:EXPORT_DATA_PROPERTIES;const data=Object.create(null);let property,value;for(property of exportDataProperties){value=this[property];if(value!==undefined){data[property]=value;}}
return data;}
fallbackToSystemFont(properties){this.missingFile=true;const name=this.name;const type=this.type;const subtype=this.subtype;let fontName=(0,_fonts_utils.normalizeFontName)(name);const stdFontMap=(0,_standard_fonts.getStdFontMap)(),nonStdFontMap=(0,_standard_fonts.getNonStdFontMap)();const isStandardFont=!!stdFontMap[fontName];const isMappedToStandardFont=!!(nonStdFontMap[fontName]&&stdFontMap[nonStdFontMap[fontName]]);fontName=stdFontMap[fontName]||nonStdFontMap[fontName]||fontName;const fontBasicMetricsMap=(0,_metrics.getFontBasicMetrics)();const metrics=fontBasicMetricsMap[fontName];if(metrics){if(isNaN(this.ascent)){this.ascent=metrics.ascent/PDF_GLYPH_SPACE_UNITS;}
if(isNaN(this.descent)){this.descent=metrics.descent/PDF_GLYPH_SPACE_UNITS;}
if(isNaN(this.capHeight)){this.capHeight=metrics.capHeight/PDF_GLYPH_SPACE_UNITS;}}
this.bold=fontName.search(/bold/gi)!==-1;this.italic=fontName.search(/oblique/gi)!==-1||fontName.search(/italic/gi)!==-1;this.black=name.search(/Black/g)!==-1;const isNarrow=name.search(/Narrow/g)!==-1;this.remeasure=(!isStandardFont||isNarrow)&&Object.keys(this.widths).length>0;if((isStandardFont||isMappedToStandardFont)&&type==="CIDFontType2"&&this.cidEncoding.startsWith("Identity-")){const cidToGidMap=properties.cidToGidMap;const map=[];applyStandardFontGlyphMap(map,(0,_standard_fonts.getGlyphMapForStandardFonts)());if(/Arial-?Black/i.test(name)){applyStandardFontGlyphMap(map,(0,_standard_fonts.getSupplementalGlyphMapForArialBlack)());}else if(/Calibri/i.test(name)){applyStandardFontGlyphMap(map,(0,_standard_fonts.getSupplementalGlyphMapForCalibri)());}
if(cidToGidMap){for(const charCode in map){const cid=map[charCode];if(cidToGidMap[cid]!==undefined){map[+charCode]=cidToGidMap[cid];}}
if(cidToGidMap.length!==this.toUnicode.length&&properties.hasIncludedToUnicodeMap&&this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap){this.toUnicode.forEach(function(charCode,unicodeCharCode){const cid=map[charCode];if(cidToGidMap[cid]===undefined){map[+charCode]=unicodeCharCode;}});}}
if(!(this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap)){this.toUnicode.forEach(function(charCode,unicodeCharCode){map[+charCode]=unicodeCharCode;});}
this.toFontChar=map;this.toUnicode=new _to_unicode_map.ToUnicodeMap(map);}else if(/Symbol/i.test(fontName)){this.toFontChar=buildToFontChar(_encodings.SymbolSetEncoding,(0,_glyphlist.getGlyphsUnicode)(),this.differences);}else if(/Dingbats/i.test(fontName)){if(/Wingdings/i.test(name)){(0,_util.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats.");}
this.toFontChar=buildToFontChar(_encodings.ZapfDingbatsEncoding,(0,_glyphlist.getDingbatsGlyphsUnicode)(),this.differences);}else if(isStandardFont){const map=buildToFontChar(this.defaultEncoding,(0,_glyphlist.getGlyphsUnicode)(),this.differences);if(type==="CIDFontType2"&&!this.cidEncoding.startsWith("Identity-")&&!(this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap)){this.toUnicode.forEach(function(charCode,unicodeCharCode){map[+charCode]=unicodeCharCode;});}
this.toFontChar=map;}else{const glyphsUnicodeMap=(0,_glyphlist.getGlyphsUnicode)();const map=[];this.toUnicode.forEach((charCode,unicodeCharCode)=>{if(!this.composite){const glyphName=this.differences[charCode]||this.defaultEncoding[charCode];const unicode=(0,_unicode.getUnicodeForGlyph)(glyphName,glyphsUnicodeMap);if(unicode!==-1){unicodeCharCode=unicode;}}
map[+charCode]=unicodeCharCode;});if(this.composite&&this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap){if(/Verdana/i.test(name)){applyStandardFontGlyphMap(map,(0,_standard_fonts.getGlyphMapForStandardFonts)());}}
this.toFontChar=map;}
amendFallbackToUnicode(properties);this.loadedName=fontName.split("-")[0];this.fontType=(0,_fonts_utils.getFontType)(type,subtype,properties.isStandardFont);}
checkAndRepair(name,font,properties){const VALID_TABLES=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(file,numTables){const tables=Object.create(null);tables["OS/2"]=null;tables.cmap=null;tables.head=null;tables.hhea=null;tables.hmtx=null;tables.maxp=null;tables.name=null;tables.post=null;for(let i=0;i<numTables;i++){const table=readTableEntry(file);if(!VALID_TABLES.includes(table.tag)){continue;}
if(table.length===0){continue;}
tables[table.tag]=table;}
return tables;}
function readTableEntry(file){const tag=file.getString(4);const checksum=file.getInt32()>>>0;const offset=file.getInt32()>>>0;const length=file.getInt32()>>>0;const previousPosition=file.pos;file.pos=file.start||0;file.skip(offset);const data=file.getBytes(length);file.pos=previousPosition;if(tag==="head"){data[8]=data[9]=data[10]=data[11]=0;data[17]|=0x20;}
return{tag,checksum,length,offset,data};}
function readOpenTypeHeader(ttf){return{version:ttf.getString(4),numTables:ttf.getUint16(),searchRange:ttf.getUint16(),entrySelector:ttf.getUint16(),rangeShift:ttf.getUint16()};}
function readTrueTypeCollectionHeader(ttc){const ttcTag=ttc.getString(4);(0,_util.assert)(ttcTag==="ttcf","Must be a TrueType Collection font.");const majorVersion=ttc.getUint16();const minorVersion=ttc.getUint16();const numFonts=ttc.getInt32()>>>0;const offsetTable=[];for(let i=0;i<numFonts;i++){offsetTable.push(ttc.getInt32()>>>0);}
const header={ttcTag,majorVersion,minorVersion,numFonts,offsetTable};switch(majorVersion){case 1:return header;case 2:header.dsigTag=ttc.getInt32()>>>0;header.dsigLength=ttc.getInt32()>>>0;header.dsigOffset=ttc.getInt32()>>>0;return header;}
throw new _util.FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`);}
function readTrueTypeCollectionData(ttc,fontName){const{numFonts,offsetTable}=readTrueTypeCollectionHeader(ttc);const fontNameParts=fontName.split("+");let fallbackData;for(let i=0;i<numFonts;i++){ttc.pos=(ttc.start||0)+offsetTable[i];const potentialHeader=readOpenTypeHeader(ttc);const potentialTables=readTables(ttc,potentialHeader.numTables);if(!potentialTables.name){throw new _util.FormatError('TrueType Collection font must contain a "name" table.');}
const nameTable=readNameTable(potentialTables.name);for(let j=0,jj=nameTable.length;j<jj;j++){for(let k=0,kk=nameTable[j].length;k<kk;k++){const nameEntry=nameTable[j][k]&&nameTable[j][k].replace(/\s/g,"");if(!nameEntry){continue;}
if(nameEntry===fontName){return{header:potentialHeader,tables:potentialTables};}
if(fontNameParts.length<2){continue;}
for(const part of fontNameParts){if(nameEntry===part){fallbackData={name:part,header:potentialHeader,tables:potentialTables};}}}}}
if(fallbackData){(0,_util.warn)(`TrueType Collection does not contain "${fontName}" font, `+`falling back to "${fallbackData.name}" font instead.`);return{header:fallbackData.header,tables:fallbackData.tables};}
throw new _util.FormatError(`TrueType Collection does not contain "${fontName}" font.`);}
function readCmapTable(cmap,file,isSymbolicFont,hasEncoding){if(!cmap){(0,_util.warn)("No cmap table available.");return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:false};}
let segment;let start=(file.start||0)+cmap.offset;file.pos=start;file.skip(2);const numTables=file.getUint16();let potentialTable;let canBreak=false;for(let i=0;i<numTables;i++){const platformId=file.getUint16();const encodingId=file.getUint16();const offset=file.getInt32()>>>0;let useTable=false;if(potentialTable&&potentialTable.platformId===platformId&&potentialTable.encodingId===encodingId){continue;}
if(platformId===0&&(encodingId===0||encodingId===1||encodingId===3)){useTable=true;}else if(platformId===1&&encodingId===0){useTable=true;}else if(platformId===3&&encodingId===1&&(hasEncoding||!potentialTable)){useTable=true;if(!isSymbolicFont){canBreak=true;}}else if(isSymbolicFont&&platformId===3&&encodingId===0){useTable=true;let correctlySorted=true;if(i<numTables-1){const nextBytes=file.peekBytes(2),nextPlatformId=int16(nextBytes[0],nextBytes[1]);if(nextPlatformId<platformId){correctlySorted=false;}}
if(correctlySorted){canBreak=true;}}
if(useTable){potentialTable={platformId,encodingId,offset};}
if(canBreak){break;}}
if(potentialTable){file.pos=start+potentialTable.offset;}
if(!potentialTable||file.peekByte()===-1){(0,_util.warn)("Could not find a preferred cmap table.");return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:false};}
const format=file.getUint16();let hasShortCmap=false;const mappings=[];let j,glyphId;if(format===0){file.skip(2+2);for(j=0;j<256;j++){const index=file.getByte();if(!index){continue;}
mappings.push({charCode:j,glyphId:index});}
hasShortCmap=true;}else if(format===2){file.skip(2+2);const subHeaderKeys=[];let maxSubHeaderKey=0;for(let i=0;i<256;i++){const subHeaderKey=file.getUint16()>>3;subHeaderKeys.push(subHeaderKey);maxSubHeaderKey=Math.max(subHeaderKey,maxSubHeaderKey);}
const subHeaders=[];for(let i=0;i<=maxSubHeaderKey;i++){subHeaders.push({firstCode:file.getUint16(),entryCount:file.getUint16(),idDelta:signedInt16(file.getByte(),file.getByte()),idRangePos:file.pos+file.getUint16()});}
for(let i=0;i<256;i++){if(subHeaderKeys[i]===0){file.pos=subHeaders[0].idRangePos+2*i;glyphId=file.getUint16();mappings.push({charCode:i,glyphId});}else{const s=subHeaders[subHeaderKeys[i]];for(j=0;j<s.entryCount;j++){const charCode=(i<<8)+j+s.firstCode;file.pos=s.idRangePos+2*j;glyphId=file.getUint16();if(glyphId!==0){glyphId=(glyphId+s.idDelta)%65536;}
mappings.push({charCode,glyphId});}}}}else if(format===4){file.skip(2+2);const segCount=file.getUint16()>>1;file.skip(6);const segments=[];let segIndex;for(segIndex=0;segIndex<segCount;segIndex++){segments.push({end:file.getUint16()});}
file.skip(2);for(segIndex=0;segIndex<segCount;segIndex++){segments[segIndex].start=file.getUint16();}
for(segIndex=0;segIndex<segCount;segIndex++){segments[segIndex].delta=file.getUint16();}
let offsetsCount=0,offsetIndex;for(segIndex=0;segIndex<segCount;segIndex++){segment=segments[segIndex];const rangeOffset=file.getUint16();if(!rangeOffset){segment.offsetIndex=-1;continue;}
offsetIndex=(rangeOffset>>1)-(segCount-segIndex);segment.offsetIndex=offsetIndex;offsetsCount=Math.max(offsetsCount,offsetIndex+segment.end-segment.start+1);}
const offsets=[];for(j=0;j<offsetsCount;j++){offsets.push(file.getUint16());}
for(segIndex=0;segIndex<segCount;segIndex++){segment=segments[segIndex];start=segment.start;const end=segment.end;const delta=segment.delta;offsetIndex=segment.offsetIndex;for(j=start;j<=end;j++){if(j===0xffff){continue;}
glyphId=offsetIndex<0?j:offsets[offsetIndex+j-start];glyphId=glyphId+delta&0xffff;mappings.push({charCode:j,glyphId});}}}else if(format===6){file.skip(2+2);const firstCode=file.getUint16();const entryCount=file.getUint16();for(j=0;j<entryCount;j++){glyphId=file.getUint16();const charCode=firstCode+j;mappings.push({charCode,glyphId});}}else if(format===12){file.skip(2+4+4);const nGroups=file.getInt32()>>>0;for(j=0;j<nGroups;j++){const startCharCode=file.getInt32()>>>0;const endCharCode=file.getInt32()>>>0;let glyphCode=file.getInt32()>>>0;for(let charCode=startCharCode;charCode<=endCharCode;charCode++){mappings.push({charCode,glyphId:glyphCode++});}}}else{(0,_util.warn)("cmap table has unsupported format: "+format);return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:false};}
mappings.sort(function(a,b){return a.charCode-b.charCode;});for(let i=1;i<mappings.length;i++){if(mappings[i-1].charCode===mappings[i].charCode){mappings.splice(i,1);i--;}}
return{platformId:potentialTable.platformId,encodingId:potentialTable.encodingId,mappings,hasShortCmap};}
function sanitizeMetrics(file,header,metrics,headTable,numGlyphs,dupFirstEntry){if(!header){if(metrics){metrics.data=null;}
return;}
file.pos=(file.start||0)+header.offset;file.pos+=4;file.pos+=2;file.pos+=2;file.pos+=2;file.pos+=2;file.pos+=2;file.pos+=2;file.pos+=2;file.pos+=2;file.pos+=2;const caretOffset=file.getUint16();file.pos+=8;file.pos+=2;let numOfMetrics=file.getUint16();if(caretOffset!==0){const macStyle=int16(headTable.data[44],headTable.data[45]);if(!(macStyle&2)){header.data[22]=0;header.data[23]=0;}}
if(numOfMetrics>numGlyphs){(0,_util.info)(`The numOfMetrics (${numOfMetrics}) should not be `+`greater than the numGlyphs (${numGlyphs}).`);numOfMetrics=numGlyphs;header.data[34]=(numOfMetrics&0xff00)>>8;header.data[35]=numOfMetrics&0x00ff;}
const numOfSidebearings=numGlyphs-numOfMetrics;const numMissing=numOfSidebearings-(metrics.length-numOfMetrics*4>>1);if(numMissing>0){const entries=new Uint8Array(metrics.length+numMissing*2);entries.set(metrics.data);if(dupFirstEntry){entries[metrics.length]=metrics.data[2];entries[metrics.length+1]=metrics.data[3];}
metrics.data=entries;}}
function sanitizeGlyph(source,sourceStart,sourceEnd,dest,destStart,hintsValid){const glyphProfile={length:0,sizeOfInstructions:0};if(sourceEnd-sourceStart<=12){return glyphProfile;}
const glyf=source.subarray(sourceStart,sourceEnd);let contoursCount=signedInt16(glyf[0],glyf[1]);if(contoursCount<0){contoursCount=-1;writeSignedInt16(glyf,0,contoursCount);dest.set(glyf,destStart);glyphProfile.length=glyf.length;return glyphProfile;}
let i,j=10,flagsCount=0;for(i=0;i<contoursCount;i++){const endPoint=glyf[j]<<8|glyf[j+1];flagsCount=endPoint+1;j+=2;}
const instructionsStart=j;const instructionsLength=glyf[j]<<8|glyf[j+1];glyphProfile.sizeOfInstructions=instructionsLength;j+=2+instructionsLength;const instructionsEnd=j;let coordinatesLength=0;for(i=0;i<flagsCount;i++){const flag=glyf[j++];if(flag&0xc0){glyf[j-1]=flag&0x3f;}
let xLength=2;if(flag&2){xLength=1;}else if(flag&16){xLength=0;}
let yLength=2;if(flag&4){yLength=1;}else if(flag&32){yLength=0;}
const xyLength=xLength+yLength;coordinatesLength+=xyLength;if(flag&8){const repeat=glyf[j++];i+=repeat;coordinatesLength+=repeat*xyLength;}}
if(coordinatesLength===0){return glyphProfile;}
let glyphDataLength=j+coordinatesLength;if(glyphDataLength>glyf.length){return glyphProfile;}
if(!hintsValid&&instructionsLength>0){dest.set(glyf.subarray(0,instructionsStart),destStart);dest.set([0,0],destStart+instructionsStart);dest.set(glyf.subarray(instructionsEnd,glyphDataLength),destStart+instructionsStart+2);glyphDataLength-=instructionsLength;if(glyf.length-glyphDataLength>3){glyphDataLength=glyphDataLength+3&~3;}
glyphProfile.length=glyphDataLength;return glyphProfile;}
if(glyf.length-glyphDataLength>3){glyphDataLength=glyphDataLength+3&~3;dest.set(glyf.subarray(0,glyphDataLength),destStart);glyphProfile.length=glyphDataLength;return glyphProfile;}
dest.set(glyf,destStart);glyphProfile.length=glyf.length;return glyphProfile;}
function sanitizeHead(head,numGlyphs,locaLength){const data=head.data;const version=int32(data[0],data[1],data[2],data[3]);if(version>>16!==1){(0,_util.info)("Attempting to fix invalid version in head table: "+version);data[0]=0;data[1]=1;data[2]=0;data[3]=0;}
const indexToLocFormat=int16(data[50],data[51]);if(indexToLocFormat<0||indexToLocFormat>1){(0,_util.info)("Attempting to fix invalid indexToLocFormat in head table: "+indexToLocFormat);const numGlyphsPlusOne=numGlyphs+1;if(locaLength===numGlyphsPlusOne<<1){data[50]=0;data[51]=0;}else if(locaLength===numGlyphsPlusOne<<2){data[50]=0;data[51]=1;}else{throw new _util.FormatError("Could not fix indexToLocFormat: "+indexToLocFormat);}}}
function sanitizeGlyphLocations(loca,glyf,numGlyphs,isGlyphLocationsLong,hintsValid,dupFirstEntry,maxSizeOfInstructions){let itemSize,itemDecode,itemEncode;if(isGlyphLocationsLong){itemSize=4;itemDecode=function fontItemDecodeLong(data,offset){return data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3];};itemEncode=function fontItemEncodeLong(data,offset,value){data[offset]=value>>>24&0xff;data[offset+1]=value>>16&0xff;data[offset+2]=value>>8&0xff;data[offset+3]=value&0xff;};}else{itemSize=2;itemDecode=function fontItemDecode(data,offset){return data[offset]<<9|data[offset+1]<<1;};itemEncode=function fontItemEncode(data,offset,value){data[offset]=value>>9&0xff;data[offset+1]=value>>1&0xff;};}
const numGlyphsOut=dupFirstEntry?numGlyphs+1:numGlyphs;const locaDataSize=itemSize*(1+numGlyphsOut);const locaData=new Uint8Array(locaDataSize);locaData.set(loca.data.subarray(0,locaDataSize));loca.data=locaData;const oldGlyfData=glyf.data;const oldGlyfDataLength=oldGlyfData.length;const newGlyfData=new Uint8Array(oldGlyfDataLength);let i,j;const locaEntries=[];for(i=0,j=0;i<numGlyphs+1;i++,j+=itemSize){let offset=itemDecode(locaData,j);if(offset>oldGlyfDataLength){offset=oldGlyfDataLength;}
locaEntries.push({index:i,offset,endOffset:0});}
locaEntries.sort((a,b)=>{return a.offset-b.offset;});for(i=0;i<numGlyphs;i++){locaEntries[i].endOffset=locaEntries[i+1].offset;}
locaEntries.sort((a,b)=>{return a.index-b.index;});for(i=0;i<numGlyphs;i++){const{offset,endOffset}=locaEntries[i];if(offset!==0||endOffset!==0){break;}
const nextOffset=locaEntries[i+1].offset;if(nextOffset===0){continue;}
locaEntries[i].endOffset=nextOffset;break;}
const missingGlyphs=Object.create(null);let writeOffset=0;itemEncode(locaData,0,writeOffset);for(i=0,j=itemSize;i<numGlyphs;i++,j+=itemSize){const glyphProfile=sanitizeGlyph(oldGlyfData,locaEntries[i].offset,locaEntries[i].endOffset,newGlyfData,writeOffset,hintsValid);const newLength=glyphProfile.length;if(newLength===0){missingGlyphs[i]=true;}
if(glyphProfile.sizeOfInstructions>maxSizeOfInstructions){maxSizeOfInstructions=glyphProfile.sizeOfInstructions;}
writeOffset+=newLength;itemEncode(locaData,j,writeOffset);}
if(writeOffset===0){const simpleGlyph=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(i=0,j=itemSize;i<numGlyphsOut;i++,j+=itemSize){itemEncode(locaData,j,simpleGlyph.length);}
glyf.data=simpleGlyph;}else if(dupFirstEntry){const firstEntryLength=itemDecode(locaData,itemSize);if(newGlyfData.length>firstEntryLength+writeOffset){glyf.data=newGlyfData.subarray(0,firstEntryLength+writeOffset);}else{glyf.data=new Uint8Array(firstEntryLength+writeOffset);glyf.data.set(newGlyfData.subarray(0,writeOffset));}
glyf.data.set(newGlyfData.subarray(0,firstEntryLength),writeOffset);itemEncode(loca.data,locaData.length-itemSize,writeOffset+firstEntryLength);}else{glyf.data=newGlyfData.subarray(0,writeOffset);}
return{missingGlyphs,maxSizeOfInstructions};}
function readPostScriptTable(post,propertiesObj,maxpNumGlyphs){const start=(font.start||0)+post.offset;font.pos=start;const length=post.length,end=start+length;const version=font.getInt32();font.skip(28);let glyphNames;let valid=true;let i;switch(version){case 0x00010000:glyphNames=_fonts_utils.MacStandardGlyphOrdering;break;case 0x00020000:const numGlyphs=font.getUint16();if(numGlyphs!==maxpNumGlyphs){valid=false;break;}
const glyphNameIndexes=[];for(i=0;i<numGlyphs;++i){const index=font.getUint16();if(index>=32768){valid=false;break;}
glyphNameIndexes.push(index);}
if(!valid){break;}
const customNames=[],strBuf=[];while(font.pos<end){const stringLength=font.getByte();strBuf.length=stringLength;for(i=0;i<stringLength;++i){strBuf[i]=String.fromCharCode(font.getByte());}
customNames.push(strBuf.join(""));}
glyphNames=[];for(i=0;i<numGlyphs;++i){const j=glyphNameIndexes[i];if(j<258){glyphNames.push(_fonts_utils.MacStandardGlyphOrdering[j]);continue;}
glyphNames.push(customNames[j-258]);}
break;case 0x00030000:break;default:(0,_util.warn)("Unknown/unsupported post table version "+version);valid=false;if(propertiesObj.defaultEncoding){glyphNames=propertiesObj.defaultEncoding;}
break;}
propertiesObj.glyphNames=glyphNames;return valid;}
function readNameTable(nameTable){const start=(font.start||0)+nameTable.offset;font.pos=start;const names=[[],[]];const length=nameTable.length,end=start+length;const format=font.getUint16();const FORMAT_0_HEADER_LENGTH=6;if(format!==0||length<FORMAT_0_HEADER_LENGTH){return names;}
const numRecords=font.getUint16();const stringsStart=font.getUint16();const records=[];const NAME_RECORD_LENGTH=12;let i,ii;for(i=0;i<numRecords&&font.pos+NAME_RECORD_LENGTH<=end;i++){const r={platform:font.getUint16(),encoding:font.getUint16(),language:font.getUint16(),name:font.getUint16(),length:font.getUint16(),offset:font.getUint16()};if(r.platform===1&&r.encoding===0&&r.language===0||r.platform===3&&r.encoding===1&&r.language===0x409){records.push(r);}}
for(i=0,ii=records.length;i<ii;i++){const record=records[i];if(record.length<=0){continue;}
const pos=start+stringsStart+record.offset;if(pos+record.length>end){continue;}
font.pos=pos;const nameIndex=record.name;if(record.encoding){let str="";for(let j=0,jj=record.length;j<jj;j+=2){str+=String.fromCharCode(font.getUint16());}
names[1][nameIndex]=str;}else{names[0][nameIndex]=font.getString(record.length);}}
return names;}
const TTOpsStackDeltas=[0,0,0,0,0,0,0,0,-2,-2,-2,-2,0,0,-2,-5,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,-1,-1,1,-1,-999,0,1,0,-1,-2,0,-1,-2,-1,-1,0,-1,-1,0,0,-999,-999,-1,-1,-1,-1,-2,-999,-2,-2,-999,0,-2,-2,0,0,-2,0,-2,0,0,0,-2,-1,-1,1,1,0,0,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,0,-999,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,-2,-999,-999,-999,-999,-999,-1,-1,-2,-2,0,0,0,0,-1,-1,-999,-2,-2,0,0,-1,-2,-2,0,0,0,-1,-1,-1,-2];function sanitizeTTProgram(table,ttContext){let data=table.data;let i=0,j,n,b,funcId,pc,lastEndf=0,lastDeff=0;const stack=[];const callstack=[];const functionsCalled=[];let tooComplexToFollowFunctions=ttContext.tooComplexToFollowFunctions;let inFDEF=false,ifLevel=0,inELSE=0;for(let ii=data.length;i<ii;){const op=data[i++];if(op===0x40){n=data[i++];if(inFDEF||inELSE){i+=n;}else{for(j=0;j<n;j++){stack.push(data[i++]);}}}else if(op===0x41){n=data[i++];if(inFDEF||inELSE){i+=n*2;}else{for(j=0;j<n;j++){b=data[i++];stack.push(b<<8|data[i++]);}}}else if((op&0xf8)===0xb0){n=op-0xb0+1;if(inFDEF||inELSE){i+=n;}else{for(j=0;j<n;j++){stack.push(data[i++]);}}}else if((op&0xf8)===0xb8){n=op-0xb8+1;if(inFDEF||inELSE){i+=n*2;}else{for(j=0;j<n;j++){b=data[i++];stack.push(b<<8|data[i++]);}}}else if(op===0x2b&&!tooComplexToFollowFunctions){if(!inFDEF&&!inELSE){funcId=stack.at(-1);if(isNaN(funcId)){(0,_util.info)("TT: CALL empty stack (or invalid entry).");}else{ttContext.functionsUsed[funcId]=true;if(funcId in ttContext.functionsStackDeltas){const newStackLength=stack.length+ttContext.functionsStackDeltas[funcId];if(newStackLength<0){(0,_util.warn)("TT: CALL invalid functions stack delta.");ttContext.hintsValid=false;return;}
stack.length=newStackLength;}else if(funcId in ttContext.functionsDefined&&!functionsCalled.includes(funcId)){callstack.push({data,i,stackTop:stack.length-1});functionsCalled.push(funcId);pc=ttContext.functionsDefined[funcId];if(!pc){(0,_util.warn)("TT: CALL non-existent function");ttContext.hintsValid=false;return;}
data=pc.data;i=pc.i;}}}}else if(op===0x2c&&!tooComplexToFollowFunctions){if(inFDEF||inELSE){(0,_util.warn)("TT: nested FDEFs not allowed");tooComplexToFollowFunctions=true;}
inFDEF=true;lastDeff=i;funcId=stack.pop();ttContext.functionsDefined[funcId]={data,i};}else if(op===0x2d){if(inFDEF){inFDEF=false;lastEndf=i;}else{pc=callstack.pop();if(!pc){(0,_util.warn)("TT: ENDF bad stack");ttContext.hintsValid=false;return;}
funcId=functionsCalled.pop();data=pc.data;i=pc.i;ttContext.functionsStackDeltas[funcId]=stack.length-pc.stackTop;}}else if(op===0x89){if(inFDEF||inELSE){(0,_util.warn)("TT: nested IDEFs not allowed");tooComplexToFollowFunctions=true;}
inFDEF=true;lastDeff=i;}else if(op===0x58){++ifLevel;}else if(op===0x1b){inELSE=ifLevel;}else if(op===0x59){if(inELSE===ifLevel){inELSE=0;}
--ifLevel;}else if(op===0x1c){if(!inFDEF&&!inELSE){const offset=stack.at(-1);if(offset>0){i+=offset-1;}}}
if(!inFDEF&&!inELSE){let stackDelta=0;if(op<=0x8e){stackDelta=TTOpsStackDeltas[op];}else if(op>=0xc0&&op<=0xdf){stackDelta=-1;}else if(op>=0xe0){stackDelta=-2;}
if(op>=0x71&&op<=0x75){n=stack.pop();if(!isNaN(n)){stackDelta=-n*2;}}
while(stackDelta<0&&stack.length>0){stack.pop();stackDelta++;}
while(stackDelta>0){stack.push(NaN);stackDelta--;}}}
ttContext.tooComplexToFollowFunctions=tooComplexToFollowFunctions;const content=[data];if(i>data.length){content.push(new Uint8Array(i-data.length));}
if(lastDeff>lastEndf){(0,_util.warn)("TT: complementing a missing function tail");content.push(new Uint8Array([0x22,0x2d]));}
foldTTTable(table,content);}
function checkInvalidFunctions(ttContext,maxFunctionDefs){if(ttContext.tooComplexToFollowFunctions){return;}
if(ttContext.functionsDefined.length>maxFunctionDefs){(0,_util.warn)("TT: more functions defined than expected");ttContext.hintsValid=false;return;}
for(let j=0,jj=ttContext.functionsUsed.length;j<jj;j++){if(j>maxFunctionDefs){(0,_util.warn)("TT: invalid function id: "+j);ttContext.hintsValid=false;return;}
if(ttContext.functionsUsed[j]&&!ttContext.functionsDefined[j]){(0,_util.warn)("TT: undefined function: "+j);ttContext.hintsValid=false;return;}}}
function foldTTTable(table,content){if(content.length>1){let newLength=0;let j,jj;for(j=0,jj=content.length;j<jj;j++){newLength+=content[j].length;}
newLength=newLength+3&~3;const result=new Uint8Array(newLength);let pos=0;for(j=0,jj=content.length;j<jj;j++){result.set(content[j],pos);pos+=content[j].length;}
table.data=result;table.length=newLength;}}
function sanitizeTTPrograms(fpgm,prep,cvt,maxFunctionDefs){const ttContext={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:false,hintsValid:true};if(fpgm){sanitizeTTProgram(fpgm,ttContext);}
if(prep){sanitizeTTProgram(prep,ttContext);}
if(fpgm){checkInvalidFunctions(ttContext,maxFunctionDefs);}
if(cvt&&cvt.length&1){const cvtData=new Uint8Array(cvt.length+1);cvtData.set(cvt.data);cvt.data=cvtData;}
return ttContext.hintsValid;}
font=new _stream.Stream(new Uint8Array(font.getBytes()));let header,tables;if(isTrueTypeCollectionFile(font)){const ttcData=readTrueTypeCollectionData(font,this.name);header=ttcData.header;tables=ttcData.tables;}else{header=readOpenTypeHeader(font);tables=readTables(font,header.numTables);}
let cff,cffFile;const isTrueType=!tables["CFF "];if(!isTrueType){const isComposite=properties.composite&&((properties.cidToGidMap||[]).length>0||!(properties.cMap instanceof _cmap.IdentityCMap));if(header.version==="OTTO"&&!isComposite||!tables.head||!tables.hhea||!tables.maxp||!tables.post){cffFile=new _stream.Stream(tables["CFF "].data);cff=new _cff_font.CFFFont(cffFile,properties);adjustWidths(properties);return this.convert(name,cff,properties);}
delete tables.glyf;delete tables.loca;delete tables.fpgm;delete tables.prep;delete tables["cvt "];this.isOpenType=true;}else{if(!tables.loca){throw new _util.FormatError('Required "loca" table is not found');}
if(!tables.glyf){(0,_util.warn)('Required "glyf" table is not found -- trying to recover.');tables.glyf={tag:"glyf",data:new Uint8Array(0)};}
this.isOpenType=false;}
if(!tables.maxp){throw new _util.FormatError('Required "maxp" table is not found');}
font.pos=(font.start||0)+tables.maxp.offset;const version=font.getInt32();const numGlyphs=font.getUint16();if(properties.scaleFactors&&properties.scaleFactors.length===numGlyphs&&isTrueType){const{scaleFactors}=properties;const isGlyphLocationsLong=int16(tables.head.data[50],tables.head.data[51]);const glyphs=new _glyf.GlyfTable({glyfTable:tables.glyf.data,isGlyphLocationsLong,locaTable:tables.loca.data,numGlyphs});glyphs.scale(scaleFactors);const{glyf,loca,isLocationLong}=glyphs.write();tables.glyf.data=glyf;tables.loca.data=loca;if(isLocationLong!==!!isGlyphLocationsLong){tables.head.data[50]=0;tables.head.data[51]=isLocationLong?1:0;}
const metrics=tables.hmtx.data;for(let i=0;i<numGlyphs;i++){const j=4*i;const advanceWidth=Math.round(scaleFactors[i]*int16(metrics[j],metrics[j+1]));metrics[j]=advanceWidth>>8&0xff;metrics[j+1]=advanceWidth&0xff;const lsb=Math.round(scaleFactors[i]*signedInt16(metrics[j+2],metrics[j+3]));writeSignedInt16(metrics,j+2,lsb);}}
let numGlyphsOut=numGlyphs+1;let dupFirstEntry=true;if(numGlyphsOut>0xffff){dupFirstEntry=false;numGlyphsOut=numGlyphs;(0,_util.warn)("Not enough space in glyfs to duplicate first glyph.");}
let maxFunctionDefs=0;let maxSizeOfInstructions=0;if(version>=0x00010000&&tables.maxp.length>=22){font.pos+=8;const maxZones=font.getUint16();if(maxZones>2){tables.maxp.data[14]=0;tables.maxp.data[15]=2;}
font.pos+=4;maxFunctionDefs=font.getUint16();font.pos+=4;maxSizeOfInstructions=font.getUint16();}
tables.maxp.data[4]=numGlyphsOut>>8;tables.maxp.data[5]=numGlyphsOut&255;const hintsValid=sanitizeTTPrograms(tables.fpgm,tables.prep,tables["cvt "],maxFunctionDefs);if(!hintsValid){delete tables.fpgm;delete tables.prep;delete tables["cvt "];}
sanitizeMetrics(font,tables.hhea,tables.hmtx,tables.head,numGlyphsOut,dupFirstEntry);if(!tables.head){throw new _util.FormatError('Required "head" table is not found');}
sanitizeHead(tables.head,numGlyphs,isTrueType?tables.loca.length:0);let missingGlyphs=Object.create(null);if(isTrueType){const isGlyphLocationsLong=int16(tables.head.data[50],tables.head.data[51]);const glyphsInfo=sanitizeGlyphLocations(tables.loca,tables.glyf,numGlyphs,isGlyphLocationsLong,hintsValid,dupFirstEntry,maxSizeOfInstructions);missingGlyphs=glyphsInfo.missingGlyphs;if(version>=0x00010000&&tables.maxp.length>=22){tables.maxp.data[26]=glyphsInfo.maxSizeOfInstructions>>8;tables.maxp.data[27]=glyphsInfo.maxSizeOfInstructions&255;}}
if(!tables.hhea){throw new _util.FormatError('Required "hhea" table is not found');}
if(tables.hhea.data[10]===0&&tables.hhea.data[11]===0){tables.hhea.data[10]=0xff;tables.hhea.data[11]=0xff;}
const metricsOverride={unitsPerEm:int16(tables.head.data[18],tables.head.data[19]),yMax:int16(tables.head.data[42],tables.head.data[43]),yMin:signedInt16(tables.head.data[38],tables.head.data[39]),ascent:signedInt16(tables.hhea.data[4],tables.hhea.data[5]),descent:signedInt16(tables.hhea.data[6],tables.hhea.data[7]),lineGap:signedInt16(tables.hhea.data[8],tables.hhea.data[9])};this.ascent=metricsOverride.ascent/metricsOverride.unitsPerEm;this.descent=metricsOverride.descent/metricsOverride.unitsPerEm;this.lineGap=metricsOverride.lineGap/metricsOverride.unitsPerEm;if(this.cssFontInfo&&this.cssFontInfo.lineHeight){this.lineHeight=this.cssFontInfo.metrics.lineHeight;this.lineGap=this.cssFontInfo.metrics.lineGap;}else{this.lineHeight=this.ascent-this.descent+this.lineGap;}
if(tables.post){readPostScriptTable(tables.post,properties,numGlyphs);}
tables.post={tag:"post",data:createPostTable(properties)};const charCodeToGlyphId=[];function hasGlyph(glyphId){return!missingGlyphs[glyphId];}
if(properties.composite){const cidToGidMap=properties.cidToGidMap||[];const isCidToGidMapEmpty=cidToGidMap.length===0;properties.cMap.forEach(function(charCode,cid){if(typeof cid==="string"){cid=convertCidString(charCode,cid,true);}
if(cid>0xffff){throw new _util.FormatError("Max size of CID is 65,535");}
let glyphId=-1;if(isCidToGidMapEmpty){glyphId=cid;}else if(cidToGidMap[cid]!==undefined){glyphId=cidToGidMap[cid];}
if(glyphId>=0&&glyphId<numGlyphs&&hasGlyph(glyphId)){charCodeToGlyphId[charCode]=glyphId;}});}else{const cmapTable=readCmapTable(tables.cmap,font,this.isSymbolicFont,properties.hasEncoding);const cmapPlatformId=cmapTable.platformId;const cmapEncodingId=cmapTable.encodingId;const cmapMappings=cmapTable.mappings;const cmapMappingsLength=cmapMappings.length;let baseEncoding=[],forcePostTable=false;if(properties.hasEncoding&&(properties.baseEncodingName==="MacRomanEncoding"||properties.baseEncodingName==="WinAnsiEncoding")){baseEncoding=(0,_encodings.getEncoding)(properties.baseEncodingName);}
if(properties.hasEncoding&&!this.isSymbolicFont&&(cmapPlatformId===3&&cmapEncodingId===1||cmapPlatformId===1&&cmapEncodingId===0)){const glyphsUnicodeMap=(0,_glyphlist.getGlyphsUnicode)();for(let charCode=0;charCode<256;charCode++){let glyphName;if(this.differences[charCode]!==undefined){glyphName=this.differences[charCode];}else if(baseEncoding.length&&baseEncoding[charCode]!==""){glyphName=baseEncoding[charCode];}else{glyphName=_encodings.StandardEncoding[charCode];}
if(!glyphName){continue;}
const standardGlyphName=(0,_fonts_utils.recoverGlyphName)(glyphName,glyphsUnicodeMap);let unicodeOrCharCode;if(cmapPlatformId===3&&cmapEncodingId===1){unicodeOrCharCode=glyphsUnicodeMap[standardGlyphName];}else if(cmapPlatformId===1&&cmapEncodingId===0){unicodeOrCharCode=_encodings.MacRomanEncoding.indexOf(standardGlyphName);}
if(unicodeOrCharCode===undefined){if(!properties.glyphNames&&properties.hasIncludedToUnicodeMap&&!(this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap)){const unicode=this.toUnicode.get(charCode);if(unicode){unicodeOrCharCode=unicode.codePointAt(0);}}
if(unicodeOrCharCode===undefined){continue;}}
for(let i=0;i<cmapMappingsLength;++i){if(cmapMappings[i].charCode!==unicodeOrCharCode){continue;}
charCodeToGlyphId[charCode]=cmapMappings[i].glyphId;break;}}}else if(cmapPlatformId===0){for(let i=0;i<cmapMappingsLength;++i){charCodeToGlyphId[cmapMappings[i].charCode]=cmapMappings[i].glyphId;}
forcePostTable=true;}else{for(let i=0;i<cmapMappingsLength;++i){let charCode=cmapMappings[i].charCode;if(cmapPlatformId===3&&charCode>=0xf000&&charCode<=0xf0ff){charCode&=0xff;}
charCodeToGlyphId[charCode]=cmapMappings[i].glyphId;}}
if(properties.glyphNames&&(baseEncoding.length||this.differences.length)){for(let i=0;i<256;++i){if(!forcePostTable&&charCodeToGlyphId[i]!==undefined){continue;}
const glyphName=this.differences[i]||baseEncoding[i];if(!glyphName){continue;}
const glyphId=properties.glyphNames.indexOf(glyphName);if(glyphId>0&&hasGlyph(glyphId)){charCodeToGlyphId[i]=glyphId;}}}}
if(charCodeToGlyphId.length===0){charCodeToGlyphId[0]=0;}
let glyphZeroId=numGlyphsOut-1;if(!dupFirstEntry){glyphZeroId=0;}
if(!properties.cssFontInfo){const newMapping=adjustMapping(charCodeToGlyphId,hasGlyph,glyphZeroId,this.toUnicode);this.toFontChar=newMapping.toFontChar;tables.cmap={tag:"cmap",data:createCmapTable(newMapping.charCodeToGlyphId,newMapping.toUnicodeExtraMap,numGlyphsOut)};if(!tables["OS/2"]||!validateOS2Table(tables["OS/2"],font)){tables["OS/2"]={tag:"OS/2",data:createOS2Table(properties,newMapping.charCodeToGlyphId,metricsOverride)};}}
if(!isTrueType){try{cffFile=new _stream.Stream(tables["CFF "].data);const parser=new _cff_parser.CFFParser(cffFile,properties,_fonts_utils.SEAC_ANALYSIS_ENABLED);cff=parser.parse();cff.duplicateFirstGlyph();const compiler=new _cff_parser.CFFCompiler(cff);tables["CFF "].data=compiler.compile();}catch(e){(0,_util.warn)("Failed to compile font "+properties.loadedName);}}
if(!tables.name){tables.name={tag:"name",data:createNameTable(this.name)};}else{const namePrototype=readNameTable(tables.name);tables.name.data=createNameTable(name,namePrototype);this.psName=namePrototype[0][6]||null;}
const builder=new _opentype_file_builder.OpenTypeFileBuilder(header.version);for(const tableTag in tables){builder.addTable(tableTag,tables[tableTag].data);}
return builder.toArray();}
convert(fontName,font,properties){properties.fixedPitch=false;if(properties.builtInEncoding){adjustToUnicode(properties,properties.builtInEncoding);}
let glyphZeroId=1;if(font instanceof _cff_font.CFFFont){glyphZeroId=font.numGlyphs-1;}
const mapping=font.getGlyphMapping(properties);let newMapping=null;let newCharCodeToGlyphId=mapping;let toUnicodeExtraMap=null;if(!properties.cssFontInfo){newMapping=adjustMapping(mapping,font.hasGlyphId.bind(font),glyphZeroId,this.toUnicode);this.toFontChar=newMapping.toFontChar;newCharCodeToGlyphId=newMapping.charCodeToGlyphId;toUnicodeExtraMap=newMapping.toUnicodeExtraMap;}
const numGlyphs=font.numGlyphs;function getCharCodes(charCodeToGlyphId,glyphId){let charCodes=null;for(const charCode in charCodeToGlyphId){if(glyphId===charCodeToGlyphId[charCode]){if(!charCodes){charCodes=[];}
charCodes.push(charCode|0);}}
return charCodes;}
function createCharCode(charCodeToGlyphId,glyphId){for(const charCode in charCodeToGlyphId){if(glyphId===charCodeToGlyphId[charCode]){return charCode|0;}}
newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode]=glyphId;return newMapping.nextAvailableFontCharCode++;}
const seacs=font.seacs;if(newMapping&&_fonts_utils.SEAC_ANALYSIS_ENABLED&&seacs&&seacs.length){const matrix=properties.fontMatrix||_util.FONT_IDENTITY_MATRIX;const charset=font.getCharset();const seacMap=Object.create(null);for(let glyphId in seacs){glyphId|=0;const seac=seacs[glyphId];const baseGlyphName=_encodings.StandardEncoding[seac[2]];const accentGlyphName=_encodings.StandardEncoding[seac[3]];const baseGlyphId=charset.indexOf(baseGlyphName);const accentGlyphId=charset.indexOf(accentGlyphName);if(baseGlyphId<0||accentGlyphId<0){continue;}
const accentOffset={x:seac[0]*matrix[0]+seac[1]*matrix[2]+matrix[4],y:seac[0]*matrix[1]+seac[1]*matrix[3]+matrix[5]};const charCodes=getCharCodes(mapping,glyphId);if(!charCodes){continue;}
for(let i=0,ii=charCodes.length;i<ii;i++){const charCode=charCodes[i];const charCodeToGlyphId=newMapping.charCodeToGlyphId;const baseFontCharCode=createCharCode(charCodeToGlyphId,baseGlyphId);const accentFontCharCode=createCharCode(charCodeToGlyphId,accentGlyphId);seacMap[charCode]={baseFontCharCode,accentFontCharCode,accentOffset};}}
properties.seacMap=seacMap;}
const unitsPerEm=1/(properties.fontMatrix||_util.FONT_IDENTITY_MATRIX)[0];const builder=new _opentype_file_builder.OpenTypeFileBuilder("\x4F\x54\x54\x4F");builder.addTable("CFF ",font.data);builder.addTable("OS/2",createOS2Table(properties,newCharCodeToGlyphId));builder.addTable("cmap",createCmapTable(newCharCodeToGlyphId,toUnicodeExtraMap,numGlyphs));builder.addTable("head","\x00\x01\x00\x00"+"\x00\x00\x10\x00"+"\x00\x00\x00\x00"+"\x5F\x0F\x3C\xF5"+"\x00\x00"+safeString16(unitsPerEm)+"\x00\x00\x00\x00\x9e\x0b\x7e\x27"+"\x00\x00\x00\x00\x9e\x0b\x7e\x27"+"\x00\x00"+safeString16(properties.descent)+"\x0F\xFF"+safeString16(properties.ascent)+string16(properties.italicAngle?2:0)+"\x00\x11"+"\x00\x00"+"\x00\x00"+"\x00\x00");builder.addTable("hhea","\x00\x01\x00\x00"+safeString16(properties.ascent)+safeString16(properties.descent)+"\x00\x00"+"\xFF\xFF"+"\x00\x00"+"\x00\x00"+"\x00\x00"+safeString16(properties.capHeight)+safeString16(Math.tan(properties.italicAngle)*properties.xHeight)+"\x00\x00"+"\x00\x00"+"\x00\x00"+"\x00\x00"+"\x00\x00"+"\x00\x00"+string16(numGlyphs));builder.addTable("hmtx",function fontFieldsHmtx(){const charstrings=font.charstrings;const cffWidths=font.cff?font.cff.widths:null;let hmtx="\x00\x00\x00\x00";for(let i=1,ii=numGlyphs;i<ii;i++){let width=0;if(charstrings){const charstring=charstrings[i-1];width="width"in charstring?charstring.width:0;}else if(cffWidths){width=Math.ceil(cffWidths[i]||0);}
hmtx+=string16(width)+string16(0);}
return hmtx;}());builder.addTable("maxp","\x00\x00\x50\x00"+string16(numGlyphs));builder.addTable("name",createNameTable(fontName));builder.addTable("post",createPostTable(properties));return builder.toArray();}
get spaceWidth(){const possibleSpaceReplacements=["space","minus","one","i","I"];let width;for(let i=0,ii=possibleSpaceReplacements.length;i<ii;i++){const glyphName=possibleSpaceReplacements[i];if(glyphName in this.widths){width=this.widths[glyphName];break;}
const glyphsUnicodeMap=(0,_glyphlist.getGlyphsUnicode)();const glyphUnicode=glyphsUnicodeMap[glyphName];let charcode=0;if(this.composite&&this.cMap.contains(glyphUnicode)){charcode=this.cMap.lookup(glyphUnicode);if(typeof charcode==="string"){charcode=convertCidString(glyphUnicode,charcode);}}
if(!charcode&&this.toUnicode){charcode=this.toUnicode.charCodeOf(glyphUnicode);}
if(charcode<=0){charcode=glyphUnicode;}
width=this.widths[charcode];if(width){break;}}
width=width||this.defaultWidth;return(0,_util.shadow)(this,"spaceWidth",width);}
_charToGlyph(charcode){let isSpace=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;let fontCharCode,width,operatorListId;let widthCode=charcode;if(this.cMap&&this.cMap.contains(charcode)){widthCode=this.cMap.lookup(charcode);if(typeof widthCode==="string"){widthCode=convertCidString(charcode,widthCode);}}
width=this.widths[widthCode];if(typeof width!=="number"){width=this.defaultWidth;}
const vmetric=this.vmetrics&&this.vmetrics[widthCode];let unicode=this.toUnicode.get(charcode)||charcode;if(typeof unicode==="number"){unicode=String.fromCharCode(unicode);}
let isInFont=this.toFontChar[charcode]!==undefined;fontCharCode=this.toFontChar[charcode]||charcode;if(this.missingFile){const glyphName=this.differences[charcode]||this.defaultEncoding[charcode];if((glyphName===".notdef"||glyphName==="")&&this.type==="Type1"){fontCharCode=0x20;}
fontCharCode=(0,_unicode.mapSpecialUnicodeValues)(fontCharCode);}
if(this.isType3Font){operatorListId=fontCharCode;}
let accent=null;if(this.seacMap&&this.seacMap[charcode]){isInFont=true;const seac=this.seacMap[charcode];fontCharCode=seac.baseFontCharCode;accent={fontChar:String.fromCodePoint(seac.accentFontCharCode),offset:seac.accentOffset};}
let fontChar="";if(typeof fontCharCode==="number"){if(fontCharCode<=0x10ffff){fontChar=String.fromCodePoint(fontCharCode);}else{(0,_util.warn)(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);}}
let glyph=this._glyphCache[charcode];if(!glyph||!glyph.matchesForCache(charcode,fontChar,unicode,accent,width,vmetric,operatorListId,isSpace,isInFont)){glyph=new Glyph(charcode,fontChar,unicode,accent,width,vmetric,operatorListId,isSpace,isInFont);this._glyphCache[charcode]=glyph;}
return glyph;}
charsToGlyphs(chars){let glyphs=this._charsCache[chars];if(glyphs){return glyphs;}
glyphs=[];if(this.cMap){const c=Object.create(null),ii=chars.length;let i=0;while(i<ii){this.cMap.readCharCode(chars,i,c);const{charcode,length}=c;i+=length;const glyph=this._charToGlyph(charcode,length===1&&chars.charCodeAt(i-1)===0x20);glyphs.push(glyph);}}else{for(let i=0,ii=chars.length;i<ii;++i){const charcode=chars.charCodeAt(i);const glyph=this._charToGlyph(charcode,charcode===0x20);glyphs.push(glyph);}}
return this._charsCache[chars]=glyphs;}
getCharPositions(chars){const positions=[];if(this.cMap){const c=Object.create(null);let i=0;while(i<chars.length){this.cMap.readCharCode(chars,i,c);const length=c.length;positions.push([i,i+length]);i+=length;}}else{for(let i=0,ii=chars.length;i<ii;++i){positions.push([i,i+1]);}}
return positions;}
get glyphCacheValues(){return Object.values(this._glyphCache);}
encodeString(str){const buffers=[];const currentBuf=[];const hasCurrentBufErrors=()=>buffers.length%2===1;const getCharCode=this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap?unicode=>this.toUnicode.charCodeOf(unicode):unicode=>this.toUnicode.charCodeOf(String.fromCodePoint(unicode));for(let i=0,ii=str.length;i<ii;i++){const unicode=str.codePointAt(i);if(unicode>0xd7ff&&(unicode<0xe000||unicode>0xfffd)){i++;}
if(this.toUnicode){const charCode=getCharCode(unicode);if(charCode!==-1){if(hasCurrentBufErrors()){buffers.push(currentBuf.join(""));currentBuf.length=0;}
const charCodeLength=this.cMap?this.cMap.getCharCodeLength(charCode):1;for(let j=charCodeLength-1;j>=0;j--){currentBuf.push(String.fromCharCode(charCode>>8*j&0xff));}
continue;}}
if(!hasCurrentBufErrors()){buffers.push(currentBuf.join(""));currentBuf.length=0;}
currentBuf.push(String.fromCodePoint(unicode));}
buffers.push(currentBuf.join(""));return buffers;}}
exports.Font=Font;class ErrorFont{constructor(error){this.error=error;this.loadedName="g_font_error";this.missingFile=true;}
charsToGlyphs(){return[];}
encodeString(chars){return[chars];}
exportData(){let extraProperties=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return{error:this.error};}}
exports.ErrorFont=ErrorFont;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.CFFTopDict=exports.CFFStrings=exports.CFFStandardStrings=exports.CFFPrivateDict=exports.CFFParser=exports.CFFIndex=exports.CFFHeader=exports.CFFFDSelect=exports.CFFCompiler=exports.CFFCharset=exports.CFF=void 0;var _util=__w_pdfjs_require__(2);var _charsets=__w_pdfjs_require__(161);var _encodings=__w_pdfjs_require__(162);const MAX_SUBR_NESTING=10;const CFFStandardStrings=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"];exports.CFFStandardStrings=CFFStandardStrings;const NUM_STANDARD_CFF_STRINGS=391;const CharstringValidationData=[null,{id:"hstem",min:2,stackClearing:true,stem:true},null,{id:"vstem",min:2,stackClearing:true,stem:true},{id:"vmoveto",min:1,stackClearing:true},{id:"rlineto",min:2,resetStack:true},{id:"hlineto",min:1,resetStack:true},{id:"vlineto",min:1,resetStack:true},{id:"rrcurveto",min:6,resetStack:true},null,{id:"callsubr",min:1,undefStack:true},{id:"return",min:0,undefStack:true},null,null,{id:"endchar",min:0,stackClearing:true},null,null,null,{id:"hstemhm",min:2,stackClearing:true,stem:true},{id:"hintmask",min:0,stackClearing:true},{id:"cntrmask",min:0,stackClearing:true},{id:"rmoveto",min:2,stackClearing:true},{id:"hmoveto",min:1,stackClearing:true},{id:"vstemhm",min:2,stackClearing:true,stem:true},{id:"rcurveline",min:8,resetStack:true},{id:"rlinecurve",min:8,resetStack:true},{id:"vvcurveto",min:4,resetStack:true},{id:"hhcurveto",min:4,resetStack:true},null,{id:"callgsubr",min:1,undefStack:true},{id:"vhcurveto",min:4,resetStack:true},{id:"hvcurveto",min:4,resetStack:true}];const CharstringValidationData12=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]+stack[index-1];}},{id:"sub",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]-stack[index-1];}},{id:"div",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]/stack[index-1];}},null,{id:"neg",min:1,stackDelta:0,stackFn(stack,index){stack[index-1]=-stack[index-1];}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]*stack[index-1];}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:true},{id:"flex",min:13,resetStack:true},{id:"hflex1",min:9,resetStack:true},{id:"flex1",min:11,resetStack:true}];class CFFParser{constructor(file,properties,seacAnalysisEnabled){this.bytes=file.getBytes();this.properties=properties;this.seacAnalysisEnabled=!!seacAnalysisEnabled;}
parse(){const properties=this.properties;const cff=new CFF();this.cff=cff;const header=this.parseHeader();const nameIndex=this.parseIndex(header.endPos);const topDictIndex=this.parseIndex(nameIndex.endPos);const stringIndex=this.parseIndex(topDictIndex.endPos);const globalSubrIndex=this.parseIndex(stringIndex.endPos);const topDictParsed=this.parseDict(topDictIndex.obj.get(0));const topDict=this.createDict(CFFTopDict,topDictParsed,cff.strings);cff.header=header.obj;cff.names=this.parseNameIndex(nameIndex.obj);cff.strings=this.parseStringIndex(stringIndex.obj);cff.topDict=topDict;cff.globalSubrIndex=globalSubrIndex.obj;this.parsePrivateDict(cff.topDict);cff.isCIDFont=topDict.hasName("ROS");const charStringOffset=topDict.getByName("CharStrings");const charStringIndex=this.parseIndex(charStringOffset).obj;const fontMatrix=topDict.getByName("FontMatrix");if(fontMatrix){properties.fontMatrix=fontMatrix;}
const fontBBox=topDict.getByName("FontBBox");if(fontBBox){properties.ascent=Math.max(fontBBox[3],fontBBox[1]);properties.descent=Math.min(fontBBox[1],fontBBox[3]);properties.ascentScaled=true;}
let charset,encoding;if(cff.isCIDFont){const fdArrayIndex=this.parseIndex(topDict.getByName("FDArray")).obj;for(let i=0,ii=fdArrayIndex.count;i<ii;++i){const dictRaw=fdArrayIndex.get(i);const fontDict=this.createDict(CFFTopDict,this.parseDict(dictRaw),cff.strings);this.parsePrivateDict(fontDict);cff.fdArray.push(fontDict);}
encoding=null;charset=this.parseCharsets(topDict.getByName("charset"),charStringIndex.count,cff.strings,true);cff.fdSelect=this.parseFDSelect(topDict.getByName("FDSelect"),charStringIndex.count);}else{charset=this.parseCharsets(topDict.getByName("charset"),charStringIndex.count,cff.strings,false);encoding=this.parseEncoding(topDict.getByName("Encoding"),properties,cff.strings,charset.charset);}
cff.charset=charset;cff.encoding=encoding;const charStringsAndSeacs=this.parseCharStrings({charStrings:charStringIndex,localSubrIndex:topDict.privateDict.subrsIndex,globalSubrIndex:globalSubrIndex.obj,fdSelect:cff.fdSelect,fdArray:cff.fdArray,privateDict:topDict.privateDict});cff.charStrings=charStringsAndSeacs.charStrings;cff.seacs=charStringsAndSeacs.seacs;cff.widths=charStringsAndSeacs.widths;return cff;}
parseHeader(){let bytes=this.bytes;const bytesLength=bytes.length;let offset=0;while(offset<bytesLength&&bytes[offset]!==1){++offset;}
if(offset>=bytesLength){throw new _util.FormatError("Invalid CFF header");}
if(offset!==0){(0,_util.info)("cff data is shifted");bytes=bytes.subarray(offset);this.bytes=bytes;}
const major=bytes[0];const minor=bytes[1];const hdrSize=bytes[2];const offSize=bytes[3];const header=new CFFHeader(major,minor,hdrSize,offSize);return{obj:header,endPos:hdrSize};}
parseDict(dict){let pos=0;function parseOperand(){let value=dict[pos++];if(value===30){return parseFloatOperand();}else if(value===28){value=dict[pos++];value=(value<<24|dict[pos++]<<16)>>16;return value;}else if(value===29){value=dict[pos++];value=value<<8|dict[pos++];value=value<<8|dict[pos++];value=value<<8|dict[pos++];return value;}else if(value>=32&&value<=246){return value-139;}else if(value>=247&&value<=250){return(value-247)*256+dict[pos++]+108;}else if(value>=251&&value<=254){return-((value-251)*256)-dict[pos++]-108;}
(0,_util.warn)('CFFParser_parseDict: "'+value+'" is a reserved command.');return NaN;}
function parseFloatOperand(){let str="";const eof=15;const lookup=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];const length=dict.length;while(pos<length){const b=dict[pos++];const b1=b>>4;const b2=b&15;if(b1===eof){break;}
str+=lookup[b1];if(b2===eof){break;}
str+=lookup[b2];}
return parseFloat(str);}
let operands=[];const entries=[];pos=0;const end=dict.length;while(pos<end){let b=dict[pos];if(b<=21){if(b===12){b=b<<8|dict[++pos];}
entries.push([b,operands]);operands=[];++pos;}else{operands.push(parseOperand());}}
return entries;}
parseIndex(pos){const cffIndex=new CFFIndex();const bytes=this.bytes;const count=bytes[pos++]<<8|bytes[pos++];const offsets=[];let end=pos;let i,ii;if(count!==0){const offsetSize=bytes[pos++];const startPos=pos+(count+1)*offsetSize-1;for(i=0,ii=count+1;i<ii;++i){let offset=0;for(let j=0;j<offsetSize;++j){offset<<=8;offset+=bytes[pos++];}
offsets.push(startPos+offset);}
end=offsets[count];}
for(i=0,ii=offsets.length-1;i<ii;++i){const offsetStart=offsets[i];const offsetEnd=offsets[i+1];cffIndex.add(bytes.subarray(offsetStart,offsetEnd));}
return{obj:cffIndex,endPos:end};}
parseNameIndex(index){const names=[];for(let i=0,ii=index.count;i<ii;++i){const name=index.get(i);names.push((0,_util.bytesToString)(name));}
return names;}
parseStringIndex(index){const strings=new CFFStrings();for(let i=0,ii=index.count;i<ii;++i){const data=index.get(i);strings.add((0,_util.bytesToString)(data));}
return strings;}
createDict(Type,dict,strings){const cffDict=new Type(strings);for(let i=0,ii=dict.length;i<ii;++i){const pair=dict[i];const key=pair[0];const value=pair[1];cffDict.setByKey(key,value);}
return cffDict;}
parseCharString(state,data,localSubrIndex,globalSubrIndex){if(!data||state.callDepth>MAX_SUBR_NESTING){return false;}
let stackSize=state.stackSize;const stack=state.stack;const length=data.length;for(let j=0;j<length;){const value=data[j++];let validationCommand=null;if(value===12){const q=data[j++];if(q===0){data[j-2]=139;data[j-1]=22;stackSize=0;}else{validationCommand=CharstringValidationData12[q];}}else if(value===28){stack[stackSize]=(data[j]<<24|data[j+1]<<16)>>16;j+=2;stackSize++;}else if(value===14){if(stackSize>=4){stackSize-=4;if(this.seacAnalysisEnabled){state.seac=stack.slice(stackSize,stackSize+4);return false;}}
validationCommand=CharstringValidationData[value];}else if(value>=32&&value<=246){stack[stackSize]=value-139;stackSize++;}else if(value>=247&&value<=254){stack[stackSize]=value<251?(value-247<<8)+data[j]+108:-(value-251<<8)-data[j]-108;j++;stackSize++;}else if(value===255){stack[stackSize]=(data[j]<<24|data[j+1]<<16|data[j+2]<<8|data[j+3])/65536;j+=4;stackSize++;}else if(value===19||value===20){state.hints+=stackSize>>1;j+=state.hints+7>>3;stackSize%=2;validationCommand=CharstringValidationData[value];}else if(value===10||value===29){let subrsIndex;if(value===10){subrsIndex=localSubrIndex;}else{subrsIndex=globalSubrIndex;}
if(!subrsIndex){validationCommand=CharstringValidationData[value];(0,_util.warn)("Missing subrsIndex for "+validationCommand.id);return false;}
let bias=32768;if(subrsIndex.count<1240){bias=107;}else if(subrsIndex.count<33900){bias=1131;}
const subrNumber=stack[--stackSize]+bias;if(subrNumber<0||subrNumber>=subrsIndex.count||isNaN(subrNumber)){validationCommand=CharstringValidationData[value];(0,_util.warn)("Out of bounds subrIndex for "+validationCommand.id);return false;}
state.stackSize=stackSize;state.callDepth++;const valid=this.parseCharString(state,subrsIndex.get(subrNumber),localSubrIndex,globalSubrIndex);if(!valid){return false;}
state.callDepth--;stackSize=state.stackSize;continue;}else if(value===11){state.stackSize=stackSize;return true;}else if(value===0&&j===data.length){data[j-1]=14;validationCommand=CharstringValidationData[14];}else{validationCommand=CharstringValidationData[value];}
if(validationCommand){if(validationCommand.stem){state.hints+=stackSize>>1;if(value===3||value===23){state.hasVStems=true;}else if(state.hasVStems&&(value===1||value===18)){(0,_util.warn)("CFF stem hints are in wrong order");data[j-1]=value===1?3:23;}}
if("min"in validationCommand){if(!state.undefStack&&stackSize<validationCommand.min){(0,_util.warn)("Not enough parameters for "+validationCommand.id+"; actual: "+stackSize+", expected: "+validationCommand.min);if(stackSize===0){data[j-1]=14;return true;}
return false;}}
if(state.firstStackClearing&&validationCommand.stackClearing){state.firstStackClearing=false;stackSize-=validationCommand.min;if(stackSize>=2&&validationCommand.stem){stackSize%=2;}else if(stackSize>1){(0,_util.warn)("Found too many parameters for stack-clearing command");}
if(stackSize>0){state.width=stack[stackSize-1];}}
if("stackDelta"in validationCommand){if("stackFn"in validationCommand){validationCommand.stackFn(stack,stackSize);}
stackSize+=validationCommand.stackDelta;}else if(validationCommand.stackClearing){stackSize=0;}else if(validationCommand.resetStack){stackSize=0;state.undefStack=false;}else if(validationCommand.undefStack){stackSize=0;state.undefStack=true;state.firstStackClearing=false;}}}
state.stackSize=stackSize;return true;}
parseCharStrings(_ref){let{charStrings,localSubrIndex,globalSubrIndex,fdSelect,fdArray,privateDict}=_ref;const seacs=[];const widths=[];const count=charStrings.count;for(let i=0;i<count;i++){const charstring=charStrings.get(i);const state={callDepth:0,stackSize:0,stack:[],undefStack:true,hints:0,firstStackClearing:true,seac:null,width:null,hasVStems:false};let valid=true;let localSubrToUse=null;let privateDictToUse=privateDict;if(fdSelect&&fdArray.length){const fdIndex=fdSelect.getFDIndex(i);if(fdIndex===-1){(0,_util.warn)("Glyph index is not in fd select.");valid=false;}
if(fdIndex>=fdArray.length){(0,_util.warn)("Invalid fd index for glyph index.");valid=false;}
if(valid){privateDictToUse=fdArray[fdIndex].privateDict;localSubrToUse=privateDictToUse.subrsIndex;}}else if(localSubrIndex){localSubrToUse=localSubrIndex;}
if(valid){valid=this.parseCharString(state,charstring,localSubrToUse,globalSubrIndex);}
if(state.width!==null){const nominalWidth=privateDictToUse.getByName("nominalWidthX");widths[i]=nominalWidth+state.width;}else{const defaultWidth=privateDictToUse.getByName("defaultWidthX");widths[i]=defaultWidth;}
if(state.seac!==null){seacs[i]=state.seac;}
if(!valid){charStrings.set(i,new Uint8Array([14]));}}
return{charStrings,seacs,widths};}
emptyPrivateDictionary(parentDict){const privateDict=this.createDict(CFFPrivateDict,[],parentDict.strings);parentDict.setByKey(18,[0,0]);parentDict.privateDict=privateDict;}
parsePrivateDict(parentDict){if(!parentDict.hasName("Private")){this.emptyPrivateDictionary(parentDict);return;}
const privateOffset=parentDict.getByName("Private");if(!Array.isArray(privateOffset)||privateOffset.length!==2){parentDict.removeByName("Private");return;}
const size=privateOffset[0];const offset=privateOffset[1];if(size===0||offset>=this.bytes.length){this.emptyPrivateDictionary(parentDict);return;}
const privateDictEnd=offset+size;const dictData=this.bytes.subarray(offset,privateDictEnd);const dict=this.parseDict(dictData);const privateDict=this.createDict(CFFPrivateDict,dict,parentDict.strings);parentDict.privateDict=privateDict;if(!privateDict.getByName("Subrs")){return;}
const subrsOffset=privateDict.getByName("Subrs");const relativeOffset=offset+subrsOffset;if(subrsOffset===0||relativeOffset>=this.bytes.length){this.emptyPrivateDictionary(parentDict);return;}
const subrsIndex=this.parseIndex(relativeOffset);privateDict.subrsIndex=subrsIndex.obj;}
parseCharsets(pos,length,strings,cid){if(pos===0){return new CFFCharset(true,CFFCharsetPredefinedTypes.ISO_ADOBE,_charsets.ISOAdobeCharset);}else if(pos===1){return new CFFCharset(true,CFFCharsetPredefinedTypes.EXPERT,_charsets.ExpertCharset);}else if(pos===2){return new CFFCharset(true,CFFCharsetPredefinedTypes.EXPERT_SUBSET,_charsets.ExpertSubsetCharset);}
const bytes=this.bytes;const start=pos;const format=bytes[pos++];const charset=[cid?0:".notdef"];let id,count,i;length-=1;switch(format){case 0:for(i=0;i<length;i++){id=bytes[pos++]<<8|bytes[pos++];charset.push(cid?id:strings.get(id));}
break;case 1:while(charset.length<=length){id=bytes[pos++]<<8|bytes[pos++];count=bytes[pos++];for(i=0;i<=count;i++){charset.push(cid?id++:strings.get(id++));}}
break;case 2:while(charset.length<=length){id=bytes[pos++]<<8|bytes[pos++];count=bytes[pos++]<<8|bytes[pos++];for(i=0;i<=count;i++){charset.push(cid?id++:strings.get(id++));}}
break;default:throw new _util.FormatError("Unknown charset format");}
const end=pos;const raw=bytes.subarray(start,end);return new CFFCharset(false,format,charset,raw);}
parseEncoding(pos,properties,strings,charset){const encoding=Object.create(null);const bytes=this.bytes;let predefined=false;let format,i,ii;let raw=null;function readSupplement(){const supplementsCount=bytes[pos++];for(i=0;i<supplementsCount;i++){const code=bytes[pos++];const sid=(bytes[pos++]<<8)+(bytes[pos++]&0xff);encoding[code]=charset.indexOf(strings.get(sid));}}
if(pos===0||pos===1){predefined=true;format=pos;const baseEncoding=pos?_encodings.ExpertEncoding:_encodings.StandardEncoding;for(i=0,ii=charset.length;i<ii;i++){const index=baseEncoding.indexOf(charset[i]);if(index!==-1){encoding[index]=i;}}}else{const dataStart=pos;format=bytes[pos++];switch(format&0x7f){case 0:const glyphsCount=bytes[pos++];for(i=1;i<=glyphsCount;i++){encoding[bytes[pos++]]=i;}
break;case 1:const rangesCount=bytes[pos++];let gid=1;for(i=0;i<rangesCount;i++){const start=bytes[pos++];const left=bytes[pos++];for(let j=start;j<=start+left;j++){encoding[j]=gid++;}}
break;default:throw new _util.FormatError(`Unknown encoding format: ${format} in CFF`);}
const dataEnd=pos;if(format&0x80){bytes[dataStart]&=0x7f;readSupplement();}
raw=bytes.subarray(dataStart,dataEnd);}
format&=0x7f;return new CFFEncoding(predefined,format,encoding,raw);}
parseFDSelect(pos,length){const bytes=this.bytes;const format=bytes[pos++];const fdSelect=[];let i;switch(format){case 0:for(i=0;i<length;++i){const id=bytes[pos++];fdSelect.push(id);}
break;case 3:const rangesCount=bytes[pos++]<<8|bytes[pos++];for(i=0;i<rangesCount;++i){let first=bytes[pos++]<<8|bytes[pos++];if(i===0&&first!==0){(0,_util.warn)("parseFDSelect: The first range must have a first GID of 0"+" -- trying to recover.");first=0;}
const fdIndex=bytes[pos++];const next=bytes[pos]<<8|bytes[pos+1];for(let j=first;j<next;++j){fdSelect.push(fdIndex);}}
pos+=2;break;default:throw new _util.FormatError(`parseFDSelect: Unknown format "${format}".`);}
if(fdSelect.length!==length){throw new _util.FormatError("parseFDSelect: Invalid font data.");}
return new CFFFDSelect(format,fdSelect);}}
exports.CFFParser=CFFParser;class CFF{constructor(){this.header=null;this.names=[];this.topDict=null;this.strings=new CFFStrings();this.globalSubrIndex=null;this.encoding=null;this.charset=null;this.charStrings=null;this.fdArray=[];this.fdSelect=null;this.isCIDFont=false;}
duplicateFirstGlyph(){if(this.charStrings.count>=65535){(0,_util.warn)("Not enough space in charstrings to duplicate first glyph.");return;}
const glyphZero=this.charStrings.get(0);this.charStrings.add(glyphZero);if(this.isCIDFont){this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);}}
hasGlyphId(id){if(id<0||id>=this.charStrings.count){return false;}
const glyph=this.charStrings.get(id);return glyph.length>0;}}
exports.CFF=CFF;class CFFHeader{constructor(major,minor,hdrSize,offSize){this.major=major;this.minor=minor;this.hdrSize=hdrSize;this.offSize=offSize;}}
exports.CFFHeader=CFFHeader;class CFFStrings{constructor(){this.strings=[];}
get(index){if(index>=0&&index<=NUM_STANDARD_CFF_STRINGS-1){return CFFStandardStrings[index];}
if(index-NUM_STANDARD_CFF_STRINGS<=this.strings.length){return this.strings[index-NUM_STANDARD_CFF_STRINGS];}
return CFFStandardStrings[0];}
getSID(str){let index=CFFStandardStrings.indexOf(str);if(index!==-1){return index;}
index=this.strings.indexOf(str);if(index!==-1){return index+NUM_STANDARD_CFF_STRINGS;}
return-1;}
add(value){this.strings.push(value);}
get count(){return this.strings.length;}}
exports.CFFStrings=CFFStrings;class CFFIndex{constructor(){this.objects=[];this.length=0;}
add(data){this.length+=data.length;this.objects.push(data);}
set(index,data){this.length+=data.length-this.objects[index].length;this.objects[index]=data;}
get(index){return this.objects[index];}
get count(){return this.objects.length;}}
exports.CFFIndex=CFFIndex;class CFFDict{constructor(tables,strings){this.keyToNameMap=tables.keyToNameMap;this.nameToKeyMap=tables.nameToKeyMap;this.defaults=tables.defaults;this.types=tables.types;this.opcodes=tables.opcodes;this.order=tables.order;this.strings=strings;this.values=Object.create(null);}
setByKey(key,value){if(!(key in this.keyToNameMap)){return false;}
const valueLength=value.length;if(valueLength===0){return true;}
for(let i=0;i<valueLength;i++){if(isNaN(value[i])){(0,_util.warn)('Invalid CFFDict value: "'+value+'" for key "'+key+'".');return true;}}
const type=this.types[key];if(type==="num"||type==="sid"||type==="offset"){value=value[0];}
this.values[key]=value;return true;}
setByName(name,value){if(!(name in this.nameToKeyMap)){throw new _util.FormatError(`Invalid dictionary name "${name}"`);}
this.values[this.nameToKeyMap[name]]=value;}
hasName(name){return this.nameToKeyMap[name]in this.values;}
getByName(name){if(!(name in this.nameToKeyMap)){throw new _util.FormatError(`Invalid dictionary name ${name}"`);}
const key=this.nameToKeyMap[name];if(!(key in this.values)){return this.defaults[key];}
return this.values[key];}
removeByName(name){delete this.values[this.nameToKeyMap[name]];}
static createTables(layout){const tables={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]};for(let i=0,ii=layout.length;i<ii;++i){const entry=layout[i];const key=Array.isArray(entry[0])?(entry[0][0]<<8)+entry[0][1]:entry[0];tables.keyToNameMap[key]=entry[1];tables.nameToKeyMap[entry[1]]=key;tables.types[key]=entry[2];tables.defaults[key]=entry[3];tables.opcodes[key]=Array.isArray(entry[0])?entry[0]:[entry[0]];tables.order.push(key);}
return tables;}}
const CFFTopDictLayout=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12,7],"FontMatrix",["num","num","num","num","num","num"],[0.001,0,0,0.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision","num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]];class CFFTopDict extends CFFDict{static get tables(){return(0,_util.shadow)(this,"tables",this.createTables(CFFTopDictLayout));}
constructor(strings){super(CFFTopDict.tables,strings);this.privateDict=null;}}
exports.CFFTopDict=CFFTopDict;const CFFPrivateDictLayout=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",0.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",0.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num",0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]];class CFFPrivateDict extends CFFDict{static get tables(){return(0,_util.shadow)(this,"tables",this.createTables(CFFPrivateDictLayout));}
constructor(strings){super(CFFPrivateDict.tables,strings);this.subrsIndex=null;}}
exports.CFFPrivateDict=CFFPrivateDict;const CFFCharsetPredefinedTypes={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2};class CFFCharset{constructor(predefined,format,charset,raw){this.predefined=predefined;this.format=format;this.charset=charset;this.raw=raw;}}
exports.CFFCharset=CFFCharset;class CFFEncoding{constructor(predefined,format,encoding,raw){this.predefined=predefined;this.format=format;this.encoding=encoding;this.raw=raw;}}
class CFFFDSelect{constructor(format,fdSelect){this.format=format;this.fdSelect=fdSelect;}
getFDIndex(glyphIndex){if(glyphIndex<0||glyphIndex>=this.fdSelect.length){return-1;}
return this.fdSelect[glyphIndex];}}
exports.CFFFDSelect=CFFFDSelect;class CFFOffsetTracker{constructor(){this.offsets=Object.create(null);}
isTracking(key){return key in this.offsets;}
track(key,location){if(key in this.offsets){throw new _util.FormatError(`Already tracking location of ${key}`);}
this.offsets[key]=location;}
offset(value){for(const key in this.offsets){this.offsets[key]+=value;}}
setEntryLocation(key,values,output){if(!(key in this.offsets)){throw new _util.FormatError(`Not tracking location of ${key}`);}
const data=output.data;const dataOffset=this.offsets[key];const size=5;for(let i=0,ii=values.length;i<ii;++i){const offset0=i*size+dataOffset;const offset1=offset0+1;const offset2=offset0+2;const offset3=offset0+3;const offset4=offset0+4;if(data[offset0]!==0x1d||data[offset1]!==0||data[offset2]!==0||data[offset3]!==0||data[offset4]!==0){throw new _util.FormatError("writing to an offset that is not empty");}
const value=values[i];data[offset0]=0x1d;data[offset1]=value>>24&0xff;data[offset2]=value>>16&0xff;data[offset3]=value>>8&0xff;data[offset4]=value&0xff;}}}
class CFFCompiler{constructor(cff){this.cff=cff;}
compile(){const cff=this.cff;const output={data:[],length:0,add(data){this.data=this.data.concat(data);this.length=this.data.length;}};const header=this.compileHeader(cff.header);output.add(header);const nameIndex=this.compileNameIndex(cff.names);output.add(nameIndex);if(cff.isCIDFont){if(cff.topDict.hasName("FontMatrix")){const base=cff.topDict.getByName("FontMatrix");cff.topDict.removeByName("FontMatrix");for(let i=0,ii=cff.fdArray.length;i<ii;i++){const subDict=cff.fdArray[i];let matrix=base.slice(0);if(subDict.hasName("FontMatrix")){matrix=_util.Util.transform(matrix,subDict.getByName("FontMatrix"));}
subDict.setByName("FontMatrix",matrix);}}}
const xuid=cff.topDict.getByName("XUID");if(xuid&&xuid.length>16){cff.topDict.removeByName("XUID");}
cff.topDict.setByName("charset",0);let compiled=this.compileTopDicts([cff.topDict],output.length,cff.isCIDFont);output.add(compiled.output);const topDictTracker=compiled.trackers[0];const stringIndex=this.compileStringIndex(cff.strings.strings);output.add(stringIndex);const globalSubrIndex=this.compileIndex(cff.globalSubrIndex);output.add(globalSubrIndex);if(cff.encoding&&cff.topDict.hasName("Encoding")){if(cff.encoding.predefined){topDictTracker.setEntryLocation("Encoding",[cff.encoding.format],output);}else{const encoding=this.compileEncoding(cff.encoding);topDictTracker.setEntryLocation("Encoding",[output.length],output);output.add(encoding);}}
const charset=this.compileCharset(cff.charset,cff.charStrings.count,cff.strings,cff.isCIDFont);topDictTracker.setEntryLocation("charset",[output.length],output);output.add(charset);const charStrings=this.compileCharStrings(cff.charStrings);topDictTracker.setEntryLocation("CharStrings",[output.length],output);output.add(charStrings);if(cff.isCIDFont){topDictTracker.setEntryLocation("FDSelect",[output.length],output);const fdSelect=this.compileFDSelect(cff.fdSelect);output.add(fdSelect);compiled=this.compileTopDicts(cff.fdArray,output.length,true);topDictTracker.setEntryLocation("FDArray",[output.length],output);output.add(compiled.output);const fontDictTrackers=compiled.trackers;this.compilePrivateDicts(cff.fdArray,fontDictTrackers,output);}
this.compilePrivateDicts([cff.topDict],[topDictTracker],output);output.add([0]);return output.data;}
encodeNumber(value){if(Number.isInteger(value)){return this.encodeInteger(value);}
return this.encodeFloat(value);}
static get EncodeFloatRegExp(){return(0,_util.shadow)(this,"EncodeFloatRegExp",/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/);}
encodeFloat(num){let value=num.toString();const m=CFFCompiler.EncodeFloatRegExp.exec(value);if(m){const epsilon=parseFloat("1e"+((m[2]?+m[2]:0)+m[1].length));value=(Math.round(num*epsilon)/epsilon).toString();}
let nibbles="";let i,ii;for(i=0,ii=value.length;i<ii;++i){const a=value[i];if(a==="e"){nibbles+=value[++i]==="-"?"c":"b";}else if(a==="."){nibbles+="a";}else if(a==="-"){nibbles+="e";}else{nibbles+=a;}}
nibbles+=nibbles.length&1?"f":"ff";const out=[30];for(i=0,ii=nibbles.length;i<ii;i+=2){out.push(parseInt(nibbles.substring(i,i+2),16));}
return out;}
encodeInteger(value){let code;if(value>=-107&&value<=107){code=[value+139];}else if(value>=108&&value<=1131){value-=108;code=[(value>>8)+247,value&0xff];}else if(value>=-1131&&value<=-108){value=-value-108;code=[(value>>8)+251,value&0xff];}else if(value>=-32768&&value<=32767){code=[0x1c,value>>8&0xff,value&0xff];}else{code=[0x1d,value>>24&0xff,value>>16&0xff,value>>8&0xff,value&0xff];}
return code;}
compileHeader(header){return[header.major,header.minor,4,header.offSize];}
compileNameIndex(names){const nameIndex=new CFFIndex();for(let i=0,ii=names.length;i<ii;++i){const name=names[i];const length=Math.min(name.length,127);let sanitizedName=new Array(length);for(let j=0;j<length;j++){let char=name[j];if(char<"!"||char>"~"||char==="["||char==="]"||char==="("||char===")"||char==="{"||char==="}"||char==="<"||char===">"||char==="/"||char==="%"){char="_";}
sanitizedName[j]=char;}
sanitizedName=sanitizedName.join("");if(sanitizedName===""){sanitizedName="Bad_Font_Name";}
nameIndex.add((0,_util.stringToBytes)(sanitizedName));}
return this.compileIndex(nameIndex);}
compileTopDicts(dicts,length,removeCidKeys){const fontDictTrackers=[];let fdArrayIndex=new CFFIndex();for(let i=0,ii=dicts.length;i<ii;++i){const fontDict=dicts[i];if(removeCidKeys){fontDict.removeByName("CIDFontVersion");fontDict.removeByName("CIDFontRevision");fontDict.removeByName("CIDFontType");fontDict.removeByName("CIDCount");fontDict.removeByName("UIDBase");}
const fontDictTracker=new CFFOffsetTracker();const fontDictData=this.compileDict(fontDict,fontDictTracker);fontDictTrackers.push(fontDictTracker);fdArrayIndex.add(fontDictData);fontDictTracker.offset(length);}
fdArrayIndex=this.compileIndex(fdArrayIndex,fontDictTrackers);return{trackers:fontDictTrackers,output:fdArrayIndex};}
compilePrivateDicts(dicts,trackers,output){for(let i=0,ii=dicts.length;i<ii;++i){const fontDict=dicts[i];const privateDict=fontDict.privateDict;if(!privateDict||!fontDict.hasName("Private")){throw new _util.FormatError("There must be a private dictionary.");}
const privateDictTracker=new CFFOffsetTracker();const privateDictData=this.compileDict(privateDict,privateDictTracker);let outputLength=output.length;privateDictTracker.offset(outputLength);if(!privateDictData.length){outputLength=0;}
trackers[i].setEntryLocation("Private",[privateDictData.length,outputLength],output);output.add(privateDictData);if(privateDict.subrsIndex&&privateDict.hasName("Subrs")){const subrs=this.compileIndex(privateDict.subrsIndex);privateDictTracker.setEntryLocation("Subrs",[privateDictData.length],output);output.add(subrs);}}}
compileDict(dict,offsetTracker){const out=[];for(const key of dict.order){if(!(key in dict.values)){continue;}
let values=dict.values[key];let types=dict.types[key];if(!Array.isArray(types)){types=[types];}
if(!Array.isArray(values)){values=[values];}
if(values.length===0){continue;}
for(let j=0,jj=types.length;j<jj;++j){const type=types[j];const value=values[j];switch(type){case"num":case"sid":out.push(...this.encodeNumber(value));break;case"offset":const name=dict.keyToNameMap[key];if(!offsetTracker.isTracking(name)){offsetTracker.track(name,out.length);}
out.push(0x1d,0,0,0,0);break;case"array":case"delta":out.push(...this.encodeNumber(value));for(let k=1,kk=values.length;k<kk;++k){out.push(...this.encodeNumber(values[k]));}
break;default:throw new _util.FormatError(`Unknown data type of ${type}`);}}
out.push(...dict.opcodes[key]);}
return out;}
compileStringIndex(strings){const stringIndex=new CFFIndex();for(let i=0,ii=strings.length;i<ii;++i){stringIndex.add((0,_util.stringToBytes)(strings[i]));}
return this.compileIndex(stringIndex);}
compileGlobalSubrIndex(){const globalSubrIndex=this.cff.globalSubrIndex;this.out.writeByteArray(this.compileIndex(globalSubrIndex));}
compileCharStrings(charStrings){const charStringsIndex=new CFFIndex();for(let i=0;i<charStrings.count;i++){const glyph=charStrings.get(i);if(glyph.length===0){charStringsIndex.add(new Uint8Array([0x8b,0x0e]));continue;}
charStringsIndex.add(glyph);}
return this.compileIndex(charStringsIndex);}
compileCharset(charset,numGlyphs,strings,isCIDFont){let out;const numGlyphsLessNotDef=numGlyphs-1;if(isCIDFont){out=new Uint8Array([2,0,0,numGlyphsLessNotDef>>8&0xff,numGlyphsLessNotDef&0xff]);}else{const length=1+numGlyphsLessNotDef*2;out=new Uint8Array(length);out[0]=0;let charsetIndex=0;const numCharsets=charset.charset.length;let warned=false;for(let i=1;i<out.length;i+=2){let sid=0;if(charsetIndex<numCharsets){const name=charset.charset[charsetIndex++];sid=strings.getSID(name);if(sid===-1){sid=0;if(!warned){warned=true;(0,_util.warn)(`Couldn't find ${name} in CFF strings`);}}}
out[i]=sid>>8&0xff;out[i+1]=sid&0xff;}}
return this.compileTypedArray(out);}
compileEncoding(encoding){return this.compileTypedArray(encoding.raw);}
compileFDSelect(fdSelect){const format=fdSelect.format;let out,i;switch(format){case 0:out=new Uint8Array(1+fdSelect.fdSelect.length);out[0]=format;for(i=0;i<fdSelect.fdSelect.length;i++){out[i+1]=fdSelect.fdSelect[i];}
break;case 3:const start=0;let lastFD=fdSelect.fdSelect[0];const ranges=[format,0,0,start>>8&0xff,start&0xff,lastFD];for(i=1;i<fdSelect.fdSelect.length;i++){const currentFD=fdSelect.fdSelect[i];if(currentFD!==lastFD){ranges.push(i>>8&0xff,i&0xff,currentFD);lastFD=currentFD;}}
const numRanges=(ranges.length-3)/3;ranges[1]=numRanges>>8&0xff;ranges[2]=numRanges&0xff;ranges.push(i>>8&0xff,i&0xff);out=new Uint8Array(ranges);break;}
return this.compileTypedArray(out);}
compileTypedArray(data){const out=[];for(let i=0,ii=data.length;i<ii;++i){out[i]=data[i];}
return out;}
compileIndex(index){let trackers=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];const objects=index.objects;const count=objects.length;if(count===0){return[0,0];}
const data=[count>>8&0xff,count&0xff];let lastOffset=1,i;for(i=0;i<count;++i){lastOffset+=objects[i].length;}
let offsetSize;if(lastOffset<0x100){offsetSize=1;}else if(lastOffset<0x10000){offsetSize=2;}else if(lastOffset<0x1000000){offsetSize=3;}else{offsetSize=4;}
data.push(offsetSize);let relativeOffset=1;for(i=0;i<count+1;i++){if(offsetSize===1){data.push(relativeOffset&0xff);}else if(offsetSize===2){data.push(relativeOffset>>8&0xff,relativeOffset&0xff);}else if(offsetSize===3){data.push(relativeOffset>>16&0xff,relativeOffset>>8&0xff,relativeOffset&0xff);}else{data.push(relativeOffset>>>24&0xff,relativeOffset>>16&0xff,relativeOffset>>8&0xff,relativeOffset&0xff);}
if(objects[i]){relativeOffset+=objects[i].length;}}
for(i=0;i<count;i++){if(trackers[i]){trackers[i].offset(data.length);}
for(let j=0,jj=objects[i].length;j<jj;j++){data.push(objects[i][j]);}}
return data;}}
exports.CFFCompiler=CFFCompiler;}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.ISOAdobeCharset=exports.ExpertSubsetCharset=exports.ExpertCharset=void 0;const ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"];exports.ISOAdobeCharset=ISOAdobeCharset;const ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];exports.ExpertCharset=ExpertCharset;const ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"];exports.ExpertSubsetCharset=ExpertSubsetCharset;}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.ZapfDingbatsEncoding=exports.WinAnsiEncoding=exports.SymbolSetEncoding=exports.StandardEncoding=exports.MacRomanEncoding=exports.ExpertEncoding=void 0;exports.getEncoding=getEncoding;const ExpertEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];exports.ExpertEncoding=ExpertEncoding;const MacExpertEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""];const MacRomanEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"];exports.MacRomanEncoding=MacRomanEncoding;const StandardEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""];exports.StandardEncoding=StandardEncoding;const WinAnsiEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"];exports.WinAnsiEncoding=WinAnsiEncoding;const SymbolSetEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""];exports.SymbolSetEncoding=SymbolSetEncoding;const ZapfDingbatsEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];exports.ZapfDingbatsEncoding=ZapfDingbatsEncoding;function getEncoding(encodingName){switch(encodingName){case"WinAnsiEncoding":return WinAnsiEncoding;case"StandardEncoding":return StandardEncoding;case"MacRomanEncoding":return MacRomanEncoding;case"SymbolSetEncoding":return SymbolSetEncoding;case"ZapfDingbatsEncoding":return ZapfDingbatsEncoding;case"ExpertEncoding":return ExpertEncoding;case"MacExpertEncoding":return MacExpertEncoding;default:return null;}}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.SEAC_ANALYSIS_ENABLED=exports.MacStandardGlyphOrdering=exports.FontFlags=void 0;exports.getFontType=getFontType;exports.normalizeFontName=normalizeFontName;exports.recoverGlyphName=recoverGlyphName;exports.type1FontGlyphMapping=type1FontGlyphMapping;var _util=__w_pdfjs_require__(2);var _encodings=__w_pdfjs_require__(162);var _glyphlist=__w_pdfjs_require__(164);var _unicode=__w_pdfjs_require__(165);const SEAC_ANALYSIS_ENABLED=true;exports.SEAC_ANALYSIS_ENABLED=SEAC_ANALYSIS_ENABLED;const FontFlags={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144};exports.FontFlags=FontFlags;const MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];exports.MacStandardGlyphOrdering=MacStandardGlyphOrdering;function getFontType(type,subtype){let isStandardFont=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;switch(type){case"Type1":if(isStandardFont){return _util.FontType.TYPE1STANDARD;}
return subtype==="Type1C"?_util.FontType.TYPE1C:_util.FontType.TYPE1;case"CIDFontType0":return subtype==="CIDFontType0C"?_util.FontType.CIDFONTTYPE0C:_util.FontType.CIDFONTTYPE0;case"OpenType":return _util.FontType.OPENTYPE;case"TrueType":return _util.FontType.TRUETYPE;case"CIDFontType2":return _util.FontType.CIDFONTTYPE2;case"MMType1":return _util.FontType.MMTYPE1;case"Type0":return _util.FontType.TYPE0;default:return _util.FontType.UNKNOWN;}}
function recoverGlyphName(name,glyphsUnicodeMap){if(glyphsUnicodeMap[name]!==undefined){return name;}
const unicode=(0,_unicode.getUnicodeForGlyph)(name,glyphsUnicodeMap);if(unicode!==-1){for(const key in glyphsUnicodeMap){if(glyphsUnicodeMap[key]===unicode){return key;}}}
(0,_util.info)("Unable to recover a standard glyph name for: "+name);return name;}
function type1FontGlyphMapping(properties,builtInEncoding,glyphNames){const charCodeToGlyphId=Object.create(null);let glyphId,charCode,baseEncoding;const isSymbolicFont=!!(properties.flags&FontFlags.Symbolic);if(properties.isInternalFont){baseEncoding=builtInEncoding;for(charCode=0;charCode<baseEncoding.length;charCode++){glyphId=glyphNames.indexOf(baseEncoding[charCode]);if(glyphId>=0){charCodeToGlyphId[charCode]=glyphId;}else{charCodeToGlyphId[charCode]=0;}}}else if(properties.baseEncodingName){baseEncoding=(0,_encodings.getEncoding)(properties.baseEncodingName);for(charCode=0;charCode<baseEncoding.length;charCode++){glyphId=glyphNames.indexOf(baseEncoding[charCode]);if(glyphId>=0){charCodeToGlyphId[charCode]=glyphId;}else{charCodeToGlyphId[charCode]=0;}}}else if(isSymbolicFont){for(charCode in builtInEncoding){charCodeToGlyphId[charCode]=builtInEncoding[charCode];}}else{baseEncoding=_encodings.StandardEncoding;for(charCode=0;charCode<baseEncoding.length;charCode++){glyphId=glyphNames.indexOf(baseEncoding[charCode]);if(glyphId>=0){charCodeToGlyphId[charCode]=glyphId;}else{charCodeToGlyphId[charCode]=0;}}}
const differences=properties.differences;let glyphsUnicodeMap;if(differences){for(charCode in differences){const glyphName=differences[charCode];glyphId=glyphNames.indexOf(glyphName);if(glyphId===-1){if(!glyphsUnicodeMap){glyphsUnicodeMap=(0,_glyphlist.getGlyphsUnicode)();}
const standardGlyphName=recoverGlyphName(glyphName,glyphsUnicodeMap);if(standardGlyphName!==glyphName){glyphId=glyphNames.indexOf(standardGlyphName);}}
if(glyphId>=0){charCodeToGlyphId[charCode]=glyphId;}else{charCodeToGlyphId[charCode]=0;}}}
return charCodeToGlyphId;}
function normalizeFontName(name){return name.replace(/[,_]/g,"-").replace(/\s/g,"");}}),((__unused_webpack_module,__webpack_exports__,__w_pdfjs_require__)=>{"use strict";__w_pdfjs_require__.r(__webpack_exports__);__w_pdfjs_require__.d(__webpack_exports__,{"getDingbatsGlyphsUnicode":()=>(getDingbatsGlyphsUnicode),"getGlyphsUnicode":()=>(getGlyphsUnicode)});var _core_utils_js__WEBPACK_IMPORTED_MODULE_0__=__w_pdfjs_require__(131);const getGlyphsUnicode=(0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function(){return["A",0x0041,"AE",0x00c6,"AEacute",0x01fc,"AEmacron",0x01e2,"AEsmall",0xf7e6,"Aacute",0x00c1,"Aacutesmall",0xf7e1,"Abreve",0x0102,"Abreveacute",0x1eae,"Abrevecyrillic",0x04d0,"Abrevedotbelow",0x1eb6,"Abrevegrave",0x1eb0,"Abrevehookabove",0x1eb2,"Abrevetilde",0x1eb4,"Acaron",0x01cd,"Acircle",0x24b6,"Acircumflex",0x00c2,"Acircumflexacute",0x1ea4,"Acircumflexdotbelow",0x1eac,"Acircumflexgrave",0x1ea6,"Acircumflexhookabove",0x1ea8,"Acircumflexsmall",0xf7e2,"Acircumflextilde",0x1eaa,"Acute",0xf6c9,"Acutesmall",0xf7b4,"Acyrillic",0x0410,"Adblgrave",0x0200,"Adieresis",0x00c4,"Adieresiscyrillic",0x04d2,"Adieresismacron",0x01de,"Adieresissmall",0xf7e4,"Adotbelow",0x1ea0,"Adotmacron",0x01e0,"Agrave",0x00c0,"Agravesmall",0xf7e0,"Ahookabove",0x1ea2,"Aiecyrillic",0x04d4,"Ainvertedbreve",0x0202,"Alpha",0x0391,"Alphatonos",0x0386,"Amacron",0x0100,"Amonospace",0xff21,"Aogonek",0x0104,"Aring",0x00c5,"Aringacute",0x01fa,"Aringbelow",0x1e00,"Aringsmall",0xf7e5,"Asmall",0xf761,"Atilde",0x00c3,"Atildesmall",0xf7e3,"Aybarmenian",0x0531,"B",0x0042,"Bcircle",0x24b7,"Bdotaccent",0x1e02,"Bdotbelow",0x1e04,"Becyrillic",0x0411,"Benarmenian",0x0532,"Beta",0x0392,"Bhook",0x0181,"Blinebelow",0x1e06,"Bmonospace",0xff22,"Brevesmall",0xf6f4,"Bsmall",0xf762,"Btopbar",0x0182,"C",0x0043,"Caarmenian",0x053e,"Cacute",0x0106,"Caron",0xf6ca,"Caronsmall",0xf6f5,"Ccaron",0x010c,"Ccedilla",0x00c7,"Ccedillaacute",0x1e08,"Ccedillasmall",0xf7e7,"Ccircle",0x24b8,"Ccircumflex",0x0108,"Cdot",0x010a,"Cdotaccent",0x010a,"Cedillasmall",0xf7b8,"Chaarmenian",0x0549,"Cheabkhasiancyrillic",0x04bc,"Checyrillic",0x0427,"Chedescenderabkhasiancyrillic",0x04be,"Chedescendercyrillic",0x04b6,"Chedieresiscyrillic",0x04f4,"Cheharmenian",0x0543,"Chekhakassiancyrillic",0x04cb,"Cheverticalstrokecyrillic",0x04b8,"Chi",0x03a7,"Chook",0x0187,"Circumflexsmall",0xf6f6,"Cmonospace",0xff23,"Coarmenian",0x0551,"Csmall",0xf763,"D",0x0044,"DZ",0x01f1,"DZcaron",0x01c4,"Daarmenian",0x0534,"Dafrican",0x0189,"Dcaron",0x010e,"Dcedilla",0x1e10,"Dcircle",0x24b9,"Dcircumflexbelow",0x1e12,"Dcroat",0x0110,"Ddotaccent",0x1e0a,"Ddotbelow",0x1e0c,"Decyrillic",0x0414,"Deicoptic",0x03ee,"Delta",0x2206,"Deltagreek",0x0394,"Dhook",0x018a,"Dieresis",0xf6cb,"DieresisAcute",0xf6cc,"DieresisGrave",0xf6cd,"Dieresissmall",0xf7a8,"Digammagreek",0x03dc,"Djecyrillic",0x0402,"Dlinebelow",0x1e0e,"Dmonospace",0xff24,"Dotaccentsmall",0xf6f7,"Dslash",0x0110,"Dsmall",0xf764,"Dtopbar",0x018b,"Dz",0x01f2,"Dzcaron",0x01c5,"Dzeabkhasiancyrillic",0x04e0,"Dzecyrillic",0x0405,"Dzhecyrillic",0x040f,"E",0x0045,"Eacute",0x00c9,"Eacutesmall",0xf7e9,"Ebreve",0x0114,"Ecaron",0x011a,"Ecedillabreve",0x1e1c,"Echarmenian",0x0535,"Ecircle",0x24ba,"Ecircumflex",0x00ca,"Ecircumflexacute",0x1ebe,"Ecircumflexbelow",0x1e18,"Ecircumflexdotbelow",0x1ec6,"Ecircumflexgrave",0x1ec0,"Ecircumflexhookabove",0x1ec2,"Ecircumflexsmall",0xf7ea,"Ecircumflextilde",0x1ec4,"Ecyrillic",0x0404,"Edblgrave",0x0204,"Edieresis",0x00cb,"Edieresissmall",0xf7eb,"Edot",0x0116,"Edotaccent",0x0116,"Edotbelow",0x1eb8,"Efcyrillic",0x0424,"Egrave",0x00c8,"Egravesmall",0xf7e8,"Eharmenian",0x0537,"Ehookabove",0x1eba,"Eightroman",0x2167,"Einvertedbreve",0x0206,"Eiotifiedcyrillic",0x0464,"Elcyrillic",0x041b,"Elevenroman",0x216a,"Emacron",0x0112,"Emacronacute",0x1e16,"Emacrongrave",0x1e14,"Emcyrillic",0x041c,"Emonospace",0xff25,"Encyrillic",0x041d,"Endescendercyrillic",0x04a2,"Eng",0x014a,"Enghecyrillic",0x04a4,"Enhookcyrillic",0x04c7,"Eogonek",0x0118,"Eopen",0x0190,"Epsilon",0x0395,"Epsilontonos",0x0388,"Ercyrillic",0x0420,"Ereversed",0x018e,"Ereversedcyrillic",0x042d,"Escyrillic",0x0421,"Esdescendercyrillic",0x04aa,"Esh",0x01a9,"Esmall",0xf765,"Eta",0x0397,"Etarmenian",0x0538,"Etatonos",0x0389,"Eth",0x00d0,"Ethsmall",0xf7f0,"Etilde",0x1ebc,"Etildebelow",0x1e1a,"Euro",0x20ac,"Ezh",0x01b7,"Ezhcaron",0x01ee,"Ezhreversed",0x01b8,"F",0x0046,"Fcircle",0x24bb,"Fdotaccent",0x1e1e,"Feharmenian",0x0556,"Feicoptic",0x03e4,"Fhook",0x0191,"Fitacyrillic",0x0472,"Fiveroman",0x2164,"Fmonospace",0xff26,"Fourroman",0x2163,"Fsmall",0xf766,"G",0x0047,"GBsquare",0x3387,"Gacute",0x01f4,"Gamma",0x0393,"Gammaafrican",0x0194,"Gangiacoptic",0x03ea,"Gbreve",0x011e,"Gcaron",0x01e6,"Gcedilla",0x0122,"Gcircle",0x24bc,"Gcircumflex",0x011c,"Gcommaaccent",0x0122,"Gdot",0x0120,"Gdotaccent",0x0120,"Gecyrillic",0x0413,"Ghadarmenian",0x0542,"Ghemiddlehookcyrillic",0x0494,"Ghestrokecyrillic",0x0492,"Gheupturncyrillic",0x0490,"Ghook",0x0193,"Gimarmenian",0x0533,"Gjecyrillic",0x0403,"Gmacron",0x1e20,"Gmonospace",0xff27,"Grave",0xf6ce,"Gravesmall",0xf760,"Gsmall",0xf767,"Gsmallhook",0x029b,"Gstroke",0x01e4,"H",0x0048,"H18533",0x25cf,"H18543",0x25aa,"H18551",0x25ab,"H22073",0x25a1,"HPsquare",0x33cb,"Haabkhasiancyrillic",0x04a8,"Hadescendercyrillic",0x04b2,"Hardsigncyrillic",0x042a,"Hbar",0x0126,"Hbrevebelow",0x1e2a,"Hcedilla",0x1e28,"Hcircle",0x24bd,"Hcircumflex",0x0124,"Hdieresis",0x1e26,"Hdotaccent",0x1e22,"Hdotbelow",0x1e24,"Hmonospace",0xff28,"Hoarmenian",0x0540,"Horicoptic",0x03e8,"Hsmall",0xf768,"Hungarumlaut",0xf6cf,"Hungarumlautsmall",0xf6f8,"Hzsquare",0x3390,"I",0x0049,"IAcyrillic",0x042f,"IJ",0x0132,"IUcyrillic",0x042e,"Iacute",0x00cd,"Iacutesmall",0xf7ed,"Ibreve",0x012c,"Icaron",0x01cf,"Icircle",0x24be,"Icircumflex",0x00ce,"Icircumflexsmall",0xf7ee,"Icyrillic",0x0406,"Idblgrave",0x0208,"Idieresis",0x00cf,"Idieresisacute",0x1e2e,"Idieresiscyrillic",0x04e4,"Idieresissmall",0xf7ef,"Idot",0x0130,"Idotaccent",0x0130,"Idotbelow",0x1eca,"Iebrevecyrillic",0x04d6,"Iecyrillic",0x0415,"Ifraktur",0x2111,"Igrave",0x00cc,"Igravesmall",0xf7ec,"Ihookabove",0x1ec8,"Iicyrillic",0x0418,"Iinvertedbreve",0x020a,"Iishortcyrillic",0x0419,"Imacron",0x012a,"Imacroncyrillic",0x04e2,"Imonospace",0xff29,"Iniarmenian",0x053b,"Iocyrillic",0x0401,"Iogonek",0x012e,"Iota",0x0399,"Iotaafrican",0x0196,"Iotadieresis",0x03aa,"Iotatonos",0x038a,"Ismall",0xf769,"Istroke",0x0197,"Itilde",0x0128,"Itildebelow",0x1e2c,"Izhitsacyrillic",0x0474,"Izhitsadblgravecyrillic",0x0476,"J",0x004a,"Jaarmenian",0x0541,"Jcircle",0x24bf,"Jcircumflex",0x0134,"Jecyrillic",0x0408,"Jheharmenian",0x054b,"Jmonospace",0xff2a,"Jsmall",0xf76a,"K",0x004b,"KBsquare",0x3385,"KKsquare",0x33cd,"Kabashkircyrillic",0x04a0,"Kacute",0x1e30,"Kacyrillic",0x041a,"Kadescendercyrillic",0x049a,"Kahookcyrillic",0x04c3,"Kappa",0x039a,"Kastrokecyrillic",0x049e,"Kaverticalstrokecyrillic",0x049c,"Kcaron",0x01e8,"Kcedilla",0x0136,"Kcircle",0x24c0,"Kcommaaccent",0x0136,"Kdotbelow",0x1e32,"Keharmenian",0x0554,"Kenarmenian",0x053f,"Khacyrillic",0x0425,"Kheicoptic",0x03e6,"Khook",0x0198,"Kjecyrillic",0x040c,"Klinebelow",0x1e34,"Kmonospace",0xff2b,"Koppacyrillic",0x0480,"Koppagreek",0x03de,"Ksicyrillic",0x046e,"Ksmall",0xf76b,"L",0x004c,"LJ",0x01c7,"LL",0xf6bf,"Lacute",0x0139,"Lambda",0x039b,"Lcaron",0x013d,"Lcedilla",0x013b,"Lcircle",0x24c1,"Lcircumflexbelow",0x1e3c,"Lcommaaccent",0x013b,"Ldot",0x013f,"Ldotaccent",0x013f,"Ldotbelow",0x1e36,"Ldotbelowmacron",0x1e38,"Liwnarmenian",0x053c,"Lj",0x01c8,"Ljecyrillic",0x0409,"Llinebelow",0x1e3a,"Lmonospace",0xff2c,"Lslash",0x0141,"Lslashsmall",0xf6f9,"Lsmall",0xf76c,"M",0x004d,"MBsquare",0x3386,"Macron",0xf6d0,"Macronsmall",0xf7af,"Macute",0x1e3e,"Mcircle",0x24c2,"Mdotaccent",0x1e40,"Mdotbelow",0x1e42,"Menarmenian",0x0544,"Mmonospace",0xff2d,"Msmall",0xf76d,"Mturned",0x019c,"Mu",0x039c,"N",0x004e,"NJ",0x01ca,"Nacute",0x0143,"Ncaron",0x0147,"Ncedilla",0x0145,"Ncircle",0x24c3,"Ncircumflexbelow",0x1e4a,"Ncommaaccent",0x0145,"Ndotaccent",0x1e44,"Ndotbelow",0x1e46,"Nhookleft",0x019d,"Nineroman",0x2168,"Nj",0x01cb,"Njecyrillic",0x040a,"Nlinebelow",0x1e48,"Nmonospace",0xff2e,"Nowarmenian",0x0546,"Nsmall",0xf76e,"Ntilde",0x00d1,"Ntildesmall",0xf7f1,"Nu",0x039d,"O",0x004f,"OE",0x0152,"OEsmall",0xf6fa,"Oacute",0x00d3,"Oacutesmall",0xf7f3,"Obarredcyrillic",0x04e8,"Obarreddieresiscyrillic",0x04ea,"Obreve",0x014e,"Ocaron",0x01d1,"Ocenteredtilde",0x019f,"Ocircle",0x24c4,"Ocircumflex",0x00d4,"Ocircumflexacute",0x1ed0,"Ocircumflexdotbelow",0x1ed8,"Ocircumflexgrave",0x1ed2,"Ocircumflexhookabove",0x1ed4,"Ocircumflexsmall",0xf7f4,"Ocircumflextilde",0x1ed6,"Ocyrillic",0x041e,"Odblacute",0x0150,"Odblgrave",0x020c,"Odieresis",0x00d6,"Odieresiscyrillic",0x04e6,"Odieresissmall",0xf7f6,"Odotbelow",0x1ecc,"Ogoneksmall",0xf6fb,"Ograve",0x00d2,"Ogravesmall",0xf7f2,"Oharmenian",0x0555,"Ohm",0x2126,"Ohookabove",0x1ece,"Ohorn",0x01a0,"Ohornacute",0x1eda,"Ohorndotbelow",0x1ee2,"Ohorngrave",0x1edc,"Ohornhookabove",0x1ede,"Ohorntilde",0x1ee0,"Ohungarumlaut",0x0150,"Oi",0x01a2,"Oinvertedbreve",0x020e,"Omacron",0x014c,"Omacronacute",0x1e52,"Omacrongrave",0x1e50,"Omega",0x2126,"Omegacyrillic",0x0460,"Omegagreek",0x03a9,"Omegaroundcyrillic",0x047a,"Omegatitlocyrillic",0x047c,"Omegatonos",0x038f,"Omicron",0x039f,"Omicrontonos",0x038c,"Omonospace",0xff2f,"Oneroman",0x2160,"Oogonek",0x01ea,"Oogonekmacron",0x01ec,"Oopen",0x0186,"Oslash",0x00d8,"Oslashacute",0x01fe,"Oslashsmall",0xf7f8,"Osmall",0xf76f,"Ostrokeacute",0x01fe,"Otcyrillic",0x047e,"Otilde",0x00d5,"Otildeacute",0x1e4c,"Otildedieresis",0x1e4e,"Otildesmall",0xf7f5,"P",0x0050,"Pacute",0x1e54,"Pcircle",0x24c5,"Pdotaccent",0x1e56,"Pecyrillic",0x041f,"Peharmenian",0x054a,"Pemiddlehookcyrillic",0x04a6,"Phi",0x03a6,"Phook",0x01a4,"Pi",0x03a0,"Piwrarmenian",0x0553,"Pmonospace",0xff30,"Psi",0x03a8,"Psicyrillic",0x0470,"Psmall",0xf770,"Q",0x0051,"Qcircle",0x24c6,"Qmonospace",0xff31,"Qsmall",0xf771,"R",0x0052,"Raarmenian",0x054c,"Racute",0x0154,"Rcaron",0x0158,"Rcedilla",0x0156,"Rcircle",0x24c7,"Rcommaaccent",0x0156,"Rdblgrave",0x0210,"Rdotaccent",0x1e58,"Rdotbelow",0x1e5a,"Rdotbelowmacron",0x1e5c,"Reharmenian",0x0550,"Rfraktur",0x211c,"Rho",0x03a1,"Ringsmall",0xf6fc,"Rinvertedbreve",0x0212,"Rlinebelow",0x1e5e,"Rmonospace",0xff32,"Rsmall",0xf772,"Rsmallinverted",0x0281,"Rsmallinvertedsuperior",0x02b6,"S",0x0053,"SF010000",0x250c,"SF020000",0x2514,"SF030000",0x2510,"SF040000",0x2518,"SF050000",0x253c,"SF060000",0x252c,"SF070000",0x2534,"SF080000",0x251c,"SF090000",0x2524,"SF100000",0x2500,"SF110000",0x2502,"SF190000",0x2561,"SF200000",0x2562,"SF210000",0x2556,"SF220000",0x2555,"SF230000",0x2563,"SF240000",0x2551,"SF250000",0x2557,"SF260000",0x255d,"SF270000",0x255c,"SF280000",0x255b,"SF360000",0x255e,"SF370000",0x255f,"SF380000",0x255a,"SF390000",0x2554,"SF400000",0x2569,"SF410000",0x2566,"SF420000",0x2560,"SF430000",0x2550,"SF440000",0x256c,"SF450000",0x2567,"SF460000",0x2568,"SF470000",0x2564,"SF480000",0x2565,"SF490000",0x2559,"SF500000",0x2558,"SF510000",0x2552,"SF520000",0x2553,"SF530000",0x256b,"SF540000",0x256a,"Sacute",0x015a,"Sacutedotaccent",0x1e64,"Sampigreek",0x03e0,"Scaron",0x0160,"Scarondotaccent",0x1e66,"Scaronsmall",0xf6fd,"Scedilla",0x015e,"Schwa",0x018f,"Schwacyrillic",0x04d8,"Schwadieresiscyrillic",0x04da,"Scircle",0x24c8,"Scircumflex",0x015c,"Scommaaccent",0x0218,"Sdotaccent",0x1e60,"Sdotbelow",0x1e62,"Sdotbelowdotaccent",0x1e68,"Seharmenian",0x054d,"Sevenroman",0x2166,"Shaarmenian",0x0547,"Shacyrillic",0x0428,"Shchacyrillic",0x0429,"Sheicoptic",0x03e2,"Shhacyrillic",0x04ba,"Shimacoptic",0x03ec,"Sigma",0x03a3,"Sixroman",0x2165,"Smonospace",0xff33,"Softsigncyrillic",0x042c,"Ssmall",0xf773,"Stigmagreek",0x03da,"T",0x0054,"Tau",0x03a4,"Tbar",0x0166,"Tcaron",0x0164,"Tcedilla",0x0162,"Tcircle",0x24c9,"Tcircumflexbelow",0x1e70,"Tcommaaccent",0x0162,"Tdotaccent",0x1e6a,"Tdotbelow",0x1e6c,"Tecyrillic",0x0422,"Tedescendercyrillic",0x04ac,"Tenroman",0x2169,"Tetsecyrillic",0x04b4,"Theta",0x0398,"Thook",0x01ac,"Thorn",0x00de,"Thornsmall",0xf7fe,"Threeroman",0x2162,"Tildesmall",0xf6fe,"Tiwnarmenian",0x054f,"Tlinebelow",0x1e6e,"Tmonospace",0xff34,"Toarmenian",0x0539,"Tonefive",0x01bc,"Tonesix",0x0184,"Tonetwo",0x01a7,"Tretroflexhook",0x01ae,"Tsecyrillic",0x0426,"Tshecyrillic",0x040b,"Tsmall",0xf774,"Twelveroman",0x216b,"Tworoman",0x2161,"U",0x0055,"Uacute",0x00da,"Uacutesmall",0xf7fa,"Ubreve",0x016c,"Ucaron",0x01d3,"Ucircle",0x24ca,"Ucircumflex",0x00db,"Ucircumflexbelow",0x1e76,"Ucircumflexsmall",0xf7fb,"Ucyrillic",0x0423,"Udblacute",0x0170,"Udblgrave",0x0214,"Udieresis",0x00dc,"Udieresisacute",0x01d7,"Udieresisbelow",0x1e72,"Udieresiscaron",0x01d9,"Udieresiscyrillic",0x04f0,"Udieresisgrave",0x01db,"Udieresismacron",0x01d5,"Udieresissmall",0xf7fc,"Udotbelow",0x1ee4,"Ugrave",0x00d9,"Ugravesmall",0xf7f9,"Uhookabove",0x1ee6,"Uhorn",0x01af,"Uhornacute",0x1ee8,"Uhorndotbelow",0x1ef0,"Uhorngrave",0x1eea,"Uhornhookabove",0x1eec,"Uhorntilde",0x1eee,"Uhungarumlaut",0x0170,"Uhungarumlautcyrillic",0x04f2,"Uinvertedbreve",0x0216,"Ukcyrillic",0x0478,"Umacron",0x016a,"Umacroncyrillic",0x04ee,"Umacrondieresis",0x1e7a,"Umonospace",0xff35,"Uogonek",0x0172,"Upsilon",0x03a5,"Upsilon1",0x03d2,"Upsilonacutehooksymbolgreek",0x03d3,"Upsilonafrican",0x01b1,"Upsilondieresis",0x03ab,"Upsilondieresishooksymbolgreek",0x03d4,"Upsilonhooksymbol",0x03d2,"Upsilontonos",0x038e,"Uring",0x016e,"Ushortcyrillic",0x040e,"Usmall",0xf775,"Ustraightcyrillic",0x04ae,"Ustraightstrokecyrillic",0x04b0,"Utilde",0x0168,"Utildeacute",0x1e78,"Utildebelow",0x1e74,"V",0x0056,"Vcircle",0x24cb,"Vdotbelow",0x1e7e,"Vecyrillic",0x0412,"Vewarmenian",0x054e,"Vhook",0x01b2,"Vmonospace",0xff36,"Voarmenian",0x0548,"Vsmall",0xf776,"Vtilde",0x1e7c,"W",0x0057,"Wacute",0x1e82,"Wcircle",0x24cc,"Wcircumflex",0x0174,"Wdieresis",0x1e84,"Wdotaccent",0x1e86,"Wdotbelow",0x1e88,"Wgrave",0x1e80,"Wmonospace",0xff37,"Wsmall",0xf777,"X",0x0058,"Xcircle",0x24cd,"Xdieresis",0x1e8c,"Xdotaccent",0x1e8a,"Xeharmenian",0x053d,"Xi",0x039e,"Xmonospace",0xff38,"Xsmall",0xf778,"Y",0x0059,"Yacute",0x00dd,"Yacutesmall",0xf7fd,"Yatcyrillic",0x0462,"Ycircle",0x24ce,"Ycircumflex",0x0176,"Ydieresis",0x0178,"Ydieresissmall",0xf7ff,"Ydotaccent",0x1e8e,"Ydotbelow",0x1ef4,"Yericyrillic",0x042b,"Yerudieresiscyrillic",0x04f8,"Ygrave",0x1ef2,"Yhook",0x01b3,"Yhookabove",0x1ef6,"Yiarmenian",0x0545,"Yicyrillic",0x0407,"Yiwnarmenian",0x0552,"Ymonospace",0xff39,"Ysmall",0xf779,"Ytilde",0x1ef8,"Yusbigcyrillic",0x046a,"Yusbigiotifiedcyrillic",0x046c,"Yuslittlecyrillic",0x0466,"Yuslittleiotifiedcyrillic",0x0468,"Z",0x005a,"Zaarmenian",0x0536,"Zacute",0x0179,"Zcaron",0x017d,"Zcaronsmall",0xf6ff,"Zcircle",0x24cf,"Zcircumflex",0x1e90,"Zdot",0x017b,"Zdotaccent",0x017b,"Zdotbelow",0x1e92,"Zecyrillic",0x0417,"Zedescendercyrillic",0x0498,"Zedieresiscyrillic",0x04de,"Zeta",0x0396,"Zhearmenian",0x053a,"Zhebrevecyrillic",0x04c1,"Zhecyrillic",0x0416,"Zhedescendercyrillic",0x0496,"Zhedieresiscyrillic",0x04dc,"Zlinebelow",0x1e94,"Zmonospace",0xff3a,"Zsmall",0xf77a,"Zstroke",0x01b5,"a",0x0061,"aabengali",0x0986,"aacute",0x00e1,"aadeva",0x0906,"aagujarati",0x0a86,"aagurmukhi",0x0a06,"aamatragurmukhi",0x0a3e,"aarusquare",0x3303,"aavowelsignbengali",0x09be,"aavowelsigndeva",0x093e,"aavowelsigngujarati",0x0abe,"abbreviationmarkarmenian",0x055f,"abbreviationsigndeva",0x0970,"abengali",0x0985,"abopomofo",0x311a,"abreve",0x0103,"abreveacute",0x1eaf,"abrevecyrillic",0x04d1,"abrevedotbelow",0x1eb7,"abrevegrave",0x1eb1,"abrevehookabove",0x1eb3,"abrevetilde",0x1eb5,"acaron",0x01ce,"acircle",0x24d0,"acircumflex",0x00e2,"acircumflexacute",0x1ea5,"acircumflexdotbelow",0x1ead,"acircumflexgrave",0x1ea7,"acircumflexhookabove",0x1ea9,"acircumflextilde",0x1eab,"acute",0x00b4,"acutebelowcmb",0x0317,"acutecmb",0x0301,"acutecomb",0x0301,"acutedeva",0x0954,"acutelowmod",0x02cf,"acutetonecmb",0x0341,"acyrillic",0x0430,"adblgrave",0x0201,"addakgurmukhi",0x0a71,"adeva",0x0905,"adieresis",0x00e4,"adieresiscyrillic",0x04d3,"adieresismacron",0x01df,"adotbelow",0x1ea1,"adotmacron",0x01e1,"ae",0x00e6,"aeacute",0x01fd,"aekorean",0x3150,"aemacron",0x01e3,"afii00208",0x2015,"afii08941",0x20a4,"afii10017",0x0410,"afii10018",0x0411,"afii10019",0x0412,"afii10020",0x0413,"afii10021",0x0414,"afii10022",0x0415,"afii10023",0x0401,"afii10024",0x0416,"afii10025",0x0417,"afii10026",0x0418,"afii10027",0x0419,"afii10028",0x041a,"afii10029",0x041b,"afii10030",0x041c,"afii10031",0x041d,"afii10032",0x041e,"afii10033",0x041f,"afii10034",0x0420,"afii10035",0x0421,"afii10036",0x0422,"afii10037",0x0423,"afii10038",0x0424,"afii10039",0x0425,"afii10040",0x0426,"afii10041",0x0427,"afii10042",0x0428,"afii10043",0x0429,"afii10044",0x042a,"afii10045",0x042b,"afii10046",0x042c,"afii10047",0x042d,"afii10048",0x042e,"afii10049",0x042f,"afii10050",0x0490,"afii10051",0x0402,"afii10052",0x0403,"afii10053",0x0404,"afii10054",0x0405,"afii10055",0x0406,"afii10056",0x0407,"afii10057",0x0408,"afii10058",0x0409,"afii10059",0x040a,"afii10060",0x040b,"afii10061",0x040c,"afii10062",0x040e,"afii10063",0xf6c4,"afii10064",0xf6c5,"afii10065",0x0430,"afii10066",0x0431,"afii10067",0x0432,"afii10068",0x0433,"afii10069",0x0434,"afii10070",0x0435,"afii10071",0x0451,"afii10072",0x0436,"afii10073",0x0437,"afii10074",0x0438,"afii10075",0x0439,"afii10076",0x043a,"afii10077",0x043b,"afii10078",0x043c,"afii10079",0x043d,"afii10080",0x043e,"afii10081",0x043f,"afii10082",0x0440,"afii10083",0x0441,"afii10084",0x0442,"afii10085",0x0443,"afii10086",0x0444,"afii10087",0x0445,"afii10088",0x0446,"afii10089",0x0447,"afii10090",0x0448,"afii10091",0x0449,"afii10092",0x044a,"afii10093",0x044b,"afii10094",0x044c,"afii10095",0x044d,"afii10096",0x044e,"afii10097",0x044f,"afii10098",0x0491,"afii10099",0x0452,"afii10100",0x0453,"afii10101",0x0454,"afii10102",0x0455,"afii10103",0x0456,"afii10104",0x0457,"afii10105",0x0458,"afii10106",0x0459,"afii10107",0x045a,"afii10108",0x045b,"afii10109",0x045c,"afii10110",0x045e,"afii10145",0x040f,"afii10146",0x0462,"afii10147",0x0472,"afii10148",0x0474,"afii10192",0xf6c6,"afii10193",0x045f,"afii10194",0x0463,"afii10195",0x0473,"afii10196",0x0475,"afii10831",0xf6c7,"afii10832",0xf6c8,"afii10846",0x04d9,"afii299",0x200e,"afii300",0x200f,"afii301",0x200d,"afii57381",0x066a,"afii57388",0x060c,"afii57392",0x0660,"afii57393",0x0661,"afii57394",0x0662,"afii57395",0x0663,"afii57396",0x0664,"afii57397",0x0665,"afii57398",0x0666,"afii57399",0x0667,"afii57400",0x0668,"afii57401",0x0669,"afii57403",0x061b,"afii57407",0x061f,"afii57409",0x0621,"afii57410",0x0622,"afii57411",0x0623,"afii57412",0x0624,"afii57413",0x0625,"afii57414",0x0626,"afii57415",0x0627,"afii57416",0x0628,"afii57417",0x0629,"afii57418",0x062a,"afii57419",0x062b,"afii57420",0x062c,"afii57421",0x062d,"afii57422",0x062e,"afii57423",0x062f,"afii57424",0x0630,"afii57425",0x0631,"afii57426",0x0632,"afii57427",0x0633,"afii57428",0x0634,"afii57429",0x0635,"afii57430",0x0636,"afii57431",0x0637,"afii57432",0x0638,"afii57433",0x0639,"afii57434",0x063a,"afii57440",0x0640,"afii57441",0x0641,"afii57442",0x0642,"afii57443",0x0643,"afii57444",0x0644,"afii57445",0x0645,"afii57446",0x0646,"afii57448",0x0648,"afii57449",0x0649,"afii57450",0x064a,"afii57451",0x064b,"afii57452",0x064c,"afii57453",0x064d,"afii57454",0x064e,"afii57455",0x064f,"afii57456",0x0650,"afii57457",0x0651,"afii57458",0x0652,"afii57470",0x0647,"afii57505",0x06a4,"afii57506",0x067e,"afii57507",0x0686,"afii57508",0x0698,"afii57509",0x06af,"afii57511",0x0679,"afii57512",0x0688,"afii57513",0x0691,"afii57514",0x06ba,"afii57519",0x06d2,"afii57534",0x06d5,"afii57636",0x20aa,"afii57645",0x05be,"afii57658",0x05c3,"afii57664",0x05d0,"afii57665",0x05d1,"afii57666",0x05d2,"afii57667",0x05d3,"afii57668",0x05d4,"afii57669",0x05d5,"afii57670",0x05d6,"afii57671",0x05d7,"afii57672",0x05d8,"afii57673",0x05d9,"afii57674",0x05da,"afii57675",0x05db,"afii57676",0x05dc,"afii57677",0x05dd,"afii57678",0x05de,"afii57679",0x05df,"afii57680",0x05e0,"afii57681",0x05e1,"afii57682",0x05e2,"afii57683",0x05e3,"afii57684",0x05e4,"afii57685",0x05e5,"afii57686",0x05e6,"afii57687",0x05e7,"afii57688",0x05e8,"afii57689",0x05e9,"afii57690",0x05ea,"afii57694",0xfb2a,"afii57695",0xfb2b,"afii57700",0xfb4b,"afii57705",0xfb1f,"afii57716",0x05f0,"afii57717",0x05f1,"afii57718",0x05f2,"afii57723",0xfb35,"afii57793",0x05b4,"afii57794",0x05b5,"afii57795",0x05b6,"afii57796",0x05bb,"afii57797",0x05b8,"afii57798",0x05b7,"afii57799",0x05b0,"afii57800",0x05b2,"afii57801",0x05b1,"afii57802",0x05b3,"afii57803",0x05c2,"afii57804",0x05c1,"afii57806",0x05b9,"afii57807",0x05bc,"afii57839",0x05bd,"afii57841",0x05bf,"afii57842",0x05c0,"afii57929",0x02bc,"afii61248",0x2105,"afii61289",0x2113,"afii61352",0x2116,"afii61573",0x202c,"afii61574",0x202d,"afii61575",0x202e,"afii61664",0x200c,"afii63167",0x066d,"afii64937",0x02bd,"agrave",0x00e0,"agujarati",0x0a85,"agurmukhi",0x0a05,"ahiragana",0x3042,"ahookabove",0x1ea3,"aibengali",0x0990,"aibopomofo",0x311e,"aideva",0x0910,"aiecyrillic",0x04d5,"aigujarati",0x0a90,"aigurmukhi",0x0a10,"aimatragurmukhi",0x0a48,"ainarabic",0x0639,"ainfinalarabic",0xfeca,"aininitialarabic",0xfecb,"ainmedialarabic",0xfecc,"ainvertedbreve",0x0203,"aivowelsignbengali",0x09c8,"aivowelsigndeva",0x0948,"aivowelsigngujarati",0x0ac8,"akatakana",0x30a2,"akatakanahalfwidth",0xff71,"akorean",0x314f,"alef",0x05d0,"alefarabic",0x0627,"alefdageshhebrew",0xfb30,"aleffinalarabic",0xfe8e,"alefhamzaabovearabic",0x0623,"alefhamzaabovefinalarabic",0xfe84,"alefhamzabelowarabic",0x0625,"alefhamzabelowfinalarabic",0xfe88,"alefhebrew",0x05d0,"aleflamedhebrew",0xfb4f,"alefmaddaabovearabic",0x0622,"alefmaddaabovefinalarabic",0xfe82,"alefmaksuraarabic",0x0649,"alefmaksurafinalarabic",0xfef0,"alefmaksurainitialarabic",0xfef3,"alefmaksuramedialarabic",0xfef4,"alefpatahhebrew",0xfb2e,"alefqamatshebrew",0xfb2f,"aleph",0x2135,"allequal",0x224c,"alpha",0x03b1,"alphatonos",0x03ac,"amacron",0x0101,"amonospace",0xff41,"ampersand",0x0026,"ampersandmonospace",0xff06,"ampersandsmall",0xf726,"amsquare",0x33c2,"anbopomofo",0x3122,"angbopomofo",0x3124,"angbracketleft",0x3008,"angbracketright",0x3009,"angkhankhuthai",0x0e5a,"angle",0x2220,"anglebracketleft",0x3008,"anglebracketleftvertical",0xfe3f,"anglebracketright",0x3009,"anglebracketrightvertical",0xfe40,"angleleft",0x2329,"angleright",0x232a,"angstrom",0x212b,"anoteleia",0x0387,"anudattadeva",0x0952,"anusvarabengali",0x0982,"anusvaradeva",0x0902,"anusvaragujarati",0x0a82,"aogonek",0x0105,"apaatosquare",0x3300,"aparen",0x249c,"apostrophearmenian",0x055a,"apostrophemod",0x02bc,"apple",0xf8ff,"approaches",0x2250,"approxequal",0x2248,"approxequalorimage",0x2252,"approximatelyequal",0x2245,"araeaekorean",0x318e,"araeakorean",0x318d,"arc",0x2312,"arighthalfring",0x1e9a,"aring",0x00e5,"aringacute",0x01fb,"aringbelow",0x1e01,"arrowboth",0x2194,"arrowdashdown",0x21e3,"arrowdashleft",0x21e0,"arrowdashright",0x21e2,"arrowdashup",0x21e1,"arrowdblboth",0x21d4,"arrowdbldown",0x21d3,"arrowdblleft",0x21d0,"arrowdblright",0x21d2,"arrowdblup",0x21d1,"arrowdown",0x2193,"arrowdownleft",0x2199,"arrowdownright",0x2198,"arrowdownwhite",0x21e9,"arrowheaddownmod",0x02c5,"arrowheadleftmod",0x02c2,"arrowheadrightmod",0x02c3,"arrowheadupmod",0x02c4,"arrowhorizex",0xf8e7,"arrowleft",0x2190,"arrowleftdbl",0x21d0,"arrowleftdblstroke",0x21cd,"arrowleftoverright",0x21c6,"arrowleftwhite",0x21e6,"arrowright",0x2192,"arrowrightdblstroke",0x21cf,"arrowrightheavy",0x279e,"arrowrightoverleft",0x21c4,"arrowrightwhite",0x21e8,"arrowtableft",0x21e4,"arrowtabright",0x21e5,"arrowup",0x2191,"arrowupdn",0x2195,"arrowupdnbse",0x21a8,"arrowupdownbase",0x21a8,"arrowupleft",0x2196,"arrowupleftofdown",0x21c5,"arrowupright",0x2197,"arrowupwhite",0x21e7,"arrowvertex",0xf8e6,"asciicircum",0x005e,"asciicircummonospace",0xff3e,"asciitilde",0x007e,"asciitildemonospace",0xff5e,"ascript",0x0251,"ascriptturned",0x0252,"asmallhiragana",0x3041,"asmallkatakana",0x30a1,"asmallkatakanahalfwidth",0xff67,"asterisk",0x002a,"asteriskaltonearabic",0x066d,"asteriskarabic",0x066d,"asteriskmath",0x2217,"asteriskmonospace",0xff0a,"asterisksmall",0xfe61,"asterism",0x2042,"asuperior",0xf6e9,"asymptoticallyequal",0x2243,"at",0x0040,"atilde",0x00e3,"atmonospace",0xff20,"atsmall",0xfe6b,"aturned",0x0250,"aubengali",0x0994,"aubopomofo",0x3120,"audeva",0x0914,"augujarati",0x0a94,"augurmukhi",0x0a14,"aulengthmarkbengali",0x09d7,"aumatragurmukhi",0x0a4c,"auvowelsignbengali",0x09cc,"auvowelsigndeva",0x094c,"auvowelsigngujarati",0x0acc,"avagrahadeva",0x093d,"aybarmenian",0x0561,"ayin",0x05e2,"ayinaltonehebrew",0xfb20,"ayinhebrew",0x05e2,"b",0x0062,"babengali",0x09ac,"backslash",0x005c,"backslashmonospace",0xff3c,"badeva",0x092c,"bagujarati",0x0aac,"bagurmukhi",0x0a2c,"bahiragana",0x3070,"bahtthai",0x0e3f,"bakatakana",0x30d0,"bar",0x007c,"barmonospace",0xff5c,"bbopomofo",0x3105,"bcircle",0x24d1,"bdotaccent",0x1e03,"bdotbelow",0x1e05,"beamedsixteenthnotes",0x266c,"because",0x2235,"becyrillic",0x0431,"beharabic",0x0628,"behfinalarabic",0xfe90,"behinitialarabic",0xfe91,"behiragana",0x3079,"behmedialarabic",0xfe92,"behmeeminitialarabic",0xfc9f,"behmeemisolatedarabic",0xfc08,"behnoonfinalarabic",0xfc6d,"bekatakana",0x30d9,"benarmenian",0x0562,"bet",0x05d1,"beta",0x03b2,"betasymbolgreek",0x03d0,"betdagesh",0xfb31,"betdageshhebrew",0xfb31,"bethebrew",0x05d1,"betrafehebrew",0xfb4c,"bhabengali",0x09ad,"bhadeva",0x092d,"bhagujarati",0x0aad,"bhagurmukhi",0x0a2d,"bhook",0x0253,"bihiragana",0x3073,"bikatakana",0x30d3,"bilabialclick",0x0298,"bindigurmukhi",0x0a02,"birusquare",0x3331,"blackcircle",0x25cf,"blackdiamond",0x25c6,"blackdownpointingtriangle",0x25bc,"blackleftpointingpointer",0x25c4,"blackleftpointingtriangle",0x25c0,"blacklenticularbracketleft",0x3010,"blacklenticularbracketleftvertical",0xfe3b,"blacklenticularbracketright",0x3011,"blacklenticularbracketrightvertical",0xfe3c,"blacklowerlefttriangle",0x25e3,"blacklowerrighttriangle",0x25e2,"blackrectangle",0x25ac,"blackrightpointingpointer",0x25ba,"blackrightpointingtriangle",0x25b6,"blacksmallsquare",0x25aa,"blacksmilingface",0x263b,"blacksquare",0x25a0,"blackstar",0x2605,"blackupperlefttriangle",0x25e4,"blackupperrighttriangle",0x25e5,"blackuppointingsmalltriangle",0x25b4,"blackuppointingtriangle",0x25b2,"blank",0x2423,"blinebelow",0x1e07,"block",0x2588,"bmonospace",0xff42,"bobaimaithai",0x0e1a,"bohiragana",0x307c,"bokatakana",0x30dc,"bparen",0x249d,"bqsquare",0x33c3,"braceex",0xf8f4,"braceleft",0x007b,"braceleftbt",0xf8f3,"braceleftmid",0xf8f2,"braceleftmonospace",0xff5b,"braceleftsmall",0xfe5b,"bracelefttp",0xf8f1,"braceleftvertical",0xfe37,"braceright",0x007d,"bracerightbt",0xf8fe,"bracerightmid",0xf8fd,"bracerightmonospace",0xff5d,"bracerightsmall",0xfe5c,"bracerighttp",0xf8fc,"bracerightvertical",0xfe38,"bracketleft",0x005b,"bracketleftbt",0xf8f0,"bracketleftex",0xf8ef,"bracketleftmonospace",0xff3b,"bracketlefttp",0xf8ee,"bracketright",0x005d,"bracketrightbt",0xf8fb,"bracketrightex",0xf8fa,"bracketrightmonospace",0xff3d,"bracketrighttp",0xf8f9,"breve",0x02d8,"brevebelowcmb",0x032e,"brevecmb",0x0306,"breveinvertedbelowcmb",0x032f,"breveinvertedcmb",0x0311,"breveinverteddoublecmb",0x0361,"bridgebelowcmb",0x032a,"bridgeinvertedbelowcmb",0x033a,"brokenbar",0x00a6,"bstroke",0x0180,"bsuperior",0xf6ea,"btopbar",0x0183,"buhiragana",0x3076,"bukatakana",0x30d6,"bullet",0x2022,"bulletinverse",0x25d8,"bulletoperator",0x2219,"bullseye",0x25ce,"c",0x0063,"caarmenian",0x056e,"cabengali",0x099a,"cacute",0x0107,"cadeva",0x091a,"cagujarati",0x0a9a,"cagurmukhi",0x0a1a,"calsquare",0x3388,"candrabindubengali",0x0981,"candrabinducmb",0x0310,"candrabindudeva",0x0901,"candrabindugujarati",0x0a81,"capslock",0x21ea,"careof",0x2105,"caron",0x02c7,"caronbelowcmb",0x032c,"caroncmb",0x030c,"carriagereturn",0x21b5,"cbopomofo",0x3118,"ccaron",0x010d,"ccedilla",0x00e7,"ccedillaacute",0x1e09,"ccircle",0x24d2,"ccircumflex",0x0109,"ccurl",0x0255,"cdot",0x010b,"cdotaccent",0x010b,"cdsquare",0x33c5,"cedilla",0x00b8,"cedillacmb",0x0327,"cent",0x00a2,"centigrade",0x2103,"centinferior",0xf6df,"centmonospace",0xffe0,"centoldstyle",0xf7a2,"centsuperior",0xf6e0,"chaarmenian",0x0579,"chabengali",0x099b,"chadeva",0x091b,"chagujarati",0x0a9b,"chagurmukhi",0x0a1b,"chbopomofo",0x3114,"cheabkhasiancyrillic",0x04bd,"checkmark",0x2713,"checyrillic",0x0447,"chedescenderabkhasiancyrillic",0x04bf,"chedescendercyrillic",0x04b7,"chedieresiscyrillic",0x04f5,"cheharmenian",0x0573,"chekhakassiancyrillic",0x04cc,"cheverticalstrokecyrillic",0x04b9,"chi",0x03c7,"chieuchacirclekorean",0x3277,"chieuchaparenkorean",0x3217,"chieuchcirclekorean",0x3269,"chieuchkorean",0x314a,"chieuchparenkorean",0x3209,"chochangthai",0x0e0a,"chochanthai",0x0e08,"chochingthai",0x0e09,"chochoethai",0x0e0c,"chook",0x0188,"cieucacirclekorean",0x3276,"cieucaparenkorean",0x3216,"cieuccirclekorean",0x3268,"cieuckorean",0x3148,"cieucparenkorean",0x3208,"cieucuparenkorean",0x321c,"circle",0x25cb,"circlecopyrt",0x00a9,"circlemultiply",0x2297,"circleot",0x2299,"circleplus",0x2295,"circlepostalmark",0x3036,"circlewithlefthalfblack",0x25d0,"circlewithrighthalfblack",0x25d1,"circumflex",0x02c6,"circumflexbelowcmb",0x032d,"circumflexcmb",0x0302,"clear",0x2327,"clickalveolar",0x01c2,"clickdental",0x01c0,"clicklateral",0x01c1,"clickretroflex",0x01c3,"club",0x2663,"clubsuitblack",0x2663,"clubsuitwhite",0x2667,"cmcubedsquare",0x33a4,"cmonospace",0xff43,"cmsquaredsquare",0x33a0,"coarmenian",0x0581,"colon",0x003a,"colonmonetary",0x20a1,"colonmonospace",0xff1a,"colonsign",0x20a1,"colonsmall",0xfe55,"colontriangularhalfmod",0x02d1,"colontriangularmod",0x02d0,"comma",0x002c,"commaabovecmb",0x0313,"commaaboverightcmb",0x0315,"commaaccent",0xf6c3,"commaarabic",0x060c,"commaarmenian",0x055d,"commainferior",0xf6e1,"commamonospace",0xff0c,"commareversedabovecmb",0x0314,"commareversedmod",0x02bd,"commasmall",0xfe50,"commasuperior",0xf6e2,"commaturnedabovecmb",0x0312,"commaturnedmod",0x02bb,"compass",0x263c,"congruent",0x2245,"contourintegral",0x222e,"control",0x2303,"controlACK",0x0006,"controlBEL",0x0007,"controlBS",0x0008,"controlCAN",0x0018,"controlCR",0x000d,"controlDC1",0x0011,"controlDC2",0x0012,"controlDC3",0x0013,"controlDC4",0x0014,"controlDEL",0x007f,"controlDLE",0x0010,"controlEM",0x0019,"controlENQ",0x0005,"controlEOT",0x0004,"controlESC",0x001b,"controlETB",0x0017,"controlETX",0x0003,"controlFF",0x000c,"controlFS",0x001c,"controlGS",0x001d,"controlHT",0x0009,"controlLF",0x000a,"controlNAK",0x0015,"controlNULL",0x0000,"controlRS",0x001e,"controlSI",0x000f,"controlSO",0x000e,"controlSOT",0x0002,"controlSTX",0x0001,"controlSUB",0x001a,"controlSYN",0x0016,"controlUS",0x001f,"controlVT",0x000b,"copyright",0x00a9,"copyrightsans",0xf8e9,"copyrightserif",0xf6d9,"cornerbracketleft",0x300c,"cornerbracketlefthalfwidth",0xff62,"cornerbracketleftvertical",0xfe41,"cornerbracketright",0x300d,"cornerbracketrighthalfwidth",0xff63,"cornerbracketrightvertical",0xfe42,"corporationsquare",0x337f,"cosquare",0x33c7,"coverkgsquare",0x33c6,"cparen",0x249e,"cruzeiro",0x20a2,"cstretched",0x0297,"curlyand",0x22cf,"curlyor",0x22ce,"currency",0x00a4,"cyrBreve",0xf6d1,"cyrFlex",0xf6d2,"cyrbreve",0xf6d4,"cyrflex",0xf6d5,"d",0x0064,"daarmenian",0x0564,"dabengali",0x09a6,"dadarabic",0x0636,"dadeva",0x0926,"dadfinalarabic",0xfebe,"dadinitialarabic",0xfebf,"dadmedialarabic",0xfec0,"dagesh",0x05bc,"dageshhebrew",0x05bc,"dagger",0x2020,"daggerdbl",0x2021,"dagujarati",0x0aa6,"dagurmukhi",0x0a26,"dahiragana",0x3060,"dakatakana",0x30c0,"dalarabic",0x062f,"dalet",0x05d3,"daletdagesh",0xfb33,"daletdageshhebrew",0xfb33,"dalethebrew",0x05d3,"dalfinalarabic",0xfeaa,"dammaarabic",0x064f,"dammalowarabic",0x064f,"dammatanaltonearabic",0x064c,"dammatanarabic",0x064c,"danda",0x0964,"dargahebrew",0x05a7,"dargalefthebrew",0x05a7,"dasiapneumatacyrilliccmb",0x0485,"dblGrave",0xf6d3,"dblanglebracketleft",0x300a,"dblanglebracketleftvertical",0xfe3d,"dblanglebracketright",0x300b,"dblanglebracketrightvertical",0xfe3e,"dblarchinvertedbelowcmb",0x032b,"dblarrowleft",0x21d4,"dblarrowright",0x21d2,"dbldanda",0x0965,"dblgrave",0xf6d6,"dblgravecmb",0x030f,"dblintegral",0x222c,"dbllowline",0x2017,"dbllowlinecmb",0x0333,"dbloverlinecmb",0x033f,"dblprimemod",0x02ba,"dblverticalbar",0x2016,"dblverticallineabovecmb",0x030e,"dbopomofo",0x3109,"dbsquare",0x33c8,"dcaron",0x010f,"dcedilla",0x1e11,"dcircle",0x24d3,"dcircumflexbelow",0x1e13,"dcroat",0x0111,"ddabengali",0x09a1,"ddadeva",0x0921,"ddagujarati",0x0aa1,"ddagurmukhi",0x0a21,"ddalarabic",0x0688,"ddalfinalarabic",0xfb89,"dddhadeva",0x095c,"ddhabengali",0x09a2,"ddhadeva",0x0922,"ddhagujarati",0x0aa2,"ddhagurmukhi",0x0a22,"ddotaccent",0x1e0b,"ddotbelow",0x1e0d,"decimalseparatorarabic",0x066b,"decimalseparatorpersian",0x066b,"decyrillic",0x0434,"degree",0x00b0,"dehihebrew",0x05ad,"dehiragana",0x3067,"deicoptic",0x03ef,"dekatakana",0x30c7,"deleteleft",0x232b,"deleteright",0x2326,"delta",0x03b4,"deltaturned",0x018d,"denominatorminusonenumeratorbengali",0x09f8,"dezh",0x02a4,"dhabengali",0x09a7,"dhadeva",0x0927,"dhagujarati",0x0aa7,"dhagurmukhi",0x0a27,"dhook",0x0257,"dialytikatonos",0x0385,"dialytikatonoscmb",0x0344,"diamond",0x2666,"diamondsuitwhite",0x2662,"dieresis",0x00a8,"dieresisacute",0xf6d7,"dieresisbelowcmb",0x0324,"dieresiscmb",0x0308,"dieresisgrave",0xf6d8,"dieresistonos",0x0385,"dihiragana",0x3062,"dikatakana",0x30c2,"dittomark",0x3003,"divide",0x00f7,"divides",0x2223,"divisionslash",0x2215,"djecyrillic",0x0452,"dkshade",0x2593,"dlinebelow",0x1e0f,"dlsquare",0x3397,"dmacron",0x0111,"dmonospace",0xff44,"dnblock",0x2584,"dochadathai",0x0e0e,"dodekthai",0x0e14,"dohiragana",0x3069,"dokatakana",0x30c9,"dollar",0x0024,"dollarinferior",0xf6e3,"dollarmonospace",0xff04,"dollaroldstyle",0xf724,"dollarsmall",0xfe69,"dollarsuperior",0xf6e4,"dong",0x20ab,"dorusquare",0x3326,"dotaccent",0x02d9,"dotaccentcmb",0x0307,"dotbelowcmb",0x0323,"dotbelowcomb",0x0323,"dotkatakana",0x30fb,"dotlessi",0x0131,"dotlessj",0xf6be,"dotlessjstrokehook",0x0284,"dotmath",0x22c5,"dottedcircle",0x25cc,"doubleyodpatah",0xfb1f,"doubleyodpatahhebrew",0xfb1f,"downtackbelowcmb",0x031e,"downtackmod",0x02d5,"dparen",0x249f,"dsuperior",0xf6eb,"dtail",0x0256,"dtopbar",0x018c,"duhiragana",0x3065,"dukatakana",0x30c5,"dz",0x01f3,"dzaltone",0x02a3,"dzcaron",0x01c6,"dzcurl",0x02a5,"dzeabkhasiancyrillic",0x04e1,"dzecyrillic",0x0455,"dzhecyrillic",0x045f,"e",0x0065,"eacute",0x00e9,"earth",0x2641,"ebengali",0x098f,"ebopomofo",0x311c,"ebreve",0x0115,"ecandradeva",0x090d,"ecandragujarati",0x0a8d,"ecandravowelsigndeva",0x0945,"ecandravowelsigngujarati",0x0ac5,"ecaron",0x011b,"ecedillabreve",0x1e1d,"echarmenian",0x0565,"echyiwnarmenian",0x0587,"ecircle",0x24d4,"ecircumflex",0x00ea,"ecircumflexacute",0x1ebf,"ecircumflexbelow",0x1e19,"ecircumflexdotbelow",0x1ec7,"ecircumflexgrave",0x1ec1,"ecircumflexhookabove",0x1ec3,"ecircumflextilde",0x1ec5,"ecyrillic",0x0454,"edblgrave",0x0205,"edeva",0x090f,"edieresis",0x00eb,"edot",0x0117,"edotaccent",0x0117,"edotbelow",0x1eb9,"eegurmukhi",0x0a0f,"eematragurmukhi",0x0a47,"efcyrillic",0x0444,"egrave",0x00e8,"egujarati",0x0a8f,"eharmenian",0x0567,"ehbopomofo",0x311d,"ehiragana",0x3048,"ehookabove",0x1ebb,"eibopomofo",0x311f,"eight",0x0038,"eightarabic",0x0668,"eightbengali",0x09ee,"eightcircle",0x2467,"eightcircleinversesansserif",0x2791,"eightdeva",0x096e,"eighteencircle",0x2471,"eighteenparen",0x2485,"eighteenperiod",0x2499,"eightgujarati",0x0aee,"eightgurmukhi",0x0a6e,"eighthackarabic",0x0668,"eighthangzhou",0x3028,"eighthnotebeamed",0x266b,"eightideographicparen",0x3227,"eightinferior",0x2088,"eightmonospace",0xff18,"eightoldstyle",0xf738,"eightparen",0x247b,"eightperiod",0x248f,"eightpersian",0x06f8,"eightroman",0x2177,"eightsuperior",0x2078,"eightthai",0x0e58,"einvertedbreve",0x0207,"eiotifiedcyrillic",0x0465,"ekatakana",0x30a8,"ekatakanahalfwidth",0xff74,"ekonkargurmukhi",0x0a74,"ekorean",0x3154,"elcyrillic",0x043b,"element",0x2208,"elevencircle",0x246a,"elevenparen",0x247e,"elevenperiod",0x2492,"elevenroman",0x217a,"ellipsis",0x2026,"ellipsisvertical",0x22ee,"emacron",0x0113,"emacronacute",0x1e17,"emacrongrave",0x1e15,"emcyrillic",0x043c,"emdash",0x2014,"emdashvertical",0xfe31,"emonospace",0xff45,"emphasismarkarmenian",0x055b,"emptyset",0x2205,"enbopomofo",0x3123,"encyrillic",0x043d,"endash",0x2013,"endashvertical",0xfe32,"endescendercyrillic",0x04a3,"eng",0x014b,"engbopomofo",0x3125,"enghecyrillic",0x04a5,"enhookcyrillic",0x04c8,"enspace",0x2002,"eogonek",0x0119,"eokorean",0x3153,"eopen",0x025b,"eopenclosed",0x029a,"eopenreversed",0x025c,"eopenreversedclosed",0x025e,"eopenreversedhook",0x025d,"eparen",0x24a0,"epsilon",0x03b5,"epsilontonos",0x03ad,"equal",0x003d,"equalmonospace",0xff1d,"equalsmall",0xfe66,"equalsuperior",0x207c,"equivalence",0x2261,"erbopomofo",0x3126,"ercyrillic",0x0440,"ereversed",0x0258,"ereversedcyrillic",0x044d,"escyrillic",0x0441,"esdescendercyrillic",0x04ab,"esh",0x0283,"eshcurl",0x0286,"eshortdeva",0x090e,"eshortvowelsigndeva",0x0946,"eshreversedloop",0x01aa,"eshsquatreversed",0x0285,"esmallhiragana",0x3047,"esmallkatakana",0x30a7,"esmallkatakanahalfwidth",0xff6a,"estimated",0x212e,"esuperior",0xf6ec,"eta",0x03b7,"etarmenian",0x0568,"etatonos",0x03ae,"eth",0x00f0,"etilde",0x1ebd,"etildebelow",0x1e1b,"etnahtafoukhhebrew",0x0591,"etnahtafoukhlefthebrew",0x0591,"etnahtahebrew",0x0591,"etnahtalefthebrew",0x0591,"eturned",0x01dd,"eukorean",0x3161,"euro",0x20ac,"evowelsignbengali",0x09c7,"evowelsigndeva",0x0947,"evowelsigngujarati",0x0ac7,"exclam",0x0021,"exclamarmenian",0x055c,"exclamdbl",0x203c,"exclamdown",0x00a1,"exclamdownsmall",0xf7a1,"exclammonospace",0xff01,"exclamsmall",0xf721,"existential",0x2203,"ezh",0x0292,"ezhcaron",0x01ef,"ezhcurl",0x0293,"ezhreversed",0x01b9,"ezhtail",0x01ba,"f",0x0066,"fadeva",0x095e,"fagurmukhi",0x0a5e,"fahrenheit",0x2109,"fathaarabic",0x064e,"fathalowarabic",0x064e,"fathatanarabic",0x064b,"fbopomofo",0x3108,"fcircle",0x24d5,"fdotaccent",0x1e1f,"feharabic",0x0641,"feharmenian",0x0586,"fehfinalarabic",0xfed2,"fehinitialarabic",0xfed3,"fehmedialarabic",0xfed4,"feicoptic",0x03e5,"female",0x2640,"ff",0xfb00,"f_f",0xfb00,"ffi",0xfb03,"ffl",0xfb04,"fi",0xfb01,"fifteencircle",0x246e,"fifteenparen",0x2482,"fifteenperiod",0x2496,"figuredash",0x2012,"filledbox",0x25a0,"filledrect",0x25ac,"finalkaf",0x05da,"finalkafdagesh",0xfb3a,"finalkafdageshhebrew",0xfb3a,"finalkafhebrew",0x05da,"finalmem",0x05dd,"finalmemhebrew",0x05dd,"finalnun",0x05df,"finalnunhebrew",0x05df,"finalpe",0x05e3,"finalpehebrew",0x05e3,"finaltsadi",0x05e5,"finaltsadihebrew",0x05e5,"firsttonechinese",0x02c9,"fisheye",0x25c9,"fitacyrillic",0x0473,"five",0x0035,"fivearabic",0x0665,"fivebengali",0x09eb,"fivecircle",0x2464,"fivecircleinversesansserif",0x278e,"fivedeva",0x096b,"fiveeighths",0x215d,"fivegujarati",0x0aeb,"fivegurmukhi",0x0a6b,"fivehackarabic",0x0665,"fivehangzhou",0x3025,"fiveideographicparen",0x3224,"fiveinferior",0x2085,"fivemonospace",0xff15,"fiveoldstyle",0xf735,"fiveparen",0x2478,"fiveperiod",0x248c,"fivepersian",0x06f5,"fiveroman",0x2174,"fivesuperior",0x2075,"fivethai",0x0e55,"fl",0xfb02,"florin",0x0192,"fmonospace",0xff46,"fmsquare",0x3399,"fofanthai",0x0e1f,"fofathai",0x0e1d,"fongmanthai",0x0e4f,"forall",0x2200,"four",0x0034,"fourarabic",0x0664,"fourbengali",0x09ea,"fourcircle",0x2463,"fourcircleinversesansserif",0x278d,"fourdeva",0x096a,"fourgujarati",0x0aea,"fourgurmukhi",0x0a6a,"fourhackarabic",0x0664,"fourhangzhou",0x3024,"fourideographicparen",0x3223,"fourinferior",0x2084,"fourmonospace",0xff14,"fournumeratorbengali",0x09f7,"fouroldstyle",0xf734,"fourparen",0x2477,"fourperiod",0x248b,"fourpersian",0x06f4,"fourroman",0x2173,"foursuperior",0x2074,"fourteencircle",0x246d,"fourteenparen",0x2481,"fourteenperiod",0x2495,"fourthai",0x0e54,"fourthtonechinese",0x02cb,"fparen",0x24a1,"fraction",0x2044,"franc",0x20a3,"g",0x0067,"gabengali",0x0997,"gacute",0x01f5,"gadeva",0x0917,"gafarabic",0x06af,"gaffinalarabic",0xfb93,"gafinitialarabic",0xfb94,"gafmedialarabic",0xfb95,"gagujarati",0x0a97,"gagurmukhi",0x0a17,"gahiragana",0x304c,"gakatakana",0x30ac,"gamma",0x03b3,"gammalatinsmall",0x0263,"gammasuperior",0x02e0,"gangiacoptic",0x03eb,"gbopomofo",0x310d,"gbreve",0x011f,"gcaron",0x01e7,"gcedilla",0x0123,"gcircle",0x24d6,"gcircumflex",0x011d,"gcommaaccent",0x0123,"gdot",0x0121,"gdotaccent",0x0121,"gecyrillic",0x0433,"gehiragana",0x3052,"gekatakana",0x30b2,"geometricallyequal",0x2251,"gereshaccenthebrew",0x059c,"gereshhebrew",0x05f3,"gereshmuqdamhebrew",0x059d,"germandbls",0x00df,"gershayimaccenthebrew",0x059e,"gershayimhebrew",0x05f4,"getamark",0x3013,"ghabengali",0x0998,"ghadarmenian",0x0572,"ghadeva",0x0918,"ghagujarati",0x0a98,"ghagurmukhi",0x0a18,"ghainarabic",0x063a,"ghainfinalarabic",0xfece,"ghaininitialarabic",0xfecf,"ghainmedialarabic",0xfed0,"ghemiddlehookcyrillic",0x0495,"ghestrokecyrillic",0x0493,"gheupturncyrillic",0x0491,"ghhadeva",0x095a,"ghhagurmukhi",0x0a5a,"ghook",0x0260,"ghzsquare",0x3393,"gihiragana",0x304e,"gikatakana",0x30ae,"gimarmenian",0x0563,"gimel",0x05d2,"gimeldagesh",0xfb32,"gimeldageshhebrew",0xfb32,"gimelhebrew",0x05d2,"gjecyrillic",0x0453,"glottalinvertedstroke",0x01be,"glottalstop",0x0294,"glottalstopinverted",0x0296,"glottalstopmod",0x02c0,"glottalstopreversed",0x0295,"glottalstopreversedmod",0x02c1,"glottalstopreversedsuperior",0x02e4,"glottalstopstroke",0x02a1,"glottalstopstrokereversed",0x02a2,"gmacron",0x1e21,"gmonospace",0xff47,"gohiragana",0x3054,"gokatakana",0x30b4,"gparen",0x24a2,"gpasquare",0x33ac,"gradient",0x2207,"grave",0x0060,"gravebelowcmb",0x0316,"gravecmb",0x0300,"gravecomb",0x0300,"gravedeva",0x0953,"gravelowmod",0x02ce,"gravemonospace",0xff40,"gravetonecmb",0x0340,"greater",0x003e,"greaterequal",0x2265,"greaterequalorless",0x22db,"greatermonospace",0xff1e,"greaterorequivalent",0x2273,"greaterorless",0x2277,"greateroverequal",0x2267,"greatersmall",0xfe65,"gscript",0x0261,"gstroke",0x01e5,"guhiragana",0x3050,"guillemotleft",0x00ab,"guillemotright",0x00bb,"guilsinglleft",0x2039,"guilsinglright",0x203a,"gukatakana",0x30b0,"guramusquare",0x3318,"gysquare",0x33c9,"h",0x0068,"haabkhasiancyrillic",0x04a9,"haaltonearabic",0x06c1,"habengali",0x09b9,"hadescendercyrillic",0x04b3,"hadeva",0x0939,"hagujarati",0x0ab9,"hagurmukhi",0x0a39,"haharabic",0x062d,"hahfinalarabic",0xfea2,"hahinitialarabic",0xfea3,"hahiragana",0x306f,"hahmedialarabic",0xfea4,"haitusquare",0x332a,"hakatakana",0x30cf,"hakatakanahalfwidth",0xff8a,"halantgurmukhi",0x0a4d,"hamzaarabic",0x0621,"hamzalowarabic",0x0621,"hangulfiller",0x3164,"hardsigncyrillic",0x044a,"harpoonleftbarbup",0x21bc,"harpoonrightbarbup",0x21c0,"hasquare",0x33ca,"hatafpatah",0x05b2,"hatafpatah16",0x05b2,"hatafpatah23",0x05b2,"hatafpatah2f",0x05b2,"hatafpatahhebrew",0x05b2,"hatafpatahnarrowhebrew",0x05b2,"hatafpatahquarterhebrew",0x05b2,"hatafpatahwidehebrew",0x05b2,"hatafqamats",0x05b3,"hatafqamats1b",0x05b3,"hatafqamats28",0x05b3,"hatafqamats34",0x05b3,"hatafqamatshebrew",0x05b3,"hatafqamatsnarrowhebrew",0x05b3,"hatafqamatsquarterhebrew",0x05b3,"hatafqamatswidehebrew",0x05b3,"hatafsegol",0x05b1,"hatafsegol17",0x05b1,"hatafsegol24",0x05b1,"hatafsegol30",0x05b1,"hatafsegolhebrew",0x05b1,"hatafsegolnarrowhebrew",0x05b1,"hatafsegolquarterhebrew",0x05b1,"hatafsegolwidehebrew",0x05b1,"hbar",0x0127,"hbopomofo",0x310f,"hbrevebelow",0x1e2b,"hcedilla",0x1e29,"hcircle",0x24d7,"hcircumflex",0x0125,"hdieresis",0x1e27,"hdotaccent",0x1e23,"hdotbelow",0x1e25,"he",0x05d4,"heart",0x2665,"heartsuitblack",0x2665,"heartsuitwhite",0x2661,"hedagesh",0xfb34,"hedageshhebrew",0xfb34,"hehaltonearabic",0x06c1,"heharabic",0x0647,"hehebrew",0x05d4,"hehfinalaltonearabic",0xfba7,"hehfinalalttwoarabic",0xfeea,"hehfinalarabic",0xfeea,"hehhamzaabovefinalarabic",0xfba5,"hehhamzaaboveisolatedarabic",0xfba4,"hehinitialaltonearabic",0xfba8,"hehinitialarabic",0xfeeb,"hehiragana",0x3078,"hehmedialaltonearabic",0xfba9,"hehmedialarabic",0xfeec,"heiseierasquare",0x337b,"hekatakana",0x30d8,"hekatakanahalfwidth",0xff8d,"hekutaarusquare",0x3336,"henghook",0x0267,"herutusquare",0x3339,"het",0x05d7,"hethebrew",0x05d7,"hhook",0x0266,"hhooksuperior",0x02b1,"hieuhacirclekorean",0x327b,"hieuhaparenkorean",0x321b,"hieuhcirclekorean",0x326d,"hieuhkorean",0x314e,"hieuhparenkorean",0x320d,"hihiragana",0x3072,"hikatakana",0x30d2,"hikatakanahalfwidth",0xff8b,"hiriq",0x05b4,"hiriq14",0x05b4,"hiriq21",0x05b4,"hiriq2d",0x05b4,"hiriqhebrew",0x05b4,"hiriqnarrowhebrew",0x05b4,"hiriqquarterhebrew",0x05b4,"hiriqwidehebrew",0x05b4,"hlinebelow",0x1e96,"hmonospace",0xff48,"hoarmenian",0x0570,"hohipthai",0x0e2b,"hohiragana",0x307b,"hokatakana",0x30db,"hokatakanahalfwidth",0xff8e,"holam",0x05b9,"holam19",0x05b9,"holam26",0x05b9,"holam32",0x05b9,"holamhebrew",0x05b9,"holamnarrowhebrew",0x05b9,"holamquarterhebrew",0x05b9,"holamwidehebrew",0x05b9,"honokhukthai",0x0e2e,"hookabovecomb",0x0309,"hookcmb",0x0309,"hookpalatalizedbelowcmb",0x0321,"hookretroflexbelowcmb",0x0322,"hoonsquare",0x3342,"horicoptic",0x03e9,"horizontalbar",0x2015,"horncmb",0x031b,"hotsprings",0x2668,"house",0x2302,"hparen",0x24a3,"hsuperior",0x02b0,"hturned",0x0265,"huhiragana",0x3075,"huiitosquare",0x3333,"hukatakana",0x30d5,"hukatakanahalfwidth",0xff8c,"hungarumlaut",0x02dd,"hungarumlautcmb",0x030b,"hv",0x0195,"hyphen",0x002d,"hypheninferior",0xf6e5,"hyphenmonospace",0xff0d,"hyphensmall",0xfe63,"hyphensuperior",0xf6e6,"hyphentwo",0x2010,"i",0x0069,"iacute",0x00ed,"iacyrillic",0x044f,"ibengali",0x0987,"ibopomofo",0x3127,"ibreve",0x012d,"icaron",0x01d0,"icircle",0x24d8,"icircumflex",0x00ee,"icyrillic",0x0456,"idblgrave",0x0209,"ideographearthcircle",0x328f,"ideographfirecircle",0x328b,"ideographicallianceparen",0x323f,"ideographiccallparen",0x323a,"ideographiccentrecircle",0x32a5,"ideographicclose",0x3006,"ideographiccomma",0x3001,"ideographiccommaleft",0xff64,"ideographiccongratulationparen",0x3237,"ideographiccorrectcircle",0x32a3,"ideographicearthparen",0x322f,"ideographicenterpriseparen",0x323d,"ideographicexcellentcircle",0x329d,"ideographicfestivalparen",0x3240,"ideographicfinancialcircle",0x3296,"ideographicfinancialparen",0x3236,"ideographicfireparen",0x322b,"ideographichaveparen",0x3232,"ideographichighcircle",0x32a4,"ideographiciterationmark",0x3005,"ideographiclaborcircle",0x3298,"ideographiclaborparen",0x3238,"ideographicleftcircle",0x32a7,"ideographiclowcircle",0x32a6,"ideographicmedicinecircle",0x32a9,"ideographicmetalparen",0x322e,"ideographicmoonparen",0x322a,"ideographicnameparen",0x3234,"ideographicperiod",0x3002,"ideographicprintcircle",0x329e,"ideographicreachparen",0x3243,"ideographicrepresentparen",0x3239,"ideographicresourceparen",0x323e,"ideographicrightcircle",0x32a8,"ideographicsecretcircle",0x3299,"ideographicselfparen",0x3242,"ideographicsocietyparen",0x3233,"ideographicspace",0x3000,"ideographicspecialparen",0x3235,"ideographicstockparen",0x3231,"ideographicstudyparen",0x323b,"ideographicsunparen",0x3230,"ideographicsuperviseparen",0x323c,"ideographicwaterparen",0x322c,"ideographicwoodparen",0x322d,"ideographiczero",0x3007,"ideographmetalcircle",0x328e,"ideographmooncircle",0x328a,"ideographnamecircle",0x3294,"ideographsuncircle",0x3290,"ideographwatercircle",0x328c,"ideographwoodcircle",0x328d,"ideva",0x0907,"idieresis",0x00ef,"idieresisacute",0x1e2f,"idieresiscyrillic",0x04e5,"idotbelow",0x1ecb,"iebrevecyrillic",0x04d7,"iecyrillic",0x0435,"ieungacirclekorean",0x3275,"ieungaparenkorean",0x3215,"ieungcirclekorean",0x3267,"ieungkorean",0x3147,"ieungparenkorean",0x3207,"igrave",0x00ec,"igujarati",0x0a87,"igurmukhi",0x0a07,"ihiragana",0x3044,"ihookabove",0x1ec9,"iibengali",0x0988,"iicyrillic",0x0438,"iideva",0x0908,"iigujarati",0x0a88,"iigurmukhi",0x0a08,"iimatragurmukhi",0x0a40,"iinvertedbreve",0x020b,"iishortcyrillic",0x0439,"iivowelsignbengali",0x09c0,"iivowelsigndeva",0x0940,"iivowelsigngujarati",0x0ac0,"ij",0x0133,"ikatakana",0x30a4,"ikatakanahalfwidth",0xff72,"ikorean",0x3163,"ilde",0x02dc,"iluyhebrew",0x05ac,"imacron",0x012b,"imacroncyrillic",0x04e3,"imageorapproximatelyequal",0x2253,"imatragurmukhi",0x0a3f,"imonospace",0xff49,"increment",0x2206,"infinity",0x221e,"iniarmenian",0x056b,"integral",0x222b,"integralbottom",0x2321,"integralbt",0x2321,"integralex",0xf8f5,"integraltop",0x2320,"integraltp",0x2320,"intersection",0x2229,"intisquare",0x3305,"invbullet",0x25d8,"invcircle",0x25d9,"invsmileface",0x263b,"iocyrillic",0x0451,"iogonek",0x012f,"iota",0x03b9,"iotadieresis",0x03ca,"iotadieresistonos",0x0390,"iotalatin",0x0269,"iotatonos",0x03af,"iparen",0x24a4,"irigurmukhi",0x0a72,"ismallhiragana",0x3043,"ismallkatakana",0x30a3,"ismallkatakanahalfwidth",0xff68,"issharbengali",0x09fa,"istroke",0x0268,"isuperior",0xf6ed,"iterationhiragana",0x309d,"iterationkatakana",0x30fd,"itilde",0x0129,"itildebelow",0x1e2d,"iubopomofo",0x3129,"iucyrillic",0x044e,"ivowelsignbengali",0x09bf,"ivowelsigndeva",0x093f,"ivowelsigngujarati",0x0abf,"izhitsacyrillic",0x0475,"izhitsadblgravecyrillic",0x0477,"j",0x006a,"jaarmenian",0x0571,"jabengali",0x099c,"jadeva",0x091c,"jagujarati",0x0a9c,"jagurmukhi",0x0a1c,"jbopomofo",0x3110,"jcaron",0x01f0,"jcircle",0x24d9,"jcircumflex",0x0135,"jcrossedtail",0x029d,"jdotlessstroke",0x025f,"jecyrillic",0x0458,"jeemarabic",0x062c,"jeemfinalarabic",0xfe9e,"jeeminitialarabic",0xfe9f,"jeemmedialarabic",0xfea0,"jeharabic",0x0698,"jehfinalarabic",0xfb8b,"jhabengali",0x099d,"jhadeva",0x091d,"jhagujarati",0x0a9d,"jhagurmukhi",0x0a1d,"jheharmenian",0x057b,"jis",0x3004,"jmonospace",0xff4a,"jparen",0x24a5,"jsuperior",0x02b2,"k",0x006b,"kabashkircyrillic",0x04a1,"kabengali",0x0995,"kacute",0x1e31,"kacyrillic",0x043a,"kadescendercyrillic",0x049b,"kadeva",0x0915,"kaf",0x05db,"kafarabic",0x0643,"kafdagesh",0xfb3b,"kafdageshhebrew",0xfb3b,"kaffinalarabic",0xfeda,"kafhebrew",0x05db,"kafinitialarabic",0xfedb,"kafmedialarabic",0xfedc,"kafrafehebrew",0xfb4d,"kagujarati",0x0a95,"kagurmukhi",0x0a15,"kahiragana",0x304b,"kahookcyrillic",0x04c4,"kakatakana",0x30ab,"kakatakanahalfwidth",0xff76,"kappa",0x03ba,"kappasymbolgreek",0x03f0,"kapyeounmieumkorean",0x3171,"kapyeounphieuphkorean",0x3184,"kapyeounpieupkorean",0x3178,"kapyeounssangpieupkorean",0x3179,"karoriisquare",0x330d,"kashidaautoarabic",0x0640,"kashidaautonosidebearingarabic",0x0640,"kasmallkatakana",0x30f5,"kasquare",0x3384,"kasraarabic",0x0650,"kasratanarabic",0x064d,"kastrokecyrillic",0x049f,"katahiraprolongmarkhalfwidth",0xff70,"kaverticalstrokecyrillic",0x049d,"kbopomofo",0x310e,"kcalsquare",0x3389,"kcaron",0x01e9,"kcedilla",0x0137,"kcircle",0x24da,"kcommaaccent",0x0137,"kdotbelow",0x1e33,"keharmenian",0x0584,"kehiragana",0x3051,"kekatakana",0x30b1,"kekatakanahalfwidth",0xff79,"kenarmenian",0x056f,"kesmallkatakana",0x30f6,"kgreenlandic",0x0138,"khabengali",0x0996,"khacyrillic",0x0445,"khadeva",0x0916,"khagujarati",0x0a96,"khagurmukhi",0x0a16,"khaharabic",0x062e,"khahfinalarabic",0xfea6,"khahinitialarabic",0xfea7,"khahmedialarabic",0xfea8,"kheicoptic",0x03e7,"khhadeva",0x0959,"khhagurmukhi",0x0a59,"khieukhacirclekorean",0x3278,"khieukhaparenkorean",0x3218,"khieukhcirclekorean",0x326a,"khieukhkorean",0x314b,"khieukhparenkorean",0x320a,"khokhaithai",0x0e02,"khokhonthai",0x0e05,"khokhuatthai",0x0e03,"khokhwaithai",0x0e04,"khomutthai",0x0e5b,"khook",0x0199,"khorakhangthai",0x0e06,"khzsquare",0x3391,"kihiragana",0x304d,"kikatakana",0x30ad,"kikatakanahalfwidth",0xff77,"kiroguramusquare",0x3315,"kiromeetorusquare",0x3316,"kirosquare",0x3314,"kiyeokacirclekorean",0x326e,"kiyeokaparenkorean",0x320e,"kiyeokcirclekorean",0x3260,"kiyeokkorean",0x3131,"kiyeokparenkorean",0x3200,"kiyeoksioskorean",0x3133,"kjecyrillic",0x045c,"klinebelow",0x1e35,"klsquare",0x3398,"kmcubedsquare",0x33a6,"kmonospace",0xff4b,"kmsquaredsquare",0x33a2,"kohiragana",0x3053,"kohmsquare",0x33c0,"kokaithai",0x0e01,"kokatakana",0x30b3,"kokatakanahalfwidth",0xff7a,"kooposquare",0x331e,"koppacyrillic",0x0481,"koreanstandardsymbol",0x327f,"koroniscmb",0x0343,"kparen",0x24a6,"kpasquare",0x33aa,"ksicyrillic",0x046f,"ktsquare",0x33cf,"kturned",0x029e,"kuhiragana",0x304f,"kukatakana",0x30af,"kukatakanahalfwidth",0xff78,"kvsquare",0x33b8,"kwsquare",0x33be,"l",0x006c,"labengali",0x09b2,"lacute",0x013a,"ladeva",0x0932,"lagujarati",0x0ab2,"lagurmukhi",0x0a32,"lakkhangyaothai",0x0e45,"lamaleffinalarabic",0xfefc,"lamalefhamzaabovefinalarabic",0xfef8,"lamalefhamzaaboveisolatedarabic",0xfef7,"lamalefhamzabelowfinalarabic",0xfefa,"lamalefhamzabelowisolatedarabic",0xfef9,"lamalefisolatedarabic",0xfefb,"lamalefmaddaabovefinalarabic",0xfef6,"lamalefmaddaaboveisolatedarabic",0xfef5,"lamarabic",0x0644,"lambda",0x03bb,"lambdastroke",0x019b,"lamed",0x05dc,"lameddagesh",0xfb3c,"lameddageshhebrew",0xfb3c,"lamedhebrew",0x05dc,"lamfinalarabic",0xfede,"lamhahinitialarabic",0xfcca,"laminitialarabic",0xfedf,"lamjeeminitialarabic",0xfcc9,"lamkhahinitialarabic",0xfccb,"lamlamhehisolatedarabic",0xfdf2,"lammedialarabic",0xfee0,"lammeemhahinitialarabic",0xfd88,"lammeeminitialarabic",0xfccc,"largecircle",0x25ef,"lbar",0x019a,"lbelt",0x026c,"lbopomofo",0x310c,"lcaron",0x013e,"lcedilla",0x013c,"lcircle",0x24db,"lcircumflexbelow",0x1e3d,"lcommaaccent",0x013c,"ldot",0x0140,"ldotaccent",0x0140,"ldotbelow",0x1e37,"ldotbelowmacron",0x1e39,"leftangleabovecmb",0x031a,"lefttackbelowcmb",0x0318,"less",0x003c,"lessequal",0x2264,"lessequalorgreater",0x22da,"lessmonospace",0xff1c,"lessorequivalent",0x2272,"lessorgreater",0x2276,"lessoverequal",0x2266,"lesssmall",0xfe64,"lezh",0x026e,"lfblock",0x258c,"lhookretroflex",0x026d,"lira",0x20a4,"liwnarmenian",0x056c,"lj",0x01c9,"ljecyrillic",0x0459,"ll",0xf6c0,"lladeva",0x0933,"llagujarati",0x0ab3,"llinebelow",0x1e3b,"llladeva",0x0934,"llvocalicbengali",0x09e1,"llvocalicdeva",0x0961,"llvocalicvowelsignbengali",0x09e3,"llvocalicvowelsigndeva",0x0963,"lmiddletilde",0x026b,"lmonospace",0xff4c,"lmsquare",0x33d0,"lochulathai",0x0e2c,"logicaland",0x2227,"logicalnot",0x00ac,"logicalnotreversed",0x2310,"logicalor",0x2228,"lolingthai",0x0e25,"longs",0x017f,"lowlinecenterline",0xfe4e,"lowlinecmb",0x0332,"lowlinedashed",0xfe4d,"lozenge",0x25ca,"lparen",0x24a7,"lslash",0x0142,"lsquare",0x2113,"lsuperior",0xf6ee,"ltshade",0x2591,"luthai",0x0e26,"lvocalicbengali",0x098c,"lvocalicdeva",0x090c,"lvocalicvowelsignbengali",0x09e2,"lvocalicvowelsigndeva",0x0962,"lxsquare",0x33d3,"m",0x006d,"mabengali",0x09ae,"macron",0x00af,"macronbelowcmb",0x0331,"macroncmb",0x0304,"macronlowmod",0x02cd,"macronmonospace",0xffe3,"macute",0x1e3f,"madeva",0x092e,"magujarati",0x0aae,"magurmukhi",0x0a2e,"mahapakhhebrew",0x05a4,"mahapakhlefthebrew",0x05a4,"mahiragana",0x307e,"maichattawalowleftthai",0xf895,"maichattawalowrightthai",0xf894,"maichattawathai",0x0e4b,"maichattawaupperleftthai",0xf893,"maieklowleftthai",0xf88c,"maieklowrightthai",0xf88b,"maiekthai",0x0e48,"maiekupperleftthai",0xf88a,"maihanakatleftthai",0xf884,"maihanakatthai",0x0e31,"maitaikhuleftthai",0xf889,"maitaikhuthai",0x0e47,"maitholowleftthai",0xf88f,"maitholowrightthai",0xf88e,"maithothai",0x0e49,"maithoupperleftthai",0xf88d,"maitrilowleftthai",0xf892,"maitrilowrightthai",0xf891,"maitrithai",0x0e4a,"maitriupperleftthai",0xf890,"maiyamokthai",0x0e46,"makatakana",0x30de,"makatakanahalfwidth",0xff8f,"male",0x2642,"mansyonsquare",0x3347,"maqafhebrew",0x05be,"mars",0x2642,"masoracirclehebrew",0x05af,"masquare",0x3383,"mbopomofo",0x3107,"mbsquare",0x33d4,"mcircle",0x24dc,"mcubedsquare",0x33a5,"mdotaccent",0x1e41,"mdotbelow",0x1e43,"meemarabic",0x0645,"meemfinalarabic",0xfee2,"meeminitialarabic",0xfee3,"meemmedialarabic",0xfee4,"meemmeeminitialarabic",0xfcd1,"meemmeemisolatedarabic",0xfc48,"meetorusquare",0x334d,"mehiragana",0x3081,"meizierasquare",0x337e,"mekatakana",0x30e1,"mekatakanahalfwidth",0xff92,"mem",0x05de,"memdagesh",0xfb3e,"memdageshhebrew",0xfb3e,"memhebrew",0x05de,"menarmenian",0x0574,"merkhahebrew",0x05a5,"merkhakefulahebrew",0x05a6,"merkhakefulalefthebrew",0x05a6,"merkhalefthebrew",0x05a5,"mhook",0x0271,"mhzsquare",0x3392,"middledotkatakanahalfwidth",0xff65,"middot",0x00b7,"mieumacirclekorean",0x3272,"mieumaparenkorean",0x3212,"mieumcirclekorean",0x3264,"mieumkorean",0x3141,"mieumpansioskorean",0x3170,"mieumparenkorean",0x3204,"mieumpieupkorean",0x316e,"mieumsioskorean",0x316f,"mihiragana",0x307f,"mikatakana",0x30df,"mikatakanahalfwidth",0xff90,"minus",0x2212,"minusbelowcmb",0x0320,"minuscircle",0x2296,"minusmod",0x02d7,"minusplus",0x2213,"minute",0x2032,"miribaarusquare",0x334a,"mirisquare",0x3349,"mlonglegturned",0x0270,"mlsquare",0x3396,"mmcubedsquare",0x33a3,"mmonospace",0xff4d,"mmsquaredsquare",0x339f,"mohiragana",0x3082,"mohmsquare",0x33c1,"mokatakana",0x30e2,"mokatakanahalfwidth",0xff93,"molsquare",0x33d6,"momathai",0x0e21,"moverssquare",0x33a7,"moverssquaredsquare",0x33a8,"mparen",0x24a8,"mpasquare",0x33ab,"mssquare",0x33b3,"msuperior",0xf6ef,"mturned",0x026f,"mu",0x00b5,"mu1",0x00b5,"muasquare",0x3382,"muchgreater",0x226b,"muchless",0x226a,"mufsquare",0x338c,"mugreek",0x03bc,"mugsquare",0x338d,"muhiragana",0x3080,"mukatakana",0x30e0,"mukatakanahalfwidth",0xff91,"mulsquare",0x3395,"multiply",0x00d7,"mumsquare",0x339b,"munahhebrew",0x05a3,"munahlefthebrew",0x05a3,"musicalnote",0x266a,"musicalnotedbl",0x266b,"musicflatsign",0x266d,"musicsharpsign",0x266f,"mussquare",0x33b2,"muvsquare",0x33b6,"muwsquare",0x33bc,"mvmegasquare",0x33b9,"mvsquare",0x33b7,"mwmegasquare",0x33bf,"mwsquare",0x33bd,"n",0x006e,"nabengali",0x09a8,"nabla",0x2207,"nacute",0x0144,"nadeva",0x0928,"nagujarati",0x0aa8,"nagurmukhi",0x0a28,"nahiragana",0x306a,"nakatakana",0x30ca,"nakatakanahalfwidth",0xff85,"napostrophe",0x0149,"nasquare",0x3381,"nbopomofo",0x310b,"nbspace",0x00a0,"ncaron",0x0148,"ncedilla",0x0146,"ncircle",0x24dd,"ncircumflexbelow",0x1e4b,"ncommaaccent",0x0146,"ndotaccent",0x1e45,"ndotbelow",0x1e47,"nehiragana",0x306d,"nekatakana",0x30cd,"nekatakanahalfwidth",0xff88,"newsheqelsign",0x20aa,"nfsquare",0x338b,"ngabengali",0x0999,"ngadeva",0x0919,"ngagujarati",0x0a99,"ngagurmukhi",0x0a19,"ngonguthai",0x0e07,"nhiragana",0x3093,"nhookleft",0x0272,"nhookretroflex",0x0273,"nieunacirclekorean",0x326f,"nieunaparenkorean",0x320f,"nieuncieuckorean",0x3135,"nieuncirclekorean",0x3261,"nieunhieuhkorean",0x3136,"nieunkorean",0x3134,"nieunpansioskorean",0x3168,"nieunparenkorean",0x3201,"nieunsioskorean",0x3167,"nieuntikeutkorean",0x3166,"nihiragana",0x306b,"nikatakana",0x30cb,"nikatakanahalfwidth",0xff86,"nikhahitleftthai",0xf899,"nikhahitthai",0x0e4d,"nine",0x0039,"ninearabic",0x0669,"ninebengali",0x09ef,"ninecircle",0x2468,"ninecircleinversesansserif",0x2792,"ninedeva",0x096f,"ninegujarati",0x0aef,"ninegurmukhi",0x0a6f,"ninehackarabic",0x0669,"ninehangzhou",0x3029,"nineideographicparen",0x3228,"nineinferior",0x2089,"ninemonospace",0xff19,"nineoldstyle",0xf739,"nineparen",0x247c,"nineperiod",0x2490,"ninepersian",0x06f9,"nineroman",0x2178,"ninesuperior",0x2079,"nineteencircle",0x2472,"nineteenparen",0x2486,"nineteenperiod",0x249a,"ninethai",0x0e59,"nj",0x01cc,"njecyrillic",0x045a,"nkatakana",0x30f3,"nkatakanahalfwidth",0xff9d,"nlegrightlong",0x019e,"nlinebelow",0x1e49,"nmonospace",0xff4e,"nmsquare",0x339a,"nnabengali",0x09a3,"nnadeva",0x0923,"nnagujarati",0x0aa3,"nnagurmukhi",0x0a23,"nnnadeva",0x0929,"nohiragana",0x306e,"nokatakana",0x30ce,"nokatakanahalfwidth",0xff89,"nonbreakingspace",0x00a0,"nonenthai",0x0e13,"nonuthai",0x0e19,"noonarabic",0x0646,"noonfinalarabic",0xfee6,"noonghunnaarabic",0x06ba,"noonghunnafinalarabic",0xfb9f,"nooninitialarabic",0xfee7,"noonjeeminitialarabic",0xfcd2,"noonjeemisolatedarabic",0xfc4b,"noonmedialarabic",0xfee8,"noonmeeminitialarabic",0xfcd5,"noonmeemisolatedarabic",0xfc4e,"noonnoonfinalarabic",0xfc8d,"notcontains",0x220c,"notelement",0x2209,"notelementof",0x2209,"notequal",0x2260,"notgreater",0x226f,"notgreaternorequal",0x2271,"notgreaternorless",0x2279,"notidentical",0x2262,"notless",0x226e,"notlessnorequal",0x2270,"notparallel",0x2226,"notprecedes",0x2280,"notsubset",0x2284,"notsucceeds",0x2281,"notsuperset",0x2285,"nowarmenian",0x0576,"nparen",0x24a9,"nssquare",0x33b1,"nsuperior",0x207f,"ntilde",0x00f1,"nu",0x03bd,"nuhiragana",0x306c,"nukatakana",0x30cc,"nukatakanahalfwidth",0xff87,"nuktabengali",0x09bc,"nuktadeva",0x093c,"nuktagujarati",0x0abc,"nuktagurmukhi",0x0a3c,"numbersign",0x0023,"numbersignmonospace",0xff03,"numbersignsmall",0xfe5f,"numeralsigngreek",0x0374,"numeralsignlowergreek",0x0375,"numero",0x2116,"nun",0x05e0,"nundagesh",0xfb40,"nundageshhebrew",0xfb40,"nunhebrew",0x05e0,"nvsquare",0x33b5,"nwsquare",0x33bb,"nyabengali",0x099e,"nyadeva",0x091e,"nyagujarati",0x0a9e,"nyagurmukhi",0x0a1e,"o",0x006f,"oacute",0x00f3,"oangthai",0x0e2d,"obarred",0x0275,"obarredcyrillic",0x04e9,"obarreddieresiscyrillic",0x04eb,"obengali",0x0993,"obopomofo",0x311b,"obreve",0x014f,"ocandradeva",0x0911,"ocandragujarati",0x0a91,"ocandravowelsigndeva",0x0949,"ocandravowelsigngujarati",0x0ac9,"ocaron",0x01d2,"ocircle",0x24de,"ocircumflex",0x00f4,"ocircumflexacute",0x1ed1,"ocircumflexdotbelow",0x1ed9,"ocircumflexgrave",0x1ed3,"ocircumflexhookabove",0x1ed5,"ocircumflextilde",0x1ed7,"ocyrillic",0x043e,"odblacute",0x0151,"odblgrave",0x020d,"odeva",0x0913,"odieresis",0x00f6,"odieresiscyrillic",0x04e7,"odotbelow",0x1ecd,"oe",0x0153,"oekorean",0x315a,"ogonek",0x02db,"ogonekcmb",0x0328,"ograve",0x00f2,"ogujarati",0x0a93,"oharmenian",0x0585,"ohiragana",0x304a,"ohookabove",0x1ecf,"ohorn",0x01a1,"ohornacute",0x1edb,"ohorndotbelow",0x1ee3,"ohorngrave",0x1edd,"ohornhookabove",0x1edf,"ohorntilde",0x1ee1,"ohungarumlaut",0x0151,"oi",0x01a3,"oinvertedbreve",0x020f,"okatakana",0x30aa,"okatakanahalfwidth",0xff75,"okorean",0x3157,"olehebrew",0x05ab,"omacron",0x014d,"omacronacute",0x1e53,"omacrongrave",0x1e51,"omdeva",0x0950,"omega",0x03c9,"omega1",0x03d6,"omegacyrillic",0x0461,"omegalatinclosed",0x0277,"omegaroundcyrillic",0x047b,"omegatitlocyrillic",0x047d,"omegatonos",0x03ce,"omgujarati",0x0ad0,"omicron",0x03bf,"omicrontonos",0x03cc,"omonospace",0xff4f,"one",0x0031,"onearabic",0x0661,"onebengali",0x09e7,"onecircle",0x2460,"onecircleinversesansserif",0x278a,"onedeva",0x0967,"onedotenleader",0x2024,"oneeighth",0x215b,"onefitted",0xf6dc,"onegujarati",0x0ae7,"onegurmukhi",0x0a67,"onehackarabic",0x0661,"onehalf",0x00bd,"onehangzhou",0x3021,"oneideographicparen",0x3220,"oneinferior",0x2081,"onemonospace",0xff11,"onenumeratorbengali",0x09f4,"oneoldstyle",0xf731,"oneparen",0x2474,"oneperiod",0x2488,"onepersian",0x06f1,"onequarter",0x00bc,"oneroman",0x2170,"onesuperior",0x00b9,"onethai",0x0e51,"onethird",0x2153,"oogonek",0x01eb,"oogonekmacron",0x01ed,"oogurmukhi",0x0a13,"oomatragurmukhi",0x0a4b,"oopen",0x0254,"oparen",0x24aa,"openbullet",0x25e6,"option",0x2325,"ordfeminine",0x00aa,"ordmasculine",0x00ba,"orthogonal",0x221f,"oshortdeva",0x0912,"oshortvowelsigndeva",0x094a,"oslash",0x00f8,"oslashacute",0x01ff,"osmallhiragana",0x3049,"osmallkatakana",0x30a9,"osmallkatakanahalfwidth",0xff6b,"ostrokeacute",0x01ff,"osuperior",0xf6f0,"otcyrillic",0x047f,"otilde",0x00f5,"otildeacute",0x1e4d,"otildedieresis",0x1e4f,"oubopomofo",0x3121,"overline",0x203e,"overlinecenterline",0xfe4a,"overlinecmb",0x0305,"overlinedashed",0xfe49,"overlinedblwavy",0xfe4c,"overlinewavy",0xfe4b,"overscore",0x00af,"ovowelsignbengali",0x09cb,"ovowelsigndeva",0x094b,"ovowelsigngujarati",0x0acb,"p",0x0070,"paampssquare",0x3380,"paasentosquare",0x332b,"pabengali",0x09aa,"pacute",0x1e55,"padeva",0x092a,"pagedown",0x21df,"pageup",0x21de,"pagujarati",0x0aaa,"pagurmukhi",0x0a2a,"pahiragana",0x3071,"paiyannoithai",0x0e2f,"pakatakana",0x30d1,"palatalizationcyrilliccmb",0x0484,"palochkacyrillic",0x04c0,"pansioskorean",0x317f,"paragraph",0x00b6,"parallel",0x2225,"parenleft",0x0028,"parenleftaltonearabic",0xfd3e,"parenleftbt",0xf8ed,"parenleftex",0xf8ec,"parenleftinferior",0x208d,"parenleftmonospace",0xff08,"parenleftsmall",0xfe59,"parenleftsuperior",0x207d,"parenlefttp",0xf8eb,"parenleftvertical",0xfe35,"parenright",0x0029,"parenrightaltonearabic",0xfd3f,"parenrightbt",0xf8f8,"parenrightex",0xf8f7,"parenrightinferior",0x208e,"parenrightmonospace",0xff09,"parenrightsmall",0xfe5a,"parenrightsuperior",0x207e,"parenrighttp",0xf8f6,"parenrightvertical",0xfe36,"partialdiff",0x2202,"paseqhebrew",0x05c0,"pashtahebrew",0x0599,"pasquare",0x33a9,"patah",0x05b7,"patah11",0x05b7,"patah1d",0x05b7,"patah2a",0x05b7,"patahhebrew",0x05b7,"patahnarrowhebrew",0x05b7,"patahquarterhebrew",0x05b7,"patahwidehebrew",0x05b7,"pazerhebrew",0x05a1,"pbopomofo",0x3106,"pcircle",0x24df,"pdotaccent",0x1e57,"pe",0x05e4,"pecyrillic",0x043f,"pedagesh",0xfb44,"pedageshhebrew",0xfb44,"peezisquare",0x333b,"pefinaldageshhebrew",0xfb43,"peharabic",0x067e,"peharmenian",0x057a,"pehebrew",0x05e4,"pehfinalarabic",0xfb57,"pehinitialarabic",0xfb58,"pehiragana",0x307a,"pehmedialarabic",0xfb59,"pekatakana",0x30da,"pemiddlehookcyrillic",0x04a7,"perafehebrew",0xfb4e,"percent",0x0025,"percentarabic",0x066a,"percentmonospace",0xff05,"percentsmall",0xfe6a,"period",0x002e,"periodarmenian",0x0589,"periodcentered",0x00b7,"periodhalfwidth",0xff61,"periodinferior",0xf6e7,"periodmonospace",0xff0e,"periodsmall",0xfe52,"periodsuperior",0xf6e8,"perispomenigreekcmb",0x0342,"perpendicular",0x22a5,"perthousand",0x2030,"peseta",0x20a7,"pfsquare",0x338a,"phabengali",0x09ab,"phadeva",0x092b,"phagujarati",0x0aab,"phagurmukhi",0x0a2b,"phi",0x03c6,"phi1",0x03d5,"phieuphacirclekorean",0x327a,"phieuphaparenkorean",0x321a,"phieuphcirclekorean",0x326c,"phieuphkorean",0x314d,"phieuphparenkorean",0x320c,"philatin",0x0278,"phinthuthai",0x0e3a,"phisymbolgreek",0x03d5,"phook",0x01a5,"phophanthai",0x0e1e,"phophungthai",0x0e1c,"phosamphaothai",0x0e20,"pi",0x03c0,"pieupacirclekorean",0x3273,"pieupaparenkorean",0x3213,"pieupcieuckorean",0x3176,"pieupcirclekorean",0x3265,"pieupkiyeokkorean",0x3172,"pieupkorean",0x3142,"pieupparenkorean",0x3205,"pieupsioskiyeokkorean",0x3174,"pieupsioskorean",0x3144,"pieupsiostikeutkorean",0x3175,"pieupthieuthkorean",0x3177,"pieuptikeutkorean",0x3173,"pihiragana",0x3074,"pikatakana",0x30d4,"pisymbolgreek",0x03d6,"piwrarmenian",0x0583,"plus",0x002b,"plusbelowcmb",0x031f,"pluscircle",0x2295,"plusminus",0x00b1,"plusmod",0x02d6,"plusmonospace",0xff0b,"plussmall",0xfe62,"plussuperior",0x207a,"pmonospace",0xff50,"pmsquare",0x33d8,"pohiragana",0x307d,"pointingindexdownwhite",0x261f,"pointingindexleftwhite",0x261c,"pointingindexrightwhite",0x261e,"pointingindexupwhite",0x261d,"pokatakana",0x30dd,"poplathai",0x0e1b,"postalmark",0x3012,"postalmarkface",0x3020,"pparen",0x24ab,"precedes",0x227a,"prescription",0x211e,"primemod",0x02b9,"primereversed",0x2035,"product",0x220f,"projective",0x2305,"prolongedkana",0x30fc,"propellor",0x2318,"propersubset",0x2282,"propersuperset",0x2283,"proportion",0x2237,"proportional",0x221d,"psi",0x03c8,"psicyrillic",0x0471,"psilipneumatacyrilliccmb",0x0486,"pssquare",0x33b0,"puhiragana",0x3077,"pukatakana",0x30d7,"pvsquare",0x33b4,"pwsquare",0x33ba,"q",0x0071,"qadeva",0x0958,"qadmahebrew",0x05a8,"qafarabic",0x0642,"qaffinalarabic",0xfed6,"qafinitialarabic",0xfed7,"qafmedialarabic",0xfed8,"qamats",0x05b8,"qamats10",0x05b8,"qamats1a",0x05b8,"qamats1c",0x05b8,"qamats27",0x05b8,"qamats29",0x05b8,"qamats33",0x05b8,"qamatsde",0x05b8,"qamatshebrew",0x05b8,"qamatsnarrowhebrew",0x05b8,"qamatsqatanhebrew",0x05b8,"qamatsqatannarrowhebrew",0x05b8,"qamatsqatanquarterhebrew",0x05b8,"qamatsqatanwidehebrew",0x05b8,"qamatsquarterhebrew",0x05b8,"qamatswidehebrew",0x05b8,"qarneyparahebrew",0x059f,"qbopomofo",0x3111,"qcircle",0x24e0,"qhook",0x02a0,"qmonospace",0xff51,"qof",0x05e7,"qofdagesh",0xfb47,"qofdageshhebrew",0xfb47,"qofhebrew",0x05e7,"qparen",0x24ac,"quarternote",0x2669,"qubuts",0x05bb,"qubuts18",0x05bb,"qubuts25",0x05bb,"qubuts31",0x05bb,"qubutshebrew",0x05bb,"qubutsnarrowhebrew",0x05bb,"qubutsquarterhebrew",0x05bb,"qubutswidehebrew",0x05bb,"question",0x003f,"questionarabic",0x061f,"questionarmenian",0x055e,"questiondown",0x00bf,"questiondownsmall",0xf7bf,"questiongreek",0x037e,"questionmonospace",0xff1f,"questionsmall",0xf73f,"quotedbl",0x0022,"quotedblbase",0x201e,"quotedblleft",0x201c,"quotedblmonospace",0xff02,"quotedblprime",0x301e,"quotedblprimereversed",0x301d,"quotedblright",0x201d,"quoteleft",0x2018,"quoteleftreversed",0x201b,"quotereversed",0x201b,"quoteright",0x2019,"quoterightn",0x0149,"quotesinglbase",0x201a,"quotesingle",0x0027,"quotesinglemonospace",0xff07,"r",0x0072,"raarmenian",0x057c,"rabengali",0x09b0,"racute",0x0155,"radeva",0x0930,"radical",0x221a,"radicalex",0xf8e5,"radoverssquare",0x33ae,"radoverssquaredsquare",0x33af,"radsquare",0x33ad,"rafe",0x05bf,"rafehebrew",0x05bf,"ragujarati",0x0ab0,"ragurmukhi",0x0a30,"rahiragana",0x3089,"rakatakana",0x30e9,"rakatakanahalfwidth",0xff97,"ralowerdiagonalbengali",0x09f1,"ramiddlediagonalbengali",0x09f0,"ramshorn",0x0264,"ratio",0x2236,"rbopomofo",0x3116,"rcaron",0x0159,"rcedilla",0x0157,"rcircle",0x24e1,"rcommaaccent",0x0157,"rdblgrave",0x0211,"rdotaccent",0x1e59,"rdotbelow",0x1e5b,"rdotbelowmacron",0x1e5d,"referencemark",0x203b,"reflexsubset",0x2286,"reflexsuperset",0x2287,"registered",0x00ae,"registersans",0xf8e8,"registerserif",0xf6da,"reharabic",0x0631,"reharmenian",0x0580,"rehfinalarabic",0xfeae,"rehiragana",0x308c,"rekatakana",0x30ec,"rekatakanahalfwidth",0xff9a,"resh",0x05e8,"reshdageshhebrew",0xfb48,"reshhebrew",0x05e8,"reversedtilde",0x223d,"reviahebrew",0x0597,"reviamugrashhebrew",0x0597,"revlogicalnot",0x2310,"rfishhook",0x027e,"rfishhookreversed",0x027f,"rhabengali",0x09dd,"rhadeva",0x095d,"rho",0x03c1,"rhook",0x027d,"rhookturned",0x027b,"rhookturnedsuperior",0x02b5,"rhosymbolgreek",0x03f1,"rhotichookmod",0x02de,"rieulacirclekorean",0x3271,"rieulaparenkorean",0x3211,"rieulcirclekorean",0x3263,"rieulhieuhkorean",0x3140,"rieulkiyeokkorean",0x313a,"rieulkiyeoksioskorean",0x3169,"rieulkorean",0x3139,"rieulmieumkorean",0x313b,"rieulpansioskorean",0x316c,"rieulparenkorean",0x3203,"rieulphieuphkorean",0x313f,"rieulpieupkorean",0x313c,"rieulpieupsioskorean",0x316b,"rieulsioskorean",0x313d,"rieulthieuthkorean",0x313e,"rieultikeutkorean",0x316a,"rieulyeorinhieuhkorean",0x316d,"rightangle",0x221f,"righttackbelowcmb",0x0319,"righttriangle",0x22bf,"rihiragana",0x308a,"rikatakana",0x30ea,"rikatakanahalfwidth",0xff98,"ring",0x02da,"ringbelowcmb",0x0325,"ringcmb",0x030a,"ringhalfleft",0x02bf,"ringhalfleftarmenian",0x0559,"ringhalfleftbelowcmb",0x031c,"ringhalfleftcentered",0x02d3,"ringhalfright",0x02be,"ringhalfrightbelowcmb",0x0339,"ringhalfrightcentered",0x02d2,"rinvertedbreve",0x0213,"rittorusquare",0x3351,"rlinebelow",0x1e5f,"rlongleg",0x027c,"rlonglegturned",0x027a,"rmonospace",0xff52,"rohiragana",0x308d,"rokatakana",0x30ed,"rokatakanahalfwidth",0xff9b,"roruathai",0x0e23,"rparen",0x24ad,"rrabengali",0x09dc,"rradeva",0x0931,"rragurmukhi",0x0a5c,"rreharabic",0x0691,"rrehfinalarabic",0xfb8d,"rrvocalicbengali",0x09e0,"rrvocalicdeva",0x0960,"rrvocalicgujarati",0x0ae0,"rrvocalicvowelsignbengali",0x09c4,"rrvocalicvowelsigndeva",0x0944,"rrvocalicvowelsigngujarati",0x0ac4,"rsuperior",0xf6f1,"rtblock",0x2590,"rturned",0x0279,"rturnedsuperior",0x02b4,"ruhiragana",0x308b,"rukatakana",0x30eb,"rukatakanahalfwidth",0xff99,"rupeemarkbengali",0x09f2,"rupeesignbengali",0x09f3,"rupiah",0xf6dd,"ruthai",0x0e24,"rvocalicbengali",0x098b,"rvocalicdeva",0x090b,"rvocalicgujarati",0x0a8b,"rvocalicvowelsignbengali",0x09c3,"rvocalicvowelsigndeva",0x0943,"rvocalicvowelsigngujarati",0x0ac3,"s",0x0073,"sabengali",0x09b8,"sacute",0x015b,"sacutedotaccent",0x1e65,"sadarabic",0x0635,"sadeva",0x0938,"sadfinalarabic",0xfeba,"sadinitialarabic",0xfebb,"sadmedialarabic",0xfebc,"sagujarati",0x0ab8,"sagurmukhi",0x0a38,"sahiragana",0x3055,"sakatakana",0x30b5,"sakatakanahalfwidth",0xff7b,"sallallahoualayhewasallamarabic",0xfdfa,"samekh",0x05e1,"samekhdagesh",0xfb41,"samekhdageshhebrew",0xfb41,"samekhhebrew",0x05e1,"saraaathai",0x0e32,"saraaethai",0x0e41,"saraaimaimalaithai",0x0e44,"saraaimaimuanthai",0x0e43,"saraamthai",0x0e33,"saraathai",0x0e30,"saraethai",0x0e40,"saraiileftthai",0xf886,"saraiithai",0x0e35,"saraileftthai",0xf885,"saraithai",0x0e34,"saraothai",0x0e42,"saraueeleftthai",0xf888,"saraueethai",0x0e37,"saraueleftthai",0xf887,"sarauethai",0x0e36,"sarauthai",0x0e38,"sarauuthai",0x0e39,"sbopomofo",0x3119,"scaron",0x0161,"scarondotaccent",0x1e67,"scedilla",0x015f,"schwa",0x0259,"schwacyrillic",0x04d9,"schwadieresiscyrillic",0x04db,"schwahook",0x025a,"scircle",0x24e2,"scircumflex",0x015d,"scommaaccent",0x0219,"sdotaccent",0x1e61,"sdotbelow",0x1e63,"sdotbelowdotaccent",0x1e69,"seagullbelowcmb",0x033c,"second",0x2033,"secondtonechinese",0x02ca,"section",0x00a7,"seenarabic",0x0633,"seenfinalarabic",0xfeb2,"seeninitialarabic",0xfeb3,"seenmedialarabic",0xfeb4,"segol",0x05b6,"segol13",0x05b6,"segol1f",0x05b6,"segol2c",0x05b6,"segolhebrew",0x05b6,"segolnarrowhebrew",0x05b6,"segolquarterhebrew",0x05b6,"segoltahebrew",0x0592,"segolwidehebrew",0x05b6,"seharmenian",0x057d,"sehiragana",0x305b,"sekatakana",0x30bb,"sekatakanahalfwidth",0xff7e,"semicolon",0x003b,"semicolonarabic",0x061b,"semicolonmonospace",0xff1b,"semicolonsmall",0xfe54,"semivoicedmarkkana",0x309c,"semivoicedmarkkanahalfwidth",0xff9f,"sentisquare",0x3322,"sentosquare",0x3323,"seven",0x0037,"sevenarabic",0x0667,"sevenbengali",0x09ed,"sevencircle",0x2466,"sevencircleinversesansserif",0x2790,"sevendeva",0x096d,"seveneighths",0x215e,"sevengujarati",0x0aed,"sevengurmukhi",0x0a6d,"sevenhackarabic",0x0667,"sevenhangzhou",0x3027,"sevenideographicparen",0x3226,"seveninferior",0x2087,"sevenmonospace",0xff17,"sevenoldstyle",0xf737,"sevenparen",0x247a,"sevenperiod",0x248e,"sevenpersian",0x06f7,"sevenroman",0x2176,"sevensuperior",0x2077,"seventeencircle",0x2470,"seventeenparen",0x2484,"seventeenperiod",0x2498,"seventhai",0x0e57,"sfthyphen",0x00ad,"shaarmenian",0x0577,"shabengali",0x09b6,"shacyrillic",0x0448,"shaddaarabic",0x0651,"shaddadammaarabic",0xfc61,"shaddadammatanarabic",0xfc5e,"shaddafathaarabic",0xfc60,"shaddakasraarabic",0xfc62,"shaddakasratanarabic",0xfc5f,"shade",0x2592,"shadedark",0x2593,"shadelight",0x2591,"shademedium",0x2592,"shadeva",0x0936,"shagujarati",0x0ab6,"shagurmukhi",0x0a36,"shalshelethebrew",0x0593,"shbopomofo",0x3115,"shchacyrillic",0x0449,"sheenarabic",0x0634,"sheenfinalarabic",0xfeb6,"sheeninitialarabic",0xfeb7,"sheenmedialarabic",0xfeb8,"sheicoptic",0x03e3,"sheqel",0x20aa,"sheqelhebrew",0x20aa,"sheva",0x05b0,"sheva115",0x05b0,"sheva15",0x05b0,"sheva22",0x05b0,"sheva2e",0x05b0,"shevahebrew",0x05b0,"shevanarrowhebrew",0x05b0,"shevaquarterhebrew",0x05b0,"shevawidehebrew",0x05b0,"shhacyrillic",0x04bb,"shimacoptic",0x03ed,"shin",0x05e9,"shindagesh",0xfb49,"shindageshhebrew",0xfb49,"shindageshshindot",0xfb2c,"shindageshshindothebrew",0xfb2c,"shindageshsindot",0xfb2d,"shindageshsindothebrew",0xfb2d,"shindothebrew",0x05c1,"shinhebrew",0x05e9,"shinshindot",0xfb2a,"shinshindothebrew",0xfb2a,"shinsindot",0xfb2b,"shinsindothebrew",0xfb2b,"shook",0x0282,"sigma",0x03c3,"sigma1",0x03c2,"sigmafinal",0x03c2,"sigmalunatesymbolgreek",0x03f2,"sihiragana",0x3057,"sikatakana",0x30b7,"sikatakanahalfwidth",0xff7c,"siluqhebrew",0x05bd,"siluqlefthebrew",0x05bd,"similar",0x223c,"sindothebrew",0x05c2,"siosacirclekorean",0x3274,"siosaparenkorean",0x3214,"sioscieuckorean",0x317e,"sioscirclekorean",0x3266,"sioskiyeokkorean",0x317a,"sioskorean",0x3145,"siosnieunkorean",0x317b,"siosparenkorean",0x3206,"siospieupkorean",0x317d,"siostikeutkorean",0x317c,"six",0x0036,"sixarabic",0x0666,"sixbengali",0x09ec,"sixcircle",0x2465,"sixcircleinversesansserif",0x278f,"sixdeva",0x096c,"sixgujarati",0x0aec,"sixgurmukhi",0x0a6c,"sixhackarabic",0x0666,"sixhangzhou",0x3026,"sixideographicparen",0x3225,"sixinferior",0x2086,"sixmonospace",0xff16,"sixoldstyle",0xf736,"sixparen",0x2479,"sixperiod",0x248d,"sixpersian",0x06f6,"sixroman",0x2175,"sixsuperior",0x2076,"sixteencircle",0x246f,"sixteencurrencydenominatorbengali",0x09f9,"sixteenparen",0x2483,"sixteenperiod",0x2497,"sixthai",0x0e56,"slash",0x002f,"slashmonospace",0xff0f,"slong",0x017f,"slongdotaccent",0x1e9b,"smileface",0x263a,"smonospace",0xff53,"sofpasuqhebrew",0x05c3,"softhyphen",0x00ad,"softsigncyrillic",0x044c,"sohiragana",0x305d,"sokatakana",0x30bd,"sokatakanahalfwidth",0xff7f,"soliduslongoverlaycmb",0x0338,"solidusshortoverlaycmb",0x0337,"sorusithai",0x0e29,"sosalathai",0x0e28,"sosothai",0x0e0b,"sosuathai",0x0e2a,"space",0x0020,"spacehackarabic",0x0020,"spade",0x2660,"spadesuitblack",0x2660,"spadesuitwhite",0x2664,"sparen",0x24ae,"squarebelowcmb",0x033b,"squarecc",0x33c4,"squarecm",0x339d,"squarediagonalcrosshatchfill",0x25a9,"squarehorizontalfill",0x25a4,"squarekg",0x338f,"squarekm",0x339e,"squarekmcapital",0x33ce,"squareln",0x33d1,"squarelog",0x33d2,"squaremg",0x338e,"squaremil",0x33d5,"squaremm",0x339c,"squaremsquared",0x33a1,"squareorthogonalcrosshatchfill",0x25a6,"squareupperlefttolowerrightfill",0x25a7,"squareupperrighttolowerleftfill",0x25a8,"squareverticalfill",0x25a5,"squarewhitewithsmallblack",0x25a3,"srsquare",0x33db,"ssabengali",0x09b7,"ssadeva",0x0937,"ssagujarati",0x0ab7,"ssangcieuckorean",0x3149,"ssanghieuhkorean",0x3185,"ssangieungkorean",0x3180,"ssangkiyeokkorean",0x3132,"ssangnieunkorean",0x3165,"ssangpieupkorean",0x3143,"ssangsioskorean",0x3146,"ssangtikeutkorean",0x3138,"ssuperior",0xf6f2,"sterling",0x00a3,"sterlingmonospace",0xffe1,"strokelongoverlaycmb",0x0336,"strokeshortoverlaycmb",0x0335,"subset",0x2282,"subsetnotequal",0x228a,"subsetorequal",0x2286,"succeeds",0x227b,"suchthat",0x220b,"suhiragana",0x3059,"sukatakana",0x30b9,"sukatakanahalfwidth",0xff7d,"sukunarabic",0x0652,"summation",0x2211,"sun",0x263c,"superset",0x2283,"supersetnotequal",0x228b,"supersetorequal",0x2287,"svsquare",0x33dc,"syouwaerasquare",0x337c,"t",0x0074,"tabengali",0x09a4,"tackdown",0x22a4,"tackleft",0x22a3,"tadeva",0x0924,"tagujarati",0x0aa4,"tagurmukhi",0x0a24,"taharabic",0x0637,"tahfinalarabic",0xfec2,"tahinitialarabic",0xfec3,"tahiragana",0x305f,"tahmedialarabic",0xfec4,"taisyouerasquare",0x337d,"takatakana",0x30bf,"takatakanahalfwidth",0xff80,"tatweelarabic",0x0640,"tau",0x03c4,"tav",0x05ea,"tavdages",0xfb4a,"tavdagesh",0xfb4a,"tavdageshhebrew",0xfb4a,"tavhebrew",0x05ea,"tbar",0x0167,"tbopomofo",0x310a,"tcaron",0x0165,"tccurl",0x02a8,"tcedilla",0x0163,"tcheharabic",0x0686,"tchehfinalarabic",0xfb7b,"tchehinitialarabic",0xfb7c,"tchehmedialarabic",0xfb7d,"tcircle",0x24e3,"tcircumflexbelow",0x1e71,"tcommaaccent",0x0163,"tdieresis",0x1e97,"tdotaccent",0x1e6b,"tdotbelow",0x1e6d,"tecyrillic",0x0442,"tedescendercyrillic",0x04ad,"teharabic",0x062a,"tehfinalarabic",0xfe96,"tehhahinitialarabic",0xfca2,"tehhahisolatedarabic",0xfc0c,"tehinitialarabic",0xfe97,"tehiragana",0x3066,"tehjeeminitialarabic",0xfca1,"tehjeemisolatedarabic",0xfc0b,"tehmarbutaarabic",0x0629,"tehmarbutafinalarabic",0xfe94,"tehmedialarabic",0xfe98,"tehmeeminitialarabic",0xfca4,"tehmeemisolatedarabic",0xfc0e,"tehnoonfinalarabic",0xfc73,"tekatakana",0x30c6,"tekatakanahalfwidth",0xff83,"telephone",0x2121,"telephoneblack",0x260e,"telishagedolahebrew",0x05a0,"telishaqetanahebrew",0x05a9,"tencircle",0x2469,"tenideographicparen",0x3229,"tenparen",0x247d,"tenperiod",0x2491,"tenroman",0x2179,"tesh",0x02a7,"tet",0x05d8,"tetdagesh",0xfb38,"tetdageshhebrew",0xfb38,"tethebrew",0x05d8,"tetsecyrillic",0x04b5,"tevirhebrew",0x059b,"tevirlefthebrew",0x059b,"thabengali",0x09a5,"thadeva",0x0925,"thagujarati",0x0aa5,"thagurmukhi",0x0a25,"thalarabic",0x0630,"thalfinalarabic",0xfeac,"thanthakhatlowleftthai",0xf898,"thanthakhatlowrightthai",0xf897,"thanthakhatthai",0x0e4c,"thanthakhatupperleftthai",0xf896,"theharabic",0x062b,"thehfinalarabic",0xfe9a,"thehinitialarabic",0xfe9b,"thehmedialarabic",0xfe9c,"thereexists",0x2203,"therefore",0x2234,"theta",0x03b8,"theta1",0x03d1,"thetasymbolgreek",0x03d1,"thieuthacirclekorean",0x3279,"thieuthaparenkorean",0x3219,"thieuthcirclekorean",0x326b,"thieuthkorean",0x314c,"thieuthparenkorean",0x320b,"thirteencircle",0x246c,"thirteenparen",0x2480,"thirteenperiod",0x2494,"thonangmonthothai",0x0e11,"thook",0x01ad,"thophuthaothai",0x0e12,"thorn",0x00fe,"thothahanthai",0x0e17,"thothanthai",0x0e10,"thothongthai",0x0e18,"thothungthai",0x0e16,"thousandcyrillic",0x0482,"thousandsseparatorarabic",0x066c,"thousandsseparatorpersian",0x066c,"three",0x0033,"threearabic",0x0663,"threebengali",0x09e9,"threecircle",0x2462,"threecircleinversesansserif",0x278c,"threedeva",0x0969,"threeeighths",0x215c,"threegujarati",0x0ae9,"threegurmukhi",0x0a69,"threehackarabic",0x0663,"threehangzhou",0x3023,"threeideographicparen",0x3222,"threeinferior",0x2083,"threemonospace",0xff13,"threenumeratorbengali",0x09f6,"threeoldstyle",0xf733,"threeparen",0x2476,"threeperiod",0x248a,"threepersian",0x06f3,"threequarters",0x00be,"threequartersemdash",0xf6de,"threeroman",0x2172,"threesuperior",0x00b3,"threethai",0x0e53,"thzsquare",0x3394,"tihiragana",0x3061,"tikatakana",0x30c1,"tikatakanahalfwidth",0xff81,"tikeutacirclekorean",0x3270,"tikeutaparenkorean",0x3210,"tikeutcirclekorean",0x3262,"tikeutkorean",0x3137,"tikeutparenkorean",0x3202,"tilde",0x02dc,"tildebelowcmb",0x0330,"tildecmb",0x0303,"tildecomb",0x0303,"tildedoublecmb",0x0360,"tildeoperator",0x223c,"tildeoverlaycmb",0x0334,"tildeverticalcmb",0x033e,"timescircle",0x2297,"tipehahebrew",0x0596,"tipehalefthebrew",0x0596,"tippigurmukhi",0x0a70,"titlocyrilliccmb",0x0483,"tiwnarmenian",0x057f,"tlinebelow",0x1e6f,"tmonospace",0xff54,"toarmenian",0x0569,"tohiragana",0x3068,"tokatakana",0x30c8,"tokatakanahalfwidth",0xff84,"tonebarextrahighmod",0x02e5,"tonebarextralowmod",0x02e9,"tonebarhighmod",0x02e6,"tonebarlowmod",0x02e8,"tonebarmidmod",0x02e7,"tonefive",0x01bd,"tonesix",0x0185,"tonetwo",0x01a8,"tonos",0x0384,"tonsquare",0x3327,"topatakthai",0x0e0f,"tortoiseshellbracketleft",0x3014,"tortoiseshellbracketleftsmall",0xfe5d,"tortoiseshellbracketleftvertical",0xfe39,"tortoiseshellbracketright",0x3015,"tortoiseshellbracketrightsmall",0xfe5e,"tortoiseshellbracketrightvertical",0xfe3a,"totaothai",0x0e15,"tpalatalhook",0x01ab,"tparen",0x24af,"trademark",0x2122,"trademarksans",0xf8ea,"trademarkserif",0xf6db,"tretroflexhook",0x0288,"triagdn",0x25bc,"triaglf",0x25c4,"triagrt",0x25ba,"triagup",0x25b2,"ts",0x02a6,"tsadi",0x05e6,"tsadidagesh",0xfb46,"tsadidageshhebrew",0xfb46,"tsadihebrew",0x05e6,"tsecyrillic",0x0446,"tsere",0x05b5,"tsere12",0x05b5,"tsere1e",0x05b5,"tsere2b",0x05b5,"tserehebrew",0x05b5,"tserenarrowhebrew",0x05b5,"tserequarterhebrew",0x05b5,"tserewidehebrew",0x05b5,"tshecyrillic",0x045b,"tsuperior",0xf6f3,"ttabengali",0x099f,"ttadeva",0x091f,"ttagujarati",0x0a9f,"ttagurmukhi",0x0a1f,"tteharabic",0x0679,"ttehfinalarabic",0xfb67,"ttehinitialarabic",0xfb68,"ttehmedialarabic",0xfb69,"tthabengali",0x09a0,"tthadeva",0x0920,"tthagujarati",0x0aa0,"tthagurmukhi",0x0a20,"tturned",0x0287,"tuhiragana",0x3064,"tukatakana",0x30c4,"tukatakanahalfwidth",0xff82,"tusmallhiragana",0x3063,"tusmallkatakana",0x30c3,"tusmallkatakanahalfwidth",0xff6f,"twelvecircle",0x246b,"twelveparen",0x247f,"twelveperiod",0x2493,"twelveroman",0x217b,"twentycircle",0x2473,"twentyhangzhou",0x5344,"twentyparen",0x2487,"twentyperiod",0x249b,"two",0x0032,"twoarabic",0x0662,"twobengali",0x09e8,"twocircle",0x2461,"twocircleinversesansserif",0x278b,"twodeva",0x0968,"twodotenleader",0x2025,"twodotleader",0x2025,"twodotleadervertical",0xfe30,"twogujarati",0x0ae8,"twogurmukhi",0x0a68,"twohackarabic",0x0662,"twohangzhou",0x3022,"twoideographicparen",0x3221,"twoinferior",0x2082,"twomonospace",0xff12,"twonumeratorbengali",0x09f5,"twooldstyle",0xf732,"twoparen",0x2475,"twoperiod",0x2489,"twopersian",0x06f2,"tworoman",0x2171,"twostroke",0x01bb,"twosuperior",0x00b2,"twothai",0x0e52,"twothirds",0x2154,"u",0x0075,"uacute",0x00fa,"ubar",0x0289,"ubengali",0x0989,"ubopomofo",0x3128,"ubreve",0x016d,"ucaron",0x01d4,"ucircle",0x24e4,"ucircumflex",0x00fb,"ucircumflexbelow",0x1e77,"ucyrillic",0x0443,"udattadeva",0x0951,"udblacute",0x0171,"udblgrave",0x0215,"udeva",0x0909,"udieresis",0x00fc,"udieresisacute",0x01d8,"udieresisbelow",0x1e73,"udieresiscaron",0x01da,"udieresiscyrillic",0x04f1,"udieresisgrave",0x01dc,"udieresismacron",0x01d6,"udotbelow",0x1ee5,"ugrave",0x00f9,"ugujarati",0x0a89,"ugurmukhi",0x0a09,"uhiragana",0x3046,"uhookabove",0x1ee7,"uhorn",0x01b0,"uhornacute",0x1ee9,"uhorndotbelow",0x1ef1,"uhorngrave",0x1eeb,"uhornhookabove",0x1eed,"uhorntilde",0x1eef,"uhungarumlaut",0x0171,"uhungarumlautcyrillic",0x04f3,"uinvertedbreve",0x0217,"ukatakana",0x30a6,"ukatakanahalfwidth",0xff73,"ukcyrillic",0x0479,"ukorean",0x315c,"umacron",0x016b,"umacroncyrillic",0x04ef,"umacrondieresis",0x1e7b,"umatragurmukhi",0x0a41,"umonospace",0xff55,"underscore",0x005f,"underscoredbl",0x2017,"underscoremonospace",0xff3f,"underscorevertical",0xfe33,"underscorewavy",0xfe4f,"union",0x222a,"universal",0x2200,"uogonek",0x0173,"uparen",0x24b0,"upblock",0x2580,"upperdothebrew",0x05c4,"upsilon",0x03c5,"upsilondieresis",0x03cb,"upsilondieresistonos",0x03b0,"upsilonlatin",0x028a,"upsilontonos",0x03cd,"uptackbelowcmb",0x031d,"uptackmod",0x02d4,"uragurmukhi",0x0a73,"uring",0x016f,"ushortcyrillic",0x045e,"usmallhiragana",0x3045,"usmallkatakana",0x30a5,"usmallkatakanahalfwidth",0xff69,"ustraightcyrillic",0x04af,"ustraightstrokecyrillic",0x04b1,"utilde",0x0169,"utildeacute",0x1e79,"utildebelow",0x1e75,"uubengali",0x098a,"uudeva",0x090a,"uugujarati",0x0a8a,"uugurmukhi",0x0a0a,"uumatragurmukhi",0x0a42,"uuvowelsignbengali",0x09c2,"uuvowelsigndeva",0x0942,"uuvowelsigngujarati",0x0ac2,"uvowelsignbengali",0x09c1,"uvowelsigndeva",0x0941,"uvowelsigngujarati",0x0ac1,"v",0x0076,"vadeva",0x0935,"vagujarati",0x0ab5,"vagurmukhi",0x0a35,"vakatakana",0x30f7,"vav",0x05d5,"vavdagesh",0xfb35,"vavdagesh65",0xfb35,"vavdageshhebrew",0xfb35,"vavhebrew",0x05d5,"vavholam",0xfb4b,"vavholamhebrew",0xfb4b,"vavvavhebrew",0x05f0,"vavyodhebrew",0x05f1,"vcircle",0x24e5,"vdotbelow",0x1e7f,"vecyrillic",0x0432,"veharabic",0x06a4,"vehfinalarabic",0xfb6b,"vehinitialarabic",0xfb6c,"vehmedialarabic",0xfb6d,"vekatakana",0x30f9,"venus",0x2640,"verticalbar",0x007c,"verticallineabovecmb",0x030d,"verticallinebelowcmb",0x0329,"verticallinelowmod",0x02cc,"verticallinemod",0x02c8,"vewarmenian",0x057e,"vhook",0x028b,"vikatakana",0x30f8,"viramabengali",0x09cd,"viramadeva",0x094d,"viramagujarati",0x0acd,"visargabengali",0x0983,"visargadeva",0x0903,"visargagujarati",0x0a83,"vmonospace",0xff56,"voarmenian",0x0578,"voicediterationhiragana",0x309e,"voicediterationkatakana",0x30fe,"voicedmarkkana",0x309b,"voicedmarkkanahalfwidth",0xff9e,"vokatakana",0x30fa,"vparen",0x24b1,"vtilde",0x1e7d,"vturned",0x028c,"vuhiragana",0x3094,"vukatakana",0x30f4,"w",0x0077,"wacute",0x1e83,"waekorean",0x3159,"wahiragana",0x308f,"wakatakana",0x30ef,"wakatakanahalfwidth",0xff9c,"wakorean",0x3158,"wasmallhiragana",0x308e,"wasmallkatakana",0x30ee,"wattosquare",0x3357,"wavedash",0x301c,"wavyunderscorevertical",0xfe34,"wawarabic",0x0648,"wawfinalarabic",0xfeee,"wawhamzaabovearabic",0x0624,"wawhamzaabovefinalarabic",0xfe86,"wbsquare",0x33dd,"wcircle",0x24e6,"wcircumflex",0x0175,"wdieresis",0x1e85,"wdotaccent",0x1e87,"wdotbelow",0x1e89,"wehiragana",0x3091,"weierstrass",0x2118,"wekatakana",0x30f1,"wekorean",0x315e,"weokorean",0x315d,"wgrave",0x1e81,"whitebullet",0x25e6,"whitecircle",0x25cb,"whitecircleinverse",0x25d9,"whitecornerbracketleft",0x300e,"whitecornerbracketleftvertical",0xfe43,"whitecornerbracketright",0x300f,"whitecornerbracketrightvertical",0xfe44,"whitediamond",0x25c7,"whitediamondcontainingblacksmalldiamond",0x25c8,"whitedownpointingsmalltriangle",0x25bf,"whitedownpointingtriangle",0x25bd,"whiteleftpointingsmalltriangle",0x25c3,"whiteleftpointingtriangle",0x25c1,"whitelenticularbracketleft",0x3016,"whitelenticularbracketright",0x3017,"whiterightpointingsmalltriangle",0x25b9,"whiterightpointingtriangle",0x25b7,"whitesmallsquare",0x25ab,"whitesmilingface",0x263a,"whitesquare",0x25a1,"whitestar",0x2606,"whitetelephone",0x260f,"whitetortoiseshellbracketleft",0x3018,"whitetortoiseshellbracketright",0x3019,"whiteuppointingsmalltriangle",0x25b5,"whiteuppointingtriangle",0x25b3,"wihiragana",0x3090,"wikatakana",0x30f0,"wikorean",0x315f,"wmonospace",0xff57,"wohiragana",0x3092,"wokatakana",0x30f2,"wokatakanahalfwidth",0xff66,"won",0x20a9,"wonmonospace",0xffe6,"wowaenthai",0x0e27,"wparen",0x24b2,"wring",0x1e98,"wsuperior",0x02b7,"wturned",0x028d,"wynn",0x01bf,"x",0x0078,"xabovecmb",0x033d,"xbopomofo",0x3112,"xcircle",0x24e7,"xdieresis",0x1e8d,"xdotaccent",0x1e8b,"xeharmenian",0x056d,"xi",0x03be,"xmonospace",0xff58,"xparen",0x24b3,"xsuperior",0x02e3,"y",0x0079,"yaadosquare",0x334e,"yabengali",0x09af,"yacute",0x00fd,"yadeva",0x092f,"yaekorean",0x3152,"yagujarati",0x0aaf,"yagurmukhi",0x0a2f,"yahiragana",0x3084,"yakatakana",0x30e4,"yakatakanahalfwidth",0xff94,"yakorean",0x3151,"yamakkanthai",0x0e4e,"yasmallhiragana",0x3083,"yasmallkatakana",0x30e3,"yasmallkatakanahalfwidth",0xff6c,"yatcyrillic",0x0463,"ycircle",0x24e8,"ycircumflex",0x0177,"ydieresis",0x00ff,"ydotaccent",0x1e8f,"ydotbelow",0x1ef5,"yeharabic",0x064a,"yehbarreearabic",0x06d2,"yehbarreefinalarabic",0xfbaf,"yehfinalarabic",0xfef2,"yehhamzaabovearabic",0x0626,"yehhamzaabovefinalarabic",0xfe8a,"yehhamzaaboveinitialarabic",0xfe8b,"yehhamzaabovemedialarabic",0xfe8c,"yehinitialarabic",0xfef3,"yehmedialarabic",0xfef4,"yehmeeminitialarabic",0xfcdd,"yehmeemisolatedarabic",0xfc58,"yehnoonfinalarabic",0xfc94,"yehthreedotsbelowarabic",0x06d1,"yekorean",0x3156,"yen",0x00a5,"yenmonospace",0xffe5,"yeokorean",0x3155,"yeorinhieuhkorean",0x3186,"yerahbenyomohebrew",0x05aa,"yerahbenyomolefthebrew",0x05aa,"yericyrillic",0x044b,"yerudieresiscyrillic",0x04f9,"yesieungkorean",0x3181,"yesieungpansioskorean",0x3183,"yesieungsioskorean",0x3182,"yetivhebrew",0x059a,"ygrave",0x1ef3,"yhook",0x01b4,"yhookabove",0x1ef7,"yiarmenian",0x0575,"yicyrillic",0x0457,"yikorean",0x3162,"yinyang",0x262f,"yiwnarmenian",0x0582,"ymonospace",0xff59,"yod",0x05d9,"yoddagesh",0xfb39,"yoddageshhebrew",0xfb39,"yodhebrew",0x05d9,"yodyodhebrew",0x05f2,"yodyodpatahhebrew",0xfb1f,"yohiragana",0x3088,"yoikorean",0x3189,"yokatakana",0x30e8,"yokatakanahalfwidth",0xff96,"yokorean",0x315b,"yosmallhiragana",0x3087,"yosmallkatakana",0x30e7,"yosmallkatakanahalfwidth",0xff6e,"yotgreek",0x03f3,"yoyaekorean",0x3188,"yoyakorean",0x3187,"yoyakthai",0x0e22,"yoyingthai",0x0e0d,"yparen",0x24b4,"ypogegrammeni",0x037a,"ypogegrammenigreekcmb",0x0345,"yr",0x01a6,"yring",0x1e99,"ysuperior",0x02b8,"ytilde",0x1ef9,"yturned",0x028e,"yuhiragana",0x3086,"yuikorean",0x318c,"yukatakana",0x30e6,"yukatakanahalfwidth",0xff95,"yukorean",0x3160,"yusbigcyrillic",0x046b,"yusbigiotifiedcyrillic",0x046d,"yuslittlecyrillic",0x0467,"yuslittleiotifiedcyrillic",0x0469,"yusmallhiragana",0x3085,"yusmallkatakana",0x30e5,"yusmallkatakanahalfwidth",0xff6d,"yuyekorean",0x318b,"yuyeokorean",0x318a,"yyabengali",0x09df,"yyadeva",0x095f,"z",0x007a,"zaarmenian",0x0566,"zacute",0x017a,"zadeva",0x095b,"zagurmukhi",0x0a5b,"zaharabic",0x0638,"zahfinalarabic",0xfec6,"zahinitialarabic",0xfec7,"zahiragana",0x3056,"zahmedialarabic",0xfec8,"zainarabic",0x0632,"zainfinalarabic",0xfeb0,"zakatakana",0x30b6,"zaqefgadolhebrew",0x0595,"zaqefqatanhebrew",0x0594,"zarqahebrew",0x0598,"zayin",0x05d6,"zayindagesh",0xfb36,"zayindageshhebrew",0xfb36,"zayinhebrew",0x05d6,"zbopomofo",0x3117,"zcaron",0x017e,"zcircle",0x24e9,"zcircumflex",0x1e91,"zcurl",0x0291,"zdot",0x017c,"zdotaccent",0x017c,"zdotbelow",0x1e93,"zecyrillic",0x0437,"zedescendercyrillic",0x0499,"zedieresiscyrillic",0x04df,"zehiragana",0x305c,"zekatakana",0x30bc,"zero",0x0030,"zeroarabic",0x0660,"zerobengali",0x09e6,"zerodeva",0x0966,"zerogujarati",0x0ae6,"zerogurmukhi",0x0a66,"zerohackarabic",0x0660,"zeroinferior",0x2080,"zeromonospace",0xff10,"zerooldstyle",0xf730,"zeropersian",0x06f0,"zerosuperior",0x2070,"zerothai",0x0e50,"zerowidthjoiner",0xfeff,"zerowidthnonjoiner",0x200c,"zerowidthspace",0x200b,"zeta",0x03b6,"zhbopomofo",0x3113,"zhearmenian",0x056a,"zhebrevecyrillic",0x04c2,"zhecyrillic",0x0436,"zhedescendercyrillic",0x0497,"zhedieresiscyrillic",0x04dd,"zihiragana",0x3058,"zikatakana",0x30b8,"zinorhebrew",0x05ae,"zlinebelow",0x1e95,"zmonospace",0xff5a,"zohiragana",0x305e,"zokatakana",0x30be,"zparen",0x24b5,"zretroflexhook",0x0290,"zstroke",0x01b6,"zuhiragana",0x305a,"zukatakana",0x30ba,".notdef",0x0000,"angbracketleftbig",0x2329,"angbracketleftBig",0x2329,"angbracketleftbigg",0x2329,"angbracketleftBigg",0x2329,"angbracketrightBig",0x232a,"angbracketrightbig",0x232a,"angbracketrightBigg",0x232a,"angbracketrightbigg",0x232a,"arrowhookleft",0x21aa,"arrowhookright",0x21a9,"arrowlefttophalf",0x21bc,"arrowleftbothalf",0x21bd,"arrownortheast",0x2197,"arrownorthwest",0x2196,"arrowrighttophalf",0x21c0,"arrowrightbothalf",0x21c1,"arrowsoutheast",0x2198,"arrowsouthwest",0x2199,"backslashbig",0x2216,"backslashBig",0x2216,"backslashBigg",0x2216,"backslashbigg",0x2216,"bardbl",0x2016,"bracehtipdownleft",0xfe37,"bracehtipdownright",0xfe37,"bracehtipupleft",0xfe38,"bracehtipupright",0xfe38,"braceleftBig",0x007b,"braceleftbig",0x007b,"braceleftbigg",0x007b,"braceleftBigg",0x007b,"bracerightBig",0x007d,"bracerightbig",0x007d,"bracerightbigg",0x007d,"bracerightBigg",0x007d,"bracketleftbig",0x005b,"bracketleftBig",0x005b,"bracketleftbigg",0x005b,"bracketleftBigg",0x005b,"bracketrightBig",0x005d,"bracketrightbig",0x005d,"bracketrightbigg",0x005d,"bracketrightBigg",0x005d,"ceilingleftbig",0x2308,"ceilingleftBig",0x2308,"ceilingleftBigg",0x2308,"ceilingleftbigg",0x2308,"ceilingrightbig",0x2309,"ceilingrightBig",0x2309,"ceilingrightbigg",0x2309,"ceilingrightBigg",0x2309,"circledotdisplay",0x2299,"circledottext",0x2299,"circlemultiplydisplay",0x2297,"circlemultiplytext",0x2297,"circleplusdisplay",0x2295,"circleplustext",0x2295,"contintegraldisplay",0x222e,"contintegraltext",0x222e,"coproductdisplay",0x2210,"coproducttext",0x2210,"floorleftBig",0x230a,"floorleftbig",0x230a,"floorleftbigg",0x230a,"floorleftBigg",0x230a,"floorrightbig",0x230b,"floorrightBig",0x230b,"floorrightBigg",0x230b,"floorrightbigg",0x230b,"hatwide",0x0302,"hatwider",0x0302,"hatwidest",0x0302,"intercal",0x1d40,"integraldisplay",0x222b,"integraltext",0x222b,"intersectiondisplay",0x22c2,"intersectiontext",0x22c2,"logicalanddisplay",0x2227,"logicalandtext",0x2227,"logicalordisplay",0x2228,"logicalortext",0x2228,"parenleftBig",0x0028,"parenleftbig",0x0028,"parenleftBigg",0x0028,"parenleftbigg",0x0028,"parenrightBig",0x0029,"parenrightbig",0x0029,"parenrightBigg",0x0029,"parenrightbigg",0x0029,"prime",0x2032,"productdisplay",0x220f,"producttext",0x220f,"radicalbig",0x221a,"radicalBig",0x221a,"radicalBigg",0x221a,"radicalbigg",0x221a,"radicalbt",0x221a,"radicaltp",0x221a,"radicalvertex",0x221a,"slashbig",0x002f,"slashBig",0x002f,"slashBigg",0x002f,"slashbigg",0x002f,"summationdisplay",0x2211,"summationtext",0x2211,"tildewide",0x02dc,"tildewider",0x02dc,"tildewidest",0x02dc,"uniondisplay",0x22c3,"unionmultidisplay",0x228e,"unionmultitext",0x228e,"unionsqdisplay",0x2294,"unionsqtext",0x2294,"uniontext",0x22c3,"vextenddouble",0x2225,"vextendsingle",0x2223];});const getDingbatsGlyphsUnicode=(0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function(){return["space",0x0020,"a1",0x2701,"a2",0x2702,"a202",0x2703,"a3",0x2704,"a4",0x260e,"a5",0x2706,"a119",0x2707,"a118",0x2708,"a117",0x2709,"a11",0x261b,"a12",0x261e,"a13",0x270c,"a14",0x270d,"a15",0x270e,"a16",0x270f,"a105",0x2710,"a17",0x2711,"a18",0x2712,"a19",0x2713,"a20",0x2714,"a21",0x2715,"a22",0x2716,"a23",0x2717,"a24",0x2718,"a25",0x2719,"a26",0x271a,"a27",0x271b,"a28",0x271c,"a6",0x271d,"a7",0x271e,"a8",0x271f,"a9",0x2720,"a10",0x2721,"a29",0x2722,"a30",0x2723,"a31",0x2724,"a32",0x2725,"a33",0x2726,"a34",0x2727,"a35",0x2605,"a36",0x2729,"a37",0x272a,"a38",0x272b,"a39",0x272c,"a40",0x272d,"a41",0x272e,"a42",0x272f,"a43",0x2730,"a44",0x2731,"a45",0x2732,"a46",0x2733,"a47",0x2734,"a48",0x2735,"a49",0x2736,"a50",0x2737,"a51",0x2738,"a52",0x2739,"a53",0x273a,"a54",0x273b,"a55",0x273c,"a56",0x273d,"a57",0x273e,"a58",0x273f,"a59",0x2740,"a60",0x2741,"a61",0x2742,"a62",0x2743,"a63",0x2744,"a64",0x2745,"a65",0x2746,"a66",0x2747,"a67",0x2748,"a68",0x2749,"a69",0x274a,"a70",0x274b,"a71",0x25cf,"a72",0x274d,"a73",0x25a0,"a74",0x274f,"a203",0x2750,"a75",0x2751,"a204",0x2752,"a76",0x25b2,"a77",0x25bc,"a78",0x25c6,"a79",0x2756,"a81",0x25d7,"a82",0x2758,"a83",0x2759,"a84",0x275a,"a97",0x275b,"a98",0x275c,"a99",0x275d,"a100",0x275e,"a101",0x2761,"a102",0x2762,"a103",0x2763,"a104",0x2764,"a106",0x2765,"a107",0x2766,"a108",0x2767,"a112",0x2663,"a111",0x2666,"a110",0x2665,"a109",0x2660,"a120",0x2460,"a121",0x2461,"a122",0x2462,"a123",0x2463,"a124",0x2464,"a125",0x2465,"a126",0x2466,"a127",0x2467,"a128",0x2468,"a129",0x2469,"a130",0x2776,"a131",0x2777,"a132",0x2778,"a133",0x2779,"a134",0x277a,"a135",0x277b,"a136",0x277c,"a137",0x277d,"a138",0x277e,"a139",0x277f,"a140",0x2780,"a141",0x2781,"a142",0x2782,"a143",0x2783,"a144",0x2784,"a145",0x2785,"a146",0x2786,"a147",0x2787,"a148",0x2788,"a149",0x2789,"a150",0x278a,"a151",0x278b,"a152",0x278c,"a153",0x278d,"a154",0x278e,"a155",0x278f,"a156",0x2790,"a157",0x2791,"a158",0x2792,"a159",0x2793,"a160",0x2794,"a161",0x2192,"a163",0x2194,"a164",0x2195,"a196",0x2798,"a165",0x2799,"a192",0x279a,"a166",0x279b,"a167",0x279c,"a168",0x279d,"a169",0x279e,"a170",0x279f,"a171",0x27a0,"a172",0x27a1,"a173",0x27a2,"a162",0x27a3,"a174",0x27a4,"a175",0x27a5,"a176",0x27a6,"a177",0x27a7,"a178",0x27a8,"a179",0x27a9,"a193",0x27aa,"a180",0x27ab,"a199",0x27ac,"a181",0x27ad,"a200",0x27ae,"a182",0x27af,"a201",0x27b1,"a183",0x27b2,"a184",0x27b3,"a197",0x27b4,"a185",0x27b5,"a194",0x27b6,"a198",0x27b7,"a186",0x27b8,"a195",0x27b9,"a187",0x27ba,"a188",0x27bb,"a189",0x27bc,"a190",0x27bd,"a191",0x27be,"a89",0x2768,"a90",0x2769,"a93",0x276a,"a94",0x276b,"a91",0x276c,"a92",0x276d,"a205",0x276e,"a85",0x276f,"a206",0x2770,"a86",0x2771,"a87",0x2772,"a88",0x2773,"a95",0x2774,"a96",0x2775,".notdef",0x0000];});}),((__unused_webpack_module,__webpack_exports__,__w_pdfjs_require__)=>{"use strict";__w_pdfjs_require__.r(__webpack_exports__);__w_pdfjs_require__.d(__webpack_exports__,{"clearUnicodeCaches":()=>(clearUnicodeCaches),"getCharUnicodeCategory":()=>(getCharUnicodeCategory),"getNormalizedUnicodes":()=>(getNormalizedUnicodes),"getUnicodeForGlyph":()=>(getUnicodeForGlyph),"getUnicodeRangeFor":()=>(getUnicodeRangeFor),"mapSpecialUnicodeValues":()=>(mapSpecialUnicodeValues),"reverseIfRtl":()=>(reverseIfRtl)});var _core_utils_js__WEBPACK_IMPORTED_MODULE_0__=__w_pdfjs_require__(131);const getSpecialPUASymbols=(0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getLookupTableFactory)(function(t){t[63721]=0x00a9;t[63193]=0x00a9;t[63720]=0x00ae;t[63194]=0x00ae;t[63722]=0x2122;t[63195]=0x2122;t[63729]=0x23a7;t[63730]=0x23a8;t[63731]=0x23a9;t[63740]=0x23ab;t[63741]=0x23ac;t[63742]=0x23ad;t[63726]=0x23a1;t[63727]=0x23a2;t[63728]=0x23a3;t[63737]=0x23a4;t[63738]=0x23a5;t[63739]=0x23a6;t[63723]=0x239b;t[63724]=0x239c;t[63725]=0x239d;t[63734]=0x239e;t[63735]=0x239f;t[63736]=0x23a0;});function mapSpecialUnicodeValues(code){if(code>=0xfff0&&code<=0xffff){return 0;}else if(code>=0xf600&&code<=0xf8ff){return getSpecialPUASymbols()[code]||code;}else if(code===0x00ad){return 0x002d;}
return code;}
function getUnicodeForGlyph(name,glyphsUnicodeMap){let unicode=glyphsUnicodeMap[name];if(unicode!==undefined){return unicode;}
if(!name){return-1;}
if(name[0]==="u"){const nameLen=name.length;let hexStr;if(nameLen===7&&name[1]==="n"&&name[2]==="i"){hexStr=name.substring(3);}else if(nameLen>=5&&nameLen<=7){hexStr=name.substring(1);}else{return-1;}
if(hexStr===hexStr.toUpperCase()){unicode=parseInt(hexStr,16);if(unicode>=0){return unicode;}}}
return-1;}
const UnicodeRanges=[{begin:0x0000,end:0x007f},{begin:0x0080,end:0x00ff},{begin:0x0100,end:0x017f},{begin:0x0180,end:0x024f},{begin:0x0250,end:0x02af},{begin:0x02b0,end:0x02ff},{begin:0x0300,end:0x036f},{begin:0x0370,end:0x03ff},{begin:0x2c80,end:0x2cff},{begin:0x0400,end:0x04ff},{begin:0x0530,end:0x058f},{begin:0x0590,end:0x05ff},{begin:0xa500,end:0xa63f},{begin:0x0600,end:0x06ff},{begin:0x07c0,end:0x07ff},{begin:0x0900,end:0x097f},{begin:0x0980,end:0x09ff},{begin:0x0a00,end:0x0a7f},{begin:0x0a80,end:0x0aff},{begin:0x0b00,end:0x0b7f},{begin:0x0b80,end:0x0bff},{begin:0x0c00,end:0x0c7f},{begin:0x0c80,end:0x0cff},{begin:0x0d00,end:0x0d7f},{begin:0x0e00,end:0x0e7f},{begin:0x0e80,end:0x0eff},{begin:0x10a0,end:0x10ff},{begin:0x1b00,end:0x1b7f},{begin:0x1100,end:0x11ff},{begin:0x1e00,end:0x1eff},{begin:0x1f00,end:0x1fff},{begin:0x2000,end:0x206f},{begin:0x2070,end:0x209f},{begin:0x20a0,end:0x20cf},{begin:0x20d0,end:0x20ff},{begin:0x2100,end:0x214f},{begin:0x2150,end:0x218f},{begin:0x2190,end:0x21ff},{begin:0x2200,end:0x22ff},{begin:0x2300,end:0x23ff},{begin:0x2400,end:0x243f},{begin:0x2440,end:0x245f},{begin:0x2460,end:0x24ff},{begin:0x2500,end:0x257f},{begin:0x2580,end:0x259f},{begin:0x25a0,end:0x25ff},{begin:0x2600,end:0x26ff},{begin:0x2700,end:0x27bf},{begin:0x3000,end:0x303f},{begin:0x3040,end:0x309f},{begin:0x30a0,end:0x30ff},{begin:0x3100,end:0x312f},{begin:0x3130,end:0x318f},{begin:0xa840,end:0xa87f},{begin:0x3200,end:0x32ff},{begin:0x3300,end:0x33ff},{begin:0xac00,end:0xd7af},{begin:0xd800,end:0xdfff},{begin:0x10900,end:0x1091f},{begin:0x4e00,end:0x9fff},{begin:0xe000,end:0xf8ff},{begin:0x31c0,end:0x31ef},{begin:0xfb00,end:0xfb4f},{begin:0xfb50,end:0xfdff},{begin:0xfe20,end:0xfe2f},{begin:0xfe10,end:0xfe1f},{begin:0xfe50,end:0xfe6f},{begin:0xfe70,end:0xfeff},{begin:0xff00,end:0xffef},{begin:0xfff0,end:0xffff},{begin:0x0f00,end:0x0fff},{begin:0x0700,end:0x074f},{begin:0x0780,end:0x07bf},{begin:0x0d80,end:0x0dff},{begin:0x1000,end:0x109f},{begin:0x1200,end:0x137f},{begin:0x13a0,end:0x13ff},{begin:0x1400,end:0x167f},{begin:0x1680,end:0x169f},{begin:0x16a0,end:0x16ff},{begin:0x1780,end:0x17ff},{begin:0x1800,end:0x18af},{begin:0x2800,end:0x28ff},{begin:0xa000,end:0xa48f},{begin:0x1700,end:0x171f},{begin:0x10300,end:0x1032f},{begin:0x10330,end:0x1034f},{begin:0x10400,end:0x1044f},{begin:0x1d000,end:0x1d0ff},{begin:0x1d400,end:0x1d7ff},{begin:0xff000,end:0xffffd},{begin:0xfe00,end:0xfe0f},{begin:0xe0000,end:0xe007f},{begin:0x1900,end:0x194f},{begin:0x1950,end:0x197f},{begin:0x1980,end:0x19df},{begin:0x1a00,end:0x1a1f},{begin:0x2c00,end:0x2c5f},{begin:0x2d30,end:0x2d7f},{begin:0x4dc0,end:0x4dff},{begin:0xa800,end:0xa82f},{begin:0x10000,end:0x1007f},{begin:0x10140,end:0x1018f},{begin:0x10380,end:0x1039f},{begin:0x103a0,end:0x103df},{begin:0x10450,end:0x1047f},{begin:0x10480,end:0x104af},{begin:0x10800,end:0x1083f},{begin:0x10a00,end:0x10a5f},{begin:0x1d300,end:0x1d35f},{begin:0x12000,end:0x123ff},{begin:0x1d360,end:0x1d37f},{begin:0x1b80,end:0x1bbf},{begin:0x1c00,end:0x1c4f},{begin:0x1c50,end:0x1c7f},{begin:0xa880,end:0xa8df},{begin:0xa900,end:0xa92f},{begin:0xa930,end:0xa95f},{begin:0xaa00,end:0xaa5f},{begin:0x10190,end:0x101cf},{begin:0x101d0,end:0x101ff},{begin:0x102a0,end:0x102df},{begin:0x1f030,end:0x1f09f}];function getUnicodeRangeFor(value){for(let i=0,ii=UnicodeRanges.length;i<ii;i++){const range=UnicodeRanges[i];if(value>=range.begin&&value<range.end){return i;}}
return-1;}
function isRTLRangeFor(value){let range=UnicodeRanges[13];if(value>=range.begin&&value<range.end){return true;}
range=UnicodeRanges[11];if(value>=range.begin&&value<range.end){return true;}
return false;}
const getNormalizedUnicodes=(0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function(){return["\u00A8","\u0020\u0308","\u00AF","\u0020\u0304","\u00B4","\u0020\u0301","\u00B5","\u03BC","\u00B8","\u0020\u0327","\u0132","\u0049\u004A","\u0133","\u0069\u006A","\u013F","\u004C\u00B7","\u0140","\u006C\u00B7","\u0149","\u02BC\u006E","\u017F","\u0073","\u01C4","\u0044\u017D","\u01C5","\u0044\u017E","\u01C6","\u0064\u017E","\u01C7","\u004C\u004A","\u01C8","\u004C\u006A","\u01C9","\u006C\u006A","\u01CA","\u004E\u004A","\u01CB","\u004E\u006A","\u01CC","\u006E\u006A","\u01F1","\u0044\u005A","\u01F2","\u0044\u007A","\u01F3","\u0064\u007A","\u02D8","\u0020\u0306","\u02D9","\u0020\u0307","\u02DA","\u0020\u030A","\u02DB","\u0020\u0328","\u02DC","\u0020\u0303","\u02DD","\u0020\u030B","\u037A","\u0020\u0345","\u0384","\u0020\u0301","\u03D0","\u03B2","\u03D1","\u03B8","\u03D2","\u03A5","\u03D5","\u03C6","\u03D6","\u03C0","\u03F0","\u03BA","\u03F1","\u03C1","\u03F2","\u03C2","\u03F4","\u0398","\u03F5","\u03B5","\u03F9","\u03A3","\u0587","\u0565\u0582","\u0675","\u0627\u0674","\u0676","\u0648\u0674","\u0677","\u06C7\u0674","\u0678","\u064A\u0674","\u0E33","\u0E4D\u0E32","\u0EB3","\u0ECD\u0EB2","\u0EDC","\u0EAB\u0E99","\u0EDD","\u0EAB\u0EA1","\u0F77","\u0FB2\u0F81","\u0F79","\u0FB3\u0F81","\u1E9A","\u0061\u02BE","\u1FBD","\u0020\u0313","\u1FBF","\u0020\u0313","\u1FC0","\u0020\u0342","\u1FFE","\u0020\u0314","\u2002","\u0020","\u2003","\u0020","\u2004","\u0020","\u2005","\u0020","\u2006","\u0020","\u2008","\u0020","\u2009","\u0020","\u200A","\u0020","\u2017","\u0020\u0333","\u2024","\u002E","\u2025","\u002E\u002E","\u2026","\u002E\u002E\u002E","\u2033","\u2032\u2032","\u2034","\u2032\u2032\u2032","\u2036","\u2035\u2035","\u2037","\u2035\u2035\u2035","\u203C","\u0021\u0021","\u203E","\u0020\u0305","\u2047","\u003F\u003F","\u2048","\u003F\u0021","\u2049","\u0021\u003F","\u2057","\u2032\u2032\u2032\u2032","\u205F","\u0020","\u20A8","\u0052\u0073","\u2100","\u0061\u002F\u0063","\u2101","\u0061\u002F\u0073","\u2103","\u00B0\u0043","\u2105","\u0063\u002F\u006F","\u2106","\u0063\u002F\u0075","\u2107","\u0190","\u2109","\u00B0\u0046","\u2116","\u004E\u006F","\u2121","\u0054\u0045\u004C","\u2135","\u05D0","\u2136","\u05D1","\u2137","\u05D2","\u2138","\u05D3","\u213B","\u0046\u0041\u0058","\u2160","\u0049","\u2161","\u0049\u0049","\u2162","\u0049\u0049\u0049","\u2163","\u0049\u0056","\u2164","\u0056","\u2165","\u0056\u0049","\u2166","\u0056\u0049\u0049","\u2167","\u0056\u0049\u0049\u0049","\u2168","\u0049\u0058","\u2169","\u0058","\u216A","\u0058\u0049","\u216B","\u0058\u0049\u0049","\u216C","\u004C","\u216D","\u0043","\u216E","\u0044","\u216F","\u004D","\u2170","\u0069","\u2171","\u0069\u0069","\u2172","\u0069\u0069\u0069","\u2173","\u0069\u0076","\u2174","\u0076","\u2175","\u0076\u0069","\u2176","\u0076\u0069\u0069","\u2177","\u0076\u0069\u0069\u0069","\u2178","\u0069\u0078","\u2179","\u0078","\u217A","\u0078\u0069","\u217B","\u0078\u0069\u0069","\u217C","\u006C","\u217D","\u0063","\u217E","\u0064","\u217F","\u006D","\u222C","\u222B\u222B","\u222D","\u222B\u222B\u222B","\u222F","\u222E\u222E","\u2230","\u222E\u222E\u222E","\u2474","\u0028\u0031\u0029","\u2475","\u0028\u0032\u0029","\u2476","\u0028\u0033\u0029","\u2477","\u0028\u0034\u0029","\u2478","\u0028\u0035\u0029","\u2479","\u0028\u0036\u0029","\u247A","\u0028\u0037\u0029","\u247B","\u0028\u0038\u0029","\u247C","\u0028\u0039\u0029","\u247D","\u0028\u0031\u0030\u0029","\u247E","\u0028\u0031\u0031\u0029","\u247F","\u0028\u0031\u0032\u0029","\u2480","\u0028\u0031\u0033\u0029","\u2481","\u0028\u0031\u0034\u0029","\u2482","\u0028\u0031\u0035\u0029","\u2483","\u0028\u0031\u0036\u0029","\u2484","\u0028\u0031\u0037\u0029","\u2485","\u0028\u0031\u0038\u0029","\u2486","\u0028\u0031\u0039\u0029","\u2487","\u0028\u0032\u0030\u0029","\u2488","\u0031\u002E","\u2489","\u0032\u002E","\u248A","\u0033\u002E","\u248B","\u0034\u002E","\u248C","\u0035\u002E","\u248D","\u0036\u002E","\u248E","\u0037\u002E","\u248F","\u0038\u002E","\u2490","\u0039\u002E","\u2491","\u0031\u0030\u002E","\u2492","\u0031\u0031\u002E","\u2493","\u0031\u0032\u002E","\u2494","\u0031\u0033\u002E","\u2495","\u0031\u0034\u002E","\u2496","\u0031\u0035\u002E","\u2497","\u0031\u0036\u002E","\u2498","\u0031\u0037\u002E","\u2499","\u0031\u0038\u002E","\u249A","\u0031\u0039\u002E","\u249B","\u0032\u0030\u002E","\u249C","\u0028\u0061\u0029","\u249D","\u0028\u0062\u0029","\u249E","\u0028\u0063\u0029","\u249F","\u0028\u0064\u0029","\u24A0","\u0028\u0065\u0029","\u24A1","\u0028\u0066\u0029","\u24A2","\u0028\u0067\u0029","\u24A3","\u0028\u0068\u0029","\u24A4","\u0028\u0069\u0029","\u24A5","\u0028\u006A\u0029","\u24A6","\u0028\u006B\u0029","\u24A7","\u0028\u006C\u0029","\u24A8","\u0028\u006D\u0029","\u24A9","\u0028\u006E\u0029","\u24AA","\u0028\u006F\u0029","\u24AB","\u0028\u0070\u0029","\u24AC","\u0028\u0071\u0029","\u24AD","\u0028\u0072\u0029","\u24AE","\u0028\u0073\u0029","\u24AF","\u0028\u0074\u0029","\u24B0","\u0028\u0075\u0029","\u24B1","\u0028\u0076\u0029","\u24B2","\u0028\u0077\u0029","\u24B3","\u0028\u0078\u0029","\u24B4","\u0028\u0079\u0029","\u24B5","\u0028\u007A\u0029","\u2A0C","\u222B\u222B\u222B\u222B","\u2A74","\u003A\u003A\u003D","\u2A75","\u003D\u003D","\u2A76","\u003D\u003D\u003D","\u2E9F","\u6BCD","\u2EF3","\u9F9F","\u2F00","\u4E00","\u2F01","\u4E28","\u2F02","\u4E36","\u2F03","\u4E3F","\u2F04","\u4E59","\u2F05","\u4E85","\u2F06","\u4E8C","\u2F07","\u4EA0","\u2F08","\u4EBA","\u2F09","\u513F","\u2F0A","\u5165","\u2F0B","\u516B","\u2F0C","\u5182","\u2F0D","\u5196","\u2F0E","\u51AB","\u2F0F","\u51E0","\u2F10","\u51F5","\u2F11","\u5200","\u2F12","\u529B","\u2F13","\u52F9","\u2F14","\u5315","\u2F15","\u531A","\u2F16","\u5338","\u2F17","\u5341","\u2F18","\u535C","\u2F19","\u5369","\u2F1A","\u5382","\u2F1B","\u53B6","\u2F1C","\u53C8","\u2F1D","\u53E3","\u2F1E","\u56D7","\u2F1F","\u571F","\u2F20","\u58EB","\u2F21","\u5902","\u2F22","\u590A","\u2F23","\u5915","\u2F24","\u5927","\u2F25","\u5973","\u2F26","\u5B50","\u2F27","\u5B80","\u2F28","\u5BF8","\u2F29","\u5C0F","\u2F2A","\u5C22","\u2F2B","\u5C38","\u2F2C","\u5C6E","\u2F2D","\u5C71","\u2F2E","\u5DDB","\u2F2F","\u5DE5","\u2F30","\u5DF1","\u2F31","\u5DFE","\u2F32","\u5E72","\u2F33","\u5E7A","\u2F34","\u5E7F","\u2F35","\u5EF4","\u2F36","\u5EFE","\u2F37","\u5F0B","\u2F38","\u5F13","\u2F39","\u5F50","\u2F3A","\u5F61","\u2F3B","\u5F73","\u2F3C","\u5FC3","\u2F3D","\u6208","\u2F3E","\u6236","\u2F3F","\u624B","\u2F40","\u652F","\u2F41","\u6534","\u2F42","\u6587","\u2F43","\u6597","\u2F44","\u65A4","\u2F45","\u65B9","\u2F46","\u65E0","\u2F47","\u65E5","\u2F48","\u66F0","\u2F49","\u6708","\u2F4A","\u6728","\u2F4B","\u6B20","\u2F4C","\u6B62","\u2F4D","\u6B79","\u2F4E","\u6BB3","\u2F4F","\u6BCB","\u2F50","\u6BD4","\u2F51","\u6BDB","\u2F52","\u6C0F","\u2F53","\u6C14","\u2F54","\u6C34","\u2F55","\u706B","\u2F56","\u722A","\u2F57","\u7236","\u2F58","\u723B","\u2F59","\u723F","\u2F5A","\u7247","\u2F5B","\u7259","\u2F5C","\u725B","\u2F5D","\u72AC","\u2F5E","\u7384","\u2F5F","\u7389","\u2F60","\u74DC","\u2F61","\u74E6","\u2F62","\u7518","\u2F63","\u751F","\u2F64","\u7528","\u2F65","\u7530","\u2F66","\u758B","\u2F67","\u7592","\u2F68","\u7676","\u2F69","\u767D","\u2F6A","\u76AE","\u2F6B","\u76BF","\u2F6C","\u76EE","\u2F6D","\u77DB","\u2F6E","\u77E2","\u2F6F","\u77F3","\u2F70","\u793A","\u2F71","\u79B8","\u2F72","\u79BE","\u2F73","\u7A74","\u2F74","\u7ACB","\u2F75","\u7AF9","\u2F76","\u7C73","\u2F77","\u7CF8","\u2F78","\u7F36","\u2F79","\u7F51","\u2F7A","\u7F8A","\u2F7B","\u7FBD","\u2F7C","\u8001","\u2F7D","\u800C","\u2F7E","\u8012","\u2F7F","\u8033","\u2F80","\u807F","\u2F81","\u8089","\u2F82","\u81E3","\u2F83","\u81EA","\u2F84","\u81F3","\u2F85","\u81FC","\u2F86","\u820C","\u2F87","\u821B","\u2F88","\u821F","\u2F89","\u826E","\u2F8A","\u8272","\u2F8B","\u8278","\u2F8C","\u864D","\u2F8D","\u866B","\u2F8E","\u8840","\u2F8F","\u884C","\u2F90","\u8863","\u2F91","\u897E","\u2F92","\u898B","\u2F93","\u89D2","\u2F94","\u8A00","\u2F95","\u8C37","\u2F96","\u8C46","\u2F97","\u8C55","\u2F98","\u8C78","\u2F99","\u8C9D","\u2F9A","\u8D64","\u2F9B","\u8D70","\u2F9C","\u8DB3","\u2F9D","\u8EAB","\u2F9E","\u8ECA","\u2F9F","\u8F9B","\u2FA0","\u8FB0","\u2FA1","\u8FB5","\u2FA2","\u9091","\u2FA3","\u9149","\u2FA4","\u91C6","\u2FA5","\u91CC","\u2FA6","\u91D1","\u2FA7","\u9577","\u2FA8","\u9580","\u2FA9","\u961C","\u2FAA","\u96B6","\u2FAB","\u96B9","\u2FAC","\u96E8","\u2FAD","\u9751","\u2FAE","\u975E","\u2FAF","\u9762","\u2FB0","\u9769","\u2FB1","\u97CB","\u2FB2","\u97ED","\u2FB3","\u97F3","\u2FB4","\u9801","\u2FB5","\u98A8","\u2FB6","\u98DB","\u2FB7","\u98DF","\u2FB8","\u9996","\u2FB9","\u9999","\u2FBA","\u99AC","\u2FBB","\u9AA8","\u2FBC","\u9AD8","\u2FBD","\u9ADF","\u2FBE","\u9B25","\u2FBF","\u9B2F","\u2FC0","\u9B32","\u2FC1","\u9B3C","\u2FC2","\u9B5A","\u2FC3","\u9CE5","\u2FC4","\u9E75","\u2FC5","\u9E7F","\u2FC6","\u9EA5","\u2FC7","\u9EBB","\u2FC8","\u9EC3","\u2FC9","\u9ECD","\u2FCA","\u9ED1","\u2FCB","\u9EF9","\u2FCC","\u9EFD","\u2FCD","\u9F0E","\u2FCE","\u9F13","\u2FCF","\u9F20","\u2FD0","\u9F3B","\u2FD1","\u9F4A","\u2FD2","\u9F52","\u2FD3","\u9F8D","\u2FD4","\u9F9C","\u2FD5","\u9FA0","\u3036","\u3012","\u3038","\u5341","\u3039","\u5344","\u303A","\u5345","\u309B","\u0020\u3099","\u309C","\u0020\u309A","\u3131","\u1100","\u3132","\u1101","\u3133","\u11AA","\u3134","\u1102","\u3135","\u11AC","\u3136","\u11AD","\u3137","\u1103","\u3138","\u1104","\u3139","\u1105","\u313A","\u11B0","\u313B","\u11B1","\u313C","\u11B2","\u313D","\u11B3","\u313E","\u11B4","\u313F","\u11B5","\u3140","\u111A","\u3141","\u1106","\u3142","\u1107","\u3143","\u1108","\u3144","\u1121","\u3145","\u1109","\u3146","\u110A","\u3147","\u110B","\u3148","\u110C","\u3149","\u110D","\u314A","\u110E","\u314B","\u110F","\u314C","\u1110","\u314D","\u1111","\u314E","\u1112","\u314F","\u1161","\u3150","\u1162","\u3151","\u1163","\u3152","\u1164","\u3153","\u1165","\u3154","\u1166","\u3155","\u1167","\u3156","\u1168","\u3157","\u1169","\u3158","\u116A","\u3159","\u116B","\u315A","\u116C","\u315B","\u116D","\u315C","\u116E","\u315D","\u116F","\u315E","\u1170","\u315F","\u1171","\u3160","\u1172","\u3161","\u1173","\u3162","\u1174","\u3163","\u1175","\u3164","\u1160","\u3165","\u1114","\u3166","\u1115","\u3167","\u11C7","\u3168","\u11C8","\u3169","\u11CC","\u316A","\u11CE","\u316B","\u11D3","\u316C","\u11D7","\u316D","\u11D9","\u316E","\u111C","\u316F","\u11DD","\u3170","\u11DF","\u3171","\u111D","\u3172","\u111E","\u3173","\u1120","\u3174","\u1122","\u3175","\u1123","\u3176","\u1127","\u3177","\u1129","\u3178","\u112B","\u3179","\u112C","\u317A","\u112D","\u317B","\u112E","\u317C","\u112F","\u317D","\u1132","\u317E","\u1136","\u317F","\u1140","\u3180","\u1147","\u3181","\u114C","\u3182","\u11F1","\u3183","\u11F2","\u3184","\u1157","\u3185","\u1158","\u3186","\u1159","\u3187","\u1184","\u3188","\u1185","\u3189","\u1188","\u318A","\u1191","\u318B","\u1192","\u318C","\u1194","\u318D","\u119E","\u318E","\u11A1","\u3200","\u0028\u1100\u0029","\u3201","\u0028\u1102\u0029","\u3202","\u0028\u1103\u0029","\u3203","\u0028\u1105\u0029","\u3204","\u0028\u1106\u0029","\u3205","\u0028\u1107\u0029","\u3206","\u0028\u1109\u0029","\u3207","\u0028\u110B\u0029","\u3208","\u0028\u110C\u0029","\u3209","\u0028\u110E\u0029","\u320A","\u0028\u110F\u0029","\u320B","\u0028\u1110\u0029","\u320C","\u0028\u1111\u0029","\u320D","\u0028\u1112\u0029","\u320E","\u0028\u1100\u1161\u0029","\u320F","\u0028\u1102\u1161\u0029","\u3210","\u0028\u1103\u1161\u0029","\u3211","\u0028\u1105\u1161\u0029","\u3212","\u0028\u1106\u1161\u0029","\u3213","\u0028\u1107\u1161\u0029","\u3214","\u0028\u1109\u1161\u0029","\u3215","\u0028\u110B\u1161\u0029","\u3216","\u0028\u110C\u1161\u0029","\u3217","\u0028\u110E\u1161\u0029","\u3218","\u0028\u110F\u1161\u0029","\u3219","\u0028\u1110\u1161\u0029","\u321A","\u0028\u1111\u1161\u0029","\u321B","\u0028\u1112\u1161\u0029","\u321C","\u0028\u110C\u116E\u0029","\u321D","\u0028\u110B\u1169\u110C\u1165\u11AB\u0029","\u321E","\u0028\u110B\u1169\u1112\u116E\u0029","\u3220","\u0028\u4E00\u0029","\u3221","\u0028\u4E8C\u0029","\u3222","\u0028\u4E09\u0029","\u3223","\u0028\u56DB\u0029","\u3224","\u0028\u4E94\u0029","\u3225","\u0028\u516D\u0029","\u3226","\u0028\u4E03\u0029","\u3227","\u0028\u516B\u0029","\u3228","\u0028\u4E5D\u0029","\u3229","\u0028\u5341\u0029","\u322A","\u0028\u6708\u0029","\u322B","\u0028\u706B\u0029","\u322C","\u0028\u6C34\u0029","\u322D","\u0028\u6728\u0029","\u322E","\u0028\u91D1\u0029","\u322F","\u0028\u571F\u0029","\u3230","\u0028\u65E5\u0029","\u3231","\u0028\u682A\u0029","\u3232","\u0028\u6709\u0029","\u3233","\u0028\u793E\u0029","\u3234","\u0028\u540D\u0029","\u3235","\u0028\u7279\u0029","\u3236","\u0028\u8CA1\u0029","\u3237","\u0028\u795D\u0029","\u3238","\u0028\u52B4\u0029","\u3239","\u0028\u4EE3\u0029","\u323A","\u0028\u547C\u0029","\u323B","\u0028\u5B66\u0029","\u323C","\u0028\u76E3\u0029","\u323D","\u0028\u4F01\u0029","\u323E","\u0028\u8CC7\u0029","\u323F","\u0028\u5354\u0029","\u3240","\u0028\u796D\u0029","\u3241","\u0028\u4F11\u0029","\u3242","\u0028\u81EA\u0029","\u3243","\u0028\u81F3\u0029","\u32C0","\u0031\u6708","\u32C1","\u0032\u6708","\u32C2","\u0033\u6708","\u32C3","\u0034\u6708","\u32C4","\u0035\u6708","\u32C5","\u0036\u6708","\u32C6","\u0037\u6708","\u32C7","\u0038\u6708","\u32C8","\u0039\u6708","\u32C9","\u0031\u0030\u6708","\u32CA","\u0031\u0031\u6708","\u32CB","\u0031\u0032\u6708","\u3358","\u0030\u70B9","\u3359","\u0031\u70B9","\u335A","\u0032\u70B9","\u335B","\u0033\u70B9","\u335C","\u0034\u70B9","\u335D","\u0035\u70B9","\u335E","\u0036\u70B9","\u335F","\u0037\u70B9","\u3360","\u0038\u70B9","\u3361","\u0039\u70B9","\u3362","\u0031\u0030\u70B9","\u3363","\u0031\u0031\u70B9","\u3364","\u0031\u0032\u70B9","\u3365","\u0031\u0033\u70B9","\u3366","\u0031\u0034\u70B9","\u3367","\u0031\u0035\u70B9","\u3368","\u0031\u0036\u70B9","\u3369","\u0031\u0037\u70B9","\u336A","\u0031\u0038\u70B9","\u336B","\u0031\u0039\u70B9","\u336C","\u0032\u0030\u70B9","\u336D","\u0032\u0031\u70B9","\u336E","\u0032\u0032\u70B9","\u336F","\u0032\u0033\u70B9","\u3370","\u0032\u0034\u70B9","\u33E0","\u0031\u65E5","\u33E1","\u0032\u65E5","\u33E2","\u0033\u65E5","\u33E3","\u0034\u65E5","\u33E4","\u0035\u65E5","\u33E5","\u0036\u65E5","\u33E6","\u0037\u65E5","\u33E7","\u0038\u65E5","\u33E8","\u0039\u65E5","\u33E9","\u0031\u0030\u65E5","\u33EA","\u0031\u0031\u65E5","\u33EB","\u0031\u0032\u65E5","\u33EC","\u0031\u0033\u65E5","\u33ED","\u0031\u0034\u65E5","\u33EE","\u0031\u0035\u65E5","\u33EF","\u0031\u0036\u65E5","\u33F0","\u0031\u0037\u65E5","\u33F1","\u0031\u0038\u65E5","\u33F2","\u0031\u0039\u65E5","\u33F3","\u0032\u0030\u65E5","\u33F4","\u0032\u0031\u65E5","\u33F5","\u0032\u0032\u65E5","\u33F6","\u0032\u0033\u65E5","\u33F7","\u0032\u0034\u65E5","\u33F8","\u0032\u0035\u65E5","\u33F9","\u0032\u0036\u65E5","\u33FA","\u0032\u0037\u65E5","\u33FB","\u0032\u0038\u65E5","\u33FC","\u0032\u0039\u65E5","\u33FD","\u0033\u0030\u65E5","\u33FE","\u0033\u0031\u65E5","\uFB00","\u0066\u0066","\uFB01","\u0066\u0069","\uFB02","\u0066\u006C","\uFB03","\u0066\u0066\u0069","\uFB04","\u0066\u0066\u006C","\uFB05","\u017F\u0074","\uFB06","\u0073\u0074","\uFB13","\u0574\u0576","\uFB14","\u0574\u0565","\uFB15","\u0574\u056B","\uFB16","\u057E\u0576","\uFB17","\u0574\u056D","\uFB4F","\u05D0\u05DC","\uFB50","\u0671","\uFB51","\u0671","\uFB52","\u067B","\uFB53","\u067B","\uFB54","\u067B","\uFB55","\u067B","\uFB56","\u067E","\uFB57","\u067E","\uFB58","\u067E","\uFB59","\u067E","\uFB5A","\u0680","\uFB5B","\u0680","\uFB5C","\u0680","\uFB5D","\u0680","\uFB5E","\u067A","\uFB5F","\u067A","\uFB60","\u067A","\uFB61","\u067A","\uFB62","\u067F","\uFB63","\u067F","\uFB64","\u067F","\uFB65","\u067F","\uFB66","\u0679","\uFB67","\u0679","\uFB68","\u0679","\uFB69","\u0679","\uFB6A","\u06A4","\uFB6B","\u06A4","\uFB6C","\u06A4","\uFB6D","\u06A4","\uFB6E","\u06A6","\uFB6F","\u06A6","\uFB70","\u06A6","\uFB71","\u06A6","\uFB72","\u0684","\uFB73","\u0684","\uFB74","\u0684","\uFB75","\u0684","\uFB76","\u0683","\uFB77","\u0683","\uFB78","\u0683","\uFB79","\u0683","\uFB7A","\u0686","\uFB7B","\u0686","\uFB7C","\u0686","\uFB7D","\u0686","\uFB7E","\u0687","\uFB7F","\u0687","\uFB80","\u0687","\uFB81","\u0687","\uFB82","\u068D","\uFB83","\u068D","\uFB84","\u068C","\uFB85","\u068C","\uFB86","\u068E","\uFB87","\u068E","\uFB88","\u0688","\uFB89","\u0688","\uFB8A","\u0698","\uFB8B","\u0698","\uFB8C","\u0691","\uFB8D","\u0691","\uFB8E","\u06A9","\uFB8F","\u06A9","\uFB90","\u06A9","\uFB91","\u06A9","\uFB92","\u06AF","\uFB93","\u06AF","\uFB94","\u06AF","\uFB95","\u06AF","\uFB96","\u06B3","\uFB97","\u06B3","\uFB98","\u06B3","\uFB99","\u06B3","\uFB9A","\u06B1","\uFB9B","\u06B1","\uFB9C","\u06B1","\uFB9D","\u06B1","\uFB9E","\u06BA","\uFB9F","\u06BA","\uFBA0","\u06BB","\uFBA1","\u06BB","\uFBA2","\u06BB","\uFBA3","\u06BB","\uFBA4","\u06C0","\uFBA5","\u06C0","\uFBA6","\u06C1","\uFBA7","\u06C1","\uFBA8","\u06C1","\uFBA9","\u06C1","\uFBAA","\u06BE","\uFBAB","\u06BE","\uFBAC","\u06BE","\uFBAD","\u06BE","\uFBAE","\u06D2","\uFBAF","\u06D2","\uFBB0","\u06D3","\uFBB1","\u06D3","\uFBD3","\u06AD","\uFBD4","\u06AD","\uFBD5","\u06AD","\uFBD6","\u06AD","\uFBD7","\u06C7","\uFBD8","\u06C7","\uFBD9","\u06C6","\uFBDA","\u06C6","\uFBDB","\u06C8","\uFBDC","\u06C8","\uFBDD","\u0677","\uFBDE","\u06CB","\uFBDF","\u06CB","\uFBE0","\u06C5","\uFBE1","\u06C5","\uFBE2","\u06C9","\uFBE3","\u06C9","\uFBE4","\u06D0","\uFBE5","\u06D0","\uFBE6","\u06D0","\uFBE7","\u06D0","\uFBE8","\u0649","\uFBE9","\u0649","\uFBEA","\u0626\u0627","\uFBEB","\u0626\u0627","\uFBEC","\u0626\u06D5","\uFBED","\u0626\u06D5","\uFBEE","\u0626\u0648","\uFBEF","\u0626\u0648","\uFBF0","\u0626\u06C7","\uFBF1","\u0626\u06C7","\uFBF2","\u0626\u06C6","\uFBF3","\u0626\u06C6","\uFBF4","\u0626\u06C8","\uFBF5","\u0626\u06C8","\uFBF6","\u0626\u06D0","\uFBF7","\u0626\u06D0","\uFBF8","\u0626\u06D0","\uFBF9","\u0626\u0649","\uFBFA","\u0626\u0649","\uFBFB","\u0626\u0649","\uFBFC","\u06CC","\uFBFD","\u06CC","\uFBFE","\u06CC","\uFBFF","\u06CC","\uFC00","\u0626\u062C","\uFC01","\u0626\u062D","\uFC02","\u0626\u0645","\uFC03","\u0626\u0649","\uFC04","\u0626\u064A","\uFC05","\u0628\u062C","\uFC06","\u0628\u062D","\uFC07","\u0628\u062E","\uFC08","\u0628\u0645","\uFC09","\u0628\u0649","\uFC0A","\u0628\u064A","\uFC0B","\u062A\u062C","\uFC0C","\u062A\u062D","\uFC0D","\u062A\u062E","\uFC0E","\u062A\u0645","\uFC0F","\u062A\u0649","\uFC10","\u062A\u064A","\uFC11","\u062B\u062C","\uFC12","\u062B\u0645","\uFC13","\u062B\u0649","\uFC14","\u062B\u064A","\uFC15","\u062C\u062D","\uFC16","\u062C\u0645","\uFC17","\u062D\u062C","\uFC18","\u062D\u0645","\uFC19","\u062E\u062C","\uFC1A","\u062E\u062D","\uFC1B","\u062E\u0645","\uFC1C","\u0633\u062C","\uFC1D","\u0633\u062D","\uFC1E","\u0633\u062E","\uFC1F","\u0633\u0645","\uFC20","\u0635\u062D","\uFC21","\u0635\u0645","\uFC22","\u0636\u062C","\uFC23","\u0636\u062D","\uFC24","\u0636\u062E","\uFC25","\u0636\u0645","\uFC26","\u0637\u062D","\uFC27","\u0637\u0645","\uFC28","\u0638\u0645","\uFC29","\u0639\u062C","\uFC2A","\u0639\u0645","\uFC2B","\u063A\u062C","\uFC2C","\u063A\u0645","\uFC2D","\u0641\u062C","\uFC2E","\u0641\u062D","\uFC2F","\u0641\u062E","\uFC30","\u0641\u0645","\uFC31","\u0641\u0649","\uFC32","\u0641\u064A","\uFC33","\u0642\u062D","\uFC34","\u0642\u0645","\uFC35","\u0642\u0649","\uFC36","\u0642\u064A","\uFC37","\u0643\u0627","\uFC38","\u0643\u062C","\uFC39","\u0643\u062D","\uFC3A","\u0643\u062E","\uFC3B","\u0643\u0644","\uFC3C","\u0643\u0645","\uFC3D","\u0643\u0649","\uFC3E","\u0643\u064A","\uFC3F","\u0644\u062C","\uFC40","\u0644\u062D","\uFC41","\u0644\u062E","\uFC42","\u0644\u0645","\uFC43","\u0644\u0649","\uFC44","\u0644\u064A","\uFC45","\u0645\u062C","\uFC46","\u0645\u062D","\uFC47","\u0645\u062E","\uFC48","\u0645\u0645","\uFC49","\u0645\u0649","\uFC4A","\u0645\u064A","\uFC4B","\u0646\u062C","\uFC4C","\u0646\u062D","\uFC4D","\u0646\u062E","\uFC4E","\u0646\u0645","\uFC4F","\u0646\u0649","\uFC50","\u0646\u064A","\uFC51","\u0647\u062C","\uFC52","\u0647\u0645","\uFC53","\u0647\u0649","\uFC54","\u0647\u064A","\uFC55","\u064A\u062C","\uFC56","\u064A\u062D","\uFC57","\u064A\u062E","\uFC58","\u064A\u0645","\uFC59","\u064A\u0649","\uFC5A","\u064A\u064A","\uFC5B","\u0630\u0670","\uFC5C","\u0631\u0670","\uFC5D","\u0649\u0670","\uFC5E","\u0020\u064C\u0651","\uFC5F","\u0020\u064D\u0651","\uFC60","\u0020\u064E\u0651","\uFC61","\u0020\u064F\u0651","\uFC62","\u0020\u0650\u0651","\uFC63","\u0020\u0651\u0670","\uFC64","\u0626\u0631","\uFC65","\u0626\u0632","\uFC66","\u0626\u0645","\uFC67","\u0626\u0646","\uFC68","\u0626\u0649","\uFC69","\u0626\u064A","\uFC6A","\u0628\u0631","\uFC6B","\u0628\u0632","\uFC6C","\u0628\u0645","\uFC6D","\u0628\u0646","\uFC6E","\u0628\u0649","\uFC6F","\u0628\u064A","\uFC70","\u062A\u0631","\uFC71","\u062A\u0632","\uFC72","\u062A\u0645","\uFC73","\u062A\u0646","\uFC74","\u062A\u0649","\uFC75","\u062A\u064A","\uFC76","\u062B\u0631","\uFC77","\u062B\u0632","\uFC78","\u062B\u0645","\uFC79","\u062B\u0646","\uFC7A","\u062B\u0649","\uFC7B","\u062B\u064A","\uFC7C","\u0641\u0649","\uFC7D","\u0641\u064A","\uFC7E","\u0642\u0649","\uFC7F","\u0642\u064A","\uFC80","\u0643\u0627","\uFC81","\u0643\u0644","\uFC82","\u0643\u0645","\uFC83","\u0643\u0649","\uFC84","\u0643\u064A","\uFC85","\u0644\u0645","\uFC86","\u0644\u0649","\uFC87","\u0644\u064A","\uFC88","\u0645\u0627","\uFC89","\u0645\u0645","\uFC8A","\u0646\u0631","\uFC8B","\u0646\u0632","\uFC8C","\u0646\u0645","\uFC8D","\u0646\u0646","\uFC8E","\u0646\u0649","\uFC8F","\u0646\u064A","\uFC90","\u0649\u0670","\uFC91","\u064A\u0631","\uFC92","\u064A\u0632","\uFC93","\u064A\u0645","\uFC94","\u064A\u0646","\uFC95","\u064A\u0649","\uFC96","\u064A\u064A","\uFC97","\u0626\u062C","\uFC98","\u0626\u062D","\uFC99","\u0626\u062E","\uFC9A","\u0626\u0645","\uFC9B","\u0626\u0647","\uFC9C","\u0628\u062C","\uFC9D","\u0628\u062D","\uFC9E","\u0628\u062E","\uFC9F","\u0628\u0645","\uFCA0","\u0628\u0647","\uFCA1","\u062A\u062C","\uFCA2","\u062A\u062D","\uFCA3","\u062A\u062E","\uFCA4","\u062A\u0645","\uFCA5","\u062A\u0647","\uFCA6","\u062B\u0645","\uFCA7","\u062C\u062D","\uFCA8","\u062C\u0645","\uFCA9","\u062D\u062C","\uFCAA","\u062D\u0645","\uFCAB","\u062E\u062C","\uFCAC","\u062E\u0645","\uFCAD","\u0633\u062C","\uFCAE","\u0633\u062D","\uFCAF","\u0633\u062E","\uFCB0","\u0633\u0645","\uFCB1","\u0635\u062D","\uFCB2","\u0635\u062E","\uFCB3","\u0635\u0645","\uFCB4","\u0636\u062C","\uFCB5","\u0636\u062D","\uFCB6","\u0636\u062E","\uFCB7","\u0636\u0645","\uFCB8","\u0637\u062D","\uFCB9","\u0638\u0645","\uFCBA","\u0639\u062C","\uFCBB","\u0639\u0645","\uFCBC","\u063A\u062C","\uFCBD","\u063A\u0645","\uFCBE","\u0641\u062C","\uFCBF","\u0641\u062D","\uFCC0","\u0641\u062E","\uFCC1","\u0641\u0645","\uFCC2","\u0642\u062D","\uFCC3","\u0642\u0645","\uFCC4","\u0643\u062C","\uFCC5","\u0643\u062D","\uFCC6","\u0643\u062E","\uFCC7","\u0643\u0644","\uFCC8","\u0643\u0645","\uFCC9","\u0644\u062C","\uFCCA","\u0644\u062D","\uFCCB","\u0644\u062E","\uFCCC","\u0644\u0645","\uFCCD","\u0644\u0647","\uFCCE","\u0645\u062C","\uFCCF","\u0645\u062D","\uFCD0","\u0645\u062E","\uFCD1","\u0645\u0645","\uFCD2","\u0646\u062C","\uFCD3","\u0646\u062D","\uFCD4","\u0646\u062E","\uFCD5","\u0646\u0645","\uFCD6","\u0646\u0647","\uFCD7","\u0647\u062C","\uFCD8","\u0647\u0645","\uFCD9","\u0647\u0670","\uFCDA","\u064A\u062C","\uFCDB","\u064A\u062D","\uFCDC","\u064A\u062E","\uFCDD","\u064A\u0645","\uFCDE","\u064A\u0647","\uFCDF","\u0626\u0645","\uFCE0","\u0626\u0647","\uFCE1","\u0628\u0645","\uFCE2","\u0628\u0647","\uFCE3","\u062A\u0645","\uFCE4","\u062A\u0647","\uFCE5","\u062B\u0645","\uFCE6","\u062B\u0647","\uFCE7","\u0633\u0645","\uFCE8","\u0633\u0647","\uFCE9","\u0634\u0645","\uFCEA","\u0634\u0647","\uFCEB","\u0643\u0644","\uFCEC","\u0643\u0645","\uFCED","\u0644\u0645","\uFCEE","\u0646\u0645","\uFCEF","\u0646\u0647","\uFCF0","\u064A\u0645","\uFCF1","\u064A\u0647","\uFCF2","\u0640\u064E\u0651","\uFCF3","\u0640\u064F\u0651","\uFCF4","\u0640\u0650\u0651","\uFCF5","\u0637\u0649","\uFCF6","\u0637\u064A","\uFCF7","\u0639\u0649","\uFCF8","\u0639\u064A","\uFCF9","\u063A\u0649","\uFCFA","\u063A\u064A","\uFCFB","\u0633\u0649","\uFCFC","\u0633\u064A","\uFCFD","\u0634\u0649","\uFCFE","\u0634\u064A","\uFCFF","\u062D\u0649","\uFD00","\u062D\u064A","\uFD01","\u062C\u0649","\uFD02","\u062C\u064A","\uFD03","\u062E\u0649","\uFD04","\u062E\u064A","\uFD05","\u0635\u0649","\uFD06","\u0635\u064A","\uFD07","\u0636\u0649","\uFD08","\u0636\u064A","\uFD09","\u0634\u062C","\uFD0A","\u0634\u062D","\uFD0B","\u0634\u062E","\uFD0C","\u0634\u0645","\uFD0D","\u0634\u0631","\uFD0E","\u0633\u0631","\uFD0F","\u0635\u0631","\uFD10","\u0636\u0631","\uFD11","\u0637\u0649","\uFD12","\u0637\u064A","\uFD13","\u0639\u0649","\uFD14","\u0639\u064A","\uFD15","\u063A\u0649","\uFD16","\u063A\u064A","\uFD17","\u0633\u0649","\uFD18","\u0633\u064A","\uFD19","\u0634\u0649","\uFD1A","\u0634\u064A","\uFD1B","\u062D\u0649","\uFD1C","\u062D\u064A","\uFD1D","\u062C\u0649","\uFD1E","\u062C\u064A","\uFD1F","\u062E\u0649","\uFD20","\u062E\u064A","\uFD21","\u0635\u0649","\uFD22","\u0635\u064A","\uFD23","\u0636\u0649","\uFD24","\u0636\u064A","\uFD25","\u0634\u062C","\uFD26","\u0634\u062D","\uFD27","\u0634\u062E","\uFD28","\u0634\u0645","\uFD29","\u0634\u0631","\uFD2A","\u0633\u0631","\uFD2B","\u0635\u0631","\uFD2C","\u0636\u0631","\uFD2D","\u0634\u062C","\uFD2E","\u0634\u062D","\uFD2F","\u0634\u062E","\uFD30","\u0634\u0645","\uFD31","\u0633\u0647","\uFD32","\u0634\u0647","\uFD33","\u0637\u0645","\uFD34","\u0633\u062C","\uFD35","\u0633\u062D","\uFD36","\u0633\u062E","\uFD37","\u0634\u062C","\uFD38","\u0634\u062D","\uFD39","\u0634\u062E","\uFD3A","\u0637\u0645","\uFD3B","\u0638\u0645","\uFD3C","\u0627\u064B","\uFD3D","\u0627\u064B","\uFD50","\u062A\u062C\u0645","\uFD51","\u062A\u062D\u062C","\uFD52","\u062A\u062D\u062C","\uFD53","\u062A\u062D\u0645","\uFD54","\u062A\u062E\u0645","\uFD55","\u062A\u0645\u062C","\uFD56","\u062A\u0645\u062D","\uFD57","\u062A\u0645\u062E","\uFD58","\u062C\u0645\u062D","\uFD59","\u062C\u0645\u062D","\uFD5A","\u062D\u0645\u064A","\uFD5B","\u062D\u0645\u0649","\uFD5C","\u0633\u062D\u062C","\uFD5D","\u0633\u062C\u062D","\uFD5E","\u0633\u062C\u0649","\uFD5F","\u0633\u0645\u062D","\uFD60","\u0633\u0645\u062D","\uFD61","\u0633\u0645\u062C","\uFD62","\u0633\u0645\u0645","\uFD63","\u0633\u0645\u0645","\uFD64","\u0635\u062D\u062D","\uFD65","\u0635\u062D\u062D","\uFD66","\u0635\u0645\u0645","\uFD67","\u0634\u062D\u0645","\uFD68","\u0634\u062D\u0645","\uFD69","\u0634\u062C\u064A","\uFD6A","\u0634\u0645\u062E","\uFD6B","\u0634\u0645\u062E","\uFD6C","\u0634\u0645\u0645","\uFD6D","\u0634\u0645\u0645","\uFD6E","\u0636\u062D\u0649","\uFD6F","\u0636\u062E\u0645","\uFD70","\u0636\u062E\u0645","\uFD71","\u0637\u0645\u062D","\uFD72","\u0637\u0645\u062D","\uFD73","\u0637\u0645\u0645","\uFD74","\u0637\u0645\u064A","\uFD75","\u0639\u062C\u0645","\uFD76","\u0639\u0645\u0645","\uFD77","\u0639\u0645\u0645","\uFD78","\u0639\u0645\u0649","\uFD79","\u063A\u0645\u0645","\uFD7A","\u063A\u0645\u064A","\uFD7B","\u063A\u0645\u0649","\uFD7C","\u0641\u062E\u0645","\uFD7D","\u0641\u062E\u0645","\uFD7E","\u0642\u0645\u062D","\uFD7F","\u0642\u0645\u0645","\uFD80","\u0644\u062D\u0645","\uFD81","\u0644\u062D\u064A","\uFD82","\u0644\u062D\u0649","\uFD83","\u0644\u062C\u062C","\uFD84","\u0644\u062C\u062C","\uFD85","\u0644\u062E\u0645","\uFD86","\u0644\u062E\u0645","\uFD87","\u0644\u0645\u062D","\uFD88","\u0644\u0645\u062D","\uFD89","\u0645\u062D\u062C","\uFD8A","\u0645\u062D\u0645","\uFD8B","\u0645\u062D\u064A","\uFD8C","\u0645\u062C\u062D","\uFD8D","\u0645\u062C\u0645","\uFD8E","\u0645\u062E\u062C","\uFD8F","\u0645\u062E\u0645","\uFD92","\u0645\u062C\u062E","\uFD93","\u0647\u0645\u062C","\uFD94","\u0647\u0645\u0645","\uFD95","\u0646\u062D\u0645","\uFD96","\u0646\u062D\u0649","\uFD97","\u0646\u062C\u0645","\uFD98","\u0646\u062C\u0645","\uFD99","\u0646\u062C\u0649","\uFD9A","\u0646\u0645\u064A","\uFD9B","\u0646\u0645\u0649","\uFD9C","\u064A\u0645\u0645","\uFD9D","\u064A\u0645\u0645","\uFD9E","\u0628\u062E\u064A","\uFD9F","\u062A\u062C\u064A","\uFDA0","\u062A\u062C\u0649","\uFDA1","\u062A\u062E\u064A","\uFDA2","\u062A\u062E\u0649","\uFDA3","\u062A\u0645\u064A","\uFDA4","\u062A\u0645\u0649","\uFDA5","\u062C\u0645\u064A","\uFDA6","\u062C\u062D\u0649","\uFDA7","\u062C\u0645\u0649","\uFDA8","\u0633\u062E\u0649","\uFDA9","\u0635\u062D\u064A","\uFDAA","\u0634\u062D\u064A","\uFDAB","\u0636\u062D\u064A","\uFDAC","\u0644\u062C\u064A","\uFDAD","\u0644\u0645\u064A","\uFDAE","\u064A\u062D\u064A","\uFDAF","\u064A\u062C\u064A","\uFDB0","\u064A\u0645\u064A","\uFDB1","\u0645\u0645\u064A","\uFDB2","\u0642\u0645\u064A","\uFDB3","\u0646\u062D\u064A","\uFDB4","\u0642\u0645\u062D","\uFDB5","\u0644\u062D\u0645","\uFDB6","\u0639\u0645\u064A","\uFDB7","\u0643\u0645\u064A","\uFDB8","\u0646\u062C\u062D","\uFDB9","\u0645\u062E\u064A","\uFDBA","\u0644\u062C\u0645","\uFDBB","\u0643\u0645\u0645","\uFDBC","\u0644\u062C\u0645","\uFDBD","\u0646\u062C\u062D","\uFDBE","\u062C\u062D\u064A","\uFDBF","\u062D\u062C\u064A","\uFDC0","\u0645\u062C\u064A","\uFDC1","\u0641\u0645\u064A","\uFDC2","\u0628\u062D\u064A","\uFDC3","\u0643\u0645\u0645","\uFDC4","\u0639\u062C\u0645","\uFDC5","\u0635\u0645\u0645","\uFDC6","\u0633\u062E\u064A","\uFDC7","\u0646\u062C\u064A","\uFE49","\u203E","\uFE4A","\u203E","\uFE4B","\u203E","\uFE4C","\u203E","\uFE4D","\u005F","\uFE4E","\u005F","\uFE4F","\u005F","\uFE80","\u0621","\uFE81","\u0622","\uFE82","\u0622","\uFE83","\u0623","\uFE84","\u0623","\uFE85","\u0624","\uFE86","\u0624","\uFE87","\u0625","\uFE88","\u0625","\uFE89","\u0626","\uFE8A","\u0626","\uFE8B","\u0626","\uFE8C","\u0626","\uFE8D","\u0627","\uFE8E","\u0627","\uFE8F","\u0628","\uFE90","\u0628","\uFE91","\u0628","\uFE92","\u0628","\uFE93","\u0629","\uFE94","\u0629","\uFE95","\u062A","\uFE96","\u062A","\uFE97","\u062A","\uFE98","\u062A","\uFE99","\u062B","\uFE9A","\u062B","\uFE9B","\u062B","\uFE9C","\u062B","\uFE9D","\u062C","\uFE9E","\u062C","\uFE9F","\u062C","\uFEA0","\u062C","\uFEA1","\u062D","\uFEA2","\u062D","\uFEA3","\u062D","\uFEA4","\u062D","\uFEA5","\u062E","\uFEA6","\u062E","\uFEA7","\u062E","\uFEA8","\u062E","\uFEA9","\u062F","\uFEAA","\u062F","\uFEAB","\u0630","\uFEAC","\u0630","\uFEAD","\u0631","\uFEAE","\u0631","\uFEAF","\u0632","\uFEB0","\u0632","\uFEB1","\u0633","\uFEB2","\u0633","\uFEB3","\u0633","\uFEB4","\u0633","\uFEB5","\u0634","\uFEB6","\u0634","\uFEB7","\u0634","\uFEB8","\u0634","\uFEB9","\u0635","\uFEBA","\u0635","\uFEBB","\u0635","\uFEBC","\u0635","\uFEBD","\u0636","\uFEBE","\u0636","\uFEBF","\u0636","\uFEC0","\u0636","\uFEC1","\u0637","\uFEC2","\u0637","\uFEC3","\u0637","\uFEC4","\u0637","\uFEC5","\u0638","\uFEC6","\u0638","\uFEC7","\u0638","\uFEC8","\u0638","\uFEC9","\u0639","\uFECA","\u0639","\uFECB","\u0639","\uFECC","\u0639","\uFECD","\u063A","\uFECE","\u063A","\uFECF","\u063A","\uFED0","\u063A","\uFED1","\u0641","\uFED2","\u0641","\uFED3","\u0641","\uFED4","\u0641","\uFED5","\u0642","\uFED6","\u0642","\uFED7","\u0642","\uFED8","\u0642","\uFED9","\u0643","\uFEDA","\u0643","\uFEDB","\u0643","\uFEDC","\u0643","\uFEDD","\u0644","\uFEDE","\u0644","\uFEDF","\u0644","\uFEE0","\u0644","\uFEE1","\u0645","\uFEE2","\u0645","\uFEE3","\u0645","\uFEE4","\u0645","\uFEE5","\u0646","\uFEE6","\u0646","\uFEE7","\u0646","\uFEE8","\u0646","\uFEE9","\u0647","\uFEEA","\u0647","\uFEEB","\u0647","\uFEEC","\u0647","\uFEED","\u0648","\uFEEE","\u0648","\uFEEF","\u0649","\uFEF0","\u0649","\uFEF1","\u064A","\uFEF2","\u064A","\uFEF3","\u064A","\uFEF4","\u064A","\uFEF5","\u0644\u0622","\uFEF6","\u0644\u0622","\uFEF7","\u0644\u0623","\uFEF8","\u0644\u0623","\uFEF9","\u0644\u0625","\uFEFA","\u0644\u0625","\uFEFB","\u0644\u0627","\uFEFC","\u0644\u0627"];});function reverseIfRtl(chars){const charsLength=chars.length;if(charsLength<=1||!isRTLRangeFor(chars.charCodeAt(0))){return chars;}
const buf=[];for(let ii=charsLength-1;ii>=0;ii--){buf.push(chars[ii]);}
return buf.join("");}
const SpecialCharRegExp=new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$","u");const CategoryCache=new Map();function getCharUnicodeCategory(char){const cachedCategory=CategoryCache.get(char);if(cachedCategory){return cachedCategory;}
const groups=char.match(SpecialCharRegExp);const category={isWhitespace:!!(groups&&groups[1]),isZeroWidthDiacritic:!!(groups&&groups[2]),isInvisibleFormatMark:!!(groups&&groups[3])};CategoryCache.set(char,category);return category;}
function clearUnicodeCaches(){CategoryCache.clear();}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.getSerifFonts=exports.getNonStdFontMap=exports.getGlyphMapForStandardFonts=exports.getFontNameToFileMap=void 0;exports.getStandardFontName=getStandardFontName;exports.getSymbolsFonts=exports.getSupplementalGlyphMapForCalibri=exports.getSupplementalGlyphMapForArialBlack=exports.getStdFontMap=void 0;var _core_utils=__w_pdfjs_require__(131);var _fonts_utils=__w_pdfjs_require__(163);const getStdFontMap=(0,_core_utils.getLookupTableFactory)(function(t){t["Times-Roman"]="Times-Roman";t.Helvetica="Helvetica";t.Courier="Courier";t.Symbol="Symbol";t["Times-Bold"]="Times-Bold";t["Helvetica-Bold"]="Helvetica-Bold";t["Courier-Bold"]="Courier-Bold";t.ZapfDingbats="ZapfDingbats";t["Times-Italic"]="Times-Italic";t["Helvetica-Oblique"]="Helvetica-Oblique";t["Courier-Oblique"]="Courier-Oblique";t["Times-BoldItalic"]="Times-BoldItalic";t["Helvetica-BoldOblique"]="Helvetica-BoldOblique";t["Courier-BoldOblique"]="Courier-BoldOblique";t.ArialNarrow="Helvetica";t["ArialNarrow-Bold"]="Helvetica-Bold";t["ArialNarrow-BoldItalic"]="Helvetica-BoldOblique";t["ArialNarrow-Italic"]="Helvetica-Oblique";t.ArialBlack="Helvetica";t["ArialBlack-Bold"]="Helvetica-Bold";t["ArialBlack-BoldItalic"]="Helvetica-BoldOblique";t["ArialBlack-Italic"]="Helvetica-Oblique";t["Arial-Black"]="Helvetica";t["Arial-Black-Bold"]="Helvetica-Bold";t["Arial-Black-BoldItalic"]="Helvetica-BoldOblique";t["Arial-Black-Italic"]="Helvetica-Oblique";t.Arial="Helvetica";t["Arial-Bold"]="Helvetica-Bold";t["Arial-BoldItalic"]="Helvetica-BoldOblique";t["Arial-Italic"]="Helvetica-Oblique";t.ArialMT="Helvetica";t["Arial-BoldItalicMT"]="Helvetica-BoldOblique";t["Arial-BoldMT"]="Helvetica-Bold";t["Arial-ItalicMT"]="Helvetica-Oblique";t.ArialUnicodeMS="Helvetica";t["ArialUnicodeMS-Bold"]="Helvetica-Bold";t["ArialUnicodeMS-BoldItalic"]="Helvetica-BoldOblique";t["ArialUnicodeMS-Italic"]="Helvetica-Oblique";t["Courier-BoldItalic"]="Courier-BoldOblique";t["Courier-Italic"]="Courier-Oblique";t.CourierNew="Courier";t["CourierNew-Bold"]="Courier-Bold";t["CourierNew-BoldItalic"]="Courier-BoldOblique";t["CourierNew-Italic"]="Courier-Oblique";t["CourierNewPS-BoldItalicMT"]="Courier-BoldOblique";t["CourierNewPS-BoldMT"]="Courier-Bold";t["CourierNewPS-ItalicMT"]="Courier-Oblique";t.CourierNewPSMT="Courier";t["Helvetica-BoldItalic"]="Helvetica-BoldOblique";t["Helvetica-Italic"]="Helvetica-Oblique";t["Symbol-Bold"]="Symbol";t["Symbol-BoldItalic"]="Symbol";t["Symbol-Italic"]="Symbol";t.TimesNewRoman="Times-Roman";t["TimesNewRoman-Bold"]="Times-Bold";t["TimesNewRoman-BoldItalic"]="Times-BoldItalic";t["TimesNewRoman-Italic"]="Times-Italic";t.TimesNewRomanPS="Times-Roman";t["TimesNewRomanPS-Bold"]="Times-Bold";t["TimesNewRomanPS-BoldItalic"]="Times-BoldItalic";t["TimesNewRomanPS-BoldItalicMT"]="Times-BoldItalic";t["TimesNewRomanPS-BoldMT"]="Times-Bold";t["TimesNewRomanPS-Italic"]="Times-Italic";t["TimesNewRomanPS-ItalicMT"]="Times-Italic";t.TimesNewRomanPSMT="Times-Roman";t["TimesNewRomanPSMT-Bold"]="Times-Bold";t["TimesNewRomanPSMT-BoldItalic"]="Times-BoldItalic";t["TimesNewRomanPSMT-Italic"]="Times-Italic";});exports.getStdFontMap=getStdFontMap;const getFontNameToFileMap=(0,_core_utils.getLookupTableFactory)(function(t){t.Courier="FoxitFixed.pfb";t["Courier-Bold"]="FoxitFixedBold.pfb";t["Courier-BoldOblique"]="FoxitFixedBoldItalic.pfb";t["Courier-Oblique"]="FoxitFixedItalic.pfb";t.Helvetica="FoxitSans.pfb";t["Helvetica-Bold"]="FoxitSansBold.pfb";t["Helvetica-BoldOblique"]="FoxitSansBoldItalic.pfb";t["Helvetica-Oblique"]="FoxitSansItalic.pfb";t["Times-Roman"]="FoxitSerif.pfb";t["Times-Bold"]="FoxitSerifBold.pfb";t["Times-BoldItalic"]="FoxitSerifBoldItalic.pfb";t["Times-Italic"]="FoxitSerifItalic.pfb";t.Symbol="FoxitSymbol.pfb";t.ZapfDingbats="FoxitDingbats.pfb";t["LiberationSans-Regular"]="LiberationSans-Regular.ttf";t["LiberationSans-Bold"]="LiberationSans-Bold.ttf";t["LiberationSans-Italic"]="LiberationSans-Italic.ttf";t["LiberationSans-BoldItalic"]="LiberationSans-BoldItalic.ttf";});exports.getFontNameToFileMap=getFontNameToFileMap;const getNonStdFontMap=(0,_core_utils.getLookupTableFactory)(function(t){t.Calibri="Helvetica";t["Calibri-Bold"]="Helvetica-Bold";t["Calibri-BoldItalic"]="Helvetica-BoldOblique";t["Calibri-Italic"]="Helvetica-Oblique";t.CenturyGothic="Helvetica";t["CenturyGothic-Bold"]="Helvetica-Bold";t["CenturyGothic-BoldItalic"]="Helvetica-BoldOblique";t["CenturyGothic-Italic"]="Helvetica-Oblique";t.ComicSansMS="Comic Sans MS";t["ComicSansMS-Bold"]="Comic Sans MS-Bold";t["ComicSansMS-BoldItalic"]="Comic Sans MS-BoldItalic";t["ComicSansMS-Italic"]="Comic Sans MS-Italic";t["ItcSymbol-Bold"]="Helvetica-Bold";t["ItcSymbol-BoldItalic"]="Helvetica-BoldOblique";t["ItcSymbol-Book"]="Helvetica";t["ItcSymbol-BookItalic"]="Helvetica-Oblique";t["ItcSymbol-Medium"]="Helvetica";t["ItcSymbol-MediumItalic"]="Helvetica-Oblique";t.LucidaConsole="Courier";t["LucidaConsole-Bold"]="Courier-Bold";t["LucidaConsole-BoldItalic"]="Courier-BoldOblique";t["LucidaConsole-Italic"]="Courier-Oblique";t["LucidaSans-Demi"]="Helvetica-Bold";t["MS-Gothic"]="MS Gothic";t["MS-Gothic-Bold"]="MS Gothic-Bold";t["MS-Gothic-BoldItalic"]="MS Gothic-BoldItalic";t["MS-Gothic-Italic"]="MS Gothic-Italic";t["MS-Mincho"]="MS Mincho";t["MS-Mincho-Bold"]="MS Mincho-Bold";t["MS-Mincho-BoldItalic"]="MS Mincho-BoldItalic";t["MS-Mincho-Italic"]="MS Mincho-Italic";t["MS-PGothic"]="MS PGothic";t["MS-PGothic-Bold"]="MS PGothic-Bold";t["MS-PGothic-BoldItalic"]="MS PGothic-BoldItalic";t["MS-PGothic-Italic"]="MS PGothic-Italic";t["MS-PMincho"]="MS PMincho";t["MS-PMincho-Bold"]="MS PMincho-Bold";t["MS-PMincho-BoldItalic"]="MS PMincho-BoldItalic";t["MS-PMincho-Italic"]="MS PMincho-Italic";t.NuptialScript="Times-Italic";t.SegoeUISymbol="Helvetica";t.Wingdings="ZapfDingbats";t["Wingdings-Regular"]="ZapfDingbats";});exports.getNonStdFontMap=getNonStdFontMap;const getSerifFonts=(0,_core_utils.getLookupTableFactory)(function(t){t["Adobe Jenson"]=true;t["Adobe Text"]=true;t.Albertus=true;t.Aldus=true;t.Alexandria=true;t.Algerian=true;t["American Typewriter"]=true;t.Antiqua=true;t.Apex=true;t.Arno=true;t.Aster=true;t.Aurora=true;t.Baskerville=true;t.Bell=true;t.Bembo=true;t["Bembo Schoolbook"]=true;t.Benguiat=true;t["Berkeley Old Style"]=true;t["Bernhard Modern"]=true;t["Berthold City"]=true;t.Bodoni=true;t["Bauer Bodoni"]=true;t["Book Antiqua"]=true;t.Bookman=true;t["Bordeaux Roman"]=true;t["Californian FB"]=true;t.Calisto=true;t.Calvert=true;t.Capitals=true;t.Cambria=true;t.Cartier=true;t.Caslon=true;t.Catull=true;t.Centaur=true;t["Century Old Style"]=true;t["Century Schoolbook"]=true;t.Chaparral=true;t["Charis SIL"]=true;t.Cheltenham=true;t["Cholla Slab"]=true;t.Clarendon=true;t.Clearface=true;t.Cochin=true;t.Colonna=true;t["Computer Modern"]=true;t["Concrete Roman"]=true;t.Constantia=true;t["Cooper Black"]=true;t.Corona=true;t.Ecotype=true;t.Egyptienne=true;t.Elephant=true;t.Excelsior=true;t.Fairfield=true;t["FF Scala"]=true;t.Folkard=true;t.Footlight=true;t.FreeSerif=true;t["Friz Quadrata"]=true;t.Garamond=true;t.Gentium=true;t.Georgia=true;t.Gloucester=true;t["Goudy Old Style"]=true;t["Goudy Schoolbook"]=true;t["Goudy Pro Font"]=true;t.Granjon=true;t["Guardian Egyptian"]=true;t.Heather=true;t.Hercules=true;t["High Tower Text"]=true;t.Hiroshige=true;t["Hoefler Text"]=true;t["Humana Serif"]=true;t.Imprint=true;t["Ionic No. 5"]=true;t.Janson=true;t.Joanna=true;t.Korinna=true;t.Lexicon=true;t.LiberationSerif=true;t["Liberation Serif"]=true;t["Linux Libertine"]=true;t.Literaturnaya=true;t.Lucida=true;t["Lucida Bright"]=true;t.Melior=true;t.Memphis=true;t.Miller=true;t.Minion=true;t.Modern=true;t["Mona Lisa"]=true;t["Mrs Eaves"]=true;t["MS Serif"]=true;t["Museo Slab"]=true;t["New York"]=true;t["Nimbus Roman"]=true;t["NPS Rawlinson Roadway"]=true;t.NuptialScript=true;t.Palatino=true;t.Perpetua=true;t.Plantin=true;t["Plantin Schoolbook"]=true;t.Playbill=true;t["Poor Richard"]=true;t["Rawlinson Roadway"]=true;t.Renault=true;t.Requiem=true;t.Rockwell=true;t.Roman=true;t["Rotis Serif"]=true;t.Sabon=true;t.Scala=true;t.Seagull=true;t.Sistina=true;t.Souvenir=true;t.STIX=true;t["Stone Informal"]=true;t["Stone Serif"]=true;t.Sylfaen=true;t.Times=true;t.Trajan=true;t["Trinité"]=true;t["Trump Mediaeval"]=true;t.Utopia=true;t["Vale Type"]=true;t["Bitstream Vera"]=true;t["Vera Serif"]=true;t.Versailles=true;t.Wanted=true;t.Weiss=true;t["Wide Latin"]=true;t.Windsor=true;t.XITS=true;});exports.getSerifFonts=getSerifFonts;const getSymbolsFonts=(0,_core_utils.getLookupTableFactory)(function(t){t.Dingbats=true;t.Symbol=true;t.ZapfDingbats=true;});exports.getSymbolsFonts=getSymbolsFonts;const getGlyphMapForStandardFonts=(0,_core_utils.getLookupTableFactory)(function(t){t[2]=10;t[3]=32;t[4]=33;t[5]=34;t[6]=35;t[7]=36;t[8]=37;t[9]=38;t[10]=39;t[11]=40;t[12]=41;t[13]=42;t[14]=43;t[15]=44;t[16]=45;t[17]=46;t[18]=47;t[19]=48;t[20]=49;t[21]=50;t[22]=51;t[23]=52;t[24]=53;t[25]=54;t[26]=55;t[27]=56;t[28]=57;t[29]=58;t[30]=894;t[31]=60;t[32]=61;t[33]=62;t[34]=63;t[35]=64;t[36]=65;t[37]=66;t[38]=67;t[39]=68;t[40]=69;t[41]=70;t[42]=71;t[43]=72;t[44]=73;t[45]=74;t[46]=75;t[47]=76;t[48]=77;t[49]=78;t[50]=79;t[51]=80;t[52]=81;t[53]=82;t[54]=83;t[55]=84;t[56]=85;t[57]=86;t[58]=87;t[59]=88;t[60]=89;t[61]=90;t[62]=91;t[63]=92;t[64]=93;t[65]=94;t[66]=95;t[67]=96;t[68]=97;t[69]=98;t[70]=99;t[71]=100;t[72]=101;t[73]=102;t[74]=103;t[75]=104;t[76]=105;t[77]=106;t[78]=107;t[79]=108;t[80]=109;t[81]=110;t[82]=111;t[83]=112;t[84]=113;t[85]=114;t[86]=115;t[87]=116;t[88]=117;t[89]=118;t[90]=119;t[91]=120;t[92]=121;t[93]=122;t[94]=123;t[95]=124;t[96]=125;t[97]=126;t[98]=196;t[99]=197;t[100]=199;t[101]=201;t[102]=209;t[103]=214;t[104]=220;t[105]=225;t[106]=224;t[107]=226;t[108]=228;t[109]=227;t[110]=229;t[111]=231;t[112]=233;t[113]=232;t[114]=234;t[115]=235;t[116]=237;t[117]=236;t[118]=238;t[119]=239;t[120]=241;t[121]=243;t[122]=242;t[123]=244;t[124]=246;t[125]=245;t[126]=250;t[127]=249;t[128]=251;t[129]=252;t[130]=8224;t[131]=176;t[132]=162;t[133]=163;t[134]=167;t[135]=8226;t[136]=182;t[137]=223;t[138]=174;t[139]=169;t[140]=8482;t[141]=180;t[142]=168;t[143]=8800;t[144]=198;t[145]=216;t[146]=8734;t[147]=177;t[148]=8804;t[149]=8805;t[150]=165;t[151]=181;t[152]=8706;t[153]=8721;t[154]=8719;t[156]=8747;t[157]=170;t[158]=186;t[159]=8486;t[160]=230;t[161]=248;t[162]=191;t[163]=161;t[164]=172;t[165]=8730;t[166]=402;t[167]=8776;t[168]=8710;t[169]=171;t[170]=187;t[171]=8230;t[200]=193;t[203]=205;t[210]=218;t[223]=711;t[224]=321;t[225]=322;t[226]=352;t[227]=353;t[228]=381;t[229]=382;t[233]=221;t[234]=253;t[252]=263;t[253]=268;t[254]=269;t[258]=258;t[260]=260;t[261]=261;t[265]=280;t[266]=281;t[267]=282;t[268]=283;t[269]=313;t[275]=323;t[276]=324;t[278]=328;t[283]=344;t[284]=345;t[285]=346;t[286]=347;t[292]=367;t[295]=377;t[296]=378;t[298]=380;t[305]=963;t[306]=964;t[307]=966;t[308]=8215;t[309]=8252;t[310]=8319;t[311]=8359;t[312]=8592;t[313]=8593;t[337]=9552;t[493]=1039;t[494]=1040;t[672]=1488;t[673]=1489;t[674]=1490;t[675]=1491;t[676]=1492;t[677]=1493;t[678]=1494;t[679]=1495;t[680]=1496;t[681]=1497;t[682]=1498;t[683]=1499;t[684]=1500;t[685]=1501;t[686]=1502;t[687]=1503;t[688]=1504;t[689]=1505;t[690]=1506;t[691]=1507;t[692]=1508;t[693]=1509;t[694]=1510;t[695]=1511;t[696]=1512;t[697]=1513;t[698]=1514;t[705]=1524;t[706]=8362;t[710]=64288;t[711]=64298;t[759]=1617;t[761]=1776;t[763]=1778;t[775]=1652;t[777]=1764;t[778]=1780;t[779]=1781;t[780]=1782;t[782]=771;t[783]=64726;t[786]=8363;t[788]=8532;t[790]=768;t[791]=769;t[792]=768;t[795]=803;t[797]=64336;t[798]=64337;t[799]=64342;t[800]=64343;t[801]=64344;t[802]=64345;t[803]=64362;t[804]=64363;t[805]=64364;t[2424]=7821;t[2425]=7822;t[2426]=7823;t[2427]=7824;t[2428]=7825;t[2429]=7826;t[2430]=7827;t[2433]=7682;t[2678]=8045;t[2679]=8046;t[2830]=1552;t[2838]=686;t[2840]=751;t[2842]=753;t[2843]=754;t[2844]=755;t[2846]=757;t[2856]=767;t[2857]=848;t[2858]=849;t[2862]=853;t[2863]=854;t[2864]=855;t[2865]=861;t[2866]=862;t[2906]=7460;t[2908]=7462;t[2909]=7463;t[2910]=7464;t[2912]=7466;t[2913]=7467;t[2914]=7468;t[2916]=7470;t[2917]=7471;t[2918]=7472;t[2920]=7474;t[2921]=7475;t[2922]=7476;t[2924]=7478;t[2925]=7479;t[2926]=7480;t[2928]=7482;t[2929]=7483;t[2930]=7484;t[2932]=7486;t[2933]=7487;t[2934]=7488;t[2936]=7490;t[2937]=7491;t[2938]=7492;t[2940]=7494;t[2941]=7495;t[2942]=7496;t[2944]=7498;t[2946]=7500;t[2948]=7502;t[2950]=7504;t[2951]=7505;t[2952]=7506;t[2954]=7508;t[2955]=7509;t[2956]=7510;t[2958]=7512;t[2959]=7513;t[2960]=7514;t[2962]=7516;t[2963]=7517;t[2964]=7518;t[2966]=7520;t[2967]=7521;t[2968]=7522;t[2970]=7524;t[2971]=7525;t[2972]=7526;t[2974]=7528;t[2975]=7529;t[2976]=7530;t[2978]=1537;t[2979]=1538;t[2980]=1539;t[2982]=1549;t[2983]=1551;t[2984]=1552;t[2986]=1554;t[2987]=1555;t[2988]=1556;t[2990]=1623;t[2991]=1624;t[2995]=1775;t[2999]=1791;t[3002]=64290;t[3003]=64291;t[3004]=64292;t[3006]=64294;t[3007]=64295;t[3008]=64296;t[3011]=1900;t[3014]=8223;t[3015]=8244;t[3017]=7532;t[3018]=7533;t[3019]=7534;t[3075]=7590;t[3076]=7591;t[3079]=7594;t[3080]=7595;t[3083]=7598;t[3084]=7599;t[3087]=7602;t[3088]=7603;t[3091]=7606;t[3092]=7607;t[3095]=7610;t[3096]=7611;t[3099]=7614;t[3100]=7615;t[3103]=7618;t[3104]=7619;t[3107]=8337;t[3108]=8338;t[3116]=1884;t[3119]=1885;t[3120]=1885;t[3123]=1886;t[3124]=1886;t[3127]=1887;t[3128]=1887;t[3131]=1888;t[3132]=1888;t[3135]=1889;t[3136]=1889;t[3139]=1890;t[3140]=1890;t[3143]=1891;t[3144]=1891;t[3147]=1892;t[3148]=1892;t[3153]=580;t[3154]=581;t[3157]=584;t[3158]=585;t[3161]=588;t[3162]=589;t[3165]=891;t[3166]=892;t[3169]=1274;t[3170]=1275;t[3173]=1278;t[3174]=1279;t[3181]=7622;t[3182]=7623;t[3282]=11799;t[3316]=578;t[3379]=42785;t[3393]=1159;t[3416]=8377;});exports.getGlyphMapForStandardFonts=getGlyphMapForStandardFonts;const getSupplementalGlyphMapForArialBlack=(0,_core_utils.getLookupTableFactory)(function(t){t[227]=322;t[264]=261;t[291]=346;});exports.getSupplementalGlyphMapForArialBlack=getSupplementalGlyphMapForArialBlack;const getSupplementalGlyphMapForCalibri=(0,_core_utils.getLookupTableFactory)(function(t){t[1]=32;t[4]=65;t[6]=193;t[17]=66;t[18]=67;t[21]=268;t[24]=68;t[28]=69;t[30]=201;t[32]=282;t[38]=70;t[39]=71;t[44]=72;t[47]=73;t[49]=205;t[58]=74;t[60]=75;t[62]=76;t[68]=77;t[69]=78;t[75]=79;t[87]=80;t[89]=81;t[90]=82;t[92]=344;t[94]=83;t[97]=352;t[100]=84;t[104]=85;t[115]=86;t[116]=87;t[121]=88;t[122]=89;t[124]=221;t[127]=90;t[129]=381;t[258]=97;t[260]=225;t[268]=261;t[271]=98;t[272]=99;t[273]=263;t[275]=269;t[282]=100;t[286]=101;t[288]=233;t[290]=283;t[295]=281;t[296]=102;t[336]=103;t[346]=104;t[349]=105;t[351]=237;t[361]=106;t[364]=107;t[367]=108;t[371]=322;t[373]=109;t[374]=110;t[381]=111;t[383]=243;t[393]=112;t[395]=113;t[396]=114;t[398]=345;t[400]=115;t[401]=347;t[403]=353;t[410]=116;t[437]=117;t[448]=118;t[449]=119;t[454]=120;t[455]=121;t[457]=253;t[460]=122;t[462]=382;t[463]=380;t[853]=44;t[855]=58;t[856]=46;t[876]=47;t[878]=45;t[882]=45;t[894]=40;t[895]=41;t[896]=91;t[897]=93;t[923]=64;t[1004]=48;t[1005]=49;t[1006]=50;t[1007]=51;t[1008]=52;t[1009]=53;t[1010]=54;t[1011]=55;t[1012]=56;t[1013]=57;t[1081]=37;t[1085]=43;t[1086]=45;});exports.getSupplementalGlyphMapForCalibri=getSupplementalGlyphMapForCalibri;function getStandardFontName(name){const fontName=(0,_fonts_utils.normalizeFontName)(name);const stdFontMap=getStdFontMap();return stdFontMap[fontName];}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.ToUnicodeMap=exports.IdentityToUnicodeMap=void 0;var _util=__w_pdfjs_require__(2);class ToUnicodeMap{constructor(){let cmap=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];this._map=cmap;}
get length(){return this._map.length;}
forEach(callback){for(const charCode in this._map){callback(charCode,this._map[charCode].charCodeAt(0));}}
has(i){return this._map[i]!==undefined;}
get(i){return this._map[i];}
charCodeOf(value){const map=this._map;if(map.length<=0x10000){return map.indexOf(value);}
for(const charCode in map){if(map[charCode]===value){return charCode|0;}}
return-1;}
amend(map){for(const charCode in map){this._map[charCode]=map[charCode];}}}
exports.ToUnicodeMap=ToUnicodeMap;class IdentityToUnicodeMap{constructor(firstChar,lastChar){this.firstChar=firstChar;this.lastChar=lastChar;}
get length(){return this.lastChar+1-this.firstChar;}
forEach(callback){for(let i=this.firstChar,ii=this.lastChar;i<=ii;i++){callback(i,i);}}
has(i){return this.firstChar<=i&&i<=this.lastChar;}
get(i){if(this.firstChar<=i&&i<=this.lastChar){return String.fromCharCode(i);}
return undefined;}
charCodeOf(v){return Number.isInteger(v)&&v>=this.firstChar&&v<=this.lastChar?v:-1;}
amend(map){(0,_util.unreachable)("Should not call amend()");}}
exports.IdentityToUnicodeMap=IdentityToUnicodeMap;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.CFFFont=void 0;var _cff_parser=__w_pdfjs_require__(160);var _fonts_utils=__w_pdfjs_require__(163);var _util=__w_pdfjs_require__(2);class CFFFont{constructor(file,properties){this.properties=properties;const parser=new _cff_parser.CFFParser(file,properties,_fonts_utils.SEAC_ANALYSIS_ENABLED);this.cff=parser.parse();this.cff.duplicateFirstGlyph();const compiler=new _cff_parser.CFFCompiler(this.cff);this.seacs=this.cff.seacs;try{this.data=compiler.compile();}catch(e){(0,_util.warn)("Failed to compile font "+properties.loadedName);this.data=file;}
this._createBuiltInEncoding();}
get numGlyphs(){return this.cff.charStrings.count;}
getCharset(){return this.cff.charset.charset;}
getGlyphMapping(){const cff=this.cff;const properties=this.properties;const charsets=cff.charset.charset;let charCodeToGlyphId;let glyphId;if(properties.composite){charCodeToGlyphId=Object.create(null);let charCode;if(cff.isCIDFont){for(glyphId=0;glyphId<charsets.length;glyphId++){const cid=charsets[glyphId];charCode=properties.cMap.charCodeOf(cid);charCodeToGlyphId[charCode]=glyphId;}}else{for(glyphId=0;glyphId<cff.charStrings.count;glyphId++){charCode=properties.cMap.charCodeOf(glyphId);charCodeToGlyphId[charCode]=glyphId;}}
return charCodeToGlyphId;}
let encoding=cff.encoding?cff.encoding.encoding:null;if(properties.isInternalFont){encoding=properties.defaultEncoding;}
charCodeToGlyphId=(0,_fonts_utils.type1FontGlyphMapping)(properties,encoding,charsets);return charCodeToGlyphId;}
hasGlyphId(id){return this.cff.hasGlyphId(id);}
_createBuiltInEncoding(){const{charset,encoding}=this.cff;if(!charset||!encoding){return;}
const charsets=charset.charset,encodings=encoding.encoding;const map=[];for(const charCode in encodings){const glyphId=encodings[charCode];if(glyphId>=0){const glyphName=charsets[glyphId];if(glyphName){map[charCode]=glyphName;}}}
if(map.length>0){this.properties.builtInEncoding=map;}}}
exports.CFFFont=CFFFont;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.FontRendererFactory=void 0;var _util=__w_pdfjs_require__(2);var _cff_parser=__w_pdfjs_require__(160);var _glyphlist=__w_pdfjs_require__(164);var _encodings=__w_pdfjs_require__(162);var _stream=__w_pdfjs_require__(135);function getUint32(data,offset){return(data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3])>>>0;}
function getUint16(data,offset){return data[offset]<<8|data[offset+1];}
function getInt16(data,offset){return(data[offset]<<24|data[offset+1]<<16)>>16;}
function getInt8(data,offset){return data[offset]<<24>>24;}
function getFloat214(data,offset){return getInt16(data,offset)/16384;}
function getSubroutineBias(subrs){const numSubrs=subrs.length;let bias=32768;if(numSubrs<1240){bias=107;}else if(numSubrs<33900){bias=1131;}
return bias;}
function parseCmap(data,start,end){const offset=getUint16(data,start+2)===1?getUint32(data,start+8):getUint32(data,start+16);const format=getUint16(data,start+offset);let ranges,p,i;if(format===4){getUint16(data,start+offset+2);const segCount=getUint16(data,start+offset+6)>>1;p=start+offset+14;ranges=[];for(i=0;i<segCount;i++,p+=2){ranges[i]={end:getUint16(data,p)};}
p+=2;for(i=0;i<segCount;i++,p+=2){ranges[i].start=getUint16(data,p);}
for(i=0;i<segCount;i++,p+=2){ranges[i].idDelta=getUint16(data,p);}
for(i=0;i<segCount;i++,p+=2){let idOffset=getUint16(data,p);if(idOffset===0){continue;}
ranges[i].ids=[];for(let j=0,jj=ranges[i].end-ranges[i].start+1;j<jj;j++){ranges[i].ids[j]=getUint16(data,p+idOffset);idOffset+=2;}}
return ranges;}else if(format===12){const groups=getUint32(data,start+offset+12);p=start+offset+16;ranges=[];for(i=0;i<groups;i++){start=getUint32(data,p);ranges.push({start,end:getUint32(data,p+4),idDelta:getUint32(data,p+8)-start});p+=12;}
return ranges;}
throw new _util.FormatError(`unsupported cmap: ${format}`);}
function parseCff(data,start,end,seacAnalysisEnabled){const properties={};const parser=new _cff_parser.CFFParser(new _stream.Stream(data,start,end-start),properties,seacAnalysisEnabled);const cff=parser.parse();return{glyphs:cff.charStrings.objects,subrs:cff.topDict.privateDict&&cff.topDict.privateDict.subrsIndex&&cff.topDict.privateDict.subrsIndex.objects,gsubrs:cff.globalSubrIndex&&cff.globalSubrIndex.objects,isCFFCIDFont:cff.isCIDFont,fdSelect:cff.fdSelect,fdArray:cff.fdArray};}
function parseGlyfTable(glyf,loca,isGlyphLocationsLong){let itemSize,itemDecode;if(isGlyphLocationsLong){itemSize=4;itemDecode=getUint32;}else{itemSize=2;itemDecode=(data,offset)=>2*getUint16(data,offset);}
const glyphs=[];let startOffset=itemDecode(loca,0);for(let j=itemSize;j<loca.length;j+=itemSize){const endOffset=itemDecode(loca,j);glyphs.push(glyf.subarray(startOffset,endOffset));startOffset=endOffset;}
return glyphs;}
function lookupCmap(ranges,unicode){const code=unicode.codePointAt(0);let gid=0,l=0,r=ranges.length-1;while(l<r){const c=l+r+1>>1;if(code<ranges[c].start){r=c-1;}else{l=c;}}
if(ranges[l].start<=code&&code<=ranges[l].end){gid=ranges[l].idDelta+(ranges[l].ids?ranges[l].ids[code-ranges[l].start]:code)&0xffff;}
return{charCode:code,glyphId:gid};}
function compileGlyf(code,cmds,font){function moveTo(x,y){cmds.push({cmd:"moveTo",args:[x,y]});}
function lineTo(x,y){cmds.push({cmd:"lineTo",args:[x,y]});}
function quadraticCurveTo(xa,ya,x,y){cmds.push({cmd:"quadraticCurveTo",args:[xa,ya,x,y]});}
let i=0;const numberOfContours=getInt16(code,i);let flags;let x=0,y=0;i+=10;if(numberOfContours<0){do{flags=getUint16(code,i);const glyphIndex=getUint16(code,i+2);i+=4;let arg1,arg2;if(flags&0x01){if(flags&0x02){arg1=getInt16(code,i);arg2=getInt16(code,i+2);}else{arg1=getUint16(code,i);arg2=getUint16(code,i+2);}
i+=4;}else{if(flags&0x02){arg1=getInt8(code,i++);arg2=getInt8(code,i++);}else{arg1=code[i++];arg2=code[i++];}}
if(flags&0x02){x=arg1;y=arg2;}else{x=0;y=0;}
let scaleX=1,scaleY=1,scale01=0,scale10=0;if(flags&0x08){scaleX=scaleY=getFloat214(code,i);i+=2;}else if(flags&0x40){scaleX=getFloat214(code,i);scaleY=getFloat214(code,i+2);i+=4;}else if(flags&0x80){scaleX=getFloat214(code,i);scale01=getFloat214(code,i+2);scale10=getFloat214(code,i+4);scaleY=getFloat214(code,i+6);i+=8;}
const subglyph=font.glyphs[glyphIndex];if(subglyph){cmds.push({cmd:"save"},{cmd:"transform",args:[scaleX,scale01,scale10,scaleY,x,y]});if(!(flags&0x02)){}
compileGlyf(subglyph,cmds,font);cmds.push({cmd:"restore"});}}while(flags&0x20);}else{const endPtsOfContours=[];let j,jj;for(j=0;j<numberOfContours;j++){endPtsOfContours.push(getUint16(code,i));i+=2;}
const instructionLength=getUint16(code,i);i+=2+instructionLength;const numberOfPoints=endPtsOfContours.at(-1)+1;const points=[];while(points.length<numberOfPoints){flags=code[i++];let repeat=1;if(flags&0x08){repeat+=code[i++];}
while(repeat-->0){points.push({flags});}}
for(j=0;j<numberOfPoints;j++){switch(points[j].flags&0x12){case 0x00:x+=getInt16(code,i);i+=2;break;case 0x02:x-=code[i++];break;case 0x12:x+=code[i++];break;}
points[j].x=x;}
for(j=0;j<numberOfPoints;j++){switch(points[j].flags&0x24){case 0x00:y+=getInt16(code,i);i+=2;break;case 0x04:y-=code[i++];break;case 0x24:y+=code[i++];break;}
points[j].y=y;}
let startPoint=0;for(i=0;i<numberOfContours;i++){const endPoint=endPtsOfContours[i];const contour=points.slice(startPoint,endPoint+1);if(contour[0].flags&1){contour.push(contour[0]);}else if(contour.at(-1).flags&1){contour.unshift(contour.at(-1));}else{const p={flags:1,x:(contour[0].x+contour.at(-1).x)/2,y:(contour[0].y+contour.at(-1).y)/2};contour.unshift(p);contour.push(p);}
moveTo(contour[0].x,contour[0].y);for(j=1,jj=contour.length;j<jj;j++){if(contour[j].flags&1){lineTo(contour[j].x,contour[j].y);}else if(contour[j+1].flags&1){quadraticCurveTo(contour[j].x,contour[j].y,contour[j+1].x,contour[j+1].y);j++;}else{quadraticCurveTo(contour[j].x,contour[j].y,(contour[j].x+contour[j+1].x)/2,(contour[j].y+contour[j+1].y)/2);}}
startPoint=endPoint+1;}}}
function compileCharString(charStringCode,cmds,font,glyphId){function moveTo(x,y){cmds.push({cmd:"moveTo",args:[x,y]});}
function lineTo(x,y){cmds.push({cmd:"lineTo",args:[x,y]});}
function bezierCurveTo(x1,y1,x2,y2,x,y){cmds.push({cmd:"bezierCurveTo",args:[x1,y1,x2,y2,x,y]});}
const stack=[];let x=0,y=0;let stems=0;function parse(code){let i=0;while(i<code.length){let stackClean=false;let v=code[i++];let xa,xb,ya,yb,y1,y2,y3,n,subrCode;switch(v){case 1:stems+=stack.length>>1;stackClean=true;break;case 3:stems+=stack.length>>1;stackClean=true;break;case 4:y+=stack.pop();moveTo(x,y);stackClean=true;break;case 5:while(stack.length>0){x+=stack.shift();y+=stack.shift();lineTo(x,y);}
break;case 6:while(stack.length>0){x+=stack.shift();lineTo(x,y);if(stack.length===0){break;}
y+=stack.shift();lineTo(x,y);}
break;case 7:while(stack.length>0){y+=stack.shift();lineTo(x,y);if(stack.length===0){break;}
x+=stack.shift();lineTo(x,y);}
break;case 8:while(stack.length>0){xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y);}
break;case 10:n=stack.pop();subrCode=null;if(font.isCFFCIDFont){const fdIndex=font.fdSelect.getFDIndex(glyphId);if(fdIndex>=0&&fdIndex<font.fdArray.length){const fontDict=font.fdArray[fdIndex];let subrs;if(fontDict.privateDict&&fontDict.privateDict.subrsIndex){subrs=fontDict.privateDict.subrsIndex.objects;}
if(subrs){n+=getSubroutineBias(subrs);subrCode=subrs[n];}}else{(0,_util.warn)("Invalid fd index for glyph index.");}}else{subrCode=font.subrs[n+font.subrsBias];}
if(subrCode){parse(subrCode);}
break;case 11:return;case 12:v=code[i++];switch(v){case 34:xa=x+stack.shift();xb=xa+stack.shift();y1=y+stack.shift();x=xb+stack.shift();bezierCurveTo(xa,y,xb,y1,x,y1);xa=x+stack.shift();xb=xa+stack.shift();x=xb+stack.shift();bezierCurveTo(xa,y1,xb,y,x,y);break;case 35:xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y);xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y);stack.pop();break;case 36:xa=x+stack.shift();y1=y+stack.shift();xb=xa+stack.shift();y2=y1+stack.shift();x=xb+stack.shift();bezierCurveTo(xa,y1,xb,y2,x,y2);xa=x+stack.shift();xb=xa+stack.shift();y3=y2+stack.shift();x=xb+stack.shift();bezierCurveTo(xa,y2,xb,y3,x,y);break;case 37:const x0=x,y0=y;xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y);xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb;y=yb;if(Math.abs(x-x0)>Math.abs(y-y0)){x+=stack.shift();}else{y+=stack.shift();}
bezierCurveTo(xa,ya,xb,yb,x,y);break;default:throw new _util.FormatError(`unknown operator: 12 ${v}`);}
break;case 14:if(stack.length>=4){const achar=stack.pop();const bchar=stack.pop();y=stack.pop();x=stack.pop();cmds.push({cmd:"save"},{cmd:"translate",args:[x,y]});let cmap=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]]));compileCharString(font.glyphs[cmap.glyphId],cmds,font,cmap.glyphId);cmds.push({cmd:"restore"});cmap=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]]));compileCharString(font.glyphs[cmap.glyphId],cmds,font,cmap.glyphId);}
return;case 18:stems+=stack.length>>1;stackClean=true;break;case 19:stems+=stack.length>>1;i+=stems+7>>3;stackClean=true;break;case 20:stems+=stack.length>>1;i+=stems+7>>3;stackClean=true;break;case 21:y+=stack.pop();x+=stack.pop();moveTo(x,y);stackClean=true;break;case 22:x+=stack.pop();moveTo(x,y);stackClean=true;break;case 23:stems+=stack.length>>1;stackClean=true;break;case 24:while(stack.length>2){xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y);}
x+=stack.shift();y+=stack.shift();lineTo(x,y);break;case 25:while(stack.length>6){x+=stack.shift();y+=stack.shift();lineTo(x,y);}
xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y);break;case 26:if(stack.length%2){x+=stack.shift();}
while(stack.length>0){xa=x;ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb;y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y);}
break;case 27:if(stack.length%2){y+=stack.shift();}
while(stack.length>0){xa=x+stack.shift();ya=y;xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb;bezierCurveTo(xa,ya,xb,yb,x,y);}
break;case 28:stack.push((code[i]<<24|code[i+1]<<16)>>16);i+=2;break;case 29:n=stack.pop()+font.gsubrsBias;subrCode=font.gsubrs[n];if(subrCode){parse(subrCode);}
break;case 30:while(stack.length>0){xa=x;ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+(stack.length===1?stack.shift():0);bezierCurveTo(xa,ya,xb,yb,x,y);if(stack.length===0){break;}
xa=x+stack.shift();ya=y;xb=xa+stack.shift();yb=ya+stack.shift();y=yb+stack.shift();x=xb+(stack.length===1?stack.shift():0);bezierCurveTo(xa,ya,xb,yb,x,y);}
break;case 31:while(stack.length>0){xa=x+stack.shift();ya=y;xb=xa+stack.shift();yb=ya+stack.shift();y=yb+stack.shift();x=xb+(stack.length===1?stack.shift():0);bezierCurveTo(xa,ya,xb,yb,x,y);if(stack.length===0){break;}
xa=x;ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+(stack.length===1?stack.shift():0);bezierCurveTo(xa,ya,xb,yb,x,y);}
break;default:if(v<32){throw new _util.FormatError(`unknown operator: ${v}`);}
if(v<247){stack.push(v-139);}else if(v<251){stack.push((v-247)*256+code[i++]+108);}else if(v<255){stack.push(-(v-251)*256-code[i++]-108);}else{stack.push((code[i]<<24|code[i+1]<<16|code[i+2]<<8|code[i+3])/65536);i+=4;}
break;}
if(stackClean){stack.length=0;}}}
parse(charStringCode);}
const NOOP=[];class CompiledFont{constructor(fontMatrix){if(this.constructor===CompiledFont){(0,_util.unreachable)("Cannot initialize CompiledFont.");}
this.fontMatrix=fontMatrix;this.compiledGlyphs=Object.create(null);this.compiledCharCodeToGlyphId=Object.create(null);}
getPathJs(unicode){const{charCode,glyphId}=lookupCmap(this.cmap,unicode);let fn=this.compiledGlyphs[glyphId];if(!fn){try{fn=this.compileGlyph(this.glyphs[glyphId],glyphId);this.compiledGlyphs[glyphId]=fn;}catch(ex){this.compiledGlyphs[glyphId]=NOOP;if(this.compiledCharCodeToGlyphId[charCode]===undefined){this.compiledCharCodeToGlyphId[charCode]=glyphId;}
throw ex;}}
if(this.compiledCharCodeToGlyphId[charCode]===undefined){this.compiledCharCodeToGlyphId[charCode]=glyphId;}
return fn;}
compileGlyph(code,glyphId){if(!code||code.length===0||code[0]===14){return NOOP;}
let fontMatrix=this.fontMatrix;if(this.isCFFCIDFont){const fdIndex=this.fdSelect.getFDIndex(glyphId);if(fdIndex>=0&&fdIndex<this.fdArray.length){const fontDict=this.fdArray[fdIndex];fontMatrix=fontDict.getByName("FontMatrix")||_util.FONT_IDENTITY_MATRIX;}else{(0,_util.warn)("Invalid fd index for glyph index.");}}
const cmds=[{cmd:"save"},{cmd:"transform",args:fontMatrix.slice()},{cmd:"scale",args:["size","-size"]}];this.compileGlyphImpl(code,cmds,glyphId);cmds.push({cmd:"restore"});return cmds;}
compileGlyphImpl(){(0,_util.unreachable)("Children classes should implement this.");}
hasBuiltPath(unicode){const{charCode,glyphId}=lookupCmap(this.cmap,unicode);return this.compiledGlyphs[glyphId]!==undefined&&this.compiledCharCodeToGlyphId[charCode]!==undefined;}}
class TrueTypeCompiled extends CompiledFont{constructor(glyphs,cmap,fontMatrix){super(fontMatrix||[0.000488,0,0,0.000488,0,0]);this.glyphs=glyphs;this.cmap=cmap;}
compileGlyphImpl(code,cmds){compileGlyf(code,cmds,this);}}
class Type2Compiled extends CompiledFont{constructor(cffInfo,cmap,fontMatrix,glyphNameMap){super(fontMatrix||[0.001,0,0,0.001,0,0]);this.glyphs=cffInfo.glyphs;this.gsubrs=cffInfo.gsubrs||[];this.subrs=cffInfo.subrs||[];this.cmap=cmap;this.glyphNameMap=glyphNameMap||(0,_glyphlist.getGlyphsUnicode)();this.gsubrsBias=getSubroutineBias(this.gsubrs);this.subrsBias=getSubroutineBias(this.subrs);this.isCFFCIDFont=cffInfo.isCFFCIDFont;this.fdSelect=cffInfo.fdSelect;this.fdArray=cffInfo.fdArray;}
compileGlyphImpl(code,cmds,glyphId){compileCharString(code,cmds,this,glyphId);}}
class FontRendererFactory{static create(font,seacAnalysisEnabled){const data=new Uint8Array(font.data);let cmap,glyf,loca,cff,indexToLocFormat,unitsPerEm;const numTables=getUint16(data,4);for(let i=0,p=12;i<numTables;i++,p+=16){const tag=(0,_util.bytesToString)(data.subarray(p,p+4));const offset=getUint32(data,p+8);const length=getUint32(data,p+12);switch(tag){case"cmap":cmap=parseCmap(data,offset,offset+length);break;case"glyf":glyf=data.subarray(offset,offset+length);break;case"loca":loca=data.subarray(offset,offset+length);break;case"head":unitsPerEm=getUint16(data,offset+18);indexToLocFormat=getUint16(data,offset+50);break;case"CFF ":cff=parseCff(data,offset,offset+length,seacAnalysisEnabled);break;}}
if(glyf){const fontMatrix=!unitsPerEm?font.fontMatrix:[1/unitsPerEm,0,0,1/unitsPerEm,0,0];return new TrueTypeCompiled(parseGlyfTable(glyf,loca,indexToLocFormat),cmap,fontMatrix);}
return new Type2Compiled(cff,cmap,font.fontMatrix,font.glyphNameMap);}}
exports.FontRendererFactory=FontRendererFactory;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.getMetrics=exports.getFontBasicMetrics=void 0;var _core_utils=__w_pdfjs_require__(131);const getMetrics=(0,_core_utils.getLookupTableFactory)(function(t){t.Courier=600;t["Courier-Bold"]=600;t["Courier-BoldOblique"]=600;t["Courier-Oblique"]=600;t.Helvetica=(0,_core_utils.getLookupTableFactory)(function(t){t.space=278;t.exclam=278;t.quotedbl=355;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=667;t.quoteright=222;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=278;t.semicolon=278;t.less=584;t.equal=584;t.greater=584;t.question=556;t.at=1015;t.A=667;t.B=667;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=500;t.K=667;t.L=556;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=278;t.backslash=278;t.bracketright=278;t.asciicircum=469;t.underscore=556;t.quoteleft=222;t.a=556;t.b=556;t.c=500;t.d=556;t.e=556;t.f=278;t.g=556;t.h=556;t.i=222;t.j=222;t.k=500;t.l=222;t.m=833;t.n=556;t.o=556;t.p=556;t.q=556;t.r=333;t.s=500;t.t=278;t.u=556;t.v=500;t.w=722;t.x=500;t.y=500;t.z=500;t.braceleft=334;t.bar=260;t.braceright=334;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=191;t.quotedblleft=333;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=500;t.fl=500;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=537;t.bullet=350;t.quotesinglbase=222;t.quotedblbase=333;t.quotedblright=333;t.guillemotright=556;t.ellipsis=1000;t.perthousand=1000;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1000;t.AE=1000;t.ordfeminine=370;t.Lslash=556;t.Oslash=778;t.OE=1000;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=222;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=556;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=667;t.aacute=556;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=500;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=500;t.aring=556;t.Ncommaaccent=722;t.lacute=222;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=500;t.scedilla=500;t.iacute=278;t.lozenge=471;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=556;t.acircumflex=556;t.Amacron=667;t.rcaron=333;t.ccedilla=500;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=643;t.Umacron=722;t.uring=556;t.threesuperior=333;t.Ograve=778;t.Agrave=667;t.Abreve=667;t.multiply=584;t.uacute=556;t.Tcaron=611;t.partialdiff=476;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=500;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=260;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=333;t.omacron=556;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=222;t.tcaron=317;t.eogonek=556;t.Uogonek=722;t.Aacute=667;t.Adieresis=667;t.egrave=556;t.zacute=500;t.iogonek=222;t.Oacute=778;t.oacute=556;t.amacron=556;t.sacute=500;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=556;t.twosuperior=333;t.Odieresis=778;t.mu=556;t.igrave=278;t.ohungarumlaut=556;t.Eogonek=667;t.dcroat=556;t.threequarters=834;t.Scedilla=667;t.lcaron=299;t.Kcommaaccent=667;t.Lacute=556;t.trademark=1000;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=556;t.onehalf=834;t.lessequal=549;t.ocircumflex=556;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=556;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=556;t.Ccaron=722;t.ugrave=556;t.radical=453;t.Dcaron=722;t.rcommaaccent=333;t.Ntilde=722;t.otilde=556;t.Rcommaaccent=722;t.Lcommaaccent=556;t.Atilde=667;t.Aogonek=667;t.Aring=667;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=500;t.minus=584;t.Icircumflex=278;t.ncaron=556;t.tcommaaccent=278;t.logicalnot=584;t.odieresis=556;t.udieresis=556;t.notequal=549;t.gcommaaccent=556;t.eth=556;t.zcaron=500;t.ncommaaccent=556;t.onesuperior=333;t.imacron=278;t.Euro=556;});t["Helvetica-Bold"]=(0,_core_utils.getLookupTableFactory)(function(t){t.space=278;t.exclam=333;t.quotedbl=474;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=722;t.quoteright=278;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=333;t.semicolon=333;t.less=584;t.equal=584;t.greater=584;t.question=611;t.at=975;t.A=722;t.B=722;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=556;t.K=722;t.L=611;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=584;t.underscore=556;t.quoteleft=278;t.a=556;t.b=611;t.c=556;t.d=611;t.e=556;t.f=333;t.g=611;t.h=611;t.i=278;t.j=278;t.k=556;t.l=278;t.m=889;t.n=611;t.o=611;t.p=611;t.q=611;t.r=389;t.s=556;t.t=333;t.u=611;t.v=556;t.w=778;t.x=556;t.y=556;t.z=500;t.braceleft=389;t.bar=280;t.braceright=389;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=238;t.quotedblleft=500;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=611;t.fl=611;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=556;t.bullet=350;t.quotesinglbase=278;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=556;t.ellipsis=1000;t.perthousand=1000;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1000;t.AE=1000;t.ordfeminine=370;t.Lslash=611;t.Oslash=778;t.OE=1000;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=278;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=611;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=722;t.aacute=556;t.Ucircumflex=722;t.yacute=556;t.scommaaccent=556;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=611;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=556;t.aring=556;t.Ncommaaccent=722;t.lacute=278;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=556;t.scedilla=556;t.iacute=278;t.lozenge=494;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=611;t.acircumflex=556;t.Amacron=722;t.rcaron=389;t.ccedilla=556;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=743;t.Umacron=722;t.uring=611;t.threesuperior=333;t.Ograve=778;t.Agrave=722;t.Abreve=722;t.multiply=584;t.uacute=611;t.Tcaron=611;t.partialdiff=494;t.ydieresis=556;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=556;t.nacute=611;t.umacron=611;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=280;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=389;t.omacron=611;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=278;t.tcaron=389;t.eogonek=556;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=556;t.zacute=500;t.iogonek=278;t.Oacute=778;t.oacute=611;t.amacron=556;t.sacute=556;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=611;t.twosuperior=333;t.Odieresis=778;t.mu=611;t.igrave=278;t.ohungarumlaut=611;t.Eogonek=667;t.dcroat=611;t.threequarters=834;t.Scedilla=667;t.lcaron=400;t.Kcommaaccent=722;t.Lacute=611;t.trademark=1000;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=611;t.onehalf=834;t.lessequal=549;t.ocircumflex=611;t.ntilde=611;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=611;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=611;t.Ccaron=722;t.ugrave=611;t.radical=549;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=722;t.otilde=611;t.Rcommaaccent=722;t.Lcommaaccent=611;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=556;t.minus=584;t.Icircumflex=278;t.ncaron=611;t.tcommaaccent=333;t.logicalnot=584;t.odieresis=611;t.udieresis=611;t.notequal=549;t.gcommaaccent=611;t.eth=611;t.zcaron=500;t.ncommaaccent=611;t.onesuperior=333;t.imacron=278;t.Euro=556;});t["Helvetica-BoldOblique"]=(0,_core_utils.getLookupTableFactory)(function(t){t.space=278;t.exclam=333;t.quotedbl=474;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=722;t.quoteright=278;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=333;t.semicolon=333;t.less=584;t.equal=584;t.greater=584;t.question=611;t.at=975;t.A=722;t.B=722;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=556;t.K=722;t.L=611;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=584;t.underscore=556;t.quoteleft=278;t.a=556;t.b=611;t.c=556;t.d=611;t.e=556;t.f=333;t.g=611;t.h=611;t.i=278;t.j=278;t.k=556;t.l=278;t.m=889;t.n=611;t.o=611;t.p=611;t.q=611;t.r=389;t.s=556;t.t=333;t.u=611;t.v=556;t.w=778;t.x=556;t.y=556;t.z=500;t.braceleft=389;t.bar=280;t.braceright=389;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=238;t.quotedblleft=500;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=611;t.fl=611;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=556;t.bullet=350;t.quotesinglbase=278;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=556;t.ellipsis=1000;t.perthousand=1000;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1000;t.AE=1000;t.ordfeminine=370;t.Lslash=611;t.Oslash=778;t.OE=1000;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=278;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=611;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=722;t.aacute=556;t.Ucircumflex=722;t.yacute=556;t.scommaaccent=556;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=611;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=556;t.aring=556;t.Ncommaaccent=722;t.lacute=278;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=556;t.scedilla=556;t.iacute=278;t.lozenge=494;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=611;t.acircumflex=556;t.Amacron=722;t.rcaron=389;t.ccedilla=556;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=743;t.Umacron=722;t.uring=611;t.threesuperior=333;t.Ograve=778;t.Agrave=722;t.Abreve=722;t.multiply=584;t.uacute=611;t.Tcaron=611;t.partialdiff=494;t.ydieresis=556;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=556;t.nacute=611;t.umacron=611;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=280;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=389;t.omacron=611;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=278;t.tcaron=389;t.eogonek=556;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=556;t.zacute=500;t.iogonek=278;t.Oacute=778;t.oacute=611;t.amacron=556;t.sacute=556;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=611;t.twosuperior=333;t.Odieresis=778;t.mu=611;t.igrave=278;t.ohungarumlaut=611;t.Eogonek=667;t.dcroat=611;t.threequarters=834;t.Scedilla=667;t.lcaron=400;t.Kcommaaccent=722;t.Lacute=611;t.trademark=1000;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=611;t.onehalf=834;t.lessequal=549;t.ocircumflex=611;t.ntilde=611;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=611;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=611;t.Ccaron=722;t.ugrave=611;t.radical=549;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=722;t.otilde=611;t.Rcommaaccent=722;t.Lcommaaccent=611;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=556;t.minus=584;t.Icircumflex=278;t.ncaron=611;t.tcommaaccent=333;t.logicalnot=584;t.odieresis=611;t.udieresis=611;t.notequal=549;t.gcommaaccent=611;t.eth=611;t.zcaron=500;t.ncommaaccent=611;t.onesuperior=333;t.imacron=278;t.Euro=556;});t["Helvetica-Oblique"]=(0,_core_utils.getLookupTableFactory)(function(t){t.space=278;t.exclam=278;t.quotedbl=355;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=667;t.quoteright=222;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=278;t.semicolon=278;t.less=584;t.equal=584;t.greater=584;t.question=556;t.at=1015;t.A=667;t.B=667;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=500;t.K=667;t.L=556;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=278;t.backslash=278;t.bracketright=278;t.asciicircum=469;t.underscore=556;t.quoteleft=222;t.a=556;t.b=556;t.c=500;t.d=556;t.e=556;t.f=278;t.g=556;t.h=556;t.i=222;t.j=222;t.k=500;t.l=222;t.m=833;t.n=556;t.o=556;t.p=556;t.q=556;t.r=333;t.s=500;t.t=278;t.u=556;t.v=500;t.w=722;t.x=500;t.y=500;t.z=500;t.braceleft=334;t.bar=260;t.braceright=334;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=191;t.quotedblleft=333;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=500;t.fl=500;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=537;t.bullet=350;t.quotesinglbase=222;t.quotedblbase=333;t.quotedblright=333;t.guillemotright=556;t.ellipsis=1000;t.perthousand=1000;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1000;t.AE=1000;t.ordfeminine=370;t.Lslash=556;t.Oslash=778;t.OE=1000;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=222;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=556;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=667;t.aacute=556;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=500;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=500;t.aring=556;t.Ncommaaccent=722;t.lacute=222;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=500;t.scedilla=500;t.iacute=278;t.lozenge=471;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=556;t.acircumflex=556;t.Amacron=667;t.rcaron=333;t.ccedilla=500;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=643;t.Umacron=722;t.uring=556;t.threesuperior=333;t.Ograve=778;t.Agrave=667;t.Abreve=667;t.multiply=584;t.uacute=556;t.Tcaron=611;t.partialdiff=476;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=500;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=260;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=333;t.omacron=556;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=222;t.tcaron=317;t.eogonek=556;t.Uogonek=722;t.Aacute=667;t.Adieresis=667;t.egrave=556;t.zacute=500;t.iogonek=222;t.Oacute=778;t.oacute=556;t.amacron=556;t.sacute=500;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=556;t.twosuperior=333;t.Odieresis=778;t.mu=556;t.igrave=278;t.ohungarumlaut=556;t.Eogonek=667;t.dcroat=556;t.threequarters=834;t.Scedilla=667;t.lcaron=299;t.Kcommaaccent=667;t.Lacute=556;t.trademark=1000;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=556;t.onehalf=834;t.lessequal=549;t.ocircumflex=556;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=556;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=556;t.Ccaron=722;t.ugrave=556;t.radical=453;t.Dcaron=722;t.rcommaaccent=333;t.Ntilde=722;t.otilde=556;t.Rcommaaccent=722;t.Lcommaaccent=556;t.Atilde=667;t.Aogonek=667;t.Aring=667;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=500;t.minus=584;t.Icircumflex=278;t.ncaron=556;t.tcommaaccent=278;t.logicalnot=584;t.odieresis=556;t.udieresis=556;t.notequal=549;t.gcommaaccent=556;t.eth=556;t.zcaron=500;t.ncommaaccent=556;t.onesuperior=333;t.imacron=278;t.Euro=556;});t.Symbol=(0,_core_utils.getLookupTableFactory)(function(t){t.space=250;t.exclam=333;t.universal=713;t.numbersign=500;t.existential=549;t.percent=833;t.ampersand=778;t.suchthat=439;t.parenleft=333;t.parenright=333;t.asteriskmath=500;t.plus=549;t.comma=250;t.minus=549;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=278;t.semicolon=278;t.less=549;t.equal=549;t.greater=549;t.question=444;t.congruent=549;t.Alpha=722;t.Beta=667;t.Chi=722;t.Delta=612;t.Epsilon=611;t.Phi=763;t.Gamma=603;t.Eta=722;t.Iota=333;t.theta1=631;t.Kappa=722;t.Lambda=686;t.Mu=889;t.Nu=722;t.Omicron=722;t.Pi=768;t.Theta=741;t.Rho=556;t.Sigma=592;t.Tau=611;t.Upsilon=690;t.sigma1=439;t.Omega=768;t.Xi=645;t.Psi=795;t.Zeta=611;t.bracketleft=333;t.therefore=863;t.bracketright=333;t.perpendicular=658;t.underscore=500;t.radicalex=500;t.alpha=631;t.beta=549;t.chi=549;t.delta=494;t.epsilon=439;t.phi=521;t.gamma=411;t.eta=603;t.iota=329;t.phi1=603;t.kappa=549;t.lambda=549;t.mu=576;t.nu=521;t.omicron=549;t.pi=549;t.theta=521;t.rho=549;t.sigma=603;t.tau=439;t.upsilon=576;t.omega1=713;t.omega=686;t.xi=493;t.psi=686;t.zeta=494;t.braceleft=480;t.bar=200;t.braceright=480;t.similar=549;t.Euro=750;t.Upsilon1=620;t.minute=247;t.lessequal=549;t.fraction=167;t.infinity=713;t.florin=500;t.club=753;t.diamond=753;t.heart=753;t.spade=753;t.arrowboth=1042;t.arrowleft=987;t.arrowup=603;t.arrowright=987;t.arrowdown=603;t.degree=400;t.plusminus=549;t.second=411;t.greaterequal=549;t.multiply=549;t.proportional=713;t.partialdiff=494;t.bullet=460;t.divide=549;t.notequal=549;t.equivalence=549;t.approxequal=549;t.ellipsis=1000;t.arrowvertex=603;t.arrowhorizex=1000;t.carriagereturn=658;t.aleph=823;t.Ifraktur=686;t.Rfraktur=795;t.weierstrass=987;t.circlemultiply=768;t.circleplus=768;t.emptyset=823;t.intersection=768;t.union=768;t.propersuperset=713;t.reflexsuperset=713;t.notsubset=713;t.propersubset=713;t.reflexsubset=713;t.element=713;t.notelement=713;t.angle=768;t.gradient=713;t.registerserif=790;t.copyrightserif=790;t.trademarkserif=890;t.product=823;t.radical=549;t.dotmath=250;t.logicalnot=713;t.logicaland=603;t.logicalor=603;t.arrowdblboth=1042;t.arrowdblleft=987;t.arrowdblup=603;t.arrowdblright=987;t.arrowdbldown=603;t.lozenge=494;t.angleleft=329;t.registersans=790;t.copyrightsans=790;t.trademarksans=786;t.summation=713;t.parenlefttp=384;t.parenleftex=384;t.parenleftbt=384;t.bracketlefttp=384;t.bracketleftex=384;t.bracketleftbt=384;t.bracelefttp=494;t.braceleftmid=494;t.braceleftbt=494;t.braceex=494;t.angleright=329;t.integral=274;t.integraltp=686;t.integralex=686;t.integralbt=686;t.parenrighttp=384;t.parenrightex=384;t.parenrightbt=384;t.bracketrighttp=384;t.bracketrightex=384;t.bracketrightbt=384;t.bracerighttp=494;t.bracerightmid=494;t.bracerightbt=494;t.apple=790;});t["Times-Roman"]=(0,_core_utils.getLookupTableFactory)(function(t){t.space=250;t.exclam=333;t.quotedbl=408;t.numbersign=500;t.dollar=500;t.percent=833;t.ampersand=778;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=564;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=278;t.semicolon=278;t.less=564;t.equal=564;t.greater=564;t.question=444;t.at=921;t.A=722;t.B=667;t.C=667;t.D=722;t.E=611;t.F=556;t.G=722;t.H=722;t.I=333;t.J=389;t.K=722;t.L=611;t.M=889;t.N=722;t.O=722;t.P=556;t.Q=722;t.R=667;t.S=556;t.T=611;t.U=722;t.V=722;t.W=944;t.X=722;t.Y=722;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=469;t.underscore=500;t.quoteleft=333;t.a=444;t.b=500;t.c=444;t.d=500;t.e=444;t.f=333;t.g=500;t.h=500;t.i=278;t.j=278;t.k=500;t.l=278;t.m=778;t.n=500;t.o=500;t.p=500;t.q=500;t.r=333;t.s=389;t.t=278;t.u=500;t.v=500;t.w=722;t.x=500;t.y=500;t.z=444;t.braceleft=480;t.bar=200;t.braceright=480;t.asciitilde=541;t.exclamdown=333;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=180;t.quotedblleft=444;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=556;t.fl=556;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=453;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=444;t.quotedblright=444;t.guillemotright=500;t.ellipsis=1000;t.perthousand=1000;t.questiondown=444;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1000;t.AE=889;t.ordfeminine=276;t.Lslash=611;t.Oslash=722;t.OE=889;t.ordmasculine=310;t.ae=667;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=722;t.germandbls=500;t.Idieresis=333;t.eacute=444;t.abreve=444;t.uhungarumlaut=500;t.ecaron=444;t.Ydieresis=722;t.divide=564;t.Yacute=722;t.Acircumflex=722;t.aacute=444;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=444;t.Uacute=722;t.uogonek=500;t.Edieresis=611;t.Dcroat=722;t.commaaccent=250;t.copyright=760;t.Emacron=611;t.ccaron=444;t.aring=444;t.Ncommaaccent=722;t.lacute=278;t.agrave=444;t.Tcommaaccent=611;t.Cacute=667;t.atilde=444;t.Edotaccent=611;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=471;t.Rcaron=667;t.Gcommaaccent=722;t.ucircumflex=500;t.acircumflex=444;t.Amacron=722;t.rcaron=333;t.ccedilla=444;t.Zdotaccent=611;t.Thorn=556;t.Omacron=722;t.Racute=667;t.Sacute=556;t.dcaron=588;t.Umacron=722;t.uring=500;t.threesuperior=300;t.Ograve=722;t.Agrave=722;t.Abreve=722;t.multiply=564;t.uacute=500;t.Tcaron=611;t.partialdiff=476;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=611;t.adieresis=444;t.edieresis=444;t.cacute=444;t.nacute=500;t.umacron=500;t.Ncaron=722;t.Iacute=333;t.plusminus=564;t.brokenbar=200;t.registered=760;t.Gbreve=722;t.Idotaccent=333;t.summation=600;t.Egrave=611;t.racute=333;t.omacron=500;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=667;t.lcommaaccent=278;t.tcaron=326;t.eogonek=444;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=444;t.zacute=444;t.iogonek=278;t.Oacute=722;t.oacute=500;t.amacron=444;t.sacute=389;t.idieresis=278;t.Ocircumflex=722;t.Ugrave=722;t.Delta=612;t.thorn=500;t.twosuperior=300;t.Odieresis=722;t.mu=500;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=611;t.dcroat=500;t.threequarters=750;t.Scedilla=556;t.lcaron=344;t.Kcommaaccent=722;t.Lacute=611;t.trademark=980;t.edotaccent=444;t.Igrave=333;t.Imacron=333;t.Lcaron=611;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=500;t.Uhungarumlaut=722;t.Eacute=611;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=556;t.Scommaaccent=556;t.Ohungarumlaut=722;t.degree=400;t.ograve=500;t.Ccaron=667;t.ugrave=500;t.radical=453;t.Dcaron=722;t.rcommaaccent=333;t.Ntilde=722;t.otilde=500;t.Rcommaaccent=667;t.Lcommaaccent=611;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=722;t.zdotaccent=444;t.Ecaron=611;t.Iogonek=333;t.kcommaaccent=500;t.minus=564;t.Icircumflex=333;t.ncaron=500;t.tcommaaccent=278;t.logicalnot=564;t.odieresis=500;t.udieresis=500;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=444;t.ncommaaccent=500;t.onesuperior=300;t.imacron=278;t.Euro=500;});t["Times-Bold"]=(0,_core_utils.getLookupTableFactory)(function(t){t.space=250;t.exclam=333;t.quotedbl=555;t.numbersign=500;t.dollar=500;t.percent=1000;t.ampersand=833;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=570;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=333;t.semicolon=333;t.less=570;t.equal=570;t.greater=570;t.question=500;t.at=930;t.A=722;t.B=667;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=778;t.I=389;t.J=500;t.K=778;t.L=667;t.M=944;t.N=722;t.O=778;t.P=611;t.Q=778;t.R=722;t.S=556;t.T=667;t.U=722;t.V=722;t.W=1000;t.X=722;t.Y=722;t.Z=667;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=581;t.underscore=500;t.quoteleft=333;t.a=500;t.b=556;t.c=444;t.d=556;t.e=444;t.f=333;t.g=500;t.h=556;t.i=278;t.j=333;t.k=556;t.l=278;t.m=833;t.n=556;t.o=500;t.p=556;t.q=556;t.r=444;t.s=389;t.t=333;t.u=556;t.v=500;t.w=722;t.x=500;t.y=500;t.z=444;t.braceleft=394;t.bar=220;t.braceright=394;t.asciitilde=520;t.exclamdown=333;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=278;t.quotedblleft=500;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=556;t.fl=556;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=540;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=500;t.ellipsis=1000;t.perthousand=1000;t.questiondown=500;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1000;t.AE=1000;t.ordfeminine=300;t.Lslash=667;t.Oslash=778;t.OE=1000;t.ordmasculine=330;t.ae=722;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=722;t.germandbls=556;t.Idieresis=389;t.eacute=444;t.abreve=500;t.uhungarumlaut=556;t.ecaron=444;t.Ydieresis=722;t.divide=570;t.Yacute=722;t.Acircumflex=722;t.aacute=500;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=500;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=747;t.Emacron=667;t.ccaron=444;t.aring=500;t.Ncommaaccent=722;t.lacute=278;t.agrave=500;t.Tcommaaccent=667;t.Cacute=722;t.atilde=500;t.Edotaccent=667;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=494;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=556;t.acircumflex=500;t.Amacron=722;t.rcaron=444;t.ccedilla=444;t.Zdotaccent=667;t.Thorn=611;t.Omacron=778;t.Racute=722;t.Sacute=556;t.dcaron=672;t.Umacron=722;t.uring=556;t.threesuperior=300;t.Ograve=778;t.Agrave=722;t.Abreve=722;t.multiply=570;t.uacute=556;t.Tcaron=667;t.partialdiff=494;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=500;t.edieresis=444;t.cacute=444;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=389;t.plusminus=570;t.brokenbar=220;t.registered=747;t.Gbreve=778;t.Idotaccent=389;t.summation=600;t.Egrave=667;t.racute=444;t.omacron=500;t.Zacute=667;t.Zcaron=667;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=278;t.tcaron=416;t.eogonek=444;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=444;t.zacute=444;t.iogonek=278;t.Oacute=778;t.oacute=500;t.amacron=500;t.sacute=389;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=556;t.twosuperior=300;t.Odieresis=778;t.mu=556;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=667;t.dcroat=556;t.threequarters=750;t.Scedilla=556;t.lcaron=394;t.Kcommaaccent=778;t.Lacute=667;t.trademark=1000;t.edotaccent=444;t.Igrave=389;t.Imacron=389;t.Lcaron=667;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=556;t.Scommaaccent=556;t.Ohungarumlaut=778;t.degree=400;t.ograve=500;t.Ccaron=722;t.ugrave=556;t.radical=549;t.Dcaron=722;t.rcommaaccent=444;t.Ntilde=722;t.otilde=500;t.Rcommaaccent=722;t.Lcommaaccent=667;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=778;t.zdotaccent=444;t.Ecaron=667;t.Iogonek=389;t.kcommaaccent=556;t.minus=570;t.Icircumflex=389;t.ncaron=556;t.tcommaaccent=333;t.logicalnot=570;t.odieresis=500;t.udieresis=556;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=444;t.ncommaaccent=556;t.onesuperior=300;t.imacron=278;t.Euro=500;});t["Times-BoldItalic"]=(0,_core_utils.getLookupTableFactory)(function(t){t.space=250;t.exclam=389;t.quotedbl=555;t.numbersign=500;t.dollar=500;t.percent=833;t.ampersand=778;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=570;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=333;t.semicolon=333;t.less=570;t.equal=570;t.greater=570;t.question=500;t.at=832;t.A=667;t.B=667;t.C=667;t.D=722;t.E=667;t.F=667;t.G=722;t.H=778;t.I=389;t.J=500;t.K=667;t.L=611;t.M=889;t.N=722;t.O=722;t.P=611;t.Q=722;t.R=667;t.S=556;t.T=611;t.U=722;t.V=667;t.W=889;t.X=667;t.Y=611;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=570;t.underscore=500;t.quoteleft=333;t.a=500;t.b=500;t.c=444;t.d=500;t.e=444;t.f=333;t.g=500;t.h=556;t.i=278;t.j=278;t.k=500;t.l=278;t.m=778;t.n=556;t.o=500;t.p=500;t.q=500;t.r=389;t.s=389;t.t=278;t.u=556;t.v=444;t.w=667;t.x=500;t.y=444;t.z=389;t.braceleft=348;t.bar=220;t.braceright=348;t.asciitilde=570;t.exclamdown=389;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=278;t.quotedblleft=500;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=556;t.fl=556;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=500;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=500;t.ellipsis=1000;t.perthousand=1000;t.questiondown=500;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1000;t.AE=944;t.ordfeminine=266;t.Lslash=611;t.Oslash=722;t.OE=944;t.ordmasculine=300;t.ae=722;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=722;t.germandbls=500;t.Idieresis=389;t.eacute=444;t.abreve=500;t.uhungarumlaut=556;t.ecaron=444;t.Ydieresis=611;t.divide=570;t.Yacute=611;t.Acircumflex=667;t.aacute=500;t.Ucircumflex=722;t.yacute=444;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=500;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=747;t.Emacron=667;t.ccaron=444;t.aring=500;t.Ncommaaccent=722;t.lacute=278;t.agrave=500;t.Tcommaaccent=611;t.Cacute=667;t.atilde=500;t.Edotaccent=667;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=494;t.Rcaron=667;t.Gcommaaccent=722;t.ucircumflex=556;t.acircumflex=500;t.Amacron=667;t.rcaron=389;t.ccedilla=444;t.Zdotaccent=611;t.Thorn=611;t.Omacron=722;t.Racute=667;t.Sacute=556;t.dcaron=608;t.Umacron=722;t.uring=556;t.threesuperior=300;t.Ograve=722;t.Agrave=667;t.Abreve=667;t.multiply=570;t.uacute=556;t.Tcaron=611;t.partialdiff=494;t.ydieresis=444;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=500;t.edieresis=444;t.cacute=444;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=389;t.plusminus=570;t.brokenbar=220;t.registered=747;t.Gbreve=722;t.Idotaccent=389;t.summation=600;t.Egrave=667;t.racute=389;t.omacron=500;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=667;t.lcommaaccent=278;t.tcaron=366;t.eogonek=444;t.Uogonek=722;t.Aacute=667;t.Adieresis=667;t.egrave=444;t.zacute=389;t.iogonek=278;t.Oacute=722;t.oacute=500;t.amacron=500;t.sacute=389;t.idieresis=278;t.Ocircumflex=722;t.Ugrave=722;t.Delta=612;t.thorn=500;t.twosuperior=300;t.Odieresis=722;t.mu=576;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=667;t.dcroat=500;t.threequarters=750;t.Scedilla=556;t.lcaron=382;t.Kcommaaccent=667;t.Lacute=611;t.trademark=1000;t.edotaccent=444;t.Igrave=389;t.Imacron=389;t.Lcaron=611;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=556;t.Scommaaccent=556;t.Ohungarumlaut=722;t.degree=400;t.ograve=500;t.Ccaron=667;t.ugrave=556;t.radical=549;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=722;t.otilde=500;t.Rcommaaccent=667;t.Lcommaaccent=611;t.Atilde=667;t.Aogonek=667;t.Aring=667;t.Otilde=722;t.zdotaccent=389;t.Ecaron=667;t.Iogonek=389;t.kcommaaccent=500;t.minus=606;t.Icircumflex=389;t.ncaron=556;t.tcommaaccent=278;t.logicalnot=606;t.odieresis=500;t.udieresis=556;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=389;t.ncommaaccent=556;t.onesuperior=300;t.imacron=278;t.Euro=500;});t["Times-Italic"]=(0,_core_utils.getLookupTableFactory)(function(t){t.space=250;t.exclam=333;t.quotedbl=420;t.numbersign=500;t.dollar=500;t.percent=833;t.ampersand=778;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=675;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=333;t.semicolon=333;t.less=675;t.equal=675;t.greater=675;t.question=500;t.at=920;t.A=611;t.B=611;t.C=667;t.D=722;t.E=611;t.F=611;t.G=722;t.H=722;t.I=333;t.J=444;t.K=667;t.L=556;t.M=833;t.N=667;t.O=722;t.P=611;t.Q=722;t.R=611;t.S=500;t.T=556;t.U=722;t.V=611;t.W=833;t.X=611;t.Y=556;t.Z=556;t.bracketleft=389;t.backslash=278;t.bracketright=389;t.asciicircum=422;t.underscore=500;t.quoteleft=333;t.a=500;t.b=500;t.c=444;t.d=500;t.e=444;t.f=278;t.g=500;t.h=500;t.i=278;t.j=278;t.k=444;t.l=278;t.m=722;t.n=500;t.o=500;t.p=500;t.q=500;t.r=389;t.s=389;t.t=278;t.u=500;t.v=444;t.w=667;t.x=444;t.y=444;t.z=389;t.braceleft=400;t.bar=275;t.braceright=400;t.asciitilde=541;t.exclamdown=389;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=214;t.quotedblleft=556;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=500;t.fl=500;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=523;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=556;t.quotedblright=556;t.guillemotright=500;t.ellipsis=889;t.perthousand=1000;t.questiondown=500;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=889;t.AE=889;t.ordfeminine=276;t.Lslash=556;t.Oslash=722;t.OE=944;t.ordmasculine=310;t.ae=667;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=667;t.germandbls=500;t.Idieresis=333;t.eacute=444;t.abreve=500;t.uhungarumlaut=500;t.ecaron=444;t.Ydieresis=556;t.divide=675;t.Yacute=556;t.Acircumflex=611;t.aacute=500;t.Ucircumflex=722;t.yacute=444;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=500;t.Uacute=722;t.uogonek=500;t.Edieresis=611;t.Dcroat=722;t.commaaccent=250;t.copyright=760;t.Emacron=611;t.ccaron=444;t.aring=500;t.Ncommaaccent=667;t.lacute=278;t.agrave=500;t.Tcommaaccent=556;t.Cacute=667;t.atilde=500;t.Edotaccent=611;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=471;t.Rcaron=611;t.Gcommaaccent=722;t.ucircumflex=500;t.acircumflex=500;t.Amacron=611;t.rcaron=389;t.ccedilla=444;t.Zdotaccent=556;t.Thorn=611;t.Omacron=722;t.Racute=611;t.Sacute=500;t.dcaron=544;t.Umacron=722;t.uring=500;t.threesuperior=300;t.Ograve=722;t.Agrave=611;t.Abreve=611;t.multiply=675;t.uacute=500;t.Tcaron=556;t.partialdiff=476;t.ydieresis=444;t.Nacute=667;t.icircumflex=278;t.Ecircumflex=611;t.adieresis=500;t.edieresis=444;t.cacute=444;t.nacute=500;t.umacron=500;t.Ncaron=667;t.Iacute=333;t.plusminus=675;t.brokenbar=275;t.registered=760;t.Gbreve=722;t.Idotaccent=333;t.summation=600;t.Egrave=611;t.racute=389;t.omacron=500;t.Zacute=556;t.Zcaron=556;t.greaterequal=549;t.Eth=722;t.Ccedilla=667;t.lcommaaccent=278;t.tcaron=300;t.eogonek=444;t.Uogonek=722;t.Aacute=611;t.Adieresis=611;t.egrave=444;t.zacute=389;t.iogonek=278;t.Oacute=722;t.oacute=500;t.amacron=500;t.sacute=389;t.idieresis=278;t.Ocircumflex=722;t.Ugrave=722;t.Delta=612;t.thorn=500;t.twosuperior=300;t.Odieresis=722;t.mu=500;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=611;t.dcroat=500;t.threequarters=750;t.Scedilla=500;t.lcaron=300;t.Kcommaaccent=667;t.Lacute=556;t.trademark=980;t.edotaccent=444;t.Igrave=333;t.Imacron=333;t.Lcaron=611;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=500;t.Uhungarumlaut=722;t.Eacute=611;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=500;t.Scommaaccent=500;t.Ohungarumlaut=722;t.degree=400;t.ograve=500;t.Ccaron=667;t.ugrave=500;t.radical=453;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=667;t.otilde=500;t.Rcommaaccent=611;t.Lcommaaccent=556;t.Atilde=611;t.Aogonek=611;t.Aring=611;t.Otilde=722;t.zdotaccent=389;t.Ecaron=611;t.Iogonek=333;t.kcommaaccent=444;t.minus=675;t.Icircumflex=333;t.ncaron=500;t.tcommaaccent=278;t.logicalnot=675;t.odieresis=500;t.udieresis=500;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=389;t.ncommaaccent=500;t.onesuperior=300;t.imacron=278;t.Euro=500;});t.ZapfDingbats=(0,_core_utils.getLookupTableFactory)(function(t){t.space=278;t.a1=974;t.a2=961;t.a202=974;t.a3=980;t.a4=719;t.a5=789;t.a119=790;t.a118=791;t.a117=690;t.a11=960;t.a12=939;t.a13=549;t.a14=855;t.a15=911;t.a16=933;t.a105=911;t.a17=945;t.a18=974;t.a19=755;t.a20=846;t.a21=762;t.a22=761;t.a23=571;t.a24=677;t.a25=763;t.a26=760;t.a27=759;t.a28=754;t.a6=494;t.a7=552;t.a8=537;t.a9=577;t.a10=692;t.a29=786;t.a30=788;t.a31=788;t.a32=790;t.a33=793;t.a34=794;t.a35=816;t.a36=823;t.a37=789;t.a38=841;t.a39=823;t.a40=833;t.a41=816;t.a42=831;t.a43=923;t.a44=744;t.a45=723;t.a46=749;t.a47=790;t.a48=792;t.a49=695;t.a50=776;t.a51=768;t.a52=792;t.a53=759;t.a54=707;t.a55=708;t.a56=682;t.a57=701;t.a58=826;t.a59=815;t.a60=789;t.a61=789;t.a62=707;t.a63=687;t.a64=696;t.a65=689;t.a66=786;t.a67=787;t.a68=713;t.a69=791;t.a70=785;t.a71=791;t.a72=873;t.a73=761;t.a74=762;t.a203=762;t.a75=759;t.a204=759;t.a76=892;t.a77=892;t.a78=788;t.a79=784;t.a81=438;t.a82=138;t.a83=277;t.a84=415;t.a97=392;t.a98=392;t.a99=668;t.a100=668;t.a89=390;t.a90=390;t.a93=317;t.a94=317;t.a91=276;t.a92=276;t.a205=509;t.a85=509;t.a206=410;t.a86=410;t.a87=234;t.a88=234;t.a95=334;t.a96=334;t.a101=732;t.a102=544;t.a103=544;t.a104=910;t.a106=667;t.a107=760;t.a108=760;t.a112=776;t.a111=595;t.a110=694;t.a109=626;t.a120=788;t.a121=788;t.a122=788;t.a123=788;t.a124=788;t.a125=788;t.a126=788;t.a127=788;t.a128=788;t.a129=788;t.a130=788;t.a131=788;t.a132=788;t.a133=788;t.a134=788;t.a135=788;t.a136=788;t.a137=788;t.a138=788;t.a139=788;t.a140=788;t.a141=788;t.a142=788;t.a143=788;t.a144=788;t.a145=788;t.a146=788;t.a147=788;t.a148=788;t.a149=788;t.a150=788;t.a151=788;t.a152=788;t.a153=788;t.a154=788;t.a155=788;t.a156=788;t.a157=788;t.a158=788;t.a159=788;t.a160=894;t.a161=838;t.a163=1016;t.a164=458;t.a196=748;t.a165=924;t.a192=748;t.a166=918;t.a167=927;t.a168=928;t.a169=928;t.a170=834;t.a171=873;t.a172=828;t.a173=924;t.a162=924;t.a174=917;t.a175=930;t.a176=931;t.a177=463;t.a178=883;t.a179=836;t.a193=836;t.a180=867;t.a199=867;t.a181=696;t.a200=696;t.a182=874;t.a201=874;t.a183=760;t.a184=946;t.a197=771;t.a185=865;t.a194=771;t.a198=888;t.a186=967;t.a195=888;t.a187=831;t.a188=873;t.a189=927;t.a190=970;t.a191=918;});});exports.getMetrics=getMetrics;const getFontBasicMetrics=(0,_core_utils.getLookupTableFactory)(function(t){t.Courier={ascent:629,descent:-157,capHeight:562,xHeight:-426};t["Courier-Bold"]={ascent:629,descent:-157,capHeight:562,xHeight:439};t["Courier-Oblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426};t["Courier-BoldOblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426};t.Helvetica={ascent:718,descent:-207,capHeight:718,xHeight:523};t["Helvetica-Bold"]={ascent:718,descent:-207,capHeight:718,xHeight:532};t["Helvetica-Oblique"]={ascent:718,descent:-207,capHeight:718,xHeight:523};t["Helvetica-BoldOblique"]={ascent:718,descent:-207,capHeight:718,xHeight:532};t["Times-Roman"]={ascent:683,descent:-217,capHeight:662,xHeight:450};t["Times-Bold"]={ascent:683,descent:-217,capHeight:676,xHeight:461};t["Times-Italic"]={ascent:683,descent:-217,capHeight:653,xHeight:441};t["Times-BoldItalic"]={ascent:683,descent:-217,capHeight:669,xHeight:462};t.Symbol={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN};t.ZapfDingbats={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN};});exports.getFontBasicMetrics=getFontBasicMetrics;}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.GlyfTable=void 0;const ON_CURVE_POINT=1<<0;const X_SHORT_VECTOR=1<<1;const Y_SHORT_VECTOR=1<<2;const REPEAT_FLAG=1<<3;const X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR=1<<4;const Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR=1<<5;const OVERLAP_SIMPLE=1<<6;const ARG_1_AND_2_ARE_WORDS=1<<0;const ARGS_ARE_XY_VALUES=1<<1;const WE_HAVE_A_SCALE=1<<3;const MORE_COMPONENTS=1<<5;const WE_HAVE_AN_X_AND_Y_SCALE=1<<6;const WE_HAVE_A_TWO_BY_TWO=1<<7;const WE_HAVE_INSTRUCTIONS=1<<8;class GlyfTable{constructor(_ref){let{glyfTable,isGlyphLocationsLong,locaTable,numGlyphs}=_ref;this.glyphs=[];const loca=new DataView(locaTable.buffer,locaTable.byteOffset,locaTable.byteLength);const glyf=new DataView(glyfTable.buffer,glyfTable.byteOffset,glyfTable.byteLength);const offsetSize=isGlyphLocationsLong?4:2;let prev=isGlyphLocationsLong?loca.getUint32(0):2*loca.getUint16(0);let pos=0;for(let i=0;i<numGlyphs;i++){pos+=offsetSize;const next=isGlyphLocationsLong?loca.getUint32(pos):2*loca.getUint16(pos);if(next===prev){this.glyphs.push(new Glyph({}));continue;}
const glyph=Glyph.parse(prev,glyf);this.glyphs.push(glyph);prev=next;}}
getSize(){return this.glyphs.reduce((a,g)=>{const size=g.getSize();return a+(size+3&~3);},0);}
write(){const totalSize=this.getSize();const glyfTable=new DataView(new ArrayBuffer(totalSize));const isLocationLong=totalSize>0x1fffe;const offsetSize=isLocationLong?4:2;const locaTable=new DataView(new ArrayBuffer((this.glyphs.length+1)*offsetSize));if(isLocationLong){locaTable.setUint32(0,0);}else{locaTable.setUint16(0,0);}
let pos=0;let locaIndex=0;for(const glyph of this.glyphs){pos+=glyph.write(pos,glyfTable);pos=pos+3&~3;locaIndex+=offsetSize;if(isLocationLong){locaTable.setUint32(locaIndex,pos);}else{locaTable.setUint16(locaIndex,pos>>1);}}
return{isLocationLong,loca:new Uint8Array(locaTable.buffer),glyf:new Uint8Array(glyfTable.buffer)};}
scale(factors){for(let i=0,ii=this.glyphs.length;i<ii;i++){this.glyphs[i].scale(factors[i]);}}}
exports.GlyfTable=GlyfTable;class Glyph{constructor(_ref2){let{header=null,simple=null,composites=null}=_ref2;this.header=header;this.simple=simple;this.composites=composites;}
static parse(pos,glyf){const[read,header]=GlyphHeader.parse(pos,glyf);pos+=read;if(header.numberOfContours<0){const composites=[];while(true){const[n,composite]=CompositeGlyph.parse(pos,glyf);pos+=n;composites.push(composite);if(!(composite.flags&MORE_COMPONENTS)){break;}}
return new Glyph({header,composites});}
const simple=SimpleGlyph.parse(pos,glyf,header.numberOfContours);return new Glyph({header,simple});}
getSize(){if(!this.header){return 0;}
const size=this.simple?this.simple.getSize():this.composites.reduce((a,c)=>a+c.getSize(),0);return this.header.getSize()+size;}
write(pos,buf){if(!this.header){return 0;}
const spos=pos;pos+=this.header.write(pos,buf);if(this.simple){pos+=this.simple.write(pos,buf);}else{for(const composite of this.composites){pos+=composite.write(pos,buf);}}
return pos-spos;}
scale(factor){if(!this.header){return;}
const xMiddle=(this.header.xMin+this.header.xMax)/2;this.header.scale(xMiddle,factor);if(this.simple){this.simple.scale(xMiddle,factor);}else{for(const composite of this.composites){composite.scale(xMiddle,factor);}}}}
class GlyphHeader{constructor(_ref3){let{numberOfContours,xMin,yMin,xMax,yMax}=_ref3;this.numberOfContours=numberOfContours;this.xMin=xMin;this.yMin=yMin;this.xMax=xMax;this.yMax=yMax;}
static parse(pos,glyf){return[10,new GlyphHeader({numberOfContours:glyf.getInt16(pos),xMin:glyf.getInt16(pos+2),yMin:glyf.getInt16(pos+4),xMax:glyf.getInt16(pos+6),yMax:glyf.getInt16(pos+8)})];}
getSize(){return 10;}
write(pos,buf){buf.setInt16(pos,this.numberOfContours);buf.setInt16(pos+2,this.xMin);buf.setInt16(pos+4,this.yMin);buf.setInt16(pos+6,this.xMax);buf.setInt16(pos+8,this.yMax);return 10;}
scale(x,factor){this.xMin=Math.round(x+(this.xMin-x)*factor);this.xMax=Math.round(x+(this.xMax-x)*factor);}}
class Contour{constructor(_ref4){let{flags,xCoordinates,yCoordinates}=_ref4;this.xCoordinates=xCoordinates;this.yCoordinates=yCoordinates;this.flags=flags;}}
class SimpleGlyph{constructor(_ref5){let{contours,instructions}=_ref5;this.contours=contours;this.instructions=instructions;}
static parse(pos,glyf,numberOfContours){const endPtsOfContours=[];for(let i=0;i<numberOfContours;i++){const endPt=glyf.getUint16(pos);pos+=2;endPtsOfContours.push(endPt);}
const numberOfPt=endPtsOfContours[numberOfContours-1]+1;const instructionLength=glyf.getUint16(pos);pos+=2;const instructions=new Uint8Array(glyf).slice(pos,pos+instructionLength);pos+=instructionLength;const flags=[];for(let i=0;i<numberOfPt;pos++,i++){let flag=glyf.getUint8(pos);flags.push(flag);if(flag&REPEAT_FLAG){const count=glyf.getUint8(++pos);flag^=REPEAT_FLAG;for(let m=0;m<count;m++){flags.push(flag);}
i+=count;}}
const allXCoordinates=[];let xCoordinates=[];let yCoordinates=[];let pointFlags=[];const contours=[];let endPtsOfContoursIndex=0;let lastCoordinate=0;for(let i=0;i<numberOfPt;i++){const flag=flags[i];if(flag&X_SHORT_VECTOR){const x=glyf.getUint8(pos++);lastCoordinate+=flag&X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR?x:-x;xCoordinates.push(lastCoordinate);}else if(flag&X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR){xCoordinates.push(lastCoordinate);}else{lastCoordinate+=glyf.getInt16(pos);pos+=2;xCoordinates.push(lastCoordinate);}
if(endPtsOfContours[endPtsOfContoursIndex]===i){endPtsOfContoursIndex++;allXCoordinates.push(xCoordinates);xCoordinates=[];}}
lastCoordinate=0;endPtsOfContoursIndex=0;for(let i=0;i<numberOfPt;i++){const flag=flags[i];if(flag&Y_SHORT_VECTOR){const y=glyf.getUint8(pos++);lastCoordinate+=flag&Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR?y:-y;yCoordinates.push(lastCoordinate);}else if(flag&Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR){yCoordinates.push(lastCoordinate);}else{lastCoordinate+=glyf.getInt16(pos);pos+=2;yCoordinates.push(lastCoordinate);}
pointFlags.push(flag&ON_CURVE_POINT|flag&OVERLAP_SIMPLE);if(endPtsOfContours[endPtsOfContoursIndex]===i){xCoordinates=allXCoordinates[endPtsOfContoursIndex];endPtsOfContoursIndex++;contours.push(new Contour({flags:pointFlags,xCoordinates,yCoordinates}));yCoordinates=[];pointFlags=[];}}
return new SimpleGlyph({contours,instructions});}
getSize(){let size=this.contours.length*2+2+this.instructions.length;let lastX=0;let lastY=0;for(const contour of this.contours){size+=contour.flags.length;for(let i=0,ii=contour.xCoordinates.length;i<ii;i++){const x=contour.xCoordinates[i];const y=contour.yCoordinates[i];let abs=Math.abs(x-lastX);if(abs>255){size+=2;}else if(abs>0){size+=1;}
lastX=x;abs=Math.abs(y-lastY);if(abs>255){size+=2;}else if(abs>0){size+=1;}
lastY=y;}}
return size;}
write(pos,buf){const spos=pos;const xCoordinates=[];const yCoordinates=[];const flags=[];let lastX=0;let lastY=0;for(const contour of this.contours){for(let i=0,ii=contour.xCoordinates.length;i<ii;i++){let flag=contour.flags[i];const x=contour.xCoordinates[i];let delta=x-lastX;if(delta===0){flag|=X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR;xCoordinates.push(0);}else{const abs=Math.abs(delta);if(abs<=255){flag|=delta>=0?X_SHORT_VECTOR|X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR:X_SHORT_VECTOR;xCoordinates.push(abs);}else{xCoordinates.push(delta);}}
lastX=x;const y=contour.yCoordinates[i];delta=y-lastY;if(delta===0){flag|=Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR;yCoordinates.push(0);}else{const abs=Math.abs(delta);if(abs<=255){flag|=delta>=0?Y_SHORT_VECTOR|Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR:Y_SHORT_VECTOR;yCoordinates.push(abs);}else{yCoordinates.push(delta);}}
lastY=y;flags.push(flag);}
buf.setUint16(pos,xCoordinates.length-1);pos+=2;}
buf.setUint16(pos,this.instructions.length);pos+=2;if(this.instructions.length){new Uint8Array(buf.buffer,0,buf.buffer.byteLength).set(this.instructions,pos);pos+=this.instructions.length;}
for(const flag of flags){buf.setUint8(pos++,flag);}
for(let i=0,ii=xCoordinates.length;i<ii;i++){const x=xCoordinates[i];const flag=flags[i];if(flag&X_SHORT_VECTOR){buf.setUint8(pos++,x);}else if(!(flag&X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)){buf.setInt16(pos,x);pos+=2;}}
for(let i=0,ii=yCoordinates.length;i<ii;i++){const y=yCoordinates[i];const flag=flags[i];if(flag&Y_SHORT_VECTOR){buf.setUint8(pos++,y);}else if(!(flag&Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)){buf.setInt16(pos,y);pos+=2;}}
return pos-spos;}
scale(x,factor){for(const contour of this.contours){if(contour.xCoordinates.length===0){continue;}
for(let i=0,ii=contour.xCoordinates.length;i<ii;i++){contour.xCoordinates[i]=Math.round(x+(contour.xCoordinates[i]-x)*factor);}}}}
class CompositeGlyph{constructor(_ref6){let{flags,glyphIndex,argument1,argument2,transf,instructions}=_ref6;this.flags=flags;this.glyphIndex=glyphIndex;this.argument1=argument1;this.argument2=argument2;this.transf=transf;this.instructions=instructions;}
static parse(pos,glyf){const spos=pos;const transf=[];let flags=glyf.getUint16(pos);const glyphIndex=glyf.getUint16(pos+2);pos+=4;let argument1,argument2;if(flags&ARG_1_AND_2_ARE_WORDS){if(flags&ARGS_ARE_XY_VALUES){argument1=glyf.getInt16(pos);argument2=glyf.getInt16(pos+2);}else{argument1=glyf.getUint16(pos);argument2=glyf.getUint16(pos+2);}
pos+=4;flags^=ARG_1_AND_2_ARE_WORDS;}else{if(flags&ARGS_ARE_XY_VALUES){argument1=glyf.getInt8(pos);argument2=glyf.getInt8(pos+1);}else{argument1=glyf.getUint8(pos);argument2=glyf.getUint8(pos+1);}
pos+=2;}
if(flags&WE_HAVE_A_SCALE){transf.push(glyf.getUint16(pos));pos+=2;}else if(flags&WE_HAVE_AN_X_AND_Y_SCALE){transf.push(glyf.getUint16(pos),glyf.getUint16(pos+2));pos+=4;}else if(flags&WE_HAVE_A_TWO_BY_TWO){transf.push(glyf.getUint16(pos),glyf.getUint16(pos+2),glyf.getUint16(pos+4),glyf.getUint16(pos+6));pos+=8;}
let instructions=null;if(flags&WE_HAVE_INSTRUCTIONS){const instructionLength=glyf.getUint16(pos);pos+=2;instructions=new Uint8Array(glyf).slice(pos,pos+instructionLength);pos+=instructionLength;}
return[pos-spos,new CompositeGlyph({flags,glyphIndex,argument1,argument2,transf,instructions})];}
getSize(){let size=2+2+this.transf.length*2;if(this.flags&WE_HAVE_INSTRUCTIONS){size+=2+this.instructions.length;}
size+=2;if(this.flags&2){if(!(this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127)){size+=2;}}else{if(!(this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255)){size+=2;}}
return size;}
write(pos,buf){const spos=pos;if(this.flags&ARGS_ARE_XY_VALUES){if(!(this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127)){this.flags|=ARG_1_AND_2_ARE_WORDS;}}else{if(!(this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255)){this.flags|=ARG_1_AND_2_ARE_WORDS;}}
buf.setUint16(pos,this.flags);buf.setUint16(pos+2,this.glyphIndex);pos+=4;if(this.flags&ARG_1_AND_2_ARE_WORDS){if(this.flags&ARGS_ARE_XY_VALUES){buf.setInt16(pos,this.argument1);buf.setInt16(pos+2,this.argument2);}else{buf.setUint16(pos,this.argument1);buf.setUint16(pos+2,this.argument2);}
pos+=4;}else{buf.setUint8(pos,this.argument1);buf.setUint8(pos+1,this.argument2);pos+=2;}
if(this.flags&WE_HAVE_INSTRUCTIONS){buf.setUint16(pos,this.instructions.length);pos+=2;if(this.instructions.length){new Uint8Array(buf.buffer,0,buf.buffer.byteLength).set(this.instructions,pos);pos+=this.instructions.length;}}
return pos-spos;}
scale(x,factor){}}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.OpenTypeFileBuilder=void 0;var _core_utils=__w_pdfjs_require__(131);var _util=__w_pdfjs_require__(2);function writeInt16(dest,offset,num){dest[offset]=num>>8&0xff;dest[offset+1]=num&0xff;}
function writeInt32(dest,offset,num){dest[offset]=num>>24&0xff;dest[offset+1]=num>>16&0xff;dest[offset+2]=num>>8&0xff;dest[offset+3]=num&0xff;}
function writeData(dest,offset,data){if(data instanceof Uint8Array){dest.set(data,offset);}else if(typeof data==="string"){for(let i=0,ii=data.length;i<ii;i++){dest[offset++]=data.charCodeAt(i)&0xff;}}else{for(let i=0,ii=data.length;i<ii;i++){dest[offset++]=data[i]&0xff;}}}
const OTF_HEADER_SIZE=12;const OTF_TABLE_ENTRY_SIZE=16;class OpenTypeFileBuilder{constructor(sfnt){this.sfnt=sfnt;this.tables=Object.create(null);}
static getSearchParams(entriesCount,entrySize){let maxPower2=1,log2=0;while((maxPower2^entriesCount)>maxPower2){maxPower2<<=1;log2++;}
const searchRange=maxPower2*entrySize;return{range:searchRange,entry:log2,rangeShift:entrySize*entriesCount-searchRange};}
toArray(){let sfnt=this.sfnt;const tables=this.tables;const tablesNames=Object.keys(tables);tablesNames.sort();const numTables=tablesNames.length;let i,j,jj,table,tableName;let offset=OTF_HEADER_SIZE+numTables*OTF_TABLE_ENTRY_SIZE;const tableOffsets=[offset];for(i=0;i<numTables;i++){table=tables[tablesNames[i]];const paddedLength=(table.length+3&~3)>>>0;offset+=paddedLength;tableOffsets.push(offset);}
const file=new Uint8Array(offset);for(i=0;i<numTables;i++){table=tables[tablesNames[i]];writeData(file,tableOffsets[i],table);}
if(sfnt==="true"){sfnt=(0,_util.string32)(0x00010000);}
file[0]=sfnt.charCodeAt(0)&0xff;file[1]=sfnt.charCodeAt(1)&0xff;file[2]=sfnt.charCodeAt(2)&0xff;file[3]=sfnt.charCodeAt(3)&0xff;writeInt16(file,4,numTables);const searchParams=OpenTypeFileBuilder.getSearchParams(numTables,16);writeInt16(file,6,searchParams.range);writeInt16(file,8,searchParams.entry);writeInt16(file,10,searchParams.rangeShift);offset=OTF_HEADER_SIZE;for(i=0;i<numTables;i++){tableName=tablesNames[i];file[offset]=tableName.charCodeAt(0)&0xff;file[offset+1]=tableName.charCodeAt(1)&0xff;file[offset+2]=tableName.charCodeAt(2)&0xff;file[offset+3]=tableName.charCodeAt(3)&0xff;let checksum=0;for(j=tableOffsets[i],jj=tableOffsets[i+1];j<jj;j+=4){const quad=(0,_core_utils.readUint32)(file,j);checksum=checksum+quad>>>0;}
writeInt32(file,offset+4,checksum);writeInt32(file,offset+8,tableOffsets[i]);writeInt32(file,offset+12,tables[tableName].length);offset+=OTF_TABLE_ENTRY_SIZE;}
return file;}
addTable(tag,data){if(tag in this.tables){throw new Error("Table "+tag+" already exists");}
this.tables[tag]=data;}}
exports.OpenTypeFileBuilder=OpenTypeFileBuilder;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Type1Font=void 0;var _cff_parser=__w_pdfjs_require__(160);var _fonts_utils=__w_pdfjs_require__(163);var _core_utils=__w_pdfjs_require__(131);var _stream=__w_pdfjs_require__(135);var _type1_parser=__w_pdfjs_require__(174);var _util=__w_pdfjs_require__(2);function findBlock(streamBytes,signature,startIndex){const streamBytesLength=streamBytes.length;const signatureLength=signature.length;const scanLength=streamBytesLength-signatureLength;let i=startIndex,found=false;while(i<scanLength){let j=0;while(j<signatureLength&&streamBytes[i+j]===signature[j]){j++;}
if(j>=signatureLength){i+=j;while(i<streamBytesLength&&(0,_core_utils.isWhiteSpace)(streamBytes[i])){i++;}
found=true;break;}
i++;}
return{found,length:i};}
function getHeaderBlock(stream,suggestedLength){const EEXEC_SIGNATURE=[0x65,0x65,0x78,0x65,0x63];const streamStartPos=stream.pos;let headerBytes,headerBytesLength,block;try{headerBytes=stream.getBytes(suggestedLength);headerBytesLength=headerBytes.length;}catch(ex){}
if(headerBytesLength===suggestedLength){block=findBlock(headerBytes,EEXEC_SIGNATURE,suggestedLength-2*EEXEC_SIGNATURE.length);if(block.found&&block.length===suggestedLength){return{stream:new _stream.Stream(headerBytes),length:suggestedLength};}}
(0,_util.warn)('Invalid "Length1" property in Type1 font -- trying to recover.');stream.pos=streamStartPos;const SCAN_BLOCK_LENGTH=2048;let actualLength;while(true){const scanBytes=stream.peekBytes(SCAN_BLOCK_LENGTH);block=findBlock(scanBytes,EEXEC_SIGNATURE,0);if(block.length===0){break;}
stream.pos+=block.length;if(block.found){actualLength=stream.pos-streamStartPos;break;}}
stream.pos=streamStartPos;if(actualLength){return{stream:new _stream.Stream(stream.getBytes(actualLength)),length:actualLength};}
(0,_util.warn)('Unable to recover "Length1" property in Type1 font -- using as is.');return{stream:new _stream.Stream(stream.getBytes(suggestedLength)),length:suggestedLength};}
function getEexecBlock(stream,suggestedLength){const eexecBytes=stream.getBytes();return{stream:new _stream.Stream(eexecBytes),length:eexecBytes.length};}
class Type1Font{constructor(name,file,properties){const PFB_HEADER_SIZE=6;let headerBlockLength=properties.length1;let eexecBlockLength=properties.length2;let pfbHeader=file.peekBytes(PFB_HEADER_SIZE);const pfbHeaderPresent=pfbHeader[0]===0x80&&pfbHeader[1]===0x01;if(pfbHeaderPresent){file.skip(PFB_HEADER_SIZE);headerBlockLength=pfbHeader[5]<<24|pfbHeader[4]<<16|pfbHeader[3]<<8|pfbHeader[2];}
const headerBlock=getHeaderBlock(file,headerBlockLength);const headerBlockParser=new _type1_parser.Type1Parser(headerBlock.stream,false,_fonts_utils.SEAC_ANALYSIS_ENABLED);headerBlockParser.extractFontHeader(properties);if(pfbHeaderPresent){pfbHeader=file.getBytes(PFB_HEADER_SIZE);eexecBlockLength=pfbHeader[5]<<24|pfbHeader[4]<<16|pfbHeader[3]<<8|pfbHeader[2];}
const eexecBlock=getEexecBlock(file,eexecBlockLength);const eexecBlockParser=new _type1_parser.Type1Parser(eexecBlock.stream,true,_fonts_utils.SEAC_ANALYSIS_ENABLED);const data=eexecBlockParser.extractFontProgram(properties);for(const key in data.properties){properties[key]=data.properties[key];}
const charstrings=data.charstrings;const type2Charstrings=this.getType2Charstrings(charstrings);const subrs=this.getType2Subrs(data.subrs);this.charstrings=charstrings;this.data=this.wrap(name,type2Charstrings,this.charstrings,subrs,properties);this.seacs=this.getSeacs(data.charstrings);}
get numGlyphs(){return this.charstrings.length+1;}
getCharset(){const charset=[".notdef"];for(const{glyphName}of this.charstrings){charset.push(glyphName);}
return charset;}
getGlyphMapping(properties){const charstrings=this.charstrings;if(properties.composite){const charCodeToGlyphId=Object.create(null);for(let glyphId=0,charstringsLen=charstrings.length;glyphId<charstringsLen;glyphId++){const charCode=properties.cMap.charCodeOf(glyphId);charCodeToGlyphId[charCode]=glyphId+1;}
return charCodeToGlyphId;}
const glyphNames=[".notdef"];let builtInEncoding,glyphId;for(glyphId=0;glyphId<charstrings.length;glyphId++){glyphNames.push(charstrings[glyphId].glyphName);}
const encoding=properties.builtInEncoding;if(encoding){builtInEncoding=Object.create(null);for(const charCode in encoding){glyphId=glyphNames.indexOf(encoding[charCode]);if(glyphId>=0){builtInEncoding[charCode]=glyphId;}}}
return(0,_fonts_utils.type1FontGlyphMapping)(properties,builtInEncoding,glyphNames);}
hasGlyphId(id){if(id<0||id>=this.numGlyphs){return false;}
if(id===0){return true;}
const glyph=this.charstrings[id-1];return glyph.charstring.length>0;}
getSeacs(charstrings){const seacMap=[];for(let i=0,ii=charstrings.length;i<ii;i++){const charstring=charstrings[i];if(charstring.seac){seacMap[i+1]=charstring.seac;}}
return seacMap;}
getType2Charstrings(type1Charstrings){const type2Charstrings=[];for(let i=0,ii=type1Charstrings.length;i<ii;i++){type2Charstrings.push(type1Charstrings[i].charstring);}
return type2Charstrings;}
getType2Subrs(type1Subrs){let bias=0;const count=type1Subrs.length;if(count<1133){bias=107;}else if(count<33769){bias=1131;}else{bias=32768;}
const type2Subrs=[];let i;for(i=0;i<bias;i++){type2Subrs.push([0x0b]);}
for(i=0;i<count;i++){type2Subrs.push(type1Subrs[i]);}
return type2Subrs;}
wrap(name,glyphs,charstrings,subrs,properties){const cff=new _cff_parser.CFF();cff.header=new _cff_parser.CFFHeader(1,0,4,4);cff.names=[name];const topDict=new _cff_parser.CFFTopDict();topDict.setByName("version",391);topDict.setByName("Notice",392);topDict.setByName("FullName",393);topDict.setByName("FamilyName",394);topDict.setByName("Weight",395);topDict.setByName("Encoding",null);topDict.setByName("FontMatrix",properties.fontMatrix);topDict.setByName("FontBBox",properties.bbox);topDict.setByName("charset",null);topDict.setByName("CharStrings",null);topDict.setByName("Private",null);cff.topDict=topDict;const strings=new _cff_parser.CFFStrings();strings.add("Version 0.11");strings.add("See original notice");strings.add(name);strings.add(name);strings.add("Medium");cff.strings=strings;cff.globalSubrIndex=new _cff_parser.CFFIndex();const count=glyphs.length;const charsetArray=[".notdef"];let i,ii;for(i=0;i<count;i++){const glyphName=charstrings[i].glyphName;const index=_cff_parser.CFFStandardStrings.indexOf(glyphName);if(index===-1){strings.add(glyphName);}
charsetArray.push(glyphName);}
cff.charset=new _cff_parser.CFFCharset(false,0,charsetArray);const charStringsIndex=new _cff_parser.CFFIndex();charStringsIndex.add([0x8b,0x0e]);for(i=0;i<count;i++){charStringsIndex.add(glyphs[i]);}
cff.charStrings=charStringsIndex;const privateDict=new _cff_parser.CFFPrivateDict();privateDict.setByName("Subrs",null);const fields=["BlueValues","OtherBlues","FamilyBlues","FamilyOtherBlues","StemSnapH","StemSnapV","BlueShift","BlueFuzz","BlueScale","LanguageGroup","ExpansionFactor","ForceBold","StdHW","StdVW"];for(i=0,ii=fields.length;i<ii;i++){const field=fields[i];if(!(field in properties.privateData)){continue;}
const value=properties.privateData[field];if(Array.isArray(value)){for(let j=value.length-1;j>0;j--){value[j]-=value[j-1];}}
privateDict.setByName(field,value);}
cff.topDict.privateDict=privateDict;const subrIndex=new _cff_parser.CFFIndex();for(i=0,ii=subrs.length;i<ii;i++){subrIndex.add(subrs[i]);}
privateDict.subrsIndex=subrIndex;const compiler=new _cff_parser.CFFCompiler(cff);return compiler.compile();}}
exports.Type1Font=Type1Font;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Type1Parser=void 0;var _encodings=__w_pdfjs_require__(162);var _core_utils=__w_pdfjs_require__(131);var _stream=__w_pdfjs_require__(135);var _util=__w_pdfjs_require__(2);const HINTING_ENABLED=false;const COMMAND_MAP={hstem:[1],vstem:[3],vmoveto:[4],rlineto:[5],hlineto:[6],vlineto:[7],rrcurveto:[8],callsubr:[10],flex:[12,35],drop:[12,18],endchar:[14],rmoveto:[21],hmoveto:[22],vhcurveto:[30],hvcurveto:[31]};class Type1CharString{constructor(){this.width=0;this.lsb=0;this.flexing=false;this.output=[];this.stack=[];}
convert(encoded,subrs,seacAnalysisEnabled){const count=encoded.length;let error=false;let wx,sbx,subrNumber;for(let i=0;i<count;i++){let value=encoded[i];if(value<32){if(value===12){value=(value<<8)+encoded[++i];}
switch(value){case 1:if(!HINTING_ENABLED){this.stack=[];break;}
error=this.executeCommand(2,COMMAND_MAP.hstem);break;case 3:if(!HINTING_ENABLED){this.stack=[];break;}
error=this.executeCommand(2,COMMAND_MAP.vstem);break;case 4:if(this.flexing){if(this.stack.length<1){error=true;break;}
const dy=this.stack.pop();this.stack.push(0,dy);break;}
error=this.executeCommand(1,COMMAND_MAP.vmoveto);break;case 5:error=this.executeCommand(2,COMMAND_MAP.rlineto);break;case 6:error=this.executeCommand(1,COMMAND_MAP.hlineto);break;case 7:error=this.executeCommand(1,COMMAND_MAP.vlineto);break;case 8:error=this.executeCommand(6,COMMAND_MAP.rrcurveto);break;case 9:this.stack=[];break;case 10:if(this.stack.length<1){error=true;break;}
subrNumber=this.stack.pop();if(!subrs[subrNumber]){error=true;break;}
error=this.convert(subrs[subrNumber],subrs,seacAnalysisEnabled);break;case 11:return error;case 13:if(this.stack.length<2){error=true;break;}
wx=this.stack.pop();sbx=this.stack.pop();this.lsb=sbx;this.width=wx;this.stack.push(wx,sbx);error=this.executeCommand(2,COMMAND_MAP.hmoveto);break;case 14:this.output.push(COMMAND_MAP.endchar[0]);break;case 21:if(this.flexing){break;}
error=this.executeCommand(2,COMMAND_MAP.rmoveto);break;case 22:if(this.flexing){this.stack.push(0);break;}
error=this.executeCommand(1,COMMAND_MAP.hmoveto);break;case 30:error=this.executeCommand(4,COMMAND_MAP.vhcurveto);break;case 31:error=this.executeCommand(4,COMMAND_MAP.hvcurveto);break;case(12<<8)+0:this.stack=[];break;case(12<<8)+1:if(!HINTING_ENABLED){this.stack=[];break;}
error=this.executeCommand(2,COMMAND_MAP.vstem);break;case(12<<8)+2:if(!HINTING_ENABLED){this.stack=[];break;}
error=this.executeCommand(2,COMMAND_MAP.hstem);break;case(12<<8)+6:if(seacAnalysisEnabled){const asb=this.stack.at(-5);this.seac=this.stack.splice(-4,4);this.seac[0]+=this.lsb-asb;error=this.executeCommand(0,COMMAND_MAP.endchar);}else{error=this.executeCommand(4,COMMAND_MAP.endchar);}
break;case(12<<8)+7:if(this.stack.length<4){error=true;break;}
this.stack.pop();wx=this.stack.pop();const sby=this.stack.pop();sbx=this.stack.pop();this.lsb=sbx;this.width=wx;this.stack.push(wx,sbx,sby);error=this.executeCommand(3,COMMAND_MAP.rmoveto);break;case(12<<8)+12:if(this.stack.length<2){error=true;break;}
const num2=this.stack.pop();const num1=this.stack.pop();this.stack.push(num1/num2);break;case(12<<8)+16:if(this.stack.length<2){error=true;break;}
subrNumber=this.stack.pop();const numArgs=this.stack.pop();if(subrNumber===0&&numArgs===3){const flexArgs=this.stack.splice(this.stack.length-17,17);this.stack.push(flexArgs[2]+flexArgs[0],flexArgs[3]+flexArgs[1],flexArgs[4],flexArgs[5],flexArgs[6],flexArgs[7],flexArgs[8],flexArgs[9],flexArgs[10],flexArgs[11],flexArgs[12],flexArgs[13],flexArgs[14]);error=this.executeCommand(13,COMMAND_MAP.flex,true);this.flexing=false;this.stack.push(flexArgs[15],flexArgs[16]);}else if(subrNumber===1&&numArgs===0){this.flexing=true;}
break;case(12<<8)+17:break;case(12<<8)+33:this.stack=[];break;default:(0,_util.warn)('Unknown type 1 charstring command of "'+value+'"');break;}
if(error){break;}
continue;}else if(value<=246){value-=139;}else if(value<=250){value=(value-247)*256+encoded[++i]+108;}else if(value<=254){value=-((value-251)*256)-encoded[++i]-108;}else{value=(encoded[++i]&0xff)<<24|(encoded[++i]&0xff)<<16|(encoded[++i]&0xff)<<8|(encoded[++i]&0xff)<<0;}
this.stack.push(value);}
return error;}
executeCommand(howManyArgs,command,keepStack){const stackLength=this.stack.length;if(howManyArgs>stackLength){return true;}
const start=stackLength-howManyArgs;for(let i=start;i<stackLength;i++){let value=this.stack[i];if(Number.isInteger(value)){this.output.push(28,value>>8&0xff,value&0xff);}else{value=65536*value|0;this.output.push(255,value>>24&0xff,value>>16&0xff,value>>8&0xff,value&0xff);}}
this.output.push(...command);if(keepStack){this.stack.splice(start,howManyArgs);}else{this.stack.length=0;}
return false;}}
const EEXEC_ENCRYPT_KEY=55665;const CHAR_STRS_ENCRYPT_KEY=4330;function isHexDigit(code){return code>=48&&code<=57||code>=65&&code<=70||code>=97&&code<=102;}
function decrypt(data,key,discardNumber){if(discardNumber>=data.length){return new Uint8Array(0);}
const c1=52845,c2=22719;let r=key|0,i,j;for(i=0;i<discardNumber;i++){r=(data[i]+r)*c1+c2&(1<<16)-1;}
const count=data.length-discardNumber;const decrypted=new Uint8Array(count);for(i=discardNumber,j=0;j<count;i++,j++){const value=data[i];decrypted[j]=value^r>>8;r=(value+r)*c1+c2&(1<<16)-1;}
return decrypted;}
function decryptAscii(data,key,discardNumber){const c1=52845,c2=22719;let r=key|0;const count=data.length,maybeLength=count>>>1;const decrypted=new Uint8Array(maybeLength);let i,j;for(i=0,j=0;i<count;i++){const digit1=data[i];if(!isHexDigit(digit1)){continue;}
i++;let digit2;while(i<count&&!isHexDigit(digit2=data[i])){i++;}
if(i<count){const value=parseInt(String.fromCharCode(digit1,digit2),16);decrypted[j++]=value^r>>8;r=(value+r)*c1+c2&(1<<16)-1;}}
return decrypted.slice(discardNumber,j);}
function isSpecial(c){return c===0x2f||c===0x5b||c===0x5d||c===0x7b||c===0x7d||c===0x28||c===0x29;}
class Type1Parser{constructor(stream,encrypted,seacAnalysisEnabled){if(encrypted){const data=stream.getBytes();const isBinary=!((isHexDigit(data[0])||(0,_core_utils.isWhiteSpace)(data[0]))&&isHexDigit(data[1])&&isHexDigit(data[2])&&isHexDigit(data[3])&&isHexDigit(data[4])&&isHexDigit(data[5])&&isHexDigit(data[6])&&isHexDigit(data[7]));stream=new _stream.Stream(isBinary?decrypt(data,EEXEC_ENCRYPT_KEY,4):decryptAscii(data,EEXEC_ENCRYPT_KEY,4));}
this.seacAnalysisEnabled=!!seacAnalysisEnabled;this.stream=stream;this.nextChar();}
readNumberArray(){this.getToken();const array=[];while(true){const token=this.getToken();if(token===null||token==="]"||token==="}"){break;}
array.push(parseFloat(token||0));}
return array;}
readNumber(){const token=this.getToken();return parseFloat(token||0);}
readInt(){const token=this.getToken();return parseInt(token||0,10)|0;}
readBoolean(){const token=this.getToken();return token==="true"?1:0;}
nextChar(){return this.currentChar=this.stream.getByte();}
prevChar(){this.stream.skip(-2);return this.currentChar=this.stream.getByte();}
getToken(){let comment=false;let ch=this.currentChar;while(true){if(ch===-1){return null;}
if(comment){if(ch===0x0a||ch===0x0d){comment=false;}}else if(ch===0x25){comment=true;}else if(!(0,_core_utils.isWhiteSpace)(ch)){break;}
ch=this.nextChar();}
if(isSpecial(ch)){this.nextChar();return String.fromCharCode(ch);}
let token="";do{token+=String.fromCharCode(ch);ch=this.nextChar();}while(ch>=0&&!(0,_core_utils.isWhiteSpace)(ch)&&!isSpecial(ch));return token;}
readCharStrings(bytes,lenIV){if(lenIV===-1){return bytes;}
return decrypt(bytes,CHAR_STRS_ENCRYPT_KEY,lenIV);}
extractFontProgram(properties){const stream=this.stream;const subrs=[],charstrings=[];const privateData=Object.create(null);privateData.lenIV=4;const program={subrs:[],charstrings:[],properties:{privateData}};let token,length,data,lenIV;while((token=this.getToken())!==null){if(token!=="/"){continue;}
token=this.getToken();switch(token){case"CharStrings":this.getToken();this.getToken();this.getToken();this.getToken();while(true){token=this.getToken();if(token===null||token==="end"){break;}
if(token!=="/"){continue;}
const glyph=this.getToken();length=this.readInt();this.getToken();data=length>0?stream.getBytes(length):new Uint8Array(0);lenIV=program.properties.privateData.lenIV;const encoded=this.readCharStrings(data,lenIV);this.nextChar();token=this.getToken();if(token==="noaccess"){this.getToken();}else if(token==="/"){this.prevChar();}
charstrings.push({glyph,encoded});}
break;case"Subrs":this.readInt();this.getToken();while(this.getToken()==="dup"){const index=this.readInt();length=this.readInt();this.getToken();data=length>0?stream.getBytes(length):new Uint8Array(0);lenIV=program.properties.privateData.lenIV;const encoded=this.readCharStrings(data,lenIV);this.nextChar();token=this.getToken();if(token==="noaccess"){this.getToken();}
subrs[index]=encoded;}
break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":const blueArray=this.readNumberArray();if(blueArray.length>0&&blueArray.length%2===0&&HINTING_ENABLED){program.properties.privateData[token]=blueArray;}
break;case"StemSnapH":case"StemSnapV":program.properties.privateData[token]=this.readNumberArray();break;case"StdHW":case"StdVW":program.properties.privateData[token]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":program.properties.privateData[token]=this.readNumber();break;case"ForceBold":program.properties.privateData[token]=this.readBoolean();break;}}
for(const{encoded,glyph}of charstrings){const charString=new Type1CharString();const error=charString.convert(encoded,subrs,this.seacAnalysisEnabled);let output=charString.output;if(error){output=[14];}
const charStringObject={glyphName:glyph,charstring:output,width:charString.width,lsb:charString.lsb,seac:charString.seac};if(glyph===".notdef"){program.charstrings.unshift(charStringObject);}else{program.charstrings.push(charStringObject);}
if(properties.builtInEncoding){const index=properties.builtInEncoding.indexOf(glyph);if(index>-1&&properties.widths[index]===undefined&&index>=properties.firstChar&&index<=properties.lastChar){properties.widths[index]=charString.width;}}}
return program;}
extractFontHeader(properties){let token;while((token=this.getToken())!==null){if(token!=="/"){continue;}
token=this.getToken();switch(token){case"FontMatrix":const matrix=this.readNumberArray();properties.fontMatrix=matrix;break;case"Encoding":const encodingArg=this.getToken();let encoding;if(!/^\d+$/.test(encodingArg)){encoding=(0,_encodings.getEncoding)(encodingArg);}else{encoding=[];const size=parseInt(encodingArg,10)|0;this.getToken();for(let j=0;j<size;j++){token=this.getToken();while(token!=="dup"&&token!=="def"){token=this.getToken();if(token===null){return;}}
if(token==="def"){break;}
const index=this.readInt();this.getToken();const glyph=this.getToken();encoding[index]=glyph;this.getToken();}}
properties.builtInEncoding=encoding;break;case"FontBBox":const fontBBox=this.readNumberArray();properties.ascent=Math.max(fontBBox[3],fontBBox[1]);properties.descent=Math.min(fontBBox[1],fontBBox[3]);properties.ascentScaled=true;break;}}}}
exports.Type1Parser=Type1Parser;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Pattern=void 0;exports.getTilingPatternIR=getTilingPatternIR;var _util=__w_pdfjs_require__(2);var _base_stream=__w_pdfjs_require__(132);var _colorspace=__w_pdfjs_require__(139);var _core_utils=__w_pdfjs_require__(131);const ShadingType={FUNCTION_BASED:1,AXIAL:2,RADIAL:3,FREE_FORM_MESH:4,LATTICE_FORM_MESH:5,COONS_PATCH_MESH:6,TENSOR_PATCH_MESH:7};class Pattern{constructor(){(0,_util.unreachable)("Cannot initialize Pattern.");}
static parseShading(shading,xref,res,handler,pdfFunctionFactory,localColorSpaceCache){const dict=shading instanceof _base_stream.BaseStream?shading.dict:shading;const type=dict.get("ShadingType");try{switch(type){case ShadingType.AXIAL:case ShadingType.RADIAL:return new RadialAxialShading(dict,xref,res,pdfFunctionFactory,localColorSpaceCache);case ShadingType.FREE_FORM_MESH:case ShadingType.LATTICE_FORM_MESH:case ShadingType.COONS_PATCH_MESH:case ShadingType.TENSOR_PATCH_MESH:return new MeshShading(shading,xref,res,pdfFunctionFactory,localColorSpaceCache);default:throw new _util.FormatError("Unsupported ShadingType: "+type);}}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
handler.send("UnsupportedFeature",{featureId:_util.UNSUPPORTED_FEATURES.shadingPattern});(0,_util.warn)(ex);return new DummyShading();}}}
exports.Pattern=Pattern;class BaseShading{static get SMALL_NUMBER(){return(0,_util.shadow)(this,"SMALL_NUMBER",1e-6);}
constructor(){if(this.constructor===BaseShading){(0,_util.unreachable)("Cannot initialize BaseShading.");}}
getIR(){(0,_util.unreachable)("Abstract method `getIR` called.");}}
class RadialAxialShading extends BaseShading{constructor(dict,xref,resources,pdfFunctionFactory,localColorSpaceCache){super();this.coordsArr=dict.getArray("Coords");this.shadingType=dict.get("ShadingType");const cs=_colorspace.ColorSpace.parse({cs:dict.getRaw("CS")||dict.getRaw("ColorSpace"),xref,resources,pdfFunctionFactory,localColorSpaceCache});const bbox=dict.getArray("BBox");if(Array.isArray(bbox)&&bbox.length===4){this.bbox=_util.Util.normalizeRect(bbox);}else{this.bbox=null;}
let t0=0.0,t1=1.0;if(dict.has("Domain")){const domainArr=dict.getArray("Domain");t0=domainArr[0];t1=domainArr[1];}
let extendStart=false,extendEnd=false;if(dict.has("Extend")){const extendArr=dict.getArray("Extend");extendStart=extendArr[0];extendEnd=extendArr[1];}
if(this.shadingType===ShadingType.RADIAL&&(!extendStart||!extendEnd)){const[x1,y1,r1,x2,y2,r2]=this.coordsArr;const distance=Math.hypot(x1-x2,y1-y2);if(r1<=r2+distance&&r2<=r1+distance){(0,_util.warn)("Unsupported radial gradient.");}}
this.extendStart=extendStart;this.extendEnd=extendEnd;const fnObj=dict.getRaw("Function");const fn=pdfFunctionFactory.createFromArray(fnObj);const NUMBER_OF_SAMPLES=10;const step=(t1-t0)/NUMBER_OF_SAMPLES;const colorStops=this.colorStops=[];if(t0>=t1||step<=0){(0,_util.info)("Bad shading domain.");return;}
const color=new Float32Array(cs.numComps),ratio=new Float32Array(1);let rgbColor;for(let i=0;i<=NUMBER_OF_SAMPLES;i++){ratio[0]=t0+i*step;fn(ratio,0,color,0);rgbColor=cs.getRgb(color,0);const cssColor=_util.Util.makeHexColor(rgbColor[0],rgbColor[1],rgbColor[2]);colorStops.push([i/NUMBER_OF_SAMPLES,cssColor]);}
let background="transparent";if(dict.has("Background")){rgbColor=cs.getRgb(dict.get("Background"),0);background=_util.Util.makeHexColor(rgbColor[0],rgbColor[1],rgbColor[2]);}
if(!extendStart){colorStops.unshift([0,background]);colorStops[1][0]+=BaseShading.SMALL_NUMBER;}
if(!extendEnd){colorStops.at(-1)[0]-=BaseShading.SMALL_NUMBER;colorStops.push([1,background]);}
this.colorStops=colorStops;}
getIR(){const coordsArr=this.coordsArr;const shadingType=this.shadingType;let type,p0,p1,r0,r1;if(shadingType===ShadingType.AXIAL){p0=[coordsArr[0],coordsArr[1]];p1=[coordsArr[2],coordsArr[3]];r0=null;r1=null;type="axial";}else if(shadingType===ShadingType.RADIAL){p0=[coordsArr[0],coordsArr[1]];p1=[coordsArr[3],coordsArr[4]];r0=coordsArr[2];r1=coordsArr[5];type="radial";}else{(0,_util.unreachable)(`getPattern type unknown: ${shadingType}`);}
return["RadialAxial",type,this.bbox,this.colorStops,p0,p1,r0,r1];}}
class MeshStreamReader{constructor(stream,context){this.stream=stream;this.context=context;this.buffer=0;this.bufferLength=0;const numComps=context.numComps;this.tmpCompsBuf=new Float32Array(numComps);const csNumComps=context.colorSpace.numComps;this.tmpCsCompsBuf=context.colorFn?new Float32Array(csNumComps):this.tmpCompsBuf;}
get hasData(){if(this.stream.end){return this.stream.pos<this.stream.end;}
if(this.bufferLength>0){return true;}
const nextByte=this.stream.getByte();if(nextByte<0){return false;}
this.buffer=nextByte;this.bufferLength=8;return true;}
readBits(n){let buffer=this.buffer;let bufferLength=this.bufferLength;if(n===32){if(bufferLength===0){return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;}
buffer=buffer<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();const nextByte=this.stream.getByte();this.buffer=nextByte&(1<<bufferLength)-1;return(buffer<<8-bufferLength|(nextByte&0xff)>>bufferLength)>>>0;}
if(n===8&&bufferLength===0){return this.stream.getByte();}
while(bufferLength<n){buffer=buffer<<8|this.stream.getByte();bufferLength+=8;}
bufferLength-=n;this.bufferLength=bufferLength;this.buffer=buffer&(1<<bufferLength)-1;return buffer>>bufferLength;}
align(){this.buffer=0;this.bufferLength=0;}
readFlag(){return this.readBits(this.context.bitsPerFlag);}
readCoordinate(){const bitsPerCoordinate=this.context.bitsPerCoordinate;const xi=this.readBits(bitsPerCoordinate);const yi=this.readBits(bitsPerCoordinate);const decode=this.context.decode;const scale=bitsPerCoordinate<32?1/((1<<bitsPerCoordinate)-1):2.3283064365386963e-10;return[xi*scale*(decode[1]-decode[0])+decode[0],yi*scale*(decode[3]-decode[2])+decode[2]];}
readComponents(){const numComps=this.context.numComps;const bitsPerComponent=this.context.bitsPerComponent;const scale=bitsPerComponent<32?1/((1<<bitsPerComponent)-1):2.3283064365386963e-10;const decode=this.context.decode;const components=this.tmpCompsBuf;for(let i=0,j=4;i<numComps;i++,j+=2){const ci=this.readBits(bitsPerComponent);components[i]=ci*scale*(decode[j+1]-decode[j])+decode[j];}
const color=this.tmpCsCompsBuf;if(this.context.colorFn){this.context.colorFn(components,0,color,0);}
return this.context.colorSpace.getRgb(color,0);}}
const getB=function getBClosure(){function buildB(count){const lut=[];for(let i=0;i<=count;i++){const t=i/count,t_=1-t;lut.push(new Float32Array([t_*t_*t_,3*t*t_*t_,3*t*t*t_,t*t*t]));}
return lut;}
const cache=[];return function(count){if(!cache[count]){cache[count]=buildB(count);}
return cache[count];};}();class MeshShading extends BaseShading{static get MIN_SPLIT_PATCH_CHUNKS_AMOUNT(){return(0,_util.shadow)(this,"MIN_SPLIT_PATCH_CHUNKS_AMOUNT",3);}
static get MAX_SPLIT_PATCH_CHUNKS_AMOUNT(){return(0,_util.shadow)(this,"MAX_SPLIT_PATCH_CHUNKS_AMOUNT",20);}
static get TRIANGLE_DENSITY(){return(0,_util.shadow)(this,"TRIANGLE_DENSITY",20);}
constructor(stream,xref,resources,pdfFunctionFactory,localColorSpaceCache){super();if(!(stream instanceof _base_stream.BaseStream)){throw new _util.FormatError("Mesh data is not a stream");}
const dict=stream.dict;this.shadingType=dict.get("ShadingType");const bbox=dict.getArray("BBox");if(Array.isArray(bbox)&&bbox.length===4){this.bbox=_util.Util.normalizeRect(bbox);}else{this.bbox=null;}
const cs=_colorspace.ColorSpace.parse({cs:dict.getRaw("CS")||dict.getRaw("ColorSpace"),xref,resources,pdfFunctionFactory,localColorSpaceCache});this.background=dict.has("Background")?cs.getRgb(dict.get("Background"),0):null;const fnObj=dict.getRaw("Function");const fn=fnObj?pdfFunctionFactory.createFromArray(fnObj):null;this.coords=[];this.colors=[];this.figures=[];const decodeContext={bitsPerCoordinate:dict.get("BitsPerCoordinate"),bitsPerComponent:dict.get("BitsPerComponent"),bitsPerFlag:dict.get("BitsPerFlag"),decode:dict.getArray("Decode"),colorFn:fn,colorSpace:cs,numComps:fn?1:cs.numComps};const reader=new MeshStreamReader(stream,decodeContext);let patchMesh=false;switch(this.shadingType){case ShadingType.FREE_FORM_MESH:this._decodeType4Shading(reader);break;case ShadingType.LATTICE_FORM_MESH:const verticesPerRow=dict.get("VerticesPerRow")|0;if(verticesPerRow<2){throw new _util.FormatError("Invalid VerticesPerRow");}
this._decodeType5Shading(reader,verticesPerRow);break;case ShadingType.COONS_PATCH_MESH:this._decodeType6Shading(reader);patchMesh=true;break;case ShadingType.TENSOR_PATCH_MESH:this._decodeType7Shading(reader);patchMesh=true;break;default:(0,_util.unreachable)("Unsupported mesh type.");break;}
if(patchMesh){this._updateBounds();for(let i=0,ii=this.figures.length;i<ii;i++){this._buildFigureFromPatch(i);}}
this._updateBounds();this._packData();}
_decodeType4Shading(reader){const coords=this.coords;const colors=this.colors;const operators=[];const ps=[];let verticesLeft=0;while(reader.hasData){const f=reader.readFlag();const coord=reader.readCoordinate();const color=reader.readComponents();if(verticesLeft===0){if(!(0<=f&&f<=2)){throw new _util.FormatError("Unknown type4 flag");}
switch(f){case 0:verticesLeft=3;break;case 1:ps.push(ps.at(-2),ps.at(-1));verticesLeft=1;break;case 2:ps.push(ps.at(-3),ps.at(-1));verticesLeft=1;break;}
operators.push(f);}
ps.push(coords.length);coords.push(coord);colors.push(color);verticesLeft--;reader.align();}
this.figures.push({type:"triangles",coords:new Int32Array(ps),colors:new Int32Array(ps)});}
_decodeType5Shading(reader,verticesPerRow){const coords=this.coords;const colors=this.colors;const ps=[];while(reader.hasData){const coord=reader.readCoordinate();const color=reader.readComponents();ps.push(coords.length);coords.push(coord);colors.push(color);}
this.figures.push({type:"lattice",coords:new Int32Array(ps),colors:new Int32Array(ps),verticesPerRow});}
_decodeType6Shading(reader){const coords=this.coords;const colors=this.colors;const ps=new Int32Array(16);const cs=new Int32Array(4);while(reader.hasData){const f=reader.readFlag();if(!(0<=f&&f<=3)){throw new _util.FormatError("Unknown type6 flag");}
const pi=coords.length;for(let i=0,ii=f!==0?8:12;i<ii;i++){coords.push(reader.readCoordinate());}
const ci=colors.length;for(let i=0,ii=f!==0?2:4;i<ii;i++){colors.push(reader.readComponents());}
let tmp1,tmp2,tmp3,tmp4;switch(f){case 0:ps[12]=pi+3;ps[13]=pi+4;ps[14]=pi+5;ps[15]=pi+6;ps[8]=pi+2;ps[11]=pi+7;ps[4]=pi+1;ps[7]=pi+8;ps[0]=pi;ps[1]=pi+11;ps[2]=pi+10;ps[3]=pi+9;cs[2]=ci+1;cs[3]=ci+2;cs[0]=ci;cs[1]=ci+3;break;case 1:tmp1=ps[12];tmp2=ps[13];tmp3=ps[14];tmp4=ps[15];ps[12]=tmp4;ps[13]=pi+0;ps[14]=pi+1;ps[15]=pi+2;ps[8]=tmp3;ps[11]=pi+3;ps[4]=tmp2;ps[7]=pi+4;ps[0]=tmp1;ps[1]=pi+7;ps[2]=pi+6;ps[3]=pi+5;tmp1=cs[2];tmp2=cs[3];cs[2]=tmp2;cs[3]=ci;cs[0]=tmp1;cs[1]=ci+1;break;case 2:tmp1=ps[15];tmp2=ps[11];ps[12]=ps[3];ps[13]=pi+0;ps[14]=pi+1;ps[15]=pi+2;ps[8]=ps[7];ps[11]=pi+3;ps[4]=tmp2;ps[7]=pi+4;ps[0]=tmp1;ps[1]=pi+7;ps[2]=pi+6;ps[3]=pi+5;tmp1=cs[3];cs[2]=cs[1];cs[3]=ci;cs[0]=tmp1;cs[1]=ci+1;break;case 3:ps[12]=ps[0];ps[13]=pi+0;ps[14]=pi+1;ps[15]=pi+2;ps[8]=ps[1];ps[11]=pi+3;ps[4]=ps[2];ps[7]=pi+4;ps[0]=ps[3];ps[1]=pi+7;ps[2]=pi+6;ps[3]=pi+5;cs[2]=cs[0];cs[3]=ci;cs[0]=cs[1];cs[1]=ci+1;break;}
ps[5]=coords.length;coords.push([(-4*coords[ps[0]][0]-coords[ps[15]][0]+6*(coords[ps[4]][0]+coords[ps[1]][0])-2*(coords[ps[12]][0]+coords[ps[3]][0])+3*(coords[ps[13]][0]+coords[ps[7]][0]))/9,(-4*coords[ps[0]][1]-coords[ps[15]][1]+6*(coords[ps[4]][1]+coords[ps[1]][1])-2*(coords[ps[12]][1]+coords[ps[3]][1])+3*(coords[ps[13]][1]+coords[ps[7]][1]))/9]);ps[6]=coords.length;coords.push([(-4*coords[ps[3]][0]-coords[ps[12]][0]+6*(coords[ps[2]][0]+coords[ps[7]][0])-2*(coords[ps[0]][0]+coords[ps[15]][0])+3*(coords[ps[4]][0]+coords[ps[14]][0]))/9,(-4*coords[ps[3]][1]-coords[ps[12]][1]+6*(coords[ps[2]][1]+coords[ps[7]][1])-2*(coords[ps[0]][1]+coords[ps[15]][1])+3*(coords[ps[4]][1]+coords[ps[14]][1]))/9]);ps[9]=coords.length;coords.push([(-4*coords[ps[12]][0]-coords[ps[3]][0]+6*(coords[ps[8]][0]+coords[ps[13]][0])-2*(coords[ps[0]][0]+coords[ps[15]][0])+3*(coords[ps[11]][0]+coords[ps[1]][0]))/9,(-4*coords[ps[12]][1]-coords[ps[3]][1]+6*(coords[ps[8]][1]+coords[ps[13]][1])-2*(coords[ps[0]][1]+coords[ps[15]][1])+3*(coords[ps[11]][1]+coords[ps[1]][1]))/9]);ps[10]=coords.length;coords.push([(-4*coords[ps[15]][0]-coords[ps[0]][0]+6*(coords[ps[11]][0]+coords[ps[14]][0])-2*(coords[ps[12]][0]+coords[ps[3]][0])+3*(coords[ps[2]][0]+coords[ps[8]][0]))/9,(-4*coords[ps[15]][1]-coords[ps[0]][1]+6*(coords[ps[11]][1]+coords[ps[14]][1])-2*(coords[ps[12]][1]+coords[ps[3]][1])+3*(coords[ps[2]][1]+coords[ps[8]][1]))/9]);this.figures.push({type:"patch",coords:new Int32Array(ps),colors:new Int32Array(cs)});}}
_decodeType7Shading(reader){const coords=this.coords;const colors=this.colors;const ps=new Int32Array(16);const cs=new Int32Array(4);while(reader.hasData){const f=reader.readFlag();if(!(0<=f&&f<=3)){throw new _util.FormatError("Unknown type7 flag");}
const pi=coords.length;for(let i=0,ii=f!==0?12:16;i<ii;i++){coords.push(reader.readCoordinate());}
const ci=colors.length;for(let i=0,ii=f!==0?2:4;i<ii;i++){colors.push(reader.readComponents());}
let tmp1,tmp2,tmp3,tmp4;switch(f){case 0:ps[12]=pi+3;ps[13]=pi+4;ps[14]=pi+5;ps[15]=pi+6;ps[8]=pi+2;ps[9]=pi+13;ps[10]=pi+14;ps[11]=pi+7;ps[4]=pi+1;ps[5]=pi+12;ps[6]=pi+15;ps[7]=pi+8;ps[0]=pi;ps[1]=pi+11;ps[2]=pi+10;ps[3]=pi+9;cs[2]=ci+1;cs[3]=ci+2;cs[0]=ci;cs[1]=ci+3;break;case 1:tmp1=ps[12];tmp2=ps[13];tmp3=ps[14];tmp4=ps[15];ps[12]=tmp4;ps[13]=pi+0;ps[14]=pi+1;ps[15]=pi+2;ps[8]=tmp3;ps[9]=pi+9;ps[10]=pi+10;ps[11]=pi+3;ps[4]=tmp2;ps[5]=pi+8;ps[6]=pi+11;ps[7]=pi+4;ps[0]=tmp1;ps[1]=pi+7;ps[2]=pi+6;ps[3]=pi+5;tmp1=cs[2];tmp2=cs[3];cs[2]=tmp2;cs[3]=ci;cs[0]=tmp1;cs[1]=ci+1;break;case 2:tmp1=ps[15];tmp2=ps[11];ps[12]=ps[3];ps[13]=pi+0;ps[14]=pi+1;ps[15]=pi+2;ps[8]=ps[7];ps[9]=pi+9;ps[10]=pi+10;ps[11]=pi+3;ps[4]=tmp2;ps[5]=pi+8;ps[6]=pi+11;ps[7]=pi+4;ps[0]=tmp1;ps[1]=pi+7;ps[2]=pi+6;ps[3]=pi+5;tmp1=cs[3];cs[2]=cs[1];cs[3]=ci;cs[0]=tmp1;cs[1]=ci+1;break;case 3:ps[12]=ps[0];ps[13]=pi+0;ps[14]=pi+1;ps[15]=pi+2;ps[8]=ps[1];ps[9]=pi+9;ps[10]=pi+10;ps[11]=pi+3;ps[4]=ps[2];ps[5]=pi+8;ps[6]=pi+11;ps[7]=pi+4;ps[0]=ps[3];ps[1]=pi+7;ps[2]=pi+6;ps[3]=pi+5;cs[2]=cs[0];cs[3]=ci;cs[0]=cs[1];cs[1]=ci+1;break;}
this.figures.push({type:"patch",coords:new Int32Array(ps),colors:new Int32Array(cs)});}}
_buildFigureFromPatch(index){const figure=this.figures[index];(0,_util.assert)(figure.type==="patch","Unexpected patch mesh figure");const coords=this.coords,colors=this.colors;const pi=figure.coords;const ci=figure.colors;const figureMinX=Math.min(coords[pi[0]][0],coords[pi[3]][0],coords[pi[12]][0],coords[pi[15]][0]);const figureMinY=Math.min(coords[pi[0]][1],coords[pi[3]][1],coords[pi[12]][1],coords[pi[15]][1]);const figureMaxX=Math.max(coords[pi[0]][0],coords[pi[3]][0],coords[pi[12]][0],coords[pi[15]][0]);const figureMaxY=Math.max(coords[pi[0]][1],coords[pi[3]][1],coords[pi[12]][1],coords[pi[15]][1]);let splitXBy=Math.ceil((figureMaxX-figureMinX)*MeshShading.TRIANGLE_DENSITY/(this.bounds[2]-this.bounds[0]));splitXBy=Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT,splitXBy));let splitYBy=Math.ceil((figureMaxY-figureMinY)*MeshShading.TRIANGLE_DENSITY/(this.bounds[3]-this.bounds[1]));splitYBy=Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT,splitYBy));const verticesPerRow=splitXBy+1;const figureCoords=new Int32Array((splitYBy+1)*verticesPerRow);const figureColors=new Int32Array((splitYBy+1)*verticesPerRow);let k=0;const cl=new Uint8Array(3),cr=new Uint8Array(3);const c0=colors[ci[0]],c1=colors[ci[1]],c2=colors[ci[2]],c3=colors[ci[3]];const bRow=getB(splitYBy),bCol=getB(splitXBy);for(let row=0;row<=splitYBy;row++){cl[0]=(c0[0]*(splitYBy-row)+c2[0]*row)/splitYBy|0;cl[1]=(c0[1]*(splitYBy-row)+c2[1]*row)/splitYBy|0;cl[2]=(c0[2]*(splitYBy-row)+c2[2]*row)/splitYBy|0;cr[0]=(c1[0]*(splitYBy-row)+c3[0]*row)/splitYBy|0;cr[1]=(c1[1]*(splitYBy-row)+c3[1]*row)/splitYBy|0;cr[2]=(c1[2]*(splitYBy-row)+c3[2]*row)/splitYBy|0;for(let col=0;col<=splitXBy;col++,k++){if((row===0||row===splitYBy)&&(col===0||col===splitXBy)){continue;}
let x=0,y=0;let q=0;for(let i=0;i<=3;i++){for(let j=0;j<=3;j++,q++){const m=bRow[row][i]*bCol[col][j];x+=coords[pi[q]][0]*m;y+=coords[pi[q]][1]*m;}}
figureCoords[k]=coords.length;coords.push([x,y]);figureColors[k]=colors.length;const newColor=new Uint8Array(3);newColor[0]=(cl[0]*(splitXBy-col)+cr[0]*col)/splitXBy|0;newColor[1]=(cl[1]*(splitXBy-col)+cr[1]*col)/splitXBy|0;newColor[2]=(cl[2]*(splitXBy-col)+cr[2]*col)/splitXBy|0;colors.push(newColor);}}
figureCoords[0]=pi[0];figureColors[0]=ci[0];figureCoords[splitXBy]=pi[3];figureColors[splitXBy]=ci[1];figureCoords[verticesPerRow*splitYBy]=pi[12];figureColors[verticesPerRow*splitYBy]=ci[2];figureCoords[verticesPerRow*splitYBy+splitXBy]=pi[15];figureColors[verticesPerRow*splitYBy+splitXBy]=ci[3];this.figures[index]={type:"lattice",coords:figureCoords,colors:figureColors,verticesPerRow};}
_updateBounds(){let minX=this.coords[0][0],minY=this.coords[0][1],maxX=minX,maxY=minY;for(let i=1,ii=this.coords.length;i<ii;i++){const x=this.coords[i][0],y=this.coords[i][1];minX=minX>x?x:minX;minY=minY>y?y:minY;maxX=maxX<x?x:maxX;maxY=maxY<y?y:maxY;}
this.bounds=[minX,minY,maxX,maxY];}
_packData(){let i,ii,j,jj;const coords=this.coords;const coordsPacked=new Float32Array(coords.length*2);for(i=0,j=0,ii=coords.length;i<ii;i++){const xy=coords[i];coordsPacked[j++]=xy[0];coordsPacked[j++]=xy[1];}
this.coords=coordsPacked;const colors=this.colors;const colorsPacked=new Uint8Array(colors.length*3);for(i=0,j=0,ii=colors.length;i<ii;i++){const c=colors[i];colorsPacked[j++]=c[0];colorsPacked[j++]=c[1];colorsPacked[j++]=c[2];}
this.colors=colorsPacked;const figures=this.figures;for(i=0,ii=figures.length;i<ii;i++){const figure=figures[i],ps=figure.coords,cs=figure.colors;for(j=0,jj=ps.length;j<jj;j++){ps[j]*=2;cs[j]*=3;}}}
getIR(){return["Mesh",this.shadingType,this.coords,this.colors,this.figures,this.bounds,this.bbox,this.background];}}
class DummyShading extends BaseShading{getIR(){return["Dummy"];}}
function getTilingPatternIR(operatorList,dict,color){const matrix=dict.getArray("Matrix");const bbox=_util.Util.normalizeRect(dict.getArray("BBox"));const xstep=dict.get("XStep");const ystep=dict.get("YStep");const paintType=dict.get("PaintType");const tilingType=dict.get("TilingType");if(bbox[2]-bbox[0]===0||bbox[3]-bbox[1]===0){throw new _util.FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);}
return["TilingPattern",color,operatorList,matrix,bbox,xstep,ystep,paintType,tilingType];}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.getXfaFontDict=getXfaFontDict;exports.getXfaFontName=getXfaFontName;var _calibri_factors=__w_pdfjs_require__(177);var _primitives=__w_pdfjs_require__(130);var _helvetica_factors=__w_pdfjs_require__(178);var _liberationsans_widths=__w_pdfjs_require__(179);var _myriadpro_factors=__w_pdfjs_require__(180);var _segoeui_factors=__w_pdfjs_require__(181);var _core_utils=__w_pdfjs_require__(131);var _fonts_utils=__w_pdfjs_require__(163);const getXFAFontMap=(0,_core_utils.getLookupTableFactory)(function(t){t["MyriadPro-Regular"]=t["PdfJS-Fallback-Regular"]={name:"LiberationSans-Regular",factors:_myriadpro_factors.MyriadProRegularFactors,baseWidths:_liberationsans_widths.LiberationSansRegularWidths,baseMapping:_liberationsans_widths.LiberationSansRegularMapping,metrics:_myriadpro_factors.MyriadProRegularMetrics};t["MyriadPro-Bold"]=t["PdfJS-Fallback-Bold"]={name:"LiberationSans-Bold",factors:_myriadpro_factors.MyriadProBoldFactors,baseWidths:_liberationsans_widths.LiberationSansBoldWidths,baseMapping:_liberationsans_widths.LiberationSansBoldMapping,metrics:_myriadpro_factors.MyriadProBoldMetrics};t["MyriadPro-It"]=t["MyriadPro-Italic"]=t["PdfJS-Fallback-Italic"]={name:"LiberationSans-Italic",factors:_myriadpro_factors.MyriadProItalicFactors,baseWidths:_liberationsans_widths.LiberationSansItalicWidths,baseMapping:_liberationsans_widths.LiberationSansItalicMapping,metrics:_myriadpro_factors.MyriadProItalicMetrics};t["MyriadPro-BoldIt"]=t["MyriadPro-BoldItalic"]=t["PdfJS-Fallback-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:_myriadpro_factors.MyriadProBoldItalicFactors,baseWidths:_liberationsans_widths.LiberationSansBoldItalicWidths,baseMapping:_liberationsans_widths.LiberationSansBoldItalicMapping,metrics:_myriadpro_factors.MyriadProBoldItalicMetrics};t.ArialMT=t.Arial=t["Arial-Regular"]={name:"LiberationSans-Regular",baseWidths:_liberationsans_widths.LiberationSansRegularWidths,baseMapping:_liberationsans_widths.LiberationSansRegularMapping};t["Arial-BoldMT"]=t["Arial-Bold"]={name:"LiberationSans-Bold",baseWidths:_liberationsans_widths.LiberationSansBoldWidths,baseMapping:_liberationsans_widths.LiberationSansBoldMapping};t["Arial-ItalicMT"]=t["Arial-Italic"]={name:"LiberationSans-Italic",baseWidths:_liberationsans_widths.LiberationSansItalicWidths,baseMapping:_liberationsans_widths.LiberationSansItalicMapping};t["Arial-BoldItalicMT"]=t["Arial-BoldItalic"]={name:"LiberationSans-BoldItalic",baseWidths:_liberationsans_widths.LiberationSansBoldItalicWidths,baseMapping:_liberationsans_widths.LiberationSansBoldItalicMapping};t["Calibri-Regular"]={name:"LiberationSans-Regular",factors:_calibri_factors.CalibriRegularFactors,baseWidths:_liberationsans_widths.LiberationSansRegularWidths,baseMapping:_liberationsans_widths.LiberationSansRegularMapping,metrics:_calibri_factors.CalibriRegularMetrics};t["Calibri-Bold"]={name:"LiberationSans-Bold",factors:_calibri_factors.CalibriBoldFactors,baseWidths:_liberationsans_widths.LiberationSansBoldWidths,baseMapping:_liberationsans_widths.LiberationSansBoldMapping,metrics:_calibri_factors.CalibriBoldMetrics};t["Calibri-Italic"]={name:"LiberationSans-Italic",factors:_calibri_factors.CalibriItalicFactors,baseWidths:_liberationsans_widths.LiberationSansItalicWidths,baseMapping:_liberationsans_widths.LiberationSansItalicMapping,metrics:_calibri_factors.CalibriItalicMetrics};t["Calibri-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:_calibri_factors.CalibriBoldItalicFactors,baseWidths:_liberationsans_widths.LiberationSansBoldItalicWidths,baseMapping:_liberationsans_widths.LiberationSansBoldItalicMapping,metrics:_calibri_factors.CalibriBoldItalicMetrics};t["Segoeui-Regular"]={name:"LiberationSans-Regular",factors:_segoeui_factors.SegoeuiRegularFactors,baseWidths:_liberationsans_widths.LiberationSansRegularWidths,baseMapping:_liberationsans_widths.LiberationSansRegularMapping,metrics:_segoeui_factors.SegoeuiRegularMetrics};t["Segoeui-Bold"]={name:"LiberationSans-Bold",factors:_segoeui_factors.SegoeuiBoldFactors,baseWidths:_liberationsans_widths.LiberationSansBoldWidths,baseMapping:_liberationsans_widths.LiberationSansBoldMapping,metrics:_segoeui_factors.SegoeuiBoldMetrics};t["Segoeui-Italic"]={name:"LiberationSans-Italic",factors:_segoeui_factors.SegoeuiItalicFactors,baseWidths:_liberationsans_widths.LiberationSansItalicWidths,baseMapping:_liberationsans_widths.LiberationSansItalicMapping,metrics:_segoeui_factors.SegoeuiItalicMetrics};t["Segoeui-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:_segoeui_factors.SegoeuiBoldItalicFactors,baseWidths:_liberationsans_widths.LiberationSansBoldItalicWidths,baseMapping:_liberationsans_widths.LiberationSansBoldItalicMapping,metrics:_segoeui_factors.SegoeuiBoldItalicMetrics};t["Helvetica-Regular"]=t.Helvetica={name:"LiberationSans-Regular",factors:_helvetica_factors.HelveticaRegularFactors,baseWidths:_liberationsans_widths.LiberationSansRegularWidths,baseMapping:_liberationsans_widths.LiberationSansRegularMapping,metrics:_helvetica_factors.HelveticaRegularMetrics};t["Helvetica-Bold"]={name:"LiberationSans-Bold",factors:_helvetica_factors.HelveticaBoldFactors,baseWidths:_liberationsans_widths.LiberationSansBoldWidths,baseMapping:_liberationsans_widths.LiberationSansBoldMapping,metrics:_helvetica_factors.HelveticaBoldMetrics};t["Helvetica-Italic"]={name:"LiberationSans-Italic",factors:_helvetica_factors.HelveticaItalicFactors,baseWidths:_liberationsans_widths.LiberationSansItalicWidths,baseMapping:_liberationsans_widths.LiberationSansItalicMapping,metrics:_helvetica_factors.HelveticaItalicMetrics};t["Helvetica-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:_helvetica_factors.HelveticaBoldItalicFactors,baseWidths:_liberationsans_widths.LiberationSansBoldItalicWidths,baseMapping:_liberationsans_widths.LiberationSansBoldItalicMapping,metrics:_helvetica_factors.HelveticaBoldItalicMetrics};});function getXfaFontName(name){const fontName=(0,_fonts_utils.normalizeFontName)(name);const fontMap=getXFAFontMap();return fontMap[fontName];}
function getXfaFontWidths(name){const info=getXfaFontName(name);if(!info){return null;}
const{baseWidths,baseMapping,factors}=info;let rescaledBaseWidths;if(!factors){rescaledBaseWidths=baseWidths;}else{rescaledBaseWidths=baseWidths.map((w,i)=>w*factors[i]);}
let currentCode=-2;let currentArray;const newWidths=[];for(const[unicode,glyphIndex]of baseMapping.map((charUnicode,index)=>[charUnicode,index]).sort((_ref,_ref2)=>{let[unicode1]=_ref;let[unicode2]=_ref2;return unicode1-unicode2;})){if(unicode===-1){continue;}
if(unicode===currentCode+1){currentArray.push(rescaledBaseWidths[glyphIndex]);currentCode+=1;}else{currentCode=unicode;currentArray=[rescaledBaseWidths[glyphIndex]];newWidths.push(unicode,currentArray);}}
return newWidths;}
function getXfaFontDict(name){const widths=getXfaFontWidths(name);const dict=new _primitives.Dict(null);dict.set("BaseFont",_primitives.Name.get(name));dict.set("Type",_primitives.Name.get("Font"));dict.set("Subtype",_primitives.Name.get("CIDFontType2"));dict.set("Encoding",_primitives.Name.get("Identity-H"));dict.set("CIDToGIDMap",_primitives.Name.get("Identity"));dict.set("W",widths);dict.set("FirstChar",widths[0]);dict.set("LastChar",widths.at(-2)+widths.at(-1).length-1);const descriptor=new _primitives.Dict(null);dict.set("FontDescriptor",descriptor);const systemInfo=new _primitives.Dict(null);systemInfo.set("Ordering","Identity");systemInfo.set("Registry","Adobe");systemInfo.set("Supplement",0);dict.set("CIDSystemInfo",systemInfo);return dict;}}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.CalibriRegularMetrics=exports.CalibriRegularFactors=exports.CalibriItalicMetrics=exports.CalibriItalicFactors=exports.CalibriBoldMetrics=exports.CalibriBoldItalicMetrics=exports.CalibriBoldItalicFactors=exports.CalibriBoldFactors=void 0;const CalibriBoldFactors=[1.3877,1,1,1,0.97801,0.92482,0.89552,0.91133,0.81988,0.97566,0.98152,0.93548,0.93548,1.2798,0.85284,0.92794,1,0.96134,1.54657,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.82845,0.82845,0.85284,0.85284,0.85284,0.75859,0.92138,0.83908,0.7762,0.73293,0.87289,0.73133,0.7514,0.81921,0.87356,0.95958,0.59526,0.75727,0.69225,1.04924,0.9121,0.86943,0.79795,0.88198,0.77958,0.70864,0.81055,0.90399,0.88653,0.96017,0.82577,0.77892,0.78257,0.97507,1.54657,0.97507,0.85284,0.89552,0.90176,0.88762,0.8785,0.75241,0.8785,0.90518,0.95015,0.77618,0.8785,0.88401,0.91916,0.86304,0.88401,0.91488,0.8785,0.8801,0.8785,0.8785,0.91343,0.7173,1.04106,0.8785,0.85075,0.95794,0.82616,0.85162,0.79492,0.88331,1.69808,0.88331,0.85284,0.97801,0.89552,0.91133,0.89552,0.91133,1.7801,0.89552,1.24487,1.13254,1.12401,0.96839,0.85284,0.68787,0.70645,0.85592,0.90747,1.01466,1.0088,0.90323,1,1.07463,1,0.91056,0.75806,1.19118,0.96839,0.78864,0.82845,0.84133,0.75859,0.83908,0.83908,0.83908,0.83908,0.83908,0.83908,0.77539,0.73293,0.73133,0.73133,0.73133,0.73133,0.95958,0.95958,0.95958,0.95958,0.88506,0.9121,0.86943,0.86943,0.86943,0.86943,0.86943,0.85284,0.87508,0.90399,0.90399,0.90399,0.90399,0.77892,0.79795,0.90807,0.88762,0.88762,0.88762,0.88762,0.88762,0.88762,0.8715,0.75241,0.90518,0.90518,0.90518,0.90518,0.88401,0.88401,0.88401,0.88401,0.8785,0.8785,0.8801,0.8801,0.8801,0.8801,0.8801,0.90747,0.89049,0.8785,0.8785,0.8785,0.8785,0.85162,0.8785,0.85162,0.83908,0.88762,0.83908,0.88762,0.83908,0.88762,0.73293,0.75241,0.73293,0.75241,0.73293,0.75241,0.73293,0.75241,0.87289,0.83016,0.88506,0.93125,0.73133,0.90518,0.73133,0.90518,0.73133,0.90518,0.73133,0.90518,0.73133,0.90518,0.81921,0.77618,0.81921,0.77618,0.81921,0.77618,1,1,0.87356,0.8785,0.91075,0.89608,0.95958,0.88401,0.95958,0.88401,0.95958,0.88401,0.95958,0.88401,0.95958,0.88401,0.76229,0.90167,0.59526,0.91916,1,1,0.86304,0.69225,0.88401,1,1,0.70424,0.79468,0.91926,0.88175,0.70823,0.94903,0.9121,0.8785,1,1,0.9121,0.8785,0.87802,0.88656,0.8785,0.86943,0.8801,0.86943,0.8801,0.86943,0.8801,0.87402,0.89291,0.77958,0.91343,1,1,0.77958,0.91343,0.70864,0.7173,0.70864,0.7173,0.70864,0.7173,0.70864,0.7173,1,1,0.81055,0.75841,0.81055,1.06452,0.90399,0.8785,0.90399,0.8785,0.90399,0.8785,0.90399,0.8785,0.90399,0.8785,0.90399,0.8785,0.96017,0.95794,0.77892,0.85162,0.77892,0.78257,0.79492,0.78257,0.79492,0.78257,0.79492,0.9297,0.56892,0.83908,0.88762,0.77539,0.8715,0.87508,0.89049,1,1,0.81055,1.04106,1.20528,1.20528,1,1.15543,0.70674,0.98387,0.94721,1.33431,1.45894,0.95161,1.06303,0.83908,0.80352,0.57184,0.6965,0.56289,0.82001,0.56029,0.81235,1.02988,0.83908,0.7762,0.68156,0.80367,0.73133,0.78257,0.87356,0.86943,0.95958,0.75727,0.89019,1.04924,0.9121,0.7648,0.86943,0.87356,0.79795,0.78275,0.81055,0.77892,0.9762,0.82577,0.99819,0.84896,0.95958,0.77892,0.96108,1.01407,0.89049,1.02988,0.94211,0.96108,0.8936,0.84021,0.87842,0.96399,0.79109,0.89049,1.00813,1.02988,0.86077,0.87445,0.92099,0.84723,0.86513,0.8801,0.75638,0.85714,0.78216,0.79586,0.87965,0.94211,0.97747,0.78287,0.97926,0.84971,1.02988,0.94211,0.8801,0.94211,0.84971,0.73133,1,1,1,1,1,1,1,1,1,1,1,1,0.90264,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.90518,1,1,1,1,1,1,1,1,1,1,1,1,0.90548,1,1,1,1,1,1,0.96017,0.95794,0.96017,0.95794,0.96017,0.95794,0.77892,0.85162,1,1,0.89552,0.90527,1,0.90363,0.92794,0.92794,0.92794,0.92794,0.87012,0.87012,0.87012,0.89552,0.89552,1.42259,0.71143,1.06152,1,1,1.03372,1.03372,0.97171,1.4956,2.2807,0.93835,0.83406,0.91133,0.84107,0.91133,1,1,1,0.72021,1,1.23108,0.83489,0.88525,0.88525,0.81499,0.90527,1.81055,0.90527,1.81055,1.31006,1.53711,0.94434,1.08696,1,0.95018,0.77192,0.85284,0.90747,1.17534,0.69825,0.9716,1.37077,0.90747,0.90747,0.85356,0.90747,0.90747,1.44947,0.85284,0.8941,0.8941,0.70572,0.8,0.70572,0.70572,0.70572,0.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99862,0.99862,1,1,1,1,1,1.08004,0.91027,1,1,1,0.99862,1,1,1,1,1,1,1,1,1,1,1,1,0.90727,0.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];exports.CalibriBoldFactors=CalibriBoldFactors;const CalibriBoldMetrics={lineHeight:1.2207,lineGap:0.2207};exports.CalibriBoldMetrics=CalibriBoldMetrics;const CalibriBoldItalicFactors=[1.3877,1,1,1,0.97801,0.92482,0.89552,0.91133,0.81988,0.97566,0.98152,0.93548,0.93548,1.2798,0.85284,0.92794,1,0.96134,1.56239,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.82845,0.82845,0.85284,0.85284,0.85284,0.75859,0.92138,0.83908,0.7762,0.71805,0.87289,0.73133,0.7514,0.81921,0.87356,0.95958,0.59526,0.75727,0.69225,1.04924,0.90872,0.85938,0.79795,0.87068,0.77958,0.69766,0.81055,0.90399,0.88653,0.96068,0.82577,0.77892,0.78257,0.97507,1.529,0.97507,0.85284,0.89552,0.90176,0.94908,0.86411,0.74012,0.86411,0.88323,0.95015,0.86411,0.86331,0.88401,0.91916,0.86304,0.88401,0.9039,0.86331,0.86331,0.86411,0.86411,0.90464,0.70852,1.04106,0.86331,0.84372,0.95794,0.82616,0.84548,0.79492,0.88331,1.69808,0.88331,0.85284,0.97801,0.89552,0.91133,0.89552,0.91133,1.7801,0.89552,1.24487,1.13254,1.19129,0.96839,0.85284,0.68787,0.70645,0.85592,0.90747,1.01466,1.0088,0.90323,1,1.07463,1,0.91056,0.75806,1.19118,0.96839,0.78864,0.82845,0.84133,0.75859,0.83908,0.83908,0.83908,0.83908,0.83908,0.83908,0.77539,0.71805,0.73133,0.73133,0.73133,0.73133,0.95958,0.95958,0.95958,0.95958,0.88506,0.90872,0.85938,0.85938,0.85938,0.85938,0.85938,0.85284,0.87068,0.90399,0.90399,0.90399,0.90399,0.77892,0.79795,0.90807,0.94908,0.94908,0.94908,0.94908,0.94908,0.94908,0.85887,0.74012,0.88323,0.88323,0.88323,0.88323,0.88401,0.88401,0.88401,0.88401,0.8785,0.86331,0.86331,0.86331,0.86331,0.86331,0.86331,0.90747,0.89049,0.86331,0.86331,0.86331,0.86331,0.84548,0.86411,0.84548,0.83908,0.94908,0.83908,0.94908,0.83908,0.94908,0.71805,0.74012,0.71805,0.74012,0.71805,0.74012,0.71805,0.74012,0.87289,0.79538,0.88506,0.92726,0.73133,0.88323,0.73133,0.88323,0.73133,0.88323,0.73133,0.88323,0.73133,0.88323,0.81921,0.86411,0.81921,0.86411,0.81921,0.86411,1,1,0.87356,0.86331,0.91075,0.8777,0.95958,0.88401,0.95958,0.88401,0.95958,0.88401,0.95958,0.88401,0.95958,0.88401,0.76467,0.90167,0.59526,0.91916,1,1,0.86304,0.69225,0.88401,1,1,0.70424,0.77312,0.91926,0.88175,0.70823,0.94903,0.90872,0.86331,1,1,0.90872,0.86331,0.86906,0.88116,0.86331,0.85938,0.86331,0.85938,0.86331,0.85938,0.86331,0.87402,0.86549,0.77958,0.90464,1,1,0.77958,0.90464,0.69766,0.70852,0.69766,0.70852,0.69766,0.70852,0.69766,0.70852,1,1,0.81055,0.75841,0.81055,1.06452,0.90399,0.86331,0.90399,0.86331,0.90399,0.86331,0.90399,0.86331,0.90399,0.86331,0.90399,0.86331,0.96068,0.95794,0.77892,0.84548,0.77892,0.78257,0.79492,0.78257,0.79492,0.78257,0.79492,0.9297,0.56892,0.83908,0.94908,0.77539,0.85887,0.87068,0.89049,1,1,0.81055,1.04106,1.20528,1.20528,1,1.15543,0.70088,0.98387,0.94721,1.33431,1.45894,0.95161,1.48387,0.83908,0.80352,0.57118,0.6965,0.56347,0.79179,0.55853,0.80346,1.02988,0.83908,0.7762,0.67174,0.86036,0.73133,0.78257,0.87356,0.86441,0.95958,0.75727,0.89019,1.04924,0.90872,0.74889,0.85938,0.87891,0.79795,0.7957,0.81055,0.77892,0.97447,0.82577,0.97466,0.87179,0.95958,0.77892,0.94252,0.95612,0.8753,1.02988,0.92733,0.94252,0.87411,0.84021,0.8728,0.95612,0.74081,0.8753,1.02189,1.02988,0.84814,0.87445,0.91822,0.84723,0.85668,0.86331,0.81344,0.87581,0.76422,0.82046,0.96057,0.92733,0.99375,0.78022,0.95452,0.86015,1.02988,0.92733,0.86331,0.92733,0.86015,0.73133,1,1,1,1,1,1,1,1,1,1,1,1,0.90631,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.88323,1,1,1,1,1,1,1,1,1,1,1,1,0.85174,1,1,1,1,1,1,0.96068,0.95794,0.96068,0.95794,0.96068,0.95794,0.77892,0.84548,1,1,0.89552,0.90527,1,0.90363,0.92794,0.92794,0.92794,0.89807,0.87012,0.87012,0.87012,0.89552,0.89552,1.42259,0.71094,1.06152,1,1,1.03372,1.03372,0.97171,1.4956,2.2807,0.92972,0.83406,0.91133,0.83326,0.91133,1,1,1,0.72021,1,1.23108,0.83489,0.88525,0.88525,0.81499,0.90616,1.81055,0.90527,1.81055,1.3107,1.53711,0.94434,1.08696,1,0.95018,0.77192,0.85284,0.90747,1.17534,0.69825,0.9716,1.37077,0.90747,0.90747,0.85356,0.90747,0.90747,1.44947,0.85284,0.8941,0.8941,0.70572,0.8,0.70572,0.70572,0.70572,0.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99862,0.99862,1,1,1,1,1,1.08004,0.91027,1,1,1,0.99862,1,1,1,1,1,1,1,1,1,1,1,1,0.90727,0.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];exports.CalibriBoldItalicFactors=CalibriBoldItalicFactors;const CalibriBoldItalicMetrics={lineHeight:1.2207,lineGap:0.2207};exports.CalibriBoldItalicMetrics=CalibriBoldItalicMetrics;const CalibriItalicFactors=[1.3877,1,1,1,1.17223,1.1293,0.89552,0.91133,0.80395,1.02269,1.15601,0.91056,0.91056,1.2798,0.85284,0.89807,1,0.90861,1.39543,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.96309,0.96309,0.85284,0.85284,0.85284,0.83319,0.88071,0.8675,0.81552,0.72346,0.85193,0.73206,0.7522,0.81105,0.86275,0.90685,0.6377,0.77892,0.75593,1.02638,0.89249,0.84118,0.77452,0.85374,0.75186,0.67789,0.79776,0.88844,0.85066,0.94309,0.77818,0.7306,0.76659,1.10369,1.38313,1.10369,1.06139,0.89552,0.8739,0.9245,0.9245,0.83203,0.9245,0.85865,1.09842,0.9245,0.9245,1.03297,1.07692,0.90918,1.03297,0.94959,0.9245,0.92274,0.9245,0.9245,1.02933,0.77832,1.20562,0.9245,0.8916,0.98986,0.86621,0.89453,0.79004,0.94152,1.77256,0.94152,0.85284,0.97801,0.89552,0.91133,0.89552,0.91133,1.91729,0.89552,1.17889,1.13254,1.16359,0.92098,0.85284,0.68787,0.71353,0.84737,0.90747,1.0088,1.0044,0.87683,1,1.09091,1,0.92229,0.739,1.15642,0.92098,0.76288,0.80504,0.80972,0.75859,0.8675,0.8675,0.8675,0.8675,0.8675,0.8675,0.76318,0.72346,0.73206,0.73206,0.73206,0.73206,0.90685,0.90685,0.90685,0.90685,0.86477,0.89249,0.84118,0.84118,0.84118,0.84118,0.84118,0.85284,0.84557,0.88844,0.88844,0.88844,0.88844,0.7306,0.77452,0.86331,0.9245,0.9245,0.9245,0.9245,0.9245,0.9245,0.84843,0.83203,0.85865,0.85865,0.85865,0.85865,0.82601,0.82601,0.82601,0.82601,0.94469,0.9245,0.92274,0.92274,0.92274,0.92274,0.92274,0.90747,0.86651,0.9245,0.9245,0.9245,0.9245,0.89453,0.9245,0.89453,0.8675,0.9245,0.8675,0.9245,0.8675,0.9245,0.72346,0.83203,0.72346,0.83203,0.72346,0.83203,0.72346,0.83203,0.85193,0.8875,0.86477,0.99034,0.73206,0.85865,0.73206,0.85865,0.73206,0.85865,0.73206,0.85865,0.73206,0.85865,0.81105,0.9245,0.81105,0.9245,0.81105,0.9245,1,1,0.86275,0.9245,0.90872,0.93591,0.90685,0.82601,0.90685,0.82601,0.90685,0.82601,0.90685,1.03297,0.90685,0.82601,0.77896,1.05611,0.6377,1.07692,1,1,0.90918,0.75593,1.03297,1,1,0.76032,0.9375,0.98156,0.93407,0.77261,1.11429,0.89249,0.9245,1,1,0.89249,0.9245,0.92534,0.86698,0.9245,0.84118,0.92274,0.84118,0.92274,0.84118,0.92274,0.8667,0.86291,0.75186,1.02933,1,1,0.75186,1.02933,0.67789,0.77832,0.67789,0.77832,0.67789,0.77832,0.67789,0.77832,1,1,0.79776,0.97655,0.79776,1.23023,0.88844,0.9245,0.88844,0.9245,0.88844,0.9245,0.88844,0.9245,0.88844,0.9245,0.88844,0.9245,0.94309,0.98986,0.7306,0.89453,0.7306,0.76659,0.79004,0.76659,0.79004,0.76659,0.79004,1.09231,0.54873,0.8675,0.9245,0.76318,0.84843,0.84557,0.86651,1,1,0.79776,1.20562,1.18622,1.18622,1,1.1437,0.67009,0.96334,0.93695,1.35191,1.40909,0.95161,1.48387,0.8675,0.90861,0.6192,0.7363,0.64824,0.82411,0.56321,0.85696,1.23516,0.8675,0.81552,0.7286,0.84134,0.73206,0.76659,0.86275,0.84369,0.90685,0.77892,0.85871,1.02638,0.89249,0.75828,0.84118,0.85984,0.77452,0.76466,0.79776,0.7306,0.90782,0.77818,0.903,0.87291,0.90685,0.7306,0.99058,1.03667,0.94635,1.23516,0.9849,0.99058,0.92393,0.8916,0.942,1.03667,0.75026,0.94635,1.0297,1.23516,0.90918,0.94048,0.98217,0.89746,0.84153,0.92274,0.82507,0.88832,0.84438,0.88178,1.03525,0.9849,1.00225,0.78086,0.97248,0.89404,1.23516,0.9849,0.92274,0.9849,0.89404,0.73206,1,1,1,1,1,1,1,1,1,1,1,1,0.89693,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.85865,1,1,1,1,1,1,1,1,1,1,1,1,0.90933,1,1,1,1,1,1,0.94309,0.98986,0.94309,0.98986,0.94309,0.98986,0.7306,0.89453,1,1,0.89552,0.90527,1,0.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,0.89552,0.89552,1.42259,0.68994,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,0.97858,0.82616,0.91133,0.83437,0.91133,1,1,1,0.70508,1,1.23108,0.79801,0.84426,0.84426,0.774,0.90572,1.81055,0.90749,1.81055,1.28809,1.55469,0.94434,1.07806,1,0.97094,0.7589,0.85284,0.90747,1.19658,0.69825,0.97622,1.33512,0.90747,0.90747,0.85284,0.90747,0.90747,1.44947,0.85284,0.8941,0.8941,0.70572,0.8,0.70572,0.70572,0.70572,0.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99862,0.99862,1,1,1,1,1,1.0336,0.91027,1,1,1,0.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];exports.CalibriItalicFactors=CalibriItalicFactors;const CalibriItalicMetrics={lineHeight:1.2207,lineGap:0.2207};exports.CalibriItalicMetrics=CalibriItalicMetrics;const CalibriRegularFactors=[1.3877,1,1,1,1.17223,1.1293,0.89552,0.91133,0.80395,1.02269,1.15601,0.91056,0.91056,1.2798,0.85284,0.89807,1,0.90861,1.39016,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.91133,0.96309,0.96309,0.85284,0.85284,0.85284,0.83319,0.88071,0.8675,0.81552,0.73834,0.85193,0.73206,0.7522,0.81105,0.86275,0.90685,0.6377,0.77892,0.75593,1.02638,0.89385,0.85122,0.77452,0.86503,0.75186,0.68887,0.79776,0.88844,0.85066,0.94258,0.77818,0.7306,0.76659,1.10369,1.39016,1.10369,1.06139,0.89552,0.8739,0.86128,0.94469,0.8457,0.94469,0.89464,1.09842,0.84636,0.94469,1.03297,1.07692,0.90918,1.03297,0.95897,0.94469,0.9482,0.94469,0.94469,1.04692,0.78223,1.20562,0.94469,0.90332,0.98986,0.86621,0.90527,0.79004,0.94152,1.77256,0.94152,0.85284,0.97801,0.89552,0.91133,0.89552,0.91133,1.91729,0.89552,1.17889,1.13254,1.08707,0.92098,0.85284,0.68787,0.71353,0.84737,0.90747,1.0088,1.0044,0.87683,1,1.09091,1,0.92229,0.739,1.15642,0.92098,0.76288,0.80504,0.80972,0.75859,0.8675,0.8675,0.8675,0.8675,0.8675,0.8675,0.76318,0.73834,0.73206,0.73206,0.73206,0.73206,0.90685,0.90685,0.90685,0.90685,0.86477,0.89385,0.85122,0.85122,0.85122,0.85122,0.85122,0.85284,0.85311,0.88844,0.88844,0.88844,0.88844,0.7306,0.77452,0.86331,0.86128,0.86128,0.86128,0.86128,0.86128,0.86128,0.8693,0.8457,0.89464,0.89464,0.89464,0.89464,0.82601,0.82601,0.82601,0.82601,0.94469,0.94469,0.9482,0.9482,0.9482,0.9482,0.9482,0.90747,0.86651,0.94469,0.94469,0.94469,0.94469,0.90527,0.94469,0.90527,0.8675,0.86128,0.8675,0.86128,0.8675,0.86128,0.73834,0.8457,0.73834,0.8457,0.73834,0.8457,0.73834,0.8457,0.85193,0.92454,0.86477,0.9921,0.73206,0.89464,0.73206,0.89464,0.73206,0.89464,0.73206,0.89464,0.73206,0.89464,0.81105,0.84636,0.81105,0.84636,0.81105,0.84636,1,1,0.86275,0.94469,0.90872,0.95786,0.90685,0.82601,0.90685,0.82601,0.90685,0.82601,0.90685,1.03297,0.90685,0.82601,0.77741,1.05611,0.6377,1.07692,1,1,0.90918,0.75593,1.03297,1,1,0.76032,0.90452,0.98156,1.11842,0.77261,1.11429,0.89385,0.94469,1,1,0.89385,0.94469,0.95877,0.86901,0.94469,0.85122,0.9482,0.85122,0.9482,0.85122,0.9482,0.8667,0.90016,0.75186,1.04692,1,1,0.75186,1.04692,0.68887,0.78223,0.68887,0.78223,0.68887,0.78223,0.68887,0.78223,1,1,0.79776,0.92188,0.79776,1.23023,0.88844,0.94469,0.88844,0.94469,0.88844,0.94469,0.88844,0.94469,0.88844,0.94469,0.88844,0.94469,0.94258,0.98986,0.7306,0.90527,0.7306,0.76659,0.79004,0.76659,0.79004,0.76659,0.79004,1.09231,0.54873,0.8675,0.86128,0.76318,0.8693,0.85311,0.86651,1,1,0.79776,1.20562,1.18622,1.18622,1,1.1437,0.67742,0.96334,0.93695,1.35191,1.40909,0.95161,1.48387,0.86686,0.90861,0.62267,0.74359,0.65649,0.85498,0.56963,0.88254,1.23516,0.8675,0.81552,0.75443,0.84503,0.73206,0.76659,0.86275,0.85122,0.90685,0.77892,0.85746,1.02638,0.89385,0.75657,0.85122,0.86275,0.77452,0.74171,0.79776,0.7306,0.95165,0.77818,0.89772,0.88831,0.90685,0.7306,0.98142,1.02191,0.96576,1.23516,0.99018,0.98142,0.9236,0.89258,0.94035,1.02191,0.78848,0.96576,0.9561,1.23516,0.90918,0.92578,0.95424,0.89746,0.83969,0.9482,0.80113,0.89442,0.85208,0.86155,0.98022,0.99018,1.00452,0.81209,0.99247,0.89181,1.23516,0.99018,0.9482,0.99018,0.89181,0.73206,1,1,1,1,1,1,1,1,1,1,1,1,0.88844,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.89464,1,1,1,1,1,1,1,1,1,1,1,1,0.96766,1,1,1,1,1,1,0.94258,0.98986,0.94258,0.98986,0.94258,0.98986,0.7306,0.90527,1,1,0.89552,0.90527,1,0.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,0.89552,0.89552,1.42259,0.69043,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,0.99331,0.82616,0.91133,0.84286,0.91133,1,1,1,0.70508,1,1.23108,0.79801,0.84426,0.84426,0.774,0.90527,1.81055,0.90527,1.81055,1.28809,1.55469,0.94434,1.07806,1,0.97094,0.7589,0.85284,0.90747,1.19658,0.69825,0.97622,1.33512,0.90747,0.90747,0.85356,0.90747,0.90747,1.44947,0.85284,0.8941,0.8941,0.70572,0.8,0.70572,0.70572,0.70572,0.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99862,0.99862,1,1,1,1,1,1.0336,0.91027,1,1,1,0.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1.07185,0.99413,0.96334,1.08065,1,1,1,1,1,1,1,1,1,1,1];exports.CalibriRegularFactors=CalibriRegularFactors;const CalibriRegularMetrics={lineHeight:1.2207,lineGap:0.2207};exports.CalibriRegularMetrics=CalibriRegularMetrics;}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.HelveticaRegularMetrics=exports.HelveticaRegularFactors=exports.HelveticaItalicMetrics=exports.HelveticaItalicFactors=exports.HelveticaBoldMetrics=exports.HelveticaBoldItalicMetrics=exports.HelveticaBoldItalicFactors=exports.HelveticaBoldFactors=void 0;const HelveticaBoldFactors=[0.76116,1,1,1.0006,0.99998,0.99974,0.99973,0.99973,0.99982,0.99977,1.00087,0.99998,0.99998,0.99959,1.00003,1.0006,0.99998,1.0006,1.0006,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99998,1,1.00003,1.00003,1.00003,1.00026,0.9999,0.99977,0.99977,0.99977,0.99977,1.00001,1.00026,1.00022,0.99977,1.0006,0.99973,0.99977,1.00026,0.99999,0.99977,1.00022,1.00001,1.00022,0.99977,1.00001,1.00026,0.99977,1.00001,1.00016,1.00001,1.00001,1.00026,0.99998,1.0006,0.99998,1.00003,0.99973,0.99998,0.99973,1.00026,0.99973,1.00026,0.99973,0.99998,1.00026,1.00026,1.0006,1.0006,0.99973,1.0006,0.99982,1.00026,1.00026,1.00026,1.00026,0.99959,0.99973,0.99998,1.00026,0.99973,1.00022,0.99973,0.99973,1,0.99959,1.00077,0.99959,1.00003,0.99998,0.99973,0.99973,0.99973,0.99973,1.00077,0.99973,0.99998,1.00025,0.99968,0.99973,1.00003,1.00025,0.60299,1.00024,1.06409,1,1,0.99998,1,0.99973,1.0006,0.99998,1,0.99936,0.99973,1.00002,1.00002,1.00002,1.00026,0.99977,0.99977,0.99977,0.99977,0.99977,0.99977,1,0.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,0.99977,0.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,0.99977,0.99977,0.99977,0.99977,1.00001,1.00001,1.00026,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99982,0.99973,0.99973,0.99973,0.99973,0.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,0.99973,1.00026,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,1.03374,0.99977,1.00026,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,0.99977,1.00026,0.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.00042,0.99973,0.99973,1.0006,0.99977,0.99973,0.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.03828,1.00026,0.99999,1.00026,1.0006,0.99977,1.00026,0.99977,1.00026,0.99977,1.00026,0.9993,0.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,0.99977,0.99959,0.99977,0.99959,0.99977,0.99959,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00026,0.99998,1.00026,0.8121,1.00026,0.99998,0.99977,1.00026,0.99977,1.00026,0.99977,1.00026,0.99977,1.00026,0.99977,1.00026,0.99977,1.00026,1.00016,1.00022,1.00001,0.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,0.99973,0.99977,0.99973,1,0.99982,1.00022,1.00026,1.00001,0.99973,1.00026,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,1.00034,0.99977,1,0.99997,1.00026,1.00078,1.00036,0.99973,1.00013,1.0006,0.99977,0.99977,0.99988,0.85148,1.00001,1.00026,0.99977,1.00022,1.0006,0.99977,1.00001,0.99999,0.99977,1.00069,1.00022,0.99977,1.00001,0.99984,1.00026,1.00001,1.00024,1.00001,0.9999,1,1.0006,1.00001,1.00041,0.99962,1.00026,1.0006,0.99995,1.00041,0.99942,0.99973,0.99927,1.00082,0.99902,1.00026,1.00087,1.0006,1.00069,0.99973,0.99867,0.99973,0.9993,1.00026,1.00049,1.00056,1,0.99988,0.99935,0.99995,0.99954,1.00055,0.99945,1.00032,1.0006,0.99995,1.00026,0.99995,1.00032,1.00001,1.00008,0.99971,1.00019,0.9994,1.00001,1.0006,1.00044,0.99973,1.00023,1.00047,1,0.99942,0.99561,0.99989,1.00035,0.99977,1.00035,0.99977,1.00019,0.99944,1.00001,1.00021,0.99926,1.00035,1.00035,0.99942,1.00048,0.99999,0.99977,1.00022,1.00035,1.00001,0.99977,1.00026,0.99989,1.00057,1.00001,0.99936,1.00052,1.00012,0.99996,1.00043,1,1.00035,0.9994,0.99976,1.00035,0.99973,1.00052,1.00041,1.00119,1.00037,0.99973,1.00002,0.99986,1.00041,1.00041,0.99902,0.9996,1.00034,0.99999,1.00026,0.99999,1.00026,0.99973,1.00052,0.99973,1,0.99973,1.00041,1.00075,0.9994,1.0003,0.99999,1,1.00041,0.99955,1,0.99915,0.99973,0.99973,1.00026,1.00119,0.99955,0.99973,1.0006,0.99911,1.0006,1.00026,0.99972,1.00026,0.99902,1.00041,0.99973,0.99999,1,1,1.00038,1.0005,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,0.99973,1,1,0.99973,1,1,0.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,0.99973,0.99973,0.99972,1,1,1.00106,0.99999,0.99998,0.99998,0.99999,0.99998,1.66475,1,0.99973,0.99973,1.00023,0.99973,0.99971,1.00047,1.00023,1,0.99991,0.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,0.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,0.99561,1.00027,1.00031,1.00031,0.99915,1.00031,1.00031,0.99999,1.00003,0.99999,0.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,0.99999,1,0.99861,0.99861,1,1.00026,1.00026,1.00026,1.00026,0.99972,0.99999,0.99999,0.99999,0.99999,1.40483,1,0.99977,1.00054,1,1,0.99953,0.99962,1.00042,0.9995,1,1,1,1,1,1,1,1,0.99998,0.99998,0.99998,0.99998,1,1,1,1,1,1,1,1,1,1,1];exports.HelveticaBoldFactors=HelveticaBoldFactors;const HelveticaBoldMetrics={lineHeight:1.2,lineGap:0.2};exports.HelveticaBoldMetrics=HelveticaBoldMetrics;const HelveticaBoldItalicFactors=[0.76116,1,1,1.0006,0.99998,0.99974,0.99973,0.99973,0.99982,0.99977,1.00087,0.99998,0.99998,0.99959,1.00003,1.0006,0.99998,1.0006,1.0006,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99998,1,1.00003,1.00003,1.00003,1.00026,0.9999,0.99977,0.99977,0.99977,0.99977,1.00001,1.00026,1.00022,0.99977,1.0006,0.99973,0.99977,1.00026,0.99999,0.99977,1.00022,1.00001,1.00022,0.99977,1.00001,1.00026,0.99977,1.00001,1.00016,1.00001,1.00001,1.00026,0.99998,1.0006,0.99998,1.00003,0.99973,0.99998,0.99973,1.00026,0.99973,1.00026,0.99973,0.99998,1.00026,1.00026,1.0006,1.0006,0.99973,1.0006,0.99982,1.00026,1.00026,1.00026,1.00026,0.99959,0.99973,0.99998,1.00026,0.99973,1.00022,0.99973,0.99973,1,0.99959,1.00077,0.99959,1.00003,0.99998,0.99973,0.99973,0.99973,0.99973,1.00077,0.99973,0.99998,1.00025,0.99968,0.99973,1.00003,1.00025,0.60299,1.00024,1.06409,1,1,0.99998,1,0.99973,1.0006,0.99998,1,0.99936,0.99973,1.00002,1.00002,1.00002,1.00026,0.99977,0.99977,0.99977,0.99977,0.99977,0.99977,1,0.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,0.99977,0.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,0.99977,0.99977,0.99977,0.99977,1.00001,1.00001,1.00026,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99982,0.99973,0.99973,0.99973,0.99973,0.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,0.99973,1.00026,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,1.0044,0.99977,1.00026,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,0.99977,1.00026,0.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,0.99971,0.99973,0.99973,1.0006,0.99977,0.99973,0.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.01011,1.00026,0.99999,1.00026,1.0006,0.99977,1.00026,0.99977,1.00026,0.99977,1.00026,0.9993,0.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,0.99977,0.99959,0.99977,0.99959,0.99977,0.99959,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00026,0.99998,1.00026,0.8121,1.00026,0.99998,0.99977,1.00026,0.99977,1.00026,0.99977,1.00026,0.99977,1.00026,0.99977,1.00026,0.99977,1.00026,1.00016,1.00022,1.00001,0.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,0.99973,0.99977,0.99973,1,0.99982,1.00022,1.00026,1.00001,0.99973,1.00026,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99977,1,1,1.00026,0.99969,0.99972,0.99981,0.9998,1.0006,0.99977,0.99977,1.00022,0.91155,1.00001,1.00026,0.99977,1.00022,1.0006,0.99977,1.00001,0.99999,0.99977,0.99966,1.00022,1.00032,1.00001,0.99944,1.00026,1.00001,0.99968,1.00001,1.00047,1,1.0006,1.00001,0.99981,1.00101,1.00026,1.0006,0.99948,0.99981,1.00064,0.99973,0.99942,1.00101,1.00061,1.00026,1.00069,1.0006,1.00014,0.99973,1.01322,0.99973,1.00065,1.00026,1.00012,0.99923,1,1.00064,1.00076,0.99948,1.00055,1.00063,1.00007,0.99943,1.0006,0.99948,1.00026,0.99948,0.99943,1.00001,1.00001,1.00029,1.00038,1.00035,1.00001,1.0006,1.0006,0.99973,0.99978,1.00001,1.00057,0.99989,0.99967,0.99964,0.99967,0.99977,0.99999,0.99977,1.00038,0.99977,1.00001,0.99973,1.00066,0.99967,0.99967,1.00041,0.99998,0.99999,0.99977,1.00022,0.99967,1.00001,0.99977,1.00026,0.99964,1.00031,1.00001,0.99999,0.99999,1,1.00023,1,1,0.99999,1.00035,1.00001,0.99999,0.99973,0.99977,0.99999,1.00058,0.99973,0.99973,0.99955,0.9995,1.00026,1.00026,1.00032,0.99989,1.00034,0.99999,1.00026,1.00026,1.00026,0.99973,0.45998,0.99973,1.00026,0.99973,1.00001,0.99999,0.99982,0.99994,0.99996,1,1.00042,1.00044,1.00029,1.00023,0.99973,0.99973,1.00026,0.99949,1.00002,0.99973,1.0006,1.0006,1.0006,0.99975,1.00026,1.00026,1.00032,0.98685,0.99973,1.00026,1,1,0.99966,1.00044,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,0.99973,1,1,0.99973,1,1,0.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,0.99973,0.99973,0.99972,1,1,1.00106,0.99999,0.99998,0.99998,0.99999,0.99998,1.66475,1,0.99973,0.99973,1,0.99973,0.99971,0.99978,1,1,0.99991,0.99984,1.00002,1.00002,1.00002,1.00002,1.00098,1,1,1,1.00049,1,1,0.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,0.99561,1.00027,1.00031,1.00031,0.99915,1.00031,1.00031,0.99999,1.00003,0.99999,0.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,0.99999,1,0.99861,0.99861,1,1.00026,1.00026,1.00026,1.00026,0.99972,0.99999,0.99999,0.99999,0.99999,1.40483,1,0.99977,1.00054,1,1,0.99953,0.99962,1.00042,0.9995,1,1,1,1,1,1,1,1,0.99998,0.99998,0.99998,0.99998,1,1,1,1,1,1,1,1,1,1,1];exports.HelveticaBoldItalicFactors=HelveticaBoldItalicFactors;const HelveticaBoldItalicMetrics={lineHeight:1.35,lineGap:0.2};exports.HelveticaBoldItalicMetrics=HelveticaBoldItalicMetrics;const HelveticaItalicFactors=[0.76116,1,1,1.0006,1.0006,1.00006,0.99973,0.99973,0.99982,1.00001,1.00043,0.99998,0.99998,0.99959,1.00003,1.0006,0.99998,1.0006,1.0006,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,1.0006,1,1.00003,1.00003,1.00003,0.99973,0.99987,1.00001,1.00001,0.99977,0.99977,1.00001,1.00026,1.00022,0.99977,1.0006,1,1.00001,0.99973,0.99999,0.99977,1.00022,1.00001,1.00022,0.99977,1.00001,1.00026,0.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,0.99949,0.99973,0.99998,0.99973,0.99973,1,0.99973,0.99973,1.0006,0.99973,0.99973,0.99924,0.99924,1,0.99924,0.99999,0.99973,0.99973,0.99973,0.99973,0.99998,1,1.0006,0.99973,1,0.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,0.99998,0.99973,0.99973,0.99973,0.99973,1.0009,0.99973,0.99998,1.00025,0.99968,0.99973,1.00003,1.00025,0.60299,1.00024,1.06409,1,1,0.99998,1,0.9998,1.0006,0.99998,1,0.99936,0.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,0.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,0.99977,0.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,0.99977,0.99977,0.99977,0.99977,1.00001,1.00001,1.00026,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99982,1,0.99973,0.99973,0.99973,0.99973,1.0006,1.0006,1.0006,1.0006,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,1.06409,1.00026,0.99973,0.99973,0.99973,0.99973,1,0.99973,1,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,0.99977,1,0.99977,1,0.99977,1,0.99977,1,0.99977,1.0288,0.99977,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00022,0.99973,1.00022,0.99973,1.00022,0.99973,1.00022,0.99973,0.99977,0.99973,0.99977,0.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,0.99924,1.0006,1.0006,0.99946,1.00034,1,0.99924,1.00001,1,1,0.99973,0.99924,0.99973,0.99924,0.99973,1.06311,0.99973,1.00024,0.99973,0.99924,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,1.00041,0.9998,0.99973,1.00022,0.99973,1.00022,0.99973,1.00022,0.99973,1,1.00016,0.99977,0.99998,0.99977,0.99998,0.99977,0.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,0.89547,1.00026,1.0006,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,1.00016,0.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,0.99924,0.99973,1.00001,0.99973,1,0.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,1.00001,1,1.00054,0.99977,1.00084,1.00007,0.99973,1.00013,0.99924,1.00001,1.00001,0.99945,0.91221,1.00001,1.00026,0.99977,1.00022,1.0006,1.00001,1.00001,0.99999,0.99977,0.99933,1.00022,1.00054,1.00001,1.00065,1.00026,1.00001,1.0001,1.00001,1.00052,1,1.0006,1.00001,0.99945,0.99897,0.99968,0.99924,1.00036,0.99945,0.99949,1,1.0006,0.99897,0.99918,0.99968,0.99911,0.99924,1,0.99962,1.01487,1,1.0005,0.99973,1.00012,1.00043,1,0.99995,0.99994,1.00036,0.99947,1.00019,1.00063,1.00025,0.99924,1.00036,0.99973,1.00036,1.00025,1.00001,1.00001,1.00027,1.0001,1.00068,1.00001,1.0006,1.0006,1,1.00008,0.99957,0.99972,0.9994,0.99954,0.99975,1.00051,1.00001,1.00019,1.00001,1.0001,0.99986,1.00001,1.00001,1.00038,0.99954,0.99954,0.9994,1.00066,0.99999,0.99977,1.00022,1.00054,1.00001,0.99977,1.00026,0.99975,1.0001,1.00001,0.99993,0.9995,0.99955,1.00016,0.99978,0.99974,1.00019,1.00022,0.99955,1.00053,0.99973,1.00089,1.00005,0.99967,1.00048,0.99973,1.00002,1.00034,0.99973,0.99973,0.99964,1.00006,1.00066,0.99947,0.99973,0.98894,0.99973,1,0.44898,1,0.99946,1,1.00039,1.00082,0.99991,0.99991,0.99985,1.00022,1.00023,1.00061,1.00006,0.99966,0.99973,0.99973,0.99973,1.00019,1.0008,1,0.99924,0.99924,0.99924,0.99983,1.00044,0.99973,0.99964,0.98332,1,0.99973,1,1,0.99962,0.99895,1.00016,0.99977,1.00016,0.99977,1.00016,0.99977,1.00001,1,1,1,0.99973,1,1,0.99955,0.99924,0.99924,0.99924,0.99924,0.99998,0.99998,0.99998,0.99973,0.99973,0.99972,1,1,1.00267,0.99999,0.99998,0.99998,1,0.99998,1.66475,1,0.99973,0.99973,1.00023,0.99973,1.00423,0.99925,0.99999,1,0.99991,0.99984,1.00002,1.00002,1.00002,1.00002,1.00049,1,1.00245,1,1,1,1,0.96329,1,1.20985,1.39713,1.00003,0.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,1.00003,1.00031,1.00031,0.99999,1.00003,0.99999,0.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,0.99999,1,0.99861,0.99861,1,1.00026,1.00026,1.00026,1.00026,0.95317,0.99999,0.99999,0.99999,0.99999,1.40483,1,0.99977,1.00054,1,1,0.99953,0.99962,1.00042,0.9995,1,1,1,1,1,1,1,1,0.99998,0.99998,0.99998,0.99998,1,1,1,1,1,1,1,1,1,1,1];exports.HelveticaItalicFactors=HelveticaItalicFactors;const HelveticaItalicMetrics={lineHeight:1.35,lineGap:0.2};exports.HelveticaItalicMetrics=HelveticaItalicMetrics;const HelveticaRegularFactors=[0.76116,1,1,1.0006,1.0006,1.00006,0.99973,0.99973,0.99982,1.00001,1.00043,0.99998,0.99998,0.99959,1.00003,1.0006,0.99998,1.0006,1.0006,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,1.0006,1,1.00003,1.00003,1.00003,0.99973,0.99987,1.00001,1.00001,0.99977,0.99977,1.00001,1.00026,1.00022,0.99977,1.0006,1,1.00001,0.99973,0.99999,0.99977,1.00022,1.00001,1.00022,0.99977,1.00001,1.00026,0.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,0.99949,0.99973,0.99998,0.99973,0.99973,1,0.99973,0.99973,1.0006,0.99973,0.99973,0.99924,0.99924,1,0.99924,0.99999,0.99973,0.99973,0.99973,0.99973,0.99998,1,1.0006,0.99973,1,0.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,0.99998,0.99973,0.99973,0.99973,0.99973,1.0009,0.99973,0.99998,1.00025,0.99968,0.99973,1.00003,1.00025,0.60299,1.00024,1.06409,1,1,0.99998,1,0.9998,1.0006,0.99998,1,0.99936,0.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,0.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,0.99977,0.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,0.99977,0.99977,0.99977,0.99977,1.00001,1.00001,1.00026,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99982,1,0.99973,0.99973,0.99973,0.99973,1.0006,1.0006,1.0006,1.0006,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,0.99973,1.06409,1.00026,0.99973,0.99973,0.99973,0.99973,1,0.99973,1,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,0.99977,1,0.99977,1,0.99977,1,0.99977,1,0.99977,1.04596,0.99977,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00001,0.99973,1.00022,0.99973,1.00022,0.99973,1.00022,0.99973,1.00022,0.99973,0.99977,0.99973,0.99977,0.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,0.99924,1.0006,1.0006,1.00019,1.00034,1,0.99924,1.00001,1,1,0.99973,0.99924,0.99973,0.99924,0.99973,1.02572,0.99973,1.00005,0.99973,0.99924,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99999,0.9998,0.99973,1.00022,0.99973,1.00022,0.99973,1.00022,0.99973,1,1.00016,0.99977,0.99998,0.99977,0.99998,0.99977,0.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,0.84533,1.00026,1.0006,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,0.99977,0.99973,1.00016,0.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,0.99924,0.99973,1.00001,0.99973,1,0.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99998,0.99928,1,0.99977,1.00013,1.00055,0.99947,0.99945,0.99941,0.99924,1.00001,1.00001,1.0004,0.91621,1.00001,1.00026,0.99977,1.00022,1.0006,1.00001,1.00005,0.99999,0.99977,1.00015,1.00022,0.99977,1.00001,0.99973,1.00026,1.00001,1.00019,1.00001,0.99946,1,1.0006,1.00001,0.99978,1.00045,0.99973,0.99924,1.00023,0.99978,0.99966,1,1.00065,1.00045,1.00019,0.99973,0.99973,0.99924,1,1,0.96499,1,1.00055,0.99973,1.00008,1.00027,1,0.9997,0.99995,1.00023,0.99933,1.00019,1.00015,1.00031,0.99924,1.00023,0.99973,1.00023,1.00031,1.00001,0.99928,1.00029,1.00092,1.00035,1.00001,1.0006,1.0006,1,0.99988,0.99975,1,1.00082,0.99561,0.9996,1.00035,1.00001,0.99962,1.00001,1.00092,0.99964,1.00001,0.99963,0.99999,1.00035,1.00035,1.00082,0.99962,0.99999,0.99977,1.00022,1.00035,1.00001,0.99977,1.00026,0.9996,0.99967,1.00001,1.00034,1.00074,1.00054,1.00053,1.00063,0.99971,0.99962,1.00035,0.99975,0.99977,0.99973,1.00043,0.99953,1.0007,0.99915,0.99973,1.00008,0.99892,1.00073,1.00073,1.00114,0.99915,1.00073,0.99955,0.99973,1.00092,0.99973,1,0.99998,1,1.0003,1,1.00043,1.00001,0.99969,1.0003,1,1.00035,1.00001,0.9995,1,1.00092,0.99973,0.99973,0.99973,1.0007,0.9995,1,0.99924,1.0006,0.99924,0.99972,1.00062,0.99973,1.00114,1.00073,1,0.99955,1,1,1.00047,0.99968,1.00016,0.99977,1.00016,0.99977,1.00016,0.99977,1.00001,1,1,1,0.99973,1,1,0.99955,0.99924,0.99924,0.99924,0.99924,0.99998,0.99998,0.99998,0.99973,0.99973,0.99972,1,1,1.00267,0.99999,0.99998,0.99998,1,0.99998,1.66475,1,0.99973,0.99973,1.00023,0.99973,0.99971,0.99925,1.00023,1,0.99991,0.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,0.96329,1,1.20985,1.39713,1.00003,0.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,0.99915,1.00031,1.00031,0.99999,1.00003,0.99999,0.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,0.99999,1,0.99861,0.99861,1,1.00026,1.00026,1.00026,1.00026,0.95317,0.99999,0.99999,0.99999,0.99999,1.40483,1,0.99977,1.00054,1,1,0.99953,0.99962,1.00042,0.9995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];exports.HelveticaRegularFactors=HelveticaRegularFactors;const HelveticaRegularMetrics={lineHeight:1.2,lineGap:0.2};exports.HelveticaRegularMetrics=HelveticaRegularMetrics;}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.LiberationSansRegularWidths=exports.LiberationSansRegularMapping=exports.LiberationSansItalicWidths=exports.LiberationSansItalicMapping=exports.LiberationSansBoldWidths=exports.LiberationSansBoldMapping=exports.LiberationSansBoldItalicWidths=exports.LiberationSansBoldItalicMapping=void 0;const LiberationSansBoldWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,719,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,785,556,556,278,722,556,556,611,278,611,278,611,385,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1000,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1000,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,465,722,333,853,906,474,825,927,838,278,722,722,601,719,667,611,722,778,278,722,667,833,722,644,778,722,667,600,611,667,821,667,809,802,278,667,615,451,611,278,582,615,610,556,606,475,460,611,541,278,558,556,612,556,445,611,766,619,520,684,446,582,715,576,753,845,278,582,611,582,845,667,669,885,567,711,667,278,276,556,1094,1062,875,610,722,622,719,722,719,722,567,712,667,904,626,719,719,610,702,833,722,778,719,667,722,611,622,854,667,730,703,1005,1019,870,979,719,711,1031,719,556,618,615,417,635,556,709,497,615,615,500,635,740,604,611,604,611,556,490,556,875,556,615,581,833,844,729,854,615,552,854,583,556,556,611,417,552,556,278,281,278,969,906,611,500,615,556,604,778,611,487,447,944,778,944,778,944,778,667,556,333,333,556,1000,1000,552,278,278,278,278,500,500,500,556,556,350,1000,1000,240,479,333,333,604,333,167,396,556,556,1094,556,885,489,1115,1000,768,600,834,834,834,834,1000,500,1000,500,1000,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1000,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];exports.LiberationSansBoldWidths=LiberationSansBoldWidths;const LiberationSansBoldMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];exports.LiberationSansBoldMapping=LiberationSansBoldMapping;const LiberationSansBoldItalicWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,740,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,782,556,556,278,722,556,556,611,278,611,278,611,396,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1000,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1000,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,333,722,333,854,906,473,844,930,847,278,722,722,610,671,667,611,722,778,278,722,667,833,722,657,778,718,667,590,611,667,822,667,829,781,278,667,620,479,611,278,591,620,621,556,610,479,492,611,558,278,566,556,603,556,450,611,712,605,532,664,409,591,704,578,773,834,278,591,611,591,834,667,667,886,614,719,667,278,278,556,1094,1042,854,622,719,677,719,722,708,722,614,722,667,927,643,719,719,615,687,833,722,778,719,667,722,611,677,781,667,729,708,979,989,854,1000,708,719,1042,729,556,619,604,534,618,556,736,510,611,611,507,622,740,604,611,611,611,556,889,556,885,556,646,583,889,935,707,854,594,552,865,589,556,556,611,469,563,556,278,278,278,969,906,611,507,619,556,611,778,611,575,467,944,778,944,778,944,778,667,556,333,333,556,1000,1000,552,278,278,278,278,500,500,500,556,556,350,1000,1000,240,479,333,333,604,333,167,396,556,556,1104,556,885,516,1146,1000,768,600,834,834,834,834,999,500,1000,500,1000,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1000,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];exports.LiberationSansBoldItalicWidths=LiberationSansBoldItalicWidths;const LiberationSansBoldItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];exports.LiberationSansBoldItalicMapping=LiberationSansBoldItalicMapping;const LiberationSansItalicWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,625,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,733,444,500,222,667,500,500,556,222,556,222,556,281,556,400,556,222,722,556,722,556,722,556,615,723,556,778,556,778,556,778,556,1000,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,354,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1000,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,789,846,389,794,865,775,222,667,667,570,671,667,611,722,778,278,667,667,833,722,648,778,725,667,600,611,667,837,667,831,761,278,667,570,439,555,222,550,570,571,500,556,439,463,555,542,222,500,492,548,500,447,556,670,573,486,603,374,550,652,546,728,779,222,550,556,550,779,667,667,843,544,708,667,278,278,500,1066,982,844,589,715,639,724,667,651,667,544,704,667,917,614,715,715,589,686,833,722,778,725,667,722,611,639,795,667,727,673,920,923,805,886,651,694,1022,682,556,562,522,493,553,556,688,465,556,556,472,564,686,550,556,556,556,500,833,500,835,500,572,518,830,851,621,736,526,492,752,534,556,556,556,378,496,500,222,222,222,910,828,556,472,565,500,556,778,556,492,339,944,722,944,722,944,722,667,500,333,333,556,1000,1000,552,222,222,222,222,333,333,333,556,556,350,1000,1000,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1083,1000,768,600,834,834,834,834,1000,500,998,500,1000,500,500,494,612,823,713,584,549,713,979,719,274,549,549,584,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1000,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];exports.LiberationSansItalicWidths=LiberationSansItalicWidths;const LiberationSansItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];exports.LiberationSansItalicMapping=LiberationSansItalicMapping;const LiberationSansRegularWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,615,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,735,444,500,222,667,500,500,556,222,556,222,556,292,556,334,556,222,722,556,722,556,722,556,604,723,556,778,556,778,556,778,556,1000,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,375,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1000,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,784,838,384,774,855,752,222,667,667,551,668,667,611,722,778,278,667,668,833,722,650,778,722,667,618,611,667,798,667,835,748,278,667,578,446,556,222,547,578,575,500,557,446,441,556,556,222,500,500,576,500,448,556,690,569,482,617,395,547,648,525,713,781,222,547,556,547,781,667,667,865,542,719,667,278,278,500,1057,1010,854,583,722,635,719,667,656,667,542,677,667,923,604,719,719,583,656,833,722,778,719,667,722,611,635,760,667,740,667,917,938,792,885,656,719,1010,722,556,573,531,365,583,556,669,458,559,559,438,583,688,552,556,542,556,500,458,500,823,500,573,521,802,823,625,719,521,510,750,542,556,556,556,365,510,500,222,278,222,906,812,556,438,559,500,552,778,556,489,411,944,722,944,722,944,722,667,500,333,333,556,1000,1000,552,222,222,222,222,333,333,333,556,556,350,1000,1000,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1073,1000,768,600,834,834,834,834,1000,500,1000,500,1000,500,500,494,612,823,713,584,549,713,979,719,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1000,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];exports.LiberationSansRegularWidths=LiberationSansRegularWidths;const LiberationSansRegularMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];exports.LiberationSansRegularMapping=LiberationSansRegularMapping;}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.MyriadProRegularMetrics=exports.MyriadProRegularFactors=exports.MyriadProItalicMetrics=exports.MyriadProItalicFactors=exports.MyriadProBoldMetrics=exports.MyriadProBoldItalicMetrics=exports.MyriadProBoldItalicFactors=exports.MyriadProBoldFactors=void 0;const MyriadProBoldFactors=[1.36898,1,1,0.72706,0.80479,0.83734,0.98894,0.99793,0.9897,0.93884,0.86209,0.94292,0.94292,1.16661,1.02058,0.93582,0.96694,0.93582,1.19137,0.99793,0.99793,0.99793,0.99793,0.99793,0.99793,0.99793,0.99793,0.99793,0.99793,0.78076,0.78076,1.02058,1.02058,1.02058,0.72851,0.78966,0.90838,0.83637,0.82391,0.96376,0.80061,0.86275,0.8768,0.95407,1.0258,0.73901,0.85022,0.83655,1.0156,0.95546,0.92179,0.87107,0.92179,0.82114,0.8096,0.89713,0.94438,0.95353,0.94083,0.91905,0.90406,0.9446,0.94292,1.18777,0.94292,1.02058,0.89903,0.90088,0.94938,0.97898,0.81093,0.97571,0.94938,1.024,0.9577,0.95933,0.98621,1.0474,0.97455,0.98981,0.9672,0.95933,0.9446,0.97898,0.97407,0.97646,0.78036,1.10208,0.95442,0.95298,0.97579,0.9332,0.94039,0.938,0.80687,1.01149,0.80687,1.02058,0.80479,0.99793,0.99793,0.99793,0.99793,1.01149,1.00872,0.90088,0.91882,1.0213,0.8361,1.02058,0.62295,0.54324,0.89022,1.08595,1,1,0.90088,1,0.97455,0.93582,0.90088,1,1.05686,0.8361,0.99642,0.99642,0.99642,0.72851,0.90838,0.90838,0.90838,0.90838,0.90838,0.90838,0.868,0.82391,0.80061,0.80061,0.80061,0.80061,1.0258,1.0258,1.0258,1.0258,0.97484,0.95546,0.92179,0.92179,0.92179,0.92179,0.92179,1.02058,0.92179,0.94438,0.94438,0.94438,0.94438,0.90406,0.86958,0.98225,0.94938,0.94938,0.94938,0.94938,0.94938,0.94938,0.9031,0.81093,0.94938,0.94938,0.94938,0.94938,0.98621,0.98621,0.98621,0.98621,0.93969,0.95933,0.9446,0.9446,0.9446,0.9446,0.9446,1.08595,0.9446,0.95442,0.95442,0.95442,0.95442,0.94039,0.97898,0.94039,0.90838,0.94938,0.90838,0.94938,0.90838,0.94938,0.82391,0.81093,0.82391,0.81093,0.82391,0.81093,0.82391,0.81093,0.96376,0.84313,0.97484,0.97571,0.80061,0.94938,0.80061,0.94938,0.80061,0.94938,0.80061,0.94938,0.80061,0.94938,0.8768,0.9577,0.8768,0.9577,0.8768,0.9577,1,1,0.95407,0.95933,0.97069,0.95933,1.0258,0.98621,1.0258,0.98621,1.0258,0.98621,1.0258,0.98621,1.0258,0.98621,0.887,1.01591,0.73901,1.0474,1,1,0.97455,0.83655,0.98981,1,1,0.83655,0.73977,0.83655,0.73903,0.84638,1.033,0.95546,0.95933,1,1,0.95546,0.95933,0.8271,0.95417,0.95933,0.92179,0.9446,0.92179,0.9446,0.92179,0.9446,0.936,0.91964,0.82114,0.97646,1,1,0.82114,0.97646,0.8096,0.78036,0.8096,0.78036,1,1,0.8096,0.78036,1,1,0.89713,0.77452,0.89713,1.10208,0.94438,0.95442,0.94438,0.95442,0.94438,0.95442,0.94438,0.95442,0.94438,0.95442,0.94438,0.95442,0.94083,0.97579,0.90406,0.94039,0.90406,0.9446,0.938,0.9446,0.938,0.9446,0.938,1,0.99793,0.90838,0.94938,0.868,0.9031,0.92179,0.9446,1,1,0.89713,1.10208,0.90088,0.90088,0.90088,0.90088,0.90088,0.90088,0.90088,0.90088,0.90088,0.90989,0.9358,0.91945,0.83181,0.75261,0.87992,0.82976,0.96034,0.83689,0.97268,1.0078,0.90838,0.83637,0.8019,0.90157,0.80061,0.9446,0.95407,0.92436,1.0258,0.85022,0.97153,1.0156,0.95546,0.89192,0.92179,0.92361,0.87107,0.96318,0.89713,0.93704,0.95638,0.91905,0.91709,0.92796,1.0258,0.93704,0.94836,1.0373,0.95933,1.0078,0.95871,0.94836,0.96174,0.92601,0.9498,0.98607,0.95776,0.95933,1.05453,1.0078,0.98275,0.9314,0.95617,0.91701,1.05993,0.9446,0.78367,0.9553,1,0.86832,1.0128,0.95871,0.99394,0.87548,0.96361,0.86774,1.0078,0.95871,0.9446,0.95871,0.86774,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.94083,0.97579,0.94083,0.97579,0.94083,0.97579,0.90406,0.94039,0.96694,1,0.89903,1,1,1,0.93582,0.93582,0.93582,1,0.908,0.908,0.918,0.94219,0.94219,0.96544,1,1.285,1,1,0.81079,0.81079,1,1,0.74854,1,1,1,1,0.99793,1,1,1,0.65,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.17173,1,0.80535,0.76169,1.02058,1.0732,1.05486,1,1,1.30692,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.16161,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];exports.MyriadProBoldFactors=MyriadProBoldFactors;const MyriadProBoldMetrics={lineHeight:1.2,lineGap:0.2};exports.MyriadProBoldMetrics=MyriadProBoldMetrics;const MyriadProBoldItalicFactors=[1.36898,1,1,0.66227,0.80779,0.81625,0.97276,0.97276,0.97733,0.92222,0.83266,0.94292,0.94292,1.16148,1.02058,0.93582,0.96694,0.93582,1.17337,0.97276,0.97276,0.97276,0.97276,0.97276,0.97276,0.97276,0.97276,0.97276,0.97276,0.78076,0.78076,1.02058,1.02058,1.02058,0.71541,0.76813,0.85576,0.80591,0.80729,0.94299,0.77512,0.83655,0.86523,0.92222,0.98621,0.71743,0.81698,0.79726,0.98558,0.92222,0.90637,0.83809,0.90637,0.80729,0.76463,0.86275,0.90699,0.91605,0.9154,0.85308,0.85458,0.90531,0.94292,1.21296,0.94292,1.02058,0.89903,1.18616,0.99613,0.91677,0.78216,0.91677,0.90083,0.98796,0.9135,0.92168,0.95381,0.98981,0.95298,0.95381,0.93459,0.92168,0.91513,0.92004,0.91677,0.95077,0.748,1.04502,0.91677,0.92061,0.94236,0.89544,0.89364,0.9,0.80687,0.8578,0.80687,1.02058,0.80779,0.97276,0.97276,0.97276,0.97276,0.8578,0.99973,1.18616,0.91339,1.08074,0.82891,1.02058,0.55509,0.71526,0.89022,1.08595,1,1,1.18616,1,0.96736,0.93582,1.18616,1,1.04864,0.82711,0.99043,0.99043,0.99043,0.71541,0.85576,0.85576,0.85576,0.85576,0.85576,0.85576,0.845,0.80729,0.77512,0.77512,0.77512,0.77512,0.98621,0.98621,0.98621,0.98621,0.95961,0.92222,0.90637,0.90637,0.90637,0.90637,0.90637,1.02058,0.90251,0.90699,0.90699,0.90699,0.90699,0.85458,0.83659,0.94951,0.99613,0.99613,0.99613,0.99613,0.99613,0.99613,0.85811,0.78216,0.90083,0.90083,0.90083,0.90083,0.95381,0.95381,0.95381,0.95381,0.9135,0.92168,0.91513,0.91513,0.91513,0.91513,0.91513,1.08595,0.91677,0.91677,0.91677,0.91677,0.91677,0.89364,0.92332,0.89364,0.85576,0.99613,0.85576,0.99613,0.85576,0.99613,0.80729,0.78216,0.80729,0.78216,0.80729,0.78216,0.80729,0.78216,0.94299,0.76783,0.95961,0.91677,0.77512,0.90083,0.77512,0.90083,0.77512,0.90083,0.77512,0.90083,0.77512,0.90083,0.86523,0.9135,0.86523,0.9135,0.86523,0.9135,1,1,0.92222,0.92168,0.92222,0.92168,0.98621,0.95381,0.98621,0.95381,0.98621,0.95381,0.98621,0.95381,0.98621,0.95381,0.86036,0.97096,0.71743,0.98981,1,1,0.95298,0.79726,0.95381,1,1,0.79726,0.6894,0.79726,0.74321,0.81691,1.0006,0.92222,0.92168,1,1,0.92222,0.92168,0.79464,0.92098,0.92168,0.90637,0.91513,0.90637,0.91513,0.90637,0.91513,0.909,0.87514,0.80729,0.95077,1,1,0.80729,0.95077,0.76463,0.748,0.76463,0.748,1,1,0.76463,0.748,1,1,0.86275,0.72651,0.86275,1.04502,0.90699,0.91677,0.90699,0.91677,0.90699,0.91677,0.90699,0.91677,0.90699,0.91677,0.90699,0.91677,0.9154,0.94236,0.85458,0.89364,0.85458,0.90531,0.9,0.90531,0.9,0.90531,0.9,1,0.97276,0.85576,0.99613,0.845,0.85811,0.90251,0.91677,1,1,0.86275,1.04502,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.00899,1.30628,0.85576,0.80178,0.66862,0.7927,0.69323,0.88127,0.72459,0.89711,0.95381,0.85576,0.80591,0.7805,0.94729,0.77512,0.90531,0.92222,0.90637,0.98621,0.81698,0.92655,0.98558,0.92222,0.85359,0.90637,0.90976,0.83809,0.94523,0.86275,0.83509,0.93157,0.85308,0.83392,0.92346,0.98621,0.83509,0.92886,0.91324,0.92168,0.95381,0.90646,0.92886,0.90557,0.86847,0.90276,0.91324,0.86842,0.92168,0.99531,0.95381,0.9224,0.85408,0.92699,0.86847,1.0051,0.91513,0.80487,0.93481,1,0.88159,1.05214,0.90646,0.97355,0.81539,0.89398,0.85923,0.95381,0.90646,0.91513,0.90646,0.85923,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9154,0.94236,0.9154,0.94236,0.9154,0.94236,0.85458,0.89364,0.96694,1,0.89903,1,1,1,0.91782,0.91782,0.91782,1,0.896,0.896,0.896,0.9332,0.9332,0.95973,1,1.26,1,1,0.80479,0.80178,1,1,0.85633,1,1,1,1,0.97276,1,1,1,0.698,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.14542,1,0.79199,0.78694,1.02058,1.03493,1.05486,1,1,1.23026,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.20006,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];exports.MyriadProBoldItalicFactors=MyriadProBoldItalicFactors;const MyriadProBoldItalicMetrics={lineHeight:1.2,lineGap:0.2};exports.MyriadProBoldItalicMetrics=MyriadProBoldItalicMetrics;const MyriadProItalicFactors=[1.36898,1,1,0.65507,0.84943,0.85639,0.88465,0.88465,0.86936,0.88307,0.86948,0.85283,0.85283,1.06383,1.02058,0.75945,0.9219,0.75945,1.17337,0.88465,0.88465,0.88465,0.88465,0.88465,0.88465,0.88465,0.88465,0.88465,0.88465,0.75945,0.75945,1.02058,1.02058,1.02058,0.69046,0.70926,0.85158,0.77812,0.76852,0.89591,0.70466,0.76125,0.80094,0.86822,0.83864,0.728,0.77212,0.79475,0.93637,0.87514,0.8588,0.76013,0.8588,0.72421,0.69866,0.77598,0.85991,0.80811,0.87832,0.78112,0.77512,0.8562,1.0222,1.18417,1.0222,1.27014,0.89903,1.15012,0.93859,0.94399,0.846,0.94399,0.81453,1.0186,0.94219,0.96017,1.03075,1.02175,0.912,1.03075,0.96998,0.96017,0.93859,0.94399,0.94399,0.95493,0.746,1.12658,0.94578,0.91,0.979,0.882,0.882,0.83,0.85034,0.83537,0.85034,1.02058,0.70869,0.88465,0.88465,0.88465,0.88465,0.83537,0.90083,1.15012,0.9161,0.94565,0.73541,1.02058,0.53609,0.69353,0.79519,1.08595,1,1,1.15012,1,0.91974,0.75945,1.15012,1,0.9446,0.73361,0.9005,0.9005,0.9005,0.62864,0.85158,0.85158,0.85158,0.85158,0.85158,0.85158,0.773,0.76852,0.70466,0.70466,0.70466,0.70466,0.83864,0.83864,0.83864,0.83864,0.90561,0.87514,0.8588,0.8588,0.8588,0.8588,0.8588,1.02058,0.85751,0.85991,0.85991,0.85991,0.85991,0.77512,0.76013,0.88075,0.93859,0.93859,0.93859,0.93859,0.93859,0.93859,0.8075,0.846,0.81453,0.81453,0.81453,0.81453,0.82424,0.82424,0.82424,0.82424,0.9278,0.96017,0.93859,0.93859,0.93859,0.93859,0.93859,1.08595,0.8562,0.94578,0.94578,0.94578,0.94578,0.882,0.94578,0.882,0.85158,0.93859,0.85158,0.93859,0.85158,0.93859,0.76852,0.846,0.76852,0.846,0.76852,0.846,0.76852,0.846,0.89591,0.8544,0.90561,0.94399,0.70466,0.81453,0.70466,0.81453,0.70466,0.81453,0.70466,0.81453,0.70466,0.81453,0.80094,0.94219,0.80094,0.94219,0.80094,0.94219,1,1,0.86822,0.96017,0.86822,0.96017,0.83864,0.82424,0.83864,0.82424,0.83864,0.82424,0.83864,1.03075,0.83864,0.82424,0.81402,1.02738,0.728,1.02175,1,1,0.912,0.79475,1.03075,1,1,0.79475,0.83911,0.79475,0.66266,0.80553,1.06676,0.87514,0.96017,1,1,0.87514,0.96017,0.86865,0.87396,0.96017,0.8588,0.93859,0.8588,0.93859,0.8588,0.93859,0.867,0.84759,0.72421,0.95493,1,1,0.72421,0.95493,0.69866,0.746,0.69866,0.746,1,1,0.69866,0.746,1,1,0.77598,0.88417,0.77598,1.12658,0.85991,0.94578,0.85991,0.94578,0.85991,0.94578,0.85991,0.94578,0.85991,0.94578,0.85991,0.94578,0.87832,0.979,0.77512,0.882,0.77512,0.8562,0.83,0.8562,0.83,0.8562,0.83,1,0.88465,0.85158,0.93859,0.773,0.8075,0.85751,0.8562,1,1,0.77598,1.12658,1.15012,1.15012,1.15012,1.15012,1.15012,1.15313,1.15012,1.15012,1.15012,1.08106,1.03901,0.85158,0.77025,0.62264,0.7646,0.65351,0.86026,0.69461,0.89947,1.03075,0.85158,0.77812,0.76449,0.88836,0.70466,0.8562,0.86822,0.8588,0.83864,0.77212,0.85308,0.93637,0.87514,0.82352,0.8588,0.85701,0.76013,0.89058,0.77598,0.8156,0.82565,0.78112,0.77899,0.89386,0.83864,0.8156,0.9486,0.92388,0.96186,1.03075,0.91123,0.9486,0.93298,0.878,0.93942,0.92388,0.84596,0.96186,0.95119,1.03075,0.922,0.88787,0.95829,0.88,0.93559,0.93859,0.78815,0.93758,1,0.89217,1.03737,0.91123,0.93969,0.77487,0.85769,0.86799,1.03075,0.91123,0.93859,0.91123,0.86799,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.87832,0.979,0.87832,0.979,0.87832,0.979,0.77512,0.882,0.9219,1,0.89903,1,1,1,0.87321,0.87321,0.87321,1,1.027,1.027,1.027,0.86847,0.86847,0.79121,1,1.124,1,1,0.73572,0.73572,1,1,0.85034,1,1,1,1,0.88465,1,1,1,0.669,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.04828,1,0.74948,0.75187,1.02058,0.98391,1.02119,1,1,1.06233,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05233,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];exports.MyriadProItalicFactors=MyriadProItalicFactors;const MyriadProItalicMetrics={lineHeight:1.2,lineGap:0.2};exports.MyriadProItalicMetrics=MyriadProItalicMetrics;const MyriadProRegularFactors=[1.36898,1,1,0.76305,0.82784,0.94935,0.89364,0.92241,0.89073,0.90706,0.98472,0.85283,0.85283,1.0664,1.02058,0.74505,0.9219,0.74505,1.23456,0.92241,0.92241,0.92241,0.92241,0.92241,0.92241,0.92241,0.92241,0.92241,0.92241,0.74505,0.74505,1.02058,1.02058,1.02058,0.73002,0.72601,0.91755,0.8126,0.80314,0.92222,0.73764,0.79726,0.83051,0.90284,0.86023,0.74,0.8126,0.84869,0.96518,0.91115,0.8858,0.79761,0.8858,0.74498,0.73914,0.81363,0.89591,0.83659,0.89633,0.85608,0.8111,0.90531,1.0222,1.22736,1.0222,1.27014,0.89903,0.90088,0.86667,1.0231,0.896,1.01411,0.90083,1.05099,1.00512,0.99793,1.05326,1.09377,0.938,1.06226,1.00119,0.99793,0.98714,1.0231,1.01231,0.98196,0.792,1.19137,0.99074,0.962,1.01915,0.926,0.942,0.856,0.85034,0.92006,0.85034,1.02058,0.69067,0.92241,0.92241,0.92241,0.92241,0.92006,0.9332,0.90088,0.91882,0.93484,0.75339,1.02058,0.56866,0.54324,0.79519,1.08595,1,1,0.90088,1,0.95325,0.74505,0.90088,1,0.97198,0.75339,0.91009,0.91009,0.91009,0.66466,0.91755,0.91755,0.91755,0.91755,0.91755,0.91755,0.788,0.80314,0.73764,0.73764,0.73764,0.73764,0.86023,0.86023,0.86023,0.86023,0.92915,0.91115,0.8858,0.8858,0.8858,0.8858,0.8858,1.02058,0.8858,0.89591,0.89591,0.89591,0.89591,0.8111,0.79611,0.89713,0.86667,0.86667,0.86667,0.86667,0.86667,0.86667,0.86936,0.896,0.90083,0.90083,0.90083,0.90083,0.84224,0.84224,0.84224,0.84224,0.97276,0.99793,0.98714,0.98714,0.98714,0.98714,0.98714,1.08595,0.89876,0.99074,0.99074,0.99074,0.99074,0.942,1.0231,0.942,0.91755,0.86667,0.91755,0.86667,0.91755,0.86667,0.80314,0.896,0.80314,0.896,0.80314,0.896,0.80314,0.896,0.92222,0.93372,0.92915,1.01411,0.73764,0.90083,0.73764,0.90083,0.73764,0.90083,0.73764,0.90083,0.73764,0.90083,0.83051,1.00512,0.83051,1.00512,0.83051,1.00512,1,1,0.90284,0.99793,0.90976,0.99793,0.86023,0.84224,0.86023,0.84224,0.86023,0.84224,0.86023,1.05326,0.86023,0.84224,0.82873,1.07469,0.74,1.09377,1,1,0.938,0.84869,1.06226,1,1,0.84869,0.83704,0.84869,0.81441,0.85588,1.08927,0.91115,0.99793,1,1,0.91115,0.99793,0.91887,0.90991,0.99793,0.8858,0.98714,0.8858,0.98714,0.8858,0.98714,0.894,0.91434,0.74498,0.98196,1,1,0.74498,0.98196,0.73914,0.792,0.73914,0.792,1,1,0.73914,0.792,1,1,0.81363,0.904,0.81363,1.19137,0.89591,0.99074,0.89591,0.99074,0.89591,0.99074,0.89591,0.99074,0.89591,0.99074,0.89591,0.99074,0.89633,1.01915,0.8111,0.942,0.8111,0.90531,0.856,0.90531,0.856,0.90531,0.856,1,0.92241,0.91755,0.86667,0.788,0.86936,0.8858,0.89876,1,1,0.81363,1.19137,0.90088,0.90088,0.90088,0.90088,0.90088,0.90088,0.90088,0.90088,0.90088,0.90388,1.03901,0.92138,0.78105,0.7154,0.86169,0.80513,0.94007,0.82528,0.98612,1.06226,0.91755,0.8126,0.81884,0.92819,0.73764,0.90531,0.90284,0.8858,0.86023,0.8126,0.91172,0.96518,0.91115,0.83089,0.8858,0.87791,0.79761,0.89297,0.81363,0.88157,0.89992,0.85608,0.81992,0.94307,0.86023,0.88157,0.95308,0.98699,0.99793,1.06226,0.95817,0.95308,0.97358,0.928,0.98088,0.98699,0.92761,0.99793,0.96017,1.06226,0.986,0.944,0.95978,0.938,0.96705,0.98714,0.80442,0.98972,1,0.89762,1.04552,0.95817,0.99007,0.87064,0.91879,0.88888,1.06226,0.95817,0.98714,0.95817,0.88888,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.89633,1.01915,0.89633,1.01915,0.89633,1.01915,0.8111,0.942,0.9219,1,0.89903,1,1,1,0.93173,0.93173,0.93173,1,1.06304,1.06304,1.06904,0.89903,0.89903,0.80549,1,1.156,1,1,0.76575,0.76575,1,1,0.72458,1,1,1,1,0.92241,1,1,1,0.619,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.07257,1,0.74705,0.71119,1.02058,1.024,1.02119,1,1,1.1536,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05638,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];exports.MyriadProRegularFactors=MyriadProRegularFactors;const MyriadProRegularMetrics={lineHeight:1.2,lineGap:0.2};exports.MyriadProRegularMetrics=MyriadProRegularMetrics;}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.SegoeuiRegularMetrics=exports.SegoeuiRegularFactors=exports.SegoeuiItalicMetrics=exports.SegoeuiItalicFactors=exports.SegoeuiBoldMetrics=exports.SegoeuiBoldItalicMetrics=exports.SegoeuiBoldItalicFactors=exports.SegoeuiBoldFactors=void 0;const SegoeuiBoldFactors=[1.76738,1,1,0.99297,0.9824,1.04016,1.06497,1.03424,0.97529,1.17647,1.23203,1.1085,1.1085,1.16939,1.2107,0.9754,1.21408,0.9754,1.59578,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,0.81378,0.81378,1.2107,1.2107,1.2107,0.71703,0.97847,0.97363,0.88776,0.8641,1.02096,0.79795,0.85132,0.914,1.06085,1.1406,0.8007,0.89858,0.83693,1.14889,1.09398,0.97489,0.92094,0.97489,0.90399,0.84041,0.95923,1.00135,1,1.06467,0.98243,0.90996,0.99361,1.1085,1.56942,1.1085,1.2107,0.74627,0.94282,0.96752,1.01519,0.86304,1.01359,0.97278,1.15103,1.01359,0.98561,1.02285,1.02285,1.00527,1.02285,1.0302,0.99041,1.0008,1.01519,1.01359,1.02258,0.79104,1.16862,0.99041,0.97454,1.02511,0.99298,0.96752,0.95801,0.94856,1.16579,0.94856,1.2107,0.9824,1.03424,1.03424,1,1.03424,1.16579,0.8727,1.3871,1.18622,1.10818,1.04478,1.2107,1.18622,0.75155,0.94994,1.28826,1.21408,1.21408,0.91056,1,0.91572,0.9754,0.64663,1.18328,1.24866,1.04478,1.14169,1.15749,1.17389,0.71703,0.97363,0.97363,0.97363,0.97363,0.97363,0.97363,0.93506,0.8641,0.79795,0.79795,0.79795,0.79795,1.1406,1.1406,1.1406,1.1406,1.02096,1.09398,0.97426,0.97426,0.97426,0.97426,0.97426,1.2107,0.97489,1.00135,1.00135,1.00135,1.00135,0.90996,0.92094,1.02798,0.96752,0.96752,0.96752,0.96752,0.96752,0.96752,0.93136,0.86304,0.97278,0.97278,0.97278,0.97278,1.02285,1.02285,1.02285,1.02285,0.97122,0.99041,1,1,1,1,1,1.28826,1.0008,0.99041,0.99041,0.99041,0.99041,0.96752,1.01519,0.96752,0.97363,0.96752,0.97363,0.96752,0.97363,0.96752,0.8641,0.86304,0.8641,0.86304,0.8641,0.86304,0.8641,0.86304,1.02096,1.03057,1.02096,1.03517,0.79795,0.97278,0.79795,0.97278,0.79795,0.97278,0.79795,0.97278,0.79795,0.97278,0.914,1.01359,0.914,1.01359,0.914,1.01359,1,1,1.06085,0.98561,1.06085,1.00879,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,0.97138,1.08692,0.8007,1.02285,1,1,1.00527,0.83693,1.02285,1,1,0.83693,0.9455,0.83693,0.90418,0.83693,1.13005,1.09398,0.99041,1,1,1.09398,0.99041,0.96692,1.09251,0.99041,0.97489,1.0008,0.97489,1.0008,0.97489,1.0008,0.93994,0.97931,0.90399,1.02258,1,1,0.90399,1.02258,0.84041,0.79104,0.84041,0.79104,0.84041,0.79104,0.84041,0.79104,1,1,0.95923,1.07034,0.95923,1.16862,1.00135,0.99041,1.00135,0.99041,1.00135,0.99041,1.00135,0.99041,1.00135,0.99041,1.00135,0.99041,1.06467,1.02511,0.90996,0.96752,0.90996,0.99361,0.95801,0.99361,0.95801,0.99361,0.95801,1.07733,1.03424,0.97363,0.96752,0.93506,0.93136,0.97489,1.0008,1,1,0.95923,1.16862,1.15103,1.15103,1.01173,1.03959,0.75953,0.81378,0.79912,1.15103,1.21994,0.95161,0.87815,1.01149,0.81525,0.7676,0.98167,1.01134,1.02546,0.84097,1.03089,1.18102,0.97363,0.88776,0.85134,0.97826,0.79795,0.99361,1.06085,0.97489,1.1406,0.89858,1.0388,1.14889,1.09398,0.86039,0.97489,1.0595,0.92094,0.94793,0.95923,0.90996,0.99346,0.98243,1.02112,0.95493,1.1406,0.90996,1.03574,1.02597,1.0008,1.18102,1.06628,1.03574,1.0192,1.01932,1.00886,0.97531,1.0106,1.0008,1.13189,1.18102,1.02277,0.98683,1.0016,0.99561,1.07237,1.0008,0.90434,0.99921,0.93803,0.8965,1.23085,1.06628,1.04983,0.96268,1.0499,0.98439,1.18102,1.06628,1.0008,1.06628,0.98439,0.79795,1,1,1,1,1,1,1,1,1,1,1,1,1.09466,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97278,1,1,1,1,1,1,1,1,1,1,1,1,1.02065,1,1,1,1,1,1,1.06467,1.02511,1.06467,1.02511,1.06467,1.02511,0.90996,0.96752,1,1.21408,0.89903,1,1,0.75155,1.04394,1.04394,1.04394,1.04394,0.98633,0.98633,0.98633,0.73047,0.73047,1.20642,0.91211,1.25635,1.222,1.02956,1.03372,1.03372,0.96039,1.24633,1,1.12454,0.93503,1.03424,1.19687,1.03424,1,1,1,0.771,1,1,1.15749,1.15749,1.15749,1.10948,0.86279,0.94434,0.86279,0.94434,0.86182,1,1,1.16897,1,0.96085,0.90137,1.2107,1.18416,1.13973,0.69825,0.9716,2.10339,1.29004,1.29004,1.21172,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,0.99862,0.99862,1,0.87025,0.87025,0.87025,0.87025,1.18874,1.42603,1,1.42603,1.42603,0.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.09193,1.09193,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];exports.SegoeuiBoldFactors=SegoeuiBoldFactors;const SegoeuiBoldMetrics={lineHeight:1.33008,lineGap:0};exports.SegoeuiBoldMetrics=SegoeuiBoldMetrics;const SegoeuiBoldItalicFactors=[1.76738,1,1,0.98946,1.03959,1.04016,1.02809,1.036,0.97639,1.10953,1.23203,1.11144,1.11144,1.16939,1.21237,0.9754,1.21261,0.9754,1.59754,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,0.81378,0.81378,1.21237,1.21237,1.21237,0.73541,0.97847,0.97363,0.89723,0.87897,1.0426,0.79429,0.85292,0.91149,1.05815,1.1406,0.79631,0.90128,0.83853,1.04396,1.10615,0.97552,0.94436,0.97552,0.88641,0.80527,0.96083,1.00135,1,1.06777,0.9817,0.91142,0.99361,1.11144,1.57293,1.11144,1.21237,0.74627,1.31818,1.06585,0.97042,0.83055,0.97042,0.93503,1.1261,0.97042,0.97922,1.14236,0.94552,1.01054,1.14236,1.02471,0.97922,0.94165,0.97042,0.97042,1.0276,0.78929,1.1261,0.97922,0.95874,1.02197,0.98507,0.96752,0.97168,0.95107,1.16579,0.95107,1.21237,1.03959,1.036,1.036,1,1.036,1.16579,0.87357,1.31818,1.18754,1.26781,1.05356,1.21237,1.18622,0.79487,0.94994,1.29004,1.24047,1.24047,1.31818,1,0.91484,0.9754,1.31818,1.1349,1.24866,1.05356,1.13934,1.15574,1.17389,0.73541,0.97363,0.97363,0.97363,0.97363,0.97363,0.97363,0.94385,0.87897,0.79429,0.79429,0.79429,0.79429,1.1406,1.1406,1.1406,1.1406,1.0426,1.10615,0.97552,0.97552,0.97552,0.97552,0.97552,1.21237,0.97552,1.00135,1.00135,1.00135,1.00135,0.91142,0.94436,0.98721,1.06585,1.06585,1.06585,1.06585,1.06585,1.06585,0.96705,0.83055,0.93503,0.93503,0.93503,0.93503,1.14236,1.14236,1.14236,1.14236,0.93125,0.97922,0.94165,0.94165,0.94165,0.94165,0.94165,1.29004,0.94165,0.97922,0.97922,0.97922,0.97922,0.96752,0.97042,0.96752,0.97363,1.06585,0.97363,1.06585,0.97363,1.06585,0.87897,0.83055,0.87897,0.83055,0.87897,0.83055,0.87897,0.83055,1.0426,1.0033,1.0426,0.97042,0.79429,0.93503,0.79429,0.93503,0.79429,0.93503,0.79429,0.93503,0.79429,0.93503,0.91149,0.97042,0.91149,0.97042,0.91149,0.97042,1,1,1.05815,0.97922,1.05815,0.97922,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,0.97441,1.04302,0.79631,1.01582,1,1,1.01054,0.83853,1.14236,1,1,0.83853,1.09125,0.83853,0.90418,0.83853,1.19508,1.10615,0.97922,1,1,1.10615,0.97922,1.01034,1.10466,0.97922,0.97552,0.94165,0.97552,0.94165,0.97552,0.94165,0.91602,0.91981,0.88641,1.0276,1,1,0.88641,1.0276,0.80527,0.78929,0.80527,0.78929,0.80527,0.78929,0.80527,0.78929,1,1,0.96083,1.05403,0.95923,1.16862,1.00135,0.97922,1.00135,0.97922,1.00135,0.97922,1.00135,0.97922,1.00135,0.97922,1.00135,0.97922,1.06777,1.02197,0.91142,0.96752,0.91142,0.99361,0.97168,0.99361,0.97168,0.99361,0.97168,1.23199,1.036,0.97363,1.06585,0.94385,0.96705,0.97552,0.94165,1,1,0.96083,1.1261,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,0.95161,1.27126,1.00811,0.83284,0.77702,0.99137,0.95253,1.0347,0.86142,1.07205,1.14236,0.97363,0.89723,0.86869,1.09818,0.79429,0.99361,1.05815,0.97552,1.1406,0.90128,1.06662,1.04396,1.10615,0.84918,0.97552,1.04694,0.94436,0.98015,0.96083,0.91142,1.00356,0.9817,1.01945,0.98999,1.1406,0.91142,1.04961,0.9898,1.00639,1.14236,1.07514,1.04961,0.99607,1.02897,1.008,0.9898,0.95134,1.00639,1.11121,1.14236,1.00518,0.97981,1.02186,1,1.08578,0.94165,0.99314,0.98387,0.93028,0.93377,1.35125,1.07514,1.10687,0.93491,1.04232,1.00351,1.14236,1.07514,0.94165,1.07514,1.00351,0.79429,1,1,1,1,1,1,1,1,1,1,1,1,1.09097,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93503,1,1,1,1,1,1,1,1,1,1,1,1,0.96609,1,1,1,1,1,1,1.06777,1.02197,1.06777,1.02197,1.06777,1.02197,0.91142,0.96752,1,1.21261,0.89903,1,1,0.75155,1.04745,1.04745,1.04745,1.04394,0.98633,0.98633,0.98633,0.72959,0.72959,1.20502,0.91406,1.26514,1.222,1.02956,1.03372,1.03372,0.96039,1.24633,1,1.09125,0.93327,1.03336,1.16541,1.036,1,1,1,0.771,1,1,1.15574,1.15574,1.15574,1.15574,0.86364,0.94434,0.86279,0.94434,0.86224,1,1,1.16798,1,0.96085,0.90068,1.21237,1.18416,1.13904,0.69825,0.9716,2.10339,1.29004,1.29004,1.21339,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,0.99862,0.99862,1,0.87025,0.87025,0.87025,0.87025,1.18775,1.42603,1,1.42603,1.42603,0.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.13269,1.13269,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];exports.SegoeuiBoldItalicFactors=SegoeuiBoldItalicFactors;const SegoeuiBoldItalicMetrics={lineHeight:1.33008,lineGap:0};exports.SegoeuiBoldItalicMetrics=SegoeuiBoldItalicMetrics;const SegoeuiItalicFactors=[1.76738,1,1,0.98946,1.14763,1.05365,1.06234,0.96927,0.92586,1.15373,1.18414,0.91349,0.91349,1.07403,1.17308,0.78383,1.20088,0.78383,1.42531,0.96927,0.96927,0.96927,0.96927,0.96927,0.96927,0.96927,0.96927,0.96927,0.96927,0.78383,0.78383,1.17308,1.17308,1.17308,0.77349,0.94565,0.94729,0.85944,0.88506,0.9858,0.74817,0.80016,0.88449,0.98039,0.95782,0.69238,0.89898,0.83231,0.98183,1.03989,0.96924,0.86237,0.96924,0.80595,0.74524,0.86091,0.95402,0.94143,0.98448,0.8858,0.83089,0.93285,1.0949,1.39016,1.0949,1.45994,0.74627,1.04839,0.97454,0.97454,0.87207,0.97454,0.87533,1.06151,0.97454,1.00176,1.16484,1.08132,0.98047,1.16484,1.02989,1.01054,0.96225,0.97454,0.97454,1.06598,0.79004,1.16344,1.00351,0.94629,0.9973,0.91016,0.96777,0.9043,0.91082,0.92481,0.91082,1.17308,0.95748,0.96927,0.96927,1,0.96927,0.92481,0.80597,1.04839,1.23393,1.1781,0.9245,1.17308,1.20808,0.63218,0.94261,1.24822,1.09971,1.09971,1.04839,1,0.85273,0.78032,1.04839,1.09971,1.22326,0.9245,1.09836,1.13525,1.15222,0.70424,0.94729,0.94729,0.94729,0.94729,0.94729,0.94729,0.85498,0.88506,0.74817,0.74817,0.74817,0.74817,0.95782,0.95782,0.95782,0.95782,0.9858,1.03989,0.96924,0.96924,0.96924,0.96924,0.96924,1.17308,0.96924,0.95402,0.95402,0.95402,0.95402,0.83089,0.86237,0.88409,0.97454,0.97454,0.97454,0.97454,0.97454,0.97454,0.92916,0.87207,0.87533,0.87533,0.87533,0.87533,0.93146,0.93146,0.93146,0.93146,0.93854,1.01054,0.96225,0.96225,0.96225,0.96225,0.96225,1.24822,0.8761,1.00351,1.00351,1.00351,1.00351,0.96777,0.97454,0.96777,0.94729,0.97454,0.94729,0.97454,0.94729,0.97454,0.88506,0.87207,0.88506,0.87207,0.88506,0.87207,0.88506,0.87207,0.9858,0.95391,0.9858,0.97454,0.74817,0.87533,0.74817,0.87533,0.74817,0.87533,0.74817,0.87533,0.74817,0.87533,0.88449,0.97454,0.88449,0.97454,0.88449,0.97454,1,1,0.98039,1.00176,0.98039,1.00176,0.95782,0.93146,0.95782,0.93146,0.95782,0.93146,0.95782,1.16484,0.95782,0.93146,0.84421,1.12761,0.69238,1.08132,1,1,0.98047,0.83231,1.16484,1,1,0.84723,1.04861,0.84723,0.78755,0.83231,1.23736,1.03989,1.01054,1,1,1.03989,1.01054,0.9857,1.03849,1.01054,0.96924,0.96225,0.96924,0.96225,0.96924,0.96225,0.92383,0.90171,0.80595,1.06598,1,1,0.80595,1.06598,0.74524,0.79004,0.74524,0.79004,0.74524,0.79004,0.74524,0.79004,1,1,0.86091,1.02759,0.85771,1.16344,0.95402,1.00351,0.95402,1.00351,0.95402,1.00351,0.95402,1.00351,0.95402,1.00351,0.95402,1.00351,0.98448,0.9973,0.83089,0.96777,0.83089,0.93285,0.9043,0.93285,0.9043,0.93285,0.9043,1.31868,0.96927,0.94729,0.97454,0.85498,0.92916,0.96924,0.8761,1,1,0.86091,1.16344,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,0.81965,0.81965,0.94729,0.78032,0.71022,0.90883,0.84171,0.99877,0.77596,1.05734,1.2,0.94729,0.85944,0.82791,0.9607,0.74817,0.93285,0.98039,0.96924,0.95782,0.89898,0.98316,0.98183,1.03989,0.78614,0.96924,0.97642,0.86237,0.86075,0.86091,0.83089,0.90082,0.8858,0.97296,1.01284,0.95782,0.83089,1.0976,1.04,1.03342,1.2,1.0675,1.0976,0.98205,1.03809,1.05097,1.04,0.95364,1.03342,1.05401,1.2,1.02148,1.0119,1.04724,1.0127,1.02732,0.96225,0.8965,0.97783,0.93574,0.94818,1.30679,1.0675,1.11826,0.99821,1.0557,1.0326,1.2,1.0675,0.96225,1.0675,1.0326,0.74817,1,1,1,1,1,1,1,1,1,1,1,1,1.03754,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.87533,1,1,1,1,1,1,1,1,1,1,1,1,0.98705,1,1,1,1,1,1,0.98448,0.9973,0.98448,0.9973,0.98448,0.9973,0.83089,0.96777,1,1.20088,0.89903,1,1,0.75155,0.94945,0.94945,0.94945,0.94945,1.12317,1.12317,1.12317,0.67603,0.67603,1.15621,0.73584,1.21191,1.22135,1.06483,0.94868,0.94868,0.95996,1.24633,1,1.07497,0.87709,0.96927,1.01473,0.96927,1,1,1,0.77295,1,1,1.09836,1.09836,1.09836,1.01522,0.86321,0.94434,0.8649,0.94434,0.86182,1,1,1.083,1,0.91578,0.86438,1.17308,1.18416,1.14589,0.69825,0.97622,1.96791,1.24822,1.24822,1.17308,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,0.99862,0.99862,1,0.87025,0.87025,0.87025,0.87025,1.17984,1.42603,1,1.42603,1.42603,0.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10742,1.10742,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];exports.SegoeuiItalicFactors=SegoeuiItalicFactors;const SegoeuiItalicMetrics={lineHeight:1.33008,lineGap:0};exports.SegoeuiItalicMetrics=SegoeuiItalicMetrics;const SegoeuiRegularFactors=[1.76738,1,1,0.98594,1.02285,1.10454,1.06234,0.96927,0.92037,1.19985,1.2046,0.90616,0.90616,1.07152,1.1714,0.78032,1.20088,0.78032,1.40246,0.96927,0.96927,0.96927,0.96927,0.96927,0.96927,0.96927,0.96927,0.96927,0.96927,0.78032,0.78032,1.1714,1.1714,1.1714,0.80597,0.94084,0.96706,0.85944,0.85734,0.97093,0.75842,0.79936,0.88198,0.9831,0.95782,0.71387,0.86969,0.84636,1.07796,1.03584,0.96924,0.83968,0.96924,0.82826,0.79649,0.85771,0.95132,0.93119,0.98965,0.88433,0.8287,0.93365,1.08612,1.3638,1.08612,1.45786,0.74627,0.80499,0.91484,1.05707,0.92383,1.05882,0.9403,1.12654,1.05882,1.01756,1.09011,1.09011,0.99414,1.09011,1.034,1.01756,1.05356,1.05707,1.05882,1.04399,0.84863,1.21968,1.01756,0.95801,1.00068,0.91797,0.96777,0.9043,0.90351,0.92105,0.90351,1.1714,0.85337,0.96927,0.96927,0.99912,0.96927,0.92105,0.80597,1.2434,1.20808,1.05937,0.90957,1.1714,1.20808,0.75155,0.94261,1.24644,1.09971,1.09971,0.84751,1,0.85273,0.78032,0.61584,1.05425,1.17914,0.90957,1.08665,1.11593,1.14169,0.73381,0.96706,0.96706,0.96706,0.96706,0.96706,0.96706,0.86035,0.85734,0.75842,0.75842,0.75842,0.75842,0.95782,0.95782,0.95782,0.95782,0.97093,1.03584,0.96924,0.96924,0.96924,0.96924,0.96924,1.1714,0.96924,0.95132,0.95132,0.95132,0.95132,0.8287,0.83968,0.89049,0.91484,0.91484,0.91484,0.91484,0.91484,0.91484,0.93575,0.92383,0.9403,0.9403,0.9403,0.9403,0.8717,0.8717,0.8717,0.8717,1.00527,1.01756,1.05356,1.05356,1.05356,1.05356,1.05356,1.24644,0.95923,1.01756,1.01756,1.01756,1.01756,0.96777,1.05707,0.96777,0.96706,0.91484,0.96706,0.91484,0.96706,0.91484,0.85734,0.92383,0.85734,0.92383,0.85734,0.92383,0.85734,0.92383,0.97093,1.0969,0.97093,1.05882,0.75842,0.9403,0.75842,0.9403,0.75842,0.9403,0.75842,0.9403,0.75842,0.9403,0.88198,1.05882,0.88198,1.05882,0.88198,1.05882,1,1,0.9831,1.01756,0.9831,1.01756,0.95782,0.8717,0.95782,0.8717,0.95782,0.8717,0.95782,1.09011,0.95782,0.8717,0.84784,1.11551,0.71387,1.09011,1,1,0.99414,0.84636,1.09011,1,1,0.84636,1.0536,0.84636,0.94298,0.84636,1.23297,1.03584,1.01756,1,1,1.03584,1.01756,1.00323,1.03444,1.01756,0.96924,1.05356,0.96924,1.05356,0.96924,1.05356,0.93066,0.98293,0.82826,1.04399,1,1,0.82826,1.04399,0.79649,0.84863,0.79649,0.84863,0.79649,0.84863,0.79649,0.84863,1,1,0.85771,1.17318,0.85771,1.21968,0.95132,1.01756,0.95132,1.01756,0.95132,1.01756,0.95132,1.01756,0.95132,1.01756,0.95132,1.01756,0.98965,1.00068,0.8287,0.96777,0.8287,0.93365,0.9043,0.93365,0.9043,0.93365,0.9043,1.08571,0.96927,0.96706,0.91484,0.86035,0.93575,0.96924,0.95923,1,1,0.85771,1.21968,1.11437,1.11437,0.93109,0.91202,0.60411,0.84164,0.55572,1.01173,0.97361,0.81818,0.81818,0.96635,0.78032,0.72727,0.92366,0.98601,1.03405,0.77968,1.09799,1.2,0.96706,0.85944,0.85638,0.96491,0.75842,0.93365,0.9831,0.96924,0.95782,0.86969,0.94152,1.07796,1.03584,0.78437,0.96924,0.98715,0.83968,0.83491,0.85771,0.8287,0.94492,0.88433,0.9287,1.0098,0.95782,0.8287,1.0625,0.98248,1.03424,1.2,1.01071,1.0625,0.95246,1.03809,1.04912,0.98248,1.00221,1.03424,1.05443,1.2,1.04785,0.99609,1.00169,1.05176,0.99346,1.05356,0.9087,1.03004,0.95542,0.93117,1.23362,1.01071,1.07831,1.02512,1.05205,1.03502,1.2,1.01071,1.05356,1.01071,1.03502,0.75842,1,1,1,1,1,1,1,1,1,1,1,1,1.03719,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9403,1,1,1,1,1,1,1,1,1,1,1,1,1.04021,1,1,1,1,1,1,0.98965,1.00068,0.98965,1.00068,0.98965,1.00068,0.8287,0.96777,1,1.20088,0.89903,1,1,0.75155,1.03077,1.03077,1.03077,1.03077,1.13196,1.13196,1.13196,0.67428,0.67428,1.16039,0.73291,1.20996,1.22135,1.06483,0.94868,0.94868,0.95996,1.24633,1,1.07497,0.87796,0.96927,1.01518,0.96927,1,1,1,0.77295,1,1,1.10539,1.10539,1.11358,1.06967,0.86279,0.94434,0.86279,0.94434,0.86182,1,1,1.083,1,0.91578,0.86507,1.1714,1.18416,1.14589,0.69825,0.97622,1.9697,1.24822,1.24822,1.17238,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,0.99862,0.99862,1,0.87025,0.87025,0.87025,0.87025,1.18083,1.42603,1,1.42603,1.42603,0.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10938,1.10938,1,1,1,1.05425,1.09971,1.09971,1.09971,1,1,1,1,1,1,1,1,1,1,1];exports.SegoeuiRegularFactors=SegoeuiRegularFactors;const SegoeuiRegularMetrics={lineHeight:1.33008,lineGap:0};exports.SegoeuiRegularMetrics=SegoeuiRegularMetrics;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PostScriptEvaluator=exports.PostScriptCompiler=exports.PDFFunctionFactory=void 0;exports.isPDFFunction=isPDFFunction;var _primitives=__w_pdfjs_require__(130);var _util=__w_pdfjs_require__(2);var _ps_parser=__w_pdfjs_require__(183);var _base_stream=__w_pdfjs_require__(132);var _image_utils=__w_pdfjs_require__(184);class PDFFunctionFactory{constructor(_ref){let{xref,isEvalSupported=true}=_ref;this.xref=xref;this.isEvalSupported=isEvalSupported!==false;}
create(fn){const cachedFunction=this.getCached(fn);if(cachedFunction){return cachedFunction;}
const parsedFunction=PDFFunction.parse({xref:this.xref,isEvalSupported:this.isEvalSupported,fn:fn instanceof _primitives.Ref?this.xref.fetch(fn):fn});this._cache(fn,parsedFunction);return parsedFunction;}
createFromArray(fnObj){const cachedFunction=this.getCached(fnObj);if(cachedFunction){return cachedFunction;}
const parsedFunction=PDFFunction.parseArray({xref:this.xref,isEvalSupported:this.isEvalSupported,fnObj:fnObj instanceof _primitives.Ref?this.xref.fetch(fnObj):fnObj});this._cache(fnObj,parsedFunction);return parsedFunction;}
getCached(cacheKey){let fnRef;if(cacheKey instanceof _primitives.Ref){fnRef=cacheKey;}else if(cacheKey instanceof _primitives.Dict){fnRef=cacheKey.objId;}else if(cacheKey instanceof _base_stream.BaseStream){fnRef=cacheKey.dict&&cacheKey.dict.objId;}
if(fnRef){const localFunction=this._localFunctionCache.getByRef(fnRef);if(localFunction){return localFunction;}}
return null;}
_cache(cacheKey,parsedFunction){if(!parsedFunction){throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.');}
let fnRef;if(cacheKey instanceof _primitives.Ref){fnRef=cacheKey;}else if(cacheKey instanceof _primitives.Dict){fnRef=cacheKey.objId;}else if(cacheKey instanceof _base_stream.BaseStream){fnRef=cacheKey.dict&&cacheKey.dict.objId;}
if(fnRef){this._localFunctionCache.set(null,fnRef,parsedFunction);}}
get _localFunctionCache(){return(0,_util.shadow)(this,"_localFunctionCache",new _image_utils.LocalFunctionCache());}}
exports.PDFFunctionFactory=PDFFunctionFactory;function toNumberArray(arr){if(!Array.isArray(arr)){return null;}
const length=arr.length;for(let i=0;i<length;i++){if(typeof arr[i]!=="number"){const result=new Array(length);for(let j=0;j<length;j++){result[j]=+arr[j];}
return result;}}
return arr;}
class PDFFunction{static getSampleArray(size,outputSize,bps,stream){let i,ii;let length=1;for(i=0,ii=size.length;i<ii;i++){length*=size[i];}
length*=outputSize;const array=new Array(length);let codeSize=0;let codeBuf=0;const sampleMul=1.0/(2.0**bps-1);const strBytes=stream.getBytes((length*bps+7)/8);let strIdx=0;for(i=0;i<length;i++){while(codeSize<bps){codeBuf<<=8;codeBuf|=strBytes[strIdx++];codeSize+=8;}
codeSize-=bps;array[i]=(codeBuf>>codeSize)*sampleMul;codeBuf&=(1<<codeSize)-1;}
return array;}
static parse(_ref2){let{xref,isEvalSupported,fn}=_ref2;const dict=fn.dict||fn;const typeNum=dict.get("FunctionType");switch(typeNum){case 0:return this.constructSampled({xref,isEvalSupported,fn,dict});case 1:break;case 2:return this.constructInterpolated({xref,isEvalSupported,dict});case 3:return this.constructStiched({xref,isEvalSupported,dict});case 4:return this.constructPostScript({xref,isEvalSupported,fn,dict});}
throw new _util.FormatError("Unknown type of function");}
static parseArray(_ref3){let{xref,isEvalSupported,fnObj}=_ref3;if(!Array.isArray(fnObj)){return this.parse({xref,isEvalSupported,fn:fnObj});}
const fnArray=[];for(let j=0,jj=fnObj.length;j<jj;j++){fnArray.push(this.parse({xref,isEvalSupported,fn:xref.fetchIfRef(fnObj[j])}));}
return function(src,srcOffset,dest,destOffset){for(let i=0,ii=fnArray.length;i<ii;i++){fnArray[i](src,srcOffset,dest,destOffset+i);}};}
static constructSampled(_ref4){let{xref,isEvalSupported,fn,dict}=_ref4;function toMultiArray(arr){const inputLength=arr.length;const out=[];let index=0;for(let i=0;i<inputLength;i+=2){out[index++]=[arr[i],arr[i+1]];}
return out;}
function interpolate(x,xmin,xmax,ymin,ymax){return ymin+(x-xmin)*((ymax-ymin)/(xmax-xmin));}
let domain=toNumberArray(dict.getArray("Domain"));let range=toNumberArray(dict.getArray("Range"));if(!domain||!range){throw new _util.FormatError("No domain or range");}
const inputSize=domain.length/2;const outputSize=range.length/2;domain=toMultiArray(domain);range=toMultiArray(range);const size=toNumberArray(dict.getArray("Size"));const bps=dict.get("BitsPerSample");const order=dict.get("Order")||1;if(order!==1){(0,_util.info)("No support for cubic spline interpolation: "+order);}
let encode=toNumberArray(dict.getArray("Encode"));if(!encode){encode=[];for(let i=0;i<inputSize;++i){encode.push([0,size[i]-1]);}}else{encode=toMultiArray(encode);}
let decode=toNumberArray(dict.getArray("Decode"));if(!decode){decode=range;}else{decode=toMultiArray(decode);}
const samples=this.getSampleArray(size,outputSize,bps,fn);return function constructSampledFn(src,srcOffset,dest,destOffset){const cubeVertices=1<<inputSize;const cubeN=new Float64Array(cubeVertices);const cubeVertex=new Uint32Array(cubeVertices);let i,j;for(j=0;j<cubeVertices;j++){cubeN[j]=1;}
let k=outputSize,pos=1;for(i=0;i<inputSize;++i){const domain_2i=domain[i][0];const domain_2i_1=domain[i][1];const xi=Math.min(Math.max(src[srcOffset+i],domain_2i),domain_2i_1);let e=interpolate(xi,domain_2i,domain_2i_1,encode[i][0],encode[i][1]);const size_i=size[i];e=Math.min(Math.max(e,0),size_i-1);const e0=e<size_i-1?Math.floor(e):e-1;const n0=e0+1-e;const n1=e-e0;const offset0=e0*k;const offset1=offset0+k;for(j=0;j<cubeVertices;j++){if(j&pos){cubeN[j]*=n1;cubeVertex[j]+=offset1;}else{cubeN[j]*=n0;cubeVertex[j]+=offset0;}}
k*=size_i;pos<<=1;}
for(j=0;j<outputSize;++j){let rj=0;for(i=0;i<cubeVertices;i++){rj+=samples[cubeVertex[i]+j]*cubeN[i];}
rj=interpolate(rj,0,1,decode[j][0],decode[j][1]);dest[destOffset+j]=Math.min(Math.max(rj,range[j][0]),range[j][1]);}};}
static constructInterpolated(_ref5){let{xref,isEvalSupported,dict}=_ref5;const c0=toNumberArray(dict.getArray("C0"))||[0];const c1=toNumberArray(dict.getArray("C1"))||[1];const n=dict.get("N");const diff=[];for(let i=0,ii=c0.length;i<ii;++i){diff.push(c1[i]-c0[i]);}
const length=diff.length;return function constructInterpolatedFn(src,srcOffset,dest,destOffset){const x=n===1?src[srcOffset]:src[srcOffset]**n;for(let j=0;j<length;++j){dest[destOffset+j]=c0[j]+x*diff[j];}};}
static constructStiched(_ref6){let{xref,isEvalSupported,dict}=_ref6;const domain=toNumberArray(dict.getArray("Domain"));if(!domain){throw new _util.FormatError("No domain");}
const inputSize=domain.length/2;if(inputSize!==1){throw new _util.FormatError("Bad domain for stiched function");}
const fnRefs=dict.get("Functions");const fns=[];for(let i=0,ii=fnRefs.length;i<ii;++i){fns.push(this.parse({xref,isEvalSupported,fn:xref.fetchIfRef(fnRefs[i])}));}
const bounds=toNumberArray(dict.getArray("Bounds"));const encode=toNumberArray(dict.getArray("Encode"));const tmpBuf=new Float32Array(1);return function constructStichedFn(src,srcOffset,dest,destOffset){const clip=function constructStichedFromIRClip(v,min,max){if(v>max){v=max;}else if(v<min){v=min;}
return v;};const v=clip(src[srcOffset],domain[0],domain[1]);const length=bounds.length;let i;for(i=0;i<length;++i){if(v<bounds[i]){break;}}
let dmin=domain[0];if(i>0){dmin=bounds[i-1];}
let dmax=domain[1];if(i<bounds.length){dmax=bounds[i];}
const rmin=encode[2*i];const rmax=encode[2*i+1];tmpBuf[0]=dmin===dmax?rmin:rmin+(v-dmin)*(rmax-rmin)/(dmax-dmin);fns[i](tmpBuf,0,dest,destOffset);};}
static constructPostScript(_ref7){let{xref,isEvalSupported,fn,dict}=_ref7;const domain=toNumberArray(dict.getArray("Domain"));const range=toNumberArray(dict.getArray("Range"));if(!domain){throw new _util.FormatError("No domain.");}
if(!range){throw new _util.FormatError("No range.");}
const lexer=new _ps_parser.PostScriptLexer(fn);const parser=new _ps_parser.PostScriptParser(lexer);const code=parser.parse();if(isEvalSupported&&_util.FeatureTest.isEvalSupported){const compiled=new PostScriptCompiler().compile(code,domain,range);if(compiled){return new Function("src","srcOffset","dest","destOffset",compiled);}}
(0,_util.info)("Unable to compile PS function");const numOutputs=range.length>>1;const numInputs=domain.length>>1;const evaluator=new PostScriptEvaluator(code);const cache=Object.create(null);const MAX_CACHE_SIZE=2048*4;let cache_available=MAX_CACHE_SIZE;const tmpBuf=new Float32Array(numInputs);return function constructPostScriptFn(src,srcOffset,dest,destOffset){let i,value;let key="";const input=tmpBuf;for(i=0;i<numInputs;i++){value=src[srcOffset+i];input[i]=value;key+=value+"_";}
const cachedValue=cache[key];if(cachedValue!==undefined){dest.set(cachedValue,destOffset);return;}
const output=new Float32Array(numOutputs);const stack=evaluator.execute(input);const stackIndex=stack.length-numOutputs;for(i=0;i<numOutputs;i++){value=stack[stackIndex+i];let bound=range[i*2];if(value<bound){value=bound;}else{bound=range[i*2+1];if(value>bound){value=bound;}}
output[i]=value;}
if(cache_available>0){cache_available--;cache[key]=output;}
dest.set(output,destOffset);};}}
function isPDFFunction(v){let fnDict;if(typeof v!=="object"){return false;}else if(v instanceof _primitives.Dict){fnDict=v;}else if(v instanceof _base_stream.BaseStream){fnDict=v.dict;}else{return false;}
return fnDict.has("FunctionType");}
class PostScriptStack{static get MAX_STACK_SIZE(){return(0,_util.shadow)(this,"MAX_STACK_SIZE",100);}
constructor(initialStack){this.stack=!initialStack?[]:Array.prototype.slice.call(initialStack,0);}
push(value){if(this.stack.length>=PostScriptStack.MAX_STACK_SIZE){throw new Error("PostScript function stack overflow.");}
this.stack.push(value);}
pop(){if(this.stack.length<=0){throw new Error("PostScript function stack underflow.");}
return this.stack.pop();}
copy(n){if(this.stack.length+n>=PostScriptStack.MAX_STACK_SIZE){throw new Error("PostScript function stack overflow.");}
const stack=this.stack;for(let i=stack.length-n,j=n-1;j>=0;j--,i++){stack.push(stack[i]);}}
index(n){this.push(this.stack[this.stack.length-n-1]);}
roll(n,p){const stack=this.stack;const l=stack.length-n;const r=stack.length-1;const c=l+(p-Math.floor(p/n)*n);for(let i=l,j=r;i<j;i++,j--){const t=stack[i];stack[i]=stack[j];stack[j]=t;}
for(let i=l,j=c-1;i<j;i++,j--){const t=stack[i];stack[i]=stack[j];stack[j]=t;}
for(let i=c,j=r;i<j;i++,j--){const t=stack[i];stack[i]=stack[j];stack[j]=t;}}}
class PostScriptEvaluator{constructor(operators){this.operators=operators;}
execute(initialStack){const stack=new PostScriptStack(initialStack);let counter=0;const operators=this.operators;const length=operators.length;let operator,a,b;while(counter<length){operator=operators[counter++];if(typeof operator==="number"){stack.push(operator);continue;}
switch(operator){case"jz":b=stack.pop();a=stack.pop();if(!a){counter=b;}
break;case"j":a=stack.pop();counter=a;break;case"abs":a=stack.pop();stack.push(Math.abs(a));break;case"add":b=stack.pop();a=stack.pop();stack.push(a+b);break;case"and":b=stack.pop();a=stack.pop();if(typeof a==="boolean"&&typeof b==="boolean"){stack.push(a&&b);}else{stack.push(a&b);}
break;case"atan":a=stack.pop();stack.push(Math.atan(a));break;case"bitshift":b=stack.pop();a=stack.pop();if(a>0){stack.push(a<<b);}else{stack.push(a>>b);}
break;case"ceiling":a=stack.pop();stack.push(Math.ceil(a));break;case"copy":a=stack.pop();stack.copy(a);break;case"cos":a=stack.pop();stack.push(Math.cos(a));break;case"cvi":a=stack.pop()|0;stack.push(a);break;case"cvr":break;case"div":b=stack.pop();a=stack.pop();stack.push(a/b);break;case"dup":stack.copy(1);break;case"eq":b=stack.pop();a=stack.pop();stack.push(a===b);break;case"exch":stack.roll(2,1);break;case"exp":b=stack.pop();a=stack.pop();stack.push(a**b);break;case"false":stack.push(false);break;case"floor":a=stack.pop();stack.push(Math.floor(a));break;case"ge":b=stack.pop();a=stack.pop();stack.push(a>=b);break;case"gt":b=stack.pop();a=stack.pop();stack.push(a>b);break;case"idiv":b=stack.pop();a=stack.pop();stack.push(a/b|0);break;case"index":a=stack.pop();stack.index(a);break;case"le":b=stack.pop();a=stack.pop();stack.push(a<=b);break;case"ln":a=stack.pop();stack.push(Math.log(a));break;case"log":a=stack.pop();stack.push(Math.log(a)/Math.LN10);break;case"lt":b=stack.pop();a=stack.pop();stack.push(a<b);break;case"mod":b=stack.pop();a=stack.pop();stack.push(a%b);break;case"mul":b=stack.pop();a=stack.pop();stack.push(a*b);break;case"ne":b=stack.pop();a=stack.pop();stack.push(a!==b);break;case"neg":a=stack.pop();stack.push(-a);break;case"not":a=stack.pop();if(typeof a==="boolean"){stack.push(!a);}else{stack.push(~a);}
break;case"or":b=stack.pop();a=stack.pop();if(typeof a==="boolean"&&typeof b==="boolean"){stack.push(a||b);}else{stack.push(a|b);}
break;case"pop":stack.pop();break;case"roll":b=stack.pop();a=stack.pop();stack.roll(a,b);break;case"round":a=stack.pop();stack.push(Math.round(a));break;case"sin":a=stack.pop();stack.push(Math.sin(a));break;case"sqrt":a=stack.pop();stack.push(Math.sqrt(a));break;case"sub":b=stack.pop();a=stack.pop();stack.push(a-b);break;case"true":stack.push(true);break;case"truncate":a=stack.pop();a=a<0?Math.ceil(a):Math.floor(a);stack.push(a);break;case"xor":b=stack.pop();a=stack.pop();if(typeof a==="boolean"&&typeof b==="boolean"){stack.push(a!==b);}else{stack.push(a^b);}
break;default:throw new _util.FormatError(`Unknown operator ${operator}`);}}
return stack.stack;}}
exports.PostScriptEvaluator=PostScriptEvaluator;class AstNode{constructor(type){this.type=type;}
visit(visitor){(0,_util.unreachable)("abstract method");}}
class AstArgument extends AstNode{constructor(index,min,max){super("args");this.index=index;this.min=min;this.max=max;}
visit(visitor){visitor.visitArgument(this);}}
class AstLiteral extends AstNode{constructor(number){super("literal");this.number=number;this.min=number;this.max=number;}
visit(visitor){visitor.visitLiteral(this);}}
class AstBinaryOperation extends AstNode{constructor(op,arg1,arg2,min,max){super("binary");this.op=op;this.arg1=arg1;this.arg2=arg2;this.min=min;this.max=max;}
visit(visitor){visitor.visitBinaryOperation(this);}}
class AstMin extends AstNode{constructor(arg,max){super("max");this.arg=arg;this.min=arg.min;this.max=max;}
visit(visitor){visitor.visitMin(this);}}
class AstVariable extends AstNode{constructor(index,min,max){super("var");this.index=index;this.min=min;this.max=max;}
visit(visitor){visitor.visitVariable(this);}}
class AstVariableDefinition extends AstNode{constructor(variable,arg){super("definition");this.variable=variable;this.arg=arg;}
visit(visitor){visitor.visitVariableDefinition(this);}}
class ExpressionBuilderVisitor{constructor(){this.parts=[];}
visitArgument(arg){this.parts.push("Math.max(",arg.min,", Math.min(",arg.max,", src[srcOffset + ",arg.index,"]))");}
visitVariable(variable){this.parts.push("v",variable.index);}
visitLiteral(literal){this.parts.push(literal.number);}
visitBinaryOperation(operation){this.parts.push("(");operation.arg1.visit(this);this.parts.push(" ",operation.op," ");operation.arg2.visit(this);this.parts.push(")");}
visitVariableDefinition(definition){this.parts.push("var ");definition.variable.visit(this);this.parts.push(" = ");definition.arg.visit(this);this.parts.push(";");}
visitMin(max){this.parts.push("Math.min(");max.arg.visit(this);this.parts.push(", ",max.max,")");}
toString(){return this.parts.join("");}}
function buildAddOperation(num1,num2){if(num2.type==="literal"&&num2.number===0){return num1;}
if(num1.type==="literal"&&num1.number===0){return num2;}
if(num2.type==="literal"&&num1.type==="literal"){return new AstLiteral(num1.number+num2.number);}
return new AstBinaryOperation("+",num1,num2,num1.min+num2.min,num1.max+num2.max);}
function buildMulOperation(num1,num2){if(num2.type==="literal"){if(num2.number===0){return new AstLiteral(0);}else if(num2.number===1){return num1;}else if(num1.type==="literal"){return new AstLiteral(num1.number*num2.number);}}
if(num1.type==="literal"){if(num1.number===0){return new AstLiteral(0);}else if(num1.number===1){return num2;}}
const min=Math.min(num1.min*num2.min,num1.min*num2.max,num1.max*num2.min,num1.max*num2.max);const max=Math.max(num1.min*num2.min,num1.min*num2.max,num1.max*num2.min,num1.max*num2.max);return new AstBinaryOperation("*",num1,num2,min,max);}
function buildSubOperation(num1,num2){if(num2.type==="literal"){if(num2.number===0){return num1;}else if(num1.type==="literal"){return new AstLiteral(num1.number-num2.number);}}
if(num2.type==="binary"&&num2.op==="-"&&num1.type==="literal"&&num1.number===1&&num2.arg1.type==="literal"&&num2.arg1.number===1){return num2.arg2;}
return new AstBinaryOperation("-",num1,num2,num1.min-num2.max,num1.max-num2.min);}
function buildMinOperation(num1,max){if(num1.min>=max){return new AstLiteral(max);}else if(num1.max<=max){return num1;}
return new AstMin(num1,max);}
class PostScriptCompiler{compile(code,domain,range){const stack=[];const instructions=[];const inputSize=domain.length>>1,outputSize=range.length>>1;let lastRegister=0;let n,j;let num1,num2,ast1,ast2,tmpVar,item;for(let i=0;i<inputSize;i++){stack.push(new AstArgument(i,domain[i*2],domain[i*2+1]));}
for(let i=0,ii=code.length;i<ii;i++){item=code[i];if(typeof item==="number"){stack.push(new AstLiteral(item));continue;}
switch(item){case"add":if(stack.length<2){return null;}
num2=stack.pop();num1=stack.pop();stack.push(buildAddOperation(num1,num2));break;case"cvr":if(stack.length<1){return null;}
break;case"mul":if(stack.length<2){return null;}
num2=stack.pop();num1=stack.pop();stack.push(buildMulOperation(num1,num2));break;case"sub":if(stack.length<2){return null;}
num2=stack.pop();num1=stack.pop();stack.push(buildSubOperation(num1,num2));break;case"exch":if(stack.length<2){return null;}
ast1=stack.pop();ast2=stack.pop();stack.push(ast1,ast2);break;case"pop":if(stack.length<1){return null;}
stack.pop();break;case"index":if(stack.length<1){return null;}
num1=stack.pop();if(num1.type!=="literal"){return null;}
n=num1.number;if(n<0||!Number.isInteger(n)||stack.length<n){return null;}
ast1=stack[stack.length-n-1];if(ast1.type==="literal"||ast1.type==="var"){stack.push(ast1);break;}
tmpVar=new AstVariable(lastRegister++,ast1.min,ast1.max);stack[stack.length-n-1]=tmpVar;stack.push(tmpVar);instructions.push(new AstVariableDefinition(tmpVar,ast1));break;case"dup":if(stack.length<1){return null;}
if(typeof code[i+1]==="number"&&code[i+2]==="gt"&&code[i+3]===i+7&&code[i+4]==="jz"&&code[i+5]==="pop"&&code[i+6]===code[i+1]){num1=stack.pop();stack.push(buildMinOperation(num1,code[i+1]));i+=6;break;}
ast1=stack.at(-1);if(ast1.type==="literal"||ast1.type==="var"){stack.push(ast1);break;}
tmpVar=new AstVariable(lastRegister++,ast1.min,ast1.max);stack[stack.length-1]=tmpVar;stack.push(tmpVar);instructions.push(new AstVariableDefinition(tmpVar,ast1));break;case"roll":if(stack.length<2){return null;}
num2=stack.pop();num1=stack.pop();if(num2.type!=="literal"||num1.type!=="literal"){return null;}
j=num2.number;n=num1.number;if(n<=0||!Number.isInteger(n)||!Number.isInteger(j)||stack.length<n){return null;}
j=(j%n+n)%n;if(j===0){break;}
Array.prototype.push.apply(stack,stack.splice(stack.length-n,n-j));break;default:return null;}}
if(stack.length!==outputSize){return null;}
const result=[];for(const instruction of instructions){const statementBuilder=new ExpressionBuilderVisitor();instruction.visit(statementBuilder);result.push(statementBuilder.toString());}
for(let i=0,ii=stack.length;i<ii;i++){const expr=stack[i],statementBuilder=new ExpressionBuilderVisitor();expr.visit(statementBuilder);const min=range[i*2],max=range[i*2+1];const out=[statementBuilder.toString()];if(min>expr.min){out.unshift("Math.max(",min,", ");out.push(")");}
if(max<expr.max){out.unshift("Math.min(",max,", ");out.push(")");}
out.unshift("dest[destOffset + ",i,"] = ");out.push(";");result.push(out.join(""));}
return result.join("\n");}}
exports.PostScriptCompiler=PostScriptCompiler;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PostScriptParser=exports.PostScriptLexer=void 0;var _util=__w_pdfjs_require__(2);var _primitives=__w_pdfjs_require__(130);var _core_utils=__w_pdfjs_require__(131);class PostScriptParser{constructor(lexer){this.lexer=lexer;this.operators=[];this.token=null;this.prev=null;}
nextToken(){this.prev=this.token;this.token=this.lexer.getToken();}
accept(type){if(this.token.type===type){this.nextToken();return true;}
return false;}
expect(type){if(this.accept(type)){return true;}
throw new _util.FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`);}
parse(){this.nextToken();this.expect(PostScriptTokenTypes.LBRACE);this.parseBlock();this.expect(PostScriptTokenTypes.RBRACE);return this.operators;}
parseBlock(){while(true){if(this.accept(PostScriptTokenTypes.NUMBER)){this.operators.push(this.prev.value);}else if(this.accept(PostScriptTokenTypes.OPERATOR)){this.operators.push(this.prev.value);}else if(this.accept(PostScriptTokenTypes.LBRACE)){this.parseCondition();}else{return;}}}
parseCondition(){const conditionLocation=this.operators.length;this.operators.push(null,null);this.parseBlock();this.expect(PostScriptTokenTypes.RBRACE);if(this.accept(PostScriptTokenTypes.IF)){this.operators[conditionLocation]=this.operators.length;this.operators[conditionLocation+1]="jz";}else if(this.accept(PostScriptTokenTypes.LBRACE)){const jumpLocation=this.operators.length;this.operators.push(null,null);const endOfTrue=this.operators.length;this.parseBlock();this.expect(PostScriptTokenTypes.RBRACE);this.expect(PostScriptTokenTypes.IFELSE);this.operators[jumpLocation]=this.operators.length;this.operators[jumpLocation+1]="j";this.operators[conditionLocation]=endOfTrue;this.operators[conditionLocation+1]="jz";}else{throw new _util.FormatError("PS Function: error parsing conditional.");}}}
exports.PostScriptParser=PostScriptParser;const PostScriptTokenTypes={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5};class PostScriptToken{static get opCache(){return(0,_util.shadow)(this,"opCache",Object.create(null));}
constructor(type,value){this.type=type;this.value=value;}
static getOperator(op){const opValue=PostScriptToken.opCache[op];if(opValue){return opValue;}
return PostScriptToken.opCache[op]=new PostScriptToken(PostScriptTokenTypes.OPERATOR,op);}
static get LBRACE(){return(0,_util.shadow)(this,"LBRACE",new PostScriptToken(PostScriptTokenTypes.LBRACE,"{"));}
static get RBRACE(){return(0,_util.shadow)(this,"RBRACE",new PostScriptToken(PostScriptTokenTypes.RBRACE,"}"));}
static get IF(){return(0,_util.shadow)(this,"IF",new PostScriptToken(PostScriptTokenTypes.IF,"IF"));}
static get IFELSE(){return(0,_util.shadow)(this,"IFELSE",new PostScriptToken(PostScriptTokenTypes.IFELSE,"IFELSE"));}}
class PostScriptLexer{constructor(stream){this.stream=stream;this.nextChar();this.strBuf=[];}
nextChar(){return this.currentChar=this.stream.getByte();}
getToken(){let comment=false;let ch=this.currentChar;while(true){if(ch<0){return _primitives.EOF;}
if(comment){if(ch===0x0a||ch===0x0d){comment=false;}}else if(ch===0x25){comment=true;}else if(!(0,_core_utils.isWhiteSpace)(ch)){break;}
ch=this.nextChar();}
switch(ch|0){case 0x30:case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36:case 0x37:case 0x38:case 0x39:case 0x2b:case 0x2d:case 0x2e:return new PostScriptToken(PostScriptTokenTypes.NUMBER,this.getNumber());case 0x7b:this.nextChar();return PostScriptToken.LBRACE;case 0x7d:this.nextChar();return PostScriptToken.RBRACE;}
const strBuf=this.strBuf;strBuf.length=0;strBuf[0]=String.fromCharCode(ch);while((ch=this.nextChar())>=0&&(ch>=0x41&&ch<=0x5a||ch>=0x61&&ch<=0x7a)){strBuf.push(String.fromCharCode(ch));}
const str=strBuf.join("");switch(str.toLowerCase()){case"if":return PostScriptToken.IF;case"ifelse":return PostScriptToken.IFELSE;default:return PostScriptToken.getOperator(str);}}
getNumber(){let ch=this.currentChar;const strBuf=this.strBuf;strBuf.length=0;strBuf[0]=String.fromCharCode(ch);while((ch=this.nextChar())>=0){if(ch>=0x30&&ch<=0x39||ch===0x2d||ch===0x2e){strBuf.push(String.fromCharCode(ch));}else{break;}}
const value=parseFloat(strBuf.join(""));if(isNaN(value)){throw new _util.FormatError(`Invalid floating point number: ${value}`);}
return value;}}
exports.PostScriptLexer=PostScriptLexer;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.LocalTilingPatternCache=exports.LocalImageCache=exports.LocalGStateCache=exports.LocalFunctionCache=exports.LocalColorSpaceCache=exports.GlobalImageCache=void 0;var _util=__w_pdfjs_require__(2);var _primitives=__w_pdfjs_require__(130);class BaseLocalCache{constructor(options){if(this.constructor===BaseLocalCache){(0,_util.unreachable)("Cannot initialize BaseLocalCache.");}
this._onlyRefs=(options&&options.onlyRefs)===true;if(!this._onlyRefs){this._nameRefMap=new Map();this._imageMap=new Map();}
this._imageCache=new _primitives.RefSetCache();}
getByName(name){if(this._onlyRefs){(0,_util.unreachable)("Should not call `getByName` method.");}
const ref=this._nameRefMap.get(name);if(ref){return this.getByRef(ref);}
return this._imageMap.get(name)||null;}
getByRef(ref){return this._imageCache.get(ref)||null;}
set(name,ref,data){(0,_util.unreachable)("Abstract method `set` called.");}}
class LocalImageCache extends BaseLocalCache{set(name){let ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;let data=arguments.length>2?arguments[2]:undefined;if(typeof name!=="string"){throw new Error('LocalImageCache.set - expected "name" argument.');}
if(ref){if(this._imageCache.has(ref)){return;}
this._nameRefMap.set(name,ref);this._imageCache.put(ref,data);return;}
if(this._imageMap.has(name)){return;}
this._imageMap.set(name,data);}}
exports.LocalImageCache=LocalImageCache;class LocalColorSpaceCache extends BaseLocalCache{set(){let name=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;let ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;let data=arguments.length>2?arguments[2]:undefined;if(typeof name!=="string"&&!ref){throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');}
if(ref){if(this._imageCache.has(ref)){return;}
if(name!==null){this._nameRefMap.set(name,ref);}
this._imageCache.put(ref,data);return;}
if(this._imageMap.has(name)){return;}
this._imageMap.set(name,data);}}
exports.LocalColorSpaceCache=LocalColorSpaceCache;class LocalFunctionCache extends BaseLocalCache{constructor(options){super({onlyRefs:true});}
set(){let name=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;let ref=arguments.length>1?arguments[1]:undefined;let data=arguments.length>2?arguments[2]:undefined;if(!ref){throw new Error('LocalFunctionCache.set - expected "ref" argument.');}
if(this._imageCache.has(ref)){return;}
this._imageCache.put(ref,data);}}
exports.LocalFunctionCache=LocalFunctionCache;class LocalGStateCache extends BaseLocalCache{set(name){let ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;let data=arguments.length>2?arguments[2]:undefined;if(typeof name!=="string"){throw new Error('LocalGStateCache.set - expected "name" argument.');}
if(ref){if(this._imageCache.has(ref)){return;}
this._nameRefMap.set(name,ref);this._imageCache.put(ref,data);return;}
if(this._imageMap.has(name)){return;}
this._imageMap.set(name,data);}}
exports.LocalGStateCache=LocalGStateCache;class LocalTilingPatternCache extends BaseLocalCache{constructor(options){super({onlyRefs:true});}
set(){let name=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;let ref=arguments.length>1?arguments[1]:undefined;let data=arguments.length>2?arguments[2]:undefined;if(!ref){throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');}
if(this._imageCache.has(ref)){return;}
this._imageCache.put(ref,data);}}
exports.LocalTilingPatternCache=LocalTilingPatternCache;class GlobalImageCache{static get NUM_PAGES_THRESHOLD(){return(0,_util.shadow)(this,"NUM_PAGES_THRESHOLD",2);}
static get MIN_IMAGES_TO_CACHE(){return(0,_util.shadow)(this,"MIN_IMAGES_TO_CACHE",10);}
static get MAX_BYTE_SIZE(){return(0,_util.shadow)(this,"MAX_BYTE_SIZE",40e6);}
constructor(){this._refCache=new _primitives.RefSetCache();this._imageCache=new _primitives.RefSetCache();}
get _byteSize(){let byteSize=0;for(const imageData of this._imageCache){byteSize+=imageData.byteSize;}
return byteSize;}
get _cacheLimitReached(){if(this._imageCache.size<GlobalImageCache.MIN_IMAGES_TO_CACHE){return false;}
if(this._byteSize<GlobalImageCache.MAX_BYTE_SIZE){return false;}
return true;}
shouldCache(ref,pageIndex){const pageIndexSet=this._refCache.get(ref);const numPages=pageIndexSet?pageIndexSet.size+(pageIndexSet.has(pageIndex)?0:1):1;if(numPages<GlobalImageCache.NUM_PAGES_THRESHOLD){return false;}
if(!this._imageCache.has(ref)&&this._cacheLimitReached){return false;}
return true;}
addPageIndex(ref,pageIndex){let pageIndexSet=this._refCache.get(ref);if(!pageIndexSet){pageIndexSet=new Set();this._refCache.put(ref,pageIndexSet);}
pageIndexSet.add(pageIndex);}
addByteSize(ref,byteSize){const imageData=this._imageCache.get(ref);if(!imageData){return;}
if(imageData.byteSize){return;}
imageData.byteSize=byteSize;}
getData(ref,pageIndex){const pageIndexSet=this._refCache.get(ref);if(!pageIndexSet){return null;}
if(pageIndexSet.size<GlobalImageCache.NUM_PAGES_THRESHOLD){return null;}
const imageData=this._imageCache.get(ref);if(!imageData){return null;}
pageIndexSet.add(pageIndex);return imageData;}
setData(ref,data){if(!this._refCache.has(ref)){throw new Error('GlobalImageCache.setData - expected "addPageIndex" to have been called.');}
if(this._imageCache.has(ref)){return;}
if(this._cacheLimitReached){(0,_util.warn)("GlobalImageCache.setData - cache limit reached.");return;}
this._imageCache.put(ref,data);}
clear(){let onlyData=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(!onlyData){this._refCache.clear();}
this._imageCache.clear();}}
exports.GlobalImageCache=GlobalImageCache;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.bidi=bidi;var _util=__w_pdfjs_require__(2);const baseTypes=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"];const arabicTypes=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(i){return(i&1)!==0;}
function isEven(i){return(i&1)===0;}
function findUnequal(arr,start,value){let j,jj;for(j=start,jj=arr.length;j<jj;++j){if(arr[j]!==value){return j;}}
return j;}
function setValues(arr,start,end,value){for(let j=start;j<end;++j){arr[j]=value;}}
function reverseValues(arr,start,end){for(let i=start,j=end-1;i<j;++i,--j){const temp=arr[i];arr[i]=arr[j];arr[j]=temp;}}
function createBidiText(str,isLTR){let vertical=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;let dir="ltr";if(vertical){dir="ttb";}else if(!isLTR){dir="rtl";}
return{str,dir};}
const chars=[];const types=[];function bidi(str){let startLevel=arguments.length>1&&arguments[1]!==undefined?arguments[1]:-1;let vertical=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;let isLTR=true;const strLength=str.length;if(strLength===0||vertical){return createBidiText(str,isLTR,vertical);}
chars.length=strLength;types.length=strLength;let numBidi=0;let i,ii;for(i=0;i<strLength;++i){chars[i]=str.charAt(i);const charCode=str.charCodeAt(i);let charType="L";if(charCode<=0x00ff){charType=baseTypes[charCode];}else if(0x0590<=charCode&&charCode<=0x05f4){charType="R";}else if(0x0600<=charCode&&charCode<=0x06ff){charType=arabicTypes[charCode&0xff];if(!charType){(0,_util.warn)("Bidi: invalid Unicode character "+charCode.toString(16));}}else if(0x0700<=charCode&&charCode<=0x08ac){charType="AL";}
if(charType==="R"||charType==="AL"||charType==="AN"){numBidi++;}
types[i]=charType;}
if(numBidi===0){isLTR=true;return createBidiText(str,isLTR);}
if(startLevel===-1){if(numBidi/strLength<0.3&&strLength>4){isLTR=true;startLevel=0;}else{isLTR=false;startLevel=1;}}
const levels=[];for(i=0;i<strLength;++i){levels[i]=startLevel;}
const e=isOdd(startLevel)?"R":"L";const sor=e;const eor=sor;let lastType=sor;for(i=0;i<strLength;++i){if(types[i]==="NSM"){types[i]=lastType;}else{lastType=types[i];}}
lastType=sor;let t;for(i=0;i<strLength;++i){t=types[i];if(t==="EN"){types[i]=lastType==="AL"?"AN":"EN";}else if(t==="R"||t==="L"||t==="AL"){lastType=t;}}
for(i=0;i<strLength;++i){t=types[i];if(t==="AL"){types[i]="R";}}
for(i=1;i<strLength-1;++i){if(types[i]==="ES"&&types[i-1]==="EN"&&types[i+1]==="EN"){types[i]="EN";}
if(types[i]==="CS"&&(types[i-1]==="EN"||types[i-1]==="AN")&&types[i+1]===types[i-1]){types[i]=types[i-1];}}
for(i=0;i<strLength;++i){if(types[i]==="EN"){for(let j=i-1;j>=0;--j){if(types[j]!=="ET"){break;}
types[j]="EN";}
for(let j=i+1;j<strLength;++j){if(types[j]!=="ET"){break;}
types[j]="EN";}}}
for(i=0;i<strLength;++i){t=types[i];if(t==="WS"||t==="ES"||t==="ET"||t==="CS"){types[i]="ON";}}
lastType=sor;for(i=0;i<strLength;++i){t=types[i];if(t==="EN"){types[i]=lastType==="L"?"L":"EN";}else if(t==="R"||t==="L"){lastType=t;}}
for(i=0;i<strLength;++i){if(types[i]==="ON"){const end=findUnequal(types,i+1,"ON");let before=sor;if(i>0){before=types[i-1];}
let after=eor;if(end+1<strLength){after=types[end+1];}
if(before!=="L"){before="R";}
if(after!=="L"){after="R";}
if(before===after){setValues(types,i,end,before);}
i=end-1;}}
for(i=0;i<strLength;++i){if(types[i]==="ON"){types[i]=e;}}
for(i=0;i<strLength;++i){t=types[i];if(isEven(levels[i])){if(t==="R"){levels[i]+=1;}else if(t==="AN"||t==="EN"){levels[i]+=2;}}else{if(t==="L"||t==="AN"||t==="EN"){levels[i]+=1;}}}
let highestLevel=-1;let lowestOddLevel=99;let level;for(i=0,ii=levels.length;i<ii;++i){level=levels[i];if(highestLevel<level){highestLevel=level;}
if(lowestOddLevel>level&&isOdd(level)){lowestOddLevel=level;}}
for(level=highestLevel;level>=lowestOddLevel;--level){let start=-1;for(i=0,ii=levels.length;i<ii;++i){if(levels[i]<level){if(start>=0){reverseValues(chars,start,i);start=-1;}}else if(start<0){start=i;}}
if(start>=0){reverseValues(chars,start,levels.length);}}
for(i=0,ii=chars.length;i<ii;++i){const ch=chars[i];if(ch==="<"||ch===">"){chars[i]="";}}
return createBidiText(chars.join(""),isLTR);}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.MurmurHash3_64=void 0;var _util=__w_pdfjs_require__(2);const SEED=0xc3d2e1f0;const MASK_HIGH=0xffff0000;const MASK_LOW=0xffff;class MurmurHash3_64{constructor(seed){this.h1=seed?seed&0xffffffff:SEED;this.h2=seed?seed&0xffffffff:SEED;}
update(input){let data,length;if(typeof input==="string"){data=new Uint8Array(input.length*2);length=0;for(let i=0,ii=input.length;i<ii;i++){const code=input.charCodeAt(i);if(code<=0xff){data[length++]=code;}else{data[length++]=code>>>8;data[length++]=code&0xff;}}}else if((0,_util.isArrayBuffer)(input)){data=input.slice();length=data.byteLength;}else{throw new Error("Wrong data format in MurmurHash3_64_update. "+"Input must be a string or array.");}
const blockCounts=length>>2;const tailLength=length-blockCounts*4;const dataUint32=new Uint32Array(data.buffer,0,blockCounts);let k1=0,k2=0;let h1=this.h1,h2=this.h2;const C1=0xcc9e2d51,C2=0x1b873593;const C1_LOW=C1&MASK_LOW,C2_LOW=C2&MASK_LOW;for(let i=0;i<blockCounts;i++){if(i&1){k1=dataUint32[i];k1=k1*C1&MASK_HIGH|k1*C1_LOW&MASK_LOW;k1=k1<<15|k1>>>17;k1=k1*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW;h1^=k1;h1=h1<<13|h1>>>19;h1=h1*5+0xe6546b64;}else{k2=dataUint32[i];k2=k2*C1&MASK_HIGH|k2*C1_LOW&MASK_LOW;k2=k2<<15|k2>>>17;k2=k2*C2&MASK_HIGH|k2*C2_LOW&MASK_LOW;h2^=k2;h2=h2<<13|h2>>>19;h2=h2*5+0xe6546b64;}}
k1=0;switch(tailLength){case 3:k1^=data[blockCounts*4+2]<<16;case 2:k1^=data[blockCounts*4+1]<<8;case 1:k1^=data[blockCounts*4];k1=k1*C1&MASK_HIGH|k1*C1_LOW&MASK_LOW;k1=k1<<15|k1>>>17;k1=k1*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW;if(blockCounts&1){h1^=k1;}else{h2^=k1;}}
this.h1=h1;this.h2=h2;}
hexdigest(){let h1=this.h1,h2=this.h2;h1^=h2>>>1;h1=h1*0xed558ccd&MASK_HIGH|h1*0x8ccd&MASK_LOW;h2=h2*0xff51afd7&MASK_HIGH|((h2<<16|h1>>>16)*0xafd7ed55&MASK_HIGH)>>>16;h1^=h2>>>1;h1=h1*0x1a85ec53&MASK_HIGH|h1*0xec53&MASK_LOW;h2=h2*0xc4ceb9fe&MASK_HIGH|((h2<<16|h1>>>16)*0xb9fe1a85&MASK_HIGH)>>>16;h1^=h2>>>1;const hex1=(h1>>>0).toString(16),hex2=(h2>>>0).toString(16);return hex1.padStart(8,"0")+hex2.padStart(8,"0");}}
exports.MurmurHash3_64=MurmurHash3_64;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.OperatorList=void 0;var _util=__w_pdfjs_require__(2);function addState(parentState,pattern,checkFn,iterateFn,processFn){let state=parentState;for(let i=0,ii=pattern.length-1;i<ii;i++){const item=pattern[i];state=state[item]||(state[item]=[]);}
state[pattern.at(-1)]={checkFn,iterateFn,processFn};}
const InitialState=[];addState(InitialState,[_util.OPS.save,_util.OPS.transform,_util.OPS.paintInlineImageXObject,_util.OPS.restore],null,function iterateInlineImageGroup(context,i){const fnArray=context.fnArray;const iFirstSave=context.iCurr-3;const pos=(i-iFirstSave)%4;switch(pos){case 0:return fnArray[i]===_util.OPS.save;case 1:return fnArray[i]===_util.OPS.transform;case 2:return fnArray[i]===_util.OPS.paintInlineImageXObject;case 3:return fnArray[i]===_util.OPS.restore;}
throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);},function foundInlineImageGroup(context,i){const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK=10;const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK=200;const MAX_WIDTH=1000;const IMAGE_PADDING=1;const fnArray=context.fnArray,argsArray=context.argsArray;const curr=context.iCurr;const iFirstSave=curr-3;const iFirstTransform=curr-2;const iFirstPIIXO=curr-1;const count=Math.min(Math.floor((i-iFirstSave)/4),MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);if(count<MIN_IMAGES_IN_INLINE_IMAGES_BLOCK){return i-(i-iFirstSave)%4;}
let maxX=0;const map=[];let maxLineHeight=0;let currentX=IMAGE_PADDING,currentY=IMAGE_PADDING;for(let q=0;q<count;q++){const transform=argsArray[iFirstTransform+(q<<2)];const img=argsArray[iFirstPIIXO+(q<<2)][0];if(currentX+img.width>MAX_WIDTH){maxX=Math.max(maxX,currentX);currentY+=maxLineHeight+2*IMAGE_PADDING;currentX=0;maxLineHeight=0;}
map.push({transform,x:currentX,y:currentY,w:img.width,h:img.height});currentX+=img.width+2*IMAGE_PADDING;maxLineHeight=Math.max(maxLineHeight,img.height);}
const imgWidth=Math.max(maxX,currentX)+IMAGE_PADDING;const imgHeight=currentY+maxLineHeight+IMAGE_PADDING;const imgData=new Uint8Array(imgWidth*imgHeight*4);const imgRowSize=imgWidth<<2;for(let q=0;q<count;q++){const data=argsArray[iFirstPIIXO+(q<<2)][0].data;const rowSize=map[q].w<<2;let dataOffset=0;let offset=map[q].x+map[q].y*imgWidth<<2;imgData.set(data.subarray(0,rowSize),offset-imgRowSize);for(let k=0,kk=map[q].h;k<kk;k++){imgData.set(data.subarray(dataOffset,dataOffset+rowSize),offset);dataOffset+=rowSize;offset+=imgRowSize;}
imgData.set(data.subarray(dataOffset-rowSize,dataOffset),offset);while(offset>=0){data[offset-4]=data[offset];data[offset-3]=data[offset+1];data[offset-2]=data[offset+2];data[offset-1]=data[offset+3];data[offset+rowSize]=data[offset+rowSize-4];data[offset+rowSize+1]=data[offset+rowSize-3];data[offset+rowSize+2]=data[offset+rowSize-2];data[offset+rowSize+3]=data[offset+rowSize-1];offset-=imgRowSize;}}
fnArray.splice(iFirstSave,count*4,_util.OPS.paintInlineImageXObjectGroup);argsArray.splice(iFirstSave,count*4,[{width:imgWidth,height:imgHeight,kind:_util.ImageKind.RGBA_32BPP,data:imgData},map]);return iFirstSave+1;});addState(InitialState,[_util.OPS.save,_util.OPS.transform,_util.OPS.paintImageMaskXObject,_util.OPS.restore],null,function iterateImageMaskGroup(context,i){const fnArray=context.fnArray;const iFirstSave=context.iCurr-3;const pos=(i-iFirstSave)%4;switch(pos){case 0:return fnArray[i]===_util.OPS.save;case 1:return fnArray[i]===_util.OPS.transform;case 2:return fnArray[i]===_util.OPS.paintImageMaskXObject;case 3:return fnArray[i]===_util.OPS.restore;}
throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);},function foundImageMaskGroup(context,i){const MIN_IMAGES_IN_MASKS_BLOCK=10;const MAX_IMAGES_IN_MASKS_BLOCK=100;const MAX_SAME_IMAGES_IN_MASKS_BLOCK=1000;const fnArray=context.fnArray,argsArray=context.argsArray;const curr=context.iCurr;const iFirstSave=curr-3;const iFirstTransform=curr-2;const iFirstPIMXO=curr-1;let count=Math.floor((i-iFirstSave)/4);if(count<MIN_IMAGES_IN_MASKS_BLOCK){return i-(i-iFirstSave)%4;}
let isSameImage=false;let iTransform,transformArgs;const firstPIMXOArg0=argsArray[iFirstPIMXO][0];const firstTransformArg0=argsArray[iFirstTransform][0],firstTransformArg1=argsArray[iFirstTransform][1],firstTransformArg2=argsArray[iFirstTransform][2],firstTransformArg3=argsArray[iFirstTransform][3];if(firstTransformArg1===firstTransformArg2){isSameImage=true;iTransform=iFirstTransform+4;let iPIMXO=iFirstPIMXO+4;for(let q=1;q<count;q++,iTransform+=4,iPIMXO+=4){transformArgs=argsArray[iTransform];if(argsArray[iPIMXO][0]!==firstPIMXOArg0||transformArgs[0]!==firstTransformArg0||transformArgs[1]!==firstTransformArg1||transformArgs[2]!==firstTransformArg2||transformArgs[3]!==firstTransformArg3){if(q<MIN_IMAGES_IN_MASKS_BLOCK){isSameImage=false;}else{count=q;}
break;}}}
if(isSameImage){count=Math.min(count,MAX_SAME_IMAGES_IN_MASKS_BLOCK);const positions=new Float32Array(count*2);iTransform=iFirstTransform;for(let q=0;q<count;q++,iTransform+=4){transformArgs=argsArray[iTransform];positions[q<<1]=transformArgs[4];positions[(q<<1)+1]=transformArgs[5];}
fnArray.splice(iFirstSave,count*4,_util.OPS.paintImageMaskXObjectRepeat);argsArray.splice(iFirstSave,count*4,[firstPIMXOArg0,firstTransformArg0,firstTransformArg1,firstTransformArg2,firstTransformArg3,positions]);}else{count=Math.min(count,MAX_IMAGES_IN_MASKS_BLOCK);const images=[];for(let q=0;q<count;q++){transformArgs=argsArray[iFirstTransform+(q<<2)];const maskParams=argsArray[iFirstPIMXO+(q<<2)][0];images.push({data:maskParams.data,width:maskParams.width,height:maskParams.height,interpolate:maskParams.interpolate,count:maskParams.count,transform:transformArgs});}
fnArray.splice(iFirstSave,count*4,_util.OPS.paintImageMaskXObjectGroup);argsArray.splice(iFirstSave,count*4,[images]);}
return iFirstSave+1;});addState(InitialState,[_util.OPS.save,_util.OPS.transform,_util.OPS.paintImageXObject,_util.OPS.restore],function(context){const argsArray=context.argsArray;const iFirstTransform=context.iCurr-2;return argsArray[iFirstTransform][1]===0&&argsArray[iFirstTransform][2]===0;},function iterateImageGroup(context,i){const fnArray=context.fnArray,argsArray=context.argsArray;const iFirstSave=context.iCurr-3;const pos=(i-iFirstSave)%4;switch(pos){case 0:return fnArray[i]===_util.OPS.save;case 1:if(fnArray[i]!==_util.OPS.transform){return false;}
const iFirstTransform=context.iCurr-2;const firstTransformArg0=argsArray[iFirstTransform][0];const firstTransformArg3=argsArray[iFirstTransform][3];if(argsArray[i][0]!==firstTransformArg0||argsArray[i][1]!==0||argsArray[i][2]!==0||argsArray[i][3]!==firstTransformArg3){return false;}
return true;case 2:if(fnArray[i]!==_util.OPS.paintImageXObject){return false;}
const iFirstPIXO=context.iCurr-1;const firstPIXOArg0=argsArray[iFirstPIXO][0];if(argsArray[i][0]!==firstPIXOArg0){return false;}
return true;case 3:return fnArray[i]===_util.OPS.restore;}
throw new Error(`iterateImageGroup - invalid pos: ${pos}`);},function(context,i){const MIN_IMAGES_IN_BLOCK=3;const MAX_IMAGES_IN_BLOCK=1000;const fnArray=context.fnArray,argsArray=context.argsArray;const curr=context.iCurr;const iFirstSave=curr-3;const iFirstTransform=curr-2;const iFirstPIXO=curr-1;const firstPIXOArg0=argsArray[iFirstPIXO][0];const firstTransformArg0=argsArray[iFirstTransform][0];const firstTransformArg3=argsArray[iFirstTransform][3];const count=Math.min(Math.floor((i-iFirstSave)/4),MAX_IMAGES_IN_BLOCK);if(count<MIN_IMAGES_IN_BLOCK){return i-(i-iFirstSave)%4;}
const positions=new Float32Array(count*2);let iTransform=iFirstTransform;for(let q=0;q<count;q++,iTransform+=4){const transformArgs=argsArray[iTransform];positions[q<<1]=transformArgs[4];positions[(q<<1)+1]=transformArgs[5];}
const args=[firstPIXOArg0,firstTransformArg0,firstTransformArg3,positions];fnArray.splice(iFirstSave,count*4,_util.OPS.paintImageXObjectRepeat);argsArray.splice(iFirstSave,count*4,args);return iFirstSave+1;});addState(InitialState,[_util.OPS.beginText,_util.OPS.setFont,_util.OPS.setTextMatrix,_util.OPS.showText,_util.OPS.endText],null,function iterateShowTextGroup(context,i){const fnArray=context.fnArray,argsArray=context.argsArray;const iFirstSave=context.iCurr-4;const pos=(i-iFirstSave)%5;switch(pos){case 0:return fnArray[i]===_util.OPS.beginText;case 1:return fnArray[i]===_util.OPS.setFont;case 2:return fnArray[i]===_util.OPS.setTextMatrix;case 3:if(fnArray[i]!==_util.OPS.showText){return false;}
const iFirstSetFont=context.iCurr-3;const firstSetFontArg0=argsArray[iFirstSetFont][0];const firstSetFontArg1=argsArray[iFirstSetFont][1];if(argsArray[i][0]!==firstSetFontArg0||argsArray[i][1]!==firstSetFontArg1){return false;}
return true;case 4:return fnArray[i]===_util.OPS.endText;}
throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);},function(context,i){const MIN_CHARS_IN_BLOCK=3;const MAX_CHARS_IN_BLOCK=1000;const fnArray=context.fnArray,argsArray=context.argsArray;const curr=context.iCurr;const iFirstBeginText=curr-4;const iFirstSetFont=curr-3;const iFirstSetTextMatrix=curr-2;const iFirstShowText=curr-1;const iFirstEndText=curr;const firstSetFontArg0=argsArray[iFirstSetFont][0];const firstSetFontArg1=argsArray[iFirstSetFont][1];let count=Math.min(Math.floor((i-iFirstBeginText)/5),MAX_CHARS_IN_BLOCK);if(count<MIN_CHARS_IN_BLOCK){return i-(i-iFirstBeginText)%5;}
let iFirst=iFirstBeginText;if(iFirstBeginText>=4&&fnArray[iFirstBeginText-4]===fnArray[iFirstSetFont]&&fnArray[iFirstBeginText-3]===fnArray[iFirstSetTextMatrix]&&fnArray[iFirstBeginText-2]===fnArray[iFirstShowText]&&fnArray[iFirstBeginText-1]===fnArray[iFirstEndText]&&argsArray[iFirstBeginText-4][0]===firstSetFontArg0&&argsArray[iFirstBeginText-4][1]===firstSetFontArg1){count++;iFirst-=5;}
let iEndText=iFirst+4;for(let q=1;q<count;q++){fnArray.splice(iEndText,3);argsArray.splice(iEndText,3);iEndText+=2;}
return iEndText+1;});class NullOptimizer{constructor(queue){this.queue=queue;}
_optimize(){}
push(fn,args){this.queue.fnArray.push(fn);this.queue.argsArray.push(args);this._optimize();}
flush(){}
reset(){}}
class QueueOptimizer extends NullOptimizer{constructor(queue){super(queue);this.state=null;this.context={iCurr:0,fnArray:queue.fnArray,argsArray:queue.argsArray};this.match=null;this.lastProcessed=0;}
_optimize(){const fnArray=this.queue.fnArray;let i=this.lastProcessed,ii=fnArray.length;let state=this.state;let match=this.match;if(!state&&!match&&i+1===ii&&!InitialState[fnArray[i]]){this.lastProcessed=ii;return;}
const context=this.context;while(i<ii){if(match){const iterate=(0,match.iterateFn)(context,i);if(iterate){i++;continue;}
i=(0,match.processFn)(context,i+1);ii=fnArray.length;match=null;state=null;if(i>=ii){break;}}
state=(state||InitialState)[fnArray[i]];if(!state||Array.isArray(state)){i++;continue;}
context.iCurr=i;i++;if(state.checkFn&&!(0,state.checkFn)(context)){state=null;continue;}
match=state;state=null;}
this.state=state;this.match=match;this.lastProcessed=i;}
flush(){while(this.match){const length=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,length);this.match=null;this.state=null;this._optimize();}}
reset(){this.state=null;this.match=null;this.lastProcessed=0;}}
class OperatorList{static get CHUNK_SIZE(){return(0,_util.shadow)(this,"CHUNK_SIZE",1000);}
static get CHUNK_SIZE_ABOUT(){return(0,_util.shadow)(this,"CHUNK_SIZE_ABOUT",this.CHUNK_SIZE-5);}
constructor(){let intent=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;let streamSink=arguments.length>1?arguments[1]:undefined;this._streamSink=streamSink;this.fnArray=[];this.argsArray=[];if(streamSink&&!(intent&_util.RenderingIntentFlag.OPLIST)){this.optimizer=new QueueOptimizer(this);}else{this.optimizer=new NullOptimizer(this);}
this.dependencies=new Set();this._totalLength=0;this.weight=0;this._resolved=streamSink?null:Promise.resolve();}
get length(){return this.argsArray.length;}
get ready(){return this._resolved||this._streamSink.ready;}
get totalLength(){return this._totalLength+this.length;}
addOp(fn,args){this.optimizer.push(fn,args);this.weight++;if(this._streamSink){if(this.weight>=OperatorList.CHUNK_SIZE){this.flush();}else if(this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(fn===_util.OPS.restore||fn===_util.OPS.endText)){this.flush();}}}
addImageOps(fn,args,optionalContent){if(optionalContent!==undefined){this.addOp(_util.OPS.beginMarkedContentProps,["OC",optionalContent]);}
this.addOp(fn,args);if(optionalContent!==undefined){this.addOp(_util.OPS.endMarkedContent,[]);}}
addDependency(dependency){if(this.dependencies.has(dependency)){return;}
this.dependencies.add(dependency);this.addOp(_util.OPS.dependency,[dependency]);}
addDependencies(dependencies){for(const dependency of dependencies){this.addDependency(dependency);}}
addOpList(opList){if(!(opList instanceof OperatorList)){(0,_util.warn)('addOpList - ignoring invalid "opList" parameter.');return;}
for(const dependency of opList.dependencies){this.dependencies.add(dependency);}
for(let i=0,ii=opList.length;i<ii;i++){this.addOp(opList.fnArray[i],opList.argsArray[i]);}}
getIR(){return{fnArray:this.fnArray,argsArray:this.argsArray,length:this.length};}
get _transfers(){const transfers=[];const{fnArray,argsArray,length}=this;for(let i=0;i<length;i++){switch(fnArray[i]){case _util.OPS.paintInlineImageXObject:case _util.OPS.paintInlineImageXObjectGroup:case _util.OPS.paintImageMaskXObject:const arg=argsArray[i][0];if(!arg.cached&&arg.data&&arg.data.buffer instanceof ArrayBuffer){transfers.push(arg.data.buffer);}
break;}}
return transfers;}
flush(){let lastChunk=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;let separateAnnots=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;this.optimizer.flush();const length=this.length;this._totalLength+=length;this._streamSink.enqueue({fnArray:this.fnArray,argsArray:this.argsArray,lastChunk,separateAnnots,length},1,this._transfers);this.dependencies.clear();this.fnArray.length=0;this.argsArray.length=0;this.weight=0;this.optimizer.reset();}}
exports.OperatorList=OperatorList;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PDFImage=void 0;var _util=__w_pdfjs_require__(2);var _image_utils=__w_pdfjs_require__(189);var _base_stream=__w_pdfjs_require__(132);var _colorspace=__w_pdfjs_require__(139);var _decode_stream=__w_pdfjs_require__(144);var _jpeg_stream=__w_pdfjs_require__(152);var _jpx=__w_pdfjs_require__(155);var _primitives=__w_pdfjs_require__(130);function decodeAndClamp(value,addend,coefficient,max){value=addend+value*coefficient;if(value<0){value=0;}else if(value>max){value=max;}
return value;}
function resizeImageMask(src,bpc,w1,h1,w2,h2){const length=w2*h2;let dest;if(bpc<=8){dest=new Uint8Array(length);}else if(bpc<=16){dest=new Uint16Array(length);}else{dest=new Uint32Array(length);}
const xRatio=w1/w2;const yRatio=h1/h2;let i,j,py,newIndex=0,oldIndex;const xScaled=new Uint16Array(w2);const w1Scanline=w1;for(i=0;i<w2;i++){xScaled[i]=Math.floor(i*xRatio);}
for(i=0;i<h2;i++){py=Math.floor(i*yRatio)*w1Scanline;for(j=0;j<w2;j++){oldIndex=py+xScaled[j];dest[newIndex++]=src[oldIndex];}}
return dest;}
class PDFImage{constructor(_ref){let{xref,res,image,isInline=false,smask=null,mask=null,isMask=false,pdfFunctionFactory,localColorSpaceCache}=_ref;this.image=image;const dict=image.dict;const filter=dict.get("F","Filter");let filterName;if(filter instanceof _primitives.Name){filterName=filter.name;}else if(Array.isArray(filter)){const filterZero=xref.fetchIfRef(filter[0]);if(filterZero instanceof _primitives.Name){filterName=filterZero.name;}}
switch(filterName){case"JPXDecode":const jpxImage=new _jpx.JpxImage();jpxImage.parseImageProperties(image.stream);image.stream.reset();image.width=jpxImage.width;image.height=jpxImage.height;image.bitsPerComponent=jpxImage.bitsPerComponent;image.numComps=jpxImage.componentsCount;break;case"JBIG2Decode":image.bitsPerComponent=1;image.numComps=1;break;}
let width=dict.get("W","Width");let height=dict.get("H","Height");if(Number.isInteger(image.width)&&image.width>0&&Number.isInteger(image.height)&&image.height>0&&(image.width!==width||image.height!==height)){(0,_util.warn)("PDFImage - using the Width/Height of the image data, "+"rather than the image dictionary.");width=image.width;height=image.height;}
if(width<1||height<1){throw new _util.FormatError(`Invalid image width: ${width} or height: ${height}`);}
this.width=width;this.height=height;this.interpolate=dict.get("I","Interpolate");this.imageMask=dict.get("IM","ImageMask")||false;this.matte=dict.get("Matte")||false;let bitsPerComponent=image.bitsPerComponent;if(!bitsPerComponent){bitsPerComponent=dict.get("BPC","BitsPerComponent");if(!bitsPerComponent){if(this.imageMask){bitsPerComponent=1;}else{throw new _util.FormatError(`Bits per component missing in image: ${this.imageMask}`);}}}
this.bpc=bitsPerComponent;if(!this.imageMask){let colorSpace=dict.getRaw("CS")||dict.getRaw("ColorSpace");if(!colorSpace){(0,_util.info)("JPX images (which do not require color spaces)");switch(image.numComps){case 1:colorSpace=_primitives.Name.get("DeviceGray");break;case 3:colorSpace=_primitives.Name.get("DeviceRGB");break;case 4:colorSpace=_primitives.Name.get("DeviceCMYK");break;default:throw new Error(`JPX images with ${image.numComps} color components not supported.`);}}
this.colorSpace=_colorspace.ColorSpace.parse({cs:colorSpace,xref,resources:isInline?res:null,pdfFunctionFactory,localColorSpaceCache});this.numComps=this.colorSpace.numComps;}
this.decode=dict.getArray("D","Decode");this.needsDecode=false;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,bitsPerComponent)||isMask&&!_colorspace.ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=true;const max=(1<<bitsPerComponent)-1;this.decodeCoefficients=[];this.decodeAddends=[];const isIndexed=this.colorSpace&&this.colorSpace.name==="Indexed";for(let i=0,j=0;i<this.decode.length;i+=2,++j){const dmin=this.decode[i];const dmax=this.decode[i+1];this.decodeCoefficients[j]=isIndexed?(dmax-dmin)/max:dmax-dmin;this.decodeAddends[j]=isIndexed?dmin:max*dmin;}}
if(smask){this.smask=new PDFImage({xref,res,image:smask,isInline,pdfFunctionFactory,localColorSpaceCache});}else if(mask){if(mask instanceof _base_stream.BaseStream){const maskDict=mask.dict,imageMask=maskDict.get("IM","ImageMask");if(!imageMask){(0,_util.warn)("Ignoring /Mask in image without /ImageMask.");}else{this.mask=new PDFImage({xref,res,image:mask,isInline,isMask:true,pdfFunctionFactory,localColorSpaceCache});}}else{this.mask=mask;}}}
static async buildImage(_ref2){let{xref,res,image,isInline=false,pdfFunctionFactory,localColorSpaceCache}=_ref2;const imageData=image;let smaskData=null;let maskData=null;const smask=image.dict.get("SMask");const mask=image.dict.get("Mask");if(smask){if(smask instanceof _base_stream.BaseStream){smaskData=smask;}else{(0,_util.warn)("Unsupported /SMask format.");}}else if(mask){if(mask instanceof _base_stream.BaseStream||Array.isArray(mask)){maskData=mask;}else{(0,_util.warn)("Unsupported /Mask format.");}}
return new PDFImage({xref,res,image:imageData,isInline,smask:smaskData,mask:maskData,pdfFunctionFactory,localColorSpaceCache});}
static createRawMask(_ref3){let{imgArray,width,height,imageIsFromDecodeStream,inverseDecode,interpolate}=_ref3;const computedLength=(width+7>>3)*height;const actualLength=imgArray.byteLength;const haveFullData=computedLength===actualLength;let data,i;if(imageIsFromDecodeStream&&(!inverseDecode||haveFullData)){data=imgArray;}else if(!inverseDecode){data=new Uint8Array(imgArray);}else{data=new Uint8Array(computedLength);data.set(imgArray);data.fill(0xff,actualLength);}
if(inverseDecode){for(i=0;i<actualLength;i++){data[i]^=0xff;}}
return{data,width,height,interpolate};}
static createMask(_ref4){let{imgArray,width,height,imageIsFromDecodeStream,inverseDecode,interpolate}=_ref4;const isSingleOpaquePixel=width===1&&height===1&&inverseDecode===(imgArray.length===0||!!(imgArray[0]&128));if(isSingleOpaquePixel){return{isSingleOpaquePixel};}
if(_util.FeatureTest.isOffscreenCanvasSupported){const canvas=new OffscreenCanvas(width,height);const ctx=canvas.getContext("2d");const imgData=ctx.createImageData(width,height);(0,_image_utils.applyMaskImageData)({src:imgArray,dest:imgData.data,width,height,inverseDecode});ctx.putImageData(imgData,0,0);const bitmap=canvas.transferToImageBitmap();return{data:null,width,height,interpolate,bitmap};}
return this.createRawMask({imgArray,width,height,inverseDecode,imageIsFromDecodeStream,interpolate});}
get drawWidth(){return Math.max(this.width,this.smask&&this.smask.width||0,this.mask&&this.mask.width||0);}
get drawHeight(){return Math.max(this.height,this.smask&&this.smask.height||0,this.mask&&this.mask.height||0);}
decodeBuffer(buffer){const bpc=this.bpc;const numComps=this.numComps;const decodeAddends=this.decodeAddends;const decodeCoefficients=this.decodeCoefficients;const max=(1<<bpc)-1;let i,ii;if(bpc===1){for(i=0,ii=buffer.length;i<ii;i++){buffer[i]=+!buffer[i];}
return;}
let index=0;for(i=0,ii=this.width*this.height;i<ii;i++){for(let j=0;j<numComps;j++){buffer[index]=decodeAndClamp(buffer[index],decodeAddends[j],decodeCoefficients[j],max);index++;}}}
getComponents(buffer){const bpc=this.bpc;if(bpc===8){return buffer;}
const width=this.width;const height=this.height;const numComps=this.numComps;const length=width*height*numComps;let bufferPos=0;let output;if(bpc<=8){output=new Uint8Array(length);}else if(bpc<=16){output=new Uint16Array(length);}else{output=new Uint32Array(length);}
const rowComps=width*numComps;const max=(1<<bpc)-1;let i=0,ii,buf;if(bpc===1){let mask,loop1End,loop2End;for(let j=0;j<height;j++){loop1End=i+(rowComps&~7);loop2End=i+rowComps;while(i<loop1End){buf=buffer[bufferPos++];output[i]=buf>>7&1;output[i+1]=buf>>6&1;output[i+2]=buf>>5&1;output[i+3]=buf>>4&1;output[i+4]=buf>>3&1;output[i+5]=buf>>2&1;output[i+6]=buf>>1&1;output[i+7]=buf&1;i+=8;}
if(i<loop2End){buf=buffer[bufferPos++];mask=128;while(i<loop2End){output[i++]=+!!(buf&mask);mask>>=1;}}}}else{let bits=0;buf=0;for(i=0,ii=length;i<ii;++i){if(i%rowComps===0){buf=0;bits=0;}
while(bits<bpc){buf=buf<<8|buffer[bufferPos++];bits+=8;}
const remainingBits=bits-bpc;let value=buf>>remainingBits;if(value<0){value=0;}else if(value>max){value=max;}
output[i]=value;buf&=(1<<remainingBits)-1;bits=remainingBits;}}
return output;}
fillOpacity(rgbaBuf,width,height,actualHeight,image){const smask=this.smask;const mask=this.mask;let alphaBuf,sw,sh,i,ii,j;if(smask){sw=smask.width;sh=smask.height;alphaBuf=new Uint8ClampedArray(sw*sh);smask.fillGrayBuffer(alphaBuf);if(sw!==width||sh!==height){alphaBuf=resizeImageMask(alphaBuf,smask.bpc,sw,sh,width,height);}}else if(mask){if(mask instanceof PDFImage){sw=mask.width;sh=mask.height;alphaBuf=new Uint8ClampedArray(sw*sh);mask.numComps=1;mask.fillGrayBuffer(alphaBuf);for(i=0,ii=sw*sh;i<ii;++i){alphaBuf[i]=255-alphaBuf[i];}
if(sw!==width||sh!==height){alphaBuf=resizeImageMask(alphaBuf,mask.bpc,sw,sh,width,height);}}else if(Array.isArray(mask)){alphaBuf=new Uint8ClampedArray(width*height);const numComps=this.numComps;for(i=0,ii=width*height;i<ii;++i){let opacity=0;const imageOffset=i*numComps;for(j=0;j<numComps;++j){const color=image[imageOffset+j];const maskOffset=j*2;if(color<mask[maskOffset]||color>mask[maskOffset+1]){opacity=255;break;}}
alphaBuf[i]=opacity;}}else{throw new _util.FormatError("Unknown mask format.");}}
if(alphaBuf){for(i=0,j=3,ii=width*actualHeight;i<ii;++i,j+=4){rgbaBuf[j]=alphaBuf[i];}}else{for(i=0,j=3,ii=width*actualHeight;i<ii;++i,j+=4){rgbaBuf[j]=255;}}}
undoPreblend(buffer,width,height){const matte=this.smask&&this.smask.matte;if(!matte){return;}
const matteRgb=this.colorSpace.getRgb(matte,0);const matteR=matteRgb[0];const matteG=matteRgb[1];const matteB=matteRgb[2];const length=width*height*4;for(let i=0;i<length;i+=4){const alpha=buffer[i+3];if(alpha===0){buffer[i]=255;buffer[i+1]=255;buffer[i+2]=255;continue;}
const k=255/alpha;buffer[i]=(buffer[i]-matteR)*k+matteR;buffer[i+1]=(buffer[i+1]-matteG)*k+matteG;buffer[i+2]=(buffer[i+2]-matteB)*k+matteB;}}
createImageData(){let forceRGBA=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;const drawWidth=this.drawWidth;const drawHeight=this.drawHeight;const imgData={width:drawWidth,height:drawHeight,interpolate:this.interpolate,kind:0,data:null};const numComps=this.numComps;const originalWidth=this.width;const originalHeight=this.height;const bpc=this.bpc;const rowBytes=originalWidth*numComps*bpc+7>>3;if(!forceRGBA){let kind;if(this.colorSpace.name==="DeviceGray"&&bpc===1){kind=_util.ImageKind.GRAYSCALE_1BPP;}else if(this.colorSpace.name==="DeviceRGB"&&bpc===8&&!this.needsDecode){kind=_util.ImageKind.RGB_24BPP;}
if(kind&&!this.smask&&!this.mask&&drawWidth===originalWidth&&drawHeight===originalHeight){imgData.kind=kind;imgData.data=this.getImageBytes(originalHeight*rowBytes,{});if(this.needsDecode){(0,_util.assert)(kind===_util.ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");const buffer=imgData.data;for(let i=0,ii=buffer.length;i<ii;i++){buffer[i]^=0xff;}}
return imgData;}
if(this.image instanceof _jpeg_stream.JpegStream&&!this.smask&&!this.mask){let imageLength=originalHeight*rowBytes;switch(this.colorSpace.name){case"DeviceGray":imageLength*=3;case"DeviceRGB":case"DeviceCMYK":imgData.kind=_util.ImageKind.RGB_24BPP;imgData.data=this.getImageBytes(imageLength,{drawWidth,drawHeight,forceRGB:true});return imgData;}}}
const imgArray=this.getImageBytes(originalHeight*rowBytes,{internal:true});const actualHeight=0|imgArray.length/rowBytes*drawHeight/originalHeight;const comps=this.getComponents(imgArray);let alpha01,maybeUndoPreblend;if(!forceRGBA&&!this.smask&&!this.mask){imgData.kind=_util.ImageKind.RGB_24BPP;imgData.data=new Uint8ClampedArray(drawWidth*drawHeight*3);alpha01=0;maybeUndoPreblend=false;}else{imgData.kind=_util.ImageKind.RGBA_32BPP;imgData.data=new Uint8ClampedArray(drawWidth*drawHeight*4);alpha01=1;maybeUndoPreblend=true;this.fillOpacity(imgData.data,drawWidth,drawHeight,actualHeight,comps);}
if(this.needsDecode){this.decodeBuffer(comps);}
this.colorSpace.fillRgb(imgData.data,originalWidth,originalHeight,drawWidth,drawHeight,actualHeight,bpc,comps,alpha01);if(maybeUndoPreblend){this.undoPreblend(imgData.data,drawWidth,actualHeight);}
return imgData;}
fillGrayBuffer(buffer){const numComps=this.numComps;if(numComps!==1){throw new _util.FormatError(`Reading gray scale from a color image: ${numComps}`);}
const width=this.width;const height=this.height;const bpc=this.bpc;const rowBytes=width*numComps*bpc+7>>3;const imgArray=this.getImageBytes(height*rowBytes,{internal:true});const comps=this.getComponents(imgArray);let i,length;if(bpc===1){length=width*height;if(this.needsDecode){for(i=0;i<length;++i){buffer[i]=comps[i]-1&255;}}else{for(i=0;i<length;++i){buffer[i]=-comps[i]&255;}}
return;}
if(this.needsDecode){this.decodeBuffer(comps);}
length=width*height;const scale=255/((1<<bpc)-1);for(i=0;i<length;++i){buffer[i]=scale*comps[i];}}
getImageBytes(length,_ref5){let{drawWidth,drawHeight,forceRGB=false,internal=false}=_ref5;this.image.reset();this.image.drawWidth=drawWidth||this.width;this.image.drawHeight=drawHeight||this.height;this.image.forceRGB=!!forceRGB;const imageBytes=this.image.getBytes(length);if(internal||this.image instanceof _decode_stream.DecodeStream){return imageBytes;}
(0,_util.assert)(imageBytes instanceof Uint8Array,'PDFImage.getImageBytes: Unsupported "imageBytes" type.');return new Uint8Array(imageBytes);}}
exports.PDFImage=PDFImage;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.applyMaskImageData=applyMaskImageData;var _util=__w_pdfjs_require__(2);function applyMaskImageData(_ref){let{src,srcPos=0,dest,destPos=0,width,height,inverseDecode=false}=_ref;const opaque=_util.FeatureTest.isLittleEndian?0xff000000:0x000000ff;const[zeroMapping,oneMapping]=!inverseDecode?[opaque,0]:[0,opaque];const widthInSource=width>>3;const widthRemainder=width&7;const srcLength=src.length;dest=new Uint32Array(dest.buffer);for(let i=0;i<height;i++){for(const max=srcPos+widthInSource;srcPos<max;srcPos++){const elem=srcPos<srcLength?src[srcPos]:255;dest[destPos++]=elem&0b10000000?oneMapping:zeroMapping;dest[destPos++]=elem&0b1000000?oneMapping:zeroMapping;dest[destPos++]=elem&0b100000?oneMapping:zeroMapping;dest[destPos++]=elem&0b10000?oneMapping:zeroMapping;dest[destPos++]=elem&0b1000?oneMapping:zeroMapping;dest[destPos++]=elem&0b100?oneMapping:zeroMapping;dest[destPos++]=elem&0b10?oneMapping:zeroMapping;dest[destPos++]=elem&0b1?oneMapping:zeroMapping;}
if(widthRemainder===0){continue;}
const elem=srcPos<srcLength?src[srcPos++]:255;for(let j=0;j<widthRemainder;j++){dest[destPos++]=elem&1<<7-j?oneMapping:zeroMapping;}}
return{srcPos,destPos};}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.incrementalUpdate=incrementalUpdate;exports.writeDict=writeDict;exports.writeObject=writeObject;var _util=__w_pdfjs_require__(2);var _primitives=__w_pdfjs_require__(130);var _core_utils=__w_pdfjs_require__(131);var _xml_parser=__w_pdfjs_require__(191);var _base_stream=__w_pdfjs_require__(132);var _crypto=__w_pdfjs_require__(192);function writeObject(ref,obj,buffer,transform){buffer.push(`${ref.num} ${ref.gen} obj\n`);if(obj instanceof _primitives.Dict){writeDict(obj,buffer,transform);}else if(obj instanceof _base_stream.BaseStream){writeStream(obj,buffer,transform);}
buffer.push("\nendobj\n");}
function writeDict(dict,buffer,transform){buffer.push("<<");for(const key of dict.getKeys()){buffer.push(` /${(0, _core_utils.escapePDFName)(key)} `);writeValue(dict.getRaw(key),buffer,transform);}
buffer.push(">>");}
function writeStream(stream,buffer,transform){writeDict(stream.dict,buffer,transform);buffer.push(" stream\n");let string=stream.getString();if(transform!==null){string=transform.encryptString(string);}
buffer.push(string,"\nendstream\n");}
function writeArray(array,buffer,transform){buffer.push("[");let first=true;for(const val of array){if(!first){buffer.push(" ");}else{first=false;}
writeValue(val,buffer,transform);}
buffer.push("]");}
function writeValue(value,buffer,transform){if(value instanceof _primitives.Name){buffer.push(`/${(0, _core_utils.escapePDFName)(value.name)}`);}else if(value instanceof _primitives.Ref){buffer.push(`${value.num} ${value.gen} R`);}else if(Array.isArray(value)){writeArray(value,buffer,transform);}else if(typeof value==="string"){if(transform!==null){value=transform.encryptString(value);}
buffer.push(`(${(0, _util.escapeString)(value)})`);}else if(typeof value==="number"){buffer.push((0,_core_utils.numberToString)(value));}else if(typeof value==="boolean"){buffer.push(value.toString());}else if(value instanceof _primitives.Dict){writeDict(value,buffer,transform);}else if(value instanceof _base_stream.BaseStream){writeStream(value,buffer,transform);}else if(value===null){buffer.push("null");}else{(0,_util.warn)(`Unhandled value in writer: ${typeof value}, please file a bug.`);}}
function writeInt(number,size,offset,buffer){for(let i=size+offset-1;i>offset-1;i--){buffer[i]=number&0xff;number>>=8;}
return offset+size;}
function writeString(string,offset,buffer){for(let i=0,len=string.length;i<len;i++){buffer[offset+i]=string.charCodeAt(i)&0xff;}}
function computeMD5(filesize,xrefInfo){const time=Math.floor(Date.now()/1000);const filename=xrefInfo.filename||"";const md5Buffer=[time.toString(),filename,filesize.toString()];let md5BufferLen=md5Buffer.reduce((a,str)=>a+str.length,0);for(const value of Object.values(xrefInfo.info)){md5Buffer.push(value);md5BufferLen+=value.length;}
const array=new Uint8Array(md5BufferLen);let offset=0;for(const str of md5Buffer){writeString(str,offset,array);offset+=str.length;}
return(0,_util.bytesToString)((0,_crypto.calculateMD5)(array));}
function writeXFADataForAcroform(str,newRefs){const xml=new _xml_parser.SimpleXMLParser({hasAttributes:true}).parseFromString(str);for(const{xfa}of newRefs){if(!xfa){continue;}
const{path,value}=xfa;if(!path){continue;}
const node=xml.documentElement.searchNode((0,_core_utils.parseXFAPath)(path),0);if(node){if(Array.isArray(value)){node.childNodes=value.map(val=>new _xml_parser.SimpleDOMNode("value",val));}else{node.childNodes=[new _xml_parser.SimpleDOMNode("#text",value)];}}else{(0,_util.warn)(`Node not found for path: ${path}`);}}
const buffer=[];xml.documentElement.dump(buffer);return buffer.join("");}
function updateXFA(_ref){let{xfaData,xfaDatasetsRef,hasXfaDatasetsEntry,acroFormRef,acroForm,newRefs,xref,xrefInfo}=_ref;if(xref===null){return;}
if(!hasXfaDatasetsEntry){if(!acroFormRef){(0,_util.warn)("XFA - Cannot save it");return;}
const oldXfa=acroForm.get("XFA");const newXfa=oldXfa.slice();newXfa.splice(2,0,"datasets");newXfa.splice(3,0,xfaDatasetsRef);acroForm.set("XFA",newXfa);const encrypt=xref.encrypt;let transform=null;if(encrypt){transform=encrypt.createCipherTransform(acroFormRef.num,acroFormRef.gen);}
const buffer=[`${acroFormRef.num} ${acroFormRef.gen} obj\n`];writeDict(acroForm,buffer,transform);buffer.push("\n");acroForm.set("XFA",oldXfa);newRefs.push({ref:acroFormRef,data:buffer.join("")});}
if(xfaData===null){const datasets=xref.fetchIfRef(xfaDatasetsRef);xfaData=writeXFADataForAcroform(datasets.getString(),newRefs);}
const encrypt=xref.encrypt;if(encrypt){const transform=encrypt.createCipherTransform(xfaDatasetsRef.num,xfaDatasetsRef.gen);xfaData=transform.encryptString(xfaData);}
const data=`${xfaDatasetsRef.num} ${xfaDatasetsRef.gen} obj\n`+`<< /Type /EmbeddedFile /Length ${xfaData.length}>>\nstream\n`+xfaData+"\nendstream\nendobj\n";newRefs.push({ref:xfaDatasetsRef,data});}
function incrementalUpdate(_ref2){let{originalData,xrefInfo,newRefs,xref=null,hasXfa=false,xfaDatasetsRef=null,hasXfaDatasetsEntry=false,acroFormRef=null,acroForm=null,xfaData=null}=_ref2;if(hasXfa){updateXFA({xfaData,xfaDatasetsRef,hasXfaDatasetsEntry,acroFormRef,acroForm,newRefs,xref,xrefInfo});}
const newXref=new _primitives.Dict(null);const refForXrefTable=xrefInfo.newRef;let buffer,baseOffset;const lastByte=originalData.at(-1);if(lastByte===0x0a||lastByte===0x0d){buffer=[];baseOffset=originalData.length;}else{buffer=["\n"];baseOffset=originalData.length+1;}
newXref.set("Size",refForXrefTable.num+1);newXref.set("Prev",xrefInfo.startXRef);newXref.set("Type",_primitives.Name.get("XRef"));if(xrefInfo.rootRef!==null){newXref.set("Root",xrefInfo.rootRef);}
if(xrefInfo.infoRef!==null){newXref.set("Info",xrefInfo.infoRef);}
if(xrefInfo.encryptRef!==null){newXref.set("Encrypt",xrefInfo.encryptRef);}
newRefs.push({ref:refForXrefTable,data:""});newRefs=newRefs.sort((a,b)=>{return a.ref.num-b.ref.num;});const xrefTableData=[[0,1,0xffff]];const indexes=[0,1];let maxOffset=0;for(const{ref,data}of newRefs){maxOffset=Math.max(maxOffset,baseOffset);xrefTableData.push([1,baseOffset,Math.min(ref.gen,0xffff)]);baseOffset+=data.length;indexes.push(ref.num,1);buffer.push(data);}
newXref.set("Index",indexes);if(Array.isArray(xrefInfo.fileIds)&&xrefInfo.fileIds.length>0){const md5=computeMD5(baseOffset,xrefInfo);newXref.set("ID",[xrefInfo.fileIds[0],md5]);}
const offsetSize=Math.ceil(Math.log2(maxOffset)/8);const sizes=[1,offsetSize,2];const structSize=sizes[0]+sizes[1]+sizes[2];const tableLength=structSize*xrefTableData.length;newXref.set("W",sizes);newXref.set("Length",tableLength);buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\n`);writeDict(newXref,buffer,null);buffer.push(" stream\n");const bufferLen=buffer.reduce((a,str)=>a+str.length,0);const footer=`\nendstream\nendobj\nstartxref\n${baseOffset}\n%%EOF\n`;const array=new Uint8Array(originalData.length+bufferLen+tableLength+footer.length);array.set(originalData);let offset=originalData.length;for(const str of buffer){writeString(str,offset,array);offset+=str.length;}
for(const[type,objOffset,gen]of xrefTableData){offset=writeInt(type,sizes[0],offset,array);offset=writeInt(objOffset,sizes[1],offset,array);offset=writeInt(gen,sizes[2],offset,array);}
writeString(footer,offset,array);return array;}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.XMLParserErrorCode=exports.XMLParserBase=exports.SimpleXMLParser=exports.SimpleDOMNode=void 0;var _core_utils=__w_pdfjs_require__(131);const XMLParserErrorCode={NoError:0,EndOfDocument:-1,UnterminatedCdat:-2,UnterminatedXmlDeclaration:-3,UnterminatedDoctypeDeclaration:-4,UnterminatedComment:-5,MalformedElement:-6,OutOfMemory:-7,UnterminatedAttributeValue:-8,UnterminatedElement:-9,ElementNeverBegun:-10};exports.XMLParserErrorCode=XMLParserErrorCode;function isWhitespace(s,index){const ch=s[index];return ch===" "||ch==="\n"||ch==="\r"||ch==="\t";}
function isWhitespaceString(s){for(let i=0,ii=s.length;i<ii;i++){if(!isWhitespace(s,i)){return false;}}
return true;}
class XMLParserBase{_resolveEntities(s){return s.replace(/&([^;]+);/g,(all,entity)=>{if(entity.substring(0,2)==="#x"){return String.fromCodePoint(parseInt(entity.substring(2),16));}else if(entity.substring(0,1)==="#"){return String.fromCodePoint(parseInt(entity.substring(1),10));}
switch(entity){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'";}
return this.onResolveEntity(entity);});}
_parseContent(s,start){const attributes=[];let pos=start;function skipWs(){while(pos<s.length&&isWhitespace(s,pos)){++pos;}}
while(pos<s.length&&!isWhitespace(s,pos)&&s[pos]!==">"&&s[pos]!=="/"){++pos;}
const name=s.substring(start,pos);skipWs();while(pos<s.length&&s[pos]!==">"&&s[pos]!=="/"&&s[pos]!=="?"){skipWs();let attrName="",attrValue="";while(pos<s.length&&!isWhitespace(s,pos)&&s[pos]!=="="){attrName+=s[pos];++pos;}
skipWs();if(s[pos]!=="="){return null;}
++pos;skipWs();const attrEndChar=s[pos];if(attrEndChar!=='"'&&attrEndChar!=="'"){return null;}
const attrEndIndex=s.indexOf(attrEndChar,++pos);if(attrEndIndex<0){return null;}
attrValue=s.substring(pos,attrEndIndex);attributes.push({name:attrName,value:this._resolveEntities(attrValue)});pos=attrEndIndex+1;skipWs();}
return{name,attributes,parsed:pos-start};}
_parseProcessingInstruction(s,start){let pos=start;function skipWs(){while(pos<s.length&&isWhitespace(s,pos)){++pos;}}
while(pos<s.length&&!isWhitespace(s,pos)&&s[pos]!==">"&&s[pos]!=="?"&&s[pos]!=="/"){++pos;}
const name=s.substring(start,pos);skipWs();const attrStart=pos;while(pos<s.length&&(s[pos]!=="?"||s[pos+1]!==">")){++pos;}
const value=s.substring(attrStart,pos);return{name,value,parsed:pos-start};}
parseXml(s){let i=0;while(i<s.length){const ch=s[i];let j=i;if(ch==="<"){++j;const ch2=s[j];let q;switch(ch2){case"/":++j;q=s.indexOf(">",j);if(q<0){this.onError(XMLParserErrorCode.UnterminatedElement);return;}
this.onEndElement(s.substring(j,q));j=q+1;break;case"?":++j;const pi=this._parseProcessingInstruction(s,j);if(s.substring(j+pi.parsed,j+pi.parsed+2)!=="?>"){this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);return;}
this.onPi(pi.name,pi.value);j+=pi.parsed+2;break;case"!":if(s.substring(j+1,j+3)==="--"){q=s.indexOf("-->",j+3);if(q<0){this.onError(XMLParserErrorCode.UnterminatedComment);return;}
this.onComment(s.substring(j+3,q));j=q+3;}else if(s.substring(j+1,j+8)==="[CDATA["){q=s.indexOf("]]>",j+8);if(q<0){this.onError(XMLParserErrorCode.UnterminatedCdat);return;}
this.onCdata(s.substring(j+8,q));j=q+3;}else if(s.substring(j+1,j+8)==="DOCTYPE"){const q2=s.indexOf("[",j+8);let complexDoctype=false;q=s.indexOf(">",j+8);if(q<0){this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);return;}
if(q2>0&&q>q2){q=s.indexOf("]>",j+8);if(q<0){this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);return;}
complexDoctype=true;}
const doctypeContent=s.substring(j+8,q+(complexDoctype?1:0));this.onDoctype(doctypeContent);j=q+(complexDoctype?2:1);}else{this.onError(XMLParserErrorCode.MalformedElement);return;}
break;default:const content=this._parseContent(s,j);if(content===null){this.onError(XMLParserErrorCode.MalformedElement);return;}
let isClosed=false;if(s.substring(j+content.parsed,j+content.parsed+2)==="/>"){isClosed=true;}else if(s.substring(j+content.parsed,j+content.parsed+1)!==">"){this.onError(XMLParserErrorCode.UnterminatedElement);return;}
this.onBeginElement(content.name,content.attributes,isClosed);j+=content.parsed+(isClosed?2:1);break;}}else{while(j<s.length&&s[j]!=="<"){j++;}
const text=s.substring(i,j);this.onText(this._resolveEntities(text));}
i=j;}}
onResolveEntity(name){return`&${name};`;}
onPi(name,value){}
onComment(text){}
onCdata(text){}
onDoctype(doctypeContent){}
onText(text){}
onBeginElement(name,attributes,isEmpty){}
onEndElement(name){}
onError(code){}}
exports.XMLParserBase=XMLParserBase;class SimpleDOMNode{constructor(nodeName,nodeValue){this.nodeName=nodeName;this.nodeValue=nodeValue;Object.defineProperty(this,"parentNode",{value:null,writable:true});}
get firstChild(){return this.childNodes&&this.childNodes[0];}
get nextSibling(){const childNodes=this.parentNode.childNodes;if(!childNodes){return undefined;}
const index=childNodes.indexOf(this);if(index===-1){return undefined;}
return childNodes[index+1];}
get textContent(){if(!this.childNodes){return this.nodeValue||"";}
return this.childNodes.map(function(child){return child.textContent;}).join("");}
get children(){return this.childNodes||[];}
hasChildNodes(){return this.childNodes&&this.childNodes.length>0;}
searchNode(paths,pos){if(pos>=paths.length){return this;}
const component=paths[pos];const stack=[];let node=this;while(true){if(component.name===node.nodeName){if(component.pos===0){const res=node.searchNode(paths,pos+1);if(res!==null){return res;}}else if(stack.length===0){return null;}else{const[parent]=stack.pop();let siblingPos=0;for(const child of parent.childNodes){if(component.name===child.nodeName){if(siblingPos===component.pos){return child.searchNode(paths,pos+1);}
siblingPos++;}}
return node.searchNode(paths,pos+1);}}
if(node.childNodes&&node.childNodes.length!==0){stack.push([node,0]);node=node.childNodes[0];}else if(stack.length===0){return null;}else{while(stack.length!==0){const[parent,currentPos]=stack.pop();const newPos=currentPos+1;if(newPos<parent.childNodes.length){stack.push([parent,newPos]);node=parent.childNodes[newPos];break;}}
if(stack.length===0){return null;}}}}
dump(buffer){if(this.nodeName==="#text"){buffer.push((0,_core_utils.encodeToXmlString)(this.nodeValue));return;}
buffer.push(`<${this.nodeName}`);if(this.attributes){for(const attribute of this.attributes){buffer.push(` ${attribute.name}="${(0, _core_utils.encodeToXmlString)(attribute.value)}"`);}}
if(this.hasChildNodes()){buffer.push(">");for(const child of this.childNodes){child.dump(buffer);}
buffer.push(`</${this.nodeName}>`);}else if(this.nodeValue){buffer.push(`>${(0, _core_utils.encodeToXmlString)(this.nodeValue)}</${this.nodeName}>`);}else{buffer.push("/>");}}}
exports.SimpleDOMNode=SimpleDOMNode;class SimpleXMLParser extends XMLParserBase{constructor(_ref){let{hasAttributes=false,lowerCaseName=false}=_ref;super();this._currentFragment=null;this._stack=null;this._errorCode=XMLParserErrorCode.NoError;this._hasAttributes=hasAttributes;this._lowerCaseName=lowerCaseName;}
parseFromString(data){this._currentFragment=[];this._stack=[];this._errorCode=XMLParserErrorCode.NoError;this.parseXml(data);if(this._errorCode!==XMLParserErrorCode.NoError){return undefined;}
const[documentElement]=this._currentFragment;if(!documentElement){return undefined;}
return{documentElement};}
onText(text){if(isWhitespaceString(text)){return;}
const node=new SimpleDOMNode("#text",text);this._currentFragment.push(node);}
onCdata(text){const node=new SimpleDOMNode("#text",text);this._currentFragment.push(node);}
onBeginElement(name,attributes,isEmpty){if(this._lowerCaseName){name=name.toLowerCase();}
const node=new SimpleDOMNode(name);node.childNodes=[];if(this._hasAttributes){node.attributes=attributes;}
this._currentFragment.push(node);if(isEmpty){return;}
this._stack.push(this._currentFragment);this._currentFragment=node.childNodes;}
onEndElement(name){this._currentFragment=this._stack.pop()||[];const lastElement=this._currentFragment.at(-1);if(!lastElement){return null;}
for(let i=0,ii=lastElement.childNodes.length;i<ii;i++){lastElement.childNodes[i].parentNode=lastElement;}
return lastElement;}
onError(code){this._errorCode=code;}}
exports.SimpleXMLParser=SimpleXMLParser;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.calculateSHA256=exports.calculateMD5=exports.PDF20=exports.PDF17=exports.CipherTransformFactory=exports.ARCFourCipher=exports.AES256Cipher=exports.AES128Cipher=void 0;exports.calculateSHA384=calculateSHA384;exports.calculateSHA512=void 0;var _util=__w_pdfjs_require__(2);var _primitives=__w_pdfjs_require__(130);var _decrypt_stream=__w_pdfjs_require__(193);class ARCFourCipher{constructor(key){this.a=0;this.b=0;const s=new Uint8Array(256);const keyLength=key.length;for(let i=0;i<256;++i){s[i]=i;}
for(let i=0,j=0;i<256;++i){const tmp=s[i];j=j+tmp+key[i%keyLength]&0xff;s[i]=s[j];s[j]=tmp;}
this.s=s;}
encryptBlock(data){let a=this.a,b=this.b;const s=this.s;const n=data.length;const output=new Uint8Array(n);for(let i=0;i<n;++i){a=a+1&0xff;const tmp=s[a];b=b+tmp&0xff;const tmp2=s[b];s[a]=tmp2;s[b]=tmp;output[i]=data[i]^s[tmp+tmp2&0xff];}
this.a=a;this.b=b;return output;}
decryptBlock(data){return this.encryptBlock(data);}
encrypt(data){return this.encryptBlock(data);}}
exports.ARCFourCipher=ARCFourCipher;const calculateMD5=function calculateMD5Closure(){const r=new Uint8Array([7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21]);const k=new Int32Array([-680876936,-389564586,606105819,-1044525330,-176418897,1200080426,-1473231341,-45705983,1770035416,-1958414417,-42063,-1990404162,1804603682,-40341101,-1502002290,1236535329,-165796510,-1069501632,643717713,-373897302,-701558691,38016083,-660478335,-405537848,568446438,-1019803690,-187363961,1163531501,-1444681467,-51403784,1735328473,-1926607734,-378558,-2022574463,1839030562,-35309556,-1530992060,1272893353,-155497632,-1094730640,681279174,-358537222,-722521979,76029189,-640364487,-421815835,530742520,-995338651,-198630844,1126891415,-1416354905,-57434055,1700485571,-1894986606,-1051523,-2054922799,1873313359,-30611744,-1560198380,1309151649,-145523070,-1120210379,718787259,-343485551]);function hash(data,offset,length){let h0=1732584193,h1=-271733879,h2=-1732584194,h3=271733878;const paddedLength=length+72&~63;const padded=new Uint8Array(paddedLength);let i,j;for(i=0;i<length;++i){padded[i]=data[offset++];}
padded[i++]=0x80;const n=paddedLength-8;while(i<n){padded[i++]=0;}
padded[i++]=length<<3&0xff;padded[i++]=length>>5&0xff;padded[i++]=length>>13&0xff;padded[i++]=length>>21&0xff;padded[i++]=length>>>29&0xff;padded[i++]=0;padded[i++]=0;padded[i++]=0;const w=new Int32Array(16);for(i=0;i<paddedLength;){for(j=0;j<16;++j,i+=4){w[j]=padded[i]|padded[i+1]<<8|padded[i+2]<<16|padded[i+3]<<24;}
let a=h0,b=h1,c=h2,d=h3,f,g;for(j=0;j<64;++j){if(j<16){f=b&c|~b&d;g=j;}else if(j<32){f=d&b|~d&c;g=5*j+1&15;}else if(j<48){f=b^c^d;g=3*j+5&15;}else{f=c^(b|~d);g=7*j&15;}
const tmp=d,rotateArg=a+f+k[j]+w[g]|0,rotate=r[j];d=c;c=b;b=b+(rotateArg<<rotate|rotateArg>>>32-rotate)|0;a=tmp;}
h0=h0+a|0;h1=h1+b|0;h2=h2+c|0;h3=h3+d|0;}
return new Uint8Array([h0&0xFF,h0>>8&0xFF,h0>>16&0xFF,h0>>>24&0xFF,h1&0xFF,h1>>8&0xFF,h1>>16&0xFF,h1>>>24&0xFF,h2&0xFF,h2>>8&0xFF,h2>>16&0xFF,h2>>>24&0xFF,h3&0xFF,h3>>8&0xFF,h3>>16&0xFF,h3>>>24&0xFF]);}
return hash;}();exports.calculateMD5=calculateMD5;class Word64{constructor(highInteger,lowInteger){this.high=highInteger|0;this.low=lowInteger|0;}
and(word){this.high&=word.high;this.low&=word.low;}
xor(word){this.high^=word.high;this.low^=word.low;}
or(word){this.high|=word.high;this.low|=word.low;}
shiftRight(places){if(places>=32){this.low=this.high>>>places-32|0;this.high=0;}else{this.low=this.low>>>places|this.high<<32-places;this.high=this.high>>>places|0;}}
shiftLeft(places){if(places>=32){this.high=this.low<<places-32;this.low=0;}else{this.high=this.high<<places|this.low>>>32-places;this.low<<=places;}}
rotateRight(places){let low,high;if(places&32){high=this.low;low=this.high;}else{low=this.low;high=this.high;}
places&=31;this.low=low>>>places|high<<32-places;this.high=high>>>places|low<<32-places;}
not(){this.high=~this.high;this.low=~this.low;}
add(word){const lowAdd=(this.low>>>0)+(word.low>>>0);let highAdd=(this.high>>>0)+(word.high>>>0);if(lowAdd>0xffffffff){highAdd+=1;}
this.low=lowAdd|0;this.high=highAdd|0;}
copyTo(bytes,offset){bytes[offset]=this.high>>>24&0xff;bytes[offset+1]=this.high>>16&0xff;bytes[offset+2]=this.high>>8&0xff;bytes[offset+3]=this.high&0xff;bytes[offset+4]=this.low>>>24&0xff;bytes[offset+5]=this.low>>16&0xff;bytes[offset+6]=this.low>>8&0xff;bytes[offset+7]=this.low&0xff;}
assign(word){this.high=word.high;this.low=word.low;}}
const calculateSHA256=function calculateSHA256Closure(){function rotr(x,n){return x>>>n|x<<32-n;}
function ch(x,y,z){return x&y^~x&z;}
function maj(x,y,z){return x&y^x&z^y&z;}
function sigma(x){return rotr(x,2)^rotr(x,13)^rotr(x,22);}
function sigmaPrime(x){return rotr(x,6)^rotr(x,11)^rotr(x,25);}
function littleSigma(x){return rotr(x,7)^rotr(x,18)^x>>>3;}
function littleSigmaPrime(x){return rotr(x,17)^rotr(x,19)^x>>>10;}
const k=[0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2];function hash(data,offset,length){let h0=0x6a09e667,h1=0xbb67ae85,h2=0x3c6ef372,h3=0xa54ff53a,h4=0x510e527f,h5=0x9b05688c,h6=0x1f83d9ab,h7=0x5be0cd19;const paddedLength=Math.ceil((length+9)/64)*64;const padded=new Uint8Array(paddedLength);let i,j;for(i=0;i<length;++i){padded[i]=data[offset++];}
padded[i++]=0x80;const n=paddedLength-8;while(i<n){padded[i++]=0;}
padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=length>>>29&0xff;padded[i++]=length>>21&0xff;padded[i++]=length>>13&0xff;padded[i++]=length>>5&0xff;padded[i++]=length<<3&0xff;const w=new Uint32Array(64);for(i=0;i<paddedLength;){for(j=0;j<16;++j){w[j]=padded[i]<<24|padded[i+1]<<16|padded[i+2]<<8|padded[i+3];i+=4;}
for(j=16;j<64;++j){w[j]=littleSigmaPrime(w[j-2])+w[j-7]+littleSigma(w[j-15])+w[j-16]|0;}
let a=h0,b=h1,c=h2,d=h3,e=h4,f=h5,g=h6,h=h7,t1,t2;for(j=0;j<64;++j){t1=h+sigmaPrime(e)+ch(e,f,g)+k[j]+w[j];t2=sigma(a)+maj(a,b,c);h=g;g=f;f=e;e=d+t1|0;d=c;c=b;b=a;a=t1+t2|0;}
h0=h0+a|0;h1=h1+b|0;h2=h2+c|0;h3=h3+d|0;h4=h4+e|0;h5=h5+f|0;h6=h6+g|0;h7=h7+h|0;}
return new Uint8Array([h0>>24&0xFF,h0>>16&0xFF,h0>>8&0xFF,h0&0xFF,h1>>24&0xFF,h1>>16&0xFF,h1>>8&0xFF,h1&0xFF,h2>>24&0xFF,h2>>16&0xFF,h2>>8&0xFF,h2&0xFF,h3>>24&0xFF,h3>>16&0xFF,h3>>8&0xFF,h3&0xFF,h4>>24&0xFF,h4>>16&0xFF,h4>>8&0xFF,h4&0xFF,h5>>24&0xFF,h5>>16&0xFF,h5>>8&0xFF,h5&0xFF,h6>>24&0xFF,h6>>16&0xFF,h6>>8&0xFF,h6&0xFF,h7>>24&0xFF,h7>>16&0xFF,h7>>8&0xFF,h7&0xFF]);}
return hash;}();exports.calculateSHA256=calculateSHA256;const calculateSHA512=function calculateSHA512Closure(){function ch(result,x,y,z,tmp){result.assign(x);result.and(y);tmp.assign(x);tmp.not();tmp.and(z);result.xor(tmp);}
function maj(result,x,y,z,tmp){result.assign(x);result.and(y);tmp.assign(x);tmp.and(z);result.xor(tmp);tmp.assign(y);tmp.and(z);result.xor(tmp);}
function sigma(result,x,tmp){result.assign(x);result.rotateRight(28);tmp.assign(x);tmp.rotateRight(34);result.xor(tmp);tmp.assign(x);tmp.rotateRight(39);result.xor(tmp);}
function sigmaPrime(result,x,tmp){result.assign(x);result.rotateRight(14);tmp.assign(x);tmp.rotateRight(18);result.xor(tmp);tmp.assign(x);tmp.rotateRight(41);result.xor(tmp);}
function littleSigma(result,x,tmp){result.assign(x);result.rotateRight(1);tmp.assign(x);tmp.rotateRight(8);result.xor(tmp);tmp.assign(x);tmp.shiftRight(7);result.xor(tmp);}
function littleSigmaPrime(result,x,tmp){result.assign(x);result.rotateRight(19);tmp.assign(x);tmp.rotateRight(61);result.xor(tmp);tmp.assign(x);tmp.shiftRight(6);result.xor(tmp);}
const k=[new Word64(0x428a2f98,0xd728ae22),new Word64(0x71374491,0x23ef65cd),new Word64(0xb5c0fbcf,0xec4d3b2f),new Word64(0xe9b5dba5,0x8189dbbc),new Word64(0x3956c25b,0xf348b538),new Word64(0x59f111f1,0xb605d019),new Word64(0x923f82a4,0xaf194f9b),new Word64(0xab1c5ed5,0xda6d8118),new Word64(0xd807aa98,0xa3030242),new Word64(0x12835b01,0x45706fbe),new Word64(0x243185be,0x4ee4b28c),new Word64(0x550c7dc3,0xd5ffb4e2),new Word64(0x72be5d74,0xf27b896f),new Word64(0x80deb1fe,0x3b1696b1),new Word64(0x9bdc06a7,0x25c71235),new Word64(0xc19bf174,0xcf692694),new Word64(0xe49b69c1,0x9ef14ad2),new Word64(0xefbe4786,0x384f25e3),new Word64(0x0fc19dc6,0x8b8cd5b5),new Word64(0x240ca1cc,0x77ac9c65),new Word64(0x2de92c6f,0x592b0275),new Word64(0x4a7484aa,0x6ea6e483),new Word64(0x5cb0a9dc,0xbd41fbd4),new Word64(0x76f988da,0x831153b5),new Word64(0x983e5152,0xee66dfab),new Word64(0xa831c66d,0x2db43210),new Word64(0xb00327c8,0x98fb213f),new Word64(0xbf597fc7,0xbeef0ee4),new Word64(0xc6e00bf3,0x3da88fc2),new Word64(0xd5a79147,0x930aa725),new Word64(0x06ca6351,0xe003826f),new Word64(0x14292967,0x0a0e6e70),new Word64(0x27b70a85,0x46d22ffc),new Word64(0x2e1b2138,0x5c26c926),new Word64(0x4d2c6dfc,0x5ac42aed),new Word64(0x53380d13,0x9d95b3df),new Word64(0x650a7354,0x8baf63de),new Word64(0x766a0abb,0x3c77b2a8),new Word64(0x81c2c92e,0x47edaee6),new Word64(0x92722c85,0x1482353b),new Word64(0xa2bfe8a1,0x4cf10364),new Word64(0xa81a664b,0xbc423001),new Word64(0xc24b8b70,0xd0f89791),new Word64(0xc76c51a3,0x0654be30),new Word64(0xd192e819,0xd6ef5218),new Word64(0xd6990624,0x5565a910),new Word64(0xf40e3585,0x5771202a),new Word64(0x106aa070,0x32bbd1b8),new Word64(0x19a4c116,0xb8d2d0c8),new Word64(0x1e376c08,0x5141ab53),new Word64(0x2748774c,0xdf8eeb99),new Word64(0x34b0bcb5,0xe19b48a8),new Word64(0x391c0cb3,0xc5c95a63),new Word64(0x4ed8aa4a,0xe3418acb),new Word64(0x5b9cca4f,0x7763e373),new Word64(0x682e6ff3,0xd6b2b8a3),new Word64(0x748f82ee,0x5defb2fc),new Word64(0x78a5636f,0x43172f60),new Word64(0x84c87814,0xa1f0ab72),new Word64(0x8cc70208,0x1a6439ec),new Word64(0x90befffa,0x23631e28),new Word64(0xa4506ceb,0xde82bde9),new Word64(0xbef9a3f7,0xb2c67915),new Word64(0xc67178f2,0xe372532b),new Word64(0xca273ece,0xea26619c),new Word64(0xd186b8c7,0x21c0c207),new Word64(0xeada7dd6,0xcde0eb1e),new Word64(0xf57d4f7f,0xee6ed178),new Word64(0x06f067aa,0x72176fba),new Word64(0x0a637dc5,0xa2c898a6),new Word64(0x113f9804,0xbef90dae),new Word64(0x1b710b35,0x131c471b),new Word64(0x28db77f5,0x23047d84),new Word64(0x32caab7b,0x40c72493),new Word64(0x3c9ebe0a,0x15c9bebc),new Word64(0x431d67c4,0x9c100d4c),new Word64(0x4cc5d4be,0xcb3e42b6),new Word64(0x597f299c,0xfc657e2a),new Word64(0x5fcb6fab,0x3ad6faec),new Word64(0x6c44198c,0x4a475817)];function hash(data,offset,length){let mode384=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;let h0,h1,h2,h3,h4,h5,h6,h7;if(!mode384){h0=new Word64(0x6a09e667,0xf3bcc908);h1=new Word64(0xbb67ae85,0x84caa73b);h2=new Word64(0x3c6ef372,0xfe94f82b);h3=new Word64(0xa54ff53a,0x5f1d36f1);h4=new Word64(0x510e527f,0xade682d1);h5=new Word64(0x9b05688c,0x2b3e6c1f);h6=new Word64(0x1f83d9ab,0xfb41bd6b);h7=new Word64(0x5be0cd19,0x137e2179);}else{h0=new Word64(0xcbbb9d5d,0xc1059ed8);h1=new Word64(0x629a292a,0x367cd507);h2=new Word64(0x9159015a,0x3070dd17);h3=new Word64(0x152fecd8,0xf70e5939);h4=new Word64(0x67332667,0xffc00b31);h5=new Word64(0x8eb44a87,0x68581511);h6=new Word64(0xdb0c2e0d,0x64f98fa7);h7=new Word64(0x47b5481d,0xbefa4fa4);}
const paddedLength=Math.ceil((length+17)/128)*128;const padded=new Uint8Array(paddedLength);let i,j;for(i=0;i<length;++i){padded[i]=data[offset++];}
padded[i++]=0x80;const n=paddedLength-16;while(i<n){padded[i++]=0;}
padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=length>>>29&0xff;padded[i++]=length>>21&0xff;padded[i++]=length>>13&0xff;padded[i++]=length>>5&0xff;padded[i++]=length<<3&0xff;const w=new Array(80);for(i=0;i<80;i++){w[i]=new Word64(0,0);}
let a=new Word64(0,0),b=new Word64(0,0),c=new Word64(0,0);let d=new Word64(0,0),e=new Word64(0,0),f=new Word64(0,0);let g=new Word64(0,0),h=new Word64(0,0);const t1=new Word64(0,0),t2=new Word64(0,0);const tmp1=new Word64(0,0),tmp2=new Word64(0,0);let tmp3;for(i=0;i<paddedLength;){for(j=0;j<16;++j){w[j].high=padded[i]<<24|padded[i+1]<<16|padded[i+2]<<8|padded[i+3];w[j].low=padded[i+4]<<24|padded[i+5]<<16|padded[i+6]<<8|padded[i+7];i+=8;}
for(j=16;j<80;++j){tmp3=w[j];littleSigmaPrime(tmp3,w[j-2],tmp2);tmp3.add(w[j-7]);littleSigma(tmp1,w[j-15],tmp2);tmp3.add(tmp1);tmp3.add(w[j-16]);}
a.assign(h0);b.assign(h1);c.assign(h2);d.assign(h3);e.assign(h4);f.assign(h5);g.assign(h6);h.assign(h7);for(j=0;j<80;++j){t1.assign(h);sigmaPrime(tmp1,e,tmp2);t1.add(tmp1);ch(tmp1,e,f,g,tmp2);t1.add(tmp1);t1.add(k[j]);t1.add(w[j]);sigma(t2,a,tmp2);maj(tmp1,a,b,c,tmp2);t2.add(tmp1);tmp3=h;h=g;g=f;f=e;d.add(t1);e=d;d=c;c=b;b=a;tmp3.assign(t1);tmp3.add(t2);a=tmp3;}
h0.add(a);h1.add(b);h2.add(c);h3.add(d);h4.add(e);h5.add(f);h6.add(g);h7.add(h);}
let result;if(!mode384){result=new Uint8Array(64);h0.copyTo(result,0);h1.copyTo(result,8);h2.copyTo(result,16);h3.copyTo(result,24);h4.copyTo(result,32);h5.copyTo(result,40);h6.copyTo(result,48);h7.copyTo(result,56);}else{result=new Uint8Array(48);h0.copyTo(result,0);h1.copyTo(result,8);h2.copyTo(result,16);h3.copyTo(result,24);h4.copyTo(result,32);h5.copyTo(result,40);}
return result;}
return hash;}();exports.calculateSHA512=calculateSHA512;function calculateSHA384(data,offset,length){return calculateSHA512(data,offset,length,true);}
class NullCipher{decryptBlock(data){return data;}
encrypt(data){return data;}}
class AESBaseCipher{constructor(){if(this.constructor===AESBaseCipher){(0,_util.unreachable)("Cannot initialize AESBaseCipher.");}
this._s=new Uint8Array([0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf,0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8,0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2,0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73,0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb,0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79,0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08,0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a,0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e,0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf,0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16]);this._inv_s=new Uint8Array([0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38,0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb,0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87,0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb,0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d,0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e,0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2,0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25,0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16,0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92,0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda,0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84,0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a,0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06,0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02,0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b,0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea,0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73,0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85,0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e,0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89,0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b,0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20,0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4,0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31,0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f,0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d,0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef,0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0,0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61,0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26,0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d]);this._mix=new Uint32Array([0x00000000,0x0e090d0b,0x1c121a16,0x121b171d,0x3824342c,0x362d3927,0x24362e3a,0x2a3f2331,0x70486858,0x7e416553,0x6c5a724e,0x62537f45,0x486c5c74,0x4665517f,0x547e4662,0x5a774b69,0xe090d0b0,0xee99ddbb,0xfc82caa6,0xf28bc7ad,0xd8b4e49c,0xd6bde997,0xc4a6fe8a,0xcaaff381,0x90d8b8e8,0x9ed1b5e3,0x8ccaa2fe,0x82c3aff5,0xa8fc8cc4,0xa6f581cf,0xb4ee96d2,0xbae79bd9,0xdb3bbb7b,0xd532b670,0xc729a16d,0xc920ac66,0xe31f8f57,0xed16825c,0xff0d9541,0xf104984a,0xab73d323,0xa57ade28,0xb761c935,0xb968c43e,0x9357e70f,0x9d5eea04,0x8f45fd19,0x814cf012,0x3bab6bcb,0x35a266c0,0x27b971dd,0x29b07cd6,0x038f5fe7,0x0d8652ec,0x1f9d45f1,0x119448fa,0x4be30393,0x45ea0e98,0x57f11985,0x59f8148e,0x73c737bf,0x7dce3ab4,0x6fd52da9,0x61dc20a2,0xad766df6,0xa37f60fd,0xb16477e0,0xbf6d7aeb,0x955259da,0x9b5b54d1,0x894043cc,0x87494ec7,0xdd3e05ae,0xd33708a5,0xc12c1fb8,0xcf2512b3,0xe51a3182,0xeb133c89,0xf9082b94,0xf701269f,0x4de6bd46,0x43efb04d,0x51f4a750,0x5ffdaa5b,0x75c2896a,0x7bcb8461,0x69d0937c,0x67d99e77,0x3daed51e,0x33a7d815,0x21bccf08,0x2fb5c203,0x058ae132,0x0b83ec39,0x1998fb24,0x1791f62f,0x764dd68d,0x7844db86,0x6a5fcc9b,0x6456c190,0x4e69e2a1,0x4060efaa,0x527bf8b7,0x5c72f5bc,0x0605bed5,0x080cb3de,0x1a17a4c3,0x141ea9c8,0x3e218af9,0x302887f2,0x223390ef,0x2c3a9de4,0x96dd063d,0x98d40b36,0x8acf1c2b,0x84c61120,0xaef93211,0xa0f03f1a,0xb2eb2807,0xbce2250c,0xe6956e65,0xe89c636e,0xfa877473,0xf48e7978,0xdeb15a49,0xd0b85742,0xc2a3405f,0xccaa4d54,0x41ecdaf7,0x4fe5d7fc,0x5dfec0e1,0x53f7cdea,0x79c8eedb,0x77c1e3d0,0x65daf4cd,0x6bd3f9c6,0x31a4b2af,0x3fadbfa4,0x2db6a8b9,0x23bfa5b2,0x09808683,0x07898b88,0x15929c95,0x1b9b919e,0xa17c0a47,0xaf75074c,0xbd6e1051,0xb3671d5a,0x99583e6b,0x97513360,0x854a247d,0x8b432976,0xd134621f,0xdf3d6f14,0xcd267809,0xc32f7502,0xe9105633,0xe7195b38,0xf5024c25,0xfb0b412e,0x9ad7618c,0x94de6c87,0x86c57b9a,0x88cc7691,0xa2f355a0,0xacfa58ab,0xbee14fb6,0xb0e842bd,0xea9f09d4,0xe49604df,0xf68d13c2,0xf8841ec9,0xd2bb3df8,0xdcb230f3,0xcea927ee,0xc0a02ae5,0x7a47b13c,0x744ebc37,0x6655ab2a,0x685ca621,0x42638510,0x4c6a881b,0x5e719f06,0x5078920d,0x0a0fd964,0x0406d46f,0x161dc372,0x1814ce79,0x322bed48,0x3c22e043,0x2e39f75e,0x2030fa55,0xec9ab701,0xe293ba0a,0xf088ad17,0xfe81a01c,0xd4be832d,0xdab78e26,0xc8ac993b,0xc6a59430,0x9cd2df59,0x92dbd252,0x80c0c54f,0x8ec9c844,0xa4f6eb75,0xaaffe67e,0xb8e4f163,0xb6edfc68,0x0c0a67b1,0x02036aba,0x10187da7,0x1e1170ac,0x342e539d,0x3a275e96,0x283c498b,0x26354480,0x7c420fe9,0x724b02e2,0x605015ff,0x6e5918f4,0x44663bc5,0x4a6f36ce,0x587421d3,0x567d2cd8,0x37a10c7a,0x39a80171,0x2bb3166c,0x25ba1b67,0x0f853856,0x018c355d,0x13972240,0x1d9e2f4b,0x47e96422,0x49e06929,0x5bfb7e34,0x55f2733f,0x7fcd500e,0x71c45d05,0x63df4a18,0x6dd64713,0xd731dcca,0xd938d1c1,0xcb23c6dc,0xc52acbd7,0xef15e8e6,0xe11ce5ed,0xf307f2f0,0xfd0efffb,0xa779b492,0xa970b999,0xbb6bae84,0xb562a38f,0x9f5d80be,0x91548db5,0x834f9aa8,0x8d4697a3]);this._mixCol=new Uint8Array(256);for(let i=0;i<256;i++){if(i<128){this._mixCol[i]=i<<1;}else{this._mixCol[i]=i<<1^0x1b;}}
this.buffer=new Uint8Array(16);this.bufferPosition=0;}
_expandKey(cipherKey){(0,_util.unreachable)("Cannot call `_expandKey` on the base class");}
_decrypt(input,key){let t,u,v;const state=new Uint8Array(16);state.set(input);for(let j=0,k=this._keySize;j<16;++j,++k){state[j]^=key[k];}
for(let i=this._cyclesOfRepetition-1;i>=1;--i){t=state[13];state[13]=state[9];state[9]=state[5];state[5]=state[1];state[1]=t;t=state[14];u=state[10];state[14]=state[6];state[10]=state[2];state[6]=t;state[2]=u;t=state[15];u=state[11];v=state[7];state[15]=state[3];state[11]=t;state[7]=u;state[3]=v;for(let j=0;j<16;++j){state[j]=this._inv_s[state[j]];}
for(let j=0,k=i*16;j<16;++j,++k){state[j]^=key[k];}
for(let j=0;j<16;j+=4){const s0=this._mix[state[j]];const s1=this._mix[state[j+1]];const s2=this._mix[state[j+2]];const s3=this._mix[state[j+3]];t=s0^s1>>>8^s1<<24^s2>>>16^s2<<16^s3>>>24^s3<<8;state[j]=t>>>24&0xff;state[j+1]=t>>16&0xff;state[j+2]=t>>8&0xff;state[j+3]=t&0xff;}}
t=state[13];state[13]=state[9];state[9]=state[5];state[5]=state[1];state[1]=t;t=state[14];u=state[10];state[14]=state[6];state[10]=state[2];state[6]=t;state[2]=u;t=state[15];u=state[11];v=state[7];state[15]=state[3];state[11]=t;state[7]=u;state[3]=v;for(let j=0;j<16;++j){state[j]=this._inv_s[state[j]];state[j]^=key[j];}
return state;}
_encrypt(input,key){const s=this._s;let t,u,v;const state=new Uint8Array(16);state.set(input);for(let j=0;j<16;++j){state[j]^=key[j];}
for(let i=1;i<this._cyclesOfRepetition;i++){for(let j=0;j<16;++j){state[j]=s[state[j]];}
v=state[1];state[1]=state[5];state[5]=state[9];state[9]=state[13];state[13]=v;v=state[2];u=state[6];state[2]=state[10];state[6]=state[14];state[10]=v;state[14]=u;v=state[3];u=state[7];t=state[11];state[3]=state[15];state[7]=v;state[11]=u;state[15]=t;for(let j=0;j<16;j+=4){const s0=state[j+0];const s1=state[j+1];const s2=state[j+2];const s3=state[j+3];t=s0^s1^s2^s3;state[j+0]^=t^this._mixCol[s0^s1];state[j+1]^=t^this._mixCol[s1^s2];state[j+2]^=t^this._mixCol[s2^s3];state[j+3]^=t^this._mixCol[s3^s0];}
for(let j=0,k=i*16;j<16;++j,++k){state[j]^=key[k];}}
for(let j=0;j<16;++j){state[j]=s[state[j]];}
v=state[1];state[1]=state[5];state[5]=state[9];state[9]=state[13];state[13]=v;v=state[2];u=state[6];state[2]=state[10];state[6]=state[14];state[10]=v;state[14]=u;v=state[3];u=state[7];t=state[11];state[3]=state[15];state[7]=v;state[11]=u;state[15]=t;for(let j=0,k=this._keySize;j<16;++j,++k){state[j]^=key[k];}
return state;}
_decryptBlock2(data,finalize){const sourceLength=data.length;let buffer=this.buffer,bufferLength=this.bufferPosition;const result=[];let iv=this.iv;for(let i=0;i<sourceLength;++i){buffer[bufferLength]=data[i];++bufferLength;if(bufferLength<16){continue;}
const plain=this._decrypt(buffer,this._key);for(let j=0;j<16;++j){plain[j]^=iv[j];}
iv=buffer;result.push(plain);buffer=new Uint8Array(16);bufferLength=0;}
this.buffer=buffer;this.bufferLength=bufferLength;this.iv=iv;if(result.length===0){return new Uint8Array(0);}
let outputLength=16*result.length;if(finalize){const lastBlock=result.at(-1);let psLen=lastBlock[15];if(psLen<=16){for(let i=15,ii=16-psLen;i>=ii;--i){if(lastBlock[i]!==psLen){psLen=0;break;}}
outputLength-=psLen;result[result.length-1]=lastBlock.subarray(0,16-psLen);}}
const output=new Uint8Array(outputLength);for(let i=0,j=0,ii=result.length;i<ii;++i,j+=16){output.set(result[i],j);}
return output;}
decryptBlock(data,finalize){let iv=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;const sourceLength=data.length;const buffer=this.buffer;let bufferLength=this.bufferPosition;if(iv){this.iv=iv;}else{for(let i=0;bufferLength<16&&i<sourceLength;++i,++bufferLength){buffer[bufferLength]=data[i];}
if(bufferLength<16){this.bufferLength=bufferLength;return new Uint8Array(0);}
this.iv=buffer;data=data.subarray(16);}
this.buffer=new Uint8Array(16);this.bufferLength=0;this.decryptBlock=this._decryptBlock2;return this.decryptBlock(data,finalize);}
encrypt(data,iv){const sourceLength=data.length;let buffer=this.buffer,bufferLength=this.bufferPosition;const result=[];if(!iv){iv=new Uint8Array(16);}
for(let i=0;i<sourceLength;++i){buffer[bufferLength]=data[i];++bufferLength;if(bufferLength<16){continue;}
for(let j=0;j<16;++j){buffer[j]^=iv[j];}
const cipher=this._encrypt(buffer,this._key);iv=cipher;result.push(cipher);buffer=new Uint8Array(16);bufferLength=0;}
this.buffer=buffer;this.bufferLength=bufferLength;this.iv=iv;if(result.length===0){return new Uint8Array(0);}
const outputLength=16*result.length;const output=new Uint8Array(outputLength);for(let i=0,j=0,ii=result.length;i<ii;++i,j+=16){output.set(result[i],j);}
return output;}}
class AES128Cipher extends AESBaseCipher{constructor(key){super();this._cyclesOfRepetition=10;this._keySize=160;this._rcon=new Uint8Array([0x8d,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x1b,0x36,0x6c,0xd8,0xab,0x4d,0x9a,0x2f,0x5e,0xbc,0x63,0xc6,0x97,0x35,0x6a,0xd4,0xb3,0x7d,0xfa,0xef,0xc5,0x91,0x39,0x72,0xe4,0xd3,0xbd,0x61,0xc2,0x9f,0x25,0x4a,0x94,0x33,0x66,0xcc,0x83,0x1d,0x3a,0x74,0xe8,0xcb,0x8d,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x1b,0x36,0x6c,0xd8,0xab,0x4d,0x9a,0x2f,0x5e,0xbc,0x63,0xc6,0x97,0x35,0x6a,0xd4,0xb3,0x7d,0xfa,0xef,0xc5,0x91,0x39,0x72,0xe4,0xd3,0xbd,0x61,0xc2,0x9f,0x25,0x4a,0x94,0x33,0x66,0xcc,0x83,0x1d,0x3a,0x74,0xe8,0xcb,0x8d,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x1b,0x36,0x6c,0xd8,0xab,0x4d,0x9a,0x2f,0x5e,0xbc,0x63,0xc6,0x97,0x35,0x6a,0xd4,0xb3,0x7d,0xfa,0xef,0xc5,0x91,0x39,0x72,0xe4,0xd3,0xbd,0x61,0xc2,0x9f,0x25,0x4a,0x94,0x33,0x66,0xcc,0x83,0x1d,0x3a,0x74,0xe8,0xcb,0x8d,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x1b,0x36,0x6c,0xd8,0xab,0x4d,0x9a,0x2f,0x5e,0xbc,0x63,0xc6,0x97,0x35,0x6a,0xd4,0xb3,0x7d,0xfa,0xef,0xc5,0x91,0x39,0x72,0xe4,0xd3,0xbd,0x61,0xc2,0x9f,0x25,0x4a,0x94,0x33,0x66,0xcc,0x83,0x1d,0x3a,0x74,0xe8,0xcb,0x8d,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x1b,0x36,0x6c,0xd8,0xab,0x4d,0x9a,0x2f,0x5e,0xbc,0x63,0xc6,0x97,0x35,0x6a,0xd4,0xb3,0x7d,0xfa,0xef,0xc5,0x91,0x39,0x72,0xe4,0xd3,0xbd,0x61,0xc2,0x9f,0x25,0x4a,0x94,0x33,0x66,0xcc,0x83,0x1d,0x3a,0x74,0xe8,0xcb,0x8d]);this._key=this._expandKey(key);}
_expandKey(cipherKey){const b=176;const s=this._s;const rcon=this._rcon;const result=new Uint8Array(b);result.set(cipherKey);for(let j=16,i=1;j<b;++i){let t1=result[j-3];let t2=result[j-2];let t3=result[j-1];let t4=result[j-4];t1=s[t1];t2=s[t2];t3=s[t3];t4=s[t4];t1^=rcon[i];for(let n=0;n<4;++n){result[j]=t1^=result[j-16];j++;result[j]=t2^=result[j-16];j++;result[j]=t3^=result[j-16];j++;result[j]=t4^=result[j-16];j++;}}
return result;}}
exports.AES128Cipher=AES128Cipher;class AES256Cipher extends AESBaseCipher{constructor(key){super();this._cyclesOfRepetition=14;this._keySize=224;this._key=this._expandKey(key);}
_expandKey(cipherKey){const b=240;const s=this._s;const result=new Uint8Array(b);result.set(cipherKey);let r=1;let t1,t2,t3,t4;for(let j=32,i=1;j<b;++i){if(j%32===16){t1=s[t1];t2=s[t2];t3=s[t3];t4=s[t4];}else if(j%32===0){t1=result[j-3];t2=result[j-2];t3=result[j-1];t4=result[j-4];t1=s[t1];t2=s[t2];t3=s[t3];t4=s[t4];t1^=r;if((r<<=1)>=256){r=(r^0x1b)&0xff;}}
for(let n=0;n<4;++n){result[j]=t1^=result[j-32];j++;result[j]=t2^=result[j-32];j++;result[j]=t3^=result[j-32];j++;result[j]=t4^=result[j-32];j++;}}
return result;}}
exports.AES256Cipher=AES256Cipher;class PDF17{checkOwnerPassword(password,ownerValidationSalt,userBytes,ownerPassword){const hashData=new Uint8Array(password.length+56);hashData.set(password,0);hashData.set(ownerValidationSalt,password.length);hashData.set(userBytes,password.length+ownerValidationSalt.length);const result=calculateSHA256(hashData,0,hashData.length);return(0,_util.isArrayEqual)(result,ownerPassword);}
checkUserPassword(password,userValidationSalt,userPassword){const hashData=new Uint8Array(password.length+8);hashData.set(password,0);hashData.set(userValidationSalt,password.length);const result=calculateSHA256(hashData,0,hashData.length);return(0,_util.isArrayEqual)(result,userPassword);}
getOwnerKey(password,ownerKeySalt,userBytes,ownerEncryption){const hashData=new Uint8Array(password.length+56);hashData.set(password,0);hashData.set(ownerKeySalt,password.length);hashData.set(userBytes,password.length+ownerKeySalt.length);const key=calculateSHA256(hashData,0,hashData.length);const cipher=new AES256Cipher(key);return cipher.decryptBlock(ownerEncryption,false,new Uint8Array(16));}
getUserKey(password,userKeySalt,userEncryption){const hashData=new Uint8Array(password.length+8);hashData.set(password,0);hashData.set(userKeySalt,password.length);const key=calculateSHA256(hashData,0,hashData.length);const cipher=new AES256Cipher(key);return cipher.decryptBlock(userEncryption,false,new Uint8Array(16));}}
exports.PDF17=PDF17;const PDF20=function PDF20Closure(){function calculatePDF20Hash(password,input,userBytes){let k=calculateSHA256(input,0,input.length).subarray(0,32);let e=[0];let i=0;while(i<64||e.at(-1)>i-32){const combinedLength=password.length+k.length+userBytes.length,combinedArray=new Uint8Array(combinedLength);let writeOffset=0;combinedArray.set(password,writeOffset);writeOffset+=password.length;combinedArray.set(k,writeOffset);writeOffset+=k.length;combinedArray.set(userBytes,writeOffset);const k1=new Uint8Array(combinedLength*64);for(let j=0,pos=0;j<64;j++,pos+=combinedLength){k1.set(combinedArray,pos);}
const cipher=new AES128Cipher(k.subarray(0,16));e=cipher.encrypt(k1,k.subarray(16,32));let remainder=0;for(let z=0;z<16;z++){remainder*=256%3;remainder%=3;remainder+=(e[z]>>>0)%3;remainder%=3;}
if(remainder===0){k=calculateSHA256(e,0,e.length);}else if(remainder===1){k=calculateSHA384(e,0,e.length);}else if(remainder===2){k=calculateSHA512(e,0,e.length);}
i++;}
return k.subarray(0,32);}
class PDF20{hash(password,concatBytes,userBytes){return calculatePDF20Hash(password,concatBytes,userBytes);}
checkOwnerPassword(password,ownerValidationSalt,userBytes,ownerPassword){const hashData=new Uint8Array(password.length+56);hashData.set(password,0);hashData.set(ownerValidationSalt,password.length);hashData.set(userBytes,password.length+ownerValidationSalt.length);const result=calculatePDF20Hash(password,hashData,userBytes);return(0,_util.isArrayEqual)(result,ownerPassword);}
checkUserPassword(password,userValidationSalt,userPassword){const hashData=new Uint8Array(password.length+8);hashData.set(password,0);hashData.set(userValidationSalt,password.length);const result=calculatePDF20Hash(password,hashData,[]);return(0,_util.isArrayEqual)(result,userPassword);}
getOwnerKey(password,ownerKeySalt,userBytes,ownerEncryption){const hashData=new Uint8Array(password.length+56);hashData.set(password,0);hashData.set(ownerKeySalt,password.length);hashData.set(userBytes,password.length+ownerKeySalt.length);const key=calculatePDF20Hash(password,hashData,userBytes);const cipher=new AES256Cipher(key);return cipher.decryptBlock(ownerEncryption,false,new Uint8Array(16));}
getUserKey(password,userKeySalt,userEncryption){const hashData=new Uint8Array(password.length+8);hashData.set(password,0);hashData.set(userKeySalt,password.length);const key=calculatePDF20Hash(password,hashData,[]);const cipher=new AES256Cipher(key);return cipher.decryptBlock(userEncryption,false,new Uint8Array(16));}}
return PDF20;}();exports.PDF20=PDF20;class CipherTransform{constructor(stringCipherConstructor,streamCipherConstructor){this.StringCipherConstructor=stringCipherConstructor;this.StreamCipherConstructor=streamCipherConstructor;}
createStream(stream,length){const cipher=new this.StreamCipherConstructor();return new _decrypt_stream.DecryptStream(stream,length,function cipherTransformDecryptStream(data,finalize){return cipher.decryptBlock(data,finalize);});}
decryptString(s){const cipher=new this.StringCipherConstructor();let data=(0,_util.stringToBytes)(s);data=cipher.decryptBlock(data,true);return(0,_util.bytesToString)(data);}
encryptString(s){const cipher=new this.StringCipherConstructor();if(cipher instanceof AESBaseCipher){const strLen=s.length;const pad=16-strLen%16;s+=String.fromCharCode(pad).repeat(pad);const iv=new Uint8Array(16);if(typeof crypto!=="undefined"){crypto.getRandomValues(iv);}else{for(let i=0;i<16;i++){iv[i]=Math.floor(256*Math.random());}}
let data=(0,_util.stringToBytes)(s);data=cipher.encrypt(data,iv);const buf=new Uint8Array(16+data.length);buf.set(iv);buf.set(data,16);return(0,_util.bytesToString)(buf);}
let data=(0,_util.stringToBytes)(s);data=cipher.encrypt(data);return(0,_util.bytesToString)(data);}}
const CipherTransformFactory=function CipherTransformFactoryClosure(){const defaultPasswordBytes=new Uint8Array([0x28,0xbf,0x4e,0x5e,0x4e,0x75,0x8a,0x41,0x64,0x00,0x4e,0x56,0xff,0xfa,0x01,0x08,0x2e,0x2e,0x00,0xb6,0xd0,0x68,0x3e,0x80,0x2f,0x0c,0xa9,0xfe,0x64,0x53,0x69,0x7a]);function createEncryptionKey20(revision,password,ownerPassword,ownerValidationSalt,ownerKeySalt,uBytes,userPassword,userValidationSalt,userKeySalt,ownerEncryption,userEncryption,perms){if(password){const passwordLength=Math.min(127,password.length);password=password.subarray(0,passwordLength);}else{password=[];}
let pdfAlgorithm;if(revision===6){pdfAlgorithm=new PDF20();}else{pdfAlgorithm=new PDF17();}
if(pdfAlgorithm.checkUserPassword(password,userValidationSalt,userPassword)){return pdfAlgorithm.getUserKey(password,userKeySalt,userEncryption);}else if(password.length&&pdfAlgorithm.checkOwnerPassword(password,ownerValidationSalt,uBytes,ownerPassword)){return pdfAlgorithm.getOwnerKey(password,ownerKeySalt,uBytes,ownerEncryption);}
return null;}
function prepareKeyData(fileId,password,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata){const hashDataSize=40+ownerPassword.length+fileId.length;const hashData=new Uint8Array(hashDataSize);let i=0,j,n;if(password){n=Math.min(32,password.length);for(;i<n;++i){hashData[i]=password[i];}}
j=0;while(i<32){hashData[i++]=defaultPasswordBytes[j++];}
for(j=0,n=ownerPassword.length;j<n;++j){hashData[i++]=ownerPassword[j];}
hashData[i++]=flags&0xff;hashData[i++]=flags>>8&0xff;hashData[i++]=flags>>16&0xff;hashData[i++]=flags>>>24&0xff;for(j=0,n=fileId.length;j<n;++j){hashData[i++]=fileId[j];}
if(revision>=4&&!encryptMetadata){hashData[i++]=0xff;hashData[i++]=0xff;hashData[i++]=0xff;hashData[i++]=0xff;}
let hash=calculateMD5(hashData,0,i);const keyLengthInBytes=keyLength>>3;if(revision>=3){for(j=0;j<50;++j){hash=calculateMD5(hash,0,keyLengthInBytes);}}
const encryptionKey=hash.subarray(0,keyLengthInBytes);let cipher,checkData;if(revision>=3){for(i=0;i<32;++i){hashData[i]=defaultPasswordBytes[i];}
for(j=0,n=fileId.length;j<n;++j){hashData[i++]=fileId[j];}
cipher=new ARCFourCipher(encryptionKey);checkData=cipher.encryptBlock(calculateMD5(hashData,0,i));n=encryptionKey.length;const derivedKey=new Uint8Array(n);for(j=1;j<=19;++j){for(let k=0;k<n;++k){derivedKey[k]=encryptionKey[k]^j;}
cipher=new ARCFourCipher(derivedKey);checkData=cipher.encryptBlock(checkData);}
for(j=0,n=checkData.length;j<n;++j){if(userPassword[j]!==checkData[j]){return null;}}}else{cipher=new ARCFourCipher(encryptionKey);checkData=cipher.encryptBlock(defaultPasswordBytes);for(j=0,n=checkData.length;j<n;++j){if(userPassword[j]!==checkData[j]){return null;}}}
return encryptionKey;}
function decodeUserPassword(password,ownerPassword,revision,keyLength){const hashData=new Uint8Array(32);let i=0;const n=Math.min(32,password.length);for(;i<n;++i){hashData[i]=password[i];}
let j=0;while(i<32){hashData[i++]=defaultPasswordBytes[j++];}
let hash=calculateMD5(hashData,0,i);const keyLengthInBytes=keyLength>>3;if(revision>=3){for(j=0;j<50;++j){hash=calculateMD5(hash,0,hash.length);}}
let cipher,userPassword;if(revision>=3){userPassword=ownerPassword;const derivedKey=new Uint8Array(keyLengthInBytes);for(j=19;j>=0;j--){for(let k=0;k<keyLengthInBytes;++k){derivedKey[k]=hash[k]^j;}
cipher=new ARCFourCipher(derivedKey);userPassword=cipher.encryptBlock(userPassword);}}else{cipher=new ARCFourCipher(hash.subarray(0,keyLengthInBytes));userPassword=cipher.encryptBlock(ownerPassword);}
return userPassword;}
const identityName=_primitives.Name.get("Identity");function buildObjectKey(num,gen,encryptionKey){let isAes=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;const key=new Uint8Array(encryptionKey.length+9);const n=encryptionKey.length;let i;for(i=0;i<n;++i){key[i]=encryptionKey[i];}
key[i++]=num&0xff;key[i++]=num>>8&0xff;key[i++]=num>>16&0xff;key[i++]=gen&0xff;key[i++]=gen>>8&0xff;if(isAes){key[i++]=0x73;key[i++]=0x41;key[i++]=0x6c;key[i++]=0x54;}
const hash=calculateMD5(key,0,i);return hash.subarray(0,Math.min(encryptionKey.length+5,16));}
function buildCipherConstructor(cf,name,num,gen,key){if(!(name instanceof _primitives.Name)){throw new _util.FormatError("Invalid crypt filter name.");}
const cryptFilter=cf.get(name.name);let cfm;if(cryptFilter!==null&&cryptFilter!==undefined){cfm=cryptFilter.get("CFM");}
if(!cfm||cfm.name==="None"){return function cipherTransformFactoryBuildCipherConstructorNone(){return new NullCipher();};}
if(cfm.name==="V2"){return function cipherTransformFactoryBuildCipherConstructorV2(){return new ARCFourCipher(buildObjectKey(num,gen,key,false));};}
if(cfm.name==="AESV2"){return function cipherTransformFactoryBuildCipherConstructorAESV2(){return new AES128Cipher(buildObjectKey(num,gen,key,true));};}
if(cfm.name==="AESV3"){return function cipherTransformFactoryBuildCipherConstructorAESV3(){return new AES256Cipher(key);};}
throw new _util.FormatError("Unknown crypto method");}
class CipherTransformFactory{constructor(dict,fileId,password){const filter=dict.get("Filter");if(!(0,_primitives.isName)(filter,"Standard")){throw new _util.FormatError("unknown encryption method");}
this.filterName=filter.name;this.dict=dict;const algorithm=dict.get("V");if(!Number.isInteger(algorithm)||algorithm!==1&&algorithm!==2&&algorithm!==4&&algorithm!==5){throw new _util.FormatError("unsupported encryption algorithm");}
this.algorithm=algorithm;let keyLength=dict.get("Length");if(!keyLength){if(algorithm<=3){keyLength=40;}else{const cfDict=dict.get("CF");const streamCryptoName=dict.get("StmF");if(cfDict instanceof _primitives.Dict&&streamCryptoName instanceof _primitives.Name){cfDict.suppressEncryption=true;const handlerDict=cfDict.get(streamCryptoName.name);keyLength=handlerDict&&handlerDict.get("Length")||128;if(keyLength<40){keyLength<<=3;}}}}
if(!Number.isInteger(keyLength)||keyLength<40||keyLength%8!==0){throw new _util.FormatError("invalid key length");}
const ownerPassword=(0,_util.stringToBytes)(dict.get("O")).subarray(0,32);const userPassword=(0,_util.stringToBytes)(dict.get("U")).subarray(0,32);const flags=dict.get("P");const revision=dict.get("R");const encryptMetadata=(algorithm===4||algorithm===5)&&dict.get("EncryptMetadata")!==false;this.encryptMetadata=encryptMetadata;const fileIdBytes=(0,_util.stringToBytes)(fileId);let passwordBytes;if(password){if(revision===6){try{password=(0,_util.utf8StringToString)(password);}catch(ex){(0,_util.warn)("CipherTransformFactory: "+"Unable to convert UTF8 encoded password.");}}
passwordBytes=(0,_util.stringToBytes)(password);}
let encryptionKey;if(algorithm!==5){encryptionKey=prepareKeyData(fileIdBytes,passwordBytes,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata);}else{const ownerValidationSalt=(0,_util.stringToBytes)(dict.get("O")).subarray(32,40);const ownerKeySalt=(0,_util.stringToBytes)(dict.get("O")).subarray(40,48);const uBytes=(0,_util.stringToBytes)(dict.get("U")).subarray(0,48);const userValidationSalt=(0,_util.stringToBytes)(dict.get("U")).subarray(32,40);const userKeySalt=(0,_util.stringToBytes)(dict.get("U")).subarray(40,48);const ownerEncryption=(0,_util.stringToBytes)(dict.get("OE"));const userEncryption=(0,_util.stringToBytes)(dict.get("UE"));const perms=(0,_util.stringToBytes)(dict.get("Perms"));encryptionKey=createEncryptionKey20(revision,passwordBytes,ownerPassword,ownerValidationSalt,ownerKeySalt,uBytes,userPassword,userValidationSalt,userKeySalt,ownerEncryption,userEncryption,perms);}
if(!encryptionKey&&!password){throw new _util.PasswordException("No password given",_util.PasswordResponses.NEED_PASSWORD);}else if(!encryptionKey&&password){const decodedPassword=decodeUserPassword(passwordBytes,ownerPassword,revision,keyLength);encryptionKey=prepareKeyData(fileIdBytes,decodedPassword,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata);}
if(!encryptionKey){throw new _util.PasswordException("Incorrect Password",_util.PasswordResponses.INCORRECT_PASSWORD);}
this.encryptionKey=encryptionKey;if(algorithm>=4){const cf=dict.get("CF");if(cf instanceof _primitives.Dict){cf.suppressEncryption=true;}
this.cf=cf;this.stmf=dict.get("StmF")||identityName;this.strf=dict.get("StrF")||identityName;this.eff=dict.get("EFF")||this.stmf;}}
createCipherTransform(num,gen){if(this.algorithm===4||this.algorithm===5){return new CipherTransform(buildCipherConstructor(this.cf,this.strf,num,gen,this.encryptionKey),buildCipherConstructor(this.cf,this.stmf,num,gen,this.encryptionKey));}
const key=buildObjectKey(num,gen,this.encryptionKey,false);const cipherConstructor=function buildCipherCipherConstructor(){return new ARCFourCipher(key);};return new CipherTransform(cipherConstructor,cipherConstructor);}}
return CipherTransformFactory;}();exports.CipherTransformFactory=CipherTransformFactory;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.DecryptStream=void 0;var _decode_stream=__w_pdfjs_require__(144);const chunkSize=512;class DecryptStream extends _decode_stream.DecodeStream{constructor(str,maybeLength,decrypt){super(maybeLength);this.str=str;this.dict=str.dict;this.decrypt=decrypt;this.nextChunk=null;this.initialized=false;}
readBlock(){let chunk;if(this.initialized){chunk=this.nextChunk;}else{chunk=this.str.getBytes(chunkSize);this.initialized=true;}
if(!chunk||chunk.length===0){this.eof=true;return;}
this.nextChunk=this.str.getBytes(chunkSize);const hasMoreData=this.nextChunk&&this.nextChunk.length>0;const decrypt=this.decrypt;chunk=decrypt(chunk,!hasMoreData);let bufferLength=this.bufferLength;const n=chunk.length,buffer=this.ensureBuffer(bufferLength+n);for(let i=0;i<n;i++){buffer[bufferLength++]=chunk[i];}
this.bufferLength=bufferLength;}}
exports.DecryptStream=DecryptStream;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Catalog=void 0;var _core_utils=__w_pdfjs_require__(131);var _util=__w_pdfjs_require__(2);var _primitives=__w_pdfjs_require__(130);var _name_number_tree=__w_pdfjs_require__(195);var _base_stream=__w_pdfjs_require__(132);var _cleanup_helper=__w_pdfjs_require__(196);var _colorspace=__w_pdfjs_require__(139);var _file_spec=__w_pdfjs_require__(197);var _image_utils=__w_pdfjs_require__(184);var _metadata_parser=__w_pdfjs_require__(198);var _struct_tree=__w_pdfjs_require__(199);function fetchDestination(dest){if(dest instanceof _primitives.Dict){dest=dest.get("D");}
return Array.isArray(dest)?dest:null;}
class Catalog{constructor(pdfManager,xref){this.pdfManager=pdfManager;this.xref=xref;this._catDict=xref.getCatalogObj();if(!(this._catDict instanceof _primitives.Dict)){throw new _util.FormatError("Catalog object is not a dictionary.");}
this.toplevelPagesDict;this._actualNumPages=null;this.fontCache=new _primitives.RefSetCache();this.builtInCMapCache=new Map();this.standardFontDataCache=new Map();this.globalImageCache=new _image_utils.GlobalImageCache();this.pageKidsCountCache=new _primitives.RefSetCache();this.pageIndexCache=new _primitives.RefSetCache();this.nonBlendModesSet=new _primitives.RefSet();}
get version(){const version=this._catDict.get("Version");return(0,_util.shadow)(this,"version",version instanceof _primitives.Name?version.name:null);}
get lang(){const lang=this._catDict.get("Lang");return(0,_util.shadow)(this,"lang",typeof lang==="string"?(0,_util.stringToPDFString)(lang):null);}
get needsRendering(){const needsRendering=this._catDict.get("NeedsRendering");return(0,_util.shadow)(this,"needsRendering",typeof needsRendering==="boolean"?needsRendering:false);}
get collection(){let collection=null;try{const obj=this._catDict.get("Collection");if(obj instanceof _primitives.Dict&&obj.size>0){collection=obj;}}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.info)("Cannot fetch Collection entry; assuming no collection is present.");}
return(0,_util.shadow)(this,"collection",collection);}
get acroForm(){let acroForm=null;try{const obj=this._catDict.get("AcroForm");if(obj instanceof _primitives.Dict&&obj.size>0){acroForm=obj;}}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.info)("Cannot fetch AcroForm entry; assuming no forms are present.");}
return(0,_util.shadow)(this,"acroForm",acroForm);}
get acroFormRef(){const value=this._catDict.getRaw("AcroForm");return(0,_util.shadow)(this,"acroFormRef",value instanceof _primitives.Ref?value:null);}
get metadata(){const streamRef=this._catDict.getRaw("Metadata");if(!(streamRef instanceof _primitives.Ref)){return(0,_util.shadow)(this,"metadata",null);}
let metadata=null;try{const suppressEncryption=!(this.xref.encrypt&&this.xref.encrypt.encryptMetadata);const stream=this.xref.fetch(streamRef,suppressEncryption);if(stream instanceof _base_stream.BaseStream&&stream.dict instanceof _primitives.Dict){const type=stream.dict.get("Type");const subtype=stream.dict.get("Subtype");if((0,_primitives.isName)(type,"Metadata")&&(0,_primitives.isName)(subtype,"XML")){const data=(0,_util.stringToUTF8String)(stream.getString());if(data){metadata=new _metadata_parser.MetadataParser(data).serializable;}}}}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.info)(`Skipping invalid Metadata: "${ex}".`);}
return(0,_util.shadow)(this,"metadata",metadata);}
get markInfo(){let markInfo=null;try{markInfo=this._readMarkInfo();}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)("Unable to read mark info.");}
return(0,_util.shadow)(this,"markInfo",markInfo);}
_readMarkInfo(){const obj=this._catDict.get("MarkInfo");if(!(obj instanceof _primitives.Dict)){return null;}
const markInfo={Marked:false,UserProperties:false,Suspects:false};for(const key in markInfo){const value=obj.get(key);if(typeof value==="boolean"){markInfo[key]=value;}}
return markInfo;}
get structTreeRoot(){let structTree=null;try{structTree=this._readStructTreeRoot();}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)("Unable read to structTreeRoot info.");}
return(0,_util.shadow)(this,"structTreeRoot",structTree);}
_readStructTreeRoot(){const obj=this._catDict.get("StructTreeRoot");if(!(obj instanceof _primitives.Dict)){return null;}
const root=new _struct_tree.StructTreeRoot(obj);root.init();return root;}
get toplevelPagesDict(){const pagesObj=this._catDict.get("Pages");if(!(pagesObj instanceof _primitives.Dict)){throw new _util.FormatError("Invalid top-level pages dictionary.");}
return(0,_util.shadow)(this,"toplevelPagesDict",pagesObj);}
get documentOutline(){let obj=null;try{obj=this._readDocumentOutline();}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)("Unable to read document outline.");}
return(0,_util.shadow)(this,"documentOutline",obj);}
_readDocumentOutline(){let obj=this._catDict.get("Outlines");if(!(obj instanceof _primitives.Dict)){return null;}
obj=obj.getRaw("First");if(!(obj instanceof _primitives.Ref)){return null;}
const root={items:[]};const queue=[{obj,parent:root}];const processed=new _primitives.RefSet();processed.put(obj);const xref=this.xref,blackColor=new Uint8ClampedArray(3);while(queue.length>0){const i=queue.shift();const outlineDict=xref.fetchIfRef(i.obj);if(outlineDict===null){continue;}
if(!outlineDict.has("Title")){throw new _util.FormatError("Invalid outline item encountered.");}
const data={url:null,dest:null};Catalog.parseDestDictionary({destDict:outlineDict,resultObj:data,docBaseUrl:this.pdfManager.docBaseUrl});const title=outlineDict.get("Title");const flags=outlineDict.get("F")||0;const color=outlineDict.getArray("C");const count=outlineDict.get("Count");let rgbColor=blackColor;if(Array.isArray(color)&&color.length===3&&(color[0]!==0||color[1]!==0||color[2]!==0)){rgbColor=_colorspace.ColorSpace.singletons.rgb.getRgb(color,0);}
const outlineItem={dest:data.dest,url:data.url,unsafeUrl:data.unsafeUrl,newWindow:data.newWindow,title:(0,_util.stringToPDFString)(title),color:rgbColor,count:Number.isInteger(count)?count:undefined,bold:!!(flags&2),italic:!!(flags&1),items:[]};i.parent.items.push(outlineItem);obj=outlineDict.getRaw("First");if(obj instanceof _primitives.Ref&&!processed.has(obj)){queue.push({obj,parent:outlineItem});processed.put(obj);}
obj=outlineDict.getRaw("Next");if(obj instanceof _primitives.Ref&&!processed.has(obj)){queue.push({obj,parent:i.parent});processed.put(obj);}}
return root.items.length>0?root.items:null;}
get permissions(){let permissions=null;try{permissions=this._readPermissions();}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)("Unable to read permissions.");}
return(0,_util.shadow)(this,"permissions",permissions);}
_readPermissions(){const encrypt=this.xref.trailer.get("Encrypt");if(!(encrypt instanceof _primitives.Dict)){return null;}
let flags=encrypt.get("P");if(typeof flags!=="number"){return null;}
flags+=2**32;const permissions=[];for(const key in _util.PermissionFlag){const value=_util.PermissionFlag[key];if(flags&value){permissions.push(value);}}
return permissions;}
get optionalContentConfig(){let config=null;try{const properties=this._catDict.get("OCProperties");if(!properties){return(0,_util.shadow)(this,"optionalContentConfig",null);}
const defaultConfig=properties.get("D");if(!defaultConfig){return(0,_util.shadow)(this,"optionalContentConfig",null);}
const groupsData=properties.get("OCGs");if(!Array.isArray(groupsData)){return(0,_util.shadow)(this,"optionalContentConfig",null);}
const groups=[];const groupRefs=[];for(const groupRef of groupsData){if(!(groupRef instanceof _primitives.Ref)){continue;}
groupRefs.push(groupRef);const group=this.xref.fetchIfRef(groupRef);groups.push({id:groupRef.toString(),name:typeof group.get("Name")==="string"?(0,_util.stringToPDFString)(group.get("Name")):null,intent:typeof group.get("Intent")==="string"?(0,_util.stringToPDFString)(group.get("Intent")):null});}
config=this._readOptionalContentConfig(defaultConfig,groupRefs);config.groups=groups;}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)(`Unable to read optional content config: ${ex}`);}
return(0,_util.shadow)(this,"optionalContentConfig",config);}
_readOptionalContentConfig(config,contentGroupRefs){function parseOnOff(refs){const onParsed=[];if(Array.isArray(refs)){for(const value of refs){if(!(value instanceof _primitives.Ref)){continue;}
if(contentGroupRefs.includes(value)){onParsed.push(value.toString());}}}
return onParsed;}
function parseOrder(refs){let nestedLevels=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;if(!Array.isArray(refs)){return null;}
const order=[];for(const value of refs){if(value instanceof _primitives.Ref&&contentGroupRefs.includes(value)){parsedOrderRefs.put(value);order.push(value.toString());continue;}
const nestedOrder=parseNestedOrder(value,nestedLevels);if(nestedOrder){order.push(nestedOrder);}}
if(nestedLevels>0){return order;}
const hiddenGroups=[];for(const groupRef of contentGroupRefs){if(parsedOrderRefs.has(groupRef)){continue;}
hiddenGroups.push(groupRef.toString());}
if(hiddenGroups.length){order.push({name:null,order:hiddenGroups});}
return order;}
function parseNestedOrder(ref,nestedLevels){if(++nestedLevels>MAX_NESTED_LEVELS){(0,_util.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null;}
const value=xref.fetchIfRef(ref);if(!Array.isArray(value)){return null;}
const nestedName=xref.fetchIfRef(value[0]);if(typeof nestedName!=="string"){return null;}
const nestedOrder=parseOrder(value.slice(1),nestedLevels);if(!nestedOrder||!nestedOrder.length){return null;}
return{name:(0,_util.stringToPDFString)(nestedName),order:nestedOrder};}
const xref=this.xref,parsedOrderRefs=new _primitives.RefSet(),MAX_NESTED_LEVELS=10;return{name:typeof config.get("Name")==="string"?(0,_util.stringToPDFString)(config.get("Name")):null,creator:typeof config.get("Creator")==="string"?(0,_util.stringToPDFString)(config.get("Creator")):null,baseState:config.get("BaseState")instanceof _primitives.Name?config.get("BaseState").name:null,on:parseOnOff(config.get("ON")),off:parseOnOff(config.get("OFF")),order:parseOrder(config.get("Order")),groups:null};}
setActualNumPages(){let num=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;this._actualNumPages=num;}
get hasActualNumPages(){return this._actualNumPages!==null;}
get _pagesCount(){const obj=this.toplevelPagesDict.get("Count");if(!Number.isInteger(obj)){throw new _util.FormatError("Page count in top-level pages dictionary is not an integer.");}
return(0,_util.shadow)(this,"_pagesCount",obj);}
get numPages(){return this.hasActualNumPages?this._actualNumPages:this._pagesCount;}
get destinations(){const obj=this._readDests(),dests=Object.create(null);if(obj instanceof _name_number_tree.NameTree){for(const[key,value]of obj.getAll()){const dest=fetchDestination(value);if(dest){dests[(0,_util.stringToPDFString)(key)]=dest;}}}else if(obj instanceof _primitives.Dict){obj.forEach(function(key,value){const dest=fetchDestination(value);if(dest){dests[key]=dest;}});}
return(0,_util.shadow)(this,"destinations",dests);}
getDestination(id){const obj=this._readDests();if(obj instanceof _name_number_tree.NameTree){const dest=fetchDestination(obj.get(id));if(dest){return dest;}
const allDest=this.destinations[id];if(allDest){(0,_util.warn)(`Found "${id}" at an incorrect position in the NameTree.`);return allDest;}}else if(obj instanceof _primitives.Dict){const dest=fetchDestination(obj.get(id));if(dest){return dest;}}
return null;}
_readDests(){const obj=this._catDict.get("Names");if(obj&&obj.has("Dests")){return new _name_number_tree.NameTree(obj.getRaw("Dests"),this.xref);}else if(this._catDict.has("Dests")){return this._catDict.get("Dests");}
return undefined;}
get pageLabels(){let obj=null;try{obj=this._readPageLabels();}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)("Unable to read page labels.");}
return(0,_util.shadow)(this,"pageLabels",obj);}
_readPageLabels(){const obj=this._catDict.getRaw("PageLabels");if(!obj){return null;}
const pageLabels=new Array(this.numPages);let style=null,prefix="";const numberTree=new _name_number_tree.NumberTree(obj,this.xref);const nums=numberTree.getAll();let currentLabel="",currentIndex=1;for(let i=0,ii=this.numPages;i<ii;i++){const labelDict=nums.get(i);if(labelDict!==undefined){if(!(labelDict instanceof _primitives.Dict)){throw new _util.FormatError("PageLabel is not a dictionary.");}
if(labelDict.has("Type")&&!(0,_primitives.isName)(labelDict.get("Type"),"PageLabel")){throw new _util.FormatError("Invalid type in PageLabel dictionary.");}
if(labelDict.has("S")){const s=labelDict.get("S");if(!(s instanceof _primitives.Name)){throw new _util.FormatError("Invalid style in PageLabel dictionary.");}
style=s.name;}else{style=null;}
if(labelDict.has("P")){const p=labelDict.get("P");if(typeof p!=="string"){throw new _util.FormatError("Invalid prefix in PageLabel dictionary.");}
prefix=(0,_util.stringToPDFString)(p);}else{prefix="";}
if(labelDict.has("St")){const st=labelDict.get("St");if(!(Number.isInteger(st)&&st>=1)){throw new _util.FormatError("Invalid start in PageLabel dictionary.");}
currentIndex=st;}else{currentIndex=1;}}
switch(style){case"D":currentLabel=currentIndex;break;case"R":case"r":currentLabel=(0,_core_utils.toRomanNumerals)(currentIndex,style==="r");break;case"A":case"a":const LIMIT=26;const A_UPPER_CASE=0x41,A_LOWER_CASE=0x61;const baseCharCode=style==="a"?A_LOWER_CASE:A_UPPER_CASE;const letterIndex=currentIndex-1;const character=String.fromCharCode(baseCharCode+letterIndex%LIMIT);currentLabel=character.repeat(Math.floor(letterIndex/LIMIT)+1);break;default:if(style){throw new _util.FormatError(`Invalid style "${style}" in PageLabel dictionary.`);}
currentLabel="";}
pageLabels[i]=prefix+currentLabel;currentIndex++;}
return pageLabels;}
get pageLayout(){const obj=this._catDict.get("PageLayout");let pageLayout="";if(obj instanceof _primitives.Name){switch(obj.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":pageLayout=obj.name;}}
return(0,_util.shadow)(this,"pageLayout",pageLayout);}
get pageMode(){const obj=this._catDict.get("PageMode");let pageMode="UseNone";if(obj instanceof _primitives.Name){switch(obj.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":pageMode=obj.name;}}
return(0,_util.shadow)(this,"pageMode",pageMode);}
get viewerPreferences(){const obj=this._catDict.get("ViewerPreferences");if(!(obj instanceof _primitives.Dict)){return(0,_util.shadow)(this,"viewerPreferences",null);}
let prefs=null;for(const key of obj.getKeys()){const value=obj.get(key);let prefValue;switch(key){case"HideToolbar":case"HideMenubar":case"HideWindowUI":case"FitWindow":case"CenterWindow":case"DisplayDocTitle":case"PickTrayByPDFSize":if(typeof value==="boolean"){prefValue=value;}
break;case"NonFullScreenPageMode":if(value instanceof _primitives.Name){switch(value.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":prefValue=value.name;break;default:prefValue="UseNone";}}
break;case"Direction":if(value instanceof _primitives.Name){switch(value.name){case"L2R":case"R2L":prefValue=value.name;break;default:prefValue="L2R";}}
break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":if(value instanceof _primitives.Name){switch(value.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":prefValue=value.name;break;default:prefValue="CropBox";}}
break;case"PrintScaling":if(value instanceof _primitives.Name){switch(value.name){case"None":case"AppDefault":prefValue=value.name;break;default:prefValue="AppDefault";}}
break;case"Duplex":if(value instanceof _primitives.Name){switch(value.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":prefValue=value.name;break;default:prefValue="None";}}
break;case"PrintPageRange":if(Array.isArray(value)&&value.length%2===0){const isValid=value.every((page,i,arr)=>{return Number.isInteger(page)&&page>0&&(i===0||page>=arr[i-1])&&page<=this.numPages;});if(isValid){prefValue=value;}}
break;case"NumCopies":if(Number.isInteger(value)&&value>0){prefValue=value;}
break;default:(0,_util.warn)(`Ignoring non-standard key in ViewerPreferences: ${key}.`);continue;}
if(prefValue===undefined){(0,_util.warn)(`Bad value, for key "${key}", in ViewerPreferences: ${value}.`);continue;}
if(!prefs){prefs=Object.create(null);}
prefs[key]=prefValue;}
return(0,_util.shadow)(this,"viewerPreferences",prefs);}
get openAction(){const obj=this._catDict.get("OpenAction");const openAction=Object.create(null);if(obj instanceof _primitives.Dict){const destDict=new _primitives.Dict(this.xref);destDict.set("A",obj);const resultObj={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict,resultObj});if(Array.isArray(resultObj.dest)){openAction.dest=resultObj.dest;}else if(resultObj.action){openAction.action=resultObj.action;}}else if(Array.isArray(obj)){openAction.dest=obj;}
return(0,_util.shadow)(this,"openAction",(0,_util.objectSize)(openAction)>0?openAction:null);}
get attachments(){const obj=this._catDict.get("Names");let attachments=null;if(obj instanceof _primitives.Dict&&obj.has("EmbeddedFiles")){const nameTree=new _name_number_tree.NameTree(obj.getRaw("EmbeddedFiles"),this.xref);for(const[key,value]of nameTree.getAll()){const fs=new _file_spec.FileSpec(value,this.xref);if(!attachments){attachments=Object.create(null);}
attachments[(0,_util.stringToPDFString)(key)]=fs.serializable;}}
return(0,_util.shadow)(this,"attachments",attachments);}
get xfaImages(){const obj=this._catDict.get("Names");let xfaImages=null;if(obj instanceof _primitives.Dict&&obj.has("XFAImages")){const nameTree=new _name_number_tree.NameTree(obj.getRaw("XFAImages"),this.xref);for(const[key,value]of nameTree.getAll()){if(!xfaImages){xfaImages=new _primitives.Dict(this.xref);}
xfaImages.set((0,_util.stringToPDFString)(key),value);}}
return(0,_util.shadow)(this,"xfaImages",xfaImages);}
_collectJavaScript(){const obj=this._catDict.get("Names");let javaScript=null;function appendIfJavaScriptDict(name,jsDict){if(!(jsDict instanceof _primitives.Dict)){return;}
if(!(0,_primitives.isName)(jsDict.get("S"),"JavaScript")){return;}
let js=jsDict.get("JS");if(js instanceof _base_stream.BaseStream){js=js.getString();}else if(typeof js!=="string"){return;}
if(javaScript===null){javaScript=new Map();}
js=(0,_util.stringToPDFString)(js).replace(/\u0000/g,"");javaScript.set(name,js);}
if(obj instanceof _primitives.Dict&&obj.has("JavaScript")){const nameTree=new _name_number_tree.NameTree(obj.getRaw("JavaScript"),this.xref);for(const[key,value]of nameTree.getAll()){appendIfJavaScriptDict((0,_util.stringToPDFString)(key),value);}}
const openAction=this._catDict.get("OpenAction");if(openAction){appendIfJavaScriptDict("OpenAction",openAction);}
return javaScript;}
get javaScript(){const javaScript=this._collectJavaScript();return(0,_util.shadow)(this,"javaScript",javaScript?[...javaScript.values()]:null);}
get jsActions(){const javaScript=this._collectJavaScript();let actions=(0,_core_utils.collectActions)(this.xref,this._catDict,_util.DocumentActionEventType);if(javaScript){if(!actions){actions=Object.create(null);}
for(const[key,val]of javaScript){if(key in actions){actions[key].push(val);}else{actions[key]=[val];}}}
return(0,_util.shadow)(this,"jsActions",actions);}
async fontFallback(id,handler){const translatedFonts=await Promise.all(this.fontCache);for(const translatedFont of translatedFonts){if(translatedFont.loadedName===id){translatedFont.fallback(handler);return;}}}
async cleanup(){let manuallyTriggered=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;(0,_cleanup_helper.clearGlobalCaches)();this.globalImageCache.clear(manuallyTriggered);this.pageKidsCountCache.clear();this.pageIndexCache.clear();this.nonBlendModesSet.clear();const translatedFonts=await Promise.all(this.fontCache);for(const{dict}of translatedFonts){delete dict.cacheKey;}
this.fontCache.clear();this.builtInCMapCache.clear();this.standardFontDataCache.clear();}
async getPageDict(pageIndex){const nodesToVisit=[this.toplevelPagesDict];const visitedNodes=new _primitives.RefSet();const pagesRef=this._catDict.getRaw("Pages");if(pagesRef instanceof _primitives.Ref){visitedNodes.put(pagesRef);}
const xref=this.xref,pageKidsCountCache=this.pageKidsCountCache,pageIndexCache=this.pageIndexCache;let currentPageIndex=0;while(nodesToVisit.length){const currentNode=nodesToVisit.pop();if(currentNode instanceof _primitives.Ref){const count=pageKidsCountCache.get(currentNode);if(count>=0&&currentPageIndex+count<=pageIndex){currentPageIndex+=count;continue;}
if(visitedNodes.has(currentNode)){throw new _util.FormatError("Pages tree contains circular reference.");}
visitedNodes.put(currentNode);const obj=await xref.fetchAsync(currentNode);if(obj instanceof _primitives.Dict){let type=obj.getRaw("Type");if(type instanceof _primitives.Ref){type=await xref.fetchAsync(type);}
if((0,_primitives.isName)(type,"Page")||!obj.has("Kids")){if(!pageKidsCountCache.has(currentNode)){pageKidsCountCache.put(currentNode,1);}
if(!pageIndexCache.has(currentNode)){pageIndexCache.put(currentNode,currentPageIndex);}
if(currentPageIndex===pageIndex){return[obj,currentNode];}
currentPageIndex++;continue;}}
nodesToVisit.push(obj);continue;}
if(!(currentNode instanceof _primitives.Dict)){throw new _util.FormatError("Page dictionary kid reference points to wrong type of object.");}
const{objId}=currentNode;let count=currentNode.getRaw("Count");if(count instanceof _primitives.Ref){count=await xref.fetchAsync(count);}
if(Number.isInteger(count)&&count>=0){if(objId&&!pageKidsCountCache.has(objId)){pageKidsCountCache.put(objId,count);}
if(currentPageIndex+count<=pageIndex){currentPageIndex+=count;continue;}}
let kids=currentNode.getRaw("Kids");if(kids instanceof _primitives.Ref){kids=await xref.fetchAsync(kids);}
if(!Array.isArray(kids)){let type=currentNode.getRaw("Type");if(type instanceof _primitives.Ref){type=await xref.fetchAsync(type);}
if((0,_primitives.isName)(type,"Page")||!currentNode.has("Kids")){if(currentPageIndex===pageIndex){return[currentNode,null];}
currentPageIndex++;continue;}
throw new _util.FormatError("Page dictionary kids object is not an array.");}
for(let last=kids.length-1;last>=0;last--){nodesToVisit.push(kids[last]);}}
throw new Error(`Page index ${pageIndex} not found.`);}
async getAllPageDicts(){let recoveryMode=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;const queue=[{currentNode:this.toplevelPagesDict,posInKids:0}];const visitedNodes=new _primitives.RefSet();const pagesRef=this._catDict.getRaw("Pages");if(pagesRef instanceof _primitives.Ref){visitedNodes.put(pagesRef);}
const map=new Map(),xref=this.xref,pageIndexCache=this.pageIndexCache;let pageIndex=0;function addPageDict(pageDict,pageRef){if(pageRef&&!pageIndexCache.has(pageRef)){pageIndexCache.put(pageRef,pageIndex);}
map.set(pageIndex++,[pageDict,pageRef]);}
function addPageError(error){if(error instanceof _core_utils.XRefEntryException&&!recoveryMode){throw error;}
map.set(pageIndex++,[error,null]);}
while(queue.length>0){const queueItem=queue.at(-1);const{currentNode,posInKids}=queueItem;let kids=currentNode.getRaw("Kids");if(kids instanceof _primitives.Ref){try{kids=await xref.fetchAsync(kids);}catch(ex){addPageError(ex);break;}}
if(!Array.isArray(kids)){addPageError(new _util.FormatError("Page dictionary kids object is not an array."));break;}
if(posInKids>=kids.length){queue.pop();continue;}
const kidObj=kids[posInKids];let obj;if(kidObj instanceof _primitives.Ref){if(visitedNodes.has(kidObj)){addPageError(new _util.FormatError("Pages tree contains circular reference."));break;}
visitedNodes.put(kidObj);try{obj=await xref.fetchAsync(kidObj);}catch(ex){addPageError(ex);break;}}else{obj=kidObj;}
if(!(obj instanceof _primitives.Dict)){addPageError(new _util.FormatError("Page dictionary kid reference points to wrong type of object."));break;}
let type=obj.getRaw("Type");if(type instanceof _primitives.Ref){try{type=await xref.fetchAsync(type);}catch(ex){addPageError(ex);break;}}
if((0,_primitives.isName)(type,"Page")||!obj.has("Kids")){addPageDict(obj,kidObj instanceof _primitives.Ref?kidObj:null);}else{queue.push({currentNode:obj,posInKids:0});}
queueItem.posInKids++;}
return map;}
getPageIndex(pageRef){const cachedPageIndex=this.pageIndexCache.get(pageRef);if(cachedPageIndex!==undefined){return Promise.resolve(cachedPageIndex);}
const xref=this.xref;function pagesBeforeRef(kidRef){let total=0,parentRef;return xref.fetchAsync(kidRef).then(function(node){if((0,_primitives.isRefsEqual)(kidRef,pageRef)&&!(0,_primitives.isDict)(node,"Page")&&!(node instanceof _primitives.Dict&&!node.has("Type")&&node.has("Contents"))){throw new _util.FormatError("The reference does not point to a /Page dictionary.");}
if(!node){return null;}
if(!(node instanceof _primitives.Dict)){throw new _util.FormatError("Node must be a dictionary.");}
parentRef=node.getRaw("Parent");return node.getAsync("Parent");}).then(function(parent){if(!parent){return null;}
if(!(parent instanceof _primitives.Dict)){throw new _util.FormatError("Parent must be a dictionary.");}
return parent.getAsync("Kids");}).then(function(kids){if(!kids){return null;}
const kidPromises=[];let found=false;for(let i=0,ii=kids.length;i<ii;i++){const kid=kids[i];if(!(kid instanceof _primitives.Ref)){throw new _util.FormatError("Kid must be a reference.");}
if((0,_primitives.isRefsEqual)(kid,kidRef)){found=true;break;}
kidPromises.push(xref.fetchAsync(kid).then(function(obj){if(!(obj instanceof _primitives.Dict)){throw new _util.FormatError("Kid node must be a dictionary.");}
if(obj.has("Count")){total+=obj.get("Count");}else{total++;}}));}
if(!found){throw new _util.FormatError("Kid reference not found in parent's kids.");}
return Promise.all(kidPromises).then(function(){return[total,parentRef];});});}
let total=0;const next=ref=>pagesBeforeRef(ref).then(args=>{if(!args){this.pageIndexCache.put(pageRef,total);return total;}
const[count,parentRef]=args;total+=count;return next(parentRef);});return next(pageRef);}
get baseUrl(){const uri=this._catDict.get("URI");if(uri instanceof _primitives.Dict){const base=uri.get("Base");if(typeof base==="string"){const absoluteUrl=(0,_util.createValidAbsoluteUrl)(base,null,{tryConvertEncoding:true});if(absoluteUrl){return(0,_util.shadow)(this,"baseUrl",absoluteUrl.href);}}}
return(0,_util.shadow)(this,"baseUrl",null);}
static parseDestDictionary(params){const destDict=params.destDict;if(!(destDict instanceof _primitives.Dict)){(0,_util.warn)("parseDestDictionary: `destDict` must be a dictionary.");return;}
const resultObj=params.resultObj;if(typeof resultObj!=="object"){(0,_util.warn)("parseDestDictionary: `resultObj` must be an object.");return;}
const docBaseUrl=params.docBaseUrl||null;let action=destDict.get("A"),url,dest;if(!(action instanceof _primitives.Dict)){if(destDict.has("Dest")){action=destDict.get("Dest");}else{action=destDict.get("AA");if(action instanceof _primitives.Dict){if(action.has("D")){action=action.get("D");}else if(action.has("U")){action=action.get("U");}}}}
if(action instanceof _primitives.Dict){const actionType=action.get("S");if(!(actionType instanceof _primitives.Name)){(0,_util.warn)("parseDestDictionary: Invalid type in Action dictionary.");return;}
const actionName=actionType.name;switch(actionName){case"ResetForm":const flags=action.get("Flags");const include=((typeof flags==="number"?flags:0)&1)===0;const fields=[];const refs=[];for(const obj of action.get("Fields")||[]){if(obj instanceof _primitives.Ref){refs.push(obj.toString());}else if(typeof obj==="string"){fields.push((0,_util.stringToPDFString)(obj));}}
resultObj.resetForm={fields,refs,include};break;case"URI":url=action.get("URI");if(url instanceof _primitives.Name){url="/"+url.name;}
break;case"GoTo":dest=action.get("D");break;case"Launch":case"GoToR":const urlDict=action.get("F");if(urlDict instanceof _primitives.Dict){url=urlDict.get("F")||null;}else if(typeof urlDict==="string"){url=urlDict;}
let remoteDest=action.get("D");if(remoteDest){if(remoteDest instanceof _primitives.Name){remoteDest=remoteDest.name;}
if(typeof url==="string"){const baseUrl=url.split("#")[0];if(typeof remoteDest==="string"){url=baseUrl+"#"+remoteDest;}else if(Array.isArray(remoteDest)){url=baseUrl+"#"+JSON.stringify(remoteDest);}}}
const newWindow=action.get("NewWindow");if(typeof newWindow==="boolean"){resultObj.newWindow=newWindow;}
break;case"Named":const namedAction=action.get("N");if(namedAction instanceof _primitives.Name){resultObj.action=namedAction.name;}
break;case"JavaScript":const jsAction=action.get("JS");let js;if(jsAction instanceof _base_stream.BaseStream){js=jsAction.getString();}else if(typeof jsAction==="string"){js=jsAction;}
const jsURL=js&&(0,_core_utils.recoverJsURL)((0,_util.stringToPDFString)(js));if(jsURL){url=jsURL.url;resultObj.newWindow=jsURL.newWindow;break;}
default:if(actionName==="JavaScript"||actionName==="SubmitForm"){break;}
(0,_util.warn)(`parseDestDictionary - unsupported action: "${actionName}".`);break;}}else if(destDict.has("Dest")){dest=destDict.get("Dest");}
if(typeof url==="string"){const absoluteUrl=(0,_util.createValidAbsoluteUrl)(url,docBaseUrl,{addDefaultProtocol:true,tryConvertEncoding:true});if(absoluteUrl){resultObj.url=absoluteUrl.href;}
resultObj.unsafeUrl=url;}
if(dest){if(dest instanceof _primitives.Name){dest=dest.name;}
if(typeof dest==="string"){resultObj.dest=(0,_util.stringToPDFString)(dest);}else if(Array.isArray(dest)){resultObj.dest=dest;}}}}
exports.Catalog=Catalog;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.NumberTree=exports.NameTree=void 0;var _primitives=__w_pdfjs_require__(130);var _util=__w_pdfjs_require__(2);class NameOrNumberTree{constructor(root,xref,type){if(this.constructor===NameOrNumberTree){(0,_util.unreachable)("Cannot initialize NameOrNumberTree.");}
this.root=root;this.xref=xref;this._type=type;}
getAll(){const map=new Map();if(!this.root){return map;}
const xref=this.xref;const processed=new _primitives.RefSet();processed.put(this.root);const queue=[this.root];while(queue.length>0){const obj=xref.fetchIfRef(queue.shift());if(!(obj instanceof _primitives.Dict)){continue;}
if(obj.has("Kids")){const kids=obj.get("Kids");if(!Array.isArray(kids)){continue;}
for(const kid of kids){if(processed.has(kid)){throw new _util.FormatError(`Duplicate entry in "${this._type}" tree.`);}
queue.push(kid);processed.put(kid);}
continue;}
const entries=obj.get(this._type);if(!Array.isArray(entries)){continue;}
for(let i=0,ii=entries.length;i<ii;i+=2){map.set(xref.fetchIfRef(entries[i]),xref.fetchIfRef(entries[i+1]));}}
return map;}
get(key){if(!this.root){return null;}
const xref=this.xref;let kidsOrEntries=xref.fetchIfRef(this.root);let loopCount=0;const MAX_LEVELS=10;while(kidsOrEntries.has("Kids")){if(++loopCount>MAX_LEVELS){(0,_util.warn)(`Search depth limit reached for "${this._type}" tree.`);return null;}
const kids=kidsOrEntries.get("Kids");if(!Array.isArray(kids)){return null;}
let l=0,r=kids.length-1;while(l<=r){const m=l+r>>1;const kid=xref.fetchIfRef(kids[m]);const limits=kid.get("Limits");if(key<xref.fetchIfRef(limits[0])){r=m-1;}else if(key>xref.fetchIfRef(limits[1])){l=m+1;}else{kidsOrEntries=kid;break;}}
if(l>r){return null;}}
const entries=kidsOrEntries.get(this._type);if(Array.isArray(entries)){let l=0,r=entries.length-2;while(l<=r){const tmp=l+r>>1,m=tmp+(tmp&1);const currentKey=xref.fetchIfRef(entries[m]);if(key<currentKey){r=m-2;}else if(key>currentKey){l=m+2;}else{return xref.fetchIfRef(entries[m+1]);}}}
return null;}}
class NameTree extends NameOrNumberTree{constructor(root,xref){super(root,xref,"Names");}}
exports.NameTree=NameTree;class NumberTree extends NameOrNumberTree{constructor(root,xref){super(root,xref,"Nums");}}
exports.NumberTree=NumberTree;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.clearGlobalCaches=clearGlobalCaches;var _primitives=__w_pdfjs_require__(130);var _unicode=__w_pdfjs_require__(165);function clearGlobalCaches(){(0,_primitives.clearPrimitiveCaches)();(0,_unicode.clearUnicodeCaches)();}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.FileSpec=void 0;var _util=__w_pdfjs_require__(2);var _base_stream=__w_pdfjs_require__(132);var _primitives=__w_pdfjs_require__(130);function pickPlatformItem(dict){if(dict.has("UF")){return dict.get("UF");}else if(dict.has("F")){return dict.get("F");}else if(dict.has("Unix")){return dict.get("Unix");}else if(dict.has("Mac")){return dict.get("Mac");}else if(dict.has("DOS")){return dict.get("DOS");}
return null;}
class FileSpec{constructor(root,xref){if(!(root instanceof _primitives.Dict)){return;}
this.xref=xref;this.root=root;if(root.has("FS")){this.fs=root.get("FS");}
this.description=root.has("Desc")?(0,_util.stringToPDFString)(root.get("Desc")):"";if(root.has("RF")){(0,_util.warn)("Related file specifications are not supported");}
this.contentAvailable=true;if(!root.has("EF")){this.contentAvailable=false;(0,_util.warn)("Non-embedded file specifications are not supported");}}
get filename(){if(!this._filename&&this.root){const filename=pickPlatformItem(this.root)||"unnamed";this._filename=(0,_util.stringToPDFString)(filename).replace(/\\\\/g,"\\").replace(/\\\//g,"/").replace(/\\/g,"/");}
return this._filename;}
get content(){if(!this.contentAvailable){return null;}
if(!this.contentRef&&this.root){this.contentRef=pickPlatformItem(this.root.get("EF"));}
let content=null;if(this.contentRef){const fileObj=this.xref.fetchIfRef(this.contentRef);if(fileObj instanceof _base_stream.BaseStream){content=fileObj.getBytes();}else{(0,_util.warn)("Embedded file specification points to non-existing/invalid content");}}else{(0,_util.warn)("Embedded file specification does not have a content");}
return content;}
get serializable(){return{filename:this.filename,content:this.content};}}
exports.FileSpec=FileSpec;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.MetadataParser=void 0;var _xml_parser=__w_pdfjs_require__(191);class MetadataParser{constructor(data){data=this._repair(data);const parser=new _xml_parser.SimpleXMLParser({lowerCaseName:true});const xmlDocument=parser.parseFromString(data);this._metadataMap=new Map();this._data=data;if(xmlDocument){this._parse(xmlDocument);}}
_repair(data){return data.replace(/^[^<]+/,"").replace(/>\\376\\377([^<]+)/g,function(all,codes){const bytes=codes.replace(/\\([0-3])([0-7])([0-7])/g,function(code,d1,d2,d3){return String.fromCharCode(d1*64+d2*8+d3*1);}).replace(/&(amp|apos|gt|lt|quot);/g,function(str,name){switch(name){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"';}
throw new Error(`_repair: ${name} isn't defined.`);});const charBuf=[];for(let i=0,ii=bytes.length;i<ii;i+=2){const code=bytes.charCodeAt(i)*256+bytes.charCodeAt(i+1);if(code>=32&&code<127&&code!==60&&code!==62&&code!==38){charBuf.push(String.fromCharCode(code));}else{charBuf.push("&#x"+(0x10000+code).toString(16).substring(1)+";");}}
return">"+charBuf.join("");});}
_getSequence(entry){const name=entry.nodeName;if(name!=="rdf:bag"&&name!=="rdf:seq"&&name!=="rdf:alt"){return null;}
return entry.childNodes.filter(node=>node.nodeName==="rdf:li");}
_parseArray(entry){if(!entry.hasChildNodes()){return;}
const[seqNode]=entry.childNodes;const sequence=this._getSequence(seqNode)||[];this._metadataMap.set(entry.nodeName,sequence.map(node=>node.textContent.trim()));}
_parse(xmlDocument){let rdf=xmlDocument.documentElement;if(rdf.nodeName!=="rdf:rdf"){rdf=rdf.firstChild;while(rdf&&rdf.nodeName!=="rdf:rdf"){rdf=rdf.nextSibling;}}
if(!rdf||rdf.nodeName!=="rdf:rdf"||!rdf.hasChildNodes()){return;}
for(const desc of rdf.childNodes){if(desc.nodeName!=="rdf:description"){continue;}
for(const entry of desc.childNodes){const name=entry.nodeName;switch(name){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(entry);continue;}
this._metadataMap.set(name,entry.textContent.trim());}}}
get serializable(){return{parsedData:this._metadataMap,rawData:this._data};}}
exports.MetadataParser=MetadataParser;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.StructTreeRoot=exports.StructTreePage=void 0;var _primitives=__w_pdfjs_require__(130);var _util=__w_pdfjs_require__(2);var _name_number_tree=__w_pdfjs_require__(195);const MAX_DEPTH=40;const StructElementType={PAGE_CONTENT:"PAGE_CONTENT",STREAM_CONTENT:"STREAM_CONTENT",OBJECT:"OBJECT",ELEMENT:"ELEMENT"};class StructTreeRoot{constructor(rootDict){this.dict=rootDict;this.roleMap=new Map();}
init(){this.readRoleMap();}
readRoleMap(){const roleMapDict=this.dict.get("RoleMap");if(!(roleMapDict instanceof _primitives.Dict)){return;}
roleMapDict.forEach((key,value)=>{if(!(value instanceof _primitives.Name)){return;}
this.roleMap.set(key,value.name);});}}
exports.StructTreeRoot=StructTreeRoot;class StructElementNode{constructor(tree,dict){this.tree=tree;this.dict=dict;this.kids=[];this.parseKids();}
get role(){const nameObj=this.dict.get("S");const name=nameObj instanceof _primitives.Name?nameObj.name:"";const{root}=this.tree;if(root.roleMap.has(name)){return root.roleMap.get(name);}
return name;}
parseKids(){let pageObjId=null;const objRef=this.dict.getRaw("Pg");if(objRef instanceof _primitives.Ref){pageObjId=objRef.toString();}
const kids=this.dict.get("K");if(Array.isArray(kids)){for(const kid of kids){const element=this.parseKid(pageObjId,kid);if(element){this.kids.push(element);}}}else{const element=this.parseKid(pageObjId,kids);if(element){this.kids.push(element);}}}
parseKid(pageObjId,kid){if(Number.isInteger(kid)){if(this.tree.pageDict.objId!==pageObjId){return null;}
return new StructElement({type:StructElementType.PAGE_CONTENT,mcid:kid,pageObjId});}
let kidDict=null;if(kid instanceof _primitives.Ref){kidDict=this.dict.xref.fetch(kid);}else if(kid instanceof _primitives.Dict){kidDict=kid;}
if(!kidDict){return null;}
const pageRef=kidDict.getRaw("Pg");if(pageRef instanceof _primitives.Ref){pageObjId=pageRef.toString();}
const type=kidDict.get("Type")instanceof _primitives.Name?kidDict.get("Type").name:null;if(type==="MCR"){if(this.tree.pageDict.objId!==pageObjId){return null;}
return new StructElement({type:StructElementType.STREAM_CONTENT,refObjId:kidDict.getRaw("Stm")instanceof _primitives.Ref?kidDict.getRaw("Stm").toString():null,pageObjId,mcid:kidDict.get("MCID")});}
if(type==="OBJR"){if(this.tree.pageDict.objId!==pageObjId){return null;}
return new StructElement({type:StructElementType.OBJECT,refObjId:kidDict.getRaw("Obj")instanceof _primitives.Ref?kidDict.getRaw("Obj").toString():null,pageObjId});}
return new StructElement({type:StructElementType.ELEMENT,dict:kidDict});}}
class StructElement{constructor(_ref){let{type,dict=null,mcid=null,pageObjId=null,refObjId=null}=_ref;this.type=type;this.dict=dict;this.mcid=mcid;this.pageObjId=pageObjId;this.refObjId=refObjId;this.parentNode=null;}}
class StructTreePage{constructor(structTreeRoot,pageDict){this.root=structTreeRoot;this.rootDict=structTreeRoot?structTreeRoot.dict:null;this.pageDict=pageDict;this.nodes=[];}
parse(){if(!this.root||!this.rootDict){return;}
const parentTree=this.rootDict.get("ParentTree");if(!parentTree){return;}
const id=this.pageDict.get("StructParents");if(!Number.isInteger(id)){return;}
const numberTree=new _name_number_tree.NumberTree(parentTree,this.rootDict.xref);const parentArray=numberTree.get(id);if(!Array.isArray(parentArray)){return;}
const map=new Map();for(const ref of parentArray){if(ref instanceof _primitives.Ref){this.addNode(this.rootDict.xref.fetch(ref),map);}}}
addNode(dict,map){let level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;if(level>MAX_DEPTH){(0,_util.warn)("StructTree MAX_DEPTH reached.");return null;}
if(map.has(dict)){return map.get(dict);}
const element=new StructElementNode(this,dict);map.set(dict,element);const parent=dict.get("P");if(!parent||(0,_primitives.isName)(parent.get("Type"),"StructTreeRoot")){if(!this.addTopLevelNode(dict,element)){map.delete(dict);}
return element;}
const parentNode=this.addNode(parent,map,level+1);if(!parentNode){return element;}
let save=false;for(const kid of parentNode.kids){if(kid.type===StructElementType.ELEMENT&&kid.dict===dict){kid.parentNode=element;save=true;}}
if(!save){map.delete(dict);}
return element;}
addTopLevelNode(dict,element){const obj=this.rootDict.get("K");if(!obj){return false;}
if(obj instanceof _primitives.Dict){if(obj.objId!==dict.objId){return false;}
this.nodes[0]=element;return true;}
if(!Array.isArray(obj)){return true;}
let save=false;for(let i=0;i<obj.length;i++){const kidRef=obj[i];if(kidRef&&kidRef.toString()===dict.objId){this.nodes[i]=element;save=true;}}
return save;}
get serializable(){function nodeToSerializable(node,parent){let level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;if(level>MAX_DEPTH){(0,_util.warn)("StructTree too deep to be fully serialized.");return;}
const obj=Object.create(null);obj.role=node.role;obj.children=[];parent.children.push(obj);const alt=node.dict.get("Alt");if(typeof alt==="string"){obj.alt=(0,_util.stringToPDFString)(alt);}
const lang=node.dict.get("Lang");if(typeof lang==="string"){obj.lang=(0,_util.stringToPDFString)(lang);}
for(const kid of node.kids){const kidElement=kid.type===StructElementType.ELEMENT?kid.parentNode:null;if(kidElement){nodeToSerializable(kidElement,obj,level+1);continue;}else if(kid.type===StructElementType.PAGE_CONTENT||kid.type===StructElementType.STREAM_CONTENT){obj.children.push({type:"content",id:`page${kid.pageObjId}_mcid${kid.mcid}`});}else if(kid.type===StructElementType.OBJECT){obj.children.push({type:"object",id:kid.refObjId});}}}
const root=Object.create(null);root.children=[];root.role="Root";for(const child of this.nodes){if(!child){continue;}
nodeToSerializable(child,root);}
return root;}}
exports.StructTreePage=StructTreePage;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.ObjectLoader=void 0;var _primitives=__w_pdfjs_require__(130);var _base_stream=__w_pdfjs_require__(132);var _core_utils=__w_pdfjs_require__(131);var _util=__w_pdfjs_require__(2);function mayHaveChildren(value){return value instanceof _primitives.Ref||value instanceof _primitives.Dict||value instanceof _base_stream.BaseStream||Array.isArray(value);}
function addChildren(node,nodesToVisit){if(node instanceof _primitives.Dict){node=node.getRawValues();}else if(node instanceof _base_stream.BaseStream){node=node.dict.getRawValues();}else if(!Array.isArray(node)){return;}
for(const rawValue of node){if(mayHaveChildren(rawValue)){nodesToVisit.push(rawValue);}}}
class ObjectLoader{constructor(dict,keys,xref){this.dict=dict;this.keys=keys;this.xref=xref;this.refSet=null;}
async load(){if(this.xref.stream.isDataLoaded){return undefined;}
const{keys,dict}=this;this.refSet=new _primitives.RefSet();const nodesToVisit=[];for(let i=0,ii=keys.length;i<ii;i++){const rawValue=dict.getRaw(keys[i]);if(rawValue!==undefined){nodesToVisit.push(rawValue);}}
return this._walk(nodesToVisit);}
async _walk(nodesToVisit){const nodesToRevisit=[];const pendingRequests=[];while(nodesToVisit.length){let currentNode=nodesToVisit.pop();if(currentNode instanceof _primitives.Ref){if(this.refSet.has(currentNode)){continue;}
try{this.refSet.put(currentNode);currentNode=this.xref.fetch(currentNode);}catch(ex){if(!(ex instanceof _core_utils.MissingDataException)){(0,_util.warn)(`ObjectLoader._walk - requesting all data: "${ex}".`);this.refSet=null;const{manager}=this.xref.stream;return manager.requestAllChunks();}
nodesToRevisit.push(currentNode);pendingRequests.push({begin:ex.begin,end:ex.end});}}
if(currentNode instanceof _base_stream.BaseStream){const baseStreams=currentNode.getBaseStreams();if(baseStreams){let foundMissingData=false;for(const stream of baseStreams){if(stream.isDataLoaded){continue;}
foundMissingData=true;pendingRequests.push({begin:stream.start,end:stream.end});}
if(foundMissingData){nodesToRevisit.push(currentNode);}}}
addChildren(currentNode,nodesToVisit);}
if(pendingRequests.length){await this.xref.stream.manager.requestRanges(pendingRequests);for(const node of nodesToRevisit){if(node instanceof _primitives.Ref){this.refSet.remove(node);}}
return this._walk(nodesToRevisit);}
this.refSet=null;return undefined;}}
exports.ObjectLoader=ObjectLoader;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.XFAFactory=void 0;var _xfa_object=__w_pdfjs_require__(202);var _bind=__w_pdfjs_require__(206);var _data=__w_pdfjs_require__(212);var _fonts=__w_pdfjs_require__(210);var _utils=__w_pdfjs_require__(203);var _util=__w_pdfjs_require__(2);var _parser=__w_pdfjs_require__(213);var _xhtml=__w_pdfjs_require__(223);class XFAFactory{constructor(data){try{this.root=new _parser.XFAParser().parse(XFAFactory._createDocument(data));const binder=new _bind.Binder(this.root);this.form=binder.bind();this.dataHandler=new _data.DataHandler(this.root,binder.getData());this.form[_xfa_object.$globalData].template=this.form;}catch(e){(0,_util.warn)(`XFA - an error occurred during parsing and binding: ${e}`);}}
isValid(){return this.root&&this.form;}
_createPagesHelper(){const iterator=this.form[_xfa_object.$toPages]();return new Promise((resolve,reject)=>{const nextIteration=()=>{try{const value=iterator.next();if(value.done){resolve(value.value);}else{setTimeout(nextIteration,0);}}catch(e){reject(e);}};setTimeout(nextIteration,0);});}
async _createPages(){try{this.pages=await this._createPagesHelper();this.dims=this.pages.children.map(c=>{const{width,height}=c.attributes.style;return[0,0,parseInt(width),parseInt(height)];});}catch(e){(0,_util.warn)(`XFA - an error occurred during layout: ${e}`);}}
getBoundingBox(pageIndex){return this.dims[pageIndex];}
async getNumPages(){if(!this.pages){await this._createPages();}
return this.dims.length;}
setImages(images){this.form[_xfa_object.$globalData].images=images;}
setFonts(fonts){this.form[_xfa_object.$globalData].fontFinder=new _fonts.FontFinder(fonts);const missingFonts=[];for(let typeface of this.form[_xfa_object.$globalData].usedTypefaces){typeface=(0,_utils.stripQuotes)(typeface);const font=this.form[_xfa_object.$globalData].fontFinder.find(typeface);if(!font){missingFonts.push(typeface);}}
if(missingFonts.length>0){return missingFonts;}
return null;}
appendFonts(fonts,reallyMissingFonts){this.form[_xfa_object.$globalData].fontFinder.add(fonts,reallyMissingFonts);}
async getPages(){if(!this.pages){await this._createPages();}
const pages=this.pages;this.pages=null;return pages;}
serializeData(storage){return this.dataHandler.serialize(storage);}
static _createDocument(data){if(!data["/xdp:xdp"]){return data["xdp:xdp"];}
return Object.values(data).join("");}
static getRichTextAsHtml(rc){if(!rc||typeof rc!=="string"){return null;}
try{let root=new _parser.XFAParser(_xhtml.XhtmlNamespace,true).parse(rc);if(!["body","xhtml"].includes(root[_xfa_object.$nodeName])){const newRoot=_xhtml.XhtmlNamespace.body({});newRoot[_xfa_object.$appendChild](root);root=newRoot;}
const result=root[_xfa_object.$toHTML]();if(!result.success){return null;}
const{html}=result;const{attributes}=html;if(attributes){if(attributes.class){attributes.class=attributes.class.filter(attr=>!attr.startsWith("xfa"));}
attributes.dir="auto";}
return{html,str:root[_xfa_object.$text]()};}catch(e){(0,_util.warn)(`XFA - an error occurred during parsing of rich text: ${e}`);}
return null;}}
exports.XFAFactory=XFAFactory;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.XmlObject=exports.XFAObjectArray=exports.XFAObject=exports.XFAAttribute=exports.StringObject=exports.OptionObject=exports.Option10=exports.Option01=exports.IntegerObject=exports.ContentObject=exports.$uid=exports.$toStyle=exports.$toString=exports.$toPages=exports.$toHTML=exports.$text=exports.$tabIndex=exports.$setValue=exports.$setSetAttributes=exports.$setId=exports.$searchNode=exports.$root=exports.$resolvePrototypes=exports.$removeChild=exports.$pushPara=exports.$pushGlyphs=exports.$popPara=exports.$onText=exports.$onChildCheck=exports.$onChild=exports.$nsAttributes=exports.$nodeName=exports.$namespaceId=exports.$isUsable=exports.$isTransparent=exports.$isThereMoreWidth=exports.$isSplittable=exports.$isNsAgnostic=exports.$isDescendent=exports.$isDataValue=exports.$isCDATAXml=exports.$isBindable=exports.$insertAt=exports.$indexOf=exports.$ids=exports.$hasSettableValue=exports.$globalData=exports.$getTemplateRoot=exports.$getSubformParent=exports.$getRealChildrenByNameIt=exports.$getParent=exports.$getNextPage=exports.$getExtra=exports.$getDataValue=exports.$getContainedChildren=exports.$getChildrenByNameIt=exports.$getChildrenByName=exports.$getChildrenByClass=exports.$getChildren=exports.$getAvailableSpace=exports.$getAttributes=exports.$getAttributeIt=exports.$flushHTML=exports.$finalize=exports.$extra=exports.$dump=exports.$data=exports.$content=exports.$consumed=exports.$clone=exports.$cleanup=exports.$cleanPage=exports.$clean=exports.$childrenToHTML=exports.$appendChild=exports.$addHTML=exports.$acceptWhitespace=void 0;var _utils=__w_pdfjs_require__(203);var _util=__w_pdfjs_require__(2);var _core_utils=__w_pdfjs_require__(131);var _namespaces=__w_pdfjs_require__(204);var _som=__w_pdfjs_require__(205);const $acceptWhitespace=Symbol();exports.$acceptWhitespace=$acceptWhitespace;const $addHTML=Symbol();exports.$addHTML=$addHTML;const $appendChild=Symbol();exports.$appendChild=$appendChild;const $childrenToHTML=Symbol();exports.$childrenToHTML=$childrenToHTML;const $clean=Symbol();exports.$clean=$clean;const $cleanPage=Symbol();exports.$cleanPage=$cleanPage;const $cleanup=Symbol();exports.$cleanup=$cleanup;const $clone=Symbol();exports.$clone=$clone;const $consumed=Symbol();exports.$consumed=$consumed;const $content=Symbol("content");exports.$content=$content;const $data=Symbol("data");exports.$data=$data;const $dump=Symbol();exports.$dump=$dump;const $extra=Symbol("extra");exports.$extra=$extra;const $finalize=Symbol();exports.$finalize=$finalize;const $flushHTML=Symbol();exports.$flushHTML=$flushHTML;const $getAttributeIt=Symbol();exports.$getAttributeIt=$getAttributeIt;const $getAttributes=Symbol();exports.$getAttributes=$getAttributes;const $getAvailableSpace=Symbol();exports.$getAvailableSpace=$getAvailableSpace;const $getChildrenByClass=Symbol();exports.$getChildrenByClass=$getChildrenByClass;const $getChildrenByName=Symbol();exports.$getChildrenByName=$getChildrenByName;const $getChildrenByNameIt=Symbol();exports.$getChildrenByNameIt=$getChildrenByNameIt;const $getDataValue=Symbol();exports.$getDataValue=$getDataValue;const $getExtra=Symbol();exports.$getExtra=$getExtra;const $getRealChildrenByNameIt=Symbol();exports.$getRealChildrenByNameIt=$getRealChildrenByNameIt;const $getChildren=Symbol();exports.$getChildren=$getChildren;const $getContainedChildren=Symbol();exports.$getContainedChildren=$getContainedChildren;const $getNextPage=Symbol();exports.$getNextPage=$getNextPage;const $getSubformParent=Symbol();exports.$getSubformParent=$getSubformParent;const $getParent=Symbol();exports.$getParent=$getParent;const $getTemplateRoot=Symbol();exports.$getTemplateRoot=$getTemplateRoot;const $globalData=Symbol();exports.$globalData=$globalData;const $hasSettableValue=Symbol();exports.$hasSettableValue=$hasSettableValue;const $ids=Symbol();exports.$ids=$ids;const $indexOf=Symbol();exports.$indexOf=$indexOf;const $insertAt=Symbol();exports.$insertAt=$insertAt;const $isCDATAXml=Symbol();exports.$isCDATAXml=$isCDATAXml;const $isBindable=Symbol();exports.$isBindable=$isBindable;const $isDataValue=Symbol();exports.$isDataValue=$isDataValue;const $isDescendent=Symbol();exports.$isDescendent=$isDescendent;const $isNsAgnostic=Symbol();exports.$isNsAgnostic=$isNsAgnostic;const $isSplittable=Symbol();exports.$isSplittable=$isSplittable;const $isThereMoreWidth=Symbol();exports.$isThereMoreWidth=$isThereMoreWidth;const $isTransparent=Symbol();exports.$isTransparent=$isTransparent;const $isUsable=Symbol();exports.$isUsable=$isUsable;const $lastAttribute=Symbol();const $namespaceId=Symbol("namespaceId");exports.$namespaceId=$namespaceId;const $nodeName=Symbol("nodeName");exports.$nodeName=$nodeName;const $nsAttributes=Symbol();exports.$nsAttributes=$nsAttributes;const $onChild=Symbol();exports.$onChild=$onChild;const $onChildCheck=Symbol();exports.$onChildCheck=$onChildCheck;const $onText=Symbol();exports.$onText=$onText;const $pushGlyphs=Symbol();exports.$pushGlyphs=$pushGlyphs;const $popPara=Symbol();exports.$popPara=$popPara;const $pushPara=Symbol();exports.$pushPara=$pushPara;const $removeChild=Symbol();exports.$removeChild=$removeChild;const $root=Symbol("root");exports.$root=$root;const $resolvePrototypes=Symbol();exports.$resolvePrototypes=$resolvePrototypes;const $searchNode=Symbol();exports.$searchNode=$searchNode;const $setId=Symbol();exports.$setId=$setId;const $setSetAttributes=Symbol();exports.$setSetAttributes=$setSetAttributes;const $setValue=Symbol();exports.$setValue=$setValue;const $tabIndex=Symbol();exports.$tabIndex=$tabIndex;const $text=Symbol();exports.$text=$text;const $toPages=Symbol();exports.$toPages=$toPages;const $toHTML=Symbol();exports.$toHTML=$toHTML;const $toString=Symbol();exports.$toString=$toString;const $toStyle=Symbol();exports.$toStyle=$toStyle;const $uid=Symbol("uid");exports.$uid=$uid;const _applyPrototype=Symbol();const _attributes=Symbol();const _attributeNames=Symbol();const _children=Symbol("_children");const _cloneAttribute=Symbol();const _dataValue=Symbol();const _defaultValue=Symbol();const _filteredChildrenGenerator=Symbol();const _getPrototype=Symbol();const _getUnsetAttributes=Symbol();const _hasChildren=Symbol();const _max=Symbol();const _options=Symbol();const _parent=Symbol("parent");const _resolvePrototypesHelper=Symbol();const _setAttributes=Symbol();const _validator=Symbol();let uid=0;const NS_DATASETS=_namespaces.NamespaceIds.datasets.id;class XFAObject{constructor(nsId,name){let hasChildren=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;this[$namespaceId]=nsId;this[$nodeName]=name;this[_hasChildren]=hasChildren;this[_parent]=null;this[_children]=[];this[$uid]=`${name}${uid++}`;this[$globalData]=null;}
[$onChild](child){if(!this[_hasChildren]||!this[$onChildCheck](child)){return false;}
const name=child[$nodeName];const node=this[name];if(node instanceof XFAObjectArray){if(node.push(child)){this[$appendChild](child);return true;}}else{if(node!==null){this[$removeChild](node);}
this[name]=child;this[$appendChild](child);return true;}
let id="";if(this.id){id=` (id: ${this.id})`;}else if(this.name){id=` (name: ${this.name} ${this.h.value})`;}
(0,_util.warn)(`XFA - node "${this[$nodeName]}"${id} has already enough "${name}"!`);return false;}
[$onChildCheck](child){return this.hasOwnProperty(child[$nodeName])&&child[$namespaceId]===this[$namespaceId];}
[$isNsAgnostic](){return false;}
[$acceptWhitespace](){return false;}
[$isCDATAXml](){return false;}
[$isBindable](){return false;}
[$popPara](){if(this.para){this[$getTemplateRoot]()[$extra].paraStack.pop();}}
[$pushPara](){this[$getTemplateRoot]()[$extra].paraStack.push(this.para);}
[$setId](ids){if(this.id&&this[$namespaceId]===_namespaces.NamespaceIds.template.id){ids.set(this.id,this);}}
[$getTemplateRoot](){return this[$globalData].template;}
[$isSplittable](){return false;}
[$isThereMoreWidth](){return false;}
[$appendChild](child){child[_parent]=this;this[_children].push(child);if(!child[$globalData]&&this[$globalData]){child[$globalData]=this[$globalData];}}
[$removeChild](child){const i=this[_children].indexOf(child);this[_children].splice(i,1);}
[$hasSettableValue](){return this.hasOwnProperty("value");}
[$setValue](_){}
[$onText](_){}
[$finalize](){}
[$clean](builder){delete this[_hasChildren];if(this[$cleanup]){builder.clean(this[$cleanup]);delete this[$cleanup];}}
[$indexOf](child){return this[_children].indexOf(child);}
[$insertAt](i,child){child[_parent]=this;this[_children].splice(i,0,child);if(!child[$globalData]&&this[$globalData]){child[$globalData]=this[$globalData];}}
[$isTransparent](){return!this.name;}
[$lastAttribute](){return"";}
[$text](){if(this[_children].length===0){return this[$content];}
return this[_children].map(c=>c[$text]()).join("");}
get[_attributeNames](){const proto=Object.getPrototypeOf(this);if(!proto._attributes){const attributes=proto._attributes=new Set();for(const name of Object.getOwnPropertyNames(this)){if(this[name]===null||this[name]instanceof XFAObject||this[name]instanceof XFAObjectArray){break;}
attributes.add(name);}}
return(0,_util.shadow)(this,_attributeNames,proto._attributes);}
[$isDescendent](parent){let node=this;while(node){if(node===parent){return true;}
node=node[$getParent]();}
return false;}
[$getParent](){return this[_parent];}
[$getSubformParent](){return this[$getParent]();}
[$getChildren](){let name=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(!name){return this[_children];}
return this[name];}
[$dump](){const dumped=Object.create(null);if(this[$content]){dumped.$content=this[$content];}
for(const name of Object.getOwnPropertyNames(this)){const value=this[name];if(value===null){continue;}
if(value instanceof XFAObject){dumped[name]=value[$dump]();}else if(value instanceof XFAObjectArray){if(!value.isEmpty()){dumped[name]=value.dump();}}else{dumped[name]=value;}}
return dumped;}
[$toStyle](){return null;}
[$toHTML](){return _utils.HTMLResult.EMPTY;}*[$getContainedChildren](){for(const node of this[$getChildren]()){yield node;}}*[_filteredChildrenGenerator](filter,include){for(const node of this[$getContainedChildren]()){if(!filter||include===filter.has(node[$nodeName])){const availableSpace=this[$getAvailableSpace]();const res=node[$toHTML](availableSpace);if(!res.success){this[$extra].failingNode=node;}
yield res;}}}
[$flushHTML](){return null;}
[$addHTML](html,bbox){this[$extra].children.push(html);}
[$getAvailableSpace](){}
[$childrenToHTML](_ref){let{filter=null,include=true}=_ref;if(!this[$extra].generator){this[$extra].generator=this[_filteredChildrenGenerator](filter,include);}else{const availableSpace=this[$getAvailableSpace]();const res=this[$extra].failingNode[$toHTML](availableSpace);if(!res.success){return res;}
if(res.html){this[$addHTML](res.html,res.bbox);}
delete this[$extra].failingNode;}
while(true){const gen=this[$extra].generator.next();if(gen.done){break;}
const res=gen.value;if(!res.success){return res;}
if(res.html){this[$addHTML](res.html,res.bbox);}}
this[$extra].generator=null;return _utils.HTMLResult.EMPTY;}
[$setSetAttributes](attributes){this[_setAttributes]=new Set(Object.keys(attributes));}
[_getUnsetAttributes](protoAttributes){const allAttr=this[_attributeNames];const setAttr=this[_setAttributes];return[...protoAttributes].filter(x=>allAttr.has(x)&&!setAttr.has(x));}
[$resolvePrototypes](ids){let ancestors=arguments.length>1&&arguments[1]!==undefined?arguments[1]:new Set();for(const child of this[_children]){child[_resolvePrototypesHelper](ids,ancestors);}}
[_resolvePrototypesHelper](ids,ancestors){const proto=this[_getPrototype](ids,ancestors);if(proto){this[_applyPrototype](proto,ids,ancestors);}else{this[$resolvePrototypes](ids,ancestors);}}
[_getPrototype](ids,ancestors){const{use,usehref}=this;if(!use&&!usehref){return null;}
let proto=null;let somExpression=null;let id=null;let ref=use;if(usehref){ref=usehref;if(usehref.startsWith("#som(")&&usehref.endsWith(")")){somExpression=usehref.slice("#som(".length,usehref.length-1);}else if(usehref.startsWith(".#som(")&&usehref.endsWith(")")){somExpression=usehref.slice(".#som(".length,usehref.length-1);}else if(usehref.startsWith("#")){id=usehref.slice(1);}else if(usehref.startsWith(".#")){id=usehref.slice(2);}}else if(use.startsWith("#")){id=use.slice(1);}else{somExpression=use;}
this.use=this.usehref="";if(id){proto=ids.get(id);}else{proto=(0,_som.searchNode)(ids.get($root),this,somExpression,true,false);if(proto){proto=proto[0];}}
if(!proto){(0,_util.warn)(`XFA - Invalid prototype reference: ${ref}.`);return null;}
if(proto[$nodeName]!==this[$nodeName]){(0,_util.warn)(`XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`);return null;}
if(ancestors.has(proto)){(0,_util.warn)(`XFA - Cycle detected in prototypes use.`);return null;}
ancestors.add(proto);const protoProto=proto[_getPrototype](ids,ancestors);if(protoProto){proto[_applyPrototype](protoProto,ids,ancestors);}
proto[$resolvePrototypes](ids,ancestors);ancestors.delete(proto);return proto;}
[_applyPrototype](proto,ids,ancestors){if(ancestors.has(proto)){(0,_util.warn)(`XFA - Cycle detected in prototypes use.`);return;}
if(!this[$content]&&proto[$content]){this[$content]=proto[$content];}
const newAncestors=new Set(ancestors);newAncestors.add(proto);for(const unsetAttrName of this[_getUnsetAttributes](proto[_setAttributes])){this[unsetAttrName]=proto[unsetAttrName];if(this[_setAttributes]){this[_setAttributes].add(unsetAttrName);}}
for(const name of Object.getOwnPropertyNames(this)){if(this[_attributeNames].has(name)){continue;}
const value=this[name];const protoValue=proto[name];if(value instanceof XFAObjectArray){for(const child of value[_children]){child[_resolvePrototypesHelper](ids,ancestors);}
for(let i=value[_children].length,ii=protoValue[_children].length;i<ii;i++){const child=proto[_children][i][$clone]();if(value.push(child)){child[_parent]=this;this[_children].push(child);child[_resolvePrototypesHelper](ids,ancestors);}else{break;}}
continue;}
if(value!==null){value[$resolvePrototypes](ids,ancestors);if(protoValue){value[_applyPrototype](protoValue,ids,ancestors);}
continue;}
if(protoValue!==null){const child=protoValue[$clone]();child[_parent]=this;this[name]=child;this[_children].push(child);child[_resolvePrototypesHelper](ids,ancestors);}}}
static[_cloneAttribute](obj){if(Array.isArray(obj)){return obj.map(x=>XFAObject[_cloneAttribute](x));}
if(typeof obj==="object"&&obj!==null){return Object.assign({},obj);}
return obj;}
[$clone](){const clone=Object.create(Object.getPrototypeOf(this));for(const $symbol of Object.getOwnPropertySymbols(this)){try{clone[$symbol]=this[$symbol];}catch(_){(0,_util.shadow)(clone,$symbol,this[$symbol]);}}
clone[$uid]=`${clone[$nodeName]}${uid++}`;clone[_children]=[];for(const name of Object.getOwnPropertyNames(this)){if(this[_attributeNames].has(name)){clone[name]=XFAObject[_cloneAttribute](this[name]);continue;}
const value=this[name];if(value instanceof XFAObjectArray){clone[name]=new XFAObjectArray(value[_max]);}else{clone[name]=null;}}
for(const child of this[_children]){const name=child[$nodeName];const clonedChild=child[$clone]();clone[_children].push(clonedChild);clonedChild[_parent]=clone;if(clone[name]===null){clone[name]=clonedChild;}else{clone[name][_children].push(clonedChild);}}
return clone;}
[$getChildren](){let name=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(!name){return this[_children];}
return this[_children].filter(c=>c[$nodeName]===name);}
[$getChildrenByClass](name){return this[name];}
[$getChildrenByName](name,allTransparent){let first=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;return Array.from(this[$getChildrenByNameIt](name,allTransparent,first));}*[$getChildrenByNameIt](name,allTransparent){let first=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;if(name==="parent"){yield this[_parent];return;}
for(const child of this[_children]){if(child[$nodeName]===name){yield child;}
if(child.name===name){yield child;}
if(allTransparent||child[$isTransparent]()){yield*child[$getChildrenByNameIt](name,allTransparent,false);}}
if(first&&this[_attributeNames].has(name)){yield new XFAAttribute(this,name,this[name]);}}}
exports.XFAObject=XFAObject;class XFAObjectArray{constructor(){let max=arguments.length>0&&arguments[0]!==undefined?arguments[0]:Infinity;this[_max]=max;this[_children]=[];}
push(child){const len=this[_children].length;if(len<=this[_max]){this[_children].push(child);return true;}
(0,_util.warn)(`XFA - node "${child[$nodeName]}" accepts no more than ${this[_max]} children`);return false;}
isEmpty(){return this[_children].length===0;}
dump(){return this[_children].length===1?this[_children][0][$dump]():this[_children].map(x=>x[$dump]());}
[$clone](){const clone=new XFAObjectArray(this[_max]);clone[_children]=this[_children].map(c=>c[$clone]());return clone;}
get children(){return this[_children];}
clear(){this[_children].length=0;}}
exports.XFAObjectArray=XFAObjectArray;class XFAAttribute{constructor(node,name,value){this[_parent]=node;this[$nodeName]=name;this[$content]=value;this[$consumed]=false;this[$uid]=`attribute${uid++}`;}
[$getParent](){return this[_parent];}
[$isDataValue](){return true;}
[$getDataValue](){return this[$content].trim();}
[$setValue](value){value=value.value||"";this[$content]=value.toString();}
[$text](){return this[$content];}
[$isDescendent](parent){return this[_parent]===parent||this[_parent][$isDescendent](parent);}}
exports.XFAAttribute=XFAAttribute;class XmlObject extends XFAObject{constructor(nsId,name){let attributes=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};super(nsId,name);this[$content]="";this[_dataValue]=null;if(name!=="#text"){const map=new Map();this[_attributes]=map;for(const[attrName,value]of Object.entries(attributes)){map.set(attrName,new XFAAttribute(this,attrName,value));}
if(attributes.hasOwnProperty($nsAttributes)){const dataNode=attributes[$nsAttributes].xfa.dataNode;if(dataNode!==undefined){if(dataNode==="dataGroup"){this[_dataValue]=false;}else if(dataNode==="dataValue"){this[_dataValue]=true;}}}}
this[$consumed]=false;}
[$toString](buf){const tagName=this[$nodeName];if(tagName==="#text"){buf.push((0,_core_utils.encodeToXmlString)(this[$content]));return;}
const utf8TagName=(0,_util.utf8StringToString)(tagName);const prefix=this[$namespaceId]===NS_DATASETS?"xfa:":"";buf.push(`<${prefix}${utf8TagName}`);for(const[name,value]of this[_attributes].entries()){const utf8Name=(0,_util.utf8StringToString)(name);buf.push(` ${utf8Name}="${(0, _core_utils.encodeToXmlString)(value[$content])}"`);}
if(this[_dataValue]!==null){if(this[_dataValue]){buf.push(` xfa:dataNode="dataValue"`);}else{buf.push(` xfa:dataNode="dataGroup"`);}}
if(!this[$content]&&this[_children].length===0){buf.push("/>");return;}
buf.push(">");if(this[$content]){if(typeof this[$content]==="string"){buf.push((0,_core_utils.encodeToXmlString)(this[$content]));}else{this[$content][$toString](buf);}}else{for(const child of this[_children]){child[$toString](buf);}}
buf.push(`</${prefix}${utf8TagName}>`);}
[$onChild](child){if(this[$content]){const node=new XmlObject(this[$namespaceId],"#text");this[$appendChild](node);node[$content]=this[$content];this[$content]="";}
this[$appendChild](child);return true;}
[$onText](str){this[$content]+=str;}
[$finalize](){if(this[$content]&&this[_children].length>0){const node=new XmlObject(this[$namespaceId],"#text");this[$appendChild](node);node[$content]=this[$content];delete this[$content];}}
[$toHTML](){if(this[$nodeName]==="#text"){return _utils.HTMLResult.success({name:"#text",value:this[$content]});}
return _utils.HTMLResult.EMPTY;}
[$getChildren](){let name=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(!name){return this[_children];}
return this[_children].filter(c=>c[$nodeName]===name);}
[$getAttributes](){return this[_attributes];}
[$getChildrenByClass](name){const value=this[_attributes].get(name);if(value!==undefined){return value;}
return this[$getChildren](name);}*[$getChildrenByNameIt](name,allTransparent){const value=this[_attributes].get(name);if(value){yield value;}
for(const child of this[_children]){if(child[$nodeName]===name){yield child;}
if(allTransparent){yield*child[$getChildrenByNameIt](name,allTransparent);}}}*[$getAttributeIt](name,skipConsumed){const value=this[_attributes].get(name);if(value&&(!skipConsumed||!value[$consumed])){yield value;}
for(const child of this[_children]){yield*child[$getAttributeIt](name,skipConsumed);}}*[$getRealChildrenByNameIt](name,allTransparent,skipConsumed){for(const child of this[_children]){if(child[$nodeName]===name&&(!skipConsumed||!child[$consumed])){yield child;}
if(allTransparent){yield*child[$getRealChildrenByNameIt](name,allTransparent,skipConsumed);}}}
[$isDataValue](){if(this[_dataValue]===null){return this[_children].length===0||this[_children][0][$namespaceId]===_namespaces.NamespaceIds.xhtml.id;}
return this[_dataValue];}
[$getDataValue](){if(this[_dataValue]===null){if(this[_children].length===0){return this[$content].trim();}
if(this[_children][0][$namespaceId]===_namespaces.NamespaceIds.xhtml.id){return this[_children][0][$text]().trim();}
return null;}
return this[$content].trim();}
[$setValue](value){value=value.value||"";this[$content]=value.toString();}
[$dump](){let hasNS=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;const dumped=Object.create(null);if(hasNS){dumped.$ns=this[$namespaceId];}
if(this[$content]){dumped.$content=this[$content];}
dumped.$name=this[$nodeName];dumped.children=[];for(const child of this[_children]){dumped.children.push(child[$dump](hasNS));}
dumped.attributes=Object.create(null);for(const[name,value]of this[_attributes]){dumped.attributes[name]=value[$content];}
return dumped;}}
exports.XmlObject=XmlObject;class ContentObject extends XFAObject{constructor(nsId,name){super(nsId,name);this[$content]="";}
[$onText](text){this[$content]+=text;}
[$finalize](){}}
exports.ContentObject=ContentObject;class OptionObject extends ContentObject{constructor(nsId,name,options){super(nsId,name);this[_options]=options;}
[$finalize](){this[$content]=(0,_utils.getKeyword)({data:this[$content],defaultValue:this[_options][0],validate:k=>this[_options].includes(k)});}
[$clean](builder){super[$clean](builder);delete this[_options];}}
exports.OptionObject=OptionObject;class StringObject extends ContentObject{[$finalize](){this[$content]=this[$content].trim();}}
exports.StringObject=StringObject;class IntegerObject extends ContentObject{constructor(nsId,name,defaultValue,validator){super(nsId,name);this[_defaultValue]=defaultValue;this[_validator]=validator;}
[$finalize](){this[$content]=(0,_utils.getInteger)({data:this[$content],defaultValue:this[_defaultValue],validate:this[_validator]});}
[$clean](builder){super[$clean](builder);delete this[_defaultValue];delete this[_validator];}}
exports.IntegerObject=IntegerObject;class Option01 extends IntegerObject{constructor(nsId,name){super(nsId,name,0,n=>n===1);}}
exports.Option01=Option01;class Option10 extends IntegerObject{constructor(nsId,name){super(nsId,name,1,n=>n===0);}}
exports.Option10=Option10;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.HTMLResult=void 0;exports.getBBox=getBBox;exports.getColor=getColor;exports.getFloat=getFloat;exports.getInteger=getInteger;exports.getKeyword=getKeyword;exports.getMeasurement=getMeasurement;exports.getRatio=getRatio;exports.getRelevant=getRelevant;exports.getStringOption=getStringOption;exports.stripQuotes=stripQuotes;var _util=__w_pdfjs_require__(2);const dimConverters={pt:x=>x,cm:x=>x/2.54*72,mm:x=>x/(10*2.54)*72,in:x=>x*72,px:x=>x};const measurementPattern=/([+-]?\d+\.?\d*)(.*)/;function stripQuotes(str){if(str.startsWith("'")||str.startsWith('"')){return str.slice(1,str.length-1);}
return str;}
function getInteger(_ref){let{data,defaultValue,validate}=_ref;if(!data){return defaultValue;}
data=data.trim();const n=parseInt(data,10);if(!isNaN(n)&&validate(n)){return n;}
return defaultValue;}
function getFloat(_ref2){let{data,defaultValue,validate}=_ref2;if(!data){return defaultValue;}
data=data.trim();const n=parseFloat(data);if(!isNaN(n)&&validate(n)){return n;}
return defaultValue;}
function getKeyword(_ref3){let{data,defaultValue,validate}=_ref3;if(!data){return defaultValue;}
data=data.trim();if(validate(data)){return data;}
return defaultValue;}
function getStringOption(data,options){return getKeyword({data,defaultValue:options[0],validate:k=>options.includes(k)});}
function getMeasurement(str){let def=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"0";def=def||"0";if(!str){return getMeasurement(def);}
const match=str.trim().match(measurementPattern);if(!match){return getMeasurement(def);}
const[,valueStr,unit]=match;const value=parseFloat(valueStr);if(isNaN(value)){return getMeasurement(def);}
if(value===0){return 0;}
const conv=dimConverters[unit];if(conv){return conv(value);}
return value;}
function getRatio(data){if(!data){return{num:1,den:1};}
const ratio=data.trim().split(/\s*:\s*/).map(x=>parseFloat(x)).filter(x=>!isNaN(x));if(ratio.length===1){ratio.push(1);}
if(ratio.length===0){return{num:1,den:1};}
const[num,den]=ratio;return{num,den};}
function getRelevant(data){if(!data){return[];}
return data.trim().split(/\s+/).map(e=>{return{excluded:e[0]==="-",viewname:e.substring(1)};});}
function getColor(data){let def=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[0,0,0];let[r,g,b]=def;if(!data){return{r,g,b};}
const color=data.trim().split(/\s*,\s*/).map(c=>Math.min(Math.max(0,parseInt(c.trim(),10)),255)).map(c=>isNaN(c)?0:c);if(color.length<3){return{r,g,b};}
[r,g,b]=color;return{r,g,b};}
function getBBox(data){const def=-1;if(!data){return{x:def,y:def,width:def,height:def};}
const bbox=data.trim().split(/\s*,\s*/).map(m=>getMeasurement(m,"-1"));if(bbox.length<4||bbox[2]<0||bbox[3]<0){return{x:def,y:def,width:def,height:def};}
const[x,y,width,height]=bbox;return{x,y,width,height};}
class HTMLResult{static get FAILURE(){return(0,_util.shadow)(this,"FAILURE",new HTMLResult(false,null,null,null));}
static get EMPTY(){return(0,_util.shadow)(this,"EMPTY",new HTMLResult(true,null,null,null));}
constructor(success,html,bbox,breakNode){this.success=success;this.html=html;this.bbox=bbox;this.breakNode=breakNode;}
isBreak(){return!!this.breakNode;}
static breakNode(node){return new HTMLResult(false,null,null,node);}
static success(html){let bbox=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;return new HTMLResult(true,html,bbox,null);}}
exports.HTMLResult=HTMLResult;}),((__unused_webpack_module,exports)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.NamespaceIds=exports.$buildXFAObject=void 0;const $buildXFAObject=Symbol();exports.$buildXFAObject=$buildXFAObject;const NamespaceIds={config:{id:0,check:ns=>ns.startsWith("http://www.xfa.org/schema/xci/")},connectionSet:{id:1,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-connection-set/")},datasets:{id:2,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-data/")},form:{id:3,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-form/")},localeSet:{id:4,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-locale-set/")},pdf:{id:5,check:ns=>ns==="http://ns.adobe.com/xdp/pdf/"},signature:{id:6,check:ns=>ns==="http://www.w3.org/2000/09/xmldsig#"},sourceSet:{id:7,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-source-set/")},stylesheet:{id:8,check:ns=>ns==="http://www.w3.org/1999/XSL/Transform"},template:{id:9,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-template/")},xdc:{id:10,check:ns=>ns.startsWith("http://www.xfa.org/schema/xdc/")},xdp:{id:11,check:ns=>ns==="http://ns.adobe.com/xdp/"},xfdf:{id:12,check:ns=>ns==="http://ns.adobe.com/xfdf/"},xhtml:{id:13,check:ns=>ns==="http://www.w3.org/1999/xhtml"},xmpmeta:{id:14,check:ns=>ns==="http://ns.adobe.com/xmpmeta/"}};exports.NamespaceIds=NamespaceIds;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.createDataNode=createDataNode;exports.searchNode=searchNode;var _xfa_object=__w_pdfjs_require__(202);var _namespaces=__w_pdfjs_require__(204);var _util=__w_pdfjs_require__(2);const namePattern=/^[^.[]+/;const indexPattern=/^[^\]]+/;const operators={dot:0,dotDot:1,dotHash:2,dotBracket:3,dotParen:4};const shortcuts=new Map([["$data",(root,current)=>root.datasets?root.datasets.data:root],["$record",(root,current)=>(root.datasets?root.datasets.data:root)[_xfa_object.$getChildren]()[0]],["$template",(root,current)=>root.template],["$connectionSet",(root,current)=>root.connectionSet],["$form",(root,current)=>root.form],["$layout",(root,current)=>root.layout],["$host",(root,current)=>root.host],["$dataWindow",(root,current)=>root.dataWindow],["$event",(root,current)=>root.event],["!",(root,current)=>root.datasets],["$xfa",(root,current)=>root],["xfa",(root,current)=>root],["$",(root,current)=>current]]);const somCache=new WeakMap();const NS_DATASETS=_namespaces.NamespaceIds.datasets.id;function parseIndex(index){index=index.trim();if(index==="*"){return Infinity;}
return parseInt(index,10)||0;}
function parseExpression(expr,dotDotAllowed){let noExpr=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;let match=expr.match(namePattern);if(!match){return null;}
let[name]=match;const parsed=[{name,cacheName:"."+name,index:0,js:null,formCalc:null,operator:operators.dot}];let pos=name.length;while(pos<expr.length){const spos=pos;const char=expr.charAt(pos++);if(char==="["){match=expr.slice(pos).match(indexPattern);if(!match){(0,_util.warn)("XFA - Invalid index in SOM expression");return null;}
parsed.at(-1).index=parseIndex(match[0]);pos+=match[0].length+1;continue;}
let operator;switch(expr.charAt(pos)){case".":if(!dotDotAllowed){return null;}
pos++;operator=operators.dotDot;break;case"#":pos++;operator=operators.dotHash;break;case"[":if(noExpr){(0,_util.warn)("XFA - SOM expression contains a FormCalc subexpression which is not supported for now.");return null;}
operator=operators.dotBracket;break;case"(":if(noExpr){(0,_util.warn)("XFA - SOM expression contains a JavaScript subexpression which is not supported for now.");return null;}
operator=operators.dotParen;break;default:operator=operators.dot;break;}
match=expr.slice(pos).match(namePattern);if(!match){break;}
[name]=match;pos+=name.length;parsed.push({name,cacheName:expr.slice(spos,pos),operator,index:0,js:null,formCalc:null});}
return parsed;}
function searchNode(root,container,expr){let dotDotAllowed=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;let useCache=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;const parsed=parseExpression(expr,dotDotAllowed);if(!parsed){return null;}
const fn=shortcuts.get(parsed[0].name);let i=0;let isQualified;if(fn){isQualified=true;root=[fn(root,container)];i=1;}else{isQualified=container===null;root=[container||root];}
for(let ii=parsed.length;i<ii;i++){const{name,cacheName,operator,index}=parsed[i];const nodes=[];for(const node of root){if(!(node instanceof _xfa_object.XFAObject)){continue;}
let children,cached;if(useCache){cached=somCache.get(node);if(!cached){cached=new Map();somCache.set(node,cached);}
children=cached.get(cacheName);}
if(!children){switch(operator){case operators.dot:children=node[_xfa_object.$getChildrenByName](name,false);break;case operators.dotDot:children=node[_xfa_object.$getChildrenByName](name,true);break;case operators.dotHash:children=node[_xfa_object.$getChildrenByClass](name);if(children instanceof _xfa_object.XFAObjectArray){children=children.children;}else{children=[children];}
break;default:break;}
if(useCache){cached.set(cacheName,children);}}
if(children.length>0){nodes.push(children);}}
if(nodes.length===0&&!isQualified&&i===0){const parent=container[_xfa_object.$getParent]();container=parent;if(!container){return null;}
i=-1;root=[container];continue;}
if(isFinite(index)){root=nodes.filter(node=>index<node.length).map(node=>node[index]);}else{root=nodes.flat();}}
if(root.length===0){return null;}
return root;}
function createNodes(root,path){let node=null;for(const{name,index}of path){for(let i=0,ii=!isFinite(index)?0:index;i<=ii;i++){const nsId=root[_xfa_object.$namespaceId]===NS_DATASETS?-1:root[_xfa_object.$namespaceId];node=new _xfa_object.XmlObject(nsId,name);root[_xfa_object.$appendChild](node);}
root=node;}
return node;}
function createDataNode(root,container,expr){const parsed=parseExpression(expr);if(!parsed){return null;}
if(parsed.some(x=>x.operator===operators.dotDot)){return null;}
const fn=shortcuts.get(parsed[0].name);let i=0;if(fn){root=fn(root,container);i=1;}else{root=container||root;}
for(let ii=parsed.length;i<ii;i++){const{name,operator,index}=parsed[i];if(!isFinite(index)){parsed[i].index=0;return createNodes(root,parsed.slice(i));}
let children;switch(operator){case operators.dot:children=root[_xfa_object.$getChildrenByName](name,false);break;case operators.dotDot:children=root[_xfa_object.$getChildrenByName](name,true);break;case operators.dotHash:children=root[_xfa_object.$getChildrenByClass](name);if(children instanceof _xfa_object.XFAObjectArray){children=children.children;}else{children=[children];}
break;default:break;}
if(children.length===0){return createNodes(root,parsed.slice(i));}
if(index<children.length){const child=children[index];if(!(child instanceof _xfa_object.XFAObject)){(0,_util.warn)(`XFA - Cannot create a node.`);return null;}
root=child;}else{parsed[i].index=index-children.length;return createNodes(root,parsed.slice(i));}}
return null;}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Binder=void 0;var _xfa_object=__w_pdfjs_require__(202);var _template=__w_pdfjs_require__(207);var _som=__w_pdfjs_require__(205);var _namespaces=__w_pdfjs_require__(204);var _util=__w_pdfjs_require__(2);const NS_DATASETS=_namespaces.NamespaceIds.datasets.id;function createText(content){const node=new _template.Text({});node[_xfa_object.$content]=content;return node;}
class Binder{constructor(root){this.root=root;this.datasets=root.datasets;if(root.datasets&&root.datasets.data){this.data=root.datasets.data;}else{this.data=new _xfa_object.XmlObject(_namespaces.NamespaceIds.datasets.id,"data");}
this.emptyMerge=this.data[_xfa_object.$getChildren]().length===0;this.root.form=this.form=root.template[_xfa_object.$clone]();}
_isConsumeData(){return!this.emptyMerge&&this._mergeMode;}
_isMatchTemplate(){return!this._isConsumeData();}
bind(){this._bindElement(this.form,this.data);return this.form;}
getData(){return this.data;}
_bindValue(formNode,data,picture){formNode[_xfa_object.$data]=data;if(formNode[_xfa_object.$hasSettableValue]()){if(data[_xfa_object.$isDataValue]()){const value=data[_xfa_object.$getDataValue]();formNode[_xfa_object.$setValue](createText(value));}else if(formNode instanceof _template.Field&&formNode.ui&&formNode.ui.choiceList&&formNode.ui.choiceList.open==="multiSelect"){const value=data[_xfa_object.$getChildren]().map(child=>child[_xfa_object.$content].trim()).join("\n");formNode[_xfa_object.$setValue](createText(value));}else if(this._isConsumeData()){(0,_util.warn)(`XFA - Nodes haven't the same type.`);}}else if(!data[_xfa_object.$isDataValue]()||this._isMatchTemplate()){this._bindElement(formNode,data);}else{(0,_util.warn)(`XFA - Nodes haven't the same type.`);}}
_findDataByNameToConsume(name,isValue,dataNode,global){if(!name){return null;}
let generator,match;for(let i=0;i<3;i++){generator=dataNode[_xfa_object.$getRealChildrenByNameIt](name,false,true);while(true){match=generator.next().value;if(!match){break;}
if(isValue===match[_xfa_object.$isDataValue]()){return match;}}
if(dataNode[_xfa_object.$namespaceId]===_namespaces.NamespaceIds.datasets.id&&dataNode[_xfa_object.$nodeName]==="data"){break;}
dataNode=dataNode[_xfa_object.$getParent]();}
if(!global){return null;}
generator=this.data[_xfa_object.$getRealChildrenByNameIt](name,true,false);match=generator.next().value;if(match){return match;}
generator=this.data[_xfa_object.$getAttributeIt](name,true);match=generator.next().value;if(match&&match[_xfa_object.$isDataValue]()){return match;}
return null;}
_setProperties(formNode,dataNode){if(!formNode.hasOwnProperty("setProperty")){return;}
for(const{ref,target,connection}of formNode.setProperty.children){if(connection){continue;}
if(!ref){continue;}
const nodes=(0,_som.searchNode)(this.root,dataNode,ref,false,false);if(!nodes){(0,_util.warn)(`XFA - Invalid reference: ${ref}.`);continue;}
const[node]=nodes;if(!node[_xfa_object.$isDescendent](this.data)){(0,_util.warn)(`XFA - Invalid node: must be a data node.`);continue;}
const targetNodes=(0,_som.searchNode)(this.root,formNode,target,false,false);if(!targetNodes){(0,_util.warn)(`XFA - Invalid target: ${target}.`);continue;}
const[targetNode]=targetNodes;if(!targetNode[_xfa_object.$isDescendent](formNode)){(0,_util.warn)(`XFA - Invalid target: must be a property or subproperty.`);continue;}
const targetParent=targetNode[_xfa_object.$getParent]();if(targetNode instanceof _template.SetProperty||targetParent instanceof _template.SetProperty){(0,_util.warn)(`XFA - Invalid target: cannot be a setProperty or one of its properties.`);continue;}
if(targetNode instanceof _template.BindItems||targetParent instanceof _template.BindItems){(0,_util.warn)(`XFA - Invalid target: cannot be a bindItems or one of its properties.`);continue;}
const content=node[_xfa_object.$text]();const name=targetNode[_xfa_object.$nodeName];if(targetNode instanceof _xfa_object.XFAAttribute){const attrs=Object.create(null);attrs[name]=content;const obj=Reflect.construct(Object.getPrototypeOf(targetParent).constructor,[attrs]);targetParent[name]=obj[name];continue;}
if(!targetNode.hasOwnProperty(_xfa_object.$content)){(0,_util.warn)(`XFA - Invalid node to use in setProperty`);continue;}
targetNode[_xfa_object.$data]=node;targetNode[_xfa_object.$content]=content;targetNode[_xfa_object.$finalize]();}}
_bindItems(formNode,dataNode){if(!formNode.hasOwnProperty("items")||!formNode.hasOwnProperty("bindItems")||formNode.bindItems.isEmpty()){return;}
for(const item of formNode.items.children){formNode[_xfa_object.$removeChild](item);}
formNode.items.clear();const labels=new _template.Items({});const values=new _template.Items({});formNode[_xfa_object.$appendChild](labels);formNode.items.push(labels);formNode[_xfa_object.$appendChild](values);formNode.items.push(values);for(const{ref,labelRef,valueRef,connection}of formNode.bindItems.children){if(connection){continue;}
if(!ref){continue;}
const nodes=(0,_som.searchNode)(this.root,dataNode,ref,false,false);if(!nodes){(0,_util.warn)(`XFA - Invalid reference: ${ref}.`);continue;}
for(const node of nodes){if(!node[_xfa_object.$isDescendent](this.datasets)){(0,_util.warn)(`XFA - Invalid ref (${ref}): must be a datasets child.`);continue;}
const labelNodes=(0,_som.searchNode)(this.root,node,labelRef,true,false);if(!labelNodes){(0,_util.warn)(`XFA - Invalid label: ${labelRef}.`);continue;}
const[labelNode]=labelNodes;if(!labelNode[_xfa_object.$isDescendent](this.datasets)){(0,_util.warn)(`XFA - Invalid label: must be a datasets child.`);continue;}
const valueNodes=(0,_som.searchNode)(this.root,node,valueRef,true,false);if(!valueNodes){(0,_util.warn)(`XFA - Invalid value: ${valueRef}.`);continue;}
const[valueNode]=valueNodes;if(!valueNode[_xfa_object.$isDescendent](this.datasets)){(0,_util.warn)(`XFA - Invalid value: must be a datasets child.`);continue;}
const label=createText(labelNode[_xfa_object.$text]());const value=createText(valueNode[_xfa_object.$text]());labels[_xfa_object.$appendChild](label);labels.text.push(label);values[_xfa_object.$appendChild](value);values.text.push(value);}}}
_bindOccurrences(formNode,matches,picture){let baseClone;if(matches.length>1){baseClone=formNode[_xfa_object.$clone]();baseClone[_xfa_object.$removeChild](baseClone.occur);baseClone.occur=null;}
this._bindValue(formNode,matches[0],picture);this._setProperties(formNode,matches[0]);this._bindItems(formNode,matches[0]);if(matches.length===1){return;}
const parent=formNode[_xfa_object.$getParent]();const name=formNode[_xfa_object.$nodeName];const pos=parent[_xfa_object.$indexOf](formNode);for(let i=1,ii=matches.length;i<ii;i++){const match=matches[i];const clone=baseClone[_xfa_object.$clone]();parent[name].push(clone);parent[_xfa_object.$insertAt](pos+i,clone);this._bindValue(clone,match,picture);this._setProperties(clone,match);this._bindItems(clone,match);}}
_createOccurrences(formNode){if(!this.emptyMerge){return;}
const{occur}=formNode;if(!occur||occur.initial<=1){return;}
const parent=formNode[_xfa_object.$getParent]();const name=formNode[_xfa_object.$nodeName];if(!(parent[name]instanceof _xfa_object.XFAObjectArray)){return;}
let currentNumber;if(formNode.name){currentNumber=parent[name].children.filter(e=>e.name===formNode.name).length;}else{currentNumber=parent[name].children.length;}
const pos=parent[_xfa_object.$indexOf](formNode)+1;const ii=occur.initial-currentNumber;if(ii){const nodeClone=formNode[_xfa_object.$clone]();nodeClone[_xfa_object.$removeChild](nodeClone.occur);nodeClone.occur=null;parent[name].push(nodeClone);parent[_xfa_object.$insertAt](pos,nodeClone);for(let i=1;i<ii;i++){const clone=nodeClone[_xfa_object.$clone]();parent[name].push(clone);parent[_xfa_object.$insertAt](pos+i,clone);}}}
_getOccurInfo(formNode){const{name,occur}=formNode;if(!occur||!name){return[1,1];}
const max=occur.max===-1?Infinity:occur.max;return[occur.min,max];}
_setAndBind(formNode,dataNode){this._setProperties(formNode,dataNode);this._bindItems(formNode,dataNode);this._bindElement(formNode,dataNode);}
_bindElement(formNode,dataNode){const uselessNodes=[];this._createOccurrences(formNode);for(const child of formNode[_xfa_object.$getChildren]()){if(child[_xfa_object.$data]){continue;}
if(this._mergeMode===undefined&&child[_xfa_object.$nodeName]==="subform"){this._mergeMode=child.mergeMode==="consumeData";const dataChildren=dataNode[_xfa_object.$getChildren]();if(dataChildren.length>0){this._bindOccurrences(child,[dataChildren[0]],null);}else if(this.emptyMerge){const nsId=dataNode[_xfa_object.$namespaceId]===NS_DATASETS?-1:dataNode[_xfa_object.$namespaceId];const dataChild=child[_xfa_object.$data]=new _xfa_object.XmlObject(nsId,child.name||"root");dataNode[_xfa_object.$appendChild](dataChild);this._bindElement(child,dataChild);}
continue;}
if(!child[_xfa_object.$isBindable]()){continue;}
let global=false;let picture=null;let ref=null;let match=null;if(child.bind){switch(child.bind.match){case"none":this._setAndBind(child,dataNode);continue;case"global":global=true;break;case"dataRef":if(!child.bind.ref){(0,_util.warn)(`XFA - ref is empty in node ${child[_xfa_object.$nodeName]}.`);this._setAndBind(child,dataNode);continue;}
ref=child.bind.ref;break;default:break;}
if(child.bind.picture){picture=child.bind.picture[_xfa_object.$content];}}
const[min,max]=this._getOccurInfo(child);if(ref){match=(0,_som.searchNode)(this.root,dataNode,ref,true,false);if(match===null){match=(0,_som.createDataNode)(this.data,dataNode,ref);if(!match){continue;}
if(this._isConsumeData()){match[_xfa_object.$consumed]=true;}
this._setAndBind(child,match);continue;}else{if(this._isConsumeData()){match=match.filter(node=>!node[_xfa_object.$consumed]);}
if(match.length>max){match=match.slice(0,max);}else if(match.length===0){match=null;}
if(match&&this._isConsumeData()){match.forEach(node=>{node[_xfa_object.$consumed]=true;});}}}else{if(!child.name){this._setAndBind(child,dataNode);continue;}
if(this._isConsumeData()){const matches=[];while(matches.length<max){const found=this._findDataByNameToConsume(child.name,child[_xfa_object.$hasSettableValue](),dataNode,global);if(!found){break;}
found[_xfa_object.$consumed]=true;matches.push(found);}
match=matches.length>0?matches:null;}else{match=dataNode[_xfa_object.$getRealChildrenByNameIt](child.name,false,this.emptyMerge).next().value;if(!match){if(min===0){uselessNodes.push(child);continue;}
const nsId=dataNode[_xfa_object.$namespaceId]===NS_DATASETS?-1:dataNode[_xfa_object.$namespaceId];match=child[_xfa_object.$data]=new _xfa_object.XmlObject(nsId,child.name);if(this.emptyMerge){match[_xfa_object.$consumed]=true;}
dataNode[_xfa_object.$appendChild](match);this._setAndBind(child,match);continue;}
if(this.emptyMerge){match[_xfa_object.$consumed]=true;}
match=[match];}}
if(match){this._bindOccurrences(child,match,picture);}else if(min>0){this._setAndBind(child,dataNode);}else{uselessNodes.push(child);}}
uselessNodes.forEach(node=>node[_xfa_object.$getParent]()[_xfa_object.$removeChild](node));}}
exports.Binder=Binder;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Value=exports.Text=exports.TemplateNamespace=exports.Template=exports.SetProperty=exports.Items=exports.Field=exports.BindItems=void 0;var _xfa_object=__w_pdfjs_require__(202);var _namespaces=__w_pdfjs_require__(204);var _layout=__w_pdfjs_require__(208);var _html_utils=__w_pdfjs_require__(209);var _utils=__w_pdfjs_require__(203);var _util=__w_pdfjs_require__(2);var _fonts=__w_pdfjs_require__(210);var _core_utils=__w_pdfjs_require__(131);var _som=__w_pdfjs_require__(205);const TEMPLATE_NS_ID=_namespaces.NamespaceIds.template.id;const SVG_NS="http://www.w3.org/2000/svg";const MAX_ATTEMPTS_FOR_LRTB_LAYOUT=2;const MAX_EMPTY_PAGES=3;const DEFAULT_TAB_INDEX=5000;const HEADING_PATTERN=/^H(\d+)$/;const MIMES=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif","application/octet-stream"]);const IMAGES_HEADERS=[[[0x42,0x4d],"image/bmp"],[[0xff,0xd8,0xff],"image/jpeg"],[[0x49,0x49,0x2a,0x00],"image/tiff"],[[0x4d,0x4d,0x00,0x2a],"image/tiff"],[[0x47,0x49,0x46,0x38,0x39,0x61],"image/gif"],[[0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a],"image/png"]];function getBorderDims(node){if(!node||!node.border){return{w:0,h:0};}
const borderExtra=node.border[_xfa_object.$getExtra]();if(!borderExtra){return{w:0,h:0};}
return{w:borderExtra.widths[0]+borderExtra.widths[2]+borderExtra.insets[0]+borderExtra.insets[2],h:borderExtra.widths[1]+borderExtra.widths[3]+borderExtra.insets[1]+borderExtra.insets[3]};}
function hasMargin(node){return node.margin&&(node.margin.topInset||node.margin.rightInset||node.margin.bottomInset||node.margin.leftInset);}
function _setValue(templateNode,value){if(!templateNode.value){const nodeValue=new Value({});templateNode[_xfa_object.$appendChild](nodeValue);templateNode.value=nodeValue;}
templateNode.value[_xfa_object.$setValue](value);}
function*getContainedChildren(node){for(const child of node[_xfa_object.$getChildren]()){if(child instanceof SubformSet){yield*child[_xfa_object.$getContainedChildren]();continue;}
yield child;}}
function isRequired(node){return node.validate&&node.validate.nullTest==="error";}
function setTabIndex(node){while(node){if(!node.traversal){node[_xfa_object.$tabIndex]=node[_xfa_object.$getParent]()[_xfa_object.$tabIndex];return;}
if(node[_xfa_object.$tabIndex]){return;}
let next=null;for(const child of node.traversal[_xfa_object.$getChildren]()){if(child.operation==="next"){next=child;break;}}
if(!next||!next.ref){node[_xfa_object.$tabIndex]=node[_xfa_object.$getParent]()[_xfa_object.$tabIndex];return;}
const root=node[_xfa_object.$getTemplateRoot]();node[_xfa_object.$tabIndex]=++root[_xfa_object.$tabIndex];const ref=root[_xfa_object.$searchNode](next.ref,node);if(!ref){return;}
node=ref[0];}}
function applyAssist(obj,attributes){const assist=obj.assist;if(assist){const assistTitle=assist[_xfa_object.$toHTML]();if(assistTitle){attributes.title=assistTitle;}
const role=assist.role;const match=role.match(HEADING_PATTERN);if(match){const ariaRole="heading";const ariaLevel=match[1];attributes.role=ariaRole;attributes["aria-level"]=ariaLevel;}}
if(obj.layout==="table"){attributes.role="table";}else if(obj.layout==="row"){attributes.role="row";}else{const parent=obj[_xfa_object.$getParent]();if(parent.layout==="row"){if(parent.assist&&parent.assist.role==="TH"){attributes.role="columnheader";}else{attributes.role="cell";}}}}
function ariaLabel(obj){if(!obj.assist){return null;}
const assist=obj.assist;if(assist.speak&&assist.speak[_xfa_object.$content]!==""){return assist.speak[_xfa_object.$content];}
if(assist.toolTip){return assist.toolTip[_xfa_object.$content];}
return null;}
function valueToHtml(value){return _utils.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value}]});}
function setFirstUnsplittable(node){const root=node[_xfa_object.$getTemplateRoot]();if(root[_xfa_object.$extra].firstUnsplittable===null){root[_xfa_object.$extra].firstUnsplittable=node;root[_xfa_object.$extra].noLayoutFailure=true;}}
function unsetFirstUnsplittable(node){const root=node[_xfa_object.$getTemplateRoot]();if(root[_xfa_object.$extra].firstUnsplittable===node){root[_xfa_object.$extra].noLayoutFailure=false;}}
function handleBreak(node){if(node[_xfa_object.$extra]){return false;}
node[_xfa_object.$extra]=Object.create(null);if(node.targetType==="auto"){return false;}
const root=node[_xfa_object.$getTemplateRoot]();let target=null;if(node.target){target=root[_xfa_object.$searchNode](node.target,node[_xfa_object.$getParent]());if(!target){return false;}
target=target[0];}
const{currentPageArea,currentContentArea}=root[_xfa_object.$extra];if(node.targetType==="pageArea"){if(!(target instanceof PageArea)){target=null;}
if(node.startNew){node[_xfa_object.$extra].target=target||currentPageArea;return true;}else if(target&&target!==currentPageArea){node[_xfa_object.$extra].target=target;return true;}
return false;}
if(!(target instanceof ContentArea)){target=null;}
const pageArea=target&&target[_xfa_object.$getParent]();let index;let nextPageArea=pageArea;if(node.startNew){if(target){const contentAreas=pageArea.contentArea.children;const indexForCurrent=contentAreas.indexOf(currentContentArea);const indexForTarget=contentAreas.indexOf(target);if(indexForCurrent!==-1&&indexForCurrent<indexForTarget){nextPageArea=null;}
index=indexForTarget-1;}else{index=currentPageArea.contentArea.children.indexOf(currentContentArea);}}else if(target&&target!==currentContentArea){const contentAreas=pageArea.contentArea.children;index=contentAreas.indexOf(target)-1;nextPageArea=pageArea===currentPageArea?null:pageArea;}else{return false;}
node[_xfa_object.$extra].target=nextPageArea;node[_xfa_object.$extra].index=index;return true;}
function handleOverflow(node,extraNode,space){const root=node[_xfa_object.$getTemplateRoot]();const saved=root[_xfa_object.$extra].noLayoutFailure;const savedMethod=extraNode[_xfa_object.$getSubformParent];extraNode[_xfa_object.$getSubformParent]=()=>node;root[_xfa_object.$extra].noLayoutFailure=true;const res=extraNode[_xfa_object.$toHTML](space);node[_xfa_object.$addHTML](res.html,res.bbox);root[_xfa_object.$extra].noLayoutFailure=saved;extraNode[_xfa_object.$getSubformParent]=savedMethod;}
class AppearanceFilter extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"appearanceFilter");this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Arc extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"arc",true);this.circular=(0,_utils.getInteger)({data:attributes.circular,defaultValue:0,validate:x=>x===1});this.hand=(0,_utils.getStringOption)(attributes.hand,["even","left","right"]);this.id=attributes.id||"";this.startAngle=(0,_utils.getFloat)({data:attributes.startAngle,defaultValue:0,validate:x=>true});this.sweepAngle=(0,_utils.getFloat)({data:attributes.sweepAngle,defaultValue:360,validate:x=>true});this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.edge=null;this.fill=null;}
[_xfa_object.$toHTML](){const edge=this.edge||new Edge({});const edgeStyle=edge[_xfa_object.$toStyle]();const style=Object.create(null);if(this.fill&&this.fill.presence==="visible"){Object.assign(style,this.fill[_xfa_object.$toStyle]());}else{style.fill="transparent";}
style.strokeWidth=(0,_html_utils.measureToString)(edge.presence==="visible"?edge.thickness:0);style.stroke=edgeStyle.color;let arc;const attributes={xmlns:SVG_NS,style:{width:"100%",height:"100%",overflow:"visible"}};if(this.sweepAngle===360){arc={name:"ellipse",attributes:{xmlns:SVG_NS,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style}};}else{const startAngle=this.startAngle*Math.PI/180;const sweepAngle=this.sweepAngle*Math.PI/180;const largeArc=this.sweepAngle>180?1:0;const[x1,y1,x2,y2]=[50*(1+Math.cos(startAngle)),50*(1-Math.sin(startAngle)),50*(1+Math.cos(startAngle+sweepAngle)),50*(1-Math.sin(startAngle+sweepAngle))];arc={name:"path",attributes:{xmlns:SVG_NS,d:`M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`,vectorEffect:"non-scaling-stroke",style}};Object.assign(attributes,{viewBox:"0 0 100 100",preserveAspectRatio:"none"});}
const svg={name:"svg",children:[arc],attributes};const parent=this[_xfa_object.$getParent]()[_xfa_object.$getParent]();if(hasMargin(parent)){return _utils.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[svg]});}
svg.attributes.style.position="absolute";return _utils.HTMLResult.success(svg);}}
class Area extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"area",true);this.colSpan=(0,_utils.getInteger)({data:attributes.colSpan,defaultValue:1,validate:n=>n>=1||n===-1});this.id=attributes.id||"";this.name=attributes.name||"";this.relevant=(0,_utils.getRelevant)(attributes.relevant);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.x=(0,_utils.getMeasurement)(attributes.x,"0pt");this.y=(0,_utils.getMeasurement)(attributes.y,"0pt");this.desc=null;this.extras=null;this.area=new _xfa_object.XFAObjectArray();this.draw=new _xfa_object.XFAObjectArray();this.exObject=new _xfa_object.XFAObjectArray();this.exclGroup=new _xfa_object.XFAObjectArray();this.field=new _xfa_object.XFAObjectArray();this.subform=new _xfa_object.XFAObjectArray();this.subformSet=new _xfa_object.XFAObjectArray();}*[_xfa_object.$getContainedChildren](){yield*getContainedChildren(this);}
[_xfa_object.$isTransparent](){return true;}
[_xfa_object.$isBindable](){return true;}
[_xfa_object.$addHTML](html,bbox){const[x,y,w,h]=bbox;this[_xfa_object.$extra].width=Math.max(this[_xfa_object.$extra].width,x+w);this[_xfa_object.$extra].height=Math.max(this[_xfa_object.$extra].height,y+h);this[_xfa_object.$extra].children.push(html);}
[_xfa_object.$getAvailableSpace](){return this[_xfa_object.$extra].availableSpace;}
[_xfa_object.$toHTML](availableSpace){const style=(0,_html_utils.toStyle)(this,"position");const attributes={style,id:this[_xfa_object.$uid],class:["xfaArea"]};if((0,_html_utils.isPrintOnly)(this)){attributes.class.push("xfaPrintOnly");}
if(this.name){attributes.xfaName=this.name;}
const children=[];this[_xfa_object.$extra]={children,width:0,height:0,availableSpace};const result=this[_xfa_object.$childrenToHTML]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:true});if(!result.success){if(result.isBreak()){return result;}
delete this[_xfa_object.$extra];return _utils.HTMLResult.FAILURE;}
style.width=(0,_html_utils.measureToString)(this[_xfa_object.$extra].width);style.height=(0,_html_utils.measureToString)(this[_xfa_object.$extra].height);const html={name:"div",attributes,children};const bbox=[this.x,this.y,this[_xfa_object.$extra].width,this[_xfa_object.$extra].height];delete this[_xfa_object.$extra];return _utils.HTMLResult.success(html,bbox);}}
class Assist extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"assist",true);this.id=attributes.id||"";this.role=attributes.role||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.speak=null;this.toolTip=null;}
[_xfa_object.$toHTML](){return this.toolTip&&this.toolTip[_xfa_object.$content]?this.toolTip[_xfa_object.$content]:null;}}
class Barcode extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"barcode",true);this.charEncoding=(0,_utils.getKeyword)({data:attributes.charEncoding?attributes.charEncoding.toLowerCase():"",defaultValue:"",validate:k=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(k)||k.match(/iso-8859-\d{2}/)});this.checksum=(0,_utils.getStringOption)(attributes.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]);this.dataColumnCount=(0,_utils.getInteger)({data:attributes.dataColumnCount,defaultValue:-1,validate:x=>x>=0});this.dataLength=(0,_utils.getInteger)({data:attributes.dataLength,defaultValue:-1,validate:x=>x>=0});this.dataPrep=(0,_utils.getStringOption)(attributes.dataPrep,["none","flateCompress"]);this.dataRowCount=(0,_utils.getInteger)({data:attributes.dataRowCount,defaultValue:-1,validate:x=>x>=0});this.endChar=attributes.endChar||"";this.errorCorrectionLevel=(0,_utils.getInteger)({data:attributes.errorCorrectionLevel,defaultValue:-1,validate:x=>x>=0&&x<=8});this.id=attributes.id||"";this.moduleHeight=(0,_utils.getMeasurement)(attributes.moduleHeight,"5mm");this.moduleWidth=(0,_utils.getMeasurement)(attributes.moduleWidth,"0.25mm");this.printCheckDigit=(0,_utils.getInteger)({data:attributes.printCheckDigit,defaultValue:0,validate:x=>x===1});this.rowColumnRatio=(0,_utils.getRatio)(attributes.rowColumnRatio);this.startChar=attributes.startChar||"";this.textLocation=(0,_utils.getStringOption)(attributes.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]);this.truncate=(0,_utils.getInteger)({data:attributes.truncate,defaultValue:0,validate:x=>x===1});this.type=(0,_utils.getStringOption)(attributes.type?attributes.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]);this.upsMode=(0,_utils.getStringOption)(attributes.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.wideNarrowRatio=(0,_utils.getRatio)(attributes.wideNarrowRatio);this.encrypt=null;this.extras=null;}}
class Bind extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bind",true);this.match=(0,_utils.getStringOption)(attributes.match,["once","dataRef","global","none"]);this.ref=attributes.ref||"";this.picture=null;}}
class BindItems extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bindItems");this.connection=attributes.connection||"";this.labelRef=attributes.labelRef||"";this.ref=attributes.ref||"";this.valueRef=attributes.valueRef||"";}}
exports.BindItems=BindItems;class Bookend extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bookend");this.id=attributes.id||"";this.leader=attributes.leader||"";this.trailer=attributes.trailer||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class BooleanElement extends _xfa_object.Option01{constructor(attributes){super(TEMPLATE_NS_ID,"boolean");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$toHTML](availableSpace){return valueToHtml(this[_xfa_object.$content]===1?"1":"0");}}
class Border extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"border",true);this.break=(0,_utils.getStringOption)(attributes.break,["close","open"]);this.hand=(0,_utils.getStringOption)(attributes.hand,["even","left","right"]);this.id=attributes.id||"";this.presence=(0,_utils.getStringOption)(attributes.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,_utils.getRelevant)(attributes.relevant);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.corner=new _xfa_object.XFAObjectArray(4);this.edge=new _xfa_object.XFAObjectArray(4);this.extras=null;this.fill=null;this.margin=null;}
[_xfa_object.$getExtra](){if(!this[_xfa_object.$extra]){const edges=this.edge.children.slice();if(edges.length<4){const defaultEdge=edges.at(-1)||new Edge({});for(let i=edges.length;i<4;i++){edges.push(defaultEdge);}}
const widths=edges.map(edge=>edge.thickness);const insets=[0,0,0,0];if(this.margin){insets[0]=this.margin.topInset;insets[1]=this.margin.rightInset;insets[2]=this.margin.bottomInset;insets[3]=this.margin.leftInset;}
this[_xfa_object.$extra]={widths,insets,edges};}
return this[_xfa_object.$extra];}
[_xfa_object.$toStyle](){const{edges}=this[_xfa_object.$getExtra]();const edgeStyles=edges.map(node=>{const style=node[_xfa_object.$toStyle]();style.color=style.color||"#000000";return style;});const style=Object.create(null);if(this.margin){Object.assign(style,this.margin[_xfa_object.$toStyle]());}
if(this.fill&&this.fill.presence==="visible"){Object.assign(style,this.fill[_xfa_object.$toStyle]());}
if(this.corner.children.some(node=>node.radius!==0)){const cornerStyles=this.corner.children.map(node=>node[_xfa_object.$toStyle]());if(cornerStyles.length===2||cornerStyles.length===3){const last=cornerStyles.at(-1);for(let i=cornerStyles.length;i<4;i++){cornerStyles.push(last);}}
style.borderRadius=cornerStyles.map(s=>s.radius).join(" ");}
switch(this.presence){case"invisible":case"hidden":style.borderStyle="";break;case"inactive":style.borderStyle="none";break;default:style.borderStyle=edgeStyles.map(s=>s.style).join(" ");break;}
style.borderWidth=edgeStyles.map(s=>s.width).join(" ");style.borderColor=edgeStyles.map(s=>s.color).join(" ");return style;}}
class Break extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"break",true);this.after=(0,_utils.getStringOption)(attributes.after,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.afterTarget=attributes.afterTarget||"";this.before=(0,_utils.getStringOption)(attributes.before,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.beforeTarget=attributes.beforeTarget||"";this.bookendLeader=attributes.bookendLeader||"";this.bookendTrailer=attributes.bookendTrailer||"";this.id=attributes.id||"";this.overflowLeader=attributes.overflowLeader||"";this.overflowTarget=attributes.overflowTarget||"";this.overflowTrailer=attributes.overflowTrailer||"";this.startNew=(0,_utils.getInteger)({data:attributes.startNew,defaultValue:0,validate:x=>x===1});this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;}}
class BreakAfter extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"breakAfter",true);this.id=attributes.id||"";this.leader=attributes.leader||"";this.startNew=(0,_utils.getInteger)({data:attributes.startNew,defaultValue:0,validate:x=>x===1});this.target=attributes.target||"";this.targetType=(0,_utils.getStringOption)(attributes.targetType,["auto","contentArea","pageArea"]);this.trailer=attributes.trailer||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.script=null;}}
class BreakBefore extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"breakBefore",true);this.id=attributes.id||"";this.leader=attributes.leader||"";this.startNew=(0,_utils.getInteger)({data:attributes.startNew,defaultValue:0,validate:x=>x===1});this.target=attributes.target||"";this.targetType=(0,_utils.getStringOption)(attributes.targetType,["auto","contentArea","pageArea"]);this.trailer=attributes.trailer||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.script=null;}
[_xfa_object.$toHTML](availableSpace){this[_xfa_object.$extra]={};return _utils.HTMLResult.FAILURE;}}
class Button extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"button",true);this.highlight=(0,_utils.getStringOption)(attributes.highlight,["inverted","none","outline","push"]);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;}
[_xfa_object.$toHTML](availableSpace){const parent=this[_xfa_object.$getParent]();const grandpa=parent[_xfa_object.$getParent]();const htmlButton={name:"button",attributes:{id:this[_xfa_object.$uid],class:["xfaButton"],style:{}},children:[]};for(const event of grandpa.event.children){if(event.activity!=="click"||!event.script){continue;}
const jsURL=(0,_core_utils.recoverJsURL)(event.script[_xfa_object.$content]);if(!jsURL){continue;}
const href=(0,_html_utils.fixURL)(jsURL.url);if(!href){continue;}
htmlButton.children.push({name:"a",attributes:{id:"link"+this[_xfa_object.$uid],href,newWindow:jsURL.newWindow,class:["xfaLink"],style:{}},children:[]});}
return _utils.HTMLResult.success(htmlButton);}}
class Calculate extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"calculate",true);this.id=attributes.id||"";this.override=(0,_utils.getStringOption)(attributes.override,["disabled","error","ignore","warning"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;this.message=null;this.script=null;}}
class Caption extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"caption",true);this.id=attributes.id||"";this.placement=(0,_utils.getStringOption)(attributes.placement,["left","bottom","inline","right","top"]);this.presence=(0,_utils.getStringOption)(attributes.presence,["visible","hidden","inactive","invisible"]);this.reserve=Math.ceil((0,_utils.getMeasurement)(attributes.reserve));this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;this.font=null;this.margin=null;this.para=null;this.value=null;}
[_xfa_object.$setValue](value){_setValue(this,value);}
[_xfa_object.$getExtra](availableSpace){if(!this[_xfa_object.$extra]){let{width,height}=availableSpace;switch(this.placement){case"left":case"right":case"inline":width=this.reserve<=0?width:this.reserve;break;case"top":case"bottom":height=this.reserve<=0?height:this.reserve;break;}
this[_xfa_object.$extra]=(0,_html_utils.layoutNode)(this,{width,height});}
return this[_xfa_object.$extra];}
[_xfa_object.$toHTML](availableSpace){if(!this.value){return _utils.HTMLResult.EMPTY;}
this[_xfa_object.$pushPara]();const value=this.value[_xfa_object.$toHTML](availableSpace).html;if(!value){this[_xfa_object.$popPara]();return _utils.HTMLResult.EMPTY;}
const savedReserve=this.reserve;if(this.reserve<=0){const{w,h}=this[_xfa_object.$getExtra](availableSpace);switch(this.placement){case"left":case"right":case"inline":this.reserve=w;break;case"top":case"bottom":this.reserve=h;break;}}
const children=[];if(typeof value==="string"){children.push({name:"#text",value});}else{children.push(value);}
const style=(0,_html_utils.toStyle)(this,"font","margin","visibility");switch(this.placement){case"left":case"right":if(this.reserve>0){style.width=(0,_html_utils.measureToString)(this.reserve);}
break;case"top":case"bottom":if(this.reserve>0){style.height=(0,_html_utils.measureToString)(this.reserve);}
break;}
(0,_html_utils.setPara)(this,null,value);this[_xfa_object.$popPara]();this.reserve=savedReserve;return _utils.HTMLResult.success({name:"div",attributes:{style,class:["xfaCaption"]},children});}}
class Certificate extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"certificate");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Certificates extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"certificates",true);this.credentialServerPolicy=(0,_utils.getStringOption)(attributes.credentialServerPolicy,["optional","required"]);this.id=attributes.id||"";this.url=attributes.url||"";this.urlPolicy=attributes.urlPolicy||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.encryption=null;this.issuers=null;this.keyUsage=null;this.oids=null;this.signing=null;this.subjectDNs=null;}}
class CheckButton extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"checkButton",true);this.id=attributes.id||"";this.mark=(0,_utils.getStringOption)(attributes.mark,["default","check","circle","cross","diamond","square","star"]);this.shape=(0,_utils.getStringOption)(attributes.shape,["square","round"]);this.size=(0,_utils.getMeasurement)(attributes.size,"10pt");this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.border=null;this.extras=null;this.margin=null;}
[_xfa_object.$toHTML](availableSpace){const style=(0,_html_utils.toStyle)("margin");const size=(0,_html_utils.measureToString)(this.size);style.width=style.height=size;let type;let className;let groupId;const field=this[_xfa_object.$getParent]()[_xfa_object.$getParent]();const items=field.items.children.length&&field.items.children[0][_xfa_object.$toHTML]().html||[];const exportedValue={on:(items[0]!==undefined?items[0]:"on").toString(),off:(items[1]!==undefined?items[1]:"off").toString()};const value=field.value&&field.value[_xfa_object.$text]()||"off";const checked=value===exportedValue.on||undefined;const container=field[_xfa_object.$getSubformParent]();const fieldId=field[_xfa_object.$uid];let dataId;if(container instanceof ExclGroup){groupId=container[_xfa_object.$uid];type="radio";className="xfaRadio";dataId=container[_xfa_object.$data]&&container[_xfa_object.$data][_xfa_object.$uid]||container[_xfa_object.$uid];}else{type="checkbox";className="xfaCheckbox";dataId=field[_xfa_object.$data]&&field[_xfa_object.$data][_xfa_object.$uid]||field[_xfa_object.$uid];}
const input={name:"input",attributes:{class:[className],style,fieldId,dataId,type,checked,xfaOn:exportedValue.on,xfaOff:exportedValue.off,"aria-label":ariaLabel(field),"aria-required":false}};if(groupId){input.attributes.name=groupId;}
if(isRequired(field)){input.attributes["aria-required"]=true;input.attributes.required=true;}
return _utils.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[input]});}}
class ChoiceList extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"choiceList",true);this.commitOn=(0,_utils.getStringOption)(attributes.commitOn,["select","exit"]);this.id=attributes.id||"";this.open=(0,_utils.getStringOption)(attributes.open,["userControl","always","multiSelect","onEntry"]);this.textEntry=(0,_utils.getInteger)({data:attributes.textEntry,defaultValue:0,validate:x=>x===1});this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.border=null;this.extras=null;this.margin=null;}
[_xfa_object.$toHTML](availableSpace){const style=(0,_html_utils.toStyle)(this,"border","margin");const ui=this[_xfa_object.$getParent]();const field=ui[_xfa_object.$getParent]();const fontSize=field.font&&field.font.size||10;const optionStyle={fontSize:`calc(${fontSize}px * var(--scale-factor))`};const children=[];if(field.items.children.length>0){const items=field.items;let displayedIndex=0;let saveIndex=0;if(items.children.length===2){displayedIndex=items.children[0].save;saveIndex=1-displayedIndex;}
const displayed=items.children[displayedIndex][_xfa_object.$toHTML]().html;const values=items.children[saveIndex][_xfa_object.$toHTML]().html;let selected=false;const value=field.value&&field.value[_xfa_object.$text]()||"";for(let i=0,ii=displayed.length;i<ii;i++){const option={name:"option",attributes:{value:values[i]||displayed[i],style:optionStyle},value:displayed[i]};if(values[i]===value){option.attributes.selected=selected=true;}
children.push(option);}
if(!selected){children.splice(0,0,{name:"option",attributes:{hidden:true,selected:true},value:" "});}}
const selectAttributes={class:["xfaSelect"],fieldId:field[_xfa_object.$uid],dataId:field[_xfa_object.$data]&&field[_xfa_object.$data][_xfa_object.$uid]||field[_xfa_object.$uid],style,"aria-label":ariaLabel(field),"aria-required":false};if(isRequired(field)){selectAttributes["aria-required"]=true;selectAttributes.required=true;}
if(this.open==="multiSelect"){selectAttributes.multiple=true;}
return _utils.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[{name:"select",children,attributes:selectAttributes}]});}}
class Color extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"color",true);this.cSpace=(0,_utils.getStringOption)(attributes.cSpace,["SRGB"]);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.value=attributes.value?(0,_utils.getColor)(attributes.value):"";this.extras=null;}
[_xfa_object.$hasSettableValue](){return false;}
[_xfa_object.$toStyle](){return this.value?_util.Util.makeHexColor(this.value.r,this.value.g,this.value.b):null;}}
class Comb extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"comb");this.id=attributes.id||"";this.numberOfCells=(0,_utils.getInteger)({data:attributes.numberOfCells,defaultValue:0,validate:x=>x>=0});this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Connect extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"connect",true);this.connection=attributes.connection||"";this.id=attributes.id||"";this.ref=attributes.ref||"";this.usage=(0,_utils.getStringOption)(attributes.usage,["exportAndImport","exportOnly","importOnly"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.picture=null;}}
class ContentArea extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"contentArea",true);this.h=(0,_utils.getMeasurement)(attributes.h);this.id=attributes.id||"";this.name=attributes.name||"";this.relevant=(0,_utils.getRelevant)(attributes.relevant);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.w=(0,_utils.getMeasurement)(attributes.w);this.x=(0,_utils.getMeasurement)(attributes.x,"0pt");this.y=(0,_utils.getMeasurement)(attributes.y,"0pt");this.desc=null;this.extras=null;}
[_xfa_object.$toHTML](availableSpace){const left=(0,_html_utils.measureToString)(this.x);const top=(0,_html_utils.measureToString)(this.y);const style={left,top,width:(0,_html_utils.measureToString)(this.w),height:(0,_html_utils.measureToString)(this.h)};const classNames=["xfaContentarea"];if((0,_html_utils.isPrintOnly)(this)){classNames.push("xfaPrintOnly");}
return _utils.HTMLResult.success({name:"div",children:[],attributes:{style,class:classNames,id:this[_xfa_object.$uid]}});}}
class Corner extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"corner",true);this.id=attributes.id||"";this.inverted=(0,_utils.getInteger)({data:attributes.inverted,defaultValue:0,validate:x=>x===1});this.join=(0,_utils.getStringOption)(attributes.join,["square","round"]);this.presence=(0,_utils.getStringOption)(attributes.presence,["visible","hidden","inactive","invisible"]);this.radius=(0,_utils.getMeasurement)(attributes.radius);this.stroke=(0,_utils.getStringOption)(attributes.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=(0,_utils.getMeasurement)(attributes.thickness,"0.5pt");this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.color=null;this.extras=null;}
[_xfa_object.$toStyle](){const style=(0,_html_utils.toStyle)(this,"visibility");style.radius=(0,_html_utils.measureToString)(this.join==="square"?0:this.radius);return style;}}
class DateElement extends _xfa_object.ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"date");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$finalize](){const date=this[_xfa_object.$content].trim();this[_xfa_object.$content]=date?new Date(date):null;}
[_xfa_object.$toHTML](availableSpace){return valueToHtml(this[_xfa_object.$content]?this[_xfa_object.$content].toString():"");}}
class DateTime extends _xfa_object.ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"dateTime");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$finalize](){const date=this[_xfa_object.$content].trim();this[_xfa_object.$content]=date?new Date(date):null;}
[_xfa_object.$toHTML](availableSpace){return valueToHtml(this[_xfa_object.$content]?this[_xfa_object.$content].toString():"");}}
class DateTimeEdit extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"dateTimeEdit",true);this.hScrollPolicy=(0,_utils.getStringOption)(attributes.hScrollPolicy,["auto","off","on"]);this.id=attributes.id||"";this.picker=(0,_utils.getStringOption)(attributes.picker,["host","none"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null;}
[_xfa_object.$toHTML](availableSpace){const style=(0,_html_utils.toStyle)(this,"border","font","margin");const field=this[_xfa_object.$getParent]()[_xfa_object.$getParent]();const html={name:"input",attributes:{type:"text",fieldId:field[_xfa_object.$uid],dataId:field[_xfa_object.$data]&&field[_xfa_object.$data][_xfa_object.$uid]||field[_xfa_object.$uid],class:["xfaTextfield"],style,"aria-label":ariaLabel(field),"aria-required":false}};if(isRequired(field)){html.attributes["aria-required"]=true;html.attributes.required=true;}
return _utils.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[html]});}}
class Decimal extends _xfa_object.ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"decimal");this.fracDigits=(0,_utils.getInteger)({data:attributes.fracDigits,defaultValue:2,validate:x=>true});this.id=attributes.id||"";this.leadDigits=(0,_utils.getInteger)({data:attributes.leadDigits,defaultValue:-1,validate:x=>true});this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$finalize](){const number=parseFloat(this[_xfa_object.$content].trim());this[_xfa_object.$content]=isNaN(number)?null:number;}
[_xfa_object.$toHTML](availableSpace){return valueToHtml(this[_xfa_object.$content]!==null?this[_xfa_object.$content].toString():"");}}
class DefaultUi extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"defaultUi",true);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;}}
class Desc extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"desc",true);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.boolean=new _xfa_object.XFAObjectArray();this.date=new _xfa_object.XFAObjectArray();this.dateTime=new _xfa_object.XFAObjectArray();this.decimal=new _xfa_object.XFAObjectArray();this.exData=new _xfa_object.XFAObjectArray();this.float=new _xfa_object.XFAObjectArray();this.image=new _xfa_object.XFAObjectArray();this.integer=new _xfa_object.XFAObjectArray();this.text=new _xfa_object.XFAObjectArray();this.time=new _xfa_object.XFAObjectArray();}}
class DigestMethod extends _xfa_object.OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class DigestMethods extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"digestMethods",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.digestMethod=new _xfa_object.XFAObjectArray();}}
class Draw extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"draw",true);this.anchorType=(0,_utils.getStringOption)(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,_utils.getInteger)({data:attributes.colSpan,defaultValue:1,validate:n=>n>=1||n===-1});this.h=attributes.h?(0,_utils.getMeasurement)(attributes.h):"";this.hAlign=(0,_utils.getStringOption)(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=attributes.id||"";this.locale=attributes.locale||"";this.maxH=(0,_utils.getMeasurement)(attributes.maxH,"0pt");this.maxW=(0,_utils.getMeasurement)(attributes.maxW,"0pt");this.minH=(0,_utils.getMeasurement)(attributes.minH,"0pt");this.minW=(0,_utils.getMeasurement)(attributes.minW,"0pt");this.name=attributes.name||"";this.presence=(0,_utils.getStringOption)(attributes.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,_utils.getRelevant)(attributes.relevant);this.rotate=(0,_utils.getInteger)({data:attributes.rotate,defaultValue:0,validate:x=>x%90===0});this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.w=attributes.w?(0,_utils.getMeasurement)(attributes.w):"";this.x=(0,_utils.getMeasurement)(attributes.x,"0pt");this.y=(0,_utils.getMeasurement)(attributes.y,"0pt");this.assist=null;this.border=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.value=null;this.setProperty=new _xfa_object.XFAObjectArray();}
[_xfa_object.$setValue](value){_setValue(this,value);}
[_xfa_object.$toHTML](availableSpace){setTabIndex(this);if(this.presence==="hidden"||this.presence==="inactive"){return _utils.HTMLResult.EMPTY;}
(0,_html_utils.fixDimensions)(this);this[_xfa_object.$pushPara]();const savedW=this.w;const savedH=this.h;const{w,h,isBroken}=(0,_html_utils.layoutNode)(this,availableSpace);if(w&&this.w===""){if(isBroken&&this[_xfa_object.$getSubformParent]()[_xfa_object.$isThereMoreWidth]()){this[_xfa_object.$popPara]();return _utils.HTMLResult.FAILURE;}
this.w=w;}
if(h&&this.h===""){this.h=h;}
setFirstUnsplittable(this);if(!(0,_layout.checkDimensions)(this,availableSpace)){this.w=savedW;this.h=savedH;this[_xfa_object.$popPara]();return _utils.HTMLResult.FAILURE;}
unsetFirstUnsplittable(this);const style=(0,_html_utils.toStyle)(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin");(0,_html_utils.setMinMaxDimensions)(this,style);if(style.margin){style.padding=style.margin;delete style.margin;}
const classNames=["xfaDraw"];if(this.font){classNames.push("xfaFont");}
if((0,_html_utils.isPrintOnly)(this)){classNames.push("xfaPrintOnly");}
const attributes={style,id:this[_xfa_object.$uid],class:classNames};if(this.name){attributes.xfaName=this.name;}
const html={name:"div",attributes,children:[]};applyAssist(this,attributes);const bbox=(0,_html_utils.computeBbox)(this,html,availableSpace);const value=this.value?this.value[_xfa_object.$toHTML](availableSpace).html:null;if(value===null){this.w=savedW;this.h=savedH;this[_xfa_object.$popPara]();return _utils.HTMLResult.success((0,_html_utils.createWrapper)(this,html),bbox);}
html.children.push(value);(0,_html_utils.setPara)(this,style,value);this.w=savedW;this.h=savedH;this[_xfa_object.$popPara]();return _utils.HTMLResult.success((0,_html_utils.createWrapper)(this,html),bbox);}}
class Edge extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"edge",true);this.cap=(0,_utils.getStringOption)(attributes.cap,["square","butt","round"]);this.id=attributes.id||"";this.presence=(0,_utils.getStringOption)(attributes.presence,["visible","hidden","inactive","invisible"]);this.stroke=(0,_utils.getStringOption)(attributes.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=(0,_utils.getMeasurement)(attributes.thickness,"0.5pt");this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.color=null;this.extras=null;}
[_xfa_object.$toStyle](){const style=(0,_html_utils.toStyle)(this,"visibility");Object.assign(style,{linecap:this.cap,width:(0,_html_utils.measureToString)(this.thickness),color:this.color?this.color[_xfa_object.$toStyle]():"#000000",style:""});if(this.presence!=="visible"){style.style="none";}else{switch(this.stroke){case"solid":style.style="solid";break;case"dashDot":style.style="dashed";break;case"dashDotDot":style.style="dashed";break;case"dashed":style.style="dashed";break;case"dotted":style.style="dotted";break;case"embossed":style.style="ridge";break;case"etched":style.style="groove";break;case"lowered":style.style="inset";break;case"raised":style.style="outset";break;}}
return style;}}
class Encoding extends _xfa_object.OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"]);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Encodings extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encodings",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.encoding=new _xfa_object.XFAObjectArray();}}
class Encrypt extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encrypt",true);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.certificate=null;}}
class EncryptData extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptData",true);this.id=attributes.id||"";this.operation=(0,_utils.getStringOption)(attributes.operation,["encrypt","decrypt"]);this.target=attributes.target||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.filter=null;this.manifest=null;}}
class Encryption extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryption",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.certificate=new _xfa_object.XFAObjectArray();}}
class EncryptionMethod extends _xfa_object.OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"]);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class EncryptionMethods extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptionMethods",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.encryptionMethod=new _xfa_object.XFAObjectArray();}}
class Event extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"event",true);this.activity=(0,_utils.getStringOption)(attributes.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]);this.id=attributes.id||"";this.listen=(0,_utils.getStringOption)(attributes.listen,["refOnly","refAndDescendents"]);this.name=attributes.name||"";this.ref=attributes.ref||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;this.encryptData=null;this.execute=null;this.script=null;this.signData=null;this.submit=null;}}
class ExData extends _xfa_object.ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"exData");this.contentType=attributes.contentType||"";this.href=attributes.href||"";this.id=attributes.id||"";this.maxLength=(0,_utils.getInteger)({data:attributes.maxLength,defaultValue:-1,validate:x=>x>=-1});this.name=attributes.name||"";this.rid=attributes.rid||"";this.transferEncoding=(0,_utils.getStringOption)(attributes.transferEncoding,["none","base64","package"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$isCDATAXml](){return this.contentType==="text/html";}
[_xfa_object.$onChild](child){if(this.contentType==="text/html"&&child[_xfa_object.$namespaceId]===_namespaces.NamespaceIds.xhtml.id){this[_xfa_object.$content]=child;return true;}
if(this.contentType==="text/xml"){this[_xfa_object.$content]=child;return true;}
return false;}
[_xfa_object.$toHTML](availableSpace){if(this.contentType!=="text/html"||!this[_xfa_object.$content]){return _utils.HTMLResult.EMPTY;}
return this[_xfa_object.$content][_xfa_object.$toHTML](availableSpace);}}
class ExObject extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"exObject",true);this.archive=attributes.archive||"";this.classId=attributes.classId||"";this.codeBase=attributes.codeBase||"";this.codeType=attributes.codeType||"";this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;this.boolean=new _xfa_object.XFAObjectArray();this.date=new _xfa_object.XFAObjectArray();this.dateTime=new _xfa_object.XFAObjectArray();this.decimal=new _xfa_object.XFAObjectArray();this.exData=new _xfa_object.XFAObjectArray();this.exObject=new _xfa_object.XFAObjectArray();this.float=new _xfa_object.XFAObjectArray();this.image=new _xfa_object.XFAObjectArray();this.integer=new _xfa_object.XFAObjectArray();this.text=new _xfa_object.XFAObjectArray();this.time=new _xfa_object.XFAObjectArray();}}
class ExclGroup extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"exclGroup",true);this.access=(0,_utils.getStringOption)(attributes.access,["open","nonInteractive","protected","readOnly"]);this.accessKey=attributes.accessKey||"";this.anchorType=(0,_utils.getStringOption)(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,_utils.getInteger)({data:attributes.colSpan,defaultValue:1,validate:n=>n>=1||n===-1});this.h=attributes.h?(0,_utils.getMeasurement)(attributes.h):"";this.hAlign=(0,_utils.getStringOption)(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=attributes.id||"";this.layout=(0,_utils.getStringOption)(attributes.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.maxH=(0,_utils.getMeasurement)(attributes.maxH,"0pt");this.maxW=(0,_utils.getMeasurement)(attributes.maxW,"0pt");this.minH=(0,_utils.getMeasurement)(attributes.minH,"0pt");this.minW=(0,_utils.getMeasurement)(attributes.minW,"0pt");this.name=attributes.name||"";this.presence=(0,_utils.getStringOption)(attributes.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,_utils.getRelevant)(attributes.relevant);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.w=attributes.w?(0,_utils.getMeasurement)(attributes.w):"";this.x=(0,_utils.getMeasurement)(attributes.x,"0pt");this.y=(0,_utils.getMeasurement)(attributes.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.margin=null;this.para=null;this.traversal=null;this.validate=null;this.connect=new _xfa_object.XFAObjectArray();this.event=new _xfa_object.XFAObjectArray();this.field=new _xfa_object.XFAObjectArray();this.setProperty=new _xfa_object.XFAObjectArray();}
[_xfa_object.$isBindable](){return true;}
[_xfa_object.$hasSettableValue](){return true;}
[_xfa_object.$setValue](value){for(const field of this.field.children){if(!field.value){const nodeValue=new Value({});field[_xfa_object.$appendChild](nodeValue);field.value=nodeValue;}
field.value[_xfa_object.$setValue](value);}}
[_xfa_object.$isThereMoreWidth](){return this.layout.endsWith("-tb")&&this[_xfa_object.$extra].attempt===0&&this[_xfa_object.$extra].numberInLine>0||this[_xfa_object.$getParent]()[_xfa_object.$isThereMoreWidth]();}
[_xfa_object.$isSplittable](){const parent=this[_xfa_object.$getSubformParent]();if(!parent[_xfa_object.$isSplittable]()){return false;}
if(this[_xfa_object.$extra]._isSplittable!==undefined){return this[_xfa_object.$extra]._isSplittable;}
if(this.layout==="position"||this.layout.includes("row")){this[_xfa_object.$extra]._isSplittable=false;return false;}
if(parent.layout&&parent.layout.endsWith("-tb")&&parent[_xfa_object.$extra].numberInLine!==0){return false;}
this[_xfa_object.$extra]._isSplittable=true;return true;}
[_xfa_object.$flushHTML](){return(0,_layout.flushHTML)(this);}
[_xfa_object.$addHTML](html,bbox){(0,_layout.addHTML)(this,html,bbox);}
[_xfa_object.$getAvailableSpace](){return(0,_layout.getAvailableSpace)(this);}
[_xfa_object.$toHTML](availableSpace){setTabIndex(this);if(this.presence==="hidden"||this.presence==="inactive"||this.h===0||this.w===0){return _utils.HTMLResult.EMPTY;}
(0,_html_utils.fixDimensions)(this);const children=[];const attributes={id:this[_xfa_object.$uid],class:[]};(0,_html_utils.setAccess)(this,attributes.class);if(!this[_xfa_object.$extra]){this[_xfa_object.$extra]=Object.create(null);}
Object.assign(this[_xfa_object.$extra],{children,attributes,attempt:0,line:null,numberInLine:0,availableSpace:{width:Math.min(this.w||Infinity,availableSpace.width),height:Math.min(this.h||Infinity,availableSpace.height)},width:0,height:0,prevHeight:0,currentWidth:0});const isSplittable=this[_xfa_object.$isSplittable]();if(!isSplittable){setFirstUnsplittable(this);}
if(!(0,_layout.checkDimensions)(this,availableSpace)){return _utils.HTMLResult.FAILURE;}
const filter=new Set(["field"]);if(this.layout.includes("row")){const columnWidths=this[_xfa_object.$getSubformParent]().columnWidths;if(Array.isArray(columnWidths)&&columnWidths.length>0){this[_xfa_object.$extra].columnWidths=columnWidths;this[_xfa_object.$extra].currentColumn=0;}}
const style=(0,_html_utils.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign");const classNames=["xfaExclgroup"];const cl=(0,_html_utils.layoutClass)(this);if(cl){classNames.push(cl);}
if((0,_html_utils.isPrintOnly)(this)){classNames.push("xfaPrintOnly");}
attributes.style=style;attributes.class=classNames;if(this.name){attributes.xfaName=this.name;}
this[_xfa_object.$pushPara]();const isLrTb=this.layout==="lr-tb"||this.layout==="rl-tb";const maxRun=isLrTb?MAX_ATTEMPTS_FOR_LRTB_LAYOUT:1;for(;this[_xfa_object.$extra].attempt<maxRun;this[_xfa_object.$extra].attempt++){if(isLrTb&&this[_xfa_object.$extra].attempt===MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1){this[_xfa_object.$extra].numberInLine=0;}
const result=this[_xfa_object.$childrenToHTML]({filter,include:true});if(result.success){break;}
if(result.isBreak()){this[_xfa_object.$popPara]();return result;}
if(isLrTb&&this[_xfa_object.$extra].attempt===0&&this[_xfa_object.$extra].numberInLine===0&&!this[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure){this[_xfa_object.$extra].attempt=maxRun;break;}}
this[_xfa_object.$popPara]();if(!isSplittable){unsetFirstUnsplittable(this);}
if(this[_xfa_object.$extra].attempt===maxRun){if(!isSplittable){delete this[_xfa_object.$extra];}
return _utils.HTMLResult.FAILURE;}
let marginH=0;let marginV=0;if(this.margin){marginH=this.margin.leftInset+this.margin.rightInset;marginV=this.margin.topInset+this.margin.bottomInset;}
const width=Math.max(this[_xfa_object.$extra].width+marginH,this.w||0);const height=Math.max(this[_xfa_object.$extra].height+marginV,this.h||0);const bbox=[this.x,this.y,width,height];if(this.w===""){style.width=(0,_html_utils.measureToString)(width);}
if(this.h===""){style.height=(0,_html_utils.measureToString)(height);}
const html={name:"div",attributes,children};applyAssist(this,attributes);delete this[_xfa_object.$extra];return _utils.HTMLResult.success((0,_html_utils.createWrapper)(this,html),bbox);}}
class Execute extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"execute");this.connection=attributes.connection||"";this.executeType=(0,_utils.getStringOption)(attributes.executeType,["import","remerge"]);this.id=attributes.id||"";this.runAt=(0,_utils.getStringOption)(attributes.runAt,["client","both","server"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Extras extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"extras",true);this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.boolean=new _xfa_object.XFAObjectArray();this.date=new _xfa_object.XFAObjectArray();this.dateTime=new _xfa_object.XFAObjectArray();this.decimal=new _xfa_object.XFAObjectArray();this.exData=new _xfa_object.XFAObjectArray();this.extras=new _xfa_object.XFAObjectArray();this.float=new _xfa_object.XFAObjectArray();this.image=new _xfa_object.XFAObjectArray();this.integer=new _xfa_object.XFAObjectArray();this.text=new _xfa_object.XFAObjectArray();this.time=new _xfa_object.XFAObjectArray();}}
class Field extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"field",true);this.access=(0,_utils.getStringOption)(attributes.access,["open","nonInteractive","protected","readOnly"]);this.accessKey=attributes.accessKey||"";this.anchorType=(0,_utils.getStringOption)(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,_utils.getInteger)({data:attributes.colSpan,defaultValue:1,validate:n=>n>=1||n===-1});this.h=attributes.h?(0,_utils.getMeasurement)(attributes.h):"";this.hAlign=(0,_utils.getStringOption)(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=attributes.id||"";this.locale=attributes.locale||"";this.maxH=(0,_utils.getMeasurement)(attributes.maxH,"0pt");this.maxW=(0,_utils.getMeasurement)(attributes.maxW,"0pt");this.minH=(0,_utils.getMeasurement)(attributes.minH,"0pt");this.minW=(0,_utils.getMeasurement)(attributes.minW,"0pt");this.name=attributes.name||"";this.presence=(0,_utils.getStringOption)(attributes.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,_utils.getRelevant)(attributes.relevant);this.rotate=(0,_utils.getInteger)({data:attributes.rotate,defaultValue:0,validate:x=>x%90===0});this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.w=attributes.w?(0,_utils.getMeasurement)(attributes.w):"";this.x=(0,_utils.getMeasurement)(attributes.x,"0pt");this.y=(0,_utils.getMeasurement)(attributes.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.format=null;this.items=new _xfa_object.XFAObjectArray(2);this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.validate=null;this.value=null;this.bindItems=new _xfa_object.XFAObjectArray();this.connect=new _xfa_object.XFAObjectArray();this.event=new _xfa_object.XFAObjectArray();this.setProperty=new _xfa_object.XFAObjectArray();}
[_xfa_object.$isBindable](){return true;}
[_xfa_object.$setValue](value){_setValue(this,value);}
[_xfa_object.$toHTML](availableSpace){setTabIndex(this);if(!this.ui){this.ui=new Ui({});this.ui[_xfa_object.$globalData]=this[_xfa_object.$globalData];this[_xfa_object.$appendChild](this.ui);let node;switch(this.items.children.length){case 0:node=new TextEdit({});this.ui.textEdit=node;break;case 1:node=new CheckButton({});this.ui.checkButton=node;break;case 2:node=new ChoiceList({});this.ui.choiceList=node;break;}
this.ui[_xfa_object.$appendChild](node);}
if(!this.ui||this.presence==="hidden"||this.presence==="inactive"||this.h===0||this.w===0){return _utils.HTMLResult.EMPTY;}
if(this.caption){delete this.caption[_xfa_object.$extra];}
this[_xfa_object.$pushPara]();const caption=this.caption?this.caption[_xfa_object.$toHTML](availableSpace).html:null;const savedW=this.w;const savedH=this.h;let marginH=0;let marginV=0;if(this.margin){marginH=this.margin.leftInset+this.margin.rightInset;marginV=this.margin.topInset+this.margin.bottomInset;}
let borderDims=null;if(this.w===""||this.h===""){let width=null;let height=null;let uiW=0;let uiH=0;if(this.ui.checkButton){uiW=uiH=this.ui.checkButton.size;}else{const{w,h}=(0,_html_utils.layoutNode)(this,availableSpace);if(w!==null){uiW=w;uiH=h;}else{uiH=(0,_fonts.getMetrics)(this.font,true).lineNoGap;}}
borderDims=getBorderDims(this.ui[_xfa_object.$getExtra]());uiW+=borderDims.w;uiH+=borderDims.h;if(this.caption){const{w,h,isBroken}=this.caption[_xfa_object.$getExtra](availableSpace);if(isBroken&&this[_xfa_object.$getSubformParent]()[_xfa_object.$isThereMoreWidth]()){this[_xfa_object.$popPara]();return _utils.HTMLResult.FAILURE;}
width=w;height=h;switch(this.caption.placement){case"left":case"right":case"inline":width+=uiW;break;case"top":case"bottom":height+=uiH;break;}}else{width=uiW;height=uiH;}
if(width&&this.w===""){width+=marginH;this.w=Math.min(this.maxW<=0?Infinity:this.maxW,this.minW+1<width?width:this.minW);}
if(height&&this.h===""){height+=marginV;this.h=Math.min(this.maxH<=0?Infinity:this.maxH,this.minH+1<height?height:this.minH);}}
this[_xfa_object.$popPara]();(0,_html_utils.fixDimensions)(this);setFirstUnsplittable(this);if(!(0,_layout.checkDimensions)(this,availableSpace)){this.w=savedW;this.h=savedH;this[_xfa_object.$popPara]();return _utils.HTMLResult.FAILURE;}
unsetFirstUnsplittable(this);const style=(0,_html_utils.toStyle)(this,"font","dimensions","position","rotate","anchorType","presence","margin","hAlign");(0,_html_utils.setMinMaxDimensions)(this,style);const classNames=["xfaField"];if(this.font){classNames.push("xfaFont");}
if((0,_html_utils.isPrintOnly)(this)){classNames.push("xfaPrintOnly");}
const attributes={style,id:this[_xfa_object.$uid],class:classNames};if(style.margin){style.padding=style.margin;delete style.margin;}
(0,_html_utils.setAccess)(this,classNames);if(this.name){attributes.xfaName=this.name;}
const children=[];const html={name:"div",attributes,children};applyAssist(this,attributes);const borderStyle=this.border?this.border[_xfa_object.$toStyle]():null;const bbox=(0,_html_utils.computeBbox)(this,html,availableSpace);const ui=this.ui[_xfa_object.$toHTML]().html;if(!ui){Object.assign(style,borderStyle);return _utils.HTMLResult.success((0,_html_utils.createWrapper)(this,html),bbox);}
if(this[_xfa_object.$tabIndex]){if(ui.children&&ui.children[0]){ui.children[0].attributes.tabindex=this[_xfa_object.$tabIndex];}else{ui.attributes.tabindex=this[_xfa_object.$tabIndex];}}
if(!ui.attributes.style){ui.attributes.style=Object.create(null);}
let aElement=null;if(this.ui.button){if(ui.children.length===1){[aElement]=ui.children.splice(0,1);}
Object.assign(ui.attributes.style,borderStyle);}else{Object.assign(style,borderStyle);}
children.push(ui);if(this.value){if(this.ui.imageEdit){ui.children.push(this.value[_xfa_object.$toHTML]().html);}else if(!this.ui.button){let value="";if(this.value.exData){value=this.value.exData[_xfa_object.$text]();}else if(this.value.text){value=this.value.text[_xfa_object.$getExtra]();}else{const htmlValue=this.value[_xfa_object.$toHTML]().html;if(htmlValue!==null){value=htmlValue.children[0].value;}}
if(this.ui.textEdit&&this.value.text&&this.value.text.maxChars){ui.children[0].attributes.maxLength=this.value.text.maxChars;}
if(value){if(this.ui.numericEdit){value=parseFloat(value);value=isNaN(value)?"":value.toString();}
if(ui.children[0].name==="textarea"){ui.children[0].attributes.textContent=value;}else{ui.children[0].attributes.value=value;}}}}
if(!this.ui.imageEdit&&ui.children&&ui.children[0]&&this.h){borderDims=borderDims||getBorderDims(this.ui[_xfa_object.$getExtra]());let captionHeight=0;if(this.caption&&["top","bottom"].includes(this.caption.placement)){captionHeight=this.caption.reserve;if(captionHeight<=0){captionHeight=this.caption[_xfa_object.$getExtra](availableSpace).h;}
const inputHeight=this.h-captionHeight-marginV-borderDims.h;ui.children[0].attributes.style.height=(0,_html_utils.measureToString)(inputHeight);}else{ui.children[0].attributes.style.height="100%";}}
if(aElement){ui.children.push(aElement);}
if(!caption){if(ui.attributes.class){ui.attributes.class.push("xfaLeft");}
this.w=savedW;this.h=savedH;return _utils.HTMLResult.success((0,_html_utils.createWrapper)(this,html),bbox);}
if(this.ui.button){if(style.padding){delete style.padding;}
if(caption.name==="div"){caption.name="span";}
ui.children.push(caption);return _utils.HTMLResult.success(html,bbox);}else if(this.ui.checkButton){caption.attributes.class[0]="xfaCaptionForCheckButton";}
if(!ui.attributes.class){ui.attributes.class=[];}
ui.children.splice(0,0,caption);switch(this.caption.placement){case"left":ui.attributes.class.push("xfaLeft");break;case"right":ui.attributes.class.push("xfaRight");break;case"top":ui.attributes.class.push("xfaTop");break;case"bottom":ui.attributes.class.push("xfaBottom");break;case"inline":ui.attributes.class.push("xfaLeft");break;}
this.w=savedW;this.h=savedH;return _utils.HTMLResult.success((0,_html_utils.createWrapper)(this,html),bbox);}}
exports.Field=Field;class Fill extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"fill",true);this.id=attributes.id||"";this.presence=(0,_utils.getStringOption)(attributes.presence,["visible","hidden","inactive","invisible"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.color=null;this.extras=null;this.linear=null;this.pattern=null;this.radial=null;this.solid=null;this.stipple=null;}
[_xfa_object.$toStyle](){const parent=this[_xfa_object.$getParent]();const grandpa=parent[_xfa_object.$getParent]();const ggrandpa=grandpa[_xfa_object.$getParent]();const style=Object.create(null);let propName="color";let altPropName=propName;if(parent instanceof Border){propName="background-color";altPropName="background";if(ggrandpa instanceof Ui){style.backgroundColor="white";}}
if(parent instanceof Rectangle||parent instanceof Arc){propName=altPropName="fill";style.fill="white";}
for(const name of Object.getOwnPropertyNames(this)){if(name==="extras"||name==="color"){continue;}
const obj=this[name];if(!(obj instanceof _xfa_object.XFAObject)){continue;}
const color=obj[_xfa_object.$toStyle](this.color);if(color){style[color.startsWith("#")?propName:altPropName]=color;}
return style;}
if(this.color&&this.color.value){const color=this.color[_xfa_object.$toStyle]();style[color.startsWith("#")?propName:altPropName]=color;}
return style;}}
class Filter extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"filter",true);this.addRevocationInfo=(0,_utils.getStringOption)(attributes.addRevocationInfo,["","required","optional","none"]);this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.version=(0,_utils.getInteger)({data:this.version,defaultValue:5,validate:x=>x>=1&&x<=5});this.appearanceFilter=null;this.certificates=null;this.digestMethods=null;this.encodings=null;this.encryptionMethods=null;this.handler=null;this.lockDocument=null;this.mdp=null;this.reasons=null;this.timeStamp=null;}}
class Float extends _xfa_object.ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"float");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$finalize](){const number=parseFloat(this[_xfa_object.$content].trim());this[_xfa_object.$content]=isNaN(number)?null:number;}
[_xfa_object.$toHTML](availableSpace){return valueToHtml(this[_xfa_object.$content]!==null?this[_xfa_object.$content].toString():"");}}
class Font extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"font",true);this.baselineShift=(0,_utils.getMeasurement)(attributes.baselineShift);this.fontHorizontalScale=(0,_utils.getFloat)({data:attributes.fontHorizontalScale,defaultValue:100,validate:x=>x>=0});this.fontVerticalScale=(0,_utils.getFloat)({data:attributes.fontVerticalScale,defaultValue:100,validate:x=>x>=0});this.id=attributes.id||"";this.kerningMode=(0,_utils.getStringOption)(attributes.kerningMode,["none","pair"]);this.letterSpacing=(0,_utils.getMeasurement)(attributes.letterSpacing,"0");this.lineThrough=(0,_utils.getInteger)({data:attributes.lineThrough,defaultValue:0,validate:x=>x===1||x===2});this.lineThroughPeriod=(0,_utils.getStringOption)(attributes.lineThroughPeriod,["all","word"]);this.overline=(0,_utils.getInteger)({data:attributes.overline,defaultValue:0,validate:x=>x===1||x===2});this.overlinePeriod=(0,_utils.getStringOption)(attributes.overlinePeriod,["all","word"]);this.posture=(0,_utils.getStringOption)(attributes.posture,["normal","italic"]);this.size=(0,_utils.getMeasurement)(attributes.size,"10pt");this.typeface=attributes.typeface||"Courier";this.underline=(0,_utils.getInteger)({data:attributes.underline,defaultValue:0,validate:x=>x===1||x===2});this.underlinePeriod=(0,_utils.getStringOption)(attributes.underlinePeriod,["all","word"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.weight=(0,_utils.getStringOption)(attributes.weight,["normal","bold"]);this.extras=null;this.fill=null;}
[_xfa_object.$clean](builder){super[_xfa_object.$clean](builder);this[_xfa_object.$globalData].usedTypefaces.add(this.typeface);}
[_xfa_object.$toStyle](){const style=(0,_html_utils.toStyle)(this,"fill");const color=style.color;if(color){if(color==="#000000"){delete style.color;}else if(!color.startsWith("#")){style.background=color;style.backgroundClip="text";style.color="transparent";}}
if(this.baselineShift){style.verticalAlign=(0,_html_utils.measureToString)(this.baselineShift);}
style.fontKerning=this.kerningMode==="none"?"none":"normal";style.letterSpacing=(0,_html_utils.measureToString)(this.letterSpacing);if(this.lineThrough!==0){style.textDecoration="line-through";if(this.lineThrough===2){style.textDecorationStyle="double";}}
if(this.overline!==0){style.textDecoration="overline";if(this.overline===2){style.textDecorationStyle="double";}}
style.fontStyle=this.posture;style.fontSize=(0,_html_utils.measureToString)(0.99*this.size);(0,_html_utils.setFontFamily)(this,this,this[_xfa_object.$globalData].fontFinder,style);if(this.underline!==0){style.textDecoration="underline";if(this.underline===2){style.textDecorationStyle="double";}}
style.fontWeight=this.weight;return style;}}
class Format extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"format",true);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;this.picture=null;}}
class Handler extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"handler");this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Hyphenation extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"hyphenation");this.excludeAllCaps=(0,_utils.getInteger)({data:attributes.excludeAllCaps,defaultValue:0,validate:x=>x===1});this.excludeInitialCap=(0,_utils.getInteger)({data:attributes.excludeInitialCap,defaultValue:0,validate:x=>x===1});this.hyphenate=(0,_utils.getInteger)({data:attributes.hyphenate,defaultValue:0,validate:x=>x===1});this.id=attributes.id||"";this.pushCharacterCount=(0,_utils.getInteger)({data:attributes.pushCharacterCount,defaultValue:3,validate:x=>x>=0});this.remainCharacterCount=(0,_utils.getInteger)({data:attributes.remainCharacterCount,defaultValue:3,validate:x=>x>=0});this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.wordCharacterCount=(0,_utils.getInteger)({data:attributes.wordCharacterCount,defaultValue:7,validate:x=>x>=0});}}
class Image extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"image");this.aspect=(0,_utils.getStringOption)(attributes.aspect,["fit","actual","height","none","width"]);this.contentType=attributes.contentType||"";this.href=attributes.href||"";this.id=attributes.id||"";this.name=attributes.name||"";this.transferEncoding=(0,_utils.getStringOption)(attributes.transferEncoding,["base64","none","package"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$toHTML](){if(this.contentType&&!MIMES.has(this.contentType.toLowerCase())){return _utils.HTMLResult.EMPTY;}
let buffer=this[_xfa_object.$globalData].images&&this[_xfa_object.$globalData].images.get(this.href);if(!buffer&&(this.href||!this[_xfa_object.$content])){return _utils.HTMLResult.EMPTY;}
if(!buffer&&this.transferEncoding==="base64"){buffer=(0,_util.stringToBytes)(atob(this[_xfa_object.$content]));}
if(!buffer){return _utils.HTMLResult.EMPTY;}
if(!this.contentType){for(const[header,type]of IMAGES_HEADERS){if(buffer.length>header.length&&header.every((x,i)=>x===buffer[i])){this.contentType=type;break;}}
if(!this.contentType){return _utils.HTMLResult.EMPTY;}}
const blob=new Blob([buffer],{type:this.contentType});let style;switch(this.aspect){case"fit":case"actual":break;case"height":style={height:"100%",objectFit:"fill"};break;case"none":style={width:"100%",height:"100%",objectFit:"fill"};break;case"width":style={width:"100%",objectFit:"fill"};break;}
const parent=this[_xfa_object.$getParent]();return _utils.HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style,src:URL.createObjectURL(blob),alt:parent?ariaLabel(parent[_xfa_object.$getParent]()):null}});}}
class ImageEdit extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"imageEdit",true);this.data=(0,_utils.getStringOption)(attributes.data,["link","embed"]);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.border=null;this.extras=null;this.margin=null;}
[_xfa_object.$toHTML](availableSpace){if(this.data==="embed"){return _utils.HTMLResult.success({name:"div",children:[],attributes:{}});}
return _utils.HTMLResult.EMPTY;}}
class Integer extends _xfa_object.ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"integer");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$finalize](){const number=parseInt(this[_xfa_object.$content].trim(),10);this[_xfa_object.$content]=isNaN(number)?null:number;}
[_xfa_object.$toHTML](availableSpace){return valueToHtml(this[_xfa_object.$content]!==null?this[_xfa_object.$content].toString():"");}}
class Issuers extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"issuers",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.certificate=new _xfa_object.XFAObjectArray();}}
class Items extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"items",true);this.id=attributes.id||"";this.name=attributes.name||"";this.presence=(0,_utils.getStringOption)(attributes.presence,["visible","hidden","inactive","invisible"]);this.ref=attributes.ref||"";this.save=(0,_utils.getInteger)({data:attributes.save,defaultValue:0,validate:x=>x===1});this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.boolean=new _xfa_object.XFAObjectArray();this.date=new _xfa_object.XFAObjectArray();this.dateTime=new _xfa_object.XFAObjectArray();this.decimal=new _xfa_object.XFAObjectArray();this.exData=new _xfa_object.XFAObjectArray();this.float=new _xfa_object.XFAObjectArray();this.image=new _xfa_object.XFAObjectArray();this.integer=new _xfa_object.XFAObjectArray();this.text=new _xfa_object.XFAObjectArray();this.time=new _xfa_object.XFAObjectArray();}
[_xfa_object.$toHTML](){const output=[];for(const child of this[_xfa_object.$getChildren]()){output.push(child[_xfa_object.$text]());}
return _utils.HTMLResult.success(output);}}
exports.Items=Items;class Keep extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"keep",true);this.id=attributes.id||"";const options=["none","contentArea","pageArea"];this.intact=(0,_utils.getStringOption)(attributes.intact,options);this.next=(0,_utils.getStringOption)(attributes.next,options);this.previous=(0,_utils.getStringOption)(attributes.previous,options);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;}}
class KeyUsage extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"keyUsage");const options=["","yes","no"];this.crlSign=(0,_utils.getStringOption)(attributes.crlSign,options);this.dataEncipherment=(0,_utils.getStringOption)(attributes.dataEncipherment,options);this.decipherOnly=(0,_utils.getStringOption)(attributes.decipherOnly,options);this.digitalSignature=(0,_utils.getStringOption)(attributes.digitalSignature,options);this.encipherOnly=(0,_utils.getStringOption)(attributes.encipherOnly,options);this.id=attributes.id||"";this.keyAgreement=(0,_utils.getStringOption)(attributes.keyAgreement,options);this.keyCertSign=(0,_utils.getStringOption)(attributes.keyCertSign,options);this.keyEncipherment=(0,_utils.getStringOption)(attributes.keyEncipherment,options);this.nonRepudiation=(0,_utils.getStringOption)(attributes.nonRepudiation,options);this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Line extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"line",true);this.hand=(0,_utils.getStringOption)(attributes.hand,["even","left","right"]);this.id=attributes.id||"";this.slope=(0,_utils.getStringOption)(attributes.slope,["\\","/"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.edge=null;}
[_xfa_object.$toHTML](){const parent=this[_xfa_object.$getParent]()[_xfa_object.$getParent]();const edge=this.edge||new Edge({});const edgeStyle=edge[_xfa_object.$toStyle]();const style=Object.create(null);const thickness=edge.presence==="visible"?edge.thickness:0;style.strokeWidth=(0,_html_utils.measureToString)(thickness);style.stroke=edgeStyle.color;let x1,y1,x2,y2;let width="100%";let height="100%";if(parent.w<=thickness){[x1,y1,x2,y2]=["50%",0,"50%","100%"];width=style.strokeWidth;}else if(parent.h<=thickness){[x1,y1,x2,y2]=[0,"50%","100%","50%"];height=style.strokeWidth;}else{if(this.slope==="\\"){[x1,y1,x2,y2]=[0,0,"100%","100%"];}else{[x1,y1,x2,y2]=[0,"100%","100%",0];}}
const line={name:"line",attributes:{xmlns:SVG_NS,x1,y1,x2,y2,style}};const svg={name:"svg",children:[line],attributes:{xmlns:SVG_NS,width,height,style:{overflow:"visible"}}};if(hasMargin(parent)){return _utils.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[svg]});}
svg.attributes.style.position="absolute";return _utils.HTMLResult.success(svg);}}
class Linear extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"linear",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["toRight","toBottom","toLeft","toTop"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.color=null;this.extras=null;}
[_xfa_object.$toStyle](startColor){startColor=startColor?startColor[_xfa_object.$toStyle]():"#FFFFFF";const transf=this.type.replace(/([RBLT])/," $1").toLowerCase();const endColor=this.color?this.color[_xfa_object.$toStyle]():"#000000";return`linear-gradient(${transf}, ${startColor}, ${endColor})`;}}
class LockDocument extends _xfa_object.ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"lockDocument");this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$finalize](){this[_xfa_object.$content]=(0,_utils.getStringOption)(this[_xfa_object.$content],["auto","0","1"]);}}
class Manifest extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"manifest",true);this.action=(0,_utils.getStringOption)(attributes.action,["include","all","exclude"]);this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;this.ref=new _xfa_object.XFAObjectArray();}}
class Margin extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"margin",true);this.bottomInset=(0,_utils.getMeasurement)(attributes.bottomInset,"0");this.id=attributes.id||"";this.leftInset=(0,_utils.getMeasurement)(attributes.leftInset,"0");this.rightInset=(0,_utils.getMeasurement)(attributes.rightInset,"0");this.topInset=(0,_utils.getMeasurement)(attributes.topInset,"0");this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;}
[_xfa_object.$toStyle](){return{margin:(0,_html_utils.measureToString)(this.topInset)+" "+(0,_html_utils.measureToString)(this.rightInset)+" "+(0,_html_utils.measureToString)(this.bottomInset)+" "+(0,_html_utils.measureToString)(this.leftInset)};}}
class Mdp extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"mdp");this.id=attributes.id||"";this.permissions=(0,_utils.getInteger)({data:attributes.permissions,defaultValue:2,validate:x=>x===1||x===3});this.signatureType=(0,_utils.getStringOption)(attributes.signatureType,["filler","author"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Medium extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"medium");this.id=attributes.id||"";this.imagingBBox=(0,_utils.getBBox)(attributes.imagingBBox);this.long=(0,_utils.getMeasurement)(attributes.long);this.orientation=(0,_utils.getStringOption)(attributes.orientation,["portrait","landscape"]);this.short=(0,_utils.getMeasurement)(attributes.short);this.stock=attributes.stock||"";this.trayIn=(0,_utils.getStringOption)(attributes.trayIn,["auto","delegate","pageFront"]);this.trayOut=(0,_utils.getStringOption)(attributes.trayOut,["auto","delegate"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Message extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"message",true);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.text=new _xfa_object.XFAObjectArray();}}
class NumericEdit extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"numericEdit",true);this.hScrollPolicy=(0,_utils.getStringOption)(attributes.hScrollPolicy,["auto","off","on"]);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null;}
[_xfa_object.$toHTML](availableSpace){const style=(0,_html_utils.toStyle)(this,"border","font","margin");const field=this[_xfa_object.$getParent]()[_xfa_object.$getParent]();const html={name:"input",attributes:{type:"text",fieldId:field[_xfa_object.$uid],dataId:field[_xfa_object.$data]&&field[_xfa_object.$data][_xfa_object.$uid]||field[_xfa_object.$uid],class:["xfaTextfield"],style,"aria-label":ariaLabel(field),"aria-required":false}};if(isRequired(field)){html.attributes["aria-required"]=true;html.attributes.required=true;}
return _utils.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[html]});}}
class Occur extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"occur",true);this.id=attributes.id||"";this.initial=attributes.initial!==""?(0,_utils.getInteger)({data:attributes.initial,defaultValue:"",validate:x=>true}):"";this.max=attributes.max!==""?(0,_utils.getInteger)({data:attributes.max,defaultValue:1,validate:x=>true}):"";this.min=attributes.min!==""?(0,_utils.getInteger)({data:attributes.min,defaultValue:1,validate:x=>true}):"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;}
[_xfa_object.$clean](){const parent=this[_xfa_object.$getParent]();const originalMin=this.min;if(this.min===""){this.min=parent instanceof PageArea||parent instanceof PageSet?0:1;}
if(this.max===""){if(originalMin===""){this.max=parent instanceof PageArea||parent instanceof PageSet?-1:1;}else{this.max=this.min;}}
if(this.max!==-1&&this.max<this.min){this.max=this.min;}
if(this.initial===""){this.initial=parent instanceof Template?1:this.min;}}}
class Oid extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"oid");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Oids extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"oids",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.oid=new _xfa_object.XFAObjectArray();}}
class Overflow extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"overflow");this.id=attributes.id||"";this.leader=attributes.leader||"";this.target=attributes.target||"";this.trailer=attributes.trailer||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$getExtra](){if(!this[_xfa_object.$extra]){const parent=this[_xfa_object.$getParent]();const root=this[_xfa_object.$getTemplateRoot]();const target=root[_xfa_object.$searchNode](this.target,parent);const leader=root[_xfa_object.$searchNode](this.leader,parent);const trailer=root[_xfa_object.$searchNode](this.trailer,parent);this[_xfa_object.$extra]={target:target&&target[0]||null,leader:leader&&leader[0]||null,trailer:trailer&&trailer[0]||null,addLeader:false,addTrailer:false};}
return this[_xfa_object.$extra];}}
class PageArea extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"pageArea",true);this.blankOrNotBlank=(0,_utils.getStringOption)(attributes.blankOrNotBlank,["any","blank","notBlank"]);this.id=attributes.id||"";this.initialNumber=(0,_utils.getInteger)({data:attributes.initialNumber,defaultValue:1,validate:x=>true});this.name=attributes.name||"";this.numbered=(0,_utils.getInteger)({data:attributes.numbered,defaultValue:1,validate:x=>true});this.oddOrEven=(0,_utils.getStringOption)(attributes.oddOrEven,["any","even","odd"]);this.pagePosition=(0,_utils.getStringOption)(attributes.pagePosition,["any","first","last","only","rest"]);this.relevant=(0,_utils.getRelevant)(attributes.relevant);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.desc=null;this.extras=null;this.medium=null;this.occur=null;this.area=new _xfa_object.XFAObjectArray();this.contentArea=new _xfa_object.XFAObjectArray();this.draw=new _xfa_object.XFAObjectArray();this.exclGroup=new _xfa_object.XFAObjectArray();this.field=new _xfa_object.XFAObjectArray();this.subform=new _xfa_object.XFAObjectArray();}
[_xfa_object.$isUsable](){if(!this[_xfa_object.$extra]){this[_xfa_object.$extra]={numberOfUse:0};return true;}
return!this.occur||this.occur.max===-1||this[_xfa_object.$extra].numberOfUse<this.occur.max;}
[_xfa_object.$cleanPage](){delete this[_xfa_object.$extra];}
[_xfa_object.$getNextPage](){if(!this[_xfa_object.$extra]){this[_xfa_object.$extra]={numberOfUse:0};}
const parent=this[_xfa_object.$getParent]();if(parent.relation==="orderedOccurrence"){if(this[_xfa_object.$isUsable]()){this[_xfa_object.$extra].numberOfUse+=1;return this;}}
return parent[_xfa_object.$getNextPage]();}
[_xfa_object.$getAvailableSpace](){return this[_xfa_object.$extra].space||{width:0,height:0};}
[_xfa_object.$toHTML](){if(!this[_xfa_object.$extra]){this[_xfa_object.$extra]={numberOfUse:1};}
const children=[];this[_xfa_object.$extra].children=children;const style=Object.create(null);if(this.medium&&this.medium.short&&this.medium.long){style.width=(0,_html_utils.measureToString)(this.medium.short);style.height=(0,_html_utils.measureToString)(this.medium.long);this[_xfa_object.$extra].space={width:this.medium.short,height:this.medium.long};if(this.medium.orientation==="landscape"){const x=style.width;style.width=style.height;style.height=x;this[_xfa_object.$extra].space={width:this.medium.long,height:this.medium.short};}}else{(0,_util.warn)("XFA - No medium specified in pageArea: please file a bug.");}
this[_xfa_object.$childrenToHTML]({filter:new Set(["area","draw","field","subform"]),include:true});this[_xfa_object.$childrenToHTML]({filter:new Set(["contentArea"]),include:true});return _utils.HTMLResult.success({name:"div",children,attributes:{class:["xfaPage"],id:this[_xfa_object.$uid],style,xfaName:this.name}});}}
class PageSet extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"pageSet",true);this.duplexImposition=(0,_utils.getStringOption)(attributes.duplexImposition,["longEdge","shortEdge"]);this.id=attributes.id||"";this.name=attributes.name||"";this.relation=(0,_utils.getStringOption)(attributes.relation,["orderedOccurrence","duplexPaginated","simplexPaginated"]);this.relevant=(0,_utils.getRelevant)(attributes.relevant);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;this.occur=null;this.pageArea=new _xfa_object.XFAObjectArray();this.pageSet=new _xfa_object.XFAObjectArray();}
[_xfa_object.$cleanPage](){for(const page of this.pageArea.children){page[_xfa_object.$cleanPage]();}
for(const page of this.pageSet.children){page[_xfa_object.$cleanPage]();}}
[_xfa_object.$isUsable](){return!this.occur||this.occur.max===-1||this[_xfa_object.$extra].numberOfUse<this.occur.max;}
[_xfa_object.$getNextPage](){if(!this[_xfa_object.$extra]){this[_xfa_object.$extra]={numberOfUse:1,pageIndex:-1,pageSetIndex:-1};}
if(this.relation==="orderedOccurrence"){if(this[_xfa_object.$extra].pageIndex+1<this.pageArea.children.length){this[_xfa_object.$extra].pageIndex+=1;const pageArea=this.pageArea.children[this[_xfa_object.$extra].pageIndex];return pageArea[_xfa_object.$getNextPage]();}
if(this[_xfa_object.$extra].pageSetIndex+1<this.pageSet.children.length){this[_xfa_object.$extra].pageSetIndex+=1;return this.pageSet.children[this[_xfa_object.$extra].pageSetIndex][_xfa_object.$getNextPage]();}
if(this[_xfa_object.$isUsable]()){this[_xfa_object.$extra].numberOfUse+=1;this[_xfa_object.$extra].pageIndex=-1;this[_xfa_object.$extra].pageSetIndex=-1;return this[_xfa_object.$getNextPage]();}
const parent=this[_xfa_object.$getParent]();if(parent instanceof PageSet){return parent[_xfa_object.$getNextPage]();}
this[_xfa_object.$cleanPage]();return this[_xfa_object.$getNextPage]();}
const pageNumber=this[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].pageNumber;const parity=pageNumber%2===0?"even":"odd";const position=pageNumber===0?"first":"rest";let page=this.pageArea.children.find(p=>p.oddOrEven===parity&&p.pagePosition===position);if(page){return page;}
page=this.pageArea.children.find(p=>p.oddOrEven==="any"&&p.pagePosition===position);if(page){return page;}
page=this.pageArea.children.find(p=>p.oddOrEven==="any"&&p.pagePosition==="any");if(page){return page;}
return this.pageArea.children[0];}}
class Para extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"para",true);this.hAlign=(0,_utils.getStringOption)(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=attributes.id||"";this.lineHeight=attributes.lineHeight?(0,_utils.getMeasurement)(attributes.lineHeight,"0pt"):"";this.marginLeft=attributes.marginLeft?(0,_utils.getMeasurement)(attributes.marginLeft,"0pt"):"";this.marginRight=attributes.marginRight?(0,_utils.getMeasurement)(attributes.marginRight,"0pt"):"";this.orphans=(0,_utils.getInteger)({data:attributes.orphans,defaultValue:0,validate:x=>x>=0});this.preserve=attributes.preserve||"";this.radixOffset=attributes.radixOffset?(0,_utils.getMeasurement)(attributes.radixOffset,"0pt"):"";this.spaceAbove=attributes.spaceAbove?(0,_utils.getMeasurement)(attributes.spaceAbove,"0pt"):"";this.spaceBelow=attributes.spaceBelow?(0,_utils.getMeasurement)(attributes.spaceBelow,"0pt"):"";this.tabDefault=attributes.tabDefault?(0,_utils.getMeasurement)(this.tabDefault):"";this.tabStops=(attributes.tabStops||"").trim().split(/\s+/).map((x,i)=>i%2===1?(0,_utils.getMeasurement)(x):x);this.textIndent=attributes.textIndent?(0,_utils.getMeasurement)(attributes.textIndent,"0pt"):"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.vAlign=(0,_utils.getStringOption)(attributes.vAlign,["top","bottom","middle"]);this.widows=(0,_utils.getInteger)({data:attributes.widows,defaultValue:0,validate:x=>x>=0});this.hyphenation=null;}
[_xfa_object.$toStyle](){const style=(0,_html_utils.toStyle)(this,"hAlign");if(this.marginLeft!==""){style.paddingLeft=(0,_html_utils.measureToString)(this.marginLeft);}
if(this.marginRight!==""){style.paddingight=(0,_html_utils.measureToString)(this.marginRight);}
if(this.spaceAbove!==""){style.paddingTop=(0,_html_utils.measureToString)(this.spaceAbove);}
if(this.spaceBelow!==""){style.paddingBottom=(0,_html_utils.measureToString)(this.spaceBelow);}
if(this.textIndent!==""){style.textIndent=(0,_html_utils.measureToString)(this.textIndent);(0,_html_utils.fixTextIndent)(style);}
if(this.lineHeight>0){style.lineHeight=(0,_html_utils.measureToString)(this.lineHeight);}
if(this.tabDefault!==""){style.tabSize=(0,_html_utils.measureToString)(this.tabDefault);}
if(this.tabStops.length>0){}
if(this.hyphenatation){Object.assign(style,this.hyphenatation[_xfa_object.$toStyle]());}
return style;}}
class PasswordEdit extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"passwordEdit",true);this.hScrollPolicy=(0,_utils.getStringOption)(attributes.hScrollPolicy,["auto","off","on"]);this.id=attributes.id||"";this.passwordChar=attributes.passwordChar||"*";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.border=null;this.extras=null;this.margin=null;}}
class Pattern extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"pattern",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["crossHatch","crossDiagonal","diagonalLeft","diagonalRight","horizontal","vertical"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.color=null;this.extras=null;}
[_xfa_object.$toStyle](startColor){startColor=startColor?startColor[_xfa_object.$toStyle]():"#FFFFFF";const endColor=this.color?this.color[_xfa_object.$toStyle]():"#000000";const width=5;const cmd="repeating-linear-gradient";const colors=`${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${2 * width}px`;switch(this.type){case"crossHatch":return`${cmd}(to top,${colors}) ${cmd}(to right,${colors})`;case"crossDiagonal":return`${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`;case"diagonalLeft":return`${cmd}(45deg,${colors})`;case"diagonalRight":return`${cmd}(-45deg,${colors})`;case"horizontal":return`${cmd}(to top,${colors})`;case"vertical":return`${cmd}(to right,${colors})`;}
return"";}}
class Picture extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"picture");this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Proto extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"proto",true);this.appearanceFilter=new _xfa_object.XFAObjectArray();this.arc=new _xfa_object.XFAObjectArray();this.area=new _xfa_object.XFAObjectArray();this.assist=new _xfa_object.XFAObjectArray();this.barcode=new _xfa_object.XFAObjectArray();this.bindItems=new _xfa_object.XFAObjectArray();this.bookend=new _xfa_object.XFAObjectArray();this.boolean=new _xfa_object.XFAObjectArray();this.border=new _xfa_object.XFAObjectArray();this.break=new _xfa_object.XFAObjectArray();this.breakAfter=new _xfa_object.XFAObjectArray();this.breakBefore=new _xfa_object.XFAObjectArray();this.button=new _xfa_object.XFAObjectArray();this.calculate=new _xfa_object.XFAObjectArray();this.caption=new _xfa_object.XFAObjectArray();this.certificate=new _xfa_object.XFAObjectArray();this.certificates=new _xfa_object.XFAObjectArray();this.checkButton=new _xfa_object.XFAObjectArray();this.choiceList=new _xfa_object.XFAObjectArray();this.color=new _xfa_object.XFAObjectArray();this.comb=new _xfa_object.XFAObjectArray();this.connect=new _xfa_object.XFAObjectArray();this.contentArea=new _xfa_object.XFAObjectArray();this.corner=new _xfa_object.XFAObjectArray();this.date=new _xfa_object.XFAObjectArray();this.dateTime=new _xfa_object.XFAObjectArray();this.dateTimeEdit=new _xfa_object.XFAObjectArray();this.decimal=new _xfa_object.XFAObjectArray();this.defaultUi=new _xfa_object.XFAObjectArray();this.desc=new _xfa_object.XFAObjectArray();this.digestMethod=new _xfa_object.XFAObjectArray();this.digestMethods=new _xfa_object.XFAObjectArray();this.draw=new _xfa_object.XFAObjectArray();this.edge=new _xfa_object.XFAObjectArray();this.encoding=new _xfa_object.XFAObjectArray();this.encodings=new _xfa_object.XFAObjectArray();this.encrypt=new _xfa_object.XFAObjectArray();this.encryptData=new _xfa_object.XFAObjectArray();this.encryption=new _xfa_object.XFAObjectArray();this.encryptionMethod=new _xfa_object.XFAObjectArray();this.encryptionMethods=new _xfa_object.XFAObjectArray();this.event=new _xfa_object.XFAObjectArray();this.exData=new _xfa_object.XFAObjectArray();this.exObject=new _xfa_object.XFAObjectArray();this.exclGroup=new _xfa_object.XFAObjectArray();this.execute=new _xfa_object.XFAObjectArray();this.extras=new _xfa_object.XFAObjectArray();this.field=new _xfa_object.XFAObjectArray();this.fill=new _xfa_object.XFAObjectArray();this.filter=new _xfa_object.XFAObjectArray();this.float=new _xfa_object.XFAObjectArray();this.font=new _xfa_object.XFAObjectArray();this.format=new _xfa_object.XFAObjectArray();this.handler=new _xfa_object.XFAObjectArray();this.hyphenation=new _xfa_object.XFAObjectArray();this.image=new _xfa_object.XFAObjectArray();this.imageEdit=new _xfa_object.XFAObjectArray();this.integer=new _xfa_object.XFAObjectArray();this.issuers=new _xfa_object.XFAObjectArray();this.items=new _xfa_object.XFAObjectArray();this.keep=new _xfa_object.XFAObjectArray();this.keyUsage=new _xfa_object.XFAObjectArray();this.line=new _xfa_object.XFAObjectArray();this.linear=new _xfa_object.XFAObjectArray();this.lockDocument=new _xfa_object.XFAObjectArray();this.manifest=new _xfa_object.XFAObjectArray();this.margin=new _xfa_object.XFAObjectArray();this.mdp=new _xfa_object.XFAObjectArray();this.medium=new _xfa_object.XFAObjectArray();this.message=new _xfa_object.XFAObjectArray();this.numericEdit=new _xfa_object.XFAObjectArray();this.occur=new _xfa_object.XFAObjectArray();this.oid=new _xfa_object.XFAObjectArray();this.oids=new _xfa_object.XFAObjectArray();this.overflow=new _xfa_object.XFAObjectArray();this.pageArea=new _xfa_object.XFAObjectArray();this.pageSet=new _xfa_object.XFAObjectArray();this.para=new _xfa_object.XFAObjectArray();this.passwordEdit=new _xfa_object.XFAObjectArray();this.pattern=new _xfa_object.XFAObjectArray();this.picture=new _xfa_object.XFAObjectArray();this.radial=new _xfa_object.XFAObjectArray();this.reason=new _xfa_object.XFAObjectArray();this.reasons=new _xfa_object.XFAObjectArray();this.rectangle=new _xfa_object.XFAObjectArray();this.ref=new _xfa_object.XFAObjectArray();this.script=new _xfa_object.XFAObjectArray();this.setProperty=new _xfa_object.XFAObjectArray();this.signData=new _xfa_object.XFAObjectArray();this.signature=new _xfa_object.XFAObjectArray();this.signing=new _xfa_object.XFAObjectArray();this.solid=new _xfa_object.XFAObjectArray();this.speak=new _xfa_object.XFAObjectArray();this.stipple=new _xfa_object.XFAObjectArray();this.subform=new _xfa_object.XFAObjectArray();this.subformSet=new _xfa_object.XFAObjectArray();this.subjectDN=new _xfa_object.XFAObjectArray();this.subjectDNs=new _xfa_object.XFAObjectArray();this.submit=new _xfa_object.XFAObjectArray();this.text=new _xfa_object.XFAObjectArray();this.textEdit=new _xfa_object.XFAObjectArray();this.time=new _xfa_object.XFAObjectArray();this.timeStamp=new _xfa_object.XFAObjectArray();this.toolTip=new _xfa_object.XFAObjectArray();this.traversal=new _xfa_object.XFAObjectArray();this.traverse=new _xfa_object.XFAObjectArray();this.ui=new _xfa_object.XFAObjectArray();this.validate=new _xfa_object.XFAObjectArray();this.value=new _xfa_object.XFAObjectArray();this.variables=new _xfa_object.XFAObjectArray();}}
class Radial extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"radial",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["toEdge","toCenter"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.color=null;this.extras=null;}
[_xfa_object.$toStyle](startColor){startColor=startColor?startColor[_xfa_object.$toStyle]():"#FFFFFF";const endColor=this.color?this.color[_xfa_object.$toStyle]():"#000000";const colors=this.type==="toEdge"?`${startColor},${endColor}`:`${endColor},${startColor}`;return`radial-gradient(circle at center, ${colors})`;}}
class Reason extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"reason");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Reasons extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"reasons",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.reason=new _xfa_object.XFAObjectArray();}}
class Rectangle extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"rectangle",true);this.hand=(0,_utils.getStringOption)(attributes.hand,["even","left","right"]);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.corner=new _xfa_object.XFAObjectArray(4);this.edge=new _xfa_object.XFAObjectArray(4);this.fill=null;}
[_xfa_object.$toHTML](){const edge=this.edge.children.length?this.edge.children[0]:new Edge({});const edgeStyle=edge[_xfa_object.$toStyle]();const style=Object.create(null);if(this.fill&&this.fill.presence==="visible"){Object.assign(style,this.fill[_xfa_object.$toStyle]());}else{style.fill="transparent";}
style.strokeWidth=(0,_html_utils.measureToString)(edge.presence==="visible"?edge.thickness:0);style.stroke=edgeStyle.color;const corner=this.corner.children.length?this.corner.children[0]:new Corner({});const cornerStyle=corner[_xfa_object.$toStyle]();const rect={name:"rect",attributes:{xmlns:SVG_NS,width:"100%",height:"100%",x:0,y:0,rx:cornerStyle.radius,ry:cornerStyle.radius,style}};const svg={name:"svg",children:[rect],attributes:{xmlns:SVG_NS,style:{overflow:"visible"},width:"100%",height:"100%"}};const parent=this[_xfa_object.$getParent]()[_xfa_object.$getParent]();if(hasMargin(parent)){return _utils.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[svg]});}
svg.attributes.style.position="absolute";return _utils.HTMLResult.success(svg);}}
class RefElement extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"ref");this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Script extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"script");this.binding=attributes.binding||"";this.contentType=attributes.contentType||"";this.id=attributes.id||"";this.name=attributes.name||"";this.runAt=(0,_utils.getStringOption)(attributes.runAt,["client","both","server"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class SetProperty extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"setProperty");this.connection=attributes.connection||"";this.ref=attributes.ref||"";this.target=attributes.target||"";}}
exports.SetProperty=SetProperty;class SignData extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"signData",true);this.id=attributes.id||"";this.operation=(0,_utils.getStringOption)(attributes.operation,["sign","clear","verify"]);this.ref=attributes.ref||"";this.target=attributes.target||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.filter=null;this.manifest=null;}}
class Signature extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"signature",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["PDF1.3","PDF1.6"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.border=null;this.extras=null;this.filter=null;this.manifest=null;this.margin=null;}}
class Signing extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"signing",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.certificate=new _xfa_object.XFAObjectArray();}}
class Solid extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"solid",true);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;}
[_xfa_object.$toStyle](startColor){return startColor?startColor[_xfa_object.$toStyle]():"#FFFFFF";}}
class Speak extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"speak");this.disable=(0,_utils.getInteger)({data:attributes.disable,defaultValue:0,validate:x=>x===1});this.id=attributes.id||"";this.priority=(0,_utils.getStringOption)(attributes.priority,["custom","caption","name","toolTip"]);this.rid=attributes.rid||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Stipple extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"stipple",true);this.id=attributes.id||"";this.rate=(0,_utils.getInteger)({data:attributes.rate,defaultValue:50,validate:x=>x>=0&&x<=100});this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.color=null;this.extras=null;}
[_xfa_object.$toStyle](bgColor){const alpha=this.rate/100;return _util.Util.makeHexColor(Math.round(bgColor.value.r*(1-alpha)+this.value.r*alpha),Math.round(bgColor.value.g*(1-alpha)+this.value.g*alpha),Math.round(bgColor.value.b*(1-alpha)+this.value.b*alpha));}}
class Subform extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subform",true);this.access=(0,_utils.getStringOption)(attributes.access,["open","nonInteractive","protected","readOnly"]);this.allowMacro=(0,_utils.getInteger)({data:attributes.allowMacro,defaultValue:0,validate:x=>x===1});this.anchorType=(0,_utils.getStringOption)(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,_utils.getInteger)({data:attributes.colSpan,defaultValue:1,validate:n=>n>=1||n===-1});this.columnWidths=(attributes.columnWidths||"").trim().split(/\s+/).map(x=>x==="-1"?-1:(0,_utils.getMeasurement)(x));this.h=attributes.h?(0,_utils.getMeasurement)(attributes.h):"";this.hAlign=(0,_utils.getStringOption)(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=attributes.id||"";this.layout=(0,_utils.getStringOption)(attributes.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.locale=attributes.locale||"";this.maxH=(0,_utils.getMeasurement)(attributes.maxH,"0pt");this.maxW=(0,_utils.getMeasurement)(attributes.maxW,"0pt");this.mergeMode=(0,_utils.getStringOption)(attributes.mergeMode,["consumeData","matchTemplate"]);this.minH=(0,_utils.getMeasurement)(attributes.minH,"0pt");this.minW=(0,_utils.getMeasurement)(attributes.minW,"0pt");this.name=attributes.name||"";this.presence=(0,_utils.getStringOption)(attributes.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,_utils.getRelevant)(attributes.relevant);this.restoreState=(0,_utils.getStringOption)(attributes.restoreState,["manual","auto"]);this.scope=(0,_utils.getStringOption)(attributes.scope,["name","none"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.w=attributes.w?(0,_utils.getMeasurement)(attributes.w):"";this.x=(0,_utils.getMeasurement)(attributes.x,"0pt");this.y=(0,_utils.getMeasurement)(attributes.y,"0pt");this.assist=null;this.bind=null;this.bookend=null;this.border=null;this.break=null;this.calculate=null;this.desc=null;this.extras=null;this.keep=null;this.margin=null;this.occur=null;this.overflow=null;this.pageSet=null;this.para=null;this.traversal=null;this.validate=null;this.variables=null;this.area=new _xfa_object.XFAObjectArray();this.breakAfter=new _xfa_object.XFAObjectArray();this.breakBefore=new _xfa_object.XFAObjectArray();this.connect=new _xfa_object.XFAObjectArray();this.draw=new _xfa_object.XFAObjectArray();this.event=new _xfa_object.XFAObjectArray();this.exObject=new _xfa_object.XFAObjectArray();this.exclGroup=new _xfa_object.XFAObjectArray();this.field=new _xfa_object.XFAObjectArray();this.proto=new _xfa_object.XFAObjectArray();this.setProperty=new _xfa_object.XFAObjectArray();this.subform=new _xfa_object.XFAObjectArray();this.subformSet=new _xfa_object.XFAObjectArray();}
[_xfa_object.$getSubformParent](){const parent=this[_xfa_object.$getParent]();if(parent instanceof SubformSet){return parent[_xfa_object.$getSubformParent]();}
return parent;}
[_xfa_object.$isBindable](){return true;}
[_xfa_object.$isThereMoreWidth](){return this.layout.endsWith("-tb")&&this[_xfa_object.$extra].attempt===0&&this[_xfa_object.$extra].numberInLine>0||this[_xfa_object.$getParent]()[_xfa_object.$isThereMoreWidth]();}*[_xfa_object.$getContainedChildren](){yield*getContainedChildren(this);}
[_xfa_object.$flushHTML](){return(0,_layout.flushHTML)(this);}
[_xfa_object.$addHTML](html,bbox){(0,_layout.addHTML)(this,html,bbox);}
[_xfa_object.$getAvailableSpace](){return(0,_layout.getAvailableSpace)(this);}
[_xfa_object.$isSplittable](){const parent=this[_xfa_object.$getSubformParent]();if(!parent[_xfa_object.$isSplittable]()){return false;}
if(this[_xfa_object.$extra]._isSplittable!==undefined){return this[_xfa_object.$extra]._isSplittable;}
if(this.layout==="position"||this.layout.includes("row")){this[_xfa_object.$extra]._isSplittable=false;return false;}
if(this.keep&&this.keep.intact!=="none"){this[_xfa_object.$extra]._isSplittable=false;return false;}
if(parent.layout&&parent.layout.endsWith("-tb")&&parent[_xfa_object.$extra].numberInLine!==0){return false;}
this[_xfa_object.$extra]._isSplittable=true;return true;}
[_xfa_object.$toHTML](availableSpace){setTabIndex(this);if(this.break){if(this.break.after!=="auto"||this.break.afterTarget!==""){const node=new BreakAfter({targetType:this.break.after,target:this.break.afterTarget,startNew:this.break.startNew.toString()});node[_xfa_object.$globalData]=this[_xfa_object.$globalData];this[_xfa_object.$appendChild](node);this.breakAfter.push(node);}
if(this.break.before!=="auto"||this.break.beforeTarget!==""){const node=new BreakBefore({targetType:this.break.before,target:this.break.beforeTarget,startNew:this.break.startNew.toString()});node[_xfa_object.$globalData]=this[_xfa_object.$globalData];this[_xfa_object.$appendChild](node);this.breakBefore.push(node);}
if(this.break.overflowTarget!==""){const node=new Overflow({target:this.break.overflowTarget,leader:this.break.overflowLeader,trailer:this.break.overflowTrailer});node[_xfa_object.$globalData]=this[_xfa_object.$globalData];this[_xfa_object.$appendChild](node);this.overflow.push(node);}
this[_xfa_object.$removeChild](this.break);this.break=null;}
if(this.presence==="hidden"||this.presence==="inactive"){return _utils.HTMLResult.EMPTY;}
if(this.breakBefore.children.length>1||this.breakAfter.children.length>1){(0,_util.warn)("XFA - Several breakBefore or breakAfter in subforms: please file a bug.");}
if(this.breakBefore.children.length>=1){const breakBefore=this.breakBefore.children[0];if(handleBreak(breakBefore)){return _utils.HTMLResult.breakNode(breakBefore);}}
if(this[_xfa_object.$extra]&&this[_xfa_object.$extra].afterBreakAfter){return _utils.HTMLResult.EMPTY;}
(0,_html_utils.fixDimensions)(this);const children=[];const attributes={id:this[_xfa_object.$uid],class:[]};(0,_html_utils.setAccess)(this,attributes.class);if(!this[_xfa_object.$extra]){this[_xfa_object.$extra]=Object.create(null);}
Object.assign(this[_xfa_object.$extra],{children,line:null,attributes,attempt:0,numberInLine:0,availableSpace:{width:Math.min(this.w||Infinity,availableSpace.width),height:Math.min(this.h||Infinity,availableSpace.height)},width:0,height:0,prevHeight:0,currentWidth:0});const root=this[_xfa_object.$getTemplateRoot]();const savedNoLayoutFailure=root[_xfa_object.$extra].noLayoutFailure;const isSplittable=this[_xfa_object.$isSplittable]();if(!isSplittable){setFirstUnsplittable(this);}
if(!(0,_layout.checkDimensions)(this,availableSpace)){return _utils.HTMLResult.FAILURE;}
const filter=new Set(["area","draw","exclGroup","field","subform","subformSet"]);if(this.layout.includes("row")){const columnWidths=this[_xfa_object.$getSubformParent]().columnWidths;if(Array.isArray(columnWidths)&&columnWidths.length>0){this[_xfa_object.$extra].columnWidths=columnWidths;this[_xfa_object.$extra].currentColumn=0;}}
const style=(0,_html_utils.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign");const classNames=["xfaSubform"];const cl=(0,_html_utils.layoutClass)(this);if(cl){classNames.push(cl);}
attributes.style=style;attributes.class=classNames;if(this.name){attributes.xfaName=this.name;}
if(this.overflow){const overflowExtra=this.overflow[_xfa_object.$getExtra]();if(overflowExtra.addLeader){overflowExtra.addLeader=false;handleOverflow(this,overflowExtra.leader,availableSpace);}}
this[_xfa_object.$pushPara]();const isLrTb=this.layout==="lr-tb"||this.layout==="rl-tb";const maxRun=isLrTb?MAX_ATTEMPTS_FOR_LRTB_LAYOUT:1;for(;this[_xfa_object.$extra].attempt<maxRun;this[_xfa_object.$extra].attempt++){if(isLrTb&&this[_xfa_object.$extra].attempt===MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1){this[_xfa_object.$extra].numberInLine=0;}
const result=this[_xfa_object.$childrenToHTML]({filter,include:true});if(result.success){break;}
if(result.isBreak()){this[_xfa_object.$popPara]();return result;}
if(isLrTb&&this[_xfa_object.$extra].attempt===0&&this[_xfa_object.$extra].numberInLine===0&&!root[_xfa_object.$extra].noLayoutFailure){this[_xfa_object.$extra].attempt=maxRun;break;}}
this[_xfa_object.$popPara]();if(!isSplittable){unsetFirstUnsplittable(this);}
root[_xfa_object.$extra].noLayoutFailure=savedNoLayoutFailure;if(this[_xfa_object.$extra].attempt===maxRun){if(this.overflow){this[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].overflowNode=this.overflow;}
if(!isSplittable){delete this[_xfa_object.$extra];}
return _utils.HTMLResult.FAILURE;}
if(this.overflow){const overflowExtra=this.overflow[_xfa_object.$getExtra]();if(overflowExtra.addTrailer){overflowExtra.addTrailer=false;handleOverflow(this,overflowExtra.trailer,availableSpace);}}
let marginH=0;let marginV=0;if(this.margin){marginH=this.margin.leftInset+this.margin.rightInset;marginV=this.margin.topInset+this.margin.bottomInset;}
const width=Math.max(this[_xfa_object.$extra].width+marginH,this.w||0);const height=Math.max(this[_xfa_object.$extra].height+marginV,this.h||0);const bbox=[this.x,this.y,width,height];if(this.w===""){style.width=(0,_html_utils.measureToString)(width);}
if(this.h===""){style.height=(0,_html_utils.measureToString)(height);}
if((style.width==="0px"||style.height==="0px")&&children.length===0){return _utils.HTMLResult.EMPTY;}
const html={name:"div",attributes,children};applyAssist(this,attributes);const result=_utils.HTMLResult.success((0,_html_utils.createWrapper)(this,html),bbox);if(this.breakAfter.children.length>=1){const breakAfter=this.breakAfter.children[0];if(handleBreak(breakAfter)){this[_xfa_object.$extra].afterBreakAfter=result;return _utils.HTMLResult.breakNode(breakAfter);}}
delete this[_xfa_object.$extra];return result;}}
class SubformSet extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subformSet",true);this.id=attributes.id||"";this.name=attributes.name||"";this.relation=(0,_utils.getStringOption)(attributes.relation,["ordered","choice","unordered"]);this.relevant=(0,_utils.getRelevant)(attributes.relevant);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.bookend=null;this.break=null;this.desc=null;this.extras=null;this.occur=null;this.overflow=null;this.breakAfter=new _xfa_object.XFAObjectArray();this.breakBefore=new _xfa_object.XFAObjectArray();this.subform=new _xfa_object.XFAObjectArray();this.subformSet=new _xfa_object.XFAObjectArray();}*[_xfa_object.$getContainedChildren](){yield*getContainedChildren(this);}
[_xfa_object.$getSubformParent](){let parent=this[_xfa_object.$getParent]();while(!(parent instanceof Subform)){parent=parent[_xfa_object.$getParent]();}
return parent;}
[_xfa_object.$isBindable](){return true;}}
class SubjectDN extends _xfa_object.ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"subjectDN");this.delimiter=attributes.delimiter||",";this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$finalize](){this[_xfa_object.$content]=new Map(this[_xfa_object.$content].split(this.delimiter).map(kv=>{kv=kv.split("=",2);kv[0]=kv[0].trim();return kv;}));}}
class SubjectDNs extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subjectDNs",true);this.id=attributes.id||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.subjectDN=new _xfa_object.XFAObjectArray();}}
class Submit extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"submit",true);this.embedPDF=(0,_utils.getInteger)({data:attributes.embedPDF,defaultValue:0,validate:x=>x===1});this.format=(0,_utils.getStringOption)(attributes.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]);this.id=attributes.id||"";this.target=attributes.target||"";this.textEncoding=(0,_utils.getKeyword)({data:attributes.textEncoding?attributes.textEncoding.toLowerCase():"",defaultValue:"",validate:k=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(k)||k.match(/iso-8859-\d{2}/)});this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.xdpContent=attributes.xdpContent||"";this.encrypt=null;this.encryptData=new _xfa_object.XFAObjectArray();this.signData=new _xfa_object.XFAObjectArray();}}
class Template extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"template",true);this.baseProfile=(0,_utils.getStringOption)(attributes.baseProfile,["full","interactiveForms"]);this.extras=null;this.subform=new _xfa_object.XFAObjectArray();}
[_xfa_object.$finalize](){if(this.subform.children.length===0){(0,_util.warn)("XFA - No subforms in template node.");}
if(this.subform.children.length>=2){(0,_util.warn)("XFA - Several subforms in template node: please file a bug.");}
this[_xfa_object.$tabIndex]=DEFAULT_TAB_INDEX;}
[_xfa_object.$isSplittable](){return true;}
[_xfa_object.$searchNode](expr,container){if(expr.startsWith("#")){return[this[_xfa_object.$ids].get(expr.slice(1))];}
return(0,_som.searchNode)(this,container,expr,true,true);}*[_xfa_object.$toPages](){if(!this.subform.children.length){return _utils.HTMLResult.success({name:"div",children:[]});}
this[_xfa_object.$extra]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:false,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};const root=this.subform.children[0];root.pageSet[_xfa_object.$cleanPage]();const pageAreas=root.pageSet.pageArea.children;const mainHtml={name:"div",children:[]};let pageArea=null;let breakBefore=null;let breakBeforeTarget=null;if(root.breakBefore.children.length>=1){breakBefore=root.breakBefore.children[0];breakBeforeTarget=breakBefore.target;}else if(root.subform.children.length>=1&&root.subform.children[0].breakBefore.children.length>=1){breakBefore=root.subform.children[0].breakBefore.children[0];breakBeforeTarget=breakBefore.target;}else if(root.break&&root.break.beforeTarget){breakBefore=root.break;breakBeforeTarget=breakBefore.beforeTarget;}else if(root.subform.children.length>=1&&root.subform.children[0].break&&root.subform.children[0].break.beforeTarget){breakBefore=root.subform.children[0].break;breakBeforeTarget=breakBefore.beforeTarget;}
if(breakBefore){const target=this[_xfa_object.$searchNode](breakBeforeTarget,breakBefore[_xfa_object.$getParent]());if(target instanceof PageArea){pageArea=target;breakBefore[_xfa_object.$extra]={};}}
if(!pageArea){pageArea=pageAreas[0];}
pageArea[_xfa_object.$extra]={numberOfUse:1};const pageAreaParent=pageArea[_xfa_object.$getParent]();pageAreaParent[_xfa_object.$extra]={numberOfUse:1,pageIndex:pageAreaParent.pageArea.children.indexOf(pageArea),pageSetIndex:0};let targetPageArea;let leader=null;let trailer=null;let hasSomething=true;let hasSomethingCounter=0;let startIndex=0;while(true){if(!hasSomething){mainHtml.children.pop();if(++hasSomethingCounter===MAX_EMPTY_PAGES){(0,_util.warn)("XFA - Something goes wrong: please file a bug.");return mainHtml;}}else{hasSomethingCounter=0;}
targetPageArea=null;this[_xfa_object.$extra].currentPageArea=pageArea;const page=pageArea[_xfa_object.$toHTML]().html;mainHtml.children.push(page);if(leader){this[_xfa_object.$extra].noLayoutFailure=true;page.children.push(leader[_xfa_object.$toHTML](pageArea[_xfa_object.$extra].space).html);leader=null;}
if(trailer){this[_xfa_object.$extra].noLayoutFailure=true;page.children.push(trailer[_xfa_object.$toHTML](pageArea[_xfa_object.$extra].space).html);trailer=null;}
const contentAreas=pageArea.contentArea.children;const htmlContentAreas=page.children.filter(node=>node.attributes.class.includes("xfaContentarea"));hasSomething=false;this[_xfa_object.$extra].firstUnsplittable=null;this[_xfa_object.$extra].noLayoutFailure=false;const flush=index=>{const html=root[_xfa_object.$flushHTML]();if(html){hasSomething=hasSomething||html.children&&html.children.length!==0;htmlContentAreas[index].children.push(html);}};for(let i=startIndex,ii=contentAreas.length;i<ii;i++){const contentArea=this[_xfa_object.$extra].currentContentArea=contentAreas[i];const space={width:contentArea.w,height:contentArea.h};startIndex=0;if(leader){htmlContentAreas[i].children.push(leader[_xfa_object.$toHTML](space).html);leader=null;}
if(trailer){htmlContentAreas[i].children.push(trailer[_xfa_object.$toHTML](space).html);trailer=null;}
const html=root[_xfa_object.$toHTML](space);if(html.success){if(html.html){hasSomething=hasSomething||html.html.children&&html.html.children.length!==0;htmlContentAreas[i].children.push(html.html);}else if(!hasSomething&&mainHtml.children.length>1){mainHtml.children.pop();}
return mainHtml;}
if(html.isBreak()){const node=html.breakNode;flush(i);if(node.targetType==="auto"){continue;}
if(node.leader){leader=this[_xfa_object.$searchNode](node.leader,node[_xfa_object.$getParent]());leader=leader?leader[0]:null;}
if(node.trailer){trailer=this[_xfa_object.$searchNode](node.trailer,node[_xfa_object.$getParent]());trailer=trailer?trailer[0]:null;}
if(node.targetType==="pageArea"){targetPageArea=node[_xfa_object.$extra].target;i=Infinity;}else if(!node[_xfa_object.$extra].target){i=node[_xfa_object.$extra].index;}else{targetPageArea=node[_xfa_object.$extra].target;startIndex=node[_xfa_object.$extra].index+1;i=Infinity;}
continue;}
if(this[_xfa_object.$extra].overflowNode){const node=this[_xfa_object.$extra].overflowNode;this[_xfa_object.$extra].overflowNode=null;const overflowExtra=node[_xfa_object.$getExtra]();const target=overflowExtra.target;overflowExtra.addLeader=overflowExtra.leader!==null;overflowExtra.addTrailer=overflowExtra.trailer!==null;flush(i);const currentIndex=i;i=Infinity;if(target instanceof PageArea){targetPageArea=target;}else if(target instanceof ContentArea){const index=contentAreas.indexOf(target);if(index!==-1){if(index>currentIndex){i=index-1;}else{startIndex=index;}}else{targetPageArea=target[_xfa_object.$getParent]();startIndex=targetPageArea.contentArea.children.indexOf(target);}}
continue;}
flush(i);}
this[_xfa_object.$extra].pageNumber+=1;if(targetPageArea){if(targetPageArea[_xfa_object.$isUsable]()){targetPageArea[_xfa_object.$extra].numberOfUse+=1;}else{targetPageArea=null;}}
pageArea=targetPageArea||pageArea[_xfa_object.$getNextPage]();yield null;}}}
exports.Template=Template;class Text extends _xfa_object.ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"text");this.id=attributes.id||"";this.maxChars=(0,_utils.getInteger)({data:attributes.maxChars,defaultValue:0,validate:x=>x>=0});this.name=attributes.name||"";this.rid=attributes.rid||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$acceptWhitespace](){return true;}
[_xfa_object.$onChild](child){if(child[_xfa_object.$namespaceId]===_namespaces.NamespaceIds.xhtml.id){this[_xfa_object.$content]=child;return true;}
(0,_util.warn)(`XFA - Invalid content in Text: ${child[_xfa_object.$nodeName]}.`);return false;}
[_xfa_object.$onText](str){if(this[_xfa_object.$content]instanceof _xfa_object.XFAObject){return;}
super[_xfa_object.$onText](str);}
[_xfa_object.$finalize](){if(typeof this[_xfa_object.$content]==="string"){this[_xfa_object.$content]=this[_xfa_object.$content].replace(/\r\n/g,"\n");}}
[_xfa_object.$getExtra](){if(typeof this[_xfa_object.$content]==="string"){return this[_xfa_object.$content].split(/[\u2029\u2028\n]/).reduce((acc,line)=>{if(line){acc.push(line);}
return acc;},[]).join("\n");}
return this[_xfa_object.$content][_xfa_object.$text]();}
[_xfa_object.$toHTML](availableSpace){if(typeof this[_xfa_object.$content]==="string"){const html=valueToHtml(this[_xfa_object.$content]).html;if(this[_xfa_object.$content].includes("\u2029")){html.name="div";html.children=[];this[_xfa_object.$content].split("\u2029").map(para=>para.split(/[\u2028\n]/).reduce((acc,line)=>{acc.push({name:"span",value:line},{name:"br"});return acc;},[])).forEach(lines=>{html.children.push({name:"p",children:lines});});}else if(/[\u2028\n]/.test(this[_xfa_object.$content])){html.name="div";html.children=[];this[_xfa_object.$content].split(/[\u2028\n]/).forEach(line=>{html.children.push({name:"span",value:line},{name:"br"});});}
return _utils.HTMLResult.success(html);}
return this[_xfa_object.$content][_xfa_object.$toHTML](availableSpace);}}
exports.Text=Text;class TextEdit extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"textEdit",true);this.allowRichText=(0,_utils.getInteger)({data:attributes.allowRichText,defaultValue:0,validate:x=>x===1});this.hScrollPolicy=(0,_utils.getStringOption)(attributes.hScrollPolicy,["auto","off","on"]);this.id=attributes.id||"";this.multiLine=(0,_utils.getInteger)({data:attributes.multiLine,defaultValue:"",validate:x=>x===0||x===1});this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.vScrollPolicy=(0,_utils.getStringOption)(attributes.vScrollPolicy,["auto","off","on"]);this.border=null;this.comb=null;this.extras=null;this.margin=null;}
[_xfa_object.$toHTML](availableSpace){const style=(0,_html_utils.toStyle)(this,"border","font","margin");let html;const field=this[_xfa_object.$getParent]()[_xfa_object.$getParent]();if(this.multiLine===""){this.multiLine=field instanceof Draw?1:0;}
if(this.multiLine===1){html={name:"textarea",attributes:{dataId:field[_xfa_object.$data]&&field[_xfa_object.$data][_xfa_object.$uid]||field[_xfa_object.$uid],fieldId:field[_xfa_object.$uid],class:["xfaTextfield"],style,"aria-label":ariaLabel(field),"aria-required":false}};}else{html={name:"input",attributes:{type:"text",dataId:field[_xfa_object.$data]&&field[_xfa_object.$data][_xfa_object.$uid]||field[_xfa_object.$uid],fieldId:field[_xfa_object.$uid],class:["xfaTextfield"],style,"aria-label":ariaLabel(field),"aria-required":false}};}
if(isRequired(field)){html.attributes["aria-required"]=true;html.attributes.required=true;}
return _utils.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[html]});}}
class Time extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"time");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}
[_xfa_object.$finalize](){const date=this[_xfa_object.$content].trim();this[_xfa_object.$content]=date?new Date(date):null;}
[_xfa_object.$toHTML](availableSpace){return valueToHtml(this[_xfa_object.$content]?this[_xfa_object.$content].toString():"");}}
class TimeStamp extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"timeStamp");this.id=attributes.id||"";this.server=attributes.server||"";this.type=(0,_utils.getStringOption)(attributes.type,["optional","required"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class ToolTip extends _xfa_object.StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"toolTip");this.id=attributes.id||"";this.rid=attributes.rid||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Traversal extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"traversal",true);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;this.traverse=new _xfa_object.XFAObjectArray();}}
class Traverse extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"traverse",true);this.id=attributes.id||"";this.operation=(0,_utils.getStringOption)(attributes.operation,["next","back","down","first","left","right","up"]);this.ref=attributes.ref||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;this.script=null;}
get name(){return this.operation;}
[_xfa_object.$isTransparent](){return false;}}
class Ui extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"ui",true);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;this.picture=null;this.barcode=null;this.button=null;this.checkButton=null;this.choiceList=null;this.dateTimeEdit=null;this.defaultUi=null;this.imageEdit=null;this.numericEdit=null;this.passwordEdit=null;this.signature=null;this.textEdit=null;}
[_xfa_object.$getExtra](){if(this[_xfa_object.$extra]===undefined){for(const name of Object.getOwnPropertyNames(this)){if(name==="extras"||name==="picture"){continue;}
const obj=this[name];if(!(obj instanceof _xfa_object.XFAObject)){continue;}
this[_xfa_object.$extra]=obj;return obj;}
this[_xfa_object.$extra]=null;}
return this[_xfa_object.$extra];}
[_xfa_object.$toHTML](availableSpace){const obj=this[_xfa_object.$getExtra]();if(obj){return obj[_xfa_object.$toHTML](availableSpace);}
return _utils.HTMLResult.EMPTY;}}
class Validate extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"validate",true);this.formatTest=(0,_utils.getStringOption)(attributes.formatTest,["warning","disabled","error"]);this.id=attributes.id||"";this.nullTest=(0,_utils.getStringOption)(attributes.nullTest,["disabled","error","warning"]);this.scriptTest=(0,_utils.getStringOption)(attributes.scriptTest,["error","disabled","warning"]);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.extras=null;this.message=null;this.picture=null;this.script=null;}}
class Value extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"value",true);this.id=attributes.id||"";this.override=(0,_utils.getInteger)({data:attributes.override,defaultValue:0,validate:x=>x===1});this.relevant=(0,_utils.getRelevant)(attributes.relevant);this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.arc=null;this.boolean=null;this.date=null;this.dateTime=null;this.decimal=null;this.exData=null;this.float=null;this.image=null;this.integer=null;this.line=null;this.rectangle=null;this.text=null;this.time=null;}
[_xfa_object.$setValue](value){const parent=this[_xfa_object.$getParent]();if(parent instanceof Field){if(parent.ui&&parent.ui.imageEdit){if(!this.image){this.image=new Image({});this[_xfa_object.$appendChild](this.image);}
this.image[_xfa_object.$content]=value[_xfa_object.$content];return;}}
const valueName=value[_xfa_object.$nodeName];if(this[valueName]!==null){this[valueName][_xfa_object.$content]=value[_xfa_object.$content];return;}
for(const name of Object.getOwnPropertyNames(this)){const obj=this[name];if(obj instanceof _xfa_object.XFAObject){this[name]=null;this[_xfa_object.$removeChild](obj);}}
this[value[_xfa_object.$nodeName]]=value;this[_xfa_object.$appendChild](value);}
[_xfa_object.$text](){if(this.exData){if(typeof this.exData[_xfa_object.$content]==="string"){return this.exData[_xfa_object.$content].trim();}
return this.exData[_xfa_object.$content][_xfa_object.$text]().trim();}
for(const name of Object.getOwnPropertyNames(this)){if(name==="image"){continue;}
const obj=this[name];if(obj instanceof _xfa_object.XFAObject){return(obj[_xfa_object.$content]||"").toString().trim();}}
return null;}
[_xfa_object.$toHTML](availableSpace){for(const name of Object.getOwnPropertyNames(this)){const obj=this[name];if(!(obj instanceof _xfa_object.XFAObject)){continue;}
return obj[_xfa_object.$toHTML](availableSpace);}
return _utils.HTMLResult.EMPTY;}}
exports.Value=Value;class Variables extends _xfa_object.XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"variables",true);this.id=attributes.id||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";this.boolean=new _xfa_object.XFAObjectArray();this.date=new _xfa_object.XFAObjectArray();this.dateTime=new _xfa_object.XFAObjectArray();this.decimal=new _xfa_object.XFAObjectArray();this.exData=new _xfa_object.XFAObjectArray();this.float=new _xfa_object.XFAObjectArray();this.image=new _xfa_object.XFAObjectArray();this.integer=new _xfa_object.XFAObjectArray();this.manifest=new _xfa_object.XFAObjectArray();this.script=new _xfa_object.XFAObjectArray();this.text=new _xfa_object.XFAObjectArray();this.time=new _xfa_object.XFAObjectArray();}
[_xfa_object.$isTransparent](){return true;}}
class TemplateNamespace{static[_namespaces.$buildXFAObject](name,attributes){if(TemplateNamespace.hasOwnProperty(name)){const node=TemplateNamespace[name](attributes);node[_xfa_object.$setSetAttributes](attributes);return node;}
return undefined;}
static appearanceFilter(attrs){return new AppearanceFilter(attrs);}
static arc(attrs){return new Arc(attrs);}
static area(attrs){return new Area(attrs);}
static assist(attrs){return new Assist(attrs);}
static barcode(attrs){return new Barcode(attrs);}
static bind(attrs){return new Bind(attrs);}
static bindItems(attrs){return new BindItems(attrs);}
static bookend(attrs){return new Bookend(attrs);}
static boolean(attrs){return new BooleanElement(attrs);}
static border(attrs){return new Border(attrs);}
static break(attrs){return new Break(attrs);}
static breakAfter(attrs){return new BreakAfter(attrs);}
static breakBefore(attrs){return new BreakBefore(attrs);}
static button(attrs){return new Button(attrs);}
static calculate(attrs){return new Calculate(attrs);}
static caption(attrs){return new Caption(attrs);}
static certificate(attrs){return new Certificate(attrs);}
static certificates(attrs){return new Certificates(attrs);}
static checkButton(attrs){return new CheckButton(attrs);}
static choiceList(attrs){return new ChoiceList(attrs);}
static color(attrs){return new Color(attrs);}
static comb(attrs){return new Comb(attrs);}
static connect(attrs){return new Connect(attrs);}
static contentArea(attrs){return new ContentArea(attrs);}
static corner(attrs){return new Corner(attrs);}
static date(attrs){return new DateElement(attrs);}
static dateTime(attrs){return new DateTime(attrs);}
static dateTimeEdit(attrs){return new DateTimeEdit(attrs);}
static decimal(attrs){return new Decimal(attrs);}
static defaultUi(attrs){return new DefaultUi(attrs);}
static desc(attrs){return new Desc(attrs);}
static digestMethod(attrs){return new DigestMethod(attrs);}
static digestMethods(attrs){return new DigestMethods(attrs);}
static draw(attrs){return new Draw(attrs);}
static edge(attrs){return new Edge(attrs);}
static encoding(attrs){return new Encoding(attrs);}
static encodings(attrs){return new Encodings(attrs);}
static encrypt(attrs){return new Encrypt(attrs);}
static encryptData(attrs){return new EncryptData(attrs);}
static encryption(attrs){return new Encryption(attrs);}
static encryptionMethod(attrs){return new EncryptionMethod(attrs);}
static encryptionMethods(attrs){return new EncryptionMethods(attrs);}
static event(attrs){return new Event(attrs);}
static exData(attrs){return new ExData(attrs);}
static exObject(attrs){return new ExObject(attrs);}
static exclGroup(attrs){return new ExclGroup(attrs);}
static execute(attrs){return new Execute(attrs);}
static extras(attrs){return new Extras(attrs);}
static field(attrs){return new Field(attrs);}
static fill(attrs){return new Fill(attrs);}
static filter(attrs){return new Filter(attrs);}
static float(attrs){return new Float(attrs);}
static font(attrs){return new Font(attrs);}
static format(attrs){return new Format(attrs);}
static handler(attrs){return new Handler(attrs);}
static hyphenation(attrs){return new Hyphenation(attrs);}
static image(attrs){return new Image(attrs);}
static imageEdit(attrs){return new ImageEdit(attrs);}
static integer(attrs){return new Integer(attrs);}
static issuers(attrs){return new Issuers(attrs);}
static items(attrs){return new Items(attrs);}
static keep(attrs){return new Keep(attrs);}
static keyUsage(attrs){return new KeyUsage(attrs);}
static line(attrs){return new Line(attrs);}
static linear(attrs){return new Linear(attrs);}
static lockDocument(attrs){return new LockDocument(attrs);}
static manifest(attrs){return new Manifest(attrs);}
static margin(attrs){return new Margin(attrs);}
static mdp(attrs){return new Mdp(attrs);}
static medium(attrs){return new Medium(attrs);}
static message(attrs){return new Message(attrs);}
static numericEdit(attrs){return new NumericEdit(attrs);}
static occur(attrs){return new Occur(attrs);}
static oid(attrs){return new Oid(attrs);}
static oids(attrs){return new Oids(attrs);}
static overflow(attrs){return new Overflow(attrs);}
static pageArea(attrs){return new PageArea(attrs);}
static pageSet(attrs){return new PageSet(attrs);}
static para(attrs){return new Para(attrs);}
static passwordEdit(attrs){return new PasswordEdit(attrs);}
static pattern(attrs){return new Pattern(attrs);}
static picture(attrs){return new Picture(attrs);}
static proto(attrs){return new Proto(attrs);}
static radial(attrs){return new Radial(attrs);}
static reason(attrs){return new Reason(attrs);}
static reasons(attrs){return new Reasons(attrs);}
static rectangle(attrs){return new Rectangle(attrs);}
static ref(attrs){return new RefElement(attrs);}
static script(attrs){return new Script(attrs);}
static setProperty(attrs){return new SetProperty(attrs);}
static signData(attrs){return new SignData(attrs);}
static signature(attrs){return new Signature(attrs);}
static signing(attrs){return new Signing(attrs);}
static solid(attrs){return new Solid(attrs);}
static speak(attrs){return new Speak(attrs);}
static stipple(attrs){return new Stipple(attrs);}
static subform(attrs){return new Subform(attrs);}
static subformSet(attrs){return new SubformSet(attrs);}
static subjectDN(attrs){return new SubjectDN(attrs);}
static subjectDNs(attrs){return new SubjectDNs(attrs);}
static submit(attrs){return new Submit(attrs);}
static template(attrs){return new Template(attrs);}
static text(attrs){return new Text(attrs);}
static textEdit(attrs){return new TextEdit(attrs);}
static time(attrs){return new Time(attrs);}
static timeStamp(attrs){return new TimeStamp(attrs);}
static toolTip(attrs){return new ToolTip(attrs);}
static traversal(attrs){return new Traversal(attrs);}
static traverse(attrs){return new Traverse(attrs);}
static ui(attrs){return new Ui(attrs);}
static validate(attrs){return new Validate(attrs);}
static value(attrs){return new Value(attrs);}
static variables(attrs){return new Variables(attrs);}}
exports.TemplateNamespace=TemplateNamespace;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.addHTML=addHTML;exports.checkDimensions=checkDimensions;exports.flushHTML=flushHTML;exports.getAvailableSpace=getAvailableSpace;var _xfa_object=__w_pdfjs_require__(202);var _html_utils=__w_pdfjs_require__(209);function createLine(node,children){return{name:"div",attributes:{class:[node.layout==="lr-tb"?"xfaLr":"xfaRl"]},children};}
function flushHTML(node){if(!node[_xfa_object.$extra]){return null;}
const attributes=node[_xfa_object.$extra].attributes;const html={name:"div",attributes,children:node[_xfa_object.$extra].children};if(node[_xfa_object.$extra].failingNode){const htmlFromFailing=node[_xfa_object.$extra].failingNode[_xfa_object.$flushHTML]();if(htmlFromFailing){if(node.layout.endsWith("-tb")){html.children.push(createLine(node,[htmlFromFailing]));}else{html.children.push(htmlFromFailing);}}}
if(html.children.length===0){return null;}
return html;}
function addHTML(node,html,bbox){const extra=node[_xfa_object.$extra];const availableSpace=extra.availableSpace;const[x,y,w,h]=bbox;switch(node.layout){case"position":{extra.width=Math.max(extra.width,x+w);extra.height=Math.max(extra.height,y+h);extra.children.push(html);break;}
case"lr-tb":case"rl-tb":if(!extra.line||extra.attempt===1){extra.line=createLine(node,[]);extra.children.push(extra.line);extra.numberInLine=0;}
extra.numberInLine+=1;extra.line.children.push(html);if(extra.attempt===0){extra.currentWidth+=w;extra.height=Math.max(extra.height,extra.prevHeight+h);}else{extra.currentWidth=w;extra.prevHeight=extra.height;extra.height+=h;extra.attempt=0;}
extra.width=Math.max(extra.width,extra.currentWidth);break;case"rl-row":case"row":{extra.children.push(html);extra.width+=w;extra.height=Math.max(extra.height,h);const height=(0,_html_utils.measureToString)(extra.height);for(const child of extra.children){child.attributes.style.height=height;}
break;}
case"table":{extra.width=Math.min(availableSpace.width,Math.max(extra.width,w));extra.height+=h;extra.children.push(html);break;}
case"tb":{extra.width=Math.min(availableSpace.width,Math.max(extra.width,w));extra.height+=h;extra.children.push(html);break;}}}
function getAvailableSpace(node){const availableSpace=node[_xfa_object.$extra].availableSpace;const marginV=node.margin?node.margin.topInset+node.margin.bottomInset:0;const marginH=node.margin?node.margin.leftInset+node.margin.rightInset:0;switch(node.layout){case"lr-tb":case"rl-tb":if(node[_xfa_object.$extra].attempt===0){return{width:availableSpace.width-marginH-node[_xfa_object.$extra].currentWidth,height:availableSpace.height-marginV-node[_xfa_object.$extra].prevHeight};}
return{width:availableSpace.width-marginH,height:availableSpace.height-marginV-node[_xfa_object.$extra].height};case"rl-row":case"row":const width=node[_xfa_object.$extra].columnWidths.slice(node[_xfa_object.$extra].currentColumn).reduce((a,x)=>a+x);return{width,height:availableSpace.height-marginH};case"table":case"tb":return{width:availableSpace.width-marginH,height:availableSpace.height-marginV-node[_xfa_object.$extra].height};case"position":default:return availableSpace;}}
function getTransformedBBox(node){let w=node.w===""?NaN:node.w;let h=node.h===""?NaN:node.h;let[centerX,centerY]=[0,0];switch(node.anchorType||""){case"bottomCenter":[centerX,centerY]=[w/2,h];break;case"bottomLeft":[centerX,centerY]=[0,h];break;case"bottomRight":[centerX,centerY]=[w,h];break;case"middleCenter":[centerX,centerY]=[w/2,h/2];break;case"middleLeft":[centerX,centerY]=[0,h/2];break;case"middleRight":[centerX,centerY]=[w,h/2];break;case"topCenter":[centerX,centerY]=[w/2,0];break;case"topRight":[centerX,centerY]=[w,0];break;}
let x,y;switch(node.rotate||0){case 0:[x,y]=[-centerX,-centerY];break;case 90:[x,y]=[-centerY,centerX];[w,h]=[h,-w];break;case 180:[x,y]=[centerX,centerY];[w,h]=[-w,-h];break;case 270:[x,y]=[centerY,-centerX];[w,h]=[-h,w];break;}
return[node.x+x+Math.min(0,w),node.y+y+Math.min(0,h),Math.abs(w),Math.abs(h)];}
function checkDimensions(node,space){if(node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].firstUnsplittable===null){return true;}
if(node.w===0||node.h===0){return true;}
const ERROR=2;const parent=node[_xfa_object.$getSubformParent]();const attempt=parent[_xfa_object.$extra]&&parent[_xfa_object.$extra].attempt||0;const[,y,w,h]=getTransformedBBox(node);switch(parent.layout){case"lr-tb":case"rl-tb":if(attempt===0){if(!node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure){if(node.h!==""&&Math.round(h-space.height)>ERROR){return false;}
if(node.w!==""){if(Math.round(w-space.width)<=ERROR){return true;}
if(parent[_xfa_object.$extra].numberInLine===0){return space.height>ERROR;}
return false;}
return space.width>ERROR;}
if(node.w!==""){return Math.round(w-space.width)<=ERROR;}
return space.width>ERROR;}
if(node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure){return true;}
if(node.h!==""&&Math.round(h-space.height)>ERROR){return false;}
if(node.w===""||Math.round(w-space.width)<=ERROR){return space.height>ERROR;}
if(parent[_xfa_object.$isThereMoreWidth]()){return false;}
return space.height>ERROR;case"table":case"tb":if(node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure){return true;}
if(node.h!==""&&!node[_xfa_object.$isSplittable]()){return Math.round(h-space.height)<=ERROR;}
if(node.w===""||Math.round(w-space.width)<=ERROR){return space.height>ERROR;}
if(parent[_xfa_object.$isThereMoreWidth]()){return false;}
return space.height>ERROR;case"position":if(node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure){return true;}
if(node.h===""||Math.round(h+y-space.height)<=ERROR){return true;}
const area=node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].currentContentArea;return h+y>area.h;case"rl-row":case"row":if(node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure){return true;}
if(node.h!==""){return Math.round(h-space.height)<=ERROR;}
return true;default:return true;}}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.computeBbox=computeBbox;exports.createWrapper=createWrapper;exports.fixDimensions=fixDimensions;exports.fixTextIndent=fixTextIndent;exports.fixURL=fixURL;exports.isPrintOnly=isPrintOnly;exports.layoutClass=layoutClass;exports.layoutNode=layoutNode;exports.measureToString=measureToString;exports.setAccess=setAccess;exports.setFontFamily=setFontFamily;exports.setMinMaxDimensions=setMinMaxDimensions;exports.setPara=setPara;exports.toStyle=toStyle;var _xfa_object=__w_pdfjs_require__(202);var _util=__w_pdfjs_require__(2);var _utils=__w_pdfjs_require__(203);var _fonts=__w_pdfjs_require__(210);var _text=__w_pdfjs_require__(211);function measureToString(m){if(typeof m==="string"){return"0px";}
return Number.isInteger(m)?`${m}px`:`${m.toFixed(2)}px`;}
const converters={anchorType(node,style){const parent=node[_xfa_object.$getSubformParent]();if(!parent||parent.layout&&parent.layout!=="position"){return;}
if(!("transform"in style)){style.transform="";}
switch(node.anchorType){case"bottomCenter":style.transform+="translate(-50%, -100%)";break;case"bottomLeft":style.transform+="translate(0,-100%)";break;case"bottomRight":style.transform+="translate(-100%,-100%)";break;case"middleCenter":style.transform+="translate(-50%,-50%)";break;case"middleLeft":style.transform+="translate(0,-50%)";break;case"middleRight":style.transform+="translate(-100%,-50%)";break;case"topCenter":style.transform+="translate(-50%,0)";break;case"topRight":style.transform+="translate(-100%,0)";break;}},dimensions(node,style){const parent=node[_xfa_object.$getSubformParent]();let width=node.w;const height=node.h;if(parent.layout&&parent.layout.includes("row")){const extra=parent[_xfa_object.$extra];const colSpan=node.colSpan;let w;if(colSpan===-1){w=extra.columnWidths.slice(extra.currentColumn).reduce((a,x)=>a+x,0);extra.currentColumn=0;}else{w=extra.columnWidths.slice(extra.currentColumn,extra.currentColumn+colSpan).reduce((a,x)=>a+x,0);extra.currentColumn=(extra.currentColumn+node.colSpan)%extra.columnWidths.length;}
if(!isNaN(w)){width=node.w=w;}}
if(width!==""){style.width=measureToString(width);}else{style.width="auto";}
if(height!==""){style.height=measureToString(height);}else{style.height="auto";}},position(node,style){const parent=node[_xfa_object.$getSubformParent]();if(parent&&parent.layout&&parent.layout!=="position"){return;}
style.position="absolute";style.left=measureToString(node.x);style.top=measureToString(node.y);},rotate(node,style){if(node.rotate){if(!("transform"in style)){style.transform="";}
style.transform+=`rotate(-${node.rotate}deg)`;style.transformOrigin="top left";}},presence(node,style){switch(node.presence){case"invisible":style.visibility="hidden";break;case"hidden":case"inactive":style.display="none";break;}},hAlign(node,style){if(node[_xfa_object.$nodeName]==="para"){switch(node.hAlign){case"justifyAll":style.textAlign="justify-all";break;case"radix":style.textAlign="left";break;default:style.textAlign=node.hAlign;}}else{switch(node.hAlign){case"left":style.alignSelf="start";break;case"center":style.alignSelf="center";break;case"right":style.alignSelf="end";break;}}},margin(node,style){if(node.margin){style.margin=node.margin[_xfa_object.$toStyle]().margin;}}};function setMinMaxDimensions(node,style){const parent=node[_xfa_object.$getSubformParent]();if(parent.layout==="position"){if(node.minW>0){style.minWidth=measureToString(node.minW);}
if(node.maxW>0){style.maxWidth=measureToString(node.maxW);}
if(node.minH>0){style.minHeight=measureToString(node.minH);}
if(node.maxH>0){style.maxHeight=measureToString(node.maxH);}}}
function layoutText(text,xfaFont,margin,lineHeight,fontFinder,width){const measure=new _text.TextMeasure(xfaFont,margin,lineHeight,fontFinder);if(typeof text==="string"){measure.addString(text);}else{text[_xfa_object.$pushGlyphs](measure);}
return measure.compute(width);}
function layoutNode(node,availableSpace){let height=null;let width=null;let isBroken=false;if((!node.w||!node.h)&&node.value){let marginH=0;let marginV=0;if(node.margin){marginH=node.margin.leftInset+node.margin.rightInset;marginV=node.margin.topInset+node.margin.bottomInset;}
let lineHeight=null;let margin=null;if(node.para){margin=Object.create(null);lineHeight=node.para.lineHeight===""?null:node.para.lineHeight;margin.top=node.para.spaceAbove===""?0:node.para.spaceAbove;margin.bottom=node.para.spaceBelow===""?0:node.para.spaceBelow;margin.left=node.para.marginLeft===""?0:node.para.marginLeft;margin.right=node.para.marginRight===""?0:node.para.marginRight;}
let font=node.font;if(!font){const root=node[_xfa_object.$getTemplateRoot]();let parent=node[_xfa_object.$getParent]();while(parent&&parent!==root){if(parent.font){font=parent.font;break;}
parent=parent[_xfa_object.$getParent]();}}
const maxWidth=(node.w||availableSpace.width)-marginH;const fontFinder=node[_xfa_object.$globalData].fontFinder;if(node.value.exData&&node.value.exData[_xfa_object.$content]&&node.value.exData.contentType==="text/html"){const res=layoutText(node.value.exData[_xfa_object.$content],font,margin,lineHeight,fontFinder,maxWidth);width=res.width;height=res.height;isBroken=res.isBroken;}else{const text=node.value[_xfa_object.$text]();if(text){const res=layoutText(text,font,margin,lineHeight,fontFinder,maxWidth);width=res.width;height=res.height;isBroken=res.isBroken;}}
if(width!==null&&!node.w){width+=marginH;}
if(height!==null&&!node.h){height+=marginV;}}
return{w:width,h:height,isBroken};}
function computeBbox(node,html,availableSpace){let bbox;if(node.w!==""&&node.h!==""){bbox=[node.x,node.y,node.w,node.h];}else{if(!availableSpace){return null;}
let width=node.w;if(width===""){if(node.maxW===0){const parent=node[_xfa_object.$getSubformParent]();if(parent.layout==="position"&&parent.w!==""){width=0;}else{width=node.minW;}}else{width=Math.min(node.maxW,availableSpace.width);}
html.attributes.style.width=measureToString(width);}
let height=node.h;if(height===""){if(node.maxH===0){const parent=node[_xfa_object.$getSubformParent]();if(parent.layout==="position"&&parent.h!==""){height=0;}else{height=node.minH;}}else{height=Math.min(node.maxH,availableSpace.height);}
html.attributes.style.height=measureToString(height);}
bbox=[node.x,node.y,width,height];}
return bbox;}
function fixDimensions(node){const parent=node[_xfa_object.$getSubformParent]();if(parent.layout&&parent.layout.includes("row")){const extra=parent[_xfa_object.$extra];const colSpan=node.colSpan;let width;if(colSpan===-1){width=extra.columnWidths.slice(extra.currentColumn).reduce((a,w)=>a+w,0);}else{width=extra.columnWidths.slice(extra.currentColumn,extra.currentColumn+colSpan).reduce((a,w)=>a+w,0);}
if(!isNaN(width)){node.w=width;}}
if(parent.layout&&parent.layout!=="position"){node.x=node.y=0;}
if(node.layout==="table"){if(node.w===""&&Array.isArray(node.columnWidths)){node.w=node.columnWidths.reduce((a,x)=>a+x,0);}}}
function layoutClass(node){switch(node.layout){case"position":return"xfaPosition";case"lr-tb":return"xfaLrTb";case"rl-row":return"xfaRlRow";case"rl-tb":return"xfaRlTb";case"row":return"xfaRow";case"table":return"xfaTable";case"tb":return"xfaTb";default:return"xfaPosition";}}
function toStyle(node){const style=Object.create(null);for(var _len=arguments.length,names=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){names[_key-1]=arguments[_key];}
for(const name of names){const value=node[name];if(value===null){continue;}
if(converters.hasOwnProperty(name)){converters[name](node,style);continue;}
if(value instanceof _xfa_object.XFAObject){const newStyle=value[_xfa_object.$toStyle]();if(newStyle){Object.assign(style,newStyle);}else{(0,_util.warn)(`(DEBUG) - XFA - style for ${name} not implemented yet`);}}}
return style;}
function createWrapper(node,html){const{attributes}=html;const{style}=attributes;const wrapper={name:"div",attributes:{class:["xfaWrapper"],style:Object.create(null)},children:[]};attributes.class.push("xfaWrapped");if(node.border){const{widths,insets}=node.border[_xfa_object.$extra];let width,height;let top=insets[0];let left=insets[3];const insetsH=insets[0]+insets[2];const insetsW=insets[1]+insets[3];switch(node.border.hand){case"even":top-=widths[0]/2;left-=widths[3]/2;width=`calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`;height=`calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`;break;case"left":top-=widths[0];left-=widths[3];width=`calc(100% + ${widths[1] + widths[3] - insetsW}px)`;height=`calc(100% + ${widths[0] + widths[2] - insetsH}px)`;break;case"right":width=insetsW?`calc(100% - ${insetsW}px)`:"100%";height=insetsH?`calc(100% - ${insetsH}px)`:"100%";break;}
const classNames=["xfaBorder"];if(isPrintOnly(node.border)){classNames.push("xfaPrintOnly");}
const border={name:"div",attributes:{class:classNames,style:{top:`${top}px`,left:`${left}px`,width,height}},children:[]};for(const key of["border","borderWidth","borderColor","borderRadius","borderStyle"]){if(style[key]!==undefined){border.attributes.style[key]=style[key];delete style[key];}}
wrapper.children.push(border,html);}else{wrapper.children.push(html);}
for(const key of["background","backgroundClip","top","left","width","height","minWidth","minHeight","maxWidth","maxHeight","transform","transformOrigin","visibility"]){if(style[key]!==undefined){wrapper.attributes.style[key]=style[key];delete style[key];}}
if(style.position==="absolute"){wrapper.attributes.style.position="absolute";}else{wrapper.attributes.style.position="relative";}
delete style.position;if(style.alignSelf){wrapper.attributes.style.alignSelf=style.alignSelf;delete style.alignSelf;}
return wrapper;}
function fixTextIndent(styles){const indent=(0,_utils.getMeasurement)(styles.textIndent,"0px");if(indent>=0){return;}
const align=styles.textAlign==="right"?"right":"left";const name="padding"+(align==="left"?"Left":"Right");const padding=(0,_utils.getMeasurement)(styles[name],"0px");styles[name]=`${padding - indent}px`;}
function setAccess(node,classNames){switch(node.access){case"nonInteractive":classNames.push("xfaNonInteractive");break;case"readOnly":classNames.push("xfaReadOnly");break;case"protected":classNames.push("xfaDisabled");break;}}
function isPrintOnly(node){return node.relevant.length>0&&!node.relevant[0].excluded&&node.relevant[0].viewname==="print";}
function getCurrentPara(node){const stack=node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].paraStack;return stack.length?stack.at(-1):null;}
function setPara(node,nodeStyle,value){if(value.attributes.class&&value.attributes.class.includes("xfaRich")){if(nodeStyle){if(node.h===""){nodeStyle.height="auto";}
if(node.w===""){nodeStyle.width="auto";}}
const para=getCurrentPara(node);if(para){const valueStyle=value.attributes.style;valueStyle.display="flex";valueStyle.flexDirection="column";switch(para.vAlign){case"top":valueStyle.justifyContent="start";break;case"bottom":valueStyle.justifyContent="end";break;case"middle":valueStyle.justifyContent="center";break;}
const paraStyle=para[_xfa_object.$toStyle]();for(const[key,val]of Object.entries(paraStyle)){if(!(key in valueStyle)){valueStyle[key]=val;}}}}}
function setFontFamily(xfaFont,node,fontFinder,style){if(!fontFinder){delete style.fontFamily;return;}
const name=(0,_utils.stripQuotes)(xfaFont.typeface);style.fontFamily=`"${name}"`;const typeface=fontFinder.find(name);if(typeface){const{fontFamily}=typeface.regular.cssFontInfo;if(fontFamily!==name){style.fontFamily=`"${fontFamily}"`;}
const para=getCurrentPara(node);if(para&&para.lineHeight!==""){return;}
if(style.lineHeight){return;}
const pdfFont=(0,_fonts.selectFont)(xfaFont,typeface);if(pdfFont){style.lineHeight=Math.max(1.2,pdfFont.lineHeight);}}}
function fixURL(str){const absoluteUrl=(0,_util.createValidAbsoluteUrl)(str,null,{addDefaultProtocol:true,tryConvertEncoding:true});return absoluteUrl?absoluteUrl.href:null;}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.FontFinder=void 0;exports.getMetrics=getMetrics;exports.selectFont=selectFont;var _xfa_object=__w_pdfjs_require__(202);var _utils=__w_pdfjs_require__(203);var _util=__w_pdfjs_require__(2);class FontFinder{constructor(pdfFonts){this.fonts=new Map();this.cache=new Map();this.warned=new Set();this.defaultFont=null;this.add(pdfFonts);}
add(pdfFonts){let reallyMissingFonts=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;for(const pdfFont of pdfFonts){this.addPdfFont(pdfFont);}
for(const pdfFont of this.fonts.values()){if(!pdfFont.regular){pdfFont.regular=pdfFont.italic||pdfFont.bold||pdfFont.bolditalic;}}
if(!reallyMissingFonts||reallyMissingFonts.size===0){return;}
const myriad=this.fonts.get("PdfJS-Fallback-PdfJS-XFA");for(const missing of reallyMissingFonts){this.fonts.set(missing,myriad);}}
addPdfFont(pdfFont){const cssFontInfo=pdfFont.cssFontInfo;const name=cssFontInfo.fontFamily;let font=this.fonts.get(name);if(!font){font=Object.create(null);this.fonts.set(name,font);if(!this.defaultFont){this.defaultFont=font;}}
let property="";const fontWeight=parseFloat(cssFontInfo.fontWeight);if(parseFloat(cssFontInfo.italicAngle)!==0){property=fontWeight>=700?"bolditalic":"italic";}else if(fontWeight>=700){property="bold";}
if(!property){if(pdfFont.name.includes("Bold")||pdfFont.psName&&pdfFont.psName.includes("Bold")){property="bold";}
if(pdfFont.name.includes("Italic")||pdfFont.name.endsWith("It")||pdfFont.psName&&(pdfFont.psName.includes("Italic")||pdfFont.psName.endsWith("It"))){property+="italic";}}
if(!property){property="regular";}
font[property]=pdfFont;}
getDefault(){return this.defaultFont;}
find(fontName){let mustWarn=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;let font=this.fonts.get(fontName)||this.cache.get(fontName);if(font){return font;}
const pattern=/,|-|_| |bolditalic|bold|italic|regular|it/gi;let name=fontName.replace(pattern,"");font=this.fonts.get(name);if(font){this.cache.set(fontName,font);return font;}
name=name.toLowerCase();const maybe=[];for(const[family,pdfFont]of this.fonts.entries()){if(family.replace(pattern,"").toLowerCase().startsWith(name)){maybe.push(pdfFont);}}
if(maybe.length===0){for(const[,pdfFont]of this.fonts.entries()){if(pdfFont.regular.name&&pdfFont.regular.name.replace(pattern,"").toLowerCase().startsWith(name)){maybe.push(pdfFont);}}}
if(maybe.length===0){name=name.replace(/psmt|mt/gi,"");for(const[family,pdfFont]of this.fonts.entries()){if(family.replace(pattern,"").toLowerCase().startsWith(name)){maybe.push(pdfFont);}}}
if(maybe.length===0){for(const pdfFont of this.fonts.values()){if(pdfFont.regular.name&&pdfFont.regular.name.replace(pattern,"").toLowerCase().startsWith(name)){maybe.push(pdfFont);}}}
if(maybe.length>=1){if(maybe.length!==1&&mustWarn){(0,_util.warn)(`XFA - Too many choices to guess the correct font: ${fontName}`);}
this.cache.set(fontName,maybe[0]);return maybe[0];}
if(mustWarn&&!this.warned.has(fontName)){this.warned.add(fontName);(0,_util.warn)(`XFA - Cannot find the font: ${fontName}`);}
return null;}}
exports.FontFinder=FontFinder;function selectFont(xfaFont,typeface){if(xfaFont.posture==="italic"){if(xfaFont.weight==="bold"){return typeface.bolditalic;}
return typeface.italic;}else if(xfaFont.weight==="bold"){return typeface.bold;}
return typeface.regular;}
function getMetrics(xfaFont){let real=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;let pdfFont=null;if(xfaFont){const name=(0,_utils.stripQuotes)(xfaFont.typeface);const typeface=xfaFont[_xfa_object.$globalData].fontFinder.find(name);pdfFont=selectFont(xfaFont,typeface);}
if(!pdfFont){return{lineHeight:12,lineGap:2,lineNoGap:10};}
const size=xfaFont.size||10;const lineHeight=pdfFont.lineHeight?Math.max(real?0:1.2,pdfFont.lineHeight):1.2;const lineGap=pdfFont.lineGap===undefined?0.2:pdfFont.lineGap;return{lineHeight:lineHeight*size,lineGap:lineGap*size,lineNoGap:Math.max(1,lineHeight-lineGap)*size};}}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.TextMeasure=void 0;var _fonts=__w_pdfjs_require__(210);const WIDTH_FACTOR=1.02;class FontInfo{constructor(xfaFont,margin,lineHeight,fontFinder){this.lineHeight=lineHeight;this.paraMargin=margin||{top:0,bottom:0,left:0,right:0};if(!xfaFont){[this.pdfFont,this.xfaFont]=this.defaultFont(fontFinder);return;}
this.xfaFont={typeface:xfaFont.typeface,posture:xfaFont.posture,weight:xfaFont.weight,size:xfaFont.size,letterSpacing:xfaFont.letterSpacing};const typeface=fontFinder.find(xfaFont.typeface);if(!typeface){[this.pdfFont,this.xfaFont]=this.defaultFont(fontFinder);return;}
this.pdfFont=(0,_fonts.selectFont)(xfaFont,typeface);if(!this.pdfFont){[this.pdfFont,this.xfaFont]=this.defaultFont(fontFinder);}}
defaultFont(fontFinder){const font=fontFinder.find("Helvetica",false)||fontFinder.find("Myriad Pro",false)||fontFinder.find("Arial",false)||fontFinder.getDefault();if(font&&font.regular){const pdfFont=font.regular;const info=pdfFont.cssFontInfo;const xfaFont={typeface:info.fontFamily,posture:"normal",weight:"normal",size:10,letterSpacing:0};return[pdfFont,xfaFont];}
const xfaFont={typeface:"Courier",posture:"normal",weight:"normal",size:10,letterSpacing:0};return[null,xfaFont];}}
class FontSelector{constructor(defaultXfaFont,defaultParaMargin,defaultLineHeight,fontFinder){this.fontFinder=fontFinder;this.stack=[new FontInfo(defaultXfaFont,defaultParaMargin,defaultLineHeight,fontFinder)];}
pushData(xfaFont,margin,lineHeight){const lastFont=this.stack.at(-1);for(const name of["typeface","posture","weight","size","letterSpacing"]){if(!xfaFont[name]){xfaFont[name]=lastFont.xfaFont[name];}}
for(const name of["top","bottom","left","right"]){if(isNaN(margin[name])){margin[name]=lastFont.paraMargin[name];}}
const fontInfo=new FontInfo(xfaFont,margin,lineHeight||lastFont.lineHeight,this.fontFinder);if(!fontInfo.pdfFont){fontInfo.pdfFont=lastFont.pdfFont;}
this.stack.push(fontInfo);}
popFont(){this.stack.pop();}
topFont(){return this.stack.at(-1);}}
class TextMeasure{constructor(defaultXfaFont,defaultParaMargin,defaultLineHeight,fonts){this.glyphs=[];this.fontSelector=new FontSelector(defaultXfaFont,defaultParaMargin,defaultLineHeight,fonts);this.extraHeight=0;}
pushData(xfaFont,margin,lineHeight){this.fontSelector.pushData(xfaFont,margin,lineHeight);}
popFont(xfaFont){return this.fontSelector.popFont();}
addPara(){const lastFont=this.fontSelector.topFont();this.extraHeight+=lastFont.paraMargin.top+lastFont.paraMargin.bottom;}
addString(str){if(!str){return;}
const lastFont=this.fontSelector.topFont();const fontSize=lastFont.xfaFont.size;if(lastFont.pdfFont){const letterSpacing=lastFont.xfaFont.letterSpacing;const pdfFont=lastFont.pdfFont;const fontLineHeight=pdfFont.lineHeight||1.2;const lineHeight=lastFont.lineHeight||Math.max(1.2,fontLineHeight)*fontSize;const lineGap=pdfFont.lineGap===undefined?0.2:pdfFont.lineGap;const noGap=fontLineHeight-lineGap;const firstLineHeight=Math.max(1,noGap)*fontSize;const scale=fontSize/1000;const fallbackWidth=pdfFont.defaultWidth||pdfFont.charsToGlyphs(" ")[0].width;for(const line of str.split(/[\u2029\n]/)){const encodedLine=pdfFont.encodeString(line).join("");const glyphs=pdfFont.charsToGlyphs(encodedLine);for(const glyph of glyphs){const width=glyph.width||fallbackWidth;this.glyphs.push([width*scale+letterSpacing,lineHeight,firstLineHeight,glyph.unicode,false]);}
this.glyphs.push([0,0,0,"\n",true]);}
this.glyphs.pop();return;}
for(const line of str.split(/[\u2029\n]/)){for(const char of line.split("")){this.glyphs.push([fontSize,1.2*fontSize,fontSize,char,false]);}
this.glyphs.push([0,0,0,"\n",true]);}
this.glyphs.pop();}
compute(maxWidth){let lastSpacePos=-1,lastSpaceWidth=0,width=0,height=0,currentLineWidth=0,currentLineHeight=0;let isBroken=false;let isFirstLine=true;for(let i=0,ii=this.glyphs.length;i<ii;i++){const[glyphWidth,lineHeight,firstLineHeight,char,isEOL]=this.glyphs[i];const isSpace=char===" ";const glyphHeight=isFirstLine?firstLineHeight:lineHeight;if(isEOL){width=Math.max(width,currentLineWidth);currentLineWidth=0;height+=currentLineHeight;currentLineHeight=glyphHeight;lastSpacePos=-1;lastSpaceWidth=0;isFirstLine=false;continue;}
if(isSpace){if(currentLineWidth+glyphWidth>maxWidth){width=Math.max(width,currentLineWidth);currentLineWidth=0;height+=currentLineHeight;currentLineHeight=glyphHeight;lastSpacePos=-1;lastSpaceWidth=0;isBroken=true;isFirstLine=false;}else{currentLineHeight=Math.max(glyphHeight,currentLineHeight);lastSpaceWidth=currentLineWidth;currentLineWidth+=glyphWidth;lastSpacePos=i;}
continue;}
if(currentLineWidth+glyphWidth>maxWidth){height+=currentLineHeight;currentLineHeight=glyphHeight;if(lastSpacePos!==-1){i=lastSpacePos;width=Math.max(width,lastSpaceWidth);currentLineWidth=0;lastSpacePos=-1;lastSpaceWidth=0;}else{width=Math.max(width,currentLineWidth);currentLineWidth=glyphWidth;}
isBroken=true;isFirstLine=false;continue;}
currentLineWidth+=glyphWidth;currentLineHeight=Math.max(glyphHeight,currentLineHeight);}
width=Math.max(width,currentLineWidth);height+=currentLineHeight+this.extraHeight;return{width:WIDTH_FACTOR*width,height,isBroken};}}
exports.TextMeasure=TextMeasure;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.DataHandler=void 0;var _xfa_object=__w_pdfjs_require__(202);class DataHandler{constructor(root,data){this.data=data;this.dataset=root.datasets||null;}
serialize(storage){const stack=[[-1,this.data[_xfa_object.$getChildren]()]];while(stack.length>0){const last=stack.at(-1);const[i,children]=last;if(i+1===children.length){stack.pop();continue;}
const child=children[++last[0]];const storageEntry=storage.get(child[_xfa_object.$uid]);if(storageEntry){child[_xfa_object.$setValue](storageEntry);}else{const attributes=child[_xfa_object.$getAttributes]();for(const value of attributes.values()){const entry=storage.get(value[_xfa_object.$uid]);if(entry){value[_xfa_object.$setValue](entry);break;}}}
const nodes=child[_xfa_object.$getChildren]();if(nodes.length>0){stack.push([-1,nodes]);}}
const buf=[`<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">`];if(this.dataset){for(const child of this.dataset[_xfa_object.$getChildren]()){if(child[_xfa_object.$nodeName]!=="data"){child[_xfa_object.$toString](buf);}}}
this.data[_xfa_object.$toString](buf);buf.push("</xfa:datasets>");return buf.join("");}}
exports.DataHandler=DataHandler;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.XFAParser=void 0;var _xfa_object=__w_pdfjs_require__(202);var _xml_parser=__w_pdfjs_require__(191);var _builder=__w_pdfjs_require__(214);var _util=__w_pdfjs_require__(2);class XFAParser extends _xml_parser.XMLParserBase{constructor(){let rootNameSpace=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;let richText=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;super();this._builder=new _builder.Builder(rootNameSpace);this._stack=[];this._globalData={usedTypefaces:new Set()};this._ids=new Map();this._current=this._builder.buildRoot(this._ids);this._errorCode=_xml_parser.XMLParserErrorCode.NoError;this._whiteRegex=/^\s+$/;this._nbsps=/\xa0+/g;this._richText=richText;}
parse(data){this.parseXml(data);if(this._errorCode!==_xml_parser.XMLParserErrorCode.NoError){return undefined;}
this._current[_xfa_object.$finalize]();return this._current.element;}
onText(text){text=text.replace(this._nbsps,match=>match.slice(1)+" ");if(this._richText||this._current[_xfa_object.$acceptWhitespace]()){this._current[_xfa_object.$onText](text,this._richText);return;}
if(this._whiteRegex.test(text)){return;}
this._current[_xfa_object.$onText](text.trim());}
onCdata(text){this._current[_xfa_object.$onText](text);}
_mkAttributes(attributes,tagName){let namespace=null;let prefixes=null;const attributeObj=Object.create({});for(const{name,value}of attributes){if(name==="xmlns"){if(!namespace){namespace=value;}else{(0,_util.warn)(`XFA - multiple namespace definition in <${tagName}>`);}}else if(name.startsWith("xmlns:")){const prefix=name.substring("xmlns:".length);if(!prefixes){prefixes=[];}
prefixes.push({prefix,value});}else{const i=name.indexOf(":");if(i===-1){attributeObj[name]=value;}else{let nsAttrs=attributeObj[_xfa_object.$nsAttributes];if(!nsAttrs){nsAttrs=attributeObj[_xfa_object.$nsAttributes]=Object.create(null);}
const[ns,attrName]=[name.slice(0,i),name.slice(i+1)];let attrs=nsAttrs[ns];if(!attrs){attrs=nsAttrs[ns]=Object.create(null);}
attrs[attrName]=value;}}}
return[namespace,prefixes,attributeObj];}
_getNameAndPrefix(name,nsAgnostic){const i=name.indexOf(":");if(i===-1){return[name,null];}
return[name.substring(i+1),nsAgnostic?"":name.substring(0,i)];}
onBeginElement(tagName,attributes,isEmpty){const[namespace,prefixes,attributesObj]=this._mkAttributes(attributes,tagName);const[name,nsPrefix]=this._getNameAndPrefix(tagName,this._builder.isNsAgnostic());const node=this._builder.build({nsPrefix,name,attributes:attributesObj,namespace,prefixes});node[_xfa_object.$globalData]=this._globalData;if(isEmpty){node[_xfa_object.$finalize]();if(this._current[_xfa_object.$onChild](node)){node[_xfa_object.$setId](this._ids);}
node[_xfa_object.$clean](this._builder);return;}
this._stack.push(this._current);this._current=node;}
onEndElement(name){const node=this._current;if(node[_xfa_object.$isCDATAXml]()&&typeof node[_xfa_object.$content]==="string"){const parser=new XFAParser();parser._globalData=this._globalData;const root=parser.parse(node[_xfa_object.$content]);node[_xfa_object.$content]=null;node[_xfa_object.$onChild](root);}
node[_xfa_object.$finalize]();this._current=this._stack.pop();if(this._current[_xfa_object.$onChild](node)){node[_xfa_object.$setId](this._ids);}
node[_xfa_object.$clean](this._builder);}
onError(code){this._errorCode=code;}}
exports.XFAParser=XFAParser;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.Builder=void 0;var _namespaces=__w_pdfjs_require__(204);var _xfa_object=__w_pdfjs_require__(202);var _setup=__w_pdfjs_require__(215);var _template=__w_pdfjs_require__(207);var _unknown=__w_pdfjs_require__(224);var _util=__w_pdfjs_require__(2);class Root extends _xfa_object.XFAObject{constructor(ids){super(-1,"root",Object.create(null));this.element=null;this[_xfa_object.$ids]=ids;}
[_xfa_object.$onChild](child){this.element=child;return true;}
[_xfa_object.$finalize](){super[_xfa_object.$finalize]();if(this.element.template instanceof _template.Template){this[_xfa_object.$ids].set(_xfa_object.$root,this.element);this.element.template[_xfa_object.$resolvePrototypes](this[_xfa_object.$ids]);this.element.template[_xfa_object.$ids]=this[_xfa_object.$ids];}}}
class Empty extends _xfa_object.XFAObject{constructor(){super(-1,"",Object.create(null));}
[_xfa_object.$onChild](_){return false;}}
class Builder{constructor(){let rootNameSpace=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;this._namespaceStack=[];this._nsAgnosticLevel=0;this._namespacePrefixes=new Map();this._namespaces=new Map();this._nextNsId=Math.max(...Object.values(_namespaces.NamespaceIds).map(_ref=>{let{id}=_ref;return id;}));this._currentNamespace=rootNameSpace||new _unknown.UnknownNamespace(++this._nextNsId);}
buildRoot(ids){return new Root(ids);}
build(_ref2){let{nsPrefix,name,attributes,namespace,prefixes}=_ref2;const hasNamespaceDef=namespace!==null;if(hasNamespaceDef){this._namespaceStack.push(this._currentNamespace);this._currentNamespace=this._searchNamespace(namespace);}
if(prefixes){this._addNamespacePrefix(prefixes);}
if(attributes.hasOwnProperty(_xfa_object.$nsAttributes)){const dataTemplate=_setup.NamespaceSetUp.datasets;const nsAttrs=attributes[_xfa_object.$nsAttributes];let xfaAttrs=null;for(const[ns,attrs]of Object.entries(nsAttrs)){const nsToUse=this._getNamespaceToUse(ns);if(nsToUse===dataTemplate){xfaAttrs={xfa:attrs};break;}}
if(xfaAttrs){attributes[_xfa_object.$nsAttributes]=xfaAttrs;}else{delete attributes[_xfa_object.$nsAttributes];}}
const namespaceToUse=this._getNamespaceToUse(nsPrefix);const node=namespaceToUse&&namespaceToUse[_namespaces.$buildXFAObject](name,attributes)||new Empty();if(node[_xfa_object.$isNsAgnostic]()){this._nsAgnosticLevel++;}
if(hasNamespaceDef||prefixes||node[_xfa_object.$isNsAgnostic]()){node[_xfa_object.$cleanup]={hasNamespace:hasNamespaceDef,prefixes,nsAgnostic:node[_xfa_object.$isNsAgnostic]()};}
return node;}
isNsAgnostic(){return this._nsAgnosticLevel>0;}
_searchNamespace(nsName){let ns=this._namespaces.get(nsName);if(ns){return ns;}
for(const[name,{check}]of Object.entries(_namespaces.NamespaceIds)){if(check(nsName)){ns=_setup.NamespaceSetUp[name];if(ns){this._namespaces.set(nsName,ns);return ns;}
break;}}
ns=new _unknown.UnknownNamespace(++this._nextNsId);this._namespaces.set(nsName,ns);return ns;}
_addNamespacePrefix(prefixes){for(const{prefix,value}of prefixes){const namespace=this._searchNamespace(value);let prefixStack=this._namespacePrefixes.get(prefix);if(!prefixStack){prefixStack=[];this._namespacePrefixes.set(prefix,prefixStack);}
prefixStack.push(namespace);}}
_getNamespaceToUse(prefix){if(!prefix){return this._currentNamespace;}
const prefixStack=this._namespacePrefixes.get(prefix);if(prefixStack&&prefixStack.length>0){return prefixStack.at(-1);}
(0,_util.warn)(`Unknown namespace prefix: ${prefix}.`);return null;}
clean(data){const{hasNamespace,prefixes,nsAgnostic}=data;if(hasNamespace){this._currentNamespace=this._namespaceStack.pop();}
if(prefixes){prefixes.forEach(_ref3=>{let{prefix}=_ref3;this._namespacePrefixes.get(prefix).pop();});}
if(nsAgnostic){this._nsAgnosticLevel--;}}}
exports.Builder=Builder;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.NamespaceSetUp=void 0;var _config=__w_pdfjs_require__(216);var _connection_set=__w_pdfjs_require__(217);var _datasets=__w_pdfjs_require__(218);var _locale_set=__w_pdfjs_require__(219);var _signature=__w_pdfjs_require__(220);var _stylesheet=__w_pdfjs_require__(221);var _template=__w_pdfjs_require__(207);var _xdp=__w_pdfjs_require__(222);var _xhtml=__w_pdfjs_require__(223);const NamespaceSetUp={config:_config.ConfigNamespace,connection:_connection_set.ConnectionSetNamespace,datasets:_datasets.DatasetsNamespace,localeSet:_locale_set.LocaleSetNamespace,signature:_signature.SignatureNamespace,stylesheet:_stylesheet.StylesheetNamespace,template:_template.TemplateNamespace,xdp:_xdp.XdpNamespace,xhtml:_xhtml.XhtmlNamespace};exports.NamespaceSetUp=NamespaceSetUp;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.ConfigNamespace=void 0;var _namespaces=__w_pdfjs_require__(204);var _xfa_object=__w_pdfjs_require__(202);var _utils=__w_pdfjs_require__(203);var _util=__w_pdfjs_require__(2);const CONFIG_NS_ID=_namespaces.NamespaceIds.config.id;class Acrobat extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"acrobat",true);this.acrobat7=null;this.autoSave=null;this.common=null;this.validate=null;this.validateApprovalSignatures=null;this.submitUrl=new _xfa_object.XFAObjectArray();}}
class Acrobat7 extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"acrobat7",true);this.dynamicRender=null;}}
class ADBE_JSConsole extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ADBE_JSConsole",["delegate","Enable","Disable"]);}}
class ADBE_JSDebugger extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ADBE_JSDebugger",["delegate","Enable","Disable"]);}}
class AddSilentPrint extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"addSilentPrint");}}
class AddViewerPreferences extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"addViewerPreferences");}}
class AdjustData extends _xfa_object.Option10{constructor(attributes){super(CONFIG_NS_ID,"adjustData");}}
class AdobeExtensionLevel extends _xfa_object.IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"adobeExtensionLevel",0,n=>n>=1&&n<=8);}}
class Agent extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"agent",true);this.name=attributes.name?attributes.name.trim():"";this.common=new _xfa_object.XFAObjectArray();}}
class AlwaysEmbed extends _xfa_object.ContentObject{constructor(attributes){super(CONFIG_NS_ID,"alwaysEmbed");}}
class Amd extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"amd");}}
class Area extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"area");this.level=(0,_utils.getInteger)({data:attributes.level,defaultValue:0,validate:n=>n>=1&&n<=3});this.name=(0,_utils.getStringOption)(attributes.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"]);}}
class Attributes extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"attributes",["preserve","delegate","ignore"]);}}
class AutoSave extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"autoSave",["disabled","enabled"]);}}
class Base extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"base");}}
class BatchOutput extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"batchOutput");this.format=(0,_utils.getStringOption)(attributes.format,["none","concat","zip","zipCompress"]);}}
class BehaviorOverride extends _xfa_object.ContentObject{constructor(attributes){super(CONFIG_NS_ID,"behaviorOverride");}
[_xfa_object.$finalize](){this[_xfa_object.$content]=new Map(this[_xfa_object.$content].trim().split(/\s+/).filter(x=>x.includes(":")).map(x=>x.split(":",2)));}}
class Cache extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"cache",true);this.templateCache=null;}}
class Change extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"change");}}
class Common extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"common",true);this.data=null;this.locale=null;this.localeSet=null;this.messaging=null;this.suppressBanner=null;this.template=null;this.validationMessaging=null;this.versionControl=null;this.log=new _xfa_object.XFAObjectArray();}}
class Compress extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"compress");this.scope=(0,_utils.getStringOption)(attributes.scope,["imageOnly","document"]);}}
class CompressLogicalStructure extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"compressLogicalStructure");}}
class CompressObjectStream extends _xfa_object.Option10{constructor(attributes){super(CONFIG_NS_ID,"compressObjectStream");}}
class Compression extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"compression",true);this.compressLogicalStructure=null;this.compressObjectStream=null;this.level=null;this.type=null;}}
class Config extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"config",true);this.acrobat=null;this.present=null;this.trace=null;this.agent=new _xfa_object.XFAObjectArray();}}
class Conformance extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"conformance",["A","B"]);}}
class ContentCopy extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"contentCopy");}}
class Copies extends _xfa_object.IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"copies",1,n=>n>=1);}}
class Creator extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"creator");}}
class CurrentPage extends _xfa_object.IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"currentPage",0,n=>n>=0);}}
class Data extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"data",true);this.adjustData=null;this.attributes=null;this.incrementalLoad=null;this.outputXSL=null;this.range=null;this.record=null;this.startNode=null;this.uri=null;this.window=null;this.xsl=null;this.excludeNS=new _xfa_object.XFAObjectArray();this.transform=new _xfa_object.XFAObjectArray();}}
class Debug extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"debug",true);this.uri=null;}}
class DefaultTypeface extends _xfa_object.ContentObject{constructor(attributes){super(CONFIG_NS_ID,"defaultTypeface");this.writingScript=(0,_utils.getStringOption)(attributes.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"]);}}
class Destination extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"destination",["pdf","pcl","ps","webClient","zpl"]);}}
class DocumentAssembly extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"documentAssembly");}}
class Driver extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"driver",true);this.name=attributes.name?attributes.name.trim():"";this.fontInfo=null;this.xdc=null;}}
class DuplexOption extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"]);}}
class DynamicRender extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"dynamicRender",["forbidden","required"]);}}
class Embed extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"embed");}}
class Encrypt extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"encrypt");}}
class Encryption extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"encryption",true);this.encrypt=null;this.encryptionLevel=null;this.permissions=null;}}
class EncryptionLevel extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"encryptionLevel",["40bit","128bit"]);}}
class Enforce extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"enforce");}}
class Equate extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"equate");this.force=(0,_utils.getInteger)({data:attributes.force,defaultValue:1,validate:n=>n===0});this.from=attributes.from||"";this.to=attributes.to||"";}}
class EquateRange extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"equateRange");this.from=attributes.from||"";this.to=attributes.to||"";this._unicodeRange=attributes.unicodeRange||"";}
get unicodeRange(){const ranges=[];const unicodeRegex=/U\+([0-9a-fA-F]+)/;const unicodeRange=this._unicodeRange;for(let range of unicodeRange.split(",").map(x=>x.trim()).filter(x=>!!x)){range=range.split("-",2).map(x=>{const found=x.match(unicodeRegex);if(!found){return 0;}
return parseInt(found[1],16);});if(range.length===1){range.push(range[0]);}
ranges.push(range);}
return(0,_util.shadow)(this,"unicodeRange",ranges);}}
class Exclude extends _xfa_object.ContentObject{constructor(attributes){super(CONFIG_NS_ID,"exclude");}
[_xfa_object.$finalize](){this[_xfa_object.$content]=this[_xfa_object.$content].trim().split(/\s+/).filter(x=>x&&["calculate","close","enter","exit","initialize","ready","validate"].includes(x));}}
class ExcludeNS extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"excludeNS");}}
class FlipLabel extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"flipLabel",["usePrinterSetting","on","off"]);}}
class FontInfo extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"fontInfo",true);this.embed=null;this.map=null;this.subsetBelow=null;this.alwaysEmbed=new _xfa_object.XFAObjectArray();this.defaultTypeface=new _xfa_object.XFAObjectArray();this.neverEmbed=new _xfa_object.XFAObjectArray();}}
class FormFieldFilling extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"formFieldFilling");}}
class GroupParent extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"groupParent");}}
class IfEmpty extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ifEmpty",["dataValue","dataGroup","ignore","remove"]);}}
class IncludeXDPContent extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"includeXDPContent");}}
class IncrementalLoad extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"incrementalLoad",["none","forwardOnly"]);}}
class IncrementalMerge extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"incrementalMerge");}}
class Interactive extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"interactive");}}
class Jog extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"jog",["usePrinterSetting","none","pageSet"]);}}
class LabelPrinter extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"labelPrinter",true);this.name=(0,_utils.getStringOption)(attributes.name,["zpl","dpl","ipl","tcpl"]);this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null;}}
class Layout extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"layout",["paginate","panel"]);}}
class Level extends _xfa_object.IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"level",0,n=>n>0);}}
class Linearized extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"linearized");}}
class Locale extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"locale");}}
class LocaleSet extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"localeSet");}}
class Log extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"log",true);this.mode=null;this.threshold=null;this.to=null;this.uri=null;}}
class MapElement extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"map",true);this.equate=new _xfa_object.XFAObjectArray();this.equateRange=new _xfa_object.XFAObjectArray();}}
class MediumInfo extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"mediumInfo",true);this.map=null;}}
class Message extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"message",true);this.msgId=null;this.severity=null;}}
class Messaging extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"messaging",true);this.message=new _xfa_object.XFAObjectArray();}}
class Mode extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"mode",["append","overwrite"]);}}
class ModifyAnnots extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"modifyAnnots");}}
class MsgId extends _xfa_object.IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"msgId",1,n=>n>=1);}}
class NameAttr extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"nameAttr");}}
class NeverEmbed extends _xfa_object.ContentObject{constructor(attributes){super(CONFIG_NS_ID,"neverEmbed");}}
class NumberOfCopies extends _xfa_object.IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"numberOfCopies",null,n=>n>=2&&n<=5);}}
class OpenAction extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"openAction",true);this.destination=null;}}
class Output extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"output",true);this.to=null;this.type=null;this.uri=null;}}
class OutputBin extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"outputBin");}}
class OutputXSL extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"outputXSL",true);this.uri=null;}}
class Overprint extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"overprint",["none","both","draw","field"]);}}
class Packets extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"packets");}
[_xfa_object.$finalize](){if(this[_xfa_object.$content]==="*"){return;}
this[_xfa_object.$content]=this[_xfa_object.$content].trim().split(/\s+/).filter(x=>["config","datasets","template","xfdf","xslt"].includes(x));}}
class PageOffset extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pageOffset");this.x=(0,_utils.getInteger)({data:attributes.x,defaultValue:"useXDCSetting",validate:n=>true});this.y=(0,_utils.getInteger)({data:attributes.y,defaultValue:"useXDCSetting",validate:n=>true});}}
class PageRange extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"pageRange");}
[_xfa_object.$finalize](){const numbers=this[_xfa_object.$content].trim().split(/\s+/).map(x=>parseInt(x,10));const ranges=[];for(let i=0,ii=numbers.length;i<ii;i+=2){ranges.push(numbers.slice(i,i+2));}
this[_xfa_object.$content]=ranges;}}
class Pagination extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"pagination",["simplex","duplexShortEdge","duplexLongEdge"]);}}
class PaginationOverride extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"paginationOverride",["none","forceDuplex","forceDuplexLongEdge","forceDuplexShortEdge","forceSimplex"]);}}
class Part extends _xfa_object.IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"part",1,n=>false);}}
class Pcl extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pcl",true);this.name=attributes.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.pageOffset=null;this.staple=null;this.xdc=null;}}
class Pdf extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pdf",true);this.name=attributes.name||"";this.adobeExtensionLevel=null;this.batchOutput=null;this.compression=null;this.creator=null;this.encryption=null;this.fontInfo=null;this.interactive=null;this.linearized=null;this.openAction=null;this.pdfa=null;this.producer=null;this.renderPolicy=null;this.scriptModel=null;this.silentPrint=null;this.submitFormat=null;this.tagged=null;this.version=null;this.viewerPreferences=null;this.xdc=null;}}
class Pdfa extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pdfa",true);this.amd=null;this.conformance=null;this.includeXDPContent=null;this.part=null;}}
class Permissions extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"permissions",true);this.accessibleContent=null;this.change=null;this.contentCopy=null;this.documentAssembly=null;this.formFieldFilling=null;this.modifyAnnots=null;this.plaintextMetadata=null;this.print=null;this.printHighQuality=null;}}
class PickTrayByPDFSize extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"pickTrayByPDFSize");}}
class Picture extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"picture");}}
class PlaintextMetadata extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"plaintextMetadata");}}
class Presence extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"]);}}
class Present extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"present",true);this.behaviorOverride=null;this.cache=null;this.common=null;this.copies=null;this.destination=null;this.incrementalMerge=null;this.layout=null;this.output=null;this.overprint=null;this.pagination=null;this.paginationOverride=null;this.script=null;this.validate=null;this.xdp=null;this.driver=new _xfa_object.XFAObjectArray();this.labelPrinter=new _xfa_object.XFAObjectArray();this.pcl=new _xfa_object.XFAObjectArray();this.pdf=new _xfa_object.XFAObjectArray();this.ps=new _xfa_object.XFAObjectArray();this.submitUrl=new _xfa_object.XFAObjectArray();this.webClient=new _xfa_object.XFAObjectArray();this.zpl=new _xfa_object.XFAObjectArray();}}
class Print extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"print");}}
class PrintHighQuality extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"printHighQuality");}}
class PrintScaling extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"printScaling",["appdefault","noScaling"]);}}
class PrinterName extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"printerName");}}
class Producer extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"producer");}}
class Ps extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"ps",true);this.name=attributes.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.staple=null;this.xdc=null;}}
class Range extends _xfa_object.ContentObject{constructor(attributes){super(CONFIG_NS_ID,"range");}
[_xfa_object.$finalize](){this[_xfa_object.$content]=this[_xfa_object.$content].trim().split(/\s*,\s*/,2).map(range=>range.split("-").map(x=>parseInt(x.trim(),10))).filter(range=>range.every(x=>!isNaN(x))).map(range=>{if(range.length===1){range.push(range[0]);}
return range;});}}
class Record extends _xfa_object.ContentObject{constructor(attributes){super(CONFIG_NS_ID,"record");}
[_xfa_object.$finalize](){this[_xfa_object.$content]=this[_xfa_object.$content].trim();const n=parseInt(this[_xfa_object.$content],10);if(!isNaN(n)&&n>=0){this[_xfa_object.$content]=n;}}}
class Relevant extends _xfa_object.ContentObject{constructor(attributes){super(CONFIG_NS_ID,"relevant");}
[_xfa_object.$finalize](){this[_xfa_object.$content]=this[_xfa_object.$content].trim().split(/\s+/);}}
class Rename extends _xfa_object.ContentObject{constructor(attributes){super(CONFIG_NS_ID,"rename");}
[_xfa_object.$finalize](){this[_xfa_object.$content]=this[_xfa_object.$content].trim();if(this[_xfa_object.$content].toLowerCase().startsWith("xml")||this[_xfa_object.$content].match(new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u"))){(0,_util.warn)("XFA - Rename: invalid XFA name");}}}
class RenderPolicy extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"renderPolicy",["server","client"]);}}
class RunScripts extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"runScripts",["both","client","none","server"]);}}
class Script extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"script",true);this.currentPage=null;this.exclude=null;this.runScripts=null;}}
class ScriptModel extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"scriptModel",["XFA","none"]);}}
class Severity extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"severity",["ignore","error","information","trace","warning"]);}}
class SilentPrint extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"silentPrint",true);this.addSilentPrint=null;this.printerName=null;}}
class Staple extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"staple");this.mode=(0,_utils.getStringOption)(attributes.mode,["usePrinterSetting","on","off"]);}}
class StartNode extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"startNode");}}
class StartPage extends _xfa_object.IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"startPage",0,n=>true);}}
class SubmitFormat extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"submitFormat",["html","delegate","fdf","xml","pdf"]);}}
class SubmitUrl extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"submitUrl");}}
class SubsetBelow extends _xfa_object.IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"subsetBelow",100,n=>n>=0&&n<=100);}}
class SuppressBanner extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"suppressBanner");}}
class Tagged extends _xfa_object.Option01{constructor(attributes){super(CONFIG_NS_ID,"tagged");}}
class Template extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"template",true);this.base=null;this.relevant=null;this.startPage=null;this.uri=null;this.xsl=null;}}
class Threshold extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"threshold",["trace","error","information","warning"]);}}
class To extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"to",["null","memory","stderr","stdout","system","uri"]);}}
class TemplateCache extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"templateCache");this.maxEntries=(0,_utils.getInteger)({data:attributes.maxEntries,defaultValue:5,validate:n=>n>=0});}}
class Trace extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"trace",true);this.area=new _xfa_object.XFAObjectArray();}}
class Transform extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"transform",true);this.groupParent=null;this.ifEmpty=null;this.nameAttr=null;this.picture=null;this.presence=null;this.rename=null;this.whitespace=null;}}
class Type extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"]);}}
class Uri extends _xfa_object.StringObject{constructor(attributes){super(CONFIG_NS_ID,"uri");}}
class Validate extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"validate",["preSubmit","prePrint","preExecute","preSave"]);}}
class ValidateApprovalSignatures extends _xfa_object.ContentObject{constructor(attributes){super(CONFIG_NS_ID,"validateApprovalSignatures");}
[_xfa_object.$finalize](){this[_xfa_object.$content]=this[_xfa_object.$content].trim().split(/\s+/).filter(x=>["docReady","postSign"].includes(x));}}
class ValidationMessaging extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"]);}}
class Version extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"version",["1.7","1.6","1.5","1.4","1.3","1.2"]);}}
class VersionControl extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"VersionControl");this.outputBelow=(0,_utils.getStringOption)(attributes.outputBelow,["warn","error","update"]);this.sourceAbove=(0,_utils.getStringOption)(attributes.sourceAbove,["warn","error"]);this.sourceBelow=(0,_utils.getStringOption)(attributes.sourceBelow,["update","maintain"]);}}
class ViewerPreferences extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"viewerPreferences",true);this.ADBE_JSConsole=null;this.ADBE_JSDebugger=null;this.addViewerPreferences=null;this.duplexOption=null;this.enforce=null;this.numberOfCopies=null;this.pageRange=null;this.pickTrayByPDFSize=null;this.printScaling=null;}}
class WebClient extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"webClient",true);this.name=attributes.name?attributes.name.trim():"";this.fontInfo=null;this.xdc=null;}}
class Whitespace extends _xfa_object.OptionObject{constructor(attributes){super(CONFIG_NS_ID,"whitespace",["preserve","ltrim","normalize","rtrim","trim"]);}}
class Window extends _xfa_object.ContentObject{constructor(attributes){super(CONFIG_NS_ID,"window");}
[_xfa_object.$finalize](){const pair=this[_xfa_object.$content].trim().split(/\s*,\s*/,2).map(x=>parseInt(x,10));if(pair.some(x=>isNaN(x))){this[_xfa_object.$content]=[0,0];return;}
if(pair.length===1){pair.push(pair[0]);}
this[_xfa_object.$content]=pair;}}
class Xdc extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xdc",true);this.uri=new _xfa_object.XFAObjectArray();this.xsl=new _xfa_object.XFAObjectArray();}}
class Xdp extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xdp",true);this.packets=null;}}
class Xsl extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xsl",true);this.debug=null;this.uri=null;}}
class Zpl extends _xfa_object.XFAObject{constructor(attributes){super(CONFIG_NS_ID,"zpl",true);this.name=attributes.name?attributes.name.trim():"";this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null;}}
class ConfigNamespace{static[_namespaces.$buildXFAObject](name,attributes){if(ConfigNamespace.hasOwnProperty(name)){return ConfigNamespace[name](attributes);}
return undefined;}
static acrobat(attrs){return new Acrobat(attrs);}
static acrobat7(attrs){return new Acrobat7(attrs);}
static ADBE_JSConsole(attrs){return new ADBE_JSConsole(attrs);}
static ADBE_JSDebugger(attrs){return new ADBE_JSDebugger(attrs);}
static addSilentPrint(attrs){return new AddSilentPrint(attrs);}
static addViewerPreferences(attrs){return new AddViewerPreferences(attrs);}
static adjustData(attrs){return new AdjustData(attrs);}
static adobeExtensionLevel(attrs){return new AdobeExtensionLevel(attrs);}
static agent(attrs){return new Agent(attrs);}
static alwaysEmbed(attrs){return new AlwaysEmbed(attrs);}
static amd(attrs){return new Amd(attrs);}
static area(attrs){return new Area(attrs);}
static attributes(attrs){return new Attributes(attrs);}
static autoSave(attrs){return new AutoSave(attrs);}
static base(attrs){return new Base(attrs);}
static batchOutput(attrs){return new BatchOutput(attrs);}
static behaviorOverride(attrs){return new BehaviorOverride(attrs);}
static cache(attrs){return new Cache(attrs);}
static change(attrs){return new Change(attrs);}
static common(attrs){return new Common(attrs);}
static compress(attrs){return new Compress(attrs);}
static compressLogicalStructure(attrs){return new CompressLogicalStructure(attrs);}
static compressObjectStream(attrs){return new CompressObjectStream(attrs);}
static compression(attrs){return new Compression(attrs);}
static config(attrs){return new Config(attrs);}
static conformance(attrs){return new Conformance(attrs);}
static contentCopy(attrs){return new ContentCopy(attrs);}
static copies(attrs){return new Copies(attrs);}
static creator(attrs){return new Creator(attrs);}
static currentPage(attrs){return new CurrentPage(attrs);}
static data(attrs){return new Data(attrs);}
static debug(attrs){return new Debug(attrs);}
static defaultTypeface(attrs){return new DefaultTypeface(attrs);}
static destination(attrs){return new Destination(attrs);}
static documentAssembly(attrs){return new DocumentAssembly(attrs);}
static driver(attrs){return new Driver(attrs);}
static duplexOption(attrs){return new DuplexOption(attrs);}
static dynamicRender(attrs){return new DynamicRender(attrs);}
static embed(attrs){return new Embed(attrs);}
static encrypt(attrs){return new Encrypt(attrs);}
static encryption(attrs){return new Encryption(attrs);}
static encryptionLevel(attrs){return new EncryptionLevel(attrs);}
static enforce(attrs){return new Enforce(attrs);}
static equate(attrs){return new Equate(attrs);}
static equateRange(attrs){return new EquateRange(attrs);}
static exclude(attrs){return new Exclude(attrs);}
static excludeNS(attrs){return new ExcludeNS(attrs);}
static flipLabel(attrs){return new FlipLabel(attrs);}
static fontInfo(attrs){return new FontInfo(attrs);}
static formFieldFilling(attrs){return new FormFieldFilling(attrs);}
static groupParent(attrs){return new GroupParent(attrs);}
static ifEmpty(attrs){return new IfEmpty(attrs);}
static includeXDPContent(attrs){return new IncludeXDPContent(attrs);}
static incrementalLoad(attrs){return new IncrementalLoad(attrs);}
static incrementalMerge(attrs){return new IncrementalMerge(attrs);}
static interactive(attrs){return new Interactive(attrs);}
static jog(attrs){return new Jog(attrs);}
static labelPrinter(attrs){return new LabelPrinter(attrs);}
static layout(attrs){return new Layout(attrs);}
static level(attrs){return new Level(attrs);}
static linearized(attrs){return new Linearized(attrs);}
static locale(attrs){return new Locale(attrs);}
static localeSet(attrs){return new LocaleSet(attrs);}
static log(attrs){return new Log(attrs);}
static map(attrs){return new MapElement(attrs);}
static mediumInfo(attrs){return new MediumInfo(attrs);}
static message(attrs){return new Message(attrs);}
static messaging(attrs){return new Messaging(attrs);}
static mode(attrs){return new Mode(attrs);}
static modifyAnnots(attrs){return new ModifyAnnots(attrs);}
static msgId(attrs){return new MsgId(attrs);}
static nameAttr(attrs){return new NameAttr(attrs);}
static neverEmbed(attrs){return new NeverEmbed(attrs);}
static numberOfCopies(attrs){return new NumberOfCopies(attrs);}
static openAction(attrs){return new OpenAction(attrs);}
static output(attrs){return new Output(attrs);}
static outputBin(attrs){return new OutputBin(attrs);}
static outputXSL(attrs){return new OutputXSL(attrs);}
static overprint(attrs){return new Overprint(attrs);}
static packets(attrs){return new Packets(attrs);}
static pageOffset(attrs){return new PageOffset(attrs);}
static pageRange(attrs){return new PageRange(attrs);}
static pagination(attrs){return new Pagination(attrs);}
static paginationOverride(attrs){return new PaginationOverride(attrs);}
static part(attrs){return new Part(attrs);}
static pcl(attrs){return new Pcl(attrs);}
static pdf(attrs){return new Pdf(attrs);}
static pdfa(attrs){return new Pdfa(attrs);}
static permissions(attrs){return new Permissions(attrs);}
static pickTrayByPDFSize(attrs){return new PickTrayByPDFSize(attrs);}
static picture(attrs){return new Picture(attrs);}
static plaintextMetadata(attrs){return new PlaintextMetadata(attrs);}
static presence(attrs){return new Presence(attrs);}
static present(attrs){return new Present(attrs);}
static print(attrs){return new Print(attrs);}
static printHighQuality(attrs){return new PrintHighQuality(attrs);}
static printScaling(attrs){return new PrintScaling(attrs);}
static printerName(attrs){return new PrinterName(attrs);}
static producer(attrs){return new Producer(attrs);}
static ps(attrs){return new Ps(attrs);}
static range(attrs){return new Range(attrs);}
static record(attrs){return new Record(attrs);}
static relevant(attrs){return new Relevant(attrs);}
static rename(attrs){return new Rename(attrs);}
static renderPolicy(attrs){return new RenderPolicy(attrs);}
static runScripts(attrs){return new RunScripts(attrs);}
static script(attrs){return new Script(attrs);}
static scriptModel(attrs){return new ScriptModel(attrs);}
static severity(attrs){return new Severity(attrs);}
static silentPrint(attrs){return new SilentPrint(attrs);}
static staple(attrs){return new Staple(attrs);}
static startNode(attrs){return new StartNode(attrs);}
static startPage(attrs){return new StartPage(attrs);}
static submitFormat(attrs){return new SubmitFormat(attrs);}
static submitUrl(attrs){return new SubmitUrl(attrs);}
static subsetBelow(attrs){return new SubsetBelow(attrs);}
static suppressBanner(attrs){return new SuppressBanner(attrs);}
static tagged(attrs){return new Tagged(attrs);}
static template(attrs){return new Template(attrs);}
static templateCache(attrs){return new TemplateCache(attrs);}
static threshold(attrs){return new Threshold(attrs);}
static to(attrs){return new To(attrs);}
static trace(attrs){return new Trace(attrs);}
static transform(attrs){return new Transform(attrs);}
static type(attrs){return new Type(attrs);}
static uri(attrs){return new Uri(attrs);}
static validate(attrs){return new Validate(attrs);}
static validateApprovalSignatures(attrs){return new ValidateApprovalSignatures(attrs);}
static validationMessaging(attrs){return new ValidationMessaging(attrs);}
static version(attrs){return new Version(attrs);}
static versionControl(attrs){return new VersionControl(attrs);}
static viewerPreferences(attrs){return new ViewerPreferences(attrs);}
static webClient(attrs){return new WebClient(attrs);}
static whitespace(attrs){return new Whitespace(attrs);}
static window(attrs){return new Window(attrs);}
static xdc(attrs){return new Xdc(attrs);}
static xdp(attrs){return new Xdp(attrs);}
static xsl(attrs){return new Xsl(attrs);}
static zpl(attrs){return new Zpl(attrs);}}
exports.ConfigNamespace=ConfigNamespace;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.ConnectionSetNamespace=void 0;var _namespaces=__w_pdfjs_require__(204);var _xfa_object=__w_pdfjs_require__(202);const CONNECTION_SET_NS_ID=_namespaces.NamespaceIds.connectionSet.id;class ConnectionSet extends _xfa_object.XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"connectionSet",true);this.wsdlConnection=new _xfa_object.XFAObjectArray();this.xmlConnection=new _xfa_object.XFAObjectArray();this.xsdConnection=new _xfa_object.XFAObjectArray();}}
class EffectiveInputPolicy extends _xfa_object.XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"effectiveInputPolicy");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class EffectiveOutputPolicy extends _xfa_object.XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"effectiveOutputPolicy");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Operation extends _xfa_object.StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"operation");this.id=attributes.id||"";this.input=attributes.input||"";this.name=attributes.name||"";this.output=attributes.output||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class RootElement extends _xfa_object.StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"rootElement");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class SoapAction extends _xfa_object.StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"soapAction");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class SoapAddress extends _xfa_object.StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"soapAddress");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class Uri extends _xfa_object.StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"uri");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class WsdlAddress extends _xfa_object.StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"wsdlAddress");this.id=attributes.id||"";this.name=attributes.name||"";this.use=attributes.use||"";this.usehref=attributes.usehref||"";}}
class WsdlConnection extends _xfa_object.XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"wsdlConnection",true);this.dataDescription=attributes.dataDescription||"";this.name=attributes.name||"";this.effectiveInputPolicy=null;this.effectiveOutputPolicy=null;this.operation=null;this.soapAction=null;this.soapAddress=null;this.wsdlAddress=null;}}
class XmlConnection extends _xfa_object.XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"xmlConnection",true);this.dataDescription=attributes.dataDescription||"";this.name=attributes.name||"";this.uri=null;}}
class XsdConnection extends _xfa_object.XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"xsdConnection",true);this.dataDescription=attributes.dataDescription||"";this.name=attributes.name||"";this.rootElement=null;this.uri=null;}}
class ConnectionSetNamespace{static[_namespaces.$buildXFAObject](name,attributes){if(ConnectionSetNamespace.hasOwnProperty(name)){return ConnectionSetNamespace[name](attributes);}
return undefined;}
static connectionSet(attrs){return new ConnectionSet(attrs);}
static effectiveInputPolicy(attrs){return new EffectiveInputPolicy(attrs);}
static effectiveOutputPolicy(attrs){return new EffectiveOutputPolicy(attrs);}
static operation(attrs){return new Operation(attrs);}
static rootElement(attrs){return new RootElement(attrs);}
static soapAction(attrs){return new SoapAction(attrs);}
static soapAddress(attrs){return new SoapAddress(attrs);}
static uri(attrs){return new Uri(attrs);}
static wsdlAddress(attrs){return new WsdlAddress(attrs);}
static wsdlConnection(attrs){return new WsdlConnection(attrs);}
static xmlConnection(attrs){return new XmlConnection(attrs);}
static xsdConnection(attrs){return new XsdConnection(attrs);}}
exports.ConnectionSetNamespace=ConnectionSetNamespace;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.DatasetsNamespace=void 0;var _xfa_object=__w_pdfjs_require__(202);var _namespaces=__w_pdfjs_require__(204);const DATASETS_NS_ID=_namespaces.NamespaceIds.datasets.id;class Data extends _xfa_object.XmlObject{constructor(attributes){super(DATASETS_NS_ID,"data",attributes);}
[_xfa_object.$isNsAgnostic](){return true;}}
class Datasets extends _xfa_object.XFAObject{constructor(attributes){super(DATASETS_NS_ID,"datasets",true);this.data=null;this.Signature=null;}
[_xfa_object.$onChild](child){const name=child[_xfa_object.$nodeName];if(name==="data"&&child[_xfa_object.$namespaceId]===DATASETS_NS_ID||name==="Signature"&&child[_xfa_object.$namespaceId]===_namespaces.NamespaceIds.signature.id){this[name]=child;}
this[_xfa_object.$appendChild](child);}}
class DatasetsNamespace{static[_namespaces.$buildXFAObject](name,attributes){if(DatasetsNamespace.hasOwnProperty(name)){return DatasetsNamespace[name](attributes);}
return undefined;}
static datasets(attributes){return new Datasets(attributes);}
static data(attributes){return new Data(attributes);}}
exports.DatasetsNamespace=DatasetsNamespace;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.LocaleSetNamespace=void 0;var _namespaces=__w_pdfjs_require__(204);var _xfa_object=__w_pdfjs_require__(202);var _utils=__w_pdfjs_require__(203);const LOCALE_SET_NS_ID=_namespaces.NamespaceIds.localeSet.id;class CalendarSymbols extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"calendarSymbols",true);this.name="gregorian";this.dayNames=new _xfa_object.XFAObjectArray(2);this.eraNames=null;this.meridiemNames=null;this.monthNames=new _xfa_object.XFAObjectArray(2);}}
class CurrencySymbol extends _xfa_object.StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"currencySymbol");this.name=(0,_utils.getStringOption)(attributes.name,["symbol","isoname","decimal"]);}}
class CurrencySymbols extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"currencySymbols",true);this.currencySymbol=new _xfa_object.XFAObjectArray(3);}}
class DatePattern extends _xfa_object.StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"datePattern");this.name=(0,_utils.getStringOption)(attributes.name,["full","long","med","short"]);}}
class DatePatterns extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"datePatterns",true);this.datePattern=new _xfa_object.XFAObjectArray(4);}}
class DateTimeSymbols extends _xfa_object.ContentObject{constructor(attributes){super(LOCALE_SET_NS_ID,"dateTimeSymbols");}}
class Day extends _xfa_object.StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"day");}}
class DayNames extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"dayNames",true);this.abbr=(0,_utils.getInteger)({data:attributes.abbr,defaultValue:0,validate:x=>x===1});this.day=new _xfa_object.XFAObjectArray(7);}}
class Era extends _xfa_object.StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"era");}}
class EraNames extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"eraNames",true);this.era=new _xfa_object.XFAObjectArray(2);}}
class Locale extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"locale",true);this.desc=attributes.desc||"";this.name="isoname";this.calendarSymbols=null;this.currencySymbols=null;this.datePatterns=null;this.dateTimeSymbols=null;this.numberPatterns=null;this.numberSymbols=null;this.timePatterns=null;this.typeFaces=null;}}
class LocaleSet extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"localeSet",true);this.locale=new _xfa_object.XFAObjectArray();}}
class Meridiem extends _xfa_object.StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"meridiem");}}
class MeridiemNames extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"meridiemNames",true);this.meridiem=new _xfa_object.XFAObjectArray(2);}}
class Month extends _xfa_object.StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"month");}}
class MonthNames extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"monthNames",true);this.abbr=(0,_utils.getInteger)({data:attributes.abbr,defaultValue:0,validate:x=>x===1});this.month=new _xfa_object.XFAObjectArray(12);}}
class NumberPattern extends _xfa_object.StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberPattern");this.name=(0,_utils.getStringOption)(attributes.name,["full","long","med","short"]);}}
class NumberPatterns extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberPatterns",true);this.numberPattern=new _xfa_object.XFAObjectArray(4);}}
class NumberSymbol extends _xfa_object.StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberSymbol");this.name=(0,_utils.getStringOption)(attributes.name,["decimal","grouping","percent","minus","zero"]);}}
class NumberSymbols extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberSymbols",true);this.numberSymbol=new _xfa_object.XFAObjectArray(5);}}
class TimePattern extends _xfa_object.StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"timePattern");this.name=(0,_utils.getStringOption)(attributes.name,["full","long","med","short"]);}}
class TimePatterns extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"timePatterns",true);this.timePattern=new _xfa_object.XFAObjectArray(4);}}
class TypeFace extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"typeFace",true);this.name=attributes.name|"";}}
class TypeFaces extends _xfa_object.XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"typeFaces",true);this.typeFace=new _xfa_object.XFAObjectArray();}}
class LocaleSetNamespace{static[_namespaces.$buildXFAObject](name,attributes){if(LocaleSetNamespace.hasOwnProperty(name)){return LocaleSetNamespace[name](attributes);}
return undefined;}
static calendarSymbols(attrs){return new CalendarSymbols(attrs);}
static currencySymbol(attrs){return new CurrencySymbol(attrs);}
static currencySymbols(attrs){return new CurrencySymbols(attrs);}
static datePattern(attrs){return new DatePattern(attrs);}
static datePatterns(attrs){return new DatePatterns(attrs);}
static dateTimeSymbols(attrs){return new DateTimeSymbols(attrs);}
static day(attrs){return new Day(attrs);}
static dayNames(attrs){return new DayNames(attrs);}
static era(attrs){return new Era(attrs);}
static eraNames(attrs){return new EraNames(attrs);}
static locale(attrs){return new Locale(attrs);}
static localeSet(attrs){return new LocaleSet(attrs);}
static meridiem(attrs){return new Meridiem(attrs);}
static meridiemNames(attrs){return new MeridiemNames(attrs);}
static month(attrs){return new Month(attrs);}
static monthNames(attrs){return new MonthNames(attrs);}
static numberPattern(attrs){return new NumberPattern(attrs);}
static numberPatterns(attrs){return new NumberPatterns(attrs);}
static numberSymbol(attrs){return new NumberSymbol(attrs);}
static numberSymbols(attrs){return new NumberSymbols(attrs);}
static timePattern(attrs){return new TimePattern(attrs);}
static timePatterns(attrs){return new TimePatterns(attrs);}
static typeFace(attrs){return new TypeFace(attrs);}
static typeFaces(attrs){return new TypeFaces(attrs);}}
exports.LocaleSetNamespace=LocaleSetNamespace;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.SignatureNamespace=void 0;var _namespaces=__w_pdfjs_require__(204);var _xfa_object=__w_pdfjs_require__(202);const SIGNATURE_NS_ID=_namespaces.NamespaceIds.signature.id;class Signature extends _xfa_object.XFAObject{constructor(attributes){super(SIGNATURE_NS_ID,"signature",true);}}
class SignatureNamespace{static[_namespaces.$buildXFAObject](name,attributes){if(SignatureNamespace.hasOwnProperty(name)){return SignatureNamespace[name](attributes);}
return undefined;}
static signature(attributes){return new Signature(attributes);}}
exports.SignatureNamespace=SignatureNamespace;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.StylesheetNamespace=void 0;var _namespaces=__w_pdfjs_require__(204);var _xfa_object=__w_pdfjs_require__(202);const STYLESHEET_NS_ID=_namespaces.NamespaceIds.stylesheet.id;class Stylesheet extends _xfa_object.XFAObject{constructor(attributes){super(STYLESHEET_NS_ID,"stylesheet",true);}}
class StylesheetNamespace{static[_namespaces.$buildXFAObject](name,attributes){if(StylesheetNamespace.hasOwnProperty(name)){return StylesheetNamespace[name](attributes);}
return undefined;}
static stylesheet(attributes){return new Stylesheet(attributes);}}
exports.StylesheetNamespace=StylesheetNamespace;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.XdpNamespace=void 0;var _namespaces=__w_pdfjs_require__(204);var _xfa_object=__w_pdfjs_require__(202);const XDP_NS_ID=_namespaces.NamespaceIds.xdp.id;class Xdp extends _xfa_object.XFAObject{constructor(attributes){super(XDP_NS_ID,"xdp",true);this.uuid=attributes.uuid||"";this.timeStamp=attributes.timeStamp||"";this.config=null;this.connectionSet=null;this.datasets=null;this.localeSet=null;this.stylesheet=new _xfa_object.XFAObjectArray();this.template=null;}
[_xfa_object.$onChildCheck](child){const ns=_namespaces.NamespaceIds[child[_xfa_object.$nodeName]];return ns&&child[_xfa_object.$namespaceId]===ns.id;}}
class XdpNamespace{static[_namespaces.$buildXFAObject](name,attributes){if(XdpNamespace.hasOwnProperty(name)){return XdpNamespace[name](attributes);}
return undefined;}
static xdp(attributes){return new Xdp(attributes);}}
exports.XdpNamespace=XdpNamespace;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.XhtmlNamespace=void 0;var _xfa_object=__w_pdfjs_require__(202);var _namespaces=__w_pdfjs_require__(204);var _html_utils=__w_pdfjs_require__(209);var _utils=__w_pdfjs_require__(203);const XHTML_NS_ID=_namespaces.NamespaceIds.xhtml.id;const $richText=Symbol();const VALID_STYLES=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]);const StyleMapping=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",value=>value==="none"?"none":"normal"],["xfa-font-horizontal-scale",value=>`scaleX(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`],["xfa-font-vertical-scale",value=>`scaleY(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",(value,original)=>{value=original.fontSize=(0,_utils.getMeasurement)(value);return(0,_html_utils.measureToString)(0.99*value);}],["letter-spacing",value=>(0,_html_utils.measureToString)((0,_utils.getMeasurement)(value))],["line-height",value=>(0,_html_utils.measureToString)((0,_utils.getMeasurement)(value))],["margin",value=>(0,_html_utils.measureToString)((0,_utils.getMeasurement)(value))],["margin-bottom",value=>(0,_html_utils.measureToString)((0,_utils.getMeasurement)(value))],["margin-left",value=>(0,_html_utils.measureToString)((0,_utils.getMeasurement)(value))],["margin-right",value=>(0,_html_utils.measureToString)((0,_utils.getMeasurement)(value))],["margin-top",value=>(0,_html_utils.measureToString)((0,_utils.getMeasurement)(value))],["text-indent",value=>(0,_html_utils.measureToString)((0,_utils.getMeasurement)(value))],["font-family",value=>value],["vertical-align",value=>(0,_html_utils.measureToString)((0,_utils.getMeasurement)(value))]]);const spacesRegExp=/\s+/g;const crlfRegExp=/[\r\n]+/g;const crlfForRichTextRegExp=/\r\n?/g;function mapStyle(styleStr,node,richText){const style=Object.create(null);if(!styleStr){return style;}
const original=Object.create(null);for(const[key,value]of styleStr.split(";").map(s=>s.split(":",2))){const mapping=StyleMapping.get(key);if(mapping===""){continue;}
let newValue=value;if(mapping){if(typeof mapping==="string"){newValue=mapping;}else{newValue=mapping(value,original);}}
if(key.endsWith("scale")){if(style.transform){style.transform=`${style[key]} ${newValue}`;}else{style.transform=newValue;}}else{style[key.replaceAll(/-([a-zA-Z])/g,(_,x)=>x.toUpperCase())]=newValue;}}
if(style.fontFamily){(0,_html_utils.setFontFamily)({typeface:style.fontFamily,weight:style.fontWeight||"normal",posture:style.fontStyle||"normal",size:original.fontSize||0},node,node[_xfa_object.$globalData].fontFinder,style);}
if(richText&&style.verticalAlign&&style.verticalAlign!=="0px"&&style.fontSize){const SUB_SUPER_SCRIPT_FACTOR=0.583;const VERTICAL_FACTOR=0.333;const fontSize=(0,_utils.getMeasurement)(style.fontSize);style.fontSize=(0,_html_utils.measureToString)(fontSize*SUB_SUPER_SCRIPT_FACTOR);style.verticalAlign=(0,_html_utils.measureToString)(Math.sign((0,_utils.getMeasurement)(style.verticalAlign))*fontSize*VERTICAL_FACTOR);}
if(richText&&style.fontSize){style.fontSize=`calc(${style.fontSize} * var(--scale-factor))`;}
(0,_html_utils.fixTextIndent)(style);return style;}
function checkStyle(node){if(!node.style){return"";}
return node.style.trim().split(/\s*;\s*/).filter(s=>!!s).map(s=>s.split(/\s*:\s*/,2)).filter(_ref=>{let[key,value]=_ref;if(key==="font-family"){node[_xfa_object.$globalData].usedTypefaces.add(value);}
return VALID_STYLES.has(key);}).map(kv=>kv.join(":")).join(";");}
const NoWhites=new Set(["body","html"]);class XhtmlObject extends _xfa_object.XmlObject{constructor(attributes,name){super(XHTML_NS_ID,name);this[$richText]=false;this.style=attributes.style||"";}
[_xfa_object.$clean](builder){super[_xfa_object.$clean](builder);this.style=checkStyle(this);}
[_xfa_object.$acceptWhitespace](){return!NoWhites.has(this[_xfa_object.$nodeName]);}
[_xfa_object.$onText](str){let richText=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!richText){str=str.replace(crlfRegExp,"");if(!this.style.includes("xfa-spacerun:yes")){str=str.replace(spacesRegExp," ");}}else{this[$richText]=true;}
if(str){this[_xfa_object.$content]+=str;}}
[_xfa_object.$pushGlyphs](measure){let mustPop=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;const xfaFont=Object.create(null);const margin={top:NaN,bottom:NaN,left:NaN,right:NaN};let lineHeight=null;for(const[key,value]of this.style.split(";").map(s=>s.split(":",2))){switch(key){case"font-family":xfaFont.typeface=(0,_utils.stripQuotes)(value);break;case"font-size":xfaFont.size=(0,_utils.getMeasurement)(value);break;case"font-weight":xfaFont.weight=value;break;case"font-style":xfaFont.posture=value;break;case"letter-spacing":xfaFont.letterSpacing=(0,_utils.getMeasurement)(value);break;case"margin":const values=value.split(/ \t/).map(x=>(0,_utils.getMeasurement)(x));switch(values.length){case 1:margin.top=margin.bottom=margin.left=margin.right=values[0];break;case 2:margin.top=margin.bottom=values[0];margin.left=margin.right=values[1];break;case 3:margin.top=values[0];margin.bottom=values[2];margin.left=margin.right=values[1];break;case 4:margin.top=values[0];margin.left=values[1];margin.bottom=values[2];margin.right=values[3];break;}
break;case"margin-top":margin.top=(0,_utils.getMeasurement)(value);break;case"margin-bottom":margin.bottom=(0,_utils.getMeasurement)(value);break;case"margin-left":margin.left=(0,_utils.getMeasurement)(value);break;case"margin-right":margin.right=(0,_utils.getMeasurement)(value);break;case"line-height":lineHeight=(0,_utils.getMeasurement)(value);break;}}
measure.pushData(xfaFont,margin,lineHeight);if(this[_xfa_object.$content]){measure.addString(this[_xfa_object.$content]);}else{for(const child of this[_xfa_object.$getChildren]()){if(child[_xfa_object.$nodeName]==="#text"){measure.addString(child[_xfa_object.$content]);continue;}
child[_xfa_object.$pushGlyphs](measure);}}
if(mustPop){measure.popFont();}}
[_xfa_object.$toHTML](availableSpace){const children=[];this[_xfa_object.$extra]={children};this[_xfa_object.$childrenToHTML]({});if(children.length===0&&!this[_xfa_object.$content]){return _utils.HTMLResult.EMPTY;}
let value;if(this[$richText]){value=this[_xfa_object.$content]?this[_xfa_object.$content].replace(crlfForRichTextRegExp,"\n"):undefined;}else{value=this[_xfa_object.$content]||undefined;}
return _utils.HTMLResult.success({name:this[_xfa_object.$nodeName],attributes:{href:this.href,style:mapStyle(this.style,this,this[$richText])},children,value});}}
class A extends XhtmlObject{constructor(attributes){super(attributes,"a");this.href=(0,_html_utils.fixURL)(attributes.href)||"";}}
class B extends XhtmlObject{constructor(attributes){super(attributes,"b");}
[_xfa_object.$pushGlyphs](measure){measure.pushFont({weight:"bold"});super[_xfa_object.$pushGlyphs](measure);measure.popFont();}}
class Body extends XhtmlObject{constructor(attributes){super(attributes,"body");}
[_xfa_object.$toHTML](availableSpace){const res=super[_xfa_object.$toHTML](availableSpace);const{html}=res;if(!html){return _utils.HTMLResult.EMPTY;}
html.name="div";html.attributes.class=["xfaRich"];return res;}}
class Br extends XhtmlObject{constructor(attributes){super(attributes,"br");}
[_xfa_object.$text](){return"\n";}
[_xfa_object.$pushGlyphs](measure){measure.addString("\n");}
[_xfa_object.$toHTML](availableSpace){return _utils.HTMLResult.success({name:"br"});}}
class Html extends XhtmlObject{constructor(attributes){super(attributes,"html");}
[_xfa_object.$toHTML](availableSpace){const children=[];this[_xfa_object.$extra]={children};this[_xfa_object.$childrenToHTML]({});if(children.length===0){return _utils.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[_xfa_object.$content]||""});}
if(children.length===1){const child=children[0];if(child.attributes&&child.attributes.class.includes("xfaRich")){return _utils.HTMLResult.success(child);}}
return _utils.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children});}}
class I extends XhtmlObject{constructor(attributes){super(attributes,"i");}
[_xfa_object.$pushGlyphs](measure){measure.pushFont({posture:"italic"});super[_xfa_object.$pushGlyphs](measure);measure.popFont();}}
class Li extends XhtmlObject{constructor(attributes){super(attributes,"li");}}
class Ol extends XhtmlObject{constructor(attributes){super(attributes,"ol");}}
class P extends XhtmlObject{constructor(attributes){super(attributes,"p");}
[_xfa_object.$pushGlyphs](measure){super[_xfa_object.$pushGlyphs](measure,false);measure.addString("\n");measure.addPara();measure.popFont();}
[_xfa_object.$text](){const siblings=this[_xfa_object.$getParent]()[_xfa_object.$getChildren]();if(siblings.at(-1)===this){return super[_xfa_object.$text]();}
return super[_xfa_object.$text]()+"\n";}}
class Span extends XhtmlObject{constructor(attributes){super(attributes,"span");}}
class Sub extends XhtmlObject{constructor(attributes){super(attributes,"sub");}}
class Sup extends XhtmlObject{constructor(attributes){super(attributes,"sup");}}
class Ul extends XhtmlObject{constructor(attributes){super(attributes,"ul");}}
class XhtmlNamespace{static[_namespaces.$buildXFAObject](name,attributes){if(XhtmlNamespace.hasOwnProperty(name)){return XhtmlNamespace[name](attributes);}
return undefined;}
static a(attributes){return new A(attributes);}
static b(attributes){return new B(attributes);}
static body(attributes){return new Body(attributes);}
static br(attributes){return new Br(attributes);}
static html(attributes){return new Html(attributes);}
static i(attributes){return new I(attributes);}
static li(attributes){return new Li(attributes);}
static ol(attributes){return new Ol(attributes);}
static p(attributes){return new P(attributes);}
static span(attributes){return new Span(attributes);}
static sub(attributes){return new Sub(attributes);}
static sup(attributes){return new Sup(attributes);}
static ul(attributes){return new Ul(attributes);}}
exports.XhtmlNamespace=XhtmlNamespace;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.UnknownNamespace=void 0;var _namespaces=__w_pdfjs_require__(204);var _xfa_object=__w_pdfjs_require__(202);class UnknownNamespace{constructor(nsId){this.namespaceId=nsId;}
[_namespaces.$buildXFAObject](name,attributes){return new _xfa_object.XmlObject(this.namespaceId,name,attributes);}}
exports.UnknownNamespace=UnknownNamespace;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.DatasetReader=void 0;var _util=__w_pdfjs_require__(2);var _core_utils=__w_pdfjs_require__(131);var _xml_parser=__w_pdfjs_require__(191);function decodeString(str){try{return(0,_util.stringToUTF8String)(str);}catch(ex){(0,_util.warn)(`UTF-8 decoding failed: "${ex}".`);return str;}}
class DatasetXMLParser extends _xml_parser.SimpleXMLParser{constructor(options){super(options);this.node=null;}
onEndElement(name){const node=super.onEndElement(name);if(node&&name==="xfa:datasets"){this.node=node;throw new Error("Aborting DatasetXMLParser.");}}}
class DatasetReader{constructor(data){if(data.datasets){this.node=new _xml_parser.SimpleXMLParser({hasAttributes:true}).parseFromString(data.datasets).documentElement;}else{const parser=new DatasetXMLParser({hasAttributes:true});try{parser.parseFromString(data["xdp:xdp"]);}catch(_){}
this.node=parser.node;}}
getValue(path){if(!this.node||!path){return"";}
const node=this.node.searchNode((0,_core_utils.parseXFAPath)(path),0);if(!node){return"";}
const first=node.firstChild;if(first&&first.nodeName==="value"){return node.children.map(child=>decodeString(child.textContent));}
return decodeString(node.textContent);}}
exports.DatasetReader=DatasetReader;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.XRef=void 0;var _util=__w_pdfjs_require__(2);var _primitives=__w_pdfjs_require__(130);var _core_utils=__w_pdfjs_require__(131);var _parser=__w_pdfjs_require__(142);var _base_stream=__w_pdfjs_require__(132);var _crypto=__w_pdfjs_require__(192);class XRef{constructor(stream,pdfManager){this.stream=stream;this.pdfManager=pdfManager;this.entries=[];this.xrefstms=Object.create(null);this._cacheMap=new Map();this._pendingRefs=new _primitives.RefSet();this.stats=new _core_utils.DocStats(pdfManager.msgHandler);this._newRefNum=null;}
getNewRef(){if(this._newRefNum===null){this._newRefNum=this.entries.length||1;}
return _primitives.Ref.get(this._newRefNum++,0);}
resetNewRef(){this._newRefNum=null;}
setStartXRef(startXRef){this.startXRefQueue=[startXRef];}
parse(){let recoveryMode=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;let trailerDict;if(!recoveryMode){trailerDict=this.readXRef();}else{(0,_util.warn)("Indexing all PDF objects");trailerDict=this.indexObjects();}
trailerDict.assignXref(this);this.trailer=trailerDict;let encrypt;try{encrypt=trailerDict.get("Encrypt");}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)(`XRef.parse - Invalid "Encrypt" reference: "${ex}".`);}
if(encrypt instanceof _primitives.Dict){const ids=trailerDict.get("ID");const fileId=ids&&ids.length?ids[0]:"";encrypt.suppressEncryption=true;this.encrypt=new _crypto.CipherTransformFactory(encrypt,fileId,this.pdfManager.password);}
let root;try{root=trailerDict.get("Root");}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)(`XRef.parse - Invalid "Root" reference: "${ex}".`);}
if(root instanceof _primitives.Dict){try{const pages=root.get("Pages");if(pages instanceof _primitives.Dict){this.root=root;return;}}catch(ex){if(ex instanceof _core_utils.MissingDataException){throw ex;}
(0,_util.warn)(`XRef.parse - Invalid "Pages" reference: "${ex}".`);}}
if(!recoveryMode){throw new _core_utils.XRefParseException();}
throw new _util.InvalidPDFException("Invalid Root reference.");}
processXRefTable(parser){if(!("tableState"in this)){this.tableState={entryNum:0,streamPos:parser.lexer.stream.pos,parserBuf1:parser.buf1,parserBuf2:parser.buf2};}
const obj=this.readXRefTable(parser);if(!(0,_primitives.isCmd)(obj,"trailer")){throw new _util.FormatError("Invalid XRef table: could not find trailer dictionary");}
let dict=parser.getObj();if(!(dict instanceof _primitives.Dict)&&dict.dict){dict=dict.dict;}
if(!(dict instanceof _primitives.Dict)){throw new _util.FormatError("Invalid XRef table: could not parse trailer dictionary");}
delete this.tableState;return dict;}
readXRefTable(parser){const stream=parser.lexer.stream;const tableState=this.tableState;stream.pos=tableState.streamPos;parser.buf1=tableState.parserBuf1;parser.buf2=tableState.parserBuf2;let obj;while(true){if(!("firstEntryNum"in tableState)||!("entryCount"in tableState)){if((0,_primitives.isCmd)(obj=parser.getObj(),"trailer")){break;}
tableState.firstEntryNum=obj;tableState.entryCount=parser.getObj();}
let first=tableState.firstEntryNum;const count=tableState.entryCount;if(!Number.isInteger(first)||!Number.isInteger(count)){throw new _util.FormatError("Invalid XRef table: wrong types in subsection header");}
for(let i=tableState.entryNum;i<count;i++){tableState.streamPos=stream.pos;tableState.entryNum=i;tableState.parserBuf1=parser.buf1;tableState.parserBuf2=parser.buf2;const entry={};entry.offset=parser.getObj();entry.gen=parser.getObj();const type=parser.getObj();if(type instanceof _primitives.Cmd){switch(type.cmd){case"f":entry.free=true;break;case"n":entry.uncompressed=true;break;}}
if(!Number.isInteger(entry.offset)||!Number.isInteger(entry.gen)||!(entry.free||entry.uncompressed)){throw new _util.FormatError(`Invalid entry in XRef subsection: ${first}, ${count}`);}
if(i===0&&entry.free&&first===1){first=0;}
if(!this.entries[i+first]){this.entries[i+first]=entry;}}
tableState.entryNum=0;tableState.streamPos=stream.pos;tableState.parserBuf1=parser.buf1;tableState.parserBuf2=parser.buf2;delete tableState.firstEntryNum;delete tableState.entryCount;}
if(this.entries[0]&&!this.entries[0].free){throw new _util.FormatError("Invalid XRef table: unexpected first object");}
return obj;}
processXRefStream(stream){if(!("streamState"in this)){const streamParameters=stream.dict;const byteWidths=streamParameters.get("W");let range=streamParameters.get("Index");if(!range){range=[0,streamParameters.get("Size")];}
this.streamState={entryRanges:range,byteWidths,entryNum:0,streamPos:stream.pos};}
this.readXRefStream(stream);delete this.streamState;return stream.dict;}
readXRefStream(stream){const streamState=this.streamState;stream.pos=streamState.streamPos;const[typeFieldWidth,offsetFieldWidth,generationFieldWidth]=streamState.byteWidths;const entryRanges=streamState.entryRanges;while(entryRanges.length>0){const[first,n]=entryRanges;if(!Number.isInteger(first)||!Number.isInteger(n)){throw new _util.FormatError(`Invalid XRef range fields: ${first}, ${n}`);}
if(!Number.isInteger(typeFieldWidth)||!Number.isInteger(offsetFieldWidth)||!Number.isInteger(generationFieldWidth)){throw new _util.FormatError(`Invalid XRef entry fields length: ${first}, ${n}`);}
for(let i=streamState.entryNum;i<n;++i){streamState.entryNum=i;streamState.streamPos=stream.pos;let type=0,offset=0,generation=0;for(let j=0;j<typeFieldWidth;++j){const typeByte=stream.getByte();if(typeByte===-1){throw new _util.FormatError("Invalid XRef byteWidths 'type'.");}
type=type<<8|typeByte;}
if(typeFieldWidth===0){type=1;}
for(let j=0;j<offsetFieldWidth;++j){const offsetByte=stream.getByte();if(offsetByte===-1){throw new _util.FormatError("Invalid XRef byteWidths 'offset'.");}
offset=offset<<8|offsetByte;}
for(let j=0;j<generationFieldWidth;++j){const generationByte=stream.getByte();if(generationByte===-1){throw new _util.FormatError("Invalid XRef byteWidths 'generation'.");}
generation=generation<<8|generationByte;}
const entry={};entry.offset=offset;entry.gen=generation;switch(type){case 0:entry.free=true;break;case 1:entry.uncompressed=true;break;case 2:break;default:throw new _util.FormatError(`Invalid XRef entry type: ${type}`);}
if(!this.entries[first+i]){this.entries[first+i]=entry;}}
streamState.entryNum=0;streamState.streamPos=stream.pos;entryRanges.splice(0,2);}}
indexObjects(){const TAB=0x9,LF=0xa,CR=0xd,SPACE=0x20;const PERCENT=0x25,LT=0x3c;function readToken(data,offset){let token="",ch=data[offset];while(ch!==LF&&ch!==CR&&ch!==LT){if(++offset>=data.length){break;}
token+=String.fromCharCode(ch);ch=data[offset];}
return token;}
function skipUntil(data,offset,what){const length=what.length,dataLength=data.length;let skipped=0;while(offset<dataLength){let i=0;while(i<length&&data[offset+i]===what[i]){++i;}
if(i>=length){break;}
offset++;skipped++;}
return skipped;}
const objRegExp=/^(\d+)\s+(\d+)\s+obj\b/;const endobjRegExp=/\bendobj[\b\s]$/;const nestedObjRegExp=/\s+(\d+\s+\d+\s+obj[\b\s<])$/;const CHECK_CONTENT_LENGTH=25;const trailerBytes=new Uint8Array([116,114,97,105,108,101,114]);const startxrefBytes=new Uint8Array([115,116,97,114,116,120,114,101,102]);const objBytes=new Uint8Array([111,98,106]);const xrefBytes=new Uint8Array([47,88,82,101,102]);this.entries.length=0;this._cacheMap.clear();const stream=this.stream;stream.pos=0;const buffer=stream.getBytes(),length=buffer.length;let position=stream.start;const trailers=[],xrefStms=[];while(position<length){let ch=buffer[position];if(ch===TAB||ch===LF||ch===CR||ch===SPACE){++position;continue;}
if(ch===PERCENT){do{++position;if(position>=length){break;}
ch=buffer[position];}while(ch!==LF&&ch!==CR);continue;}
const token=readToken(buffer,position);let m;if(token.startsWith("xref")&&(token.length===4||/\s/.test(token[4]))){position+=skipUntil(buffer,position,trailerBytes);trailers.push(position);position+=skipUntil(buffer,position,startxrefBytes);}else if(m=objRegExp.exec(token)){const num=m[1]|0,gen=m[2]|0;let contentLength,startPos=position+token.length,updateEntries=false;if(!this.entries[num]){updateEntries=true;}else if(this.entries[num].gen===gen){try{const parser=new _parser.Parser({lexer:new _parser.Lexer(stream.makeSubStream(startPos))});parser.getObj();updateEntries=true;}catch(ex){if(ex instanceof _core_utils.ParserEOFException){(0,_util.warn)(`indexObjects -- checking object (${token}): "${ex}".`);}else{updateEntries=true;}}}
if(updateEntries){this.entries[num]={offset:position-stream.start,gen,uncompressed:true};}
while(startPos<buffer.length){const endPos=startPos+skipUntil(buffer,startPos,objBytes)+4;contentLength=endPos-position;const checkPos=Math.max(endPos-CHECK_CONTENT_LENGTH,startPos);const tokenStr=(0,_util.bytesToString)(buffer.subarray(checkPos,endPos));if(endobjRegExp.test(tokenStr)){break;}else{const objToken=nestedObjRegExp.exec(tokenStr);if(objToken&&objToken[1]){(0,_util.warn)('indexObjects: Found new "obj" inside of another "obj", '+'caused by missing "endobj" -- trying to recover.');contentLength-=objToken[1].length;break;}}
startPos=endPos;}
const content=buffer.subarray(position,position+contentLength);const xrefTagOffset=skipUntil(content,0,xrefBytes);if(xrefTagOffset<contentLength&&content[xrefTagOffset+5]<64){xrefStms.push(position-stream.start);this.xrefstms[position-stream.start]=1;}
position+=contentLength;}else if(token.startsWith("trailer")&&(token.length===7||/\s/.test(token[7]))){trailers.push(position);position+=skipUntil(buffer,position,startxrefBytes);}else{position+=token.length+1;}}
for(let i=0,ii=xrefStms.length;i<ii;++i){this.startXRefQueue.push(xrefStms[i]);this.readXRef(true);}
let trailerDict;for(let i=0,ii=trailers.length;i<ii;++i){stream.pos=trailers[i];const parser=new _parser.Parser({lexer:new _parser.Lexer(stream),xref:this,allowStreams:true,recoveryMode:true});const obj=parser.getObj();if(!(0,_primitives.isCmd)(obj,"trailer")){continue;}
const dict=parser.getObj();if(!(dict instanceof _primitives.Dict)){continue;}
try{const rootDict=dict.get("Root");if(!(rootDict instanceof _primitives.Dict)){continue;}
const pagesDict=rootDict.get("Pages");if(!(pagesDict instanceof _primitives.Dict)){continue;}
const pagesCount=pagesDict.get("Count");if(!Number.isInteger(pagesCount)){continue;}}catch(ex){continue;}
if(dict.has("ID")){return dict;}
trailerDict=dict;}
if(trailerDict){return trailerDict;}
if(this.topDict){return this.topDict;}
throw new _util.InvalidPDFException("Invalid PDF structure.");}
readXRef(){let recoveryMode=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;const stream=this.stream;const startXRefParsedCache=new Set();try{while(this.startXRefQueue.length){const startXRef=this.startXRefQueue[0];if(startXRefParsedCache.has(startXRef)){(0,_util.warn)("readXRef - skipping XRef table since it was already parsed.");this.startXRefQueue.shift();continue;}
startXRefParsedCache.add(startXRef);stream.pos=startXRef+stream.start;const parser=new _parser.Parser({lexer:new _parser.Lexer(stream),xref:this,allowStreams:true});let obj=parser.getObj();let dict;if((0,_primitives.isCmd)(obj,"xref")){dict=this.processXRefTable(parser);if(!this.topDict){this.topDict=dict;}
obj=dict.get("XRefStm");if(Number.isInteger(obj)){const pos=obj;if(!(pos in this.xrefstms)){this.xrefstms[pos]=1;this.startXRefQueue.push(pos);}}}else if(Number.isInteger(obj)){if(!Number.isInteger(parser.getObj())||!(0,_primitives.isCmd)(parser.getObj(),"obj")||!((obj=parser.getObj())instanceof _base_stream.BaseStream)){throw new _util.FormatError("Invalid XRef stream");}
dict=this.processXRefStream(obj);if(!this.topDict){this.topDict=dict;}
if(!dict){throw new _util.FormatError("Failed to read XRef stream");}}else{throw new _util.FormatError("Invalid XRef stream header");}
obj=dict.get("Prev");if(Number.isInteger(obj)){this.startXRefQueue.push(obj);}else if(obj instanceof _primitives.Ref){this.startXRefQueue.push(obj.num);}
this.startXRefQueue.shift();}
return this.topDict;}catch(e){if(e instanceof _core_utils.MissingDataException){throw e;}
(0,_util.info)("(while reading XRef): "+e);this.startXRefQueue.shift();}
if(recoveryMode){return undefined;}
throw new _core_utils.XRefParseException();}
getEntry(i){const xrefEntry=this.entries[i];if(xrefEntry&&!xrefEntry.free&&xrefEntry.offset){return xrefEntry;}
return null;}
fetchIfRef(obj){let suppressEncryption=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(obj instanceof _primitives.Ref){return this.fetch(obj,suppressEncryption);}
return obj;}
fetch(ref){let suppressEncryption=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!(ref instanceof _primitives.Ref)){throw new Error("ref object is not a reference");}
const num=ref.num;const cacheEntry=this._cacheMap.get(num);if(cacheEntry!==undefined){if(cacheEntry instanceof _primitives.Dict&&!cacheEntry.objId){cacheEntry.objId=ref.toString();}
return cacheEntry;}
let xrefEntry=this.getEntry(num);if(xrefEntry===null){this._cacheMap.set(num,xrefEntry);return xrefEntry;}
if(this._pendingRefs.has(ref)){this._pendingRefs.remove(ref);(0,_util.warn)(`Ignoring circular reference: ${ref}.`);return _primitives.CIRCULAR_REF;}
this._pendingRefs.put(ref);try{if(xrefEntry.uncompressed){xrefEntry=this.fetchUncompressed(ref,xrefEntry,suppressEncryption);}else{xrefEntry=this.fetchCompressed(ref,xrefEntry,suppressEncryption);}
this._pendingRefs.remove(ref);}catch(ex){this._pendingRefs.remove(ref);throw ex;}
if(xrefEntry instanceof _primitives.Dict){xrefEntry.objId=ref.toString();}else if(xrefEntry instanceof _base_stream.BaseStream){xrefEntry.dict.objId=ref.toString();}
return xrefEntry;}
fetchUncompressed(ref,xrefEntry){let suppressEncryption=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;const gen=ref.gen;let num=ref.num;if(xrefEntry.gen!==gen){throw new _core_utils.XRefEntryException(`Inconsistent generation in XRef: ${ref}`);}
const stream=this.stream.makeSubStream(xrefEntry.offset+this.stream.start);const parser=new _parser.Parser({lexer:new _parser.Lexer(stream),xref:this,allowStreams:true});const obj1=parser.getObj();const obj2=parser.getObj();const obj3=parser.getObj();if(obj1!==num||obj2!==gen||!(obj3 instanceof _primitives.Cmd)){throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);}
if(obj3.cmd!=="obj"){if(obj3.cmd.startsWith("obj")){num=parseInt(obj3.cmd.substring(3),10);if(!Number.isNaN(num)){return num;}}
throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);}
if(this.encrypt&&!suppressEncryption){xrefEntry=parser.getObj(this.encrypt.createCipherTransform(num,gen));}else{xrefEntry=parser.getObj();}
if(!(xrefEntry instanceof _base_stream.BaseStream)){this._cacheMap.set(num,xrefEntry);}
return xrefEntry;}
fetchCompressed(ref,xrefEntry){let suppressEncryption=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;const tableOffset=xrefEntry.offset;const stream=this.fetch(_primitives.Ref.get(tableOffset,0));if(!(stream instanceof _base_stream.BaseStream)){throw new _util.FormatError("bad ObjStm stream");}
const first=stream.dict.get("First");const n=stream.dict.get("N");if(!Number.isInteger(first)||!Number.isInteger(n)){throw new _util.FormatError("invalid first and n parameters for ObjStm stream");}
let parser=new _parser.Parser({lexer:new _parser.Lexer(stream),xref:this,allowStreams:true});const nums=new Array(n);const offsets=new Array(n);for(let i=0;i<n;++i){const num=parser.getObj();if(!Number.isInteger(num)){throw new _util.FormatError(`invalid object number in the ObjStm stream: ${num}`);}
const offset=parser.getObj();if(!Number.isInteger(offset)){throw new _util.FormatError(`invalid object offset in the ObjStm stream: ${offset}`);}
nums[i]=num;offsets[i]=offset;}
const start=(stream.start||0)+first;const entries=new Array(n);for(let i=0;i<n;++i){const length=i<n-1?offsets[i+1]-offsets[i]:undefined;if(length<0){throw new _util.FormatError("Invalid offset in the ObjStm stream.");}
parser=new _parser.Parser({lexer:new _parser.Lexer(stream.makeSubStream(start+offsets[i],length,stream.dict)),xref:this,allowStreams:true});const obj=parser.getObj();entries[i]=obj;if(obj instanceof _base_stream.BaseStream){continue;}
const num=nums[i],entry=this.entries[num];if(entry&&entry.offset===tableOffset&&entry.gen===i){this._cacheMap.set(num,obj);}}
xrefEntry=entries[xrefEntry.gen];if(xrefEntry===undefined){throw new _core_utils.XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);}
return xrefEntry;}
async fetchIfRefAsync(obj,suppressEncryption){if(obj instanceof _primitives.Ref){return this.fetchAsync(obj,suppressEncryption);}
return obj;}
async fetchAsync(ref,suppressEncryption){try{return this.fetch(ref,suppressEncryption);}catch(ex){if(!(ex instanceof _core_utils.MissingDataException)){throw ex;}
await this.pdfManager.requestRange(ex.begin,ex.end);return this.fetchAsync(ref,suppressEncryption);}}
getCatalogObj(){return this.root;}}
exports.XRef=XRef;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.MessageHandler=void 0;var _util=__w_pdfjs_require__(2);const CallbackKind={UNKNOWN:0,DATA:1,ERROR:2};const StreamKind={UNKNOWN:0,CANCEL:1,CANCEL_COMPLETE:2,CLOSE:3,ENQUEUE:4,ERROR:5,PULL:6,PULL_COMPLETE:7,START_COMPLETE:8};function wrapReason(reason){if(!(reason instanceof Error||typeof reason==="object"&&reason!==null)){(0,_util.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');}
switch(reason.name){case"AbortException":return new _util.AbortException(reason.message);case"MissingPDFException":return new _util.MissingPDFException(reason.message);case"PasswordException":return new _util.PasswordException(reason.message,reason.code);case"UnexpectedResponseException":return new _util.UnexpectedResponseException(reason.message,reason.status);case"UnknownErrorException":return new _util.UnknownErrorException(reason.message,reason.details);default:return new _util.UnknownErrorException(reason.message,reason.toString());}}
class MessageHandler{constructor(sourceName,targetName,comObj){this.sourceName=sourceName;this.targetName=targetName;this.comObj=comObj;this.callbackId=1;this.streamId=1;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);this._onComObjOnMessage=event=>{const data=event.data;if(data.targetName!==this.sourceName){return;}
if(data.stream){this._processStreamMessage(data);return;}
if(data.callback){const callbackId=data.callbackId;const capability=this.callbackCapabilities[callbackId];if(!capability){throw new Error(`Cannot resolve callback ${callbackId}`);}
delete this.callbackCapabilities[callbackId];if(data.callback===CallbackKind.DATA){capability.resolve(data.data);}else if(data.callback===CallbackKind.ERROR){capability.reject(wrapReason(data.reason));}else{throw new Error("Unexpected callback case");}
return;}
const action=this.actionHandler[data.action];if(!action){throw new Error(`Unknown action from worker: ${data.action}`);}
if(data.callbackId){const cbSourceName=this.sourceName;const cbTargetName=data.sourceName;new Promise(function(resolve){resolve(action(data.data));}).then(function(result){comObj.postMessage({sourceName:cbSourceName,targetName:cbTargetName,callback:CallbackKind.DATA,callbackId:data.callbackId,data:result});},function(reason){comObj.postMessage({sourceName:cbSourceName,targetName:cbTargetName,callback:CallbackKind.ERROR,callbackId:data.callbackId,reason:wrapReason(reason)});});return;}
if(data.streamId){this._createStreamSink(data);return;}
action(data.data);};comObj.addEventListener("message",this._onComObjOnMessage);}
on(actionName,handler){const ah=this.actionHandler;if(ah[actionName]){throw new Error(`There is already an actionName called "${actionName}"`);}
ah[actionName]=handler;}
send(actionName,data,transfers){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:actionName,data},transfers);}
sendWithPromise(actionName,data,transfers){const callbackId=this.callbackId++;const capability=(0,_util.createPromiseCapability)();this.callbackCapabilities[callbackId]=capability;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:actionName,callbackId,data},transfers);}catch(ex){capability.reject(ex);}
return capability.promise;}
sendWithStream(actionName,data,queueingStrategy,transfers){const streamId=this.streamId++,sourceName=this.sourceName,targetName=this.targetName,comObj=this.comObj;return new ReadableStream({start:controller=>{const startCapability=(0,_util.createPromiseCapability)();this.streamControllers[streamId]={controller,startCall:startCapability,pullCall:null,cancelCall:null,isClosed:false};comObj.postMessage({sourceName,targetName,action:actionName,streamId,data,desiredSize:controller.desiredSize},transfers);return startCapability.promise;},pull:controller=>{const pullCapability=(0,_util.createPromiseCapability)();this.streamControllers[streamId].pullCall=pullCapability;comObj.postMessage({sourceName,targetName,stream:StreamKind.PULL,streamId,desiredSize:controller.desiredSize});return pullCapability.promise;},cancel:reason=>{(0,_util.assert)(reason instanceof Error,"cancel must have a valid reason");const cancelCapability=(0,_util.createPromiseCapability)();this.streamControllers[streamId].cancelCall=cancelCapability;this.streamControllers[streamId].isClosed=true;comObj.postMessage({sourceName,targetName,stream:StreamKind.CANCEL,streamId,reason:wrapReason(reason)});return cancelCapability.promise;}},queueingStrategy);}
_createStreamSink(data){const streamId=data.streamId,sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj;const self=this,action=this.actionHandler[data.action];const streamSink={enqueue(chunk){let size=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;let transfers=arguments.length>2?arguments[2]:undefined;if(this.isCancelled){return;}
const lastDesiredSize=this.desiredSize;this.desiredSize-=size;if(lastDesiredSize>0&&this.desiredSize<=0){this.sinkCapability=(0,_util.createPromiseCapability)();this.ready=this.sinkCapability.promise;}
comObj.postMessage({sourceName,targetName,stream:StreamKind.ENQUEUE,streamId,chunk},transfers);},close(){if(this.isCancelled){return;}
this.isCancelled=true;comObj.postMessage({sourceName,targetName,stream:StreamKind.CLOSE,streamId});delete self.streamSinks[streamId];},error(reason){(0,_util.assert)(reason instanceof Error,"error must have a valid reason");if(this.isCancelled){return;}
this.isCancelled=true;comObj.postMessage({sourceName,targetName,stream:StreamKind.ERROR,streamId,reason:wrapReason(reason)});},sinkCapability:(0,_util.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:false,desiredSize:data.desiredSize,ready:null};streamSink.sinkCapability.resolve();streamSink.ready=streamSink.sinkCapability.promise;this.streamSinks[streamId]=streamSink;new Promise(function(resolve){resolve(action(data.data,streamSink));}).then(function(){comObj.postMessage({sourceName,targetName,stream:StreamKind.START_COMPLETE,streamId,success:true});},function(reason){comObj.postMessage({sourceName,targetName,stream:StreamKind.START_COMPLETE,streamId,reason:wrapReason(reason)});});}
_processStreamMessage(data){const streamId=data.streamId,sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj;const streamController=this.streamControllers[streamId],streamSink=this.streamSinks[streamId];switch(data.stream){case StreamKind.START_COMPLETE:if(data.success){streamController.startCall.resolve();}else{streamController.startCall.reject(wrapReason(data.reason));}
break;case StreamKind.PULL_COMPLETE:if(data.success){streamController.pullCall.resolve();}else{streamController.pullCall.reject(wrapReason(data.reason));}
break;case StreamKind.PULL:if(!streamSink){comObj.postMessage({sourceName,targetName,stream:StreamKind.PULL_COMPLETE,streamId,success:true});break;}
if(streamSink.desiredSize<=0&&data.desiredSize>0){streamSink.sinkCapability.resolve();}
streamSink.desiredSize=data.desiredSize;new Promise(function(resolve){resolve(streamSink.onPull&&streamSink.onPull());}).then(function(){comObj.postMessage({sourceName,targetName,stream:StreamKind.PULL_COMPLETE,streamId,success:true});},function(reason){comObj.postMessage({sourceName,targetName,stream:StreamKind.PULL_COMPLETE,streamId,reason:wrapReason(reason)});});break;case StreamKind.ENQUEUE:(0,_util.assert)(streamController,"enqueue should have stream controller");if(streamController.isClosed){break;}
streamController.controller.enqueue(data.chunk);break;case StreamKind.CLOSE:(0,_util.assert)(streamController,"close should have stream controller");if(streamController.isClosed){break;}
streamController.isClosed=true;streamController.controller.close();this._deleteStreamController(streamController,streamId);break;case StreamKind.ERROR:(0,_util.assert)(streamController,"error should have stream controller");streamController.controller.error(wrapReason(data.reason));this._deleteStreamController(streamController,streamId);break;case StreamKind.CANCEL_COMPLETE:if(data.success){streamController.cancelCall.resolve();}else{streamController.cancelCall.reject(wrapReason(data.reason));}
this._deleteStreamController(streamController,streamId);break;case StreamKind.CANCEL:if(!streamSink){break;}
new Promise(function(resolve){resolve(streamSink.onCancel&&streamSink.onCancel(wrapReason(data.reason)));}).then(function(){comObj.postMessage({sourceName,targetName,stream:StreamKind.CANCEL_COMPLETE,streamId,success:true});},function(reason){comObj.postMessage({sourceName,targetName,stream:StreamKind.CANCEL_COMPLETE,streamId,reason:wrapReason(reason)});});streamSink.sinkCapability.reject(wrapReason(data.reason));streamSink.isCancelled=true;delete this.streamSinks[streamId];break;default:throw new Error("Unexpected stream case");}}
async _deleteStreamController(streamController,streamId){await Promise.allSettled([streamController.startCall&&streamController.startCall.promise,streamController.pullCall&&streamController.pullCall.promise,streamController.cancelCall&&streamController.cancelCall.promise]);delete this.streamControllers[streamId];}
destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage);}}
exports.MessageHandler=MessageHandler;}),((__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",({value:true}));exports.PDFWorkerStream=void 0;var _util=__w_pdfjs_require__(2);class PDFWorkerStream{constructor(msgHandler){this._msgHandler=msgHandler;this._contentLength=null;this._fullRequestReader=null;this._rangeRequestReaders=[];}
getFullReader(){(0,_util.assert)(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once.");this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler);return this._fullRequestReader;}
getRangeReader(begin,end){const reader=new PDFWorkerStreamRangeReader(begin,end,this._msgHandler);this._rangeRequestReaders.push(reader);return reader;}
cancelAllRequests(reason){if(this._fullRequestReader){this._fullRequestReader.cancel(reason);}
for(const reader of this._rangeRequestReaders.slice(0)){reader.cancel(reason);}}}
exports.PDFWorkerStream=PDFWorkerStream;class PDFWorkerStreamReader{constructor(msgHandler){this._msgHandler=msgHandler;this.onProgress=null;this._contentLength=null;this._isRangeSupported=false;this._isStreamingSupported=false;const readableStream=this._msgHandler.sendWithStream("GetReader");this._reader=readableStream.getReader();this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then(data=>{this._isStreamingSupported=data.isStreamingSupported;this._isRangeSupported=data.isRangeSupported;this._contentLength=data.contentLength;});}
get headersReady(){return this._headersReady;}
get contentLength(){return this._contentLength;}
get isStreamingSupported(){return this._isStreamingSupported;}
get isRangeSupported(){return this._isRangeSupported;}
async read(){const{value,done}=await this._reader.read();if(done){return{value:undefined,done:true};}
return{value:value.buffer,done:false};}
cancel(reason){this._reader.cancel(reason);}}
class PDFWorkerStreamRangeReader{constructor(begin,end,msgHandler){this._msgHandler=msgHandler;this.onProgress=null;const readableStream=this._msgHandler.sendWithStream("GetRangeReader",{begin,end});this._reader=readableStream.getReader();}
get isStreamingSupported(){return false;}
async read(){const{value,done}=await this._reader.read();if(done){return{value:undefined,done:true};}
return{value:value.buffer,done:false};}
cancel(reason){this._reader.cancel(reason);}}})]);var __webpack_module_cache__={};function __w_pdfjs_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(cachedModule!==undefined){return cachedModule.exports;}
var module=__webpack_module_cache__[moduleId]={exports:{}};__webpack_modules__[moduleId](module,module.exports,__w_pdfjs_require__);return module.exports;}
(()=>{__w_pdfjs_require__.d=(exports,definition)=>{for(var key in definition){if(__w_pdfjs_require__.o(definition,key)&&!__w_pdfjs_require__.o(exports,key)){Object.defineProperty(exports,key,{enumerable:true,get:definition[key]});}}};})();(()=>{__w_pdfjs_require__.o=(obj,prop)=>(Object.prototype.hasOwnProperty.call(obj,prop))})();(()=>{__w_pdfjs_require__.r=(exports)=>{if(typeof Symbol!=='undefined'&&Symbol.toStringTag){Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});}
Object.defineProperty(exports,'__esModule',{value:true});};})();var __webpack_exports__={};(()=>{"use strict";var exports=__webpack_exports__;Object.defineProperty(exports,"__esModule",({value:true}));Object.defineProperty(exports,"WorkerMessageHandler",({enumerable:true,get:function(){return _worker.WorkerMessageHandler;}}));var _worker=__w_pdfjs_require__(1);const pdfjsVersion='2.16.105';const pdfjsBuild='172ccdbe5';})();return __webpack_exports__;})();});;

/* /website_slides/static/lib/pdfslidesviewer/PDFSlidesViewer.js */
var PDFSlidesViewer=(function(){function PDFSlidesViewer(pdf_url,$canvas){this.pdf=null;this.pdf_url=pdf_url;this.pdf_page_total=0;this.pdf_page_current=1;this.pdf_zoom=1;this.pageRendering=false;this.pageNumPending=null;this.canvas=$canvas;this.canvas_context=$canvas.getContext('2d');}
PDFSlidesViewer.prototype.loadDocument=async function(){const file_content=await window.pdfjsLib.getDocument(this.pdf_url).promise;this.pdf=file_content;this.pdf_page_total=file_content.numPages;return file_content;};PDFSlidesViewer.prototype.renderPage=function(page_number){var self=this;this.pageRendering=true;return this.pdf.getPage(page_number).then(function(page){var scale=self.getScaleToFit(page)*self.pdf_zoom;var viewport=page.getViewport({scale:scale});self.canvas.height=viewport.height;self.canvas.width=viewport.width;var renderContext={canvasContext:self.canvas_context,viewport:viewport};var renderTask=page.render(renderContext);return renderTask.promise.then(function(){self.pageRendering=false;if(self.pdf_zoom===1&&scale>self.getScaleToFit(page)){return self.renderPage(page_number);}
if(self.pageNumPending!==null){self.renderPage(self.pageNumPending);self.pageNumPending=null;}
self.pdf_page_current=page_number;return page_number;});});};PDFSlidesViewer.prototype.queueRenderPage=function(num){if(this.pageRendering){this.pageNumPending=num;return Promise.resolve(num);}else{return this.renderPage(num);}}
PDFSlidesViewer.prototype.previousPage=function(){if(this.pdf_page_current<=1){return Promise.resolve(false);}
this.pdf_page_current--;return this.queueRenderPage(this.pdf_page_current);};PDFSlidesViewer.prototype.nextPage=function(){if(this.pdf_page_current>=this.pdf_page_total){return Promise.resolve(false);}
this.pdf_page_current++;return this.queueRenderPage(this.pdf_page_current);};PDFSlidesViewer.prototype.getScaleToFit=function(page){var maxWidth=this.canvas.parentNode.clientWidth;var maxHeight=this.canvas.parentNode.clientHeight;var hScale=maxWidth/page.view[2];var vScale=maxHeight/page.view[3];return Math.min(hScale,vScale);};PDFSlidesViewer.prototype.changePage=function(num){if(1<=num<=this.pdf_page_total){this.pdf_page_current=num;return this.queueRenderPage(num);}
return Promise.resolve(false);}
PDFSlidesViewer.prototype.firstPage=function(){this.pdf_page_current=1;return this.queueRenderPage(1);}
PDFSlidesViewer.prototype.lastPage=function(){this.pdf_page_current=this.pdf_page_total;return this.queueRenderPage(this.pdf_page_total);}
PDFSlidesViewer.prototype.toggleFullScreenFooter=function(){if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement){var $navBarFooter=$('div#PDFViewer div.oe_slides_panel_footer').parent();$navBarFooter.toggleClass('oe_show_footer');$navBarFooter.toggle();}}
PDFSlidesViewer.prototype.toggleFullScreen=function(){var el=this.canvas.parentNode.parentNode;var isFullscreenAvailable=document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled||document.msFullscreenEnabled||false;if(isFullscreenAvailable){var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;if(fullscreenElement){if(document.exitFullscreen){document.exitFullscreen();}else if(document.mozCancelFullScreen){document.mozCancelFullScreen();}else if(document.webkitExitFullscreen){document.webkitExitFullscreen();}else if(document.webkitCancelFullScreen){document.webkitCancelFullScreen();}else if(document.msExitFullscreen){document.msExitFullscreen();}}else{if(el.requestFullscreen){el.requestFullscreen();}else if(el.mozRequestFullScreen){el.mozRequestFullScreen();}else if(el.msRequestFullscreen){el.msRequestFullscreen();}else if(el.webkitRequestFullscreen){if(navigator.userAgent.indexOf('Safari')!=-1&&navigator.userAgent.indexOf('Chrome')==-1){el.webkitRequestFullscreen();}else{el.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);}}else if(el.webkitRequestFullScreen){if(navigator.userAgent.indexOf('Safari')!=-1&&navigator.userAgent.indexOf('Chrome')==-1){el.webkitRequestFullScreen();}else{el.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);}}}}else{console.error("ERROR : full screen not supported by web browser");}}
return PDFSlidesViewer;})();;

/* /website_slides/static/src/js/slides_embed.js */
$(function(){function debounce(func,timeout=300){let timer;return(...args)=>{clearTimeout(timer);timer=setTimeout(()=>{func.apply(this,args);},timeout);};}
if($('#PDFViewer')&&$('#PDFViewerCanvas')){var MIN_ZOOM=1,MAX_ZOOM=10,ZOOM_INCREMENT=.5;var EmbeddedViewer=function($viewer){var self=this;this.viewer=$viewer;this.slide_url=$viewer.find('#PDFSlideViewer').data('slideurl');this.slide_id=$viewer.find('#PDFSlideViewer').data('slideid');this.defaultpage=parseInt($viewer.find('#PDFSlideViewer').data('defaultpage'));this.canvas=$viewer.find('canvas')[0];this.pdf_viewer=new PDFSlidesViewer(this.slide_url,this.canvas);this.hasSuggestions=!!this.$(".oe_slides_suggestion_media").length;this.pdf_viewer.loadDocument().then(function(){self.on_loaded_file();});};EmbeddedViewer.prototype.__proto__={$:function(selector){return this.viewer.find($(selector));},on_loaded_file:function(){this.$('canvas').show();this.$('#page_count').text(this.pdf_viewer.pdf_page_total);this.$('#PDFViewerLoader').hide();var initpage=this.defaultpage;var pageNum=(initpage>0&&initpage<=this.pdf_viewer.pdf_page_total)?initpage:1;this.render_page(pageNum);},on_rendered_page:function(pageNumber){if(pageNumber){this.$('#page_number').val(pageNumber);this.navUpdate(pageNumber);}},on_resize:function(){this.render_page(this.pdf_viewer.pdf_page_current);},render_page:function(pageNumber){this.pdf_viewer.queueRenderPage(pageNumber).then(this.on_rendered_page.bind(this));this.navUpdate(pageNumber);},change_page:function(){var pageAsked=parseInt(this.$('#page_number').val(),10);if(1<=pageAsked&&pageAsked<=this.pdf_viewer.pdf_page_total){this.pdf_viewer.changePage(pageAsked).then(this.on_rendered_page.bind(this));this.navUpdate(pageAsked);}else{this.$('#page_number').val(this.pdf_viewer.pdf_page_current);}},next:function(){if(this.pdf_viewer.pdf_page_current>=this.pdf_viewer.pdf_page_total+this.hasSuggestions){return;}
var self=this;this.pdf_viewer.nextPage().then(function(pageNum){if(pageNum){self.on_rendered_page(pageNum);}else{if(self.pdf_viewer.pdf){self.display_suggested_slides();}}});},previous:function(){const slideSuggestOverlay=this.$("#slide_suggest");if(!slideSuggestOverlay.hasClass('d-none')){slideSuggestOverlay.addClass('d-none');this.$("#next").removeClass("disabled");if(this.pdf_viewer.pdf_page_total<=1){this.$("#previous, #first").addClass("disabled");}
return;}
var self=this;this.pdf_viewer.previousPage().then(function(pageNum){if(pageNum){self.on_rendered_page(pageNum);}
slideSuggestOverlay.addClass('d-none');});},first:function(){var self=this;this.pdf_viewer.firstPage().then(function(pageNum){self.on_rendered_page(pageNum);self.$("#slide_suggest").addClass('d-none');});},last:function(){var self=this;this.pdf_viewer.lastPage().then(function(pageNum){self.on_rendered_page(pageNum);self.$("#slide_suggest").addClass('d-none');});},zoomIn:function(){if(this.pdf_viewer.pdf_zoom<MAX_ZOOM){this.pdf_viewer.pdf_zoom+=ZOOM_INCREMENT;this.render_page(this.pdf_viewer.pdf_page_current);}},zoomOut:function(){if(this.pdf_viewer.pdf_zoom>MIN_ZOOM){this.pdf_viewer.pdf_zoom-=ZOOM_INCREMENT;this.render_page(this.pdf_viewer.pdf_page_current);}},navUpdate:function(pageNum){const pagesCount=this.pdf_viewer.pdf_page_total+this.hasSuggestions;this.$("#first").toggleClass("disabled",pagesCount<2||pageNum<2);this.$("#last").toggleClass("disabled",pagesCount<2||pageNum>=this.pdf_viewer.pdf_page_total);this.$("#next").toggleClass("disabled",pageNum>=pagesCount);this.$("#previous").toggleClass("disabled",pageNum<=1);this.$("#zoomout").toggleClass("disabled",this.pdf_viewer.pdf_zoom<=MIN_ZOOM);this.$("#zoomin").toggleClass("disabled",this.pdf_viewer.pdf_zoom>=MAX_ZOOM);},fullscreen:function(){this.pdf_viewer.toggleFullScreen();},fullScreenFooter:function(ev){if(ev.target.id==="PDFViewerCanvas"){this.pdf_viewer.toggleFullScreenFooter();}},display_suggested_slides:function(){this.$("#slide_suggest").removeClass("d-none");this.$("#next, #last").addClass("disabled");this.$("#previous, #first").removeClass("disabled");},};var embeddedViewer=new EmbeddedViewer($('#PDFViewer'));$('#previous').on('click',function(){embeddedViewer.previous();});$('#next').on('click',function(){embeddedViewer.next();});$('#first').on('click',function(){embeddedViewer.first();});$('#last').on('click',function(){embeddedViewer.last();});$('#zoomin').on('click',function(){embeddedViewer.zoomIn();});$('#zoomout').on('click',function(){embeddedViewer.zoomOut();});$('#page_number').on('change',function(){embeddedViewer.change_page();});$('#fullscreen').on('click',function(){embeddedViewer.fullscreen();});$('#PDFViewer').on('click',function(ev){embeddedViewer.fullScreenFooter(ev);});$('#PDFViewer').on('wheel',function(ev){if(ev.metaKey||ev.ctrlKey){if(ev.originalEvent.deltaY>0){embeddedViewer.zoomOut();}else if(ev.originalEvent.deltaY<0){embeddedViewer.zoomIn();}
return false;}});$(window).on("resize",debounce(()=>{embeddedViewer.on_resize();},500));$(document).keydown(function(ev){if(ev.key==="ArrowLeft"||ev.key==="ArrowUp"){embeddedViewer.previous();}
if(ev.key==="ArrowRight"||ev.key==="ArrowDown"){embeddedViewer.next();}});$('.oe_slide_js_embed_option_link').on('click',function(ev){ev.preventDefault();var toggleDiv=$(this).data('slide-option-id');$('.oe_slide_embed_option').not(toggleDiv).each(function(){$(this).hide();});$(toggleDiv).slideToggle();});$('.oe_slides_suggestion_media').hover(function(){$(this).find('.oe_slides_suggestion_caption').stop().slideDown(250);},function(){$(this).find('.oe_slides_suggestion_caption').stop().slideUp(250);});$('.oe_slide_js_embed_code_widget input').on('change',function(){var page=parseInt($(this).val());if(!(page>0&&page<=embeddedViewer.pdf_viewer.pdf_page_total)){page=1;}
var actualCode=embeddedViewer.$('.slide_embed_code').val();var newCode=actualCode.replace(/(page=).*?([^\d]+)/,'$1'+page+'$2');embeddedViewer.$('.slide_embed_code').val(newCode);});$('.oe_slide_js_share_email button').on('click',function(){var widget=$('.oe_slide_js_share_email');var input=widget.find('input');var slideID=widget.find('button').data('slide-id');if(input.val()){widget.removeClass('o_has_error').find('.form-control, .form-select').removeClass('is-invalid');$.ajax({type:"POST",dataType:'json',url:'/slides/slide/send_share_email',contentType:"application/json; charset=utf-8",data:JSON.stringify({'jsonrpc':"2.0",'method':"call","params":{'slide_id':slideID,'emails':input.val()}}),success:function(action){if(action.result){widget.find('.alert-info').removeClass('d-none');widget.find('.input-group').addClass('d-none');}else{widget.find('.alert-warning').removeClass('d-none');widget.find('.input-group').addClass('d-none');widget.addClass('o_has_error').find('.form-control, .form-select').addClass('is-invalid');input.focus();}},});}else{widget.find('.alert-warning').removeClass('d-none');widget.find('.input-group').addClass('d-none');widget.addClass('o_has_error').find('.form-control, .form-select').addClass('is-invalid');input.focus();}});}});