(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();})(this,function(){return(function(modules){var installedModules={};function __w_pdfjs_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports;} var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__w_pdfjs_require__);module.l=true;return module.exports;} __w_pdfjs_require__.m=modules;__w_pdfjs_require__.c=installedModules;__w_pdfjs_require__.d=function(exports,name,getter){if(!__w_pdfjs_require__.o(exports,name)){Object.defineProperty(exports,name,{enumerable:true,get:getter});}};__w_pdfjs_require__.r=function(exports){if(typeof Symbol!=='undefined'&&Symbol.toStringTag){Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});} Object.defineProperty(exports,'__esModule',{value:true});};__w_pdfjs_require__.t=function(value,mode){if(mode&1)value=__w_pdfjs_require__(value);if(mode&8)return value;if((mode&4)&&typeof value==='object'&&value&&value.__esModule)return value;var ns=Object.create(null);__w_pdfjs_require__.r(ns);Object.defineProperty(ns,'default',{enumerable:true,value:value});if(mode&2&&typeof value!='string')for(var key in value)__w_pdfjs_require__.d(ns,key,function(key){return value[key];}.bind(null,key));return ns;};__w_pdfjs_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module['default'];}:function getModuleExports(){return module;};__w_pdfjs_require__.d(getter,'a',getter);return getter;};__w_pdfjs_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property);};__w_pdfjs_require__.p="";return __w_pdfjs_require__(__w_pdfjs_require__.s=0);}) ([(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"addLinkAttributes",{enumerable:true,get:function(){return _display_utils.addLinkAttributes;}});Object.defineProperty(exports,"getFilenameFromUrl",{enumerable:true,get:function(){return _display_utils.getFilenameFromUrl;}});Object.defineProperty(exports,"LinkTarget",{enumerable:true,get:function(){return _display_utils.LinkTarget;}});Object.defineProperty(exports,"loadScript",{enumerable:true,get:function(){return _display_utils.loadScript;}});Object.defineProperty(exports,"PDFDateString",{enumerable:true,get:function(){return _display_utils.PDFDateString;}});Object.defineProperty(exports,"RenderingCancelledException",{enumerable:true,get:function(){return _display_utils.RenderingCancelledException;}});Object.defineProperty(exports,"build",{enumerable:true,get:function(){return _api.build;}});Object.defineProperty(exports,"getDocument",{enumerable:true,get:function(){return _api.getDocument;}});Object.defineProperty(exports,"LoopbackPort",{enumerable:true,get:function(){return _api.LoopbackPort;}});Object.defineProperty(exports,"PDFDataRangeTransport",{enumerable:true,get:function(){return _api.PDFDataRangeTransport;}});Object.defineProperty(exports,"PDFWorker",{enumerable:true,get:function(){return _api.PDFWorker;}});Object.defineProperty(exports,"version",{enumerable:true,get:function(){return _api.version;}});Object.defineProperty(exports,"CMapCompressionType",{enumerable:true,get:function(){return _util.CMapCompressionType;}});Object.defineProperty(exports,"createObjectURL",{enumerable:true,get:function(){return _util.createObjectURL;}});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,"InvalidPDFException",{enumerable:true,get:function(){return _util.InvalidPDFException;}});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,"PasswordResponses",{enumerable:true,get:function(){return _util.PasswordResponses;}});Object.defineProperty(exports,"PermissionFlag",{enumerable:true,get:function(){return _util.PermissionFlag;}});Object.defineProperty(exports,"removeNullCharacters",{enumerable:true,get:function(){return _util.removeNullCharacters;}});Object.defineProperty(exports,"shadow",{enumerable:true,get:function(){return _util.shadow;}});Object.defineProperty(exports,"UnexpectedResponseException",{enumerable:true,get:function(){return _util.UnexpectedResponseException;}});Object.defineProperty(exports,"UNSUPPORTED_FEATURES",{enumerable:true,get:function(){return _util.UNSUPPORTED_FEATURES;}});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,"AnnotationLayer",{enumerable:true,get:function(){return _annotation_layer.AnnotationLayer;}});Object.defineProperty(exports,"apiCompatibilityParams",{enumerable:true,get:function(){return _api_compatibility.apiCompatibilityParams;}});Object.defineProperty(exports,"GlobalWorkerOptions",{enumerable:true,get:function(){return _worker_options.GlobalWorkerOptions;}});Object.defineProperty(exports,"renderTextLayer",{enumerable:true,get:function(){return _text_layer.renderTextLayer;}});Object.defineProperty(exports,"SVGGraphics",{enumerable:true,get:function(){return _svg.SVGGraphics;}});var _display_utils=__w_pdfjs_require__(1);var _api=__w_pdfjs_require__(5);var _util=__w_pdfjs_require__(2);var _annotation_layer=__w_pdfjs_require__(19);var _api_compatibility=__w_pdfjs_require__(9);var _worker_options=__w_pdfjs_require__(12);var _text_layer=__w_pdfjs_require__(20);var _svg=__w_pdfjs_require__(21);const pdfjsVersion='2.6.347';const pdfjsBuild='3be9c65f';{const{isNodeJS}=__w_pdfjs_require__(4);if(isNodeJS){const PDFNodeStream=__w_pdfjs_require__(22).PDFNodeStream;(0,_api.setPDFNetworkStreamFactory)(params=>{return new PDFNodeStream(params);});}else{const PDFNetworkStream=__w_pdfjs_require__(25).PDFNetworkStream;let PDFFetchStream;if((0,_display_utils.isFetchSupported)()){PDFFetchStream=__w_pdfjs_require__(26).PDFFetchStream;} (0,_api.setPDFNetworkStreamFactory)(params=>{if(PDFFetchStream&&(0,_display_utils.isValidFetchUrl)(params.url)){return new PDFFetchStream(params);} return new PDFNetworkStream(params);});}}}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.addLinkAttributes=addLinkAttributes;exports.getFilenameFromUrl=getFilenameFromUrl;exports.isFetchSupported=isFetchSupported;exports.isValidFetchUrl=isValidFetchUrl;exports.loadScript=loadScript;exports.deprecated=deprecated;exports.PDFDateString=exports.StatTimer=exports.DOMSVGFactory=exports.DOMCMapReaderFactory=exports.BaseCMapReaderFactory=exports.DOMCanvasFactory=exports.BaseCanvasFactory=exports.DEFAULT_LINK_REL=exports.LinkTarget=exports.RenderingCancelledException=exports.PageViewport=void 0;var _util=__w_pdfjs_require__(2);const DEFAULT_LINK_REL="noopener noreferrer nofollow";exports.DEFAULT_LINK_REL=DEFAULT_LINK_REL;const SVG_NS="http://www.w3.org/2000/svg";class BaseCanvasFactory{constructor(){if(this.constructor===BaseCanvasFactory){(0,_util.unreachable)("Cannot initialize BaseCanvasFactory.");}} create(width,height){(0,_util.unreachable)("Abstract method `create` called.");} 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;}} exports.BaseCanvasFactory=BaseCanvasFactory;class DOMCanvasFactory extends BaseCanvasFactory{constructor({ownerDocument=globalThis.document}={}){super();this._document=ownerDocument;} create(width,height){if(width<=0||height<=0){throw new Error("Invalid canvas size");} const canvas=this._document.createElement("canvas");const context=canvas.getContext("2d");canvas.width=width;canvas.height=height;return{canvas,context};}} exports.DOMCanvasFactory=DOMCanvasFactory;class BaseCMapReaderFactory{constructor({baseUrl=null,isCompressed=false}){if(this.constructor===BaseCMapReaderFactory){(0,_util.unreachable)("Cannot initialize BaseCMapReaderFactory.");} this.baseUrl=baseUrl;this.isCompressed=isCompressed;} async fetch({name}){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 DOMCMapReaderFactory extends BaseCMapReaderFactory{_fetchData(url,compressionType){if(isFetchSupported()&&isValidFetchUrl(url,document.baseURI)){return fetch(url).then(async response=>{if(!response.ok){throw new Error(response.statusText);} let cMapData;if(this.isCompressed){cMapData=new Uint8Array(await response.arrayBuffer());}else{cMapData=(0,_util.stringToBytes)(await response.text());} return{cMapData,compressionType};});} return new Promise((resolve,reject)=>{const request=new XMLHttpRequest();request.open("GET",url,true);if(this.isCompressed){request.responseType="arraybuffer";} request.onreadystatechange=()=>{if(request.readyState!==XMLHttpRequest.DONE){return;} if(request.status===200||request.status===0){let cMapData;if(this.isCompressed&&request.response){cMapData=new Uint8Array(request.response);}else if(!this.isCompressed&&request.responseText){cMapData=(0,_util.stringToBytes)(request.responseText);} if(cMapData){resolve({cMapData,compressionType});return;}} reject(new Error(request.statusText));};request.send(null);});}} exports.DOMCMapReaderFactory=DOMCMapReaderFactory;class DOMSVGFactory{create(width,height){(0,_util.assert)(width>0&&height>0,"Invalid SVG dimensions");const svg=document.createElementNS(SVG_NS,"svg:svg");svg.setAttribute("version","1.1");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){(0,_util.assert)(typeof type==="string","Invalid SVG element type");return document.createElementNS(SVG_NS,type);}} exports.DOMSVGFactory=DOMSVGFactory;class PageViewport{constructor({viewBox,scale,rotation,offsetX=0,offsetY=0,dontFlip=false}){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=rotation%360;rotation=rotation<0?rotation+360:rotation;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({scale=this.scale,rotation=this.rotation,offsetX=this.offsetX,offsetY=this.offsetY,dontFlip=false}={}){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);this.type=type;}} exports.RenderingCancelledException=RenderingCancelledException;const LinkTarget={NONE:0,SELF:1,BLANK:2,PARENT:3,TOP:4};exports.LinkTarget=LinkTarget;function addLinkAttributes(link,{url,target,rel,enabled=true}={}){(0,_util.assert)(url&&typeof url==="string",'addLinkAttributes: A valid "url" parameter must provided.');const urlNullRemoved=(0,_util.removeNullCharacters)(url);if(enabled){link.href=link.title=urlNullRemoved;}else{link.href="";link.title=`Disabled: ${urlNullRemoved}`;link.onclick=()=>{return false;};} let targetStr="";switch(target){case LinkTarget.NONE:break;case LinkTarget.SELF:targetStr="_self";break;case LinkTarget.BLANK:targetStr="_blank";break;case LinkTarget.PARENT:targetStr="_parent";break;case LinkTarget.TOP:targetStr="_top";break;} link.target=targetStr;link.rel=typeof rel==="string"?rel:DEFAULT_LINK_REL;} 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);} 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 isFetchSupported(){return typeof fetch!=="undefined"&&typeof Response!=="undefined"&&"body"in Response.prototype&&typeof ReadableStream!=="undefined";} 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){return new Promise((resolve,reject)=>{const script=document.createElement("script");script.src=src;script.onload=resolve;script.onerror=function(){reject(new Error(`Cannot load script at: ${script.src}`));};(document.head||document.documentElement).appendChild(script);});} function deprecated(details){console.log("Deprecated API usage: "+details);} let pdfDateStringRegex;class PDFDateString{static toDateObject(input){if(!input||!(0,_util.isString)(input)){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(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.arrayByteLength=arrayByteLength;exports.arraysToBytes=arraysToBytes;exports.assert=assert;exports.bytesToString=bytesToString;exports.createPromiseCapability=createPromiseCapability;exports.escapeString=escapeString;exports.getModificationDate=getModificationDate;exports.getVerbosityLevel=getVerbosityLevel;exports.info=info;exports.isArrayBuffer=isArrayBuffer;exports.isArrayEqual=isArrayEqual;exports.isBool=isBool;exports.isNum=isNum;exports.isString=isString;exports.isSameOrigin=isSameOrigin;exports.createValidAbsoluteUrl=createValidAbsoluteUrl;exports.removeNullCharacters=removeNullCharacters;exports.setVerbosityLevel=setVerbosityLevel;exports.shadow=shadow;exports.string32=string32;exports.stringToBytes=stringToBytes;exports.stringToPDFString=stringToPDFString;exports.stringToUTF8String=stringToUTF8String;exports.utf8StringToString=utf8StringToString;exports.warn=warn;exports.unreachable=unreachable;exports.IsEvalSupportedCached=exports.IsLittleEndianCached=exports.createObjectURL=exports.FormatError=exports.Util=exports.UnknownErrorException=exports.UnexpectedResponseException=exports.TextRenderingMode=exports.StreamType=exports.PermissionFlag=exports.PasswordResponses=exports.PasswordException=exports.MissingPDFException=exports.InvalidPDFException=exports.AbortException=exports.CMapCompressionType=exports.ImageKind=exports.FontType=exports.AnnotationType=exports.AnnotationStateModelType=exports.AnnotationReviewState=exports.AnnotationReplyType=exports.AnnotationMarkedState=exports.AnnotationFlag=exports.AnnotationFieldFlag=exports.AnnotationBorderStyleType=exports.UNSUPPORTED_FEATURES=exports.VerbosityLevel=exports.OPS=exports.IDENTITY_MATRIX=exports.FONT_IDENTITY_MATRIX=exports.BaseException=void 0;__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 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 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",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",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",errorFontGetPath:"errorFontGetPath",errorMarkedContent:"errorMarkedContent"};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 isSameOrigin(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;} 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,baseUrl){if(!url){return null;} try{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){if(this.constructor===BaseException){unreachable("Cannot initialize BaseException.");} this.message=message;this.name=this.constructor.name;} BaseException.prototype=new Error();BaseException.constructor=BaseException;return BaseException;}();exports.BaseException=BaseException;class PasswordException extends BaseException{constructor(msg,code){super(msg);this.code=code;}} exports.PasswordException=PasswordException;class UnknownErrorException extends BaseException{constructor(msg,details){super(msg);this.details=details;}} exports.UnknownErrorException=UnknownErrorException;class InvalidPDFException extends BaseException{} exports.InvalidPDFException=InvalidPDFException;class MissingPDFException extends BaseException{} exports.MissingPDFException=MissingPDFException;class UnexpectedResponseException extends BaseException{constructor(msg,status){super(msg);this.status=status;}} exports.UnexpectedResponseException=UnexpectedResponseException;class FormatError extends BaseException{} exports.FormatError=FormatError;class AbortException extends BaseException{} exports.AbortException=AbortException;const NullCharactersRegExp=/\x00/g;function removeNullCharacters(str){if(typeof str!=="string"){warn("The argument for removeNullCharacters must be a string.");return str;} return str.replace(NullCharactersRegExp,"");} function bytesToString(bytes){assert(bytes!==null&&typeof bytes==="object"&&bytes.length!==undefined,"Invalid argument for bytesToString");const length=bytes.length;const MAX_ARGUMENT_COUNT=8192;if(length>24&0xff,value>>16&0xff,value>>8&0xff,value&0xff);} function isLittleEndian(){const buffer8=new Uint8Array(4);buffer8[0]=1;const view32=new Uint32Array(buffer8.buffer,0,1);return view32[0]===1;} const IsLittleEndianCached={get value(){return shadow(this,"value",isLittleEndian());}};exports.IsLittleEndianCached=IsLittleEndianCached;function isEvalSupported(){try{new Function("");return true;}catch(e){return false;}} const IsEvalSupportedCached={get value(){return shadow(this,"value",isEvalSupported());}};exports.IsEvalSupportedCached=IsEvalSupportedCached;const rgbBuf=["rgb(",0,",",0,",",0,")"];class Util{static makeCssRgb(r,g,b){rgbBuf[1]=r;rgbBuf[3]=g;rgbBuf[5]=b;return rgbBuf.join("");} 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)*(a+d)-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){function compare(a,b){return a-b;} const orderedX=[rect1[0],rect1[2],rect2[0],rect2[2]].sort(compare);const orderedY=[rect1[1],rect1[3],rect2[1],rect2[3]].sort(compare);const result=[];rect1=Util.normalizeRect(rect1);rect2=Util.normalizeRect(rect2);if(orderedX[0]===rect1[0]&&orderedX[1]===rect2[0]||orderedX[0]===rect2[0]&&orderedX[1]===rect1[0]){result[0]=orderedX[1];result[2]=orderedX[2];}else{return null;} if(orderedY[0]===rect1[1]&&orderedY[1]===rect2[1]||orderedY[0]===rect2[1]&&orderedY[1]===rect1[1]){result[1]=orderedY[1];result[3]=orderedY[2];}else{return null;} return result;}} 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){const length=str.length,strBuf=[];if(str[0]==="\xFE"&&str[1]==="\xFF"){for(let i=2;i>2,d2=(b1&3)<<4|b2>>4;const d3=i+1>6:64;const d4=i+2{this._transport=null;if(this._worker){this._worker.destroy();this._worker=null;}});}} return PDFDocumentLoadingTask;}();class PDFDataRangeTransport{constructor(length,initialData,progressiveDone=false){this.length=length;this.initialData=initialData;this.progressiveDone=progressiveDone;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;} get annotationStorage(){return(0,_util.shadow)(this,"annotationStorage",new _annotation_storage.AnnotationStorage());} get numPages(){return this._pdfInfo.numPages;} get fingerprint(){return this._pdfInfo.fingerprint;} 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();} getOutline(){return this._transport.getOutline();} getOptionalContentConfig(){return this._transport.getOptionalContentConfig();} getPermissions(){return this._transport.getPermissions();} getMetadata(){return this._transport.getMetadata();} getData(){return this._transport.getData();} getDownloadInfo(){return this._transport.downloadInfoCapability.promise;} getStats(){return this._transport.getStats();} cleanup(){return this._transport.startCleanup();} destroy(){return this.loadingTask.destroy();} get loadingParams(){return this._transport.loadingParams;} get loadingTask(){return this._transport.loadingTask;} saveDocument(annotationStorage){return this._transport.saveDocument(annotationStorage);}} exports.PDFDocumentProxy=PDFDocumentProxy;class PDFPageProxy{constructor(pageIndex,pageInfo,transport,ownerDocument,pdfBug=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.cleanupAfterRender=false;this.pendingCleanup=false;this._intentStates=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({scale,rotation=this.rotate,offsetX=0,offsetY=0,dontFlip=false}={}){return new _display_utils.PageViewport({viewBox:this.view,scale,rotation,offsetX,offsetY,dontFlip});} getAnnotations({intent=null}={}){if(!this.annotationsPromise||this.annotationsIntent!==intent){this.annotationsPromise=this._transport.getAnnotations(this._pageIndex,intent);this.annotationsIntent=intent;} return this.annotationsPromise;} render({canvasContext,viewport,intent="display",enableWebGL=false,renderInteractiveForms=false,transform=null,imageLayer=null,canvasFactory=null,background=null,annotationStorage=null,optionalContentConfigPromise=null}){if(this._stats){this._stats.time("Overall");} const renderingIntent=intent==="print"?"print":"display";this.pendingCleanup=false;if(!optionalContentConfigPromise){optionalContentConfigPromise=this._transport.getOptionalContentConfig();} let intentState=this._intentStates.get(renderingIntent);if(!intentState){intentState=Object.create(null);this._intentStates.set(renderingIntent,intentState);} if(intentState.streamReaderCancelTimeout){clearTimeout(intentState.streamReaderCancelTimeout);intentState.streamReaderCancelTimeout=null;} const canvasFactoryInstance=canvasFactory||new DefaultCanvasFactory({ownerDocument:this._ownerDocument});const webGLContext=new _webgl.WebGLContext({enable:enableWebGL});if(!intentState.displayReadyCapability){intentState.displayReadyCapability=(0,_util.createPromiseCapability)();intentState.operatorList={fnArray:[],argsArray:[],lastChunk:false};if(this._stats){this._stats.time("Page Request");} this._pumpOperatorList({pageIndex:this._pageIndex,intent:renderingIntent,renderInteractiveForms:renderInteractiveForms===true,annotationStorage:annotationStorage&&annotationStorage.getAll()||null});} const complete=error=>{const i=intentState.renderTasks.indexOf(internalRenderTask);if(i>=0){intentState.renderTasks.splice(i,1);} if(this.cleanupAfterRender||renderingIntent==="print"){this.pendingCleanup=true;} this._tryCleanup();if(error){internalRenderTask.capability.reject(error);this._abortOperatorList({intentState,reason: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,operatorList:intentState.operatorList,pageIndex:this._pageIndex,canvasFactory:canvasFactoryInstance,webGLContext,useRequestAnimationFrame:renderingIntent!=="print",pdfBug:this._pdfBug});if(!intentState.renderTasks){intentState.renderTasks=[];} intentState.renderTasks.push(internalRenderTask);const renderTask=internalRenderTask.task;Promise.all([intentState.displayReadyCapability.promise,optionalContentConfigPromise]).then(([transparency,optionalContentConfig])=>{if(this.pendingCleanup){complete();return;} if(this._stats){this._stats.time("Rendering");} internalRenderTask.initializeGraphics({transparency,optionalContentConfig});internalRenderTask.operatorListChanged();}).catch(complete);return renderTask;} getOperatorList(){function operatorListChanged(){if(intentState.operatorList.lastChunk){intentState.opListReadCapability.resolve(intentState.operatorList);const i=intentState.renderTasks.indexOf(opListTask);if(i>=0){intentState.renderTasks.splice(i,1);}}} const renderingIntent="oplist";let intentState=this._intentStates.get(renderingIntent);if(!intentState){intentState=Object.create(null);this._intentStates.set(renderingIntent,intentState);} let opListTask;if(!intentState.opListReadCapability){opListTask=Object.create(null);opListTask.operatorListChanged=operatorListChanged;intentState.opListReadCapability=(0,_util.createPromiseCapability)();intentState.renderTasks=[];intentState.renderTasks.push(opListTask);intentState.operatorList={fnArray:[],argsArray:[],lastChunk:false};if(this._stats){this._stats.time("Page Request");} this._pumpOperatorList({pageIndex:this._pageIndex,intent:renderingIntent});} return intentState.opListReadCapability.promise;} streamTextContent({normalizeWhitespace=false,disableCombineTextItems=false}={}){const TEXT_CONTENT_CHUNK_SIZE=100;return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,normalizeWhitespace:normalizeWhitespace===true,combineTextItems:disableCombineTextItems!==true},{highWaterMark:TEXT_CONTENT_CHUNK_SIZE,size(textContent){return textContent.items.length;}});} getTextContent(params={}){const readableStream=this.streamTextContent(params);return new Promise(function(resolve,reject){function pump(){reader.read().then(function({value,done}){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();});} _destroy(){this.destroyed=true;this._transport.pageCache[this._pageIndex]=null;const waitOn=[];for(const[intent,intentState]of this._intentStates){this._abortOperatorList({intentState,reason:new Error("Page was destroyed."),force:true});if(intent==="oplist"){continue;} for(const internalRenderTask of intentState.renderTasks){waitOn.push(internalRenderTask.completed);internalRenderTask.cancel();}} this.objs.clear();this.annotationsPromise=null;this.pendingCleanup=false;return Promise.all(waitOn);} cleanup(resetStats=false){this.pendingCleanup=true;return this._tryCleanup(resetStats);} _tryCleanup(resetStats=false){if(!this.pendingCleanup){return false;} for(const{renderTasks,operatorList}of this._intentStates.values()){if(renderTasks.length!==0||!operatorList.lastChunk){return false;}} this._intentStates.clear();this.objs.clear();this.annotationsPromise=null;if(resetStats&&this._stats){this._stats=new _display_utils.StatTimer();} this.pendingCleanup=false;return true;} _startRenderPage(transparency,intent){const intentState=this._intentStates.get(intent);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{reader.read().then(({value,done})=>{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(let i=0;i{this._abortOperatorList({intentState,reason,force:true});intentState.streamReaderCancelTimeout=null;},RENDERING_CANCELLED_TIMEOUT);return;}} intentState.streamReader.cancel(new _util.AbortException(reason&&reason.message));intentState.streamReader=null;if(this._transport.destroyed){return;} for(const[intent,curIntentState]of this._intentStates){if(curIntentState===intentState){this._intentStates.delete(intent);break;}} this.cleanup();} get stats(){return this._stats;}} exports.PDFPageProxy=PDFPageProxy;class LoopbackPort{constructor(defer=true){this._listeners=[];this._defer=defer;this._deferred=Promise.resolve(undefined);} postMessage(obj,transfers){function cloneValue(value){if(typeof value!=="object"||value===null){return value;} if(cloned.has(value)){return cloned.get(value);} let buffer,result;if((buffer=value.buffer)&&(0,_util.isArrayBuffer)(buffer)){const transferable=transfers&&transfers.includes(buffer);if(transferable){result=new value.constructor(buffer,value.byteOffset,value.byteLength);}else{result=new value.constructor(value);} cloned.set(value,result);return result;} result=Array.isArray(value)?[]:{};cloned.set(value,result);for(const i in value){let desc,p=value;while(!(desc=Object.getOwnPropertyDescriptor(p,i))){p=Object.getPrototypeOf(p);} if(typeof desc.value==="undefined"){continue;} if(typeof desc.value==="function"){if(value.hasOwnProperty&&value.hasOwnProperty(i)){throw new Error(`LoopbackPort.postMessage - cannot clone: ${value[i]}`);} continue;} result[i]=cloneValue(desc.value);} return result;} if(!this._defer){this._listeners.forEach(listener=>{listener.call(this,{data:obj});});return;} const cloned=new WeakMap();const e={data:cloneValue(obj)};this._deferred.then(()=>{this._listeners.forEach(listener=>{listener.call(this,e);});});} 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 PDFWorker=function PDFWorkerClosure(){const pdfWorkerPorts=new WeakMap();let isWorkerDisabled=false;let fallbackWorkerSrc;let nextFakeWorkerId=0;let fakeWorkerCapability;if(_is_node.isNodeJS&&typeof require==="function"){isWorkerDisabled=true;fallbackWorkerSrc="./pdf.worker.js";}else if(typeof document==="object"&&"currentScript"in document){const pdfjsFilePath=document.currentScript&&document.currentScript.src;if(pdfjsFilePath){fallbackWorkerSrc=pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i,".worker$1$2");}} function getWorkerSrc(){if(_worker_options.GlobalWorkerOptions.workerSrc){return _worker_options.GlobalWorkerOptions.workerSrc;} if(typeof fallbackWorkerSrc!=="undefined"){if(!_is_node.isNodeJS){(0,_display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.');} return fallbackWorkerSrc;} throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');} function getMainThreadWorkerMessageHandler(){let mainWorkerMessageHandler;try{mainWorkerMessageHandler=globalThis.pdfjsWorker&&globalThis.pdfjsWorker.WorkerMessageHandler;}catch(ex){} return mainWorkerMessageHandler||null;} function setupFakeWorkerGlobal(){if(fakeWorkerCapability){return fakeWorkerCapability.promise;} fakeWorkerCapability=(0,_util.createPromiseCapability)();const loader=async function(){const mainWorkerMessageHandler=getMainThreadWorkerMessageHandler();if(mainWorkerMessageHandler){return mainWorkerMessageHandler;} if(_is_node.isNodeJS&&typeof require==="function"){const worker=eval("require")(getWorkerSrc());return worker.WorkerMessageHandler;} await(0,_display_utils.loadScript)(getWorkerSrc());return window.pdfjsWorker.WorkerMessageHandler;};loader().then(fakeWorkerCapability.resolve,fakeWorkerCapability.reject);return fakeWorkerCapability.promise;} function createCDNWrapper(url){const wrapper="importScripts('"+url+"');";return URL.createObjectURL(new Blob([wrapper]));} class PDFWorker{constructor({name=null,port=null,verbosity=(0,_util.getVerbosityLevel)()}={}){if(port&&pdfWorkerPorts.has(port)){throw new Error("Cannot use more than one PDFWorker per port");} this.name=name;this.destroyed=false;this.postMessageTransfers=true;this.verbosity=verbosity;this._readyCapability=(0,_util.createPromiseCapability)();this._port=null;this._webWorker=null;this._messageHandler=null;if(port){pdfWorkerPorts.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(typeof Worker!=="undefined"&&!isWorkerDisabled&&!getMainThreadWorkerMessageHandler()){let workerSrc=getWorkerSrc();try{if(!(0,_util.isSameOrigin)(window.location.href,workerSrc)){workerSrc=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;if(!data.supportTransfers){this.postMessageTransfers=false;} 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([this.postMessageTransfers?255:0]);try{messageHandler.send("test",testObj,[testObj.buffer]);}catch(ex){(0,_util.warn)("Cannot use postMessage transfers.");testObj[0]=0;messageHandler.send("test",testObj);}};sendTest();return;}catch(e){(0,_util.info)("The worker has been disabled.");}} this._setupFakeWorker();} _setupFakeWorker(){if(!isWorkerDisabled){(0,_util.warn)("Setting up fake worker.");isWorkerDisabled=true;} 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"+nextFakeWorkerId++;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;} pdfWorkerPorts.delete(this._port);this._port=null;if(this._messageHandler){this._messageHandler.destroy();this._messageHandler=null;}} static fromPort(params){if(!params||!params.port){throw new Error("PDFWorker.fromPort - invalid method signature.");} if(pdfWorkerPorts.has(params.port)){return pdfWorkerPorts.get(params.port);} return new PDFWorker(params);} static getWorkerSrc(){return getWorkerSrc();}} return PDFWorker;}();exports.PDFWorker=PDFWorker;class WorkerTransport{constructor(messageHandler,loadingTask,networkStream,params){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});this._params=params;this.CMapReaderFactory=new params.CMapReaderFactory({baseUrl:params.cMapUrl,isCompressed:params.cMapPacked});this.destroyed=false;this.destroyCapability=null;this._passwordCapability=null;this._networkStream=networkStream;this._fullReader=null;this._lastProgress=null;this.pageCache=[];this.pagePromises=[];this.downloadInfoCapability=(0,_util.createPromiseCapability)();this.setupMessageHandler();} 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=[];this.pageCache.forEach(function(page){if(page){waitOn.push(page._destroy());}});this.pageCache.length=0;this.pagePromises.length=0;const terminated=this.messageHandler.sendWithPromise("Terminate",null);waitOn.push(terminated);Promise.all(waitOn).then(()=>{this.fontLoader.clear();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({value,done}){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&&loadingTask.onProgress){loadingTask.onProgress(this._lastProgress);} fullReader.onProgress=evt=>{if(loadingTask.onProgress){loadingTask.onProgress({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({value,done}){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",({pdfInfo})=>{this._numPages=pdfInfo.numPages;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;} if(!(reason instanceof Error)){const msg="DocException - expected a valid Error.";(0,_util.warn)(msg);} loadingTask._capability.reject(reason);});messageHandler.on("PasswordRequest",exception=>{this._passwordCapability=(0,_util.createPromiseCapability)();if(loadingTask.onPassword){const updatePassword=password=>{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=>{if(loadingTask.onProgress){loadingTask.onProgress({loaded:data.length,total:data.length});} this.downloadInfoCapability.resolve(data);});messageHandler.on("StartRenderPage",data=>{if(this.destroyed){return;} const page=this.pageCache[data.pageIndex];page._startRenderPage(data.transparency,data.intent);});messageHandler.on("commonobj",data=>{if(this.destroyed){return;} const[id,type,exportedData]=data;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.FontInspector&&globalThis.FontInspector.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",data=>{if(this.destroyed){return undefined;} const[id,pageIndex,type,imageData]=data;const pageProxy=this.pageCache[pageIndex];if(pageProxy.objs.has(id)){return undefined;} switch(type){case "Image":pageProxy.objs.resolve(id,imageData);const MAX_IMAGE_SIZE_TO_STORE=8000000;if(imageData&&"data"in imageData&&imageData.data.length>MAX_IMAGE_SIZE_TO_STORE){pageProxy.cleanupAfterRender=true;} break;default:throw new Error(`Got unknown object type ${type}`);} return undefined;});messageHandler.on("DocProgress",data=>{if(this.destroyed){return;} if(loadingTask.onProgress){loadingTask.onProgress({loaded:data.loaded,total:data.total});}});messageHandler.on("UnsupportedFeature",this._onUnsupportedFeature.bind(this));messageHandler.on("FetchBuiltInCMap",(data,sink)=>{if(this.destroyed){sink.error(new Error("Worker was destroyed"));return;} let fetched=false;sink.onPull=()=>{if(fetched){sink.close();return;} fetched=true;this.CMapReaderFactory.fetch(data).then(function(builtInCMap){sink.enqueue(builtInCMap,1,[builtInCMap.cMapData.buffer]);}).catch(function(reason){sink.error(reason);});};});} _onUnsupportedFeature({featureId}){if(this.destroyed){return;} if(this.loadingTask.onUnsupportedFeature){this.loadingTask.onUnsupportedFeature(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;if(pageIndex in this.pagePromises){return this.pagePromises[pageIndex];} 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);this.pageCache[pageIndex]=page;return page;});this.pagePromises[pageIndex]=promise;return promise;} getPageIndex(ref){return this.messageHandler.sendWithPromise("GetPageIndex",{ref}).catch(function(reason){return Promise.reject(new Error(reason));});} getAnnotations(pageIndex,intent){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex,intent});} saveDocument(annotationStorage){return this.messageHandler.sendWithPromise("SaveDocument",{numPages:this._numPages,annotationStorage:annotationStorage&&annotationStorage.getAll()||null,filename:this._fullReader?this._fullReader.filename:null}).finally(()=>{if(annotationStorage){annotationStorage.resetModified();}});} 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);} 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 this.messageHandler.sendWithPromise("GetMetadata",null).then(results=>{return{info:results[0],metadata:results[1]?new _metadata.Metadata(results[1]):null,contentDispositionFilename:this._fullReader?this._fullReader.filename:null};});} getStats(){return this.messageHandler.sendWithPromise("GetStats",null);} startCleanup(){return this.messageHandler.sendWithPromise("Cleanup",null).then(()=>{for(let i=0,ii=this.pageCache.length;i{this._nextBound().catch(this.cancel.bind(this));});}else{Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));}} 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){canvasInRendering.delete(this._canvas);} this.callback();}}}} return InternalRenderTask;}();const version='2.6.347';exports.version=version;const build='3be9c65f';exports.build=build;}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.FontLoader=exports.FontFaceObject=void 0;var _util=__w_pdfjs_require__(2);class BaseFontLoader{constructor({docId,onUnsupportedFeature,ownerDocument=globalThis.document}){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].appendChild(styleElement);} const styleSheet=styleElement.sheet;styleSheet.insertRule(rule,styleSheet.cssRules.length);} clear(){this.nativeFontFaces.forEach(nativeFontFace=>{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(){const supported=typeof this._document!=="undefined"&&!!this._document.fonts;return(0,_util.shadow)(this,"isFontLoadingAPISupported",supported);} 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&&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{this._document.body.removeChild(div);request.complete();});}};} class FontFaceObject{constructor(translatedData,{isEvalSupported=true,disableFontFace=false,ignoreErrors=false,onUnsupportedFeature=null,fontRegistry=null}){this.compiledGlyphs=Object.create(null);for(const i in translatedData){this[i]=translatedData[i];} this.isEvalSupported=isEvalSupported!==false;this.disableFontFace=disableFontFace===true;this.ignoreErrors=ignoreErrors===true;this._onUnsupportedFeature=onUnsupportedFeature;this.fontRegistry=fontRegistry;} createNativeFontFace(){if(!this.data||this.disableFontFace){return null;} const nativeFontFace=new FontFace(this.loadedName,this.data,{});if(this.fontRegistry){this.fontRegistry.registerFont(this);} return nativeFontFace;} createFontFaceRule(){if(!this.data||this.disableFontFace){return null;} const data=(0,_util.bytesToString)(new Uint8Array(this.data));const url=`url(data:${this.mimetype};base64,${btoa(data)});`;const rule=`@font-face {font-family:"${this.loadedName}";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,current;try{cmds=objs.get(this.loadedName+"_path_"+character);}catch(ex){if(!this.ignoreErrors){throw ex;} if(this._onUnsupportedFeature){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.IsEvalSupportedCached.value){let args,js="";for(let i=0,ii=cmds.length;i{const fs=require("fs");fs.readFile(url,(error,data)=>{if(error||!data){reject(new Error(error));return;} resolve({cMapData:new Uint8Array(data),compressionType});});});}};}}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.AnnotationStorage=void 0;class AnnotationStorage{constructor(){this._storage=new Map();this._modified=false;this.onSetModified=null;this.onResetModified=null;} getOrCreateValue(key,defaultValue){if(this._storage.has(key)){return this._storage.get(key);} this._storage.set(key,defaultValue);return defaultValue;} setValue(key,value){if(this._storage.get(key)!==value){this._setModified();} this._storage.set(key,value);} getAll(){if(this._storage.size===0){return null;} return Object.fromEntries(this._storage);} get size(){return this._storage.size;} _setModified(){if(!this._modified){this._modified=true;if(typeof this.onSetModified==="function"){this.onSetModified();}}} resetModified(){if(this._modified){this._modified=false;if(typeof this.onResetModified==="function"){this.onResetModified();}}}} exports.AnnotationStorage=AnnotationStorage;}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.apiCompatibilityParams=void 0;var _is_node=__w_pdfjs_require__(4);const compatibilityParams=Object.create(null);{(function checkFontFace(){if(_is_node.isNodeJS){compatibilityParams.disableFontFace=true;}})();} const apiCompatibilityParams=Object.freeze(compatibilityParams);exports.apiCompatibilityParams=apiCompatibilityParams;}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.CanvasGraphics=void 0;var _util=__w_pdfjs_require__(2);var _pattern_helper=__w_pdfjs_require__(11);var MIN_FONT_SIZE=16;var MAX_FONT_SIZE=100;var MAX_GROUP_SIZE=4096;var MIN_WIDTH_FACTOR=0.65;var COMPILE_TYPE3_GLYPHS=true;var MAX_SIZE_TO_COMPILE=1000;var FULL_CHUNK_HEIGHT=16;function addContextCurrentTransform(ctx){if(!ctx.mozCurrentTransform){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._transformMatrix=ctx._transformMatrix||[1,0,0,1,0,0];ctx._transformStack=[];Object.defineProperty(ctx,"mozCurrentTransform",{get:function getCurrentTransform(){return this._transformMatrix;}});Object.defineProperty(ctx,"mozCurrentTransformInverse",{get:function getCurrentTransformInverse(){var m=this._transformMatrix;var a=m[0],b=m[1],c=m[2],d=m[3],e=m[4],f=m[5];var ad_bc=a*d-b*c;var bc_ad=b*c-a*d;return[d/ad_bc,b/bc_ad,c/bc_ad,a/ad_bc,(d*e-c*f)/bc_ad,(b*e-a*f)/ad_bc];}});ctx.save=function ctxSave(){var old=this._transformMatrix;this._transformStack.push(old);this._transformMatrix=old.slice(0,6);this._originalSave();};ctx.restore=function ctxRestore(){var prev=this._transformStack.pop();if(prev){this._transformMatrix=prev;this._originalRestore();}};ctx.translate=function ctxTranslate(x,y){var m=this._transformMatrix;m[4]=m[0]*x+m[2]*y+m[4];m[5]=m[1]*x+m[3]*y+m[5];this._originalTranslate(x,y);};ctx.scale=function ctxScale(x,y){var m=this._transformMatrix;m[0]=m[0]*x;m[1]=m[1]*x;m[2]=m[2]*y;m[3]=m[3]*y;this._originalScale(x,y);};ctx.transform=function ctxTransform(a,b,c,d,e,f){var m=this._transformMatrix;this._transformMatrix=[m[0]*a+m[2]*b,m[1]*a+m[3]*b,m[0]*c+m[2]*d,m[1]*c+m[3]*d,m[0]*e+m[2]*f+m[4],m[1]*e+m[3]*f+m[5]];ctx._originalTransform(a,b,c,d,e,f);};ctx.setTransform=function ctxSetTransform(a,b,c,d,e,f){this._transformMatrix=[a,b,c,d,e,f];ctx._originalSetTransform(a,b,c,d,e,f);};ctx.rotate=function ctxRotate(angle){var cosValue=Math.cos(angle);var sinValue=Math.sin(angle);var m=this._transformMatrix;this._transformMatrix=[m[0]*cosValue+m[2]*sinValue,m[1]*cosValue+m[3]*sinValue,m[0]*-sinValue+m[2]*cosValue,m[1]*-sinValue+m[3]*cosValue,m[4],m[5]];this._originalRotate(angle);};}} var CachedCanvases=function CachedCanvasesClosure(){function CachedCanvases(canvasFactory){this.canvasFactory=canvasFactory;this.cache=Object.create(null);} CachedCanvases.prototype={getCanvas:function CachedCanvases_getCanvas(id,width,height,trackTransform){var canvasEntry;if(this.cache[id]!==undefined){canvasEntry=this.cache[id];this.canvasFactory.reset(canvasEntry,width,height);canvasEntry.context.setTransform(1,0,0,1,0,0);}else{canvasEntry=this.canvasFactory.create(width,height);this.cache[id]=canvasEntry;} if(trackTransform){addContextCurrentTransform(canvasEntry.context);} return canvasEntry;},clear(){for(var id in this.cache){var canvasEntry=this.cache[id];this.canvasFactory.destroy(canvasEntry);delete this.cache[id];}}};return CachedCanvases;}();function compileType3Glyph(imgData){var POINT_TO_PROCESS_LIMIT=1000;var width=imgData.width,height=imgData.height;var i,j,j0,width1=width+1;var points=new Uint8Array(width1*(height+1));var POINT_TYPES=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]);var lineSize=width+7&~7,data0=imgData.data;var data=new Uint8Array(lineSize*height),pos=0,ii;for(i=0,ii=data0.length;i0){data[pos++]=elem&mask?0:255;mask>>=1;}} var count=0;pos=0;if(data[pos]!==0){points[0]=1;++count;} for(j=1;j>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;jPOINT_TO_PROCESS_LIMIT){return null;} var steps=new Int32Array([0,width1,-1,0,-width1,0,0,0,1]);var outlines=[];for(i=0;count&&i<=height;i++){var p=i*width1;var end=p+width;while(p>4;points[p]&=type>>2|type<<2;} coords.push(p%width1);coords.push(p/width1|0);if(!points[p]){--count;}}while(p0!==p);outlines.push(coords);--i;} var drawOutline=function(c){c.save();c.scale(1/width,-1/height);c.translate(0,-height);c.beginPath();for(let k=0,kk=outlines.length;k>2);var dest32DataLength=dest32.length;var fullSrcDiff=width+7>>3;var white=0xffffffff;var black=_util.IsLittleEndianCached.value?0xff000000:0x000000ff;if(transferMapGray){if(transferMapGray[0]===0xff&&transferMapGray[0xff]===0){[white,black]=[black,white];}} for(i=0;ifullSrcDiff?width:srcDiff*8-7;var kEndUnrolled=kEnd&~7;var mask=0;var srcByte=0;for(;k>=1;}} while(destPos=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>=1;}} ctx.putImageData(chunkImgData,0,i*FULL_CHUNK_HEIGHT);}} function copyCtxState(sourceCtx,destCtx){var properties=["strokeStyle","fillStyle","fillRule","globalAlpha","lineWidth","lineCap","lineJoin","miterLimit","globalCompositeOperation","font"];for(var i=0,ii=properties.length;i>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){var length=maskData.length;var scale=1/255;for(var i=3;i>8]>>8:layerData[i]*y>>16;}} function genericComposeSMask(maskCtx,layerCtx,width,height,subtype,backdrop,transferMap){var hasBackdrop=!!backdrop;var r0=hasBackdrop?backdrop[0]:0;var g0=hasBackdrop?backdrop[1]:0;var b0=hasBackdrop?backdrop[2]:0;var composeFn;if(subtype==="Luminosity"){composeFn=composeSMaskLuminosity;}else{composeFn=composeSMaskAlpha;} var PIXELS_TO_PROCESS=1048576;var chunkSize=Math.min(height,Math.ceil(PIXELS_TO_PROCESS/width));for(var row=0;rowEXECUTION_STEPS&&typeof continueCallback==="function";var endTime=chunkOperations?Date.now()+EXECUTION_TIME:0;var steps=0;var commonObjs=this.commonObjs;var objs=this.objs;var 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:function CanvasGraphics_endDrawing(){if(this.current.activeSMask!==null){this.endSMaskGroup();} 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;} this.cachedCanvases.clear();this.webGLContext.clear();if(this.imageLayer){this.imageLayer.endLayout();}},setLineWidth:function CanvasGraphics_setLineWidth(width){this.current.lineWidth=width;this.ctx.lineWidth=width;},setLineCap:function CanvasGraphics_setLineCap(style){this.ctx.lineCap=LINE_CAP_STYLES[style];},setLineJoin:function CanvasGraphics_setLineJoin(style){this.ctx.lineJoin=LINE_JOIN_STYLES[style];},setMiterLimit:function CanvasGraphics_setMiterLimit(limit){this.ctx.miterLimit=limit;},setDash:function CanvasGraphics_setDash(dashArray,dashPhase){var ctx=this.ctx;if(ctx.setLineDash!==undefined){ctx.setLineDash(dashArray);ctx.lineDashOffset=dashPhase;}},setRenderingIntent(intent){},setFlatness(flatness){},setGState:function CanvasGraphics_setGState(states){for(var i=0,ii=states.length;i0&&this.stateStack[this.stateStack.length-1].activeSMask===this.current.activeSMask){this.suspendSMaskGroup();}else{this.endSMaskGroup();}} this.current.activeSMask=value?this.tempSMask:null;if(this.current.activeSMask){this.beginSMaskGroup();} this.tempSMask=null;break;case "TR":this.current.transferMaps=value;}}},beginSMaskGroup:function CanvasGraphics_beginSMaskGroup(){var activeSMask=this.current.activeSMask;var drawnWidth=activeSMask.canvas.width;var drawnHeight=activeSMask.canvas.height;var cacheId="smaskGroupAt"+this.groupLevel;var scratchCanvas=this.cachedCanvases.getCanvas(cacheId,drawnWidth,drawnHeight,true);var currentCtx=this.ctx;var currentTransform=currentCtx.mozCurrentTransform;this.ctx.save();var groupCtx=scratchCanvas.context;groupCtx.scale(1/activeSMask.scaleX,1/activeSMask.scaleY);groupCtx.translate(-activeSMask.offsetX,-activeSMask.offsetY);groupCtx.transform.apply(groupCtx,currentTransform);activeSMask.startTransformInverse=groupCtx.mozCurrentTransformInverse;copyCtxState(currentCtx,groupCtx);this.ctx=groupCtx;this.setGState([["BM","source-over"],["ca",1],["CA",1]]);this.groupStack.push(currentCtx);this.groupLevel++;},suspendSMaskGroup:function CanvasGraphics_endSMaskGroup(){var groupCtx=this.ctx;this.groupLevel--;this.ctx=this.groupStack.pop();composeSMask(this.ctx,this.current.activeSMask,groupCtx,this.webGLContext);this.ctx.restore();this.ctx.save();copyCtxState(groupCtx,this.ctx);this.current.resumeSMaskCtx=groupCtx;var deltaTransform=_util.Util.transform(this.current.activeSMask.startTransformInverse,groupCtx.mozCurrentTransform);this.ctx.transform.apply(this.ctx,deltaTransform);groupCtx.save();groupCtx.setTransform(1,0,0,1,0,0);groupCtx.clearRect(0,0,groupCtx.canvas.width,groupCtx.canvas.height);groupCtx.restore();},resumeSMaskGroup:function CanvasGraphics_endSMaskGroup(){var groupCtx=this.current.resumeSMaskCtx;var currentCtx=this.ctx;this.ctx=groupCtx;this.groupStack.push(currentCtx);this.groupLevel++;},endSMaskGroup:function CanvasGraphics_endSMaskGroup(){var groupCtx=this.ctx;this.groupLevel--;this.ctx=this.groupStack.pop();composeSMask(this.ctx,this.current.activeSMask,groupCtx,this.webGLContext);this.ctx.restore();copyCtxState(groupCtx,this.ctx);var deltaTransform=_util.Util.transform(this.current.activeSMask.startTransformInverse,groupCtx.mozCurrentTransform);this.ctx.transform.apply(this.ctx,deltaTransform);},save:function CanvasGraphics_save(){this.ctx.save();var old=this.current;this.stateStack.push(old);this.current=old.clone();this.current.resumeSMaskCtx=null;},restore:function CanvasGraphics_restore(){if(this.current.resumeSMaskCtx){this.resumeSMaskGroup();} if(this.current.activeSMask!==null&&(this.stateStack.length===0||this.stateStack[this.stateStack.length-1].activeSMask!==this.current.activeSMask)){this.endSMaskGroup();} if(this.stateStack.length!==0){this.current=this.stateStack.pop();this.ctx.restore();this.pendingClip=null;this._cachedGetSinglePixelWidth=null;}},transform:function CanvasGraphics_transform(a,b,c,d,e,f){this.ctx.transform(a,b,c,d,e,f);this._cachedGetSinglePixelWidth=null;},constructPath:function CanvasGraphics_constructPath(ops,args){var ctx=this.ctx;var current=this.current;var x=current.x,y=current.y;for(var i=0,j=0,ii=ops.length;iMAX_FONT_SIZE){browserFontSize=MAX_FONT_SIZE;} this.current.fontSizeScale=size/browserFontSize;this.ctx.font=`${italic} ${bold} ${browserFontSize}px ${typeface}`;},setTextRenderingMode:function CanvasGraphics_setTextRenderingMode(mode){this.current.textRenderingMode=mode;},setTextRise:function CanvasGraphics_setTextRise(rise){this.current.textRise=rise;},moveText:function CanvasGraphics_moveText(x,y){this.current.x=this.current.lineX+=x;this.current.y=this.current.lineY+=y;},setLeadingMoveText:function CanvasGraphics_setLeadingMoveText(x,y){this.setLeading(-y);this.moveText(x,y);},setTextMatrix:function CanvasGraphics_setTextMatrix(a,b,c,d,e,f){this.current.textMatrix=[a,b,c,d,e,f];this.current.textMatrixScale=Math.sqrt(a*a+b*b);this.current.x=this.current.lineX=0;this.current.y=this.current.lineY=0;},nextLine:function CanvasGraphics_nextLine(){this.moveText(0,this.current.leading);},paintChar(character,x,y,patternTransform){var ctx=this.ctx;var current=this.current;var font=current.font;var textRenderingMode=current.textRenderingMode;var fontSize=current.fontSize/current.fontSizeScale;var fillStrokeMode=textRenderingMode&_util.TextRenderingMode.FILL_STROKE_MASK;var isAddToPathSet=!!(textRenderingMode&_util.TextRenderingMode.ADD_TO_PATH_FLAG);const patternFill=current.patternFill&&!font.missingFile;var 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.apply(ctx,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){var paths=this.pendingTextPaths||(this.pendingTextPaths=[]);paths.push({transform:ctx.mozCurrentTransform,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);var data=ctx.getImageData(0,0,10,10).data;var enabled=false;for(var i=3;i0&&data[i]<255){enabled=true;break;}} return(0,_util.shadow)(this,"isFontSubpixelAAEnabled",enabled);},showText:function CanvasGraphics_showText(glyphs){var current=this.current;var font=current.font;if(font.isType3Font){return this.showType3Text(glyphs);} var fontSize=current.fontSize;if(fontSize===0){return undefined;} var ctx=this.ctx;var fontSizeScale=current.fontSizeScale;var charSpacing=current.charSpacing;var wordSpacing=current.wordSpacing;var fontDirection=current.fontDirection;var textHScale=current.textHScale*fontDirection;var glyphsLength=glyphs.length;var vertical=font.vertical;var spacingDir=vertical?1:-1;var defaultVMetrics=font.defaultVMetrics;var widthAdvanceScale=fontSize*current.fontMatrix[0];var simpleFillText=current.textRenderingMode===_util.TextRenderingMode.FILL&&!font.disableFontFace&&!current.patternFill;ctx.save();let patternTransform;if(current.patternFill){ctx.save();const pattern=current.fillColor.getPattern(ctx,this);patternTransform=ctx.mozCurrentTransform;ctx.restore();ctx.fillStyle=pattern;} ctx.transform.apply(ctx,current.textMatrix);ctx.translate(current.x,current.y+current.textRise);if(fontDirection>0){ctx.scale(textHScale,-1);}else{ctx.scale(textHScale,1);} var lineWidth=current.lineWidth;var scale=current.textMatrixScale;if(scale===0||lineWidth===0){var fillStrokeMode=current.textRenderingMode&_util.TextRenderingMode.FILL_STROKE_MASK;if(fillStrokeMode===_util.TextRenderingMode.STROKE||fillStrokeMode===_util.TextRenderingMode.FILL_STROKE){this._cachedGetSinglePixelWidth=null;lineWidth=this.getSinglePixelWidth()*MIN_WIDTH_FACTOR;}}else{lineWidth/=scale;} if(fontSizeScale!==1.0){ctx.scale(fontSizeScale,fontSizeScale);lineWidth/=fontSizeScale;} ctx.lineWidth=lineWidth;var x=0,i;for(i=0;i0){var measuredWidth=ctx.measureText(character).width*1000/fontSize*fontSizeScale;if(width{return new CanvasGraphics(ctx,this.commonObjs,this.objs,this.canvasFactory,this.webGLContext);}};pattern=new _pattern_helper.TilingPattern(IR,color,this.ctx,canvasGraphicsFactory,baseTransform);}else{pattern=(0,_pattern_helper.getShadingPatternFromIR)(IR);} return pattern;},setStrokeColorN:function CanvasGraphics_setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments);},setFillColorN:function CanvasGraphics_setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments);this.current.patternFill=true;},setStrokeRGBColor:function CanvasGraphics_setStrokeRGBColor(r,g,b){var color=_util.Util.makeCssRgb(r,g,b);this.ctx.strokeStyle=color;this.current.strokeColor=color;},setFillRGBColor:function CanvasGraphics_setFillRGBColor(r,g,b){var color=_util.Util.makeCssRgb(r,g,b);this.ctx.fillStyle=color;this.current.fillColor=color;this.current.patternFill=false;},shadingFill:function CanvasGraphics_shadingFill(patternIR){if(!this.contentVisible){return;} var ctx=this.ctx;this.save();var pattern=(0,_pattern_helper.getShadingPatternFromIR)(patternIR);ctx.fillStyle=pattern.getPattern(ctx,this,true);var inv=ctx.mozCurrentTransformInverse;if(inv){var canvas=ctx.canvas;var width=canvas.width;var height=canvas.height;var bl=_util.Util.applyTransform([0,0],inv);var br=_util.Util.applyTransform([0,height],inv);var ul=_util.Util.applyTransform([width,0],inv);var ur=_util.Util.applyTransform([width,height],inv);var x0=Math.min(bl[0],br[0],ul[0],ur[0]);var y0=Math.min(bl[1],br[1],ul[1],ur[1]);var x1=Math.max(bl[0],br[0],ul[0],ur[0]);var 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.restore();},beginInlineImage:function CanvasGraphics_beginInlineImage(){(0,_util.unreachable)("Should not call beginInlineImage");},beginImageData:function CanvasGraphics_beginImageData(){(0,_util.unreachable)("Should not call beginImageData");},paintFormXObjectBegin:function CanvasGraphics_paintFormXObjectBegin(matrix,bbox){if(!this.contentVisible){return;} this.save();this.baseTransformStack.push(this.baseTransform);if(Array.isArray(matrix)&&matrix.length===6){this.transform.apply(this,matrix);} this.baseTransform=this.ctx.mozCurrentTransform;if(bbox){var width=bbox[2]-bbox[0];var height=bbox[3]-bbox[1];this.ctx.rect(bbox[0],bbox[1],width,height);this.clip();this.endPath();}},paintFormXObjectEnd:function CanvasGraphics_paintFormXObjectEnd(){if(!this.contentVisible){return;} this.restore();this.baseTransform=this.baseTransformStack.pop();},beginGroup:function CanvasGraphics_beginGroup(group){if(!this.contentVisible){return;} this.save();var currentCtx=this.ctx;if(!group.isolated){(0,_util.info)("TODO: Support non-isolated groups.");} if(group.knockout){(0,_util.warn)("Knockout groups not supported.");} var currentTransform=currentCtx.mozCurrentTransform;if(group.matrix){currentCtx.transform.apply(currentCtx,group.matrix);} if(!group.bbox){throw new Error("Bounding box is required.");} var bounds=_util.Util.getAxialAlignedBoundingBox(group.bbox,currentCtx.mozCurrentTransform);var canvasBounds=[0,0,currentCtx.canvas.width,currentCtx.canvas.height];bounds=_util.Util.intersect(bounds,canvasBounds)||[0,0,0,0];var offsetX=Math.floor(bounds[0]);var offsetY=Math.floor(bounds[1]);var drawnWidth=Math.max(Math.ceil(bounds[2])-offsetX,1);var drawnHeight=Math.max(Math.ceil(bounds[3])-offsetY,1);var 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;} var cacheId="groupAt"+this.groupLevel;if(group.smask){cacheId+="_smask_"+this.smaskCounter++%2;} var scratchCanvas=this.cachedCanvases.getCanvas(cacheId,drawnWidth,drawnHeight,true);var groupCtx=scratchCanvas.context;groupCtx.scale(1/scaleX,1/scaleY);groupCtx.translate(-offsetX,-offsetY);groupCtx.transform.apply(groupCtx,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);} copyCtxState(currentCtx,groupCtx);this.ctx=groupCtx;this.setGState([["BM","source-over"],["ca",1],["CA",1]]);this.groupStack.push(currentCtx);this.groupLevel++;this.current.activeSMask=null;},endGroup:function CanvasGraphics_endGroup(group){if(!this.contentVisible){return;} this.groupLevel--;var groupCtx=this.ctx;this.ctx=this.groupStack.pop();if(this.ctx.imageSmoothingEnabled!==undefined){this.ctx.imageSmoothingEnabled=false;}else{this.ctx.mozImageSmoothingEnabled=false;} if(group.smask){this.tempSMask=this.smaskStack.pop();}else{this.ctx.drawImage(groupCtx.canvas,0,0);} this.restore();},beginAnnotations:function CanvasGraphics_beginAnnotations(){this.save();if(this.baseTransform){this.ctx.setTransform.apply(this.ctx,this.baseTransform);}},endAnnotations:function CanvasGraphics_endAnnotations(){this.restore();},beginAnnotation:function CanvasGraphics_beginAnnotation(rect,transform,matrix){this.save();resetCtxToDefault(this.ctx);this.current=new CanvasExtraState();if(Array.isArray(rect)&&rect.length===4){var width=rect[2]-rect[0];var height=rect[3]-rect[1];this.ctx.rect(rect[0],rect[1],width,height);this.clip();this.endPath();} this.transform.apply(this,transform);this.transform.apply(this,matrix);},endAnnotation:function CanvasGraphics_endAnnotation(){this.restore();},paintImageMaskXObject:function CanvasGraphics_paintImageMaskXObject(img){if(!this.contentVisible){return;} var ctx=this.ctx;var width=img.width,height=img.height;var fillColor=this.current.fillColor;var isPatternFill=this.current.patternFill;var glyph=this.processingType3;if(COMPILE_TYPE3_GLYPHS&&glyph&&glyph.compiled===undefined){if(width<=MAX_SIZE_TO_COMPILE&&height<=MAX_SIZE_TO_COMPILE){glyph.compiled=compileType3Glyph({data:img.data,width,height});}else{glyph.compiled=null;}} if(glyph&&glyph.compiled){glyph.compiled(ctx);return;} var maskCanvas=this.cachedCanvases.getCanvas("maskCanvas",width,height);var maskCtx=maskCanvas.context;maskCtx.save();putBinaryImageMask(maskCtx,img);maskCtx.globalCompositeOperation="source-in";maskCtx.fillStyle=isPatternFill?fillColor.getPattern(maskCtx,this):fillColor;maskCtx.fillRect(0,0,width,height);maskCtx.restore();this.paintInlineImageXObject(maskCanvas.canvas);},paintImageMaskXObjectRepeat(imgData,scaleX,skewX=0,skewY=0,scaleY,positions){if(!this.contentVisible){return;} var width=imgData.width;var height=imgData.height;var fillColor=this.current.fillColor;var isPatternFill=this.current.patternFill;var maskCanvas=this.cachedCanvases.getCanvas("maskCanvas",width,height);var maskCtx=maskCanvas.context;maskCtx.save();putBinaryImageMask(maskCtx,imgData);maskCtx.globalCompositeOperation="source-in";maskCtx.fillStyle=isPatternFill?fillColor.getPattern(maskCtx,this):fillColor;maskCtx.fillRect(0,0,width,height);maskCtx.restore();var ctx=this.ctx;for(var i=0,ii=positions.length;i2&&paintWidth>1||heightScale>2&&paintHeight>1){var 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(imgToPaint,0,0,paintWidth,paintHeight,0,0,newWidth,newHeight);imgToPaint=tmpCanvas.canvas;paintWidth=newWidth;paintHeight=newHeight;tmpCanvasId=tmpCanvasId==="prescale1"?"prescale2":"prescale1";} ctx.drawImage(imgToPaint,0,0,paintWidth,paintHeight,0,-height,width,height);if(this.imageLayer){var position=this.getCanvasPosition(0,-height);this.imageLayer.appendImage({imgData,left:position[0],top:position[1],width:width/currentTransform[0],height:height/currentTransform[3]});} this.restore();},paintInlineImageXObjectGroup:function CanvasGraphics_paintInlineImageXObjectGroup(imgData,map){if(!this.contentVisible){return;} var ctx=this.ctx;var w=imgData.width;var h=imgData.height;var tmpCanvas=this.cachedCanvases.getCanvas("inlineImage",w,h);var tmpCtx=tmpCanvas.context;putBinaryImageData(tmpCtx,imgData,this.current.transferMaps);for(var i=0,ii=map.length;i=0;i--){if(!this.markedContentStack[i].visible){return false;}} return true;}};for(var op in _util.OPS){CanvasGraphics.prototype[_util.OPS[op]]=CanvasGraphics.prototype[op];} return CanvasGraphics;}();exports.CanvasGraphics=CanvasGraphics;}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getShadingPatternFromIR=getShadingPatternFromIR;exports.TilingPattern=void 0;var _util=__w_pdfjs_require__(2);var ShadingIRs={};function applyBoundingBox(ctx,bbox){if(!bbox||typeof Path2D==="undefined"){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);} ShadingIRs.RadialAxial={fromIR:function RadialAxial_fromIR(raw){var type=raw[1];var bbox=raw[2];var colorStops=raw[3];var p0=raw[4];var p1=raw[5];var r0=raw[6];var r1=raw[7];return{type:"Pattern",getPattern:function RadialAxial_getPattern(ctx){applyBoundingBox(ctx,bbox);var grad;if(type==="axial"){grad=ctx.createLinearGradient(p0[0],p0[1],p1[0],p1[1]);}else if(type==="radial"){grad=ctx.createRadialGradient(p0[0],p0[1],r0,p1[0],p1[1],r1);} for(var i=0,ii=colorStops.length;icoords[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;} var x1=(coords[p1]+context.offsetX)*context.scaleX;var y1=(coords[p1+1]+context.offsetY)*context.scaleY;var x2=(coords[p2]+context.offsetX)*context.scaleX;var y2=(coords[p2+1]+context.offsetY)*context.scaleY;var x3=(coords[p3]+context.offsetX)*context.scaleX;var y3=(coords[p3+1]+context.offsetY)*context.scaleY;if(y1>=y3){return;} var c1r=colors[c1],c1g=colors[c1+1],c1b=colors[c1+2];var c2r=colors[c2],c2g=colors[c2+1],c2b=colors[c2+2];var c3r=colors[c3],c3g=colors[c3+1],c3b=colors[c3+2];var minY=Math.round(y1),maxY=Math.round(y3);var xa,car,cag,cab;var xb,cbr,cbg,cbb;for(var y=minY;y<=maxY;y++){if(yy3){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(yy3){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;var x1_=Math.round(Math.min(xa,xb));var x2_=Math.round(Math.max(xa,xb));var j=rowSize*y+x1_*4;for(var 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){var ps=figure.coords;var cs=figure.colors;var i,ii;switch(figure.type){case "lattice":var verticesPerRow=figure.verticesPerRow;var rows=Math.floor(ps.length/verticesPerRow)-1;var cols=verticesPerRow-1;for(i=0;i=maxSize){size=maxSize;}else{scale=size/step;} return{scale,size};},clipBbox:function clipBbox(graphics,bbox,x0,y0,x1,y1){if(Array.isArray(bbox)&&bbox.length===4){var bboxWidth=x1-x0;var bboxHeight=y1-y0;graphics.ctx.rect(x0,y0,bboxWidth,bboxHeight);graphics.clip();graphics.endPath();}},setFillAndStrokeStyleToContext:function setFillAndStrokeStyleToContext(graphics,paintType,color){const context=graphics.ctx,current=graphics.current;switch(paintType){case PaintType.COLORED:var ctx=this.ctx;context.fillStyle=ctx.fillStyle;context.strokeStyle=ctx.strokeStyle;current.fillColor=ctx.fillStyle;current.strokeColor=ctx.strokeStyle;break;case PaintType.UNCOLORED:var cssColor=_util.Util.makeCssRgb(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:function TilingPattern_getPattern(ctx,owner){ctx=this.ctx;ctx.setTransform.apply(ctx,this.baseTransform);ctx.transform.apply(ctx,this.matrix);var temporaryPatternCanvas=this.createPatternCanvas(owner);return ctx.createPattern(temporaryPatternCanvas,"repeat");}};return TilingPattern;}();exports.TilingPattern=TilingPattern;}),(function(module,exports,__w_pdfjs_require__){"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;}),(function(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(typeof reason!=="object"||reason===null){return reason;} switch(reason.name){case "AbortException":return new _util.AbortException(reason.message);case "MissingPDFException":return new _util.MissingPDFException(reason.message);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.postMessageTransfers=true;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._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._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++;const sourceName=this.sourceName;const targetName=this.targetName;const 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};this._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 self=this;const action=this.actionHandler[data.action];const streamId=data.streamId;const sourceName=this.sourceName;const targetName=data.sourceName;const comObj=this.comObj;const streamSink={enqueue(chunk,size=1,transfers){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;} self._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;const sourceName=this.sourceName;const targetName=data.sourceName;const comObj=this.comObj;switch(data.stream){case StreamKind.START_COMPLETE:if(data.success){this.streamControllers[streamId].startCall.resolve();}else{this.streamControllers[streamId].startCall.reject(wrapReason(data.reason));} break;case StreamKind.PULL_COMPLETE:if(data.success){this.streamControllers[streamId].pullCall.resolve();}else{this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason));} break;case StreamKind.PULL:if(!this.streamSinks[streamId]){comObj.postMessage({sourceName,targetName,stream:StreamKind.PULL_COMPLETE,streamId,success:true});break;} if(this.streamSinks[streamId].desiredSize<=0&&data.desiredSize>0){this.streamSinks[streamId].sinkCapability.resolve();} this.streamSinks[streamId].desiredSize=data.desiredSize;const{onPull}=this.streamSinks[data.streamId];new Promise(function(resolve){resolve(onPull&&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)(this.streamControllers[streamId],"enqueue should have stream controller");if(this.streamControllers[streamId].isClosed){break;} this.streamControllers[streamId].controller.enqueue(data.chunk);break;case StreamKind.CLOSE:(0,_util.assert)(this.streamControllers[streamId],"close should have stream controller");if(this.streamControllers[streamId].isClosed){break;} this.streamControllers[streamId].isClosed=true;this.streamControllers[streamId].controller.close();this._deleteStreamController(streamId);break;case StreamKind.ERROR:(0,_util.assert)(this.streamControllers[streamId],"error should have stream controller");this.streamControllers[streamId].controller.error(wrapReason(data.reason));this._deleteStreamController(streamId);break;case StreamKind.CANCEL_COMPLETE:if(data.success){this.streamControllers[streamId].cancelCall.resolve();}else{this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason));} this._deleteStreamController(streamId);break;case StreamKind.CANCEL:if(!this.streamSinks[streamId]){break;} const{onCancel}=this.streamSinks[data.streamId];new Promise(function(resolve){resolve(onCancel&&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)});});this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason));this.streamSinks[streamId].isCancelled=true;delete this.streamSinks[streamId];break;default:throw new Error("Unexpected stream case");}} async _deleteStreamController(streamId){await Promise.allSettled([this.streamControllers[streamId].startCall,this.streamControllers[streamId].pullCall,this.streamControllers[streamId].cancelCall].map(function(capability){return capability&&capability.promise;}));delete this.streamControllers[streamId];} _postMessage(message,transfers){if(transfers&&this.postMessageTransfers){this.comObj.postMessage(message,transfers);}else{this.comObj.postMessage(message);}} destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage);}} exports.MessageHandler=MessageHandler;}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Metadata=void 0;var _util=__w_pdfjs_require__(2);var _xml_parser=__w_pdfjs_require__(15);class Metadata{constructor(data){(0,_util.assert)(typeof data==="string","Metadata: input is not a string");data=this._repair(data);const parser=new _xml_parser.SimpleXMLParser();const xmlDocument=parser.parseFromString(data);this._metadataMap=new Map();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.`);});let chars="";for(let i=0,ii=bytes.length;i=32&&code<127&&code!==60&&code!==62&&code!==38){chars+=String.fromCharCode(code);}else{chars+="&#x"+(0x10000+code).toString(16).substring(1)+";";}} return ">"+chars;});} _parse(xmlDocument){let rdf=xmlDocument.documentElement;if(rdf.nodeName.toLowerCase()!=="rdf:rdf"){rdf=rdf.firstChild;while(rdf&&rdf.nodeName.toLowerCase()!=="rdf:rdf"){rdf=rdf.nextSibling;}} const nodeName=rdf?rdf.nodeName.toLowerCase():null;if(!rdf||nodeName!=="rdf:rdf"||!rdf.hasChildNodes()){return;} const children=rdf.childNodes;for(let i=0,ii=children.length;i{if(entity.substring(0,2)==="#x"){return String.fromCharCode(parseInt(entity.substring(2),16));}else if(entity.substring(0,1)==="#"){return String.fromCharCode(parseInt(entity.substring(1),10));} switch(entity){case "lt":return "<";case "gt":return ">";case "amp":return "&";case "quot":return '"';} return this.onResolveEntity(entity);});} _parseContent(s,start){const attributes=[];let pos=start;function skipWs(){while(pos"&&s[pos]!=="/"){++pos;} const name=s.substring(start,pos);skipWs();while(pos"&&s[pos]!=="/"&&s[pos]!=="?"){skipWs();let attrName="",attrValue="";while(pos"&&s[pos]!=="/"){++pos;} const name=s.substring(start,pos);skipWs();const attrStart=pos;while(pos")){++pos;} const value=s.substring(attrStart,pos);return{name,value,parsed:pos-start};} parseXml(s){let i=0;while(i",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(j0;}} class SimpleXMLParser extends XMLParserBase{constructor(){super();this._currentFragment=null;this._stack=null;this._errorCode=XMLParserErrorCode.NoError;} 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};} onResolveEntity(name){switch(name){case "apos":return "'";} return super.onResolveEntity(name);} 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){const node=new SimpleDOMNode(name);node.childNodes=[];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[this._currentFragment.length-1];if(!lastElement){return;} for(let i=0,ii=lastElement.childNodes.length;i0){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(){return this._fullRequestReader?this._fullRequestReader._loaded:0;} _onProgress(evt){if(evt.total===undefined){const firstReader=this._rangeReaders[0];if(firstReader&&firstReader.onProgress){firstReader.onProgress({loaded:evt.loaded});}}else{const fullReader=this._fullRequestReader;if(fullReader&&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);} 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);} const readers=this._rangeReaders.slice(0);readers.forEach(function(rangeReader){rangeReader.cancel(reason);});this._pdfDataRangeTransport.abort();}} exports.PDFDataTransportStream=PDFDataTransportStream;class PDFDataTransportStreamReader{constructor(stream,queuedChunks,progressiveDone=false){this._stream=stream;this._done=progressiveDone||false;this._filename=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;this._requests.forEach(function(requestCapability){requestCapability.resolve({value:undefined,done:true});});this._requests=[];} 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});this._requests.forEach(function(requestCapability){requestCapability.resolve({value:undefined,done:true});});this._requests=[];} 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;this._requests.forEach(function(requestCapability){requestCapability.resolve({value:undefined,done:true});});this._requests=[];this._stream._removeRangeReader(this);}}}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.WebGLContext=void 0;var _util=__w_pdfjs_require__(2);class WebGLContext{constructor({enable=false}){this._enabled=enable===true;} get isEnabled(){let enabled=this._enabled;if(enabled){enabled=WebGLUtils.tryInitGL();} return(0,_util.shadow)(this,"isEnabled",enabled);} composeSMask({layer,mask,properties}){return WebGLUtils.composeSMask(layer,mask,properties);} drawFigures({width,height,backgroundColor,figures,context}){return WebGLUtils.drawFigures(width,height,backgroundColor,figures,context);} clear(){WebGLUtils.cleanup();}} exports.WebGLContext=WebGLContext;var WebGLUtils=function WebGLUtilsClosure(){function loadShader(gl,code,shaderType){var shader=gl.createShader(shaderType);gl.shaderSource(shader,code);gl.compileShader(shader);var compiled=gl.getShaderParameter(shader,gl.COMPILE_STATUS);if(!compiled){var errorMsg=gl.getShaderInfoLog(shader);throw new Error("Error during shader compilation: "+errorMsg);} return shader;} function createVertexShader(gl,code){return loadShader(gl,code,gl.VERTEX_SHADER);} function createFragmentShader(gl,code){return loadShader(gl,code,gl.FRAGMENT_SHADER);} function createProgram(gl,shaders){var program=gl.createProgram();for(var i=0,ii=shaders.length;i0){container.style.borderWidth=`${data.borderStyle.width}px`;if(data.borderStyle.style!==_util.AnnotationBorderStyleType.UNDERLINE){width=width-2*data.borderStyle.width;height=height-2*data.borderStyle.width;} const horizontalRadius=data.borderStyle.horizontalCornerRadius;const verticalRadius=data.borderStyle.verticalCornerRadius;if(horizontalRadius>0||verticalRadius>0){const radius=`${horizontalRadius}px / ${verticalRadius}px`;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;} if(data.color){container.style.borderColor=_util.Util.makeCssRgb(data.color[0]|0,data.color[1]|0,data.color[2]|0);}else{container.style.borderWidth=0;}} container.style.left=`${rect[0]}px`;container.style.top=`${rect[1]}px`;container.style.width=`${width}px`;container.style.height=`${height}px`;return container;} _createPopup(container,trigger,data){if(!trigger){trigger=document.createElement("div");trigger.style.height=container.style.height;trigger.style.width=container.style.width;container.appendChild(trigger);} const popupElement=new PopupElement({container,trigger,color:data.color,title:data.title,modificationDate:data.modificationDate,contents:data.contents,hideWrapper:true});const popup=popupElement.render();popup.style.left=container.style.width;container.appendChild(popup);} render(){(0,_util.unreachable)("Abstract method `AnnotationElement.render` called");}} class LinkAnnotationElement extends AnnotationElement{constructor(parameters){const isRenderable=!!(parameters.data.url||parameters.data.dest||parameters.data.action);super(parameters,isRenderable);} render(){this.container.className="linkAnnotation";const{data,linkService}=this;const link=document.createElement("a");if(data.url){(0,_display_utils.addLinkAttributes)(link,{url:data.url,target:data.newWindow?_display_utils.LinkTarget.BLANK:linkService.externalLinkTarget,rel:linkService.externalLinkRel,enabled:linkService.externalLinkEnabled});}else if(data.action){this._bindNamedAction(link,data.action);}else{this._bindLink(link,data.dest);} this.container.appendChild(link);return this.container;} _bindLink(link,destination){link.href=this.linkService.getDestinationHash(destination);link.onclick=()=>{if(destination){this.linkService.navigateTo(destination);} return false;};if(destination){link.className="internalLink";}} _bindNamedAction(link,action){link.href=this.linkService.getAnchorUrl("");link.onclick=()=>{this.linkService.executeNamedAction(action);return false;};link.className="internalLink";}} class TextAnnotationElement extends AnnotationElement{constructor(parameters){const isRenderable=!!(parameters.data.hasPopup||parameters.data.title||parameters.data.contents);super(parameters,isRenderable);} render(){this.container.className="textAnnotation";const image=document.createElement("img");image.style.height=this.container.style.height;image.style.width=this.container.style.width;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(this.container,image,this.data);} this.container.appendChild(image);return this.container;}} class WidgetAnnotationElement extends AnnotationElement{render(){return this.container;}} class TextWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){const isRenderable=parameters.renderInteractiveForms||!parameters.data.hasAppearance&&!!parameters.data.fieldValue;super(parameters,isRenderable);} render(){const TEXT_ALIGNMENT=["left","center","right"];const storage=this.annotationStorage;const id=this.data.id;this.container.className="textWidgetAnnotation";let element=null;if(this.renderInteractiveForms){const textContent=storage.getOrCreateValue(id,this.data.fieldValue);if(this.data.multiLine){element=document.createElement("textarea");element.textContent=textContent;}else{element=document.createElement("input");element.type="text";element.setAttribute("value",textContent);} element.addEventListener("input",function(event){storage.setValue(id,event.target.value);});element.disabled=this.data.readOnly;element.name=this.data.fieldName;if(this.data.maxLen!==null){element.maxLength=this.data.maxLen;} if(this.data.comb){const fieldWidth=this.data.rect[2]-this.data.rect[0];const combWidth=fieldWidth/this.data.maxLen;element.classList.add("comb");element.style.letterSpacing=`calc(${combWidth}px - 1ch)`;}}else{element=document.createElement("div");element.textContent=this.data.fieldValue;element.style.verticalAlign="middle";element.style.display="table-cell";let font=null;if(this.data.fontRefName&&this.page.commonObjs.has(this.data.fontRefName)){font=this.page.commonObjs.get(this.data.fontRefName);} this._setTextStyle(element,font);} if(this.data.textAlignment!==null){element.style.textAlign=TEXT_ALIGNMENT[this.data.textAlignment];} this.container.appendChild(element);return this.container;} _setTextStyle(element,font){const style=element.style;style.fontSize=`${this.data.fontSize}px`;style.direction=this.data.fontDirection<0?"rtl":"ltr";if(!font){return;} let bold="normal";if(font.black){bold="900";}else if(font.bold){bold="bold";} style.fontWeight=bold;style.fontStyle=font.italic?"italic":"normal";const fontFamily=font.loadedName?`"${font.loadedName}", `:"";const fallbackName=font.fallbackName||"Helvetica, sans-serif";style.fontFamily=fontFamily+fallbackName;}} class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){super(parameters,parameters.renderInteractiveForms);} render(){const storage=this.annotationStorage;const data=this.data;const id=data.id;const value=storage.getOrCreateValue(id,data.fieldValue&&data.fieldValue!=="Off");this.container.className="buttonWidgetAnnotation checkBox";const element=document.createElement("input");element.disabled=data.readOnly;element.type="checkbox";element.name=this.data.fieldName;if(value){element.setAttribute("checked",true);} element.addEventListener("change",function(event){storage.setValue(id,event.target.checked);});this.container.appendChild(element);return this.container;}} class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){super(parameters,parameters.renderInteractiveForms);} render(){this.container.className="buttonWidgetAnnotation radioButton";const storage=this.annotationStorage;const data=this.data;const id=data.id;const value=storage.getOrCreateValue(id,data.fieldValue===data.buttonValue);const element=document.createElement("input");element.disabled=data.readOnly;element.type="radio";element.name=data.fieldName;if(value){element.setAttribute("checked",true);} element.addEventListener("change",function(event){const name=event.target.name;for(const radio of document.getElementsByName(name)){if(radio!==event.target){storage.setValue(radio.parentNode.getAttribute("data-annotation-id"),false);}} storage.setValue(id,event.target.checked);});this.container.appendChild(element);return this.container;}} class PushButtonWidgetAnnotationElement extends LinkAnnotationElement{render(){const container=super.render();container.className="buttonWidgetAnnotation pushButton";return container;}} class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement{constructor(parameters){super(parameters,parameters.renderInteractiveForms);} render(){this.container.className="choiceWidgetAnnotation";const storage=this.annotationStorage;const id=this.data.id;storage.getOrCreateValue(id,this.data.fieldValue.length>0?this.data.fieldValue[0]:null);const selectElement=document.createElement("select");selectElement.disabled=this.data.readOnly;selectElement.name=this.data.fieldName;if(!this.data.combo){selectElement.size=this.data.options.length;if(this.data.multiSelect){selectElement.multiple=true;}} for(const option of this.data.options){const optionElement=document.createElement("option");optionElement.textContent=option.displayValue;optionElement.value=option.exportValue;if(this.data.fieldValue.includes(option.exportValue)){optionElement.setAttribute("selected",true);} selectElement.appendChild(optionElement);} selectElement.addEventListener("input",function(event){const options=event.target.options;const value=options[options.selectedIndex].value;storage.setValue(id,value);});this.container.appendChild(selectElement);return this.container;}} class PopupAnnotationElement extends AnnotationElement{constructor(parameters){const isRenderable=!!(parameters.data.title||parameters.data.contents);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 parentElement=this.layer.querySelector(selector);if(!parentElement){return this.container;} const popup=new PopupElement({container:this.container,trigger:parentElement,color:this.data.color,title:this.data.title,modificationDate:this.data.modificationDate,contents:this.data.contents});const parentLeft=parseFloat(parentElement.style.left);const parentWidth=parseFloat(parentElement.style.width);this.container.style.transformOrigin=`-${parentLeft+parentWidth}px -${parentElement.style.top}`;this.container.style.left=`${parentLeft+parentWidth}px`;this.container.appendChild(popup.render());return this.container;}} class PopupElement{constructor(parameters){this.container=parameters.container;this.trigger=parameters.trigger;this.color=parameters.color;this.title=parameters.title;this.modificationDate=parameters.modificationDate;this.contents=parameters.contents;this.hideWrapper=parameters.hideWrapper||false;this.pinned=false;} render(){const BACKGROUND_ENLIGHT=0.7;const wrapper=document.createElement("div");wrapper.className="popupWrapper";this.hideElement=this.hideWrapper?wrapper:this.container;this.hideElement.setAttribute("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.makeCssRgb(r|0,g|0,b|0);} const title=document.createElement("h1");title.textContent=this.title;popup.appendChild(title);const dateObject=_display_utils.PDFDateString.toDateObject(this.modificationDate);if(dateObject){const modificationDate=document.createElement("span");modificationDate.textContent="{{date}}, {{time}}";modificationDate.dataset.l10nId="annotation_date_string";modificationDate.dataset.l10nArgs=JSON.stringify({date:dateObject.toLocaleDateString(),time:dateObject.toLocaleTimeString()});popup.appendChild(modificationDate);} const contents=this._formatContents(this.contents);popup.appendChild(contents);this.trigger.addEventListener("click",this._toggle.bind(this));this.trigger.addEventListener("mouseover",this._show.bind(this,false));this.trigger.addEventListener("mouseout",this._hide.bind(this,false));popup.addEventListener("click",this._hide.bind(this,true));wrapper.appendChild(popup);return wrapper;} _formatContents(contents){const p=document.createElement("p");const lines=contents.split(/(?:\r\n?|\n)/);for(let i=0,ii=lines.length;i1){shouldScaleText=true;}else if(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){var angleCos=1,angleSin=0;if(angle!==0){angleCos=Math.cos(angle);angleSin=Math.sin(angle);} var divWidth=(style.vertical?geom.height:geom.width)*task._viewport.scale;var divHeight=fontHeight;var 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;} var textDivs=task._textDivs;var capability=task._capability;var textDivsLength=textDivs.length;if(textDivsLength>MAX_TEXT_DIVS_TO_RENDER){task._renderingDone=true;capability.resolve();return;} if(!task._textContentStream){for(var i=0;i0){result=result?Math.min(t,result):t;}} return result;} function expand(task){var bounds=task._bounds;var viewport=task._viewport;var expanded=expandBounds(viewport.width,viewport.height,bounds);for(var i=0;i=0&&horizon[j].start>=boundary.y2){j--;} var horizonPart,affectedBoundary;var q,k,maxXNew=-Infinity;for(q=i;q<=j;q++){horizonPart=horizon[q];affectedBoundary=horizonPart.boundary;var 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);}} var changedHorizon=[],lastBoundary=null;for(q=i;q<=j;q++){horizonPart=horizon[q];affectedBoundary=horizonPart.boundary;var useBoundary=affectedBoundary.x2>boundary.x2?affectedBoundary:boundary;if(lastBoundary===useBoundary){changedHorizon[changedHorizon.length-1].end=horizonPart.end;}else{changedHorizon.push({start:horizonPart.start,end:horizonPart.end,boundary:useBoundary});lastBoundary=useBoundary;}} if(horizon[i].start=0&&horizon[k].start>=affectedBoundary.y1;k--){used=horizon[k].boundary===affectedBoundary;} for(k=j+1;!used&&k{if(this._layoutTextCtx){this._layoutTextCtx.canvas.width=0;this._layoutTextCtx.canvas.height=0;this._layoutTextCtx=null;}}).catch(()=>{});} TextLayerRenderTask.prototype={get promise(){return this._capability.promise;},cancel:function TextLayer_cancel(){this._canceled=true;if(this._reader){this._reader.cancel(new _util.AbortException("TextLayer task cancelled."));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;i0){textDivProperties.scale=textDivProperties.canvasWidth/width;transform=`scaleX(${textDivProperties.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;} this._textDivProperties.set(textDiv,textDivProperties);this._container.appendChild(textDiv);},_render:function TextLayer_render(timeout){const capability=(0,_util.createPromiseCapability)();let styleCache=Object.create(null);const canvas=this._document.createElement("canvas");canvas.mozOpaque=true;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(({value,done})=>{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:function TextLayer_expandTextDivs(expandDivs){if(!this._enhanceTextSelection||!this._renderingDone){return;} if(this._bounds!==null){expand(this);this._bounds=null;} const transformBuf=[],paddingBuf=[];for(var i=0,ii=this._textDivs.length;i0){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;}}}};function renderTextLayer(renderParameters){var 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;} return renderTextLayer;}();exports.renderTextLayer=renderTextLayer;}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SVGGraphics=void 0;var _util=__w_pdfjs_require__(2);var _display_utils=__w_pdfjs_require__(1);var _is_node=__w_pdfjs_require__(4);let SVGGraphics=function(){throw new Error("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 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>>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=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>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(0,_util.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[opTree.length-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 SVGGraphics{constructor(commonObjs,objs,forceDataSchema=false){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{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;i0){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.makeCssRgb(r,g,b);} setFillAlpha(fillAlpha){this.current.fillAlpha=fillAlpha;} setFillRGBColor(r,g,b){this.current.fillColor=_util.Util.makeCssRgb(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().appendChild(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]=_util.Util.applyTransform([x0,y0],matrix);const[tx1,ty1]=_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.makeCssRgb(...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.appendChild(bbox.childNodes[0]);this.defs.appendChild(tiling);return `url(#${tilingId})`;} _makeShadingPattern(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.appendChild(stop);} this.defs.appendChild(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().appendChild(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.appendChild(clipElement);this.defs.appendChild(clipPath);if(current.activeClipUrl){current.clipGroup=null;this.extraStack.forEach(function(prev){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,lineWidthScale=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().appendChild(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.appendChild(imgEl);}else{this._ensureTransformGroup().appendChild(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.appendChild(mask);this._ensureTransformGroup().appendChild(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.appendChild(definitions);this.defs=definitions;const rootGroup=this.svgFactory.createElement("svg:g");rootGroup.setAttributeNS(null,"transform",pm(viewport.transform));svg.appendChild(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.appendChild(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().appendChild(this.tgrp);}else{this.svg.appendChild(this.tgrp);}} return this.tgrp;}};}}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.PDFNodeStream=void 0;var _util=__w_pdfjs_require__(2);var _network_utils=__w_pdfjs_require__(23);;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(){return this._fullRequestReader?this._fullRequestReader._loaded: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);} const readers=this._rangeRequestReaders.slice(0);readers.forEach(function(reader){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}));}}}),(function(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__(2);var _content_disposition=__w_pdfjs_require__(24);function validateRangeRequestCapabilities({getResponseHeader,isHttp,rangeChunkSize,disableRange}){(0,_util.assert)(rangeChunkSize>0,"Range chunk size must be larger than zero");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(/\.pdf$/i.test(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;}}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getFilenameFromContentDispositionHeader=getFilenameFromContentDispositionHeader;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 bytes=Array.from(value,function(ch){return ch.charCodeAt(0)&0xff;});value=decoder.decode(new Uint8Array(bytes));needsEncodingFixup=false;}catch(e){if(/^utf-?8$/i.test(encoding)){try{value=decodeURIComponent(escape(value));needsEncodingFixup=false;}catch(err){}}}} 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=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){if(pendingRequest.onError){pendingRequest.onError(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){if(pendingRequest.onError){pendingRequest.onError(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 if(pendingRequest.onError){pendingRequest.onError(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){if(this._fullRequestReader){this._fullRequestReader.cancel(reason);} const readers=this._rangeRequestReaders.slice(0);readers.forEach(function(reader){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(args){if(args){if(this._requests.length>0){const requestCapability=this._requests.shift();requestCapability.resolve({value:args.chunk,done:false});}else{this._cachedChunks.push(args.chunk);}} this._done=true;if(this._cachedChunks.length>0){return;} this._requests.forEach(function(requestCapability){requestCapability.resolve({value:undefined,done:true});});this._requests=[];} _onError(status){const url=this._url;const exception=(0,_network_utils.createResponseStatusError)(status,url);this._storedError=exception;this._headersReceivedCapability.reject(exception);this._requests.forEach(function(requestCapability){requestCapability.reject(exception);});this._requests=[];this._cachedChunks=[];} _onProgress(data){if(this.onProgress){this.onProgress({loaded:data.loaded,total:data.lengthComputable?data.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);this._requests.forEach(function(requestCapability){requestCapability.resolve({value:undefined,done:true});});this._requests=[];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),onProgress:this._onProgress.bind(this)};this._requestId=manager.requestRange(begin,end,args);this._requests=[];this._queuedChunk=null;this._done=false;this.onProgress=null;this.onClosed=null;} _close(){if(this.onClosed){this.onClosed(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;this._requests.forEach(function(requestCapability){requestCapability.resolve({value:undefined,done:true});});this._requests=[];this._close();} _onProgress(evt){if(!this.isStreamingSupported&&this.onProgress){this.onProgress({loaded:evt.loaded});}} get isStreamingSupported(){return false;} async read(){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;this._requests.forEach(function(requestCapability){requestCapability.resolve({value:undefined,done:true});});this._requests=[];if(this._manager.isPendingRequest(this._requestId)){this._manager.abortRequest(this._requestId);} this._close();}}}),(function(module,exports,__w_pdfjs_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.PDFFetchStream=void 0;var _util=__w_pdfjs_require__(2);var _network_utils=__w_pdfjs_require__(23);;function createFetchOptions(headers,withCredentials,abortController){return{method:"GET",headers,signal:abortController&&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(){return this._fullRequestReader?this._fullRequestReader._loaded: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);} const readers=this._rangeRequestReaders.slice(0);readers.forEach(function(reader){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;} if(typeof AbortController!=="undefined"){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);} if(this._abortController){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;if(typeof AbortController!=="undefined"){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(reason=>{if(reason&&reason.name==="AbortError"){return;} throw reason;});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);} if(this._abortController){this._abortController.abort();}}}})]);});