UNPKG

698 kBJavaScriptView Raw
1/**
2 * @licstart The following is the entire license notice for the
3 * Javascript code in this page
4 *
5 * Copyright 2018 Mozilla Foundation
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 * @licend The above is the entire license notice for the
20 * Javascript code in this page
21 */
22
23(function webpackUniversalModuleDefinition(root, factory) {
24 if(typeof exports === 'object' && typeof module === 'object')
25 module.exports = factory();
26 else if(typeof define === 'function' && define.amd)
27 define("pdfjs-dist/build/pdf", [], factory);
28 else if(typeof exports === 'object')
29 exports["pdfjs-dist/build/pdf"] = factory();
30 else
31 root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory();
32})(this, function() {
33return /******/ (function(modules) { // webpackBootstrap
34/******/ // The module cache
35/******/ var installedModules = {};
36/******/
37/******/ // The require function
38/******/ function __w_pdfjs_require__(moduleId) {
39/******/
40/******/ // Check if module is in cache
41/******/ if(installedModules[moduleId]) {
42/******/ return installedModules[moduleId].exports;
43/******/ }
44/******/ // Create a new module (and put it into the cache)
45/******/ var module = installedModules[moduleId] = {
46/******/ i: moduleId,
47/******/ l: false,
48/******/ exports: {}
49/******/ };
50/******/
51/******/ // Execute the module function
52/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);
53/******/
54/******/ // Flag the module as loaded
55/******/ module.l = true;
56/******/
57/******/ // Return the exports of the module
58/******/ return module.exports;
59/******/ }
60/******/
61/******/
62/******/ // expose the modules object (__webpack_modules__)
63/******/ __w_pdfjs_require__.m = modules;
64/******/
65/******/ // expose the module cache
66/******/ __w_pdfjs_require__.c = installedModules;
67/******/
68/******/ // define getter function for harmony exports
69/******/ __w_pdfjs_require__.d = function(exports, name, getter) {
70/******/ if(!__w_pdfjs_require__.o(exports, name)) {
71/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
72/******/ }
73/******/ };
74/******/
75/******/ // define __esModule on exports
76/******/ __w_pdfjs_require__.r = function(exports) {
77/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
78/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
79/******/ }
80/******/ Object.defineProperty(exports, '__esModule', { value: true });
81/******/ };
82/******/
83/******/ // create a fake namespace object
84/******/ // mode & 1: value is a module id, require it
85/******/ // mode & 2: merge all properties of value into the ns
86/******/ // mode & 4: return value when already ns object
87/******/ // mode & 8|1: behave like require
88/******/ __w_pdfjs_require__.t = function(value, mode) {
89/******/ if(mode & 1) value = __w_pdfjs_require__(value);
90/******/ if(mode & 8) return value;
91/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
92/******/ var ns = Object.create(null);
93/******/ __w_pdfjs_require__.r(ns);
94/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
95/******/ 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));
96/******/ return ns;
97/******/ };
98/******/
99/******/ // getDefaultExport function for compatibility with non-harmony modules
100/******/ __w_pdfjs_require__.n = function(module) {
101/******/ var getter = module && module.__esModule ?
102/******/ function getDefault() { return module['default']; } :
103/******/ function getModuleExports() { return module; };
104/******/ __w_pdfjs_require__.d(getter, 'a', getter);
105/******/ return getter;
106/******/ };
107/******/
108/******/ // Object.prototype.hasOwnProperty.call
109/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
110/******/
111/******/ // __webpack_public_path__
112/******/ __w_pdfjs_require__.p = "";
113/******/
114/******/
115/******/ // Load entry module and return exports
116/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 0);
117/******/ })
118/************************************************************************/
119/******/ ([
120/* 0 */
121/***/ (function(module, exports, __w_pdfjs_require__) {
122
123"use strict";
124
125
126var pdfjsVersion = '2.1.266';
127var pdfjsBuild = '81f5835c';
128
129var pdfjsSharedUtil = __w_pdfjs_require__(1);
130
131var pdfjsDisplayAPI = __w_pdfjs_require__(146);
132
133var pdfjsDisplayTextLayer = __w_pdfjs_require__(162);
134
135var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(163);
136
137var pdfjsDisplayDOMUtils = __w_pdfjs_require__(151);
138
139var pdfjsDisplaySVG = __w_pdfjs_require__(164);
140
141var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(156);
142
143var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(153);
144
145{
146 var isNodeJS = __w_pdfjs_require__(4);
147
148 if (isNodeJS()) {
149 var PDFNodeStream = __w_pdfjs_require__(165).PDFNodeStream;
150
151 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {
152 return new PDFNodeStream(params);
153 });
154 } else if (typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined') {
155 var PDFFetchStream = __w_pdfjs_require__(168).PDFFetchStream;
156
157 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {
158 return new PDFFetchStream(params);
159 });
160 } else {
161 var PDFNetworkStream = __w_pdfjs_require__(169).PDFNetworkStream;
162
163 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {
164 return new PDFNetworkStream(params);
165 });
166 }
167}
168exports.build = pdfjsDisplayAPI.build;
169exports.version = pdfjsDisplayAPI.version;
170exports.getDocument = pdfjsDisplayAPI.getDocument;
171exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;
172exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;
173exports.PDFWorker = pdfjsDisplayAPI.PDFWorker;
174exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;
175exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;
176exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;
177exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;
178exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;
179exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;
180exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;
181exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;
182exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;
183exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;
184exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException;
185exports.OPS = pdfjsSharedUtil.OPS;
186exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;
187exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;
188exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;
189exports.createObjectURL = pdfjsSharedUtil.createObjectURL;
190exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;
191exports.shadow = pdfjsSharedUtil.shadow;
192exports.Util = pdfjsSharedUtil.Util;
193exports.ReadableStream = pdfjsSharedUtil.ReadableStream;
194exports.URL = pdfjsSharedUtil.URL;
195exports.RenderingCancelledException = pdfjsDisplayDOMUtils.RenderingCancelledException;
196exports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl;
197exports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget;
198exports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes;
199exports.loadScript = pdfjsDisplayDOMUtils.loadScript;
200exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;
201exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams;
202
203/***/ }),
204/* 1 */
205/***/ (function(module, exports, __w_pdfjs_require__) {
206
207"use strict";
208
209
210Object.defineProperty(exports, "__esModule", {
211 value: true
212});
213exports.toRomanNumerals = toRomanNumerals;
214exports.arrayByteLength = arrayByteLength;
215exports.arraysToBytes = arraysToBytes;
216exports.assert = assert;
217exports.bytesToString = bytesToString;
218exports.createPromiseCapability = createPromiseCapability;
219exports.deprecated = deprecated;
220exports.getInheritableProperty = getInheritableProperty;
221exports.getLookupTableFactory = getLookupTableFactory;
222exports.getVerbosityLevel = getVerbosityLevel;
223exports.info = info;
224exports.isArrayBuffer = isArrayBuffer;
225exports.isBool = isBool;
226exports.isEmptyObj = isEmptyObj;
227exports.isNum = isNum;
228exports.isString = isString;
229exports.isSpace = isSpace;
230exports.isSameOrigin = isSameOrigin;
231exports.createValidAbsoluteUrl = createValidAbsoluteUrl;
232exports.isLittleEndian = isLittleEndian;
233exports.isEvalSupported = isEvalSupported;
234exports.log2 = log2;
235exports.readInt8 = readInt8;
236exports.readUint16 = readUint16;
237exports.readUint32 = readUint32;
238exports.removeNullCharacters = removeNullCharacters;
239exports.setVerbosityLevel = setVerbosityLevel;
240exports.shadow = shadow;
241exports.string32 = string32;
242exports.stringToBytes = stringToBytes;
243exports.stringToPDFString = stringToPDFString;
244exports.stringToUTF8String = stringToUTF8String;
245exports.utf8StringToString = utf8StringToString;
246exports.warn = warn;
247exports.unreachable = unreachable;
248Object.defineProperty(exports, "ReadableStream", {
249 enumerable: true,
250 get: function get() {
251 return _streams_polyfill.ReadableStream;
252 }
253});
254Object.defineProperty(exports, "URL", {
255 enumerable: true,
256 get: function get() {
257 return _url_polyfill.URL;
258 }
259});
260exports.createObjectURL = exports.FormatError = exports.XRefParseException = exports.XRefEntryException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = void 0;
261
262__w_pdfjs_require__(2);
263
264var _streams_polyfill = __w_pdfjs_require__(142);
265
266var _url_polyfill = __w_pdfjs_require__(144);
267
268function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
269
270var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
271exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
272var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
273exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;
274var NativeImageDecoding = {
275 NONE: 'none',
276 DECODE: 'decode',
277 DISPLAY: 'display'
278};
279exports.NativeImageDecoding = NativeImageDecoding;
280var PermissionFlag = {
281 PRINT: 0x04,
282 MODIFY_CONTENTS: 0x08,
283 COPY: 0x10,
284 MODIFY_ANNOTATIONS: 0x20,
285 FILL_INTERACTIVE_FORMS: 0x100,
286 COPY_FOR_ACCESSIBILITY: 0x200,
287 ASSEMBLE: 0x400,
288 PRINT_HIGH_QUALITY: 0x800
289};
290exports.PermissionFlag = PermissionFlag;
291var TextRenderingMode = {
292 FILL: 0,
293 STROKE: 1,
294 FILL_STROKE: 2,
295 INVISIBLE: 3,
296 FILL_ADD_TO_PATH: 4,
297 STROKE_ADD_TO_PATH: 5,
298 FILL_STROKE_ADD_TO_PATH: 6,
299 ADD_TO_PATH: 7,
300 FILL_STROKE_MASK: 3,
301 ADD_TO_PATH_FLAG: 4
302};
303exports.TextRenderingMode = TextRenderingMode;
304var ImageKind = {
305 GRAYSCALE_1BPP: 1,
306 RGB_24BPP: 2,
307 RGBA_32BPP: 3
308};
309exports.ImageKind = ImageKind;
310var AnnotationType = {
311 TEXT: 1,
312 LINK: 2,
313 FREETEXT: 3,
314 LINE: 4,
315 SQUARE: 5,
316 CIRCLE: 6,
317 POLYGON: 7,
318 POLYLINE: 8,
319 HIGHLIGHT: 9,
320 UNDERLINE: 10,
321 SQUIGGLY: 11,
322 STRIKEOUT: 12,
323 STAMP: 13,
324 CARET: 14,
325 INK: 15,
326 POPUP: 16,
327 FILEATTACHMENT: 17,
328 SOUND: 18,
329 MOVIE: 19,
330 WIDGET: 20,
331 SCREEN: 21,
332 PRINTERMARK: 22,
333 TRAPNET: 23,
334 WATERMARK: 24,
335 THREED: 25,
336 REDACT: 26
337};
338exports.AnnotationType = AnnotationType;
339var AnnotationFlag = {
340 INVISIBLE: 0x01,
341 HIDDEN: 0x02,
342 PRINT: 0x04,
343 NOZOOM: 0x08,
344 NOROTATE: 0x10,
345 NOVIEW: 0x20,
346 READONLY: 0x40,
347 LOCKED: 0x80,
348 TOGGLENOVIEW: 0x100,
349 LOCKEDCONTENTS: 0x200
350};
351exports.AnnotationFlag = AnnotationFlag;
352var AnnotationFieldFlag = {
353 READONLY: 0x0000001,
354 REQUIRED: 0x0000002,
355 NOEXPORT: 0x0000004,
356 MULTILINE: 0x0001000,
357 PASSWORD: 0x0002000,
358 NOTOGGLETOOFF: 0x0004000,
359 RADIO: 0x0008000,
360 PUSHBUTTON: 0x0010000,
361 COMBO: 0x0020000,
362 EDIT: 0x0040000,
363 SORT: 0x0080000,
364 FILESELECT: 0x0100000,
365 MULTISELECT: 0x0200000,
366 DONOTSPELLCHECK: 0x0400000,
367 DONOTSCROLL: 0x0800000,
368 COMB: 0x1000000,
369 RICHTEXT: 0x2000000,
370 RADIOSINUNISON: 0x2000000,
371 COMMITONSELCHANGE: 0x4000000
372};
373exports.AnnotationFieldFlag = AnnotationFieldFlag;
374var AnnotationBorderStyleType = {
375 SOLID: 1,
376 DASHED: 2,
377 BEVELED: 3,
378 INSET: 4,
379 UNDERLINE: 5
380};
381exports.AnnotationBorderStyleType = AnnotationBorderStyleType;
382var StreamType = {
383 UNKNOWN: 0,
384 FLATE: 1,
385 LZW: 2,
386 DCT: 3,
387 JPX: 4,
388 JBIG: 5,
389 A85: 6,
390 AHX: 7,
391 CCF: 8,
392 RL: 9
393};
394exports.StreamType = StreamType;
395var FontType = {
396 UNKNOWN: 0,
397 TYPE1: 1,
398 TYPE1C: 2,
399 CIDFONTTYPE0: 3,
400 CIDFONTTYPE0C: 4,
401 TRUETYPE: 5,
402 CIDFONTTYPE2: 6,
403 TYPE3: 7,
404 OPENTYPE: 8,
405 TYPE0: 9,
406 MMTYPE1: 10
407};
408exports.FontType = FontType;
409var VerbosityLevel = {
410 ERRORS: 0,
411 WARNINGS: 1,
412 INFOS: 5
413};
414exports.VerbosityLevel = VerbosityLevel;
415var CMapCompressionType = {
416 NONE: 0,
417 BINARY: 1,
418 STREAM: 2
419};
420exports.CMapCompressionType = CMapCompressionType;
421var OPS = {
422 dependency: 1,
423 setLineWidth: 2,
424 setLineCap: 3,
425 setLineJoin: 4,
426 setMiterLimit: 5,
427 setDash: 6,
428 setRenderingIntent: 7,
429 setFlatness: 8,
430 setGState: 9,
431 save: 10,
432 restore: 11,
433 transform: 12,
434 moveTo: 13,
435 lineTo: 14,
436 curveTo: 15,
437 curveTo2: 16,
438 curveTo3: 17,
439 closePath: 18,
440 rectangle: 19,
441 stroke: 20,
442 closeStroke: 21,
443 fill: 22,
444 eoFill: 23,
445 fillStroke: 24,
446 eoFillStroke: 25,
447 closeFillStroke: 26,
448 closeEOFillStroke: 27,
449 endPath: 28,
450 clip: 29,
451 eoClip: 30,
452 beginText: 31,
453 endText: 32,
454 setCharSpacing: 33,
455 setWordSpacing: 34,
456 setHScale: 35,
457 setLeading: 36,
458 setFont: 37,
459 setTextRenderingMode: 38,
460 setTextRise: 39,
461 moveText: 40,
462 setLeadingMoveText: 41,
463 setTextMatrix: 42,
464 nextLine: 43,
465 showText: 44,
466 showSpacedText: 45,
467 nextLineShowText: 46,
468 nextLineSetSpacingShowText: 47,
469 setCharWidth: 48,
470 setCharWidthAndBounds: 49,
471 setStrokeColorSpace: 50,
472 setFillColorSpace: 51,
473 setStrokeColor: 52,
474 setStrokeColorN: 53,
475 setFillColor: 54,
476 setFillColorN: 55,
477 setStrokeGray: 56,
478 setFillGray: 57,
479 setStrokeRGBColor: 58,
480 setFillRGBColor: 59,
481 setStrokeCMYKColor: 60,
482 setFillCMYKColor: 61,
483 shadingFill: 62,
484 beginInlineImage: 63,
485 beginImageData: 64,
486 endInlineImage: 65,
487 paintXObject: 66,
488 markPoint: 67,
489 markPointProps: 68,
490 beginMarkedContent: 69,
491 beginMarkedContentProps: 70,
492 endMarkedContent: 71,
493 beginCompat: 72,
494 endCompat: 73,
495 paintFormXObjectBegin: 74,
496 paintFormXObjectEnd: 75,
497 beginGroup: 76,
498 endGroup: 77,
499 beginAnnotations: 78,
500 endAnnotations: 79,
501 beginAnnotation: 80,
502 endAnnotation: 81,
503 paintJpegXObject: 82,
504 paintImageMaskXObject: 83,
505 paintImageMaskXObjectGroup: 84,
506 paintImageXObject: 85,
507 paintInlineImageXObject: 86,
508 paintInlineImageXObjectGroup: 87,
509 paintImageXObjectRepeat: 88,
510 paintImageMaskXObjectRepeat: 89,
511 paintSolidColorImageMask: 90,
512 constructPath: 91
513};
514exports.OPS = OPS;
515var UNSUPPORTED_FEATURES = {
516 unknown: 'unknown',
517 forms: 'forms',
518 javaScript: 'javaScript',
519 smask: 'smask',
520 shadingPattern: 'shadingPattern',
521 font: 'font'
522};
523exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;
524var PasswordResponses = {
525 NEED_PASSWORD: 1,
526 INCORRECT_PASSWORD: 2
527};
528exports.PasswordResponses = PasswordResponses;
529var verbosity = VerbosityLevel.WARNINGS;
530
531function setVerbosityLevel(level) {
532 if (Number.isInteger(level)) {
533 verbosity = level;
534 }
535}
536
537function getVerbosityLevel() {
538 return verbosity;
539}
540
541function info(msg) {
542 if (verbosity >= VerbosityLevel.INFOS) {
543 console.log('Info: ' + msg);
544 }
545}
546
547function warn(msg) {
548 if (verbosity >= VerbosityLevel.WARNINGS) {
549 console.log('Warning: ' + msg);
550 }
551}
552
553function deprecated(details) {
554 console.log('Deprecated API usage: ' + details);
555}
556
557function unreachable(msg) {
558 throw new Error(msg);
559}
560
561function assert(cond, msg) {
562 if (!cond) {
563 unreachable(msg);
564 }
565}
566
567function isSameOrigin(baseUrl, otherUrl) {
568 try {
569 var base = new _url_polyfill.URL(baseUrl);
570
571 if (!base.origin || base.origin === 'null') {
572 return false;
573 }
574 } catch (e) {
575 return false;
576 }
577
578 var other = new _url_polyfill.URL(otherUrl, base);
579 return base.origin === other.origin;
580}
581
582function _isValidProtocol(url) {
583 if (!url) {
584 return false;
585 }
586
587 switch (url.protocol) {
588 case 'http:':
589 case 'https:':
590 case 'ftp:':
591 case 'mailto:':
592 case 'tel:':
593 return true;
594
595 default:
596 return false;
597 }
598}
599
600function createValidAbsoluteUrl(url, baseUrl) {
601 if (!url) {
602 return null;
603 }
604
605 try {
606 var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url);
607
608 if (_isValidProtocol(absoluteUrl)) {
609 return absoluteUrl;
610 }
611 } catch (ex) {}
612
613 return null;
614}
615
616function shadow(obj, prop, value) {
617 Object.defineProperty(obj, prop, {
618 value: value,
619 enumerable: true,
620 configurable: true,
621 writable: false
622 });
623 return value;
624}
625
626function getLookupTableFactory(initializer) {
627 var lookup;
628 return function () {
629 if (initializer) {
630 lookup = Object.create(null);
631 initializer(lookup);
632 initializer = null;
633 }
634
635 return lookup;
636 };
637}
638
639var PasswordException = function PasswordExceptionClosure() {
640 function PasswordException(msg, code) {
641 this.name = 'PasswordException';
642 this.message = msg;
643 this.code = code;
644 }
645
646 PasswordException.prototype = new Error();
647 PasswordException.constructor = PasswordException;
648 return PasswordException;
649}();
650
651exports.PasswordException = PasswordException;
652
653var UnknownErrorException = function UnknownErrorExceptionClosure() {
654 function UnknownErrorException(msg, details) {
655 this.name = 'UnknownErrorException';
656 this.message = msg;
657 this.details = details;
658 }
659
660 UnknownErrorException.prototype = new Error();
661 UnknownErrorException.constructor = UnknownErrorException;
662 return UnknownErrorException;
663}();
664
665exports.UnknownErrorException = UnknownErrorException;
666
667var InvalidPDFException = function InvalidPDFExceptionClosure() {
668 function InvalidPDFException(msg) {
669 this.name = 'InvalidPDFException';
670 this.message = msg;
671 }
672
673 InvalidPDFException.prototype = new Error();
674 InvalidPDFException.constructor = InvalidPDFException;
675 return InvalidPDFException;
676}();
677
678exports.InvalidPDFException = InvalidPDFException;
679
680var MissingPDFException = function MissingPDFExceptionClosure() {
681 function MissingPDFException(msg) {
682 this.name = 'MissingPDFException';
683 this.message = msg;
684 }
685
686 MissingPDFException.prototype = new Error();
687 MissingPDFException.constructor = MissingPDFException;
688 return MissingPDFException;
689}();
690
691exports.MissingPDFException = MissingPDFException;
692
693var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {
694 function UnexpectedResponseException(msg, status) {
695 this.name = 'UnexpectedResponseException';
696 this.message = msg;
697 this.status = status;
698 }
699
700 UnexpectedResponseException.prototype = new Error();
701 UnexpectedResponseException.constructor = UnexpectedResponseException;
702 return UnexpectedResponseException;
703}();
704
705exports.UnexpectedResponseException = UnexpectedResponseException;
706
707var MissingDataException = function MissingDataExceptionClosure() {
708 function MissingDataException(begin, end) {
709 this.begin = begin;
710 this.end = end;
711 this.message = 'Missing data [' + begin + ', ' + end + ')';
712 }
713
714 MissingDataException.prototype = new Error();
715 MissingDataException.prototype.name = 'MissingDataException';
716 MissingDataException.constructor = MissingDataException;
717 return MissingDataException;
718}();
719
720exports.MissingDataException = MissingDataException;
721
722var XRefEntryException = function XRefEntryExceptionClosure() {
723 function XRefEntryException(msg) {
724 this.message = msg;
725 }
726
727 XRefEntryException.prototype = new Error();
728 XRefEntryException.prototype.name = 'XRefEntryException';
729 XRefEntryException.constructor = XRefEntryException;
730 return XRefEntryException;
731}();
732
733exports.XRefEntryException = XRefEntryException;
734
735var XRefParseException = function XRefParseExceptionClosure() {
736 function XRefParseException(msg) {
737 this.message = msg;
738 }
739
740 XRefParseException.prototype = new Error();
741 XRefParseException.prototype.name = 'XRefParseException';
742 XRefParseException.constructor = XRefParseException;
743 return XRefParseException;
744}();
745
746exports.XRefParseException = XRefParseException;
747
748var FormatError = function FormatErrorClosure() {
749 function FormatError(msg) {
750 this.message = msg;
751 }
752
753 FormatError.prototype = new Error();
754 FormatError.prototype.name = 'FormatError';
755 FormatError.constructor = FormatError;
756 return FormatError;
757}();
758
759exports.FormatError = FormatError;
760
761var AbortException = function AbortExceptionClosure() {
762 function AbortException(msg) {
763 this.name = 'AbortException';
764 this.message = msg;
765 }
766
767 AbortException.prototype = new Error();
768 AbortException.constructor = AbortException;
769 return AbortException;
770}();
771
772exports.AbortException = AbortException;
773var NullCharactersRegExp = /\x00/g;
774
775function removeNullCharacters(str) {
776 if (typeof str !== 'string') {
777 warn('The argument for removeNullCharacters must be a string.');
778 return str;
779 }
780
781 return str.replace(NullCharactersRegExp, '');
782}
783
784function bytesToString(bytes) {
785 assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');
786 var length = bytes.length;
787 var MAX_ARGUMENT_COUNT = 8192;
788
789 if (length < MAX_ARGUMENT_COUNT) {
790 return String.fromCharCode.apply(null, bytes);
791 }
792
793 var strBuf = [];
794
795 for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
796 var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
797 var chunk = bytes.subarray(i, chunkEnd);
798 strBuf.push(String.fromCharCode.apply(null, chunk));
799 }
800
801 return strBuf.join('');
802}
803
804function stringToBytes(str) {
805 assert(typeof str === 'string', 'Invalid argument for stringToBytes');
806 var length = str.length;
807 var bytes = new Uint8Array(length);
808
809 for (var i = 0; i < length; ++i) {
810 bytes[i] = str.charCodeAt(i) & 0xFF;
811 }
812
813 return bytes;
814}
815
816function arrayByteLength(arr) {
817 if (arr.length !== undefined) {
818 return arr.length;
819 }
820
821 assert(arr.byteLength !== undefined);
822 return arr.byteLength;
823}
824
825function arraysToBytes(arr) {
826 if (arr.length === 1 && arr[0] instanceof Uint8Array) {
827 return arr[0];
828 }
829
830 var resultLength = 0;
831 var i,
832 ii = arr.length;
833 var item, itemLength;
834
835 for (i = 0; i < ii; i++) {
836 item = arr[i];
837 itemLength = arrayByteLength(item);
838 resultLength += itemLength;
839 }
840
841 var pos = 0;
842 var data = new Uint8Array(resultLength);
843
844 for (i = 0; i < ii; i++) {
845 item = arr[i];
846
847 if (!(item instanceof Uint8Array)) {
848 if (typeof item === 'string') {
849 item = stringToBytes(item);
850 } else {
851 item = new Uint8Array(item);
852 }
853 }
854
855 itemLength = item.byteLength;
856 data.set(item, pos);
857 pos += itemLength;
858 }
859
860 return data;
861}
862
863function string32(value) {
864 return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);
865}
866
867function log2(x) {
868 if (x <= 0) {
869 return 0;
870 }
871
872 return Math.ceil(Math.log2(x));
873}
874
875function readInt8(data, start) {
876 return data[start] << 24 >> 24;
877}
878
879function readUint16(data, offset) {
880 return data[offset] << 8 | data[offset + 1];
881}
882
883function readUint32(data, offset) {
884 return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;
885}
886
887function isLittleEndian() {
888 var buffer8 = new Uint8Array(4);
889 buffer8[0] = 1;
890 var view32 = new Uint32Array(buffer8.buffer, 0, 1);
891 return view32[0] === 1;
892}
893
894function isEvalSupported() {
895 try {
896 new Function('');
897 return true;
898 } catch (e) {
899 return false;
900 }
901}
902
903function getInheritableProperty(_ref) {
904 var dict = _ref.dict,
905 key = _ref.key,
906 _ref$getArray = _ref.getArray,
907 getArray = _ref$getArray === void 0 ? false : _ref$getArray,
908 _ref$stopWhenFound = _ref.stopWhenFound,
909 stopWhenFound = _ref$stopWhenFound === void 0 ? true : _ref$stopWhenFound;
910 var LOOP_LIMIT = 100;
911 var loopCount = 0;
912 var values;
913
914 while (dict) {
915 var value = getArray ? dict.getArray(key) : dict.get(key);
916
917 if (value !== undefined) {
918 if (stopWhenFound) {
919 return value;
920 }
921
922 if (!values) {
923 values = [];
924 }
925
926 values.push(value);
927 }
928
929 if (++loopCount > LOOP_LIMIT) {
930 warn("getInheritableProperty: maximum loop count exceeded for \"".concat(key, "\""));
931 break;
932 }
933
934 dict = dict.get('Parent');
935 }
936
937 return values;
938}
939
940var Util = function UtilClosure() {
941 function Util() {}
942
943 var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];
944
945 Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {
946 rgbBuf[1] = r;
947 rgbBuf[3] = g;
948 rgbBuf[5] = b;
949 return rgbBuf.join('');
950 };
951
952 Util.transform = function Util_transform(m1, m2) {
953 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]];
954 };
955
956 Util.applyTransform = function Util_applyTransform(p, m) {
957 var xt = p[0] * m[0] + p[1] * m[2] + m[4];
958 var yt = p[0] * m[1] + p[1] * m[3] + m[5];
959 return [xt, yt];
960 };
961
962 Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {
963 var d = m[0] * m[3] - m[1] * m[2];
964 var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
965 var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
966 return [xt, yt];
967 };
968
969 Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {
970 var p1 = Util.applyTransform(r, m);
971 var p2 = Util.applyTransform(r.slice(2, 4), m);
972 var p3 = Util.applyTransform([r[0], r[3]], m);
973 var p4 = Util.applyTransform([r[2], r[1]], m);
974 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])];
975 };
976
977 Util.inverseTransform = function Util_inverseTransform(m) {
978 var d = m[0] * m[3] - m[1] * m[2];
979 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];
980 };
981
982 Util.apply3dTransform = function Util_apply3dTransform(m, v) {
983 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]];
984 };
985
986 Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {
987 var transpose = [m[0], m[2], m[1], m[3]];
988 var a = m[0] * transpose[0] + m[1] * transpose[2];
989 var b = m[0] * transpose[1] + m[1] * transpose[3];
990 var c = m[2] * transpose[0] + m[3] * transpose[2];
991 var d = m[2] * transpose[1] + m[3] * transpose[3];
992 var first = (a + d) / 2;
993 var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;
994 var sx = first + second || 1;
995 var sy = first - second || 1;
996 return [Math.sqrt(sx), Math.sqrt(sy)];
997 };
998
999 Util.normalizeRect = function Util_normalizeRect(rect) {
1000 var r = rect.slice(0);
1001
1002 if (rect[0] > rect[2]) {
1003 r[0] = rect[2];
1004 r[2] = rect[0];
1005 }
1006
1007 if (rect[1] > rect[3]) {
1008 r[1] = rect[3];
1009 r[3] = rect[1];
1010 }
1011
1012 return r;
1013 };
1014
1015 Util.intersect = function Util_intersect(rect1, rect2) {
1016 function compare(a, b) {
1017 return a - b;
1018 }
1019
1020 var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),
1021 orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),
1022 result = [];
1023 rect1 = Util.normalizeRect(rect1);
1024 rect2 = Util.normalizeRect(rect2);
1025
1026 if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {
1027 result[0] = orderedX[1];
1028 result[2] = orderedX[2];
1029 } else {
1030 return false;
1031 }
1032
1033 if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {
1034 result[1] = orderedY[1];
1035 result[3] = orderedY[2];
1036 } else {
1037 return false;
1038 }
1039
1040 return result;
1041 };
1042
1043 return Util;
1044}();
1045
1046exports.Util = Util;
1047var ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];
1048
1049function toRomanNumerals(number) {
1050 var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1051 assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.');
1052 var pos,
1053 romanBuf = [];
1054
1055 while (number >= 1000) {
1056 number -= 1000;
1057 romanBuf.push('M');
1058 }
1059
1060 pos = number / 100 | 0;
1061 number %= 100;
1062 romanBuf.push(ROMAN_NUMBER_MAP[pos]);
1063 pos = number / 10 | 0;
1064 number %= 10;
1065 romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);
1066 romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);
1067 var romanStr = romanBuf.join('');
1068 return lowerCase ? romanStr.toLowerCase() : romanStr;
1069}
1070
1071var 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];
1072
1073function stringToPDFString(str) {
1074 var i,
1075 n = str.length,
1076 strBuf = [];
1077
1078 if (str[0] === '\xFE' && str[1] === '\xFF') {
1079 for (i = 2; i < n; i += 2) {
1080 strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));
1081 }
1082 } else {
1083 for (i = 0; i < n; ++i) {
1084 var code = PDFStringTranslateTable[str.charCodeAt(i)];
1085 strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
1086 }
1087 }
1088
1089 return strBuf.join('');
1090}
1091
1092function stringToUTF8String(str) {
1093 return decodeURIComponent(escape(str));
1094}
1095
1096function utf8StringToString(str) {
1097 return unescape(encodeURIComponent(str));
1098}
1099
1100function isEmptyObj(obj) {
1101 for (var key in obj) {
1102 return false;
1103 }
1104
1105 return true;
1106}
1107
1108function isBool(v) {
1109 return typeof v === 'boolean';
1110}
1111
1112function isNum(v) {
1113 return typeof v === 'number';
1114}
1115
1116function isString(v) {
1117 return typeof v === 'string';
1118}
1119
1120function isArrayBuffer(v) {
1121 return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined;
1122}
1123
1124function isSpace(ch) {
1125 return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;
1126}
1127
1128function createPromiseCapability() {
1129 var capability = Object.create(null);
1130 var isSettled = false;
1131 Object.defineProperty(capability, 'settled', {
1132 get: function get() {
1133 return isSettled;
1134 }
1135 });
1136 capability.promise = new Promise(function (resolve, reject) {
1137 capability.resolve = function (data) {
1138 isSettled = true;
1139 resolve(data);
1140 };
1141
1142 capability.reject = function (reason) {
1143 isSettled = true;
1144 reject(reason);
1145 };
1146 });
1147 return capability;
1148}
1149
1150var createObjectURL = function createObjectURLClosure() {
1151 var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
1152 return function createObjectURL(data, contentType) {
1153 var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1154
1155 if (!forceDataSchema && _url_polyfill.URL.createObjectURL) {
1156 var blob = new Blob([data], {
1157 type: contentType
1158 });
1159 return _url_polyfill.URL.createObjectURL(blob);
1160 }
1161
1162 var buffer = 'data:' + contentType + ';base64,';
1163
1164 for (var i = 0, ii = data.length; i < ii; i += 3) {
1165 var b1 = data[i] & 0xFF;
1166 var b2 = data[i + 1] & 0xFF;
1167 var b3 = data[i + 2] & 0xFF;
1168 var d1 = b1 >> 2,
1169 d2 = (b1 & 3) << 4 | b2 >> 4;
1170 var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64;
1171 var d4 = i + 2 < ii ? b3 & 0x3F : 64;
1172 buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];
1173 }
1174
1175 return buffer;
1176 };
1177}();
1178
1179exports.createObjectURL = createObjectURL;
1180
1181/***/ }),
1182/* 2 */
1183/***/ (function(module, exports, __w_pdfjs_require__) {
1184
1185"use strict";
1186
1187
1188function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1189
1190var globalScope = __w_pdfjs_require__(3);
1191
1192if (!globalScope._pdfjsCompatibilityChecked) {
1193 globalScope._pdfjsCompatibilityChecked = true;
1194
1195 var isNodeJS = __w_pdfjs_require__(4);
1196
1197 var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object';
1198
1199 (function checkNodeBtoa() {
1200 if (globalScope.btoa || !isNodeJS()) {
1201 return;
1202 }
1203
1204 globalScope.btoa = function (chars) {
1205 return Buffer.from(chars, 'binary').toString('base64');
1206 };
1207 })();
1208
1209 (function checkNodeAtob() {
1210 if (globalScope.atob || !isNodeJS()) {
1211 return;
1212 }
1213
1214 globalScope.atob = function (input) {
1215 return Buffer.from(input, 'base64').toString('binary');
1216 };
1217 })();
1218
1219 (function checkChildNodeRemove() {
1220 if (!hasDOM) {
1221 return;
1222 }
1223
1224 if (typeof Element.prototype.remove !== 'undefined') {
1225 return;
1226 }
1227
1228 Element.prototype.remove = function () {
1229 if (this.parentNode) {
1230 this.parentNode.removeChild(this);
1231 }
1232 };
1233 })();
1234
1235 (function checkDOMTokenListAddRemove() {
1236 if (!hasDOM || isNodeJS()) {
1237 return;
1238 }
1239
1240 var div = document.createElement('div');
1241 div.classList.add('testOne', 'testTwo');
1242
1243 if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) {
1244 return;
1245 }
1246
1247 var OriginalDOMTokenListAdd = DOMTokenList.prototype.add;
1248 var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;
1249
1250 DOMTokenList.prototype.add = function () {
1251 for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) {
1252 tokens[_key] = arguments[_key];
1253 }
1254
1255 for (var _i = 0; _i < tokens.length; _i++) {
1256 var token = tokens[_i];
1257 OriginalDOMTokenListAdd.call(this, token);
1258 }
1259 };
1260
1261 DOMTokenList.prototype.remove = function () {
1262 for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1263 tokens[_key2] = arguments[_key2];
1264 }
1265
1266 for (var _i2 = 0; _i2 < tokens.length; _i2++) {
1267 var token = tokens[_i2];
1268 OriginalDOMTokenListRemove.call(this, token);
1269 }
1270 };
1271 })();
1272
1273 (function checkDOMTokenListToggle() {
1274 if (!hasDOM || isNodeJS()) {
1275 return;
1276 }
1277
1278 var div = document.createElement('div');
1279
1280 if (div.classList.toggle('test', 0) === false) {
1281 return;
1282 }
1283
1284 DOMTokenList.prototype.toggle = function (token) {
1285 var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token);
1286 return this[force ? 'add' : 'remove'](token), force;
1287 };
1288 })();
1289
1290 (function checkStringStartsWith() {
1291 if (String.prototype.startsWith) {
1292 return;
1293 }
1294
1295 __w_pdfjs_require__(5);
1296 })();
1297
1298 (function checkStringEndsWith() {
1299 if (String.prototype.endsWith) {
1300 return;
1301 }
1302
1303 __w_pdfjs_require__(35);
1304 })();
1305
1306 (function checkStringIncludes() {
1307 if (String.prototype.includes) {
1308 return;
1309 }
1310
1311 __w_pdfjs_require__(37);
1312 })();
1313
1314 (function checkArrayIncludes() {
1315 if (Array.prototype.includes) {
1316 return;
1317 }
1318
1319 __w_pdfjs_require__(39);
1320 })();
1321
1322 (function checkArrayFrom() {
1323 if (Array.from) {
1324 return;
1325 }
1326
1327 __w_pdfjs_require__(46);
1328 })();
1329
1330 (function checkObjectAssign() {
1331 if (Object.assign) {
1332 return;
1333 }
1334
1335 __w_pdfjs_require__(69);
1336 })();
1337
1338 (function checkMathLog2() {
1339 if (Math.log2) {
1340 return;
1341 }
1342
1343 Math.log2 = __w_pdfjs_require__(74);
1344 })();
1345
1346 (function checkNumberIsNaN() {
1347 if (Number.isNaN) {
1348 return;
1349 }
1350
1351 Number.isNaN = __w_pdfjs_require__(76);
1352 })();
1353
1354 (function checkNumberIsInteger() {
1355 if (Number.isInteger) {
1356 return;
1357 }
1358
1359 Number.isInteger = __w_pdfjs_require__(78);
1360 })();
1361
1362 (function checkPromise() {
1363 if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype.finally) {
1364 return;
1365 }
1366
1367 globalScope.Promise = __w_pdfjs_require__(81);
1368 })();
1369
1370 (function checkWeakMap() {
1371 if (globalScope.WeakMap) {
1372 return;
1373 }
1374
1375 globalScope.WeakMap = __w_pdfjs_require__(101);
1376 })();
1377
1378 (function checkWeakSet() {
1379 if (globalScope.WeakSet) {
1380 return;
1381 }
1382
1383 globalScope.WeakSet = __w_pdfjs_require__(118);
1384 })();
1385
1386 (function checkStringCodePointAt() {
1387 if (String.codePointAt) {
1388 return;
1389 }
1390
1391 String.codePointAt = __w_pdfjs_require__(122);
1392 })();
1393
1394 (function checkStringFromCodePoint() {
1395 if (String.fromCodePoint) {
1396 return;
1397 }
1398
1399 String.fromCodePoint = __w_pdfjs_require__(124);
1400 })();
1401
1402 (function checkSymbol() {
1403 if (globalScope.Symbol) {
1404 return;
1405 }
1406
1407 __w_pdfjs_require__(126);
1408 })();
1409
1410 (function checkStringPadStart() {
1411 if (String.prototype.padStart) {
1412 return;
1413 }
1414
1415 __w_pdfjs_require__(133);
1416 })();
1417
1418 (function checkStringPadEnd() {
1419 if (String.prototype.padEnd) {
1420 return;
1421 }
1422
1423 __w_pdfjs_require__(137);
1424 })();
1425
1426 (function checkObjectValues() {
1427 if (Object.values) {
1428 return;
1429 }
1430
1431 Object.values = __w_pdfjs_require__(139);
1432 })();
1433}
1434
1435/***/ }),
1436/* 3 */
1437/***/ (function(module, exports, __w_pdfjs_require__) {
1438
1439"use strict";
1440
1441
1442module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {};
1443
1444/***/ }),
1445/* 4 */
1446/***/ (function(module, exports, __w_pdfjs_require__) {
1447
1448"use strict";
1449
1450
1451function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1452
1453module.exports = function isNodeJS() {
1454 return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'];
1455};
1456
1457/***/ }),
1458/* 5 */
1459/***/ (function(module, exports, __w_pdfjs_require__) {
1460
1461"use strict";
1462
1463
1464__w_pdfjs_require__(6);
1465
1466module.exports = __w_pdfjs_require__(9).String.startsWith;
1467
1468/***/ }),
1469/* 6 */
1470/***/ (function(module, exports, __w_pdfjs_require__) {
1471
1472"use strict";
1473
1474
1475var $export = __w_pdfjs_require__(7);
1476
1477var toLength = __w_pdfjs_require__(25);
1478
1479var context = __w_pdfjs_require__(27);
1480
1481var STARTS_WITH = 'startsWith';
1482var $startsWith = ''[STARTS_WITH];
1483$export($export.P + $export.F * __w_pdfjs_require__(34)(STARTS_WITH), 'String', {
1484 startsWith: function startsWith(searchString) {
1485 var that = context(this, searchString, STARTS_WITH);
1486 var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
1487 var search = String(searchString);
1488 return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search;
1489 }
1490});
1491
1492/***/ }),
1493/* 7 */
1494/***/ (function(module, exports, __w_pdfjs_require__) {
1495
1496"use strict";
1497
1498
1499var global = __w_pdfjs_require__(8);
1500
1501var core = __w_pdfjs_require__(9);
1502
1503var hide = __w_pdfjs_require__(10);
1504
1505var redefine = __w_pdfjs_require__(20);
1506
1507var ctx = __w_pdfjs_require__(23);
1508
1509var PROTOTYPE = 'prototype';
1510
1511var $export = function $export(type, name, source) {
1512 var IS_FORCED = type & $export.F;
1513 var IS_GLOBAL = type & $export.G;
1514 var IS_STATIC = type & $export.S;
1515 var IS_PROTO = type & $export.P;
1516 var IS_BIND = type & $export.B;
1517 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
1518 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
1519 var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
1520 var key, own, out, exp;
1521 if (IS_GLOBAL) source = name;
1522
1523 for (key in source) {
1524 own = !IS_FORCED && target && target[key] !== undefined;
1525 out = (own ? target : source)[key];
1526 exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
1527 if (target) redefine(target, key, out, type & $export.U);
1528 if (exports[key] != out) hide(exports, key, exp);
1529 if (IS_PROTO && expProto[key] != out) expProto[key] = out;
1530 }
1531};
1532
1533global.core = core;
1534$export.F = 1;
1535$export.G = 2;
1536$export.S = 4;
1537$export.P = 8;
1538$export.B = 16;
1539$export.W = 32;
1540$export.U = 64;
1541$export.R = 128;
1542module.exports = $export;
1543
1544/***/ }),
1545/* 8 */
1546/***/ (function(module, exports, __w_pdfjs_require__) {
1547
1548"use strict";
1549
1550
1551var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
1552if (typeof __g == 'number') __g = global;
1553
1554/***/ }),
1555/* 9 */
1556/***/ (function(module, exports, __w_pdfjs_require__) {
1557
1558"use strict";
1559
1560
1561var core = module.exports = {
1562 version: '2.6.2'
1563};
1564if (typeof __e == 'number') __e = core;
1565
1566/***/ }),
1567/* 10 */
1568/***/ (function(module, exports, __w_pdfjs_require__) {
1569
1570"use strict";
1571
1572
1573var dP = __w_pdfjs_require__(11);
1574
1575var createDesc = __w_pdfjs_require__(19);
1576
1577module.exports = __w_pdfjs_require__(15) ? function (object, key, value) {
1578 return dP.f(object, key, createDesc(1, value));
1579} : function (object, key, value) {
1580 object[key] = value;
1581 return object;
1582};
1583
1584/***/ }),
1585/* 11 */
1586/***/ (function(module, exports, __w_pdfjs_require__) {
1587
1588"use strict";
1589
1590
1591var anObject = __w_pdfjs_require__(12);
1592
1593var IE8_DOM_DEFINE = __w_pdfjs_require__(14);
1594
1595var toPrimitive = __w_pdfjs_require__(18);
1596
1597var dP = Object.defineProperty;
1598exports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
1599 anObject(O);
1600 P = toPrimitive(P, true);
1601 anObject(Attributes);
1602 if (IE8_DOM_DEFINE) try {
1603 return dP(O, P, Attributes);
1604 } catch (e) {}
1605 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
1606 if ('value' in Attributes) O[P] = Attributes.value;
1607 return O;
1608};
1609
1610/***/ }),
1611/* 12 */
1612/***/ (function(module, exports, __w_pdfjs_require__) {
1613
1614"use strict";
1615
1616
1617var isObject = __w_pdfjs_require__(13);
1618
1619module.exports = function (it) {
1620 if (!isObject(it)) throw TypeError(it + ' is not an object!');
1621 return it;
1622};
1623
1624/***/ }),
1625/* 13 */
1626/***/ (function(module, exports, __w_pdfjs_require__) {
1627
1628"use strict";
1629
1630
1631function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1632
1633module.exports = function (it) {
1634 return _typeof(it) === 'object' ? it !== null : typeof it === 'function';
1635};
1636
1637/***/ }),
1638/* 14 */
1639/***/ (function(module, exports, __w_pdfjs_require__) {
1640
1641"use strict";
1642
1643
1644module.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () {
1645 return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', {
1646 get: function get() {
1647 return 7;
1648 }
1649 }).a != 7;
1650});
1651
1652/***/ }),
1653/* 15 */
1654/***/ (function(module, exports, __w_pdfjs_require__) {
1655
1656"use strict";
1657
1658
1659module.exports = !__w_pdfjs_require__(16)(function () {
1660 return Object.defineProperty({}, 'a', {
1661 get: function get() {
1662 return 7;
1663 }
1664 }).a != 7;
1665});
1666
1667/***/ }),
1668/* 16 */
1669/***/ (function(module, exports, __w_pdfjs_require__) {
1670
1671"use strict";
1672
1673
1674module.exports = function (exec) {
1675 try {
1676 return !!exec();
1677 } catch (e) {
1678 return true;
1679 }
1680};
1681
1682/***/ }),
1683/* 17 */
1684/***/ (function(module, exports, __w_pdfjs_require__) {
1685
1686"use strict";
1687
1688
1689var isObject = __w_pdfjs_require__(13);
1690
1691var document = __w_pdfjs_require__(8).document;
1692
1693var is = isObject(document) && isObject(document.createElement);
1694
1695module.exports = function (it) {
1696 return is ? document.createElement(it) : {};
1697};
1698
1699/***/ }),
1700/* 18 */
1701/***/ (function(module, exports, __w_pdfjs_require__) {
1702
1703"use strict";
1704
1705
1706var isObject = __w_pdfjs_require__(13);
1707
1708module.exports = function (it, S) {
1709 if (!isObject(it)) return it;
1710 var fn, val;
1711 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
1712 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
1713 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
1714 throw TypeError("Can't convert object to primitive value");
1715};
1716
1717/***/ }),
1718/* 19 */
1719/***/ (function(module, exports, __w_pdfjs_require__) {
1720
1721"use strict";
1722
1723
1724module.exports = function (bitmap, value) {
1725 return {
1726 enumerable: !(bitmap & 1),
1727 configurable: !(bitmap & 2),
1728 writable: !(bitmap & 4),
1729 value: value
1730 };
1731};
1732
1733/***/ }),
1734/* 20 */
1735/***/ (function(module, exports, __w_pdfjs_require__) {
1736
1737"use strict";
1738
1739
1740var global = __w_pdfjs_require__(8);
1741
1742var hide = __w_pdfjs_require__(10);
1743
1744var has = __w_pdfjs_require__(21);
1745
1746var SRC = __w_pdfjs_require__(22)('src');
1747
1748var TO_STRING = 'toString';
1749var $toString = Function[TO_STRING];
1750var TPL = ('' + $toString).split(TO_STRING);
1751
1752__w_pdfjs_require__(9).inspectSource = function (it) {
1753 return $toString.call(it);
1754};
1755
1756(module.exports = function (O, key, val, safe) {
1757 var isFunction = typeof val == 'function';
1758 if (isFunction) has(val, 'name') || hide(val, 'name', key);
1759 if (O[key] === val) return;
1760 if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
1761
1762 if (O === global) {
1763 O[key] = val;
1764 } else if (!safe) {
1765 delete O[key];
1766 hide(O, key, val);
1767 } else if (O[key]) {
1768 O[key] = val;
1769 } else {
1770 hide(O, key, val);
1771 }
1772})(Function.prototype, TO_STRING, function toString() {
1773 return typeof this == 'function' && this[SRC] || $toString.call(this);
1774});
1775
1776/***/ }),
1777/* 21 */
1778/***/ (function(module, exports, __w_pdfjs_require__) {
1779
1780"use strict";
1781
1782
1783var hasOwnProperty = {}.hasOwnProperty;
1784
1785module.exports = function (it, key) {
1786 return hasOwnProperty.call(it, key);
1787};
1788
1789/***/ }),
1790/* 22 */
1791/***/ (function(module, exports, __w_pdfjs_require__) {
1792
1793"use strict";
1794
1795
1796var id = 0;
1797var px = Math.random();
1798
1799module.exports = function (key) {
1800 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
1801};
1802
1803/***/ }),
1804/* 23 */
1805/***/ (function(module, exports, __w_pdfjs_require__) {
1806
1807"use strict";
1808
1809
1810var aFunction = __w_pdfjs_require__(24);
1811
1812module.exports = function (fn, that, length) {
1813 aFunction(fn);
1814 if (that === undefined) return fn;
1815
1816 switch (length) {
1817 case 1:
1818 return function (a) {
1819 return fn.call(that, a);
1820 };
1821
1822 case 2:
1823 return function (a, b) {
1824 return fn.call(that, a, b);
1825 };
1826
1827 case 3:
1828 return function (a, b, c) {
1829 return fn.call(that, a, b, c);
1830 };
1831 }
1832
1833 return function () {
1834 return fn.apply(that, arguments);
1835 };
1836};
1837
1838/***/ }),
1839/* 24 */
1840/***/ (function(module, exports, __w_pdfjs_require__) {
1841
1842"use strict";
1843
1844
1845module.exports = function (it) {
1846 if (typeof it != 'function') throw TypeError(it + ' is not a function!');
1847 return it;
1848};
1849
1850/***/ }),
1851/* 25 */
1852/***/ (function(module, exports, __w_pdfjs_require__) {
1853
1854"use strict";
1855
1856
1857var toInteger = __w_pdfjs_require__(26);
1858
1859var min = Math.min;
1860
1861module.exports = function (it) {
1862 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;
1863};
1864
1865/***/ }),
1866/* 26 */
1867/***/ (function(module, exports, __w_pdfjs_require__) {
1868
1869"use strict";
1870
1871
1872var ceil = Math.ceil;
1873var floor = Math.floor;
1874
1875module.exports = function (it) {
1876 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
1877};
1878
1879/***/ }),
1880/* 27 */
1881/***/ (function(module, exports, __w_pdfjs_require__) {
1882
1883"use strict";
1884
1885
1886var isRegExp = __w_pdfjs_require__(28);
1887
1888var defined = __w_pdfjs_require__(33);
1889
1890module.exports = function (that, searchString, NAME) {
1891 if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
1892 return String(defined(that));
1893};
1894
1895/***/ }),
1896/* 28 */
1897/***/ (function(module, exports, __w_pdfjs_require__) {
1898
1899"use strict";
1900
1901
1902var isObject = __w_pdfjs_require__(13);
1903
1904var cof = __w_pdfjs_require__(29);
1905
1906var MATCH = __w_pdfjs_require__(30)('match');
1907
1908module.exports = function (it) {
1909 var isRegExp;
1910 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
1911};
1912
1913/***/ }),
1914/* 29 */
1915/***/ (function(module, exports, __w_pdfjs_require__) {
1916
1917"use strict";
1918
1919
1920var toString = {}.toString;
1921
1922module.exports = function (it) {
1923 return toString.call(it).slice(8, -1);
1924};
1925
1926/***/ }),
1927/* 30 */
1928/***/ (function(module, exports, __w_pdfjs_require__) {
1929
1930"use strict";
1931
1932
1933var store = __w_pdfjs_require__(31)('wks');
1934
1935var uid = __w_pdfjs_require__(22);
1936
1937var _Symbol = __w_pdfjs_require__(8).Symbol;
1938
1939var USE_SYMBOL = typeof _Symbol == 'function';
1940
1941var $exports = module.exports = function (name) {
1942 return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));
1943};
1944
1945$exports.store = store;
1946
1947/***/ }),
1948/* 31 */
1949/***/ (function(module, exports, __w_pdfjs_require__) {
1950
1951"use strict";
1952
1953
1954var core = __w_pdfjs_require__(9);
1955
1956var global = __w_pdfjs_require__(8);
1957
1958var SHARED = '__core-js_shared__';
1959var store = global[SHARED] || (global[SHARED] = {});
1960(module.exports = function (key, value) {
1961 return store[key] || (store[key] = value !== undefined ? value : {});
1962})('versions', []).push({
1963 version: core.version,
1964 mode: __w_pdfjs_require__(32) ? 'pure' : 'global',
1965 copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
1966});
1967
1968/***/ }),
1969/* 32 */
1970/***/ (function(module, exports, __w_pdfjs_require__) {
1971
1972"use strict";
1973
1974
1975module.exports = false;
1976
1977/***/ }),
1978/* 33 */
1979/***/ (function(module, exports, __w_pdfjs_require__) {
1980
1981"use strict";
1982
1983
1984module.exports = function (it) {
1985 if (it == undefined) throw TypeError("Can't call method on " + it);
1986 return it;
1987};
1988
1989/***/ }),
1990/* 34 */
1991/***/ (function(module, exports, __w_pdfjs_require__) {
1992
1993"use strict";
1994
1995
1996var MATCH = __w_pdfjs_require__(30)('match');
1997
1998module.exports = function (KEY) {
1999 var re = /./;
2000
2001 try {
2002 '/./'[KEY](re);
2003 } catch (e) {
2004 try {
2005 re[MATCH] = false;
2006 return !'/./'[KEY](re);
2007 } catch (f) {}
2008 }
2009
2010 return true;
2011};
2012
2013/***/ }),
2014/* 35 */
2015/***/ (function(module, exports, __w_pdfjs_require__) {
2016
2017"use strict";
2018
2019
2020__w_pdfjs_require__(36);
2021
2022module.exports = __w_pdfjs_require__(9).String.endsWith;
2023
2024/***/ }),
2025/* 36 */
2026/***/ (function(module, exports, __w_pdfjs_require__) {
2027
2028"use strict";
2029
2030
2031var $export = __w_pdfjs_require__(7);
2032
2033var toLength = __w_pdfjs_require__(25);
2034
2035var context = __w_pdfjs_require__(27);
2036
2037var ENDS_WITH = 'endsWith';
2038var $endsWith = ''[ENDS_WITH];
2039$export($export.P + $export.F * __w_pdfjs_require__(34)(ENDS_WITH), 'String', {
2040 endsWith: function endsWith(searchString) {
2041 var that = context(this, searchString, ENDS_WITH);
2042 var endPosition = arguments.length > 1 ? arguments[1] : undefined;
2043 var len = toLength(that.length);
2044 var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
2045 var search = String(searchString);
2046 return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search;
2047 }
2048});
2049
2050/***/ }),
2051/* 37 */
2052/***/ (function(module, exports, __w_pdfjs_require__) {
2053
2054"use strict";
2055
2056
2057__w_pdfjs_require__(38);
2058
2059module.exports = __w_pdfjs_require__(9).String.includes;
2060
2061/***/ }),
2062/* 38 */
2063/***/ (function(module, exports, __w_pdfjs_require__) {
2064
2065"use strict";
2066
2067
2068var $export = __w_pdfjs_require__(7);
2069
2070var context = __w_pdfjs_require__(27);
2071
2072var INCLUDES = 'includes';
2073$export($export.P + $export.F * __w_pdfjs_require__(34)(INCLUDES), 'String', {
2074 includes: function includes(searchString) {
2075 return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
2076 }
2077});
2078
2079/***/ }),
2080/* 39 */
2081/***/ (function(module, exports, __w_pdfjs_require__) {
2082
2083"use strict";
2084
2085
2086__w_pdfjs_require__(40);
2087
2088module.exports = __w_pdfjs_require__(9).Array.includes;
2089
2090/***/ }),
2091/* 40 */
2092/***/ (function(module, exports, __w_pdfjs_require__) {
2093
2094"use strict";
2095
2096
2097var $export = __w_pdfjs_require__(7);
2098
2099var $includes = __w_pdfjs_require__(41)(true);
2100
2101$export($export.P, 'Array', {
2102 includes: function includes(el) {
2103 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
2104 }
2105});
2106
2107__w_pdfjs_require__(45)('includes');
2108
2109/***/ }),
2110/* 41 */
2111/***/ (function(module, exports, __w_pdfjs_require__) {
2112
2113"use strict";
2114
2115
2116var toIObject = __w_pdfjs_require__(42);
2117
2118var toLength = __w_pdfjs_require__(25);
2119
2120var toAbsoluteIndex = __w_pdfjs_require__(44);
2121
2122module.exports = function (IS_INCLUDES) {
2123 return function ($this, el, fromIndex) {
2124 var O = toIObject($this);
2125 var length = toLength(O.length);
2126 var index = toAbsoluteIndex(fromIndex, length);
2127 var value;
2128 if (IS_INCLUDES && el != el) while (length > index) {
2129 value = O[index++];
2130 if (value != value) return true;
2131 } else for (; length > index; index++) {
2132 if (IS_INCLUDES || index in O) {
2133 if (O[index] === el) return IS_INCLUDES || index || 0;
2134 }
2135 }
2136 return !IS_INCLUDES && -1;
2137 };
2138};
2139
2140/***/ }),
2141/* 42 */
2142/***/ (function(module, exports, __w_pdfjs_require__) {
2143
2144"use strict";
2145
2146
2147var IObject = __w_pdfjs_require__(43);
2148
2149var defined = __w_pdfjs_require__(33);
2150
2151module.exports = function (it) {
2152 return IObject(defined(it));
2153};
2154
2155/***/ }),
2156/* 43 */
2157/***/ (function(module, exports, __w_pdfjs_require__) {
2158
2159"use strict";
2160
2161
2162var cof = __w_pdfjs_require__(29);
2163
2164module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
2165 return cof(it) == 'String' ? it.split('') : Object(it);
2166};
2167
2168/***/ }),
2169/* 44 */
2170/***/ (function(module, exports, __w_pdfjs_require__) {
2171
2172"use strict";
2173
2174
2175var toInteger = __w_pdfjs_require__(26);
2176
2177var max = Math.max;
2178var min = Math.min;
2179
2180module.exports = function (index, length) {
2181 index = toInteger(index);
2182 return index < 0 ? max(index + length, 0) : min(index, length);
2183};
2184
2185/***/ }),
2186/* 45 */
2187/***/ (function(module, exports, __w_pdfjs_require__) {
2188
2189"use strict";
2190
2191
2192var UNSCOPABLES = __w_pdfjs_require__(30)('unscopables');
2193
2194var ArrayProto = Array.prototype;
2195if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {});
2196
2197module.exports = function (key) {
2198 ArrayProto[UNSCOPABLES][key] = true;
2199};
2200
2201/***/ }),
2202/* 46 */
2203/***/ (function(module, exports, __w_pdfjs_require__) {
2204
2205"use strict";
2206
2207
2208__w_pdfjs_require__(47);
2209
2210__w_pdfjs_require__(62);
2211
2212module.exports = __w_pdfjs_require__(9).Array.from;
2213
2214/***/ }),
2215/* 47 */
2216/***/ (function(module, exports, __w_pdfjs_require__) {
2217
2218"use strict";
2219
2220
2221var $at = __w_pdfjs_require__(48)(true);
2222
2223__w_pdfjs_require__(49)(String, 'String', function (iterated) {
2224 this._t = String(iterated);
2225 this._i = 0;
2226}, function () {
2227 var O = this._t;
2228 var index = this._i;
2229 var point;
2230 if (index >= O.length) return {
2231 value: undefined,
2232 done: true
2233 };
2234 point = $at(O, index);
2235 this._i += point.length;
2236 return {
2237 value: point,
2238 done: false
2239 };
2240});
2241
2242/***/ }),
2243/* 48 */
2244/***/ (function(module, exports, __w_pdfjs_require__) {
2245
2246"use strict";
2247
2248
2249var toInteger = __w_pdfjs_require__(26);
2250
2251var defined = __w_pdfjs_require__(33);
2252
2253module.exports = function (TO_STRING) {
2254 return function (that, pos) {
2255 var s = String(defined(that));
2256 var i = toInteger(pos);
2257 var l = s.length;
2258 var a, b;
2259 if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
2260 a = s.charCodeAt(i);
2261 return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
2262 };
2263};
2264
2265/***/ }),
2266/* 49 */
2267/***/ (function(module, exports, __w_pdfjs_require__) {
2268
2269"use strict";
2270
2271
2272var LIBRARY = __w_pdfjs_require__(32);
2273
2274var $export = __w_pdfjs_require__(7);
2275
2276var redefine = __w_pdfjs_require__(20);
2277
2278var hide = __w_pdfjs_require__(10);
2279
2280var Iterators = __w_pdfjs_require__(50);
2281
2282var $iterCreate = __w_pdfjs_require__(51);
2283
2284var setToStringTag = __w_pdfjs_require__(59);
2285
2286var getPrototypeOf = __w_pdfjs_require__(60);
2287
2288var ITERATOR = __w_pdfjs_require__(30)('iterator');
2289
2290var BUGGY = !([].keys && 'next' in [].keys());
2291var FF_ITERATOR = '@@iterator';
2292var KEYS = 'keys';
2293var VALUES = 'values';
2294
2295var returnThis = function returnThis() {
2296 return this;
2297};
2298
2299module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
2300 $iterCreate(Constructor, NAME, next);
2301
2302 var getMethod = function getMethod(kind) {
2303 if (!BUGGY && kind in proto) return proto[kind];
2304
2305 switch (kind) {
2306 case KEYS:
2307 return function keys() {
2308 return new Constructor(this, kind);
2309 };
2310
2311 case VALUES:
2312 return function values() {
2313 return new Constructor(this, kind);
2314 };
2315 }
2316
2317 return function entries() {
2318 return new Constructor(this, kind);
2319 };
2320 };
2321
2322 var TAG = NAME + ' Iterator';
2323 var DEF_VALUES = DEFAULT == VALUES;
2324 var VALUES_BUG = false;
2325 var proto = Base.prototype;
2326 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
2327 var $default = $native || getMethod(DEFAULT);
2328 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
2329 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
2330 var methods, key, IteratorPrototype;
2331
2332 if ($anyNative) {
2333 IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
2334
2335 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
2336 setToStringTag(IteratorPrototype, TAG, true);
2337 if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
2338 }
2339 }
2340
2341 if (DEF_VALUES && $native && $native.name !== VALUES) {
2342 VALUES_BUG = true;
2343
2344 $default = function values() {
2345 return $native.call(this);
2346 };
2347 }
2348
2349 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
2350 hide(proto, ITERATOR, $default);
2351 }
2352
2353 Iterators[NAME] = $default;
2354 Iterators[TAG] = returnThis;
2355
2356 if (DEFAULT) {
2357 methods = {
2358 values: DEF_VALUES ? $default : getMethod(VALUES),
2359 keys: IS_SET ? $default : getMethod(KEYS),
2360 entries: $entries
2361 };
2362 if (FORCED) for (key in methods) {
2363 if (!(key in proto)) redefine(proto, key, methods[key]);
2364 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
2365 }
2366
2367 return methods;
2368};
2369
2370/***/ }),
2371/* 50 */
2372/***/ (function(module, exports, __w_pdfjs_require__) {
2373
2374"use strict";
2375
2376
2377module.exports = {};
2378
2379/***/ }),
2380/* 51 */
2381/***/ (function(module, exports, __w_pdfjs_require__) {
2382
2383"use strict";
2384
2385
2386var create = __w_pdfjs_require__(52);
2387
2388var descriptor = __w_pdfjs_require__(19);
2389
2390var setToStringTag = __w_pdfjs_require__(59);
2391
2392var IteratorPrototype = {};
2393
2394__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(30)('iterator'), function () {
2395 return this;
2396});
2397
2398module.exports = function (Constructor, NAME, next) {
2399 Constructor.prototype = create(IteratorPrototype, {
2400 next: descriptor(1, next)
2401 });
2402 setToStringTag(Constructor, NAME + ' Iterator');
2403};
2404
2405/***/ }),
2406/* 52 */
2407/***/ (function(module, exports, __w_pdfjs_require__) {
2408
2409"use strict";
2410
2411
2412var anObject = __w_pdfjs_require__(12);
2413
2414var dPs = __w_pdfjs_require__(53);
2415
2416var enumBugKeys = __w_pdfjs_require__(57);
2417
2418var IE_PROTO = __w_pdfjs_require__(56)('IE_PROTO');
2419
2420var Empty = function Empty() {};
2421
2422var PROTOTYPE = 'prototype';
2423
2424var _createDict = function createDict() {
2425 var iframe = __w_pdfjs_require__(17)('iframe');
2426
2427 var i = enumBugKeys.length;
2428 var lt = '<';
2429 var gt = '>';
2430 var iframeDocument;
2431 iframe.style.display = 'none';
2432
2433 __w_pdfjs_require__(58).appendChild(iframe);
2434
2435 iframe.src = 'javascript:';
2436 iframeDocument = iframe.contentWindow.document;
2437 iframeDocument.open();
2438 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
2439 iframeDocument.close();
2440 _createDict = iframeDocument.F;
2441
2442 while (i--) {
2443 delete _createDict[PROTOTYPE][enumBugKeys[i]];
2444 }
2445
2446 return _createDict();
2447};
2448
2449module.exports = Object.create || function create(O, Properties) {
2450 var result;
2451
2452 if (O !== null) {
2453 Empty[PROTOTYPE] = anObject(O);
2454 result = new Empty();
2455 Empty[PROTOTYPE] = null;
2456 result[IE_PROTO] = O;
2457 } else result = _createDict();
2458
2459 return Properties === undefined ? result : dPs(result, Properties);
2460};
2461
2462/***/ }),
2463/* 53 */
2464/***/ (function(module, exports, __w_pdfjs_require__) {
2465
2466"use strict";
2467
2468
2469var dP = __w_pdfjs_require__(11);
2470
2471var anObject = __w_pdfjs_require__(12);
2472
2473var getKeys = __w_pdfjs_require__(54);
2474
2475module.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) {
2476 anObject(O);
2477 var keys = getKeys(Properties);
2478 var length = keys.length;
2479 var i = 0;
2480 var P;
2481
2482 while (length > i) {
2483 dP.f(O, P = keys[i++], Properties[P]);
2484 }
2485
2486 return O;
2487};
2488
2489/***/ }),
2490/* 54 */
2491/***/ (function(module, exports, __w_pdfjs_require__) {
2492
2493"use strict";
2494
2495
2496var $keys = __w_pdfjs_require__(55);
2497
2498var enumBugKeys = __w_pdfjs_require__(57);
2499
2500module.exports = Object.keys || function keys(O) {
2501 return $keys(O, enumBugKeys);
2502};
2503
2504/***/ }),
2505/* 55 */
2506/***/ (function(module, exports, __w_pdfjs_require__) {
2507
2508"use strict";
2509
2510
2511var has = __w_pdfjs_require__(21);
2512
2513var toIObject = __w_pdfjs_require__(42);
2514
2515var arrayIndexOf = __w_pdfjs_require__(41)(false);
2516
2517var IE_PROTO = __w_pdfjs_require__(56)('IE_PROTO');
2518
2519module.exports = function (object, names) {
2520 var O = toIObject(object);
2521 var i = 0;
2522 var result = [];
2523 var key;
2524
2525 for (key in O) {
2526 if (key != IE_PROTO) has(O, key) && result.push(key);
2527 }
2528
2529 while (names.length > i) {
2530 if (has(O, key = names[i++])) {
2531 ~arrayIndexOf(result, key) || result.push(key);
2532 }
2533 }
2534
2535 return result;
2536};
2537
2538/***/ }),
2539/* 56 */
2540/***/ (function(module, exports, __w_pdfjs_require__) {
2541
2542"use strict";
2543
2544
2545var shared = __w_pdfjs_require__(31)('keys');
2546
2547var uid = __w_pdfjs_require__(22);
2548
2549module.exports = function (key) {
2550 return shared[key] || (shared[key] = uid(key));
2551};
2552
2553/***/ }),
2554/* 57 */
2555/***/ (function(module, exports, __w_pdfjs_require__) {
2556
2557"use strict";
2558
2559
2560module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');
2561
2562/***/ }),
2563/* 58 */
2564/***/ (function(module, exports, __w_pdfjs_require__) {
2565
2566"use strict";
2567
2568
2569var document = __w_pdfjs_require__(8).document;
2570
2571module.exports = document && document.documentElement;
2572
2573/***/ }),
2574/* 59 */
2575/***/ (function(module, exports, __w_pdfjs_require__) {
2576
2577"use strict";
2578
2579
2580var def = __w_pdfjs_require__(11).f;
2581
2582var has = __w_pdfjs_require__(21);
2583
2584var TAG = __w_pdfjs_require__(30)('toStringTag');
2585
2586module.exports = function (it, tag, stat) {
2587 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {
2588 configurable: true,
2589 value: tag
2590 });
2591};
2592
2593/***/ }),
2594/* 60 */
2595/***/ (function(module, exports, __w_pdfjs_require__) {
2596
2597"use strict";
2598
2599
2600var has = __w_pdfjs_require__(21);
2601
2602var toObject = __w_pdfjs_require__(61);
2603
2604var IE_PROTO = __w_pdfjs_require__(56)('IE_PROTO');
2605
2606var ObjectProto = Object.prototype;
2607
2608module.exports = Object.getPrototypeOf || function (O) {
2609 O = toObject(O);
2610 if (has(O, IE_PROTO)) return O[IE_PROTO];
2611
2612 if (typeof O.constructor == 'function' && O instanceof O.constructor) {
2613 return O.constructor.prototype;
2614 }
2615
2616 return O instanceof Object ? ObjectProto : null;
2617};
2618
2619/***/ }),
2620/* 61 */
2621/***/ (function(module, exports, __w_pdfjs_require__) {
2622
2623"use strict";
2624
2625
2626var defined = __w_pdfjs_require__(33);
2627
2628module.exports = function (it) {
2629 return Object(defined(it));
2630};
2631
2632/***/ }),
2633/* 62 */
2634/***/ (function(module, exports, __w_pdfjs_require__) {
2635
2636"use strict";
2637
2638
2639var ctx = __w_pdfjs_require__(23);
2640
2641var $export = __w_pdfjs_require__(7);
2642
2643var toObject = __w_pdfjs_require__(61);
2644
2645var call = __w_pdfjs_require__(63);
2646
2647var isArrayIter = __w_pdfjs_require__(64);
2648
2649var toLength = __w_pdfjs_require__(25);
2650
2651var createProperty = __w_pdfjs_require__(65);
2652
2653var getIterFn = __w_pdfjs_require__(66);
2654
2655$export($export.S + $export.F * !__w_pdfjs_require__(68)(function (iter) {
2656 Array.from(iter);
2657}), 'Array', {
2658 from: function from(arrayLike) {
2659 var O = toObject(arrayLike);
2660 var C = typeof this == 'function' ? this : Array;
2661 var aLen = arguments.length;
2662 var mapfn = aLen > 1 ? arguments[1] : undefined;
2663 var mapping = mapfn !== undefined;
2664 var index = 0;
2665 var iterFn = getIterFn(O);
2666 var length, result, step, iterator;
2667 if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
2668
2669 if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
2670 for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
2671 createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
2672 }
2673 } else {
2674 length = toLength(O.length);
2675
2676 for (result = new C(length); length > index; index++) {
2677 createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
2678 }
2679 }
2680
2681 result.length = index;
2682 return result;
2683 }
2684});
2685
2686/***/ }),
2687/* 63 */
2688/***/ (function(module, exports, __w_pdfjs_require__) {
2689
2690"use strict";
2691
2692
2693var anObject = __w_pdfjs_require__(12);
2694
2695module.exports = function (iterator, fn, value, entries) {
2696 try {
2697 return entries ? fn(anObject(value)[0], value[1]) : fn(value);
2698 } catch (e) {
2699 var ret = iterator['return'];
2700 if (ret !== undefined) anObject(ret.call(iterator));
2701 throw e;
2702 }
2703};
2704
2705/***/ }),
2706/* 64 */
2707/***/ (function(module, exports, __w_pdfjs_require__) {
2708
2709"use strict";
2710
2711
2712var Iterators = __w_pdfjs_require__(50);
2713
2714var ITERATOR = __w_pdfjs_require__(30)('iterator');
2715
2716var ArrayProto = Array.prototype;
2717
2718module.exports = function (it) {
2719 return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
2720};
2721
2722/***/ }),
2723/* 65 */
2724/***/ (function(module, exports, __w_pdfjs_require__) {
2725
2726"use strict";
2727
2728
2729var $defineProperty = __w_pdfjs_require__(11);
2730
2731var createDesc = __w_pdfjs_require__(19);
2732
2733module.exports = function (object, index, value) {
2734 if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value;
2735};
2736
2737/***/ }),
2738/* 66 */
2739/***/ (function(module, exports, __w_pdfjs_require__) {
2740
2741"use strict";
2742
2743
2744var classof = __w_pdfjs_require__(67);
2745
2746var ITERATOR = __w_pdfjs_require__(30)('iterator');
2747
2748var Iterators = __w_pdfjs_require__(50);
2749
2750module.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) {
2751 if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];
2752};
2753
2754/***/ }),
2755/* 67 */
2756/***/ (function(module, exports, __w_pdfjs_require__) {
2757
2758"use strict";
2759
2760
2761var cof = __w_pdfjs_require__(29);
2762
2763var TAG = __w_pdfjs_require__(30)('toStringTag');
2764
2765var ARG = cof(function () {
2766 return arguments;
2767}()) == 'Arguments';
2768
2769var tryGet = function tryGet(it, key) {
2770 try {
2771 return it[key];
2772 } catch (e) {}
2773};
2774
2775module.exports = function (it) {
2776 var O, T, B;
2777 return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
2778};
2779
2780/***/ }),
2781/* 68 */
2782/***/ (function(module, exports, __w_pdfjs_require__) {
2783
2784"use strict";
2785
2786
2787var ITERATOR = __w_pdfjs_require__(30)('iterator');
2788
2789var SAFE_CLOSING = false;
2790
2791try {
2792 var riter = [7][ITERATOR]();
2793
2794 riter['return'] = function () {
2795 SAFE_CLOSING = true;
2796 };
2797
2798 Array.from(riter, function () {
2799 throw 2;
2800 });
2801} catch (e) {}
2802
2803module.exports = function (exec, skipClosing) {
2804 if (!skipClosing && !SAFE_CLOSING) return false;
2805 var safe = false;
2806
2807 try {
2808 var arr = [7];
2809 var iter = arr[ITERATOR]();
2810
2811 iter.next = function () {
2812 return {
2813 done: safe = true
2814 };
2815 };
2816
2817 arr[ITERATOR] = function () {
2818 return iter;
2819 };
2820
2821 exec(arr);
2822 } catch (e) {}
2823
2824 return safe;
2825};
2826
2827/***/ }),
2828/* 69 */
2829/***/ (function(module, exports, __w_pdfjs_require__) {
2830
2831"use strict";
2832
2833
2834__w_pdfjs_require__(70);
2835
2836module.exports = __w_pdfjs_require__(9).Object.assign;
2837
2838/***/ }),
2839/* 70 */
2840/***/ (function(module, exports, __w_pdfjs_require__) {
2841
2842"use strict";
2843
2844
2845var $export = __w_pdfjs_require__(7);
2846
2847$export($export.S + $export.F, 'Object', {
2848 assign: __w_pdfjs_require__(71)
2849});
2850
2851/***/ }),
2852/* 71 */
2853/***/ (function(module, exports, __w_pdfjs_require__) {
2854
2855"use strict";
2856
2857
2858var getKeys = __w_pdfjs_require__(54);
2859
2860var gOPS = __w_pdfjs_require__(72);
2861
2862var pIE = __w_pdfjs_require__(73);
2863
2864var toObject = __w_pdfjs_require__(61);
2865
2866var IObject = __w_pdfjs_require__(43);
2867
2868var $assign = Object.assign;
2869module.exports = !$assign || __w_pdfjs_require__(16)(function () {
2870 var A = {};
2871 var B = {};
2872 var S = Symbol();
2873 var K = 'abcdefghijklmnopqrst';
2874 A[S] = 7;
2875 K.split('').forEach(function (k) {
2876 B[k] = k;
2877 });
2878 return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
2879}) ? function assign(target, source) {
2880 var T = toObject(target);
2881 var aLen = arguments.length;
2882 var index = 1;
2883 var getSymbols = gOPS.f;
2884 var isEnum = pIE.f;
2885
2886 while (aLen > index) {
2887 var S = IObject(arguments[index++]);
2888 var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
2889 var length = keys.length;
2890 var j = 0;
2891 var key;
2892
2893 while (length > j) {
2894 if (isEnum.call(S, key = keys[j++])) T[key] = S[key];
2895 }
2896 }
2897
2898 return T;
2899} : $assign;
2900
2901/***/ }),
2902/* 72 */
2903/***/ (function(module, exports, __w_pdfjs_require__) {
2904
2905"use strict";
2906
2907
2908exports.f = Object.getOwnPropertySymbols;
2909
2910/***/ }),
2911/* 73 */
2912/***/ (function(module, exports, __w_pdfjs_require__) {
2913
2914"use strict";
2915
2916
2917exports.f = {}.propertyIsEnumerable;
2918
2919/***/ }),
2920/* 74 */
2921/***/ (function(module, exports, __w_pdfjs_require__) {
2922
2923"use strict";
2924
2925
2926__w_pdfjs_require__(75);
2927
2928module.exports = __w_pdfjs_require__(9).Math.log2;
2929
2930/***/ }),
2931/* 75 */
2932/***/ (function(module, exports, __w_pdfjs_require__) {
2933
2934"use strict";
2935
2936
2937var $export = __w_pdfjs_require__(7);
2938
2939$export($export.S, 'Math', {
2940 log2: function log2(x) {
2941 return Math.log(x) / Math.LN2;
2942 }
2943});
2944
2945/***/ }),
2946/* 76 */
2947/***/ (function(module, exports, __w_pdfjs_require__) {
2948
2949"use strict";
2950
2951
2952__w_pdfjs_require__(77);
2953
2954module.exports = __w_pdfjs_require__(9).Number.isNaN;
2955
2956/***/ }),
2957/* 77 */
2958/***/ (function(module, exports, __w_pdfjs_require__) {
2959
2960"use strict";
2961
2962
2963var $export = __w_pdfjs_require__(7);
2964
2965$export($export.S, 'Number', {
2966 isNaN: function isNaN(number) {
2967 return number != number;
2968 }
2969});
2970
2971/***/ }),
2972/* 78 */
2973/***/ (function(module, exports, __w_pdfjs_require__) {
2974
2975"use strict";
2976
2977
2978__w_pdfjs_require__(79);
2979
2980module.exports = __w_pdfjs_require__(9).Number.isInteger;
2981
2982/***/ }),
2983/* 79 */
2984/***/ (function(module, exports, __w_pdfjs_require__) {
2985
2986"use strict";
2987
2988
2989var $export = __w_pdfjs_require__(7);
2990
2991$export($export.S, 'Number', {
2992 isInteger: __w_pdfjs_require__(80)
2993});
2994
2995/***/ }),
2996/* 80 */
2997/***/ (function(module, exports, __w_pdfjs_require__) {
2998
2999"use strict";
3000
3001
3002var isObject = __w_pdfjs_require__(13);
3003
3004var floor = Math.floor;
3005
3006module.exports = function isInteger(it) {
3007 return !isObject(it) && isFinite(it) && floor(it) === it;
3008};
3009
3010/***/ }),
3011/* 81 */
3012/***/ (function(module, exports, __w_pdfjs_require__) {
3013
3014"use strict";
3015
3016
3017__w_pdfjs_require__(82);
3018
3019__w_pdfjs_require__(47);
3020
3021__w_pdfjs_require__(83);
3022
3023__w_pdfjs_require__(86);
3024
3025__w_pdfjs_require__(99);
3026
3027__w_pdfjs_require__(100);
3028
3029module.exports = __w_pdfjs_require__(9).Promise;
3030
3031/***/ }),
3032/* 82 */
3033/***/ (function(module, exports, __w_pdfjs_require__) {
3034
3035"use strict";
3036
3037
3038var classof = __w_pdfjs_require__(67);
3039
3040var test = {};
3041test[__w_pdfjs_require__(30)('toStringTag')] = 'z';
3042
3043if (test + '' != '[object z]') {
3044 __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() {
3045 return '[object ' + classof(this) + ']';
3046 }, true);
3047}
3048
3049/***/ }),
3050/* 83 */
3051/***/ (function(module, exports, __w_pdfjs_require__) {
3052
3053"use strict";
3054
3055
3056var $iterators = __w_pdfjs_require__(84);
3057
3058var getKeys = __w_pdfjs_require__(54);
3059
3060var redefine = __w_pdfjs_require__(20);
3061
3062var global = __w_pdfjs_require__(8);
3063
3064var hide = __w_pdfjs_require__(10);
3065
3066var Iterators = __w_pdfjs_require__(50);
3067
3068var wks = __w_pdfjs_require__(30);
3069
3070var ITERATOR = wks('iterator');
3071var TO_STRING_TAG = wks('toStringTag');
3072var ArrayValues = Iterators.Array;
3073var DOMIterables = {
3074 CSSRuleList: true,
3075 CSSStyleDeclaration: false,
3076 CSSValueList: false,
3077 ClientRectList: false,
3078 DOMRectList: false,
3079 DOMStringList: false,
3080 DOMTokenList: true,
3081 DataTransferItemList: false,
3082 FileList: false,
3083 HTMLAllCollection: false,
3084 HTMLCollection: false,
3085 HTMLFormElement: false,
3086 HTMLSelectElement: false,
3087 MediaList: true,
3088 MimeTypeArray: false,
3089 NamedNodeMap: false,
3090 NodeList: true,
3091 PaintRequestList: false,
3092 Plugin: false,
3093 PluginArray: false,
3094 SVGLengthList: false,
3095 SVGNumberList: false,
3096 SVGPathSegList: false,
3097 SVGPointList: false,
3098 SVGStringList: false,
3099 SVGTransformList: false,
3100 SourceBufferList: false,
3101 StyleSheetList: true,
3102 TextTrackCueList: false,
3103 TextTrackList: false,
3104 TouchList: false
3105};
3106
3107for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
3108 var NAME = collections[i];
3109 var explicit = DOMIterables[NAME];
3110 var Collection = global[NAME];
3111 var proto = Collection && Collection.prototype;
3112 var key;
3113
3114 if (proto) {
3115 if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
3116 if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
3117 Iterators[NAME] = ArrayValues;
3118 if (explicit) for (key in $iterators) {
3119 if (!proto[key]) redefine(proto, key, $iterators[key], true);
3120 }
3121 }
3122}
3123
3124/***/ }),
3125/* 84 */
3126/***/ (function(module, exports, __w_pdfjs_require__) {
3127
3128"use strict";
3129
3130
3131var addToUnscopables = __w_pdfjs_require__(45);
3132
3133var step = __w_pdfjs_require__(85);
3134
3135var Iterators = __w_pdfjs_require__(50);
3136
3137var toIObject = __w_pdfjs_require__(42);
3138
3139module.exports = __w_pdfjs_require__(49)(Array, 'Array', function (iterated, kind) {
3140 this._t = toIObject(iterated);
3141 this._i = 0;
3142 this._k = kind;
3143}, function () {
3144 var O = this._t;
3145 var kind = this._k;
3146 var index = this._i++;
3147
3148 if (!O || index >= O.length) {
3149 this._t = undefined;
3150 return step(1);
3151 }
3152
3153 if (kind == 'keys') return step(0, index);
3154 if (kind == 'values') return step(0, O[index]);
3155 return step(0, [index, O[index]]);
3156}, 'values');
3157Iterators.Arguments = Iterators.Array;
3158addToUnscopables('keys');
3159addToUnscopables('values');
3160addToUnscopables('entries');
3161
3162/***/ }),
3163/* 85 */
3164/***/ (function(module, exports, __w_pdfjs_require__) {
3165
3166"use strict";
3167
3168
3169module.exports = function (done, value) {
3170 return {
3171 value: value,
3172 done: !!done
3173 };
3174};
3175
3176/***/ }),
3177/* 86 */
3178/***/ (function(module, exports, __w_pdfjs_require__) {
3179
3180"use strict";
3181
3182
3183var LIBRARY = __w_pdfjs_require__(32);
3184
3185var global = __w_pdfjs_require__(8);
3186
3187var ctx = __w_pdfjs_require__(23);
3188
3189var classof = __w_pdfjs_require__(67);
3190
3191var $export = __w_pdfjs_require__(7);
3192
3193var isObject = __w_pdfjs_require__(13);
3194
3195var aFunction = __w_pdfjs_require__(24);
3196
3197var anInstance = __w_pdfjs_require__(87);
3198
3199var forOf = __w_pdfjs_require__(88);
3200
3201var speciesConstructor = __w_pdfjs_require__(89);
3202
3203var task = __w_pdfjs_require__(90).set;
3204
3205var microtask = __w_pdfjs_require__(92)();
3206
3207var newPromiseCapabilityModule = __w_pdfjs_require__(93);
3208
3209var perform = __w_pdfjs_require__(94);
3210
3211var userAgent = __w_pdfjs_require__(95);
3212
3213var promiseResolve = __w_pdfjs_require__(96);
3214
3215var PROMISE = 'Promise';
3216var TypeError = global.TypeError;
3217var process = global.process;
3218var versions = process && process.versions;
3219var v8 = versions && versions.v8 || '';
3220var $Promise = global[PROMISE];
3221var isNode = classof(process) == 'process';
3222
3223var empty = function empty() {};
3224
3225var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
3226var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
3227var USE_NATIVE = !!function () {
3228 try {
3229 var promise = $Promise.resolve(1);
3230
3231 var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(30)('species')] = function (exec) {
3232 exec(empty, empty);
3233 };
3234
3235 return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;
3236 } catch (e) {}
3237}();
3238
3239var isThenable = function isThenable(it) {
3240 var then;
3241 return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
3242};
3243
3244var notify = function notify(promise, isReject) {
3245 if (promise._n) return;
3246 promise._n = true;
3247 var chain = promise._c;
3248 microtask(function () {
3249 var value = promise._v;
3250 var ok = promise._s == 1;
3251 var i = 0;
3252
3253 var run = function run(reaction) {
3254 var handler = ok ? reaction.ok : reaction.fail;
3255 var resolve = reaction.resolve;
3256 var reject = reaction.reject;
3257 var domain = reaction.domain;
3258 var result, then, exited;
3259
3260 try {
3261 if (handler) {
3262 if (!ok) {
3263 if (promise._h == 2) onHandleUnhandled(promise);
3264 promise._h = 1;
3265 }
3266
3267 if (handler === true) result = value;else {
3268 if (domain) domain.enter();
3269 result = handler(value);
3270
3271 if (domain) {
3272 domain.exit();
3273 exited = true;
3274 }
3275 }
3276
3277 if (result === reaction.promise) {
3278 reject(TypeError('Promise-chain cycle'));
3279 } else if (then = isThenable(result)) {
3280 then.call(result, resolve, reject);
3281 } else resolve(result);
3282 } else reject(value);
3283 } catch (e) {
3284 if (domain && !exited) domain.exit();
3285 reject(e);
3286 }
3287 };
3288
3289 while (chain.length > i) {
3290 run(chain[i++]);
3291 }
3292
3293 promise._c = [];
3294 promise._n = false;
3295 if (isReject && !promise._h) onUnhandled(promise);
3296 });
3297};
3298
3299var onUnhandled = function onUnhandled(promise) {
3300 task.call(global, function () {
3301 var value = promise._v;
3302 var unhandled = isUnhandled(promise);
3303 var result, handler, console;
3304
3305 if (unhandled) {
3306 result = perform(function () {
3307 if (isNode) {
3308 process.emit('unhandledRejection', value, promise);
3309 } else if (handler = global.onunhandledrejection) {
3310 handler({
3311 promise: promise,
3312 reason: value
3313 });
3314 } else if ((console = global.console) && console.error) {
3315 console.error('Unhandled promise rejection', value);
3316 }
3317 });
3318 promise._h = isNode || isUnhandled(promise) ? 2 : 1;
3319 }
3320
3321 promise._a = undefined;
3322 if (unhandled && result.e) throw result.v;
3323 });
3324};
3325
3326var isUnhandled = function isUnhandled(promise) {
3327 return promise._h !== 1 && (promise._a || promise._c).length === 0;
3328};
3329
3330var onHandleUnhandled = function onHandleUnhandled(promise) {
3331 task.call(global, function () {
3332 var handler;
3333
3334 if (isNode) {
3335 process.emit('rejectionHandled', promise);
3336 } else if (handler = global.onrejectionhandled) {
3337 handler({
3338 promise: promise,
3339 reason: promise._v
3340 });
3341 }
3342 });
3343};
3344
3345var $reject = function $reject(value) {
3346 var promise = this;
3347 if (promise._d) return;
3348 promise._d = true;
3349 promise = promise._w || promise;
3350 promise._v = value;
3351 promise._s = 2;
3352 if (!promise._a) promise._a = promise._c.slice();
3353 notify(promise, true);
3354};
3355
3356var $resolve = function $resolve(value) {
3357 var promise = this;
3358 var then;
3359 if (promise._d) return;
3360 promise._d = true;
3361 promise = promise._w || promise;
3362
3363 try {
3364 if (promise === value) throw TypeError("Promise can't be resolved itself");
3365
3366 if (then = isThenable(value)) {
3367 microtask(function () {
3368 var wrapper = {
3369 _w: promise,
3370 _d: false
3371 };
3372
3373 try {
3374 then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
3375 } catch (e) {
3376 $reject.call(wrapper, e);
3377 }
3378 });
3379 } else {
3380 promise._v = value;
3381 promise._s = 1;
3382 notify(promise, false);
3383 }
3384 } catch (e) {
3385 $reject.call({
3386 _w: promise,
3387 _d: false
3388 }, e);
3389 }
3390};
3391
3392if (!USE_NATIVE) {
3393 $Promise = function Promise(executor) {
3394 anInstance(this, $Promise, PROMISE, '_h');
3395 aFunction(executor);
3396 Internal.call(this);
3397
3398 try {
3399 executor(ctx($resolve, this, 1), ctx($reject, this, 1));
3400 } catch (err) {
3401 $reject.call(this, err);
3402 }
3403 };
3404
3405 Internal = function Promise(executor) {
3406 this._c = [];
3407 this._a = undefined;
3408 this._s = 0;
3409 this._d = false;
3410 this._v = undefined;
3411 this._h = 0;
3412 this._n = false;
3413 };
3414
3415 Internal.prototype = __w_pdfjs_require__(97)($Promise.prototype, {
3416 then: function then(onFulfilled, onRejected) {
3417 var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
3418 reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
3419 reaction.fail = typeof onRejected == 'function' && onRejected;
3420 reaction.domain = isNode ? process.domain : undefined;
3421
3422 this._c.push(reaction);
3423
3424 if (this._a) this._a.push(reaction);
3425 if (this._s) notify(this, false);
3426 return reaction.promise;
3427 },
3428 'catch': function _catch(onRejected) {
3429 return this.then(undefined, onRejected);
3430 }
3431 });
3432
3433 OwnPromiseCapability = function OwnPromiseCapability() {
3434 var promise = new Internal();
3435 this.promise = promise;
3436 this.resolve = ctx($resolve, promise, 1);
3437 this.reject = ctx($reject, promise, 1);
3438 };
3439
3440 newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) {
3441 return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);
3442 };
3443}
3444
3445$export($export.G + $export.W + $export.F * !USE_NATIVE, {
3446 Promise: $Promise
3447});
3448
3449__w_pdfjs_require__(59)($Promise, PROMISE);
3450
3451__w_pdfjs_require__(98)(PROMISE);
3452
3453Wrapper = __w_pdfjs_require__(9)[PROMISE];
3454$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
3455 reject: function reject(r) {
3456 var capability = newPromiseCapability(this);
3457 var $$reject = capability.reject;
3458 $$reject(r);
3459 return capability.promise;
3460 }
3461});
3462$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
3463 resolve: function resolve(x) {
3464 return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
3465 }
3466});
3467$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(68)(function (iter) {
3468 $Promise.all(iter)['catch'](empty);
3469})), PROMISE, {
3470 all: function all(iterable) {
3471 var C = this;
3472 var capability = newPromiseCapability(C);
3473 var resolve = capability.resolve;
3474 var reject = capability.reject;
3475 var result = perform(function () {
3476 var values = [];
3477 var index = 0;
3478 var remaining = 1;
3479 forOf(iterable, false, function (promise) {
3480 var $index = index++;
3481 var alreadyCalled = false;
3482 values.push(undefined);
3483 remaining++;
3484 C.resolve(promise).then(function (value) {
3485 if (alreadyCalled) return;
3486 alreadyCalled = true;
3487 values[$index] = value;
3488 --remaining || resolve(values);
3489 }, reject);
3490 });
3491 --remaining || resolve(values);
3492 });
3493 if (result.e) reject(result.v);
3494 return capability.promise;
3495 },
3496 race: function race(iterable) {
3497 var C = this;
3498 var capability = newPromiseCapability(C);
3499 var reject = capability.reject;
3500 var result = perform(function () {
3501 forOf(iterable, false, function (promise) {
3502 C.resolve(promise).then(capability.resolve, reject);
3503 });
3504 });
3505 if (result.e) reject(result.v);
3506 return capability.promise;
3507 }
3508});
3509
3510/***/ }),
3511/* 87 */
3512/***/ (function(module, exports, __w_pdfjs_require__) {
3513
3514"use strict";
3515
3516
3517module.exports = function (it, Constructor, name, forbiddenField) {
3518 if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {
3519 throw TypeError(name + ': incorrect invocation!');
3520 }
3521
3522 return it;
3523};
3524
3525/***/ }),
3526/* 88 */
3527/***/ (function(module, exports, __w_pdfjs_require__) {
3528
3529"use strict";
3530
3531
3532var ctx = __w_pdfjs_require__(23);
3533
3534var call = __w_pdfjs_require__(63);
3535
3536var isArrayIter = __w_pdfjs_require__(64);
3537
3538var anObject = __w_pdfjs_require__(12);
3539
3540var toLength = __w_pdfjs_require__(25);
3541
3542var getIterFn = __w_pdfjs_require__(66);
3543
3544var BREAK = {};
3545var RETURN = {};
3546
3547var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
3548 var iterFn = ITERATOR ? function () {
3549 return iterable;
3550 } : getIterFn(iterable);
3551 var f = ctx(fn, that, entries ? 2 : 1);
3552 var index = 0;
3553 var length, step, iterator, result;
3554 if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
3555 if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
3556 result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
3557 if (result === BREAK || result === RETURN) return result;
3558 } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
3559 result = call(iterator, f, step.value, entries);
3560 if (result === BREAK || result === RETURN) return result;
3561 }
3562};
3563
3564_exports.BREAK = BREAK;
3565_exports.RETURN = RETURN;
3566
3567/***/ }),
3568/* 89 */
3569/***/ (function(module, exports, __w_pdfjs_require__) {
3570
3571"use strict";
3572
3573
3574var anObject = __w_pdfjs_require__(12);
3575
3576var aFunction = __w_pdfjs_require__(24);
3577
3578var SPECIES = __w_pdfjs_require__(30)('species');
3579
3580module.exports = function (O, D) {
3581 var C = anObject(O).constructor;
3582 var S;
3583 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
3584};
3585
3586/***/ }),
3587/* 90 */
3588/***/ (function(module, exports, __w_pdfjs_require__) {
3589
3590"use strict";
3591
3592
3593var ctx = __w_pdfjs_require__(23);
3594
3595var invoke = __w_pdfjs_require__(91);
3596
3597var html = __w_pdfjs_require__(58);
3598
3599var cel = __w_pdfjs_require__(17);
3600
3601var global = __w_pdfjs_require__(8);
3602
3603var process = global.process;
3604var setTask = global.setImmediate;
3605var clearTask = global.clearImmediate;
3606var MessageChannel = global.MessageChannel;
3607var Dispatch = global.Dispatch;
3608var counter = 0;
3609var queue = {};
3610var ONREADYSTATECHANGE = 'onreadystatechange';
3611var defer, channel, port;
3612
3613var run = function run() {
3614 var id = +this;
3615
3616 if (queue.hasOwnProperty(id)) {
3617 var fn = queue[id];
3618 delete queue[id];
3619 fn();
3620 }
3621};
3622
3623var listener = function listener(event) {
3624 run.call(event.data);
3625};
3626
3627if (!setTask || !clearTask) {
3628 setTask = function setImmediate(fn) {
3629 var args = [];
3630 var i = 1;
3631
3632 while (arguments.length > i) {
3633 args.push(arguments[i++]);
3634 }
3635
3636 queue[++counter] = function () {
3637 invoke(typeof fn == 'function' ? fn : Function(fn), args);
3638 };
3639
3640 defer(counter);
3641 return counter;
3642 };
3643
3644 clearTask = function clearImmediate(id) {
3645 delete queue[id];
3646 };
3647
3648 if (__w_pdfjs_require__(29)(process) == 'process') {
3649 defer = function defer(id) {
3650 process.nextTick(ctx(run, id, 1));
3651 };
3652 } else if (Dispatch && Dispatch.now) {
3653 defer = function defer(id) {
3654 Dispatch.now(ctx(run, id, 1));
3655 };
3656 } else if (MessageChannel) {
3657 channel = new MessageChannel();
3658 port = channel.port2;
3659 channel.port1.onmessage = listener;
3660 defer = ctx(port.postMessage, port, 1);
3661 } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
3662 defer = function defer(id) {
3663 global.postMessage(id + '', '*');
3664 };
3665
3666 global.addEventListener('message', listener, false);
3667 } else if (ONREADYSTATECHANGE in cel('script')) {
3668 defer = function defer(id) {
3669 html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
3670 html.removeChild(this);
3671 run.call(id);
3672 };
3673 };
3674 } else {
3675 defer = function defer(id) {
3676 setTimeout(ctx(run, id, 1), 0);
3677 };
3678 }
3679}
3680
3681module.exports = {
3682 set: setTask,
3683 clear: clearTask
3684};
3685
3686/***/ }),
3687/* 91 */
3688/***/ (function(module, exports, __w_pdfjs_require__) {
3689
3690"use strict";
3691
3692
3693module.exports = function (fn, args, that) {
3694 var un = that === undefined;
3695
3696 switch (args.length) {
3697 case 0:
3698 return un ? fn() : fn.call(that);
3699
3700 case 1:
3701 return un ? fn(args[0]) : fn.call(that, args[0]);
3702
3703 case 2:
3704 return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);
3705
3706 case 3:
3707 return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);
3708
3709 case 4:
3710 return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);
3711 }
3712
3713 return fn.apply(that, args);
3714};
3715
3716/***/ }),
3717/* 92 */
3718/***/ (function(module, exports, __w_pdfjs_require__) {
3719
3720"use strict";
3721
3722
3723var global = __w_pdfjs_require__(8);
3724
3725var macrotask = __w_pdfjs_require__(90).set;
3726
3727var Observer = global.MutationObserver || global.WebKitMutationObserver;
3728var process = global.process;
3729var Promise = global.Promise;
3730var isNode = __w_pdfjs_require__(29)(process) == 'process';
3731
3732module.exports = function () {
3733 var head, last, notify;
3734
3735 var flush = function flush() {
3736 var parent, fn;
3737 if (isNode && (parent = process.domain)) parent.exit();
3738
3739 while (head) {
3740 fn = head.fn;
3741 head = head.next;
3742
3743 try {
3744 fn();
3745 } catch (e) {
3746 if (head) notify();else last = undefined;
3747 throw e;
3748 }
3749 }
3750
3751 last = undefined;
3752 if (parent) parent.enter();
3753 };
3754
3755 if (isNode) {
3756 notify = function notify() {
3757 process.nextTick(flush);
3758 };
3759 } else if (Observer && !(global.navigator && global.navigator.standalone)) {
3760 var toggle = true;
3761 var node = document.createTextNode('');
3762 new Observer(flush).observe(node, {
3763 characterData: true
3764 });
3765
3766 notify = function notify() {
3767 node.data = toggle = !toggle;
3768 };
3769 } else if (Promise && Promise.resolve) {
3770 var promise = Promise.resolve(undefined);
3771
3772 notify = function notify() {
3773 promise.then(flush);
3774 };
3775 } else {
3776 notify = function notify() {
3777 macrotask.call(global, flush);
3778 };
3779 }
3780
3781 return function (fn) {
3782 var task = {
3783 fn: fn,
3784 next: undefined
3785 };
3786 if (last) last.next = task;
3787
3788 if (!head) {
3789 head = task;
3790 notify();
3791 }
3792
3793 last = task;
3794 };
3795};
3796
3797/***/ }),
3798/* 93 */
3799/***/ (function(module, exports, __w_pdfjs_require__) {
3800
3801"use strict";
3802
3803
3804var aFunction = __w_pdfjs_require__(24);
3805
3806function PromiseCapability(C) {
3807 var resolve, reject;
3808 this.promise = new C(function ($$resolve, $$reject) {
3809 if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
3810 resolve = $$resolve;
3811 reject = $$reject;
3812 });
3813 this.resolve = aFunction(resolve);
3814 this.reject = aFunction(reject);
3815}
3816
3817module.exports.f = function (C) {
3818 return new PromiseCapability(C);
3819};
3820
3821/***/ }),
3822/* 94 */
3823/***/ (function(module, exports, __w_pdfjs_require__) {
3824
3825"use strict";
3826
3827
3828module.exports = function (exec) {
3829 try {
3830 return {
3831 e: false,
3832 v: exec()
3833 };
3834 } catch (e) {
3835 return {
3836 e: true,
3837 v: e
3838 };
3839 }
3840};
3841
3842/***/ }),
3843/* 95 */
3844/***/ (function(module, exports, __w_pdfjs_require__) {
3845
3846"use strict";
3847
3848
3849var global = __w_pdfjs_require__(8);
3850
3851var navigator = global.navigator;
3852module.exports = navigator && navigator.userAgent || '';
3853
3854/***/ }),
3855/* 96 */
3856/***/ (function(module, exports, __w_pdfjs_require__) {
3857
3858"use strict";
3859
3860
3861var anObject = __w_pdfjs_require__(12);
3862
3863var isObject = __w_pdfjs_require__(13);
3864
3865var newPromiseCapability = __w_pdfjs_require__(93);
3866
3867module.exports = function (C, x) {
3868 anObject(C);
3869 if (isObject(x) && x.constructor === C) return x;
3870 var promiseCapability = newPromiseCapability.f(C);
3871 var resolve = promiseCapability.resolve;
3872 resolve(x);
3873 return promiseCapability.promise;
3874};
3875
3876/***/ }),
3877/* 97 */
3878/***/ (function(module, exports, __w_pdfjs_require__) {
3879
3880"use strict";
3881
3882
3883var redefine = __w_pdfjs_require__(20);
3884
3885module.exports = function (target, src, safe) {
3886 for (var key in src) {
3887 redefine(target, key, src[key], safe);
3888 }
3889
3890 return target;
3891};
3892
3893/***/ }),
3894/* 98 */
3895/***/ (function(module, exports, __w_pdfjs_require__) {
3896
3897"use strict";
3898
3899
3900var global = __w_pdfjs_require__(8);
3901
3902var dP = __w_pdfjs_require__(11);
3903
3904var DESCRIPTORS = __w_pdfjs_require__(15);
3905
3906var SPECIES = __w_pdfjs_require__(30)('species');
3907
3908module.exports = function (KEY) {
3909 var C = global[KEY];
3910 if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
3911 configurable: true,
3912 get: function get() {
3913 return this;
3914 }
3915 });
3916};
3917
3918/***/ }),
3919/* 99 */
3920/***/ (function(module, exports, __w_pdfjs_require__) {
3921
3922"use strict";
3923
3924
3925var $export = __w_pdfjs_require__(7);
3926
3927var core = __w_pdfjs_require__(9);
3928
3929var global = __w_pdfjs_require__(8);
3930
3931var speciesConstructor = __w_pdfjs_require__(89);
3932
3933var promiseResolve = __w_pdfjs_require__(96);
3934
3935$export($export.P + $export.R, 'Promise', {
3936 'finally': function _finally(onFinally) {
3937 var C = speciesConstructor(this, core.Promise || global.Promise);
3938 var isFunction = typeof onFinally == 'function';
3939 return this.then(isFunction ? function (x) {
3940 return promiseResolve(C, onFinally()).then(function () {
3941 return x;
3942 });
3943 } : onFinally, isFunction ? function (e) {
3944 return promiseResolve(C, onFinally()).then(function () {
3945 throw e;
3946 });
3947 } : onFinally);
3948 }
3949});
3950
3951/***/ }),
3952/* 100 */
3953/***/ (function(module, exports, __w_pdfjs_require__) {
3954
3955"use strict";
3956
3957
3958var $export = __w_pdfjs_require__(7);
3959
3960var newPromiseCapability = __w_pdfjs_require__(93);
3961
3962var perform = __w_pdfjs_require__(94);
3963
3964$export($export.S, 'Promise', {
3965 'try': function _try(callbackfn) {
3966 var promiseCapability = newPromiseCapability.f(this);
3967 var result = perform(callbackfn);
3968 (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
3969 return promiseCapability.promise;
3970 }
3971});
3972
3973/***/ }),
3974/* 101 */
3975/***/ (function(module, exports, __w_pdfjs_require__) {
3976
3977"use strict";
3978
3979
3980__w_pdfjs_require__(82);
3981
3982__w_pdfjs_require__(83);
3983
3984__w_pdfjs_require__(102);
3985
3986__w_pdfjs_require__(114);
3987
3988__w_pdfjs_require__(116);
3989
3990module.exports = __w_pdfjs_require__(9).WeakMap;
3991
3992/***/ }),
3993/* 102 */
3994/***/ (function(module, exports, __w_pdfjs_require__) {
3995
3996"use strict";
3997
3998
3999var each = __w_pdfjs_require__(103)(0);
4000
4001var redefine = __w_pdfjs_require__(20);
4002
4003var meta = __w_pdfjs_require__(107);
4004
4005var assign = __w_pdfjs_require__(71);
4006
4007var weak = __w_pdfjs_require__(108);
4008
4009var isObject = __w_pdfjs_require__(13);
4010
4011var fails = __w_pdfjs_require__(16);
4012
4013var validate = __w_pdfjs_require__(109);
4014
4015var WEAK_MAP = 'WeakMap';
4016var getWeak = meta.getWeak;
4017var isExtensible = Object.isExtensible;
4018var uncaughtFrozenStore = weak.ufstore;
4019var tmp = {};
4020var InternalMap;
4021
4022var wrapper = function wrapper(get) {
4023 return function WeakMap() {
4024 return get(this, arguments.length > 0 ? arguments[0] : undefined);
4025 };
4026};
4027
4028var methods = {
4029 get: function get(key) {
4030 if (isObject(key)) {
4031 var data = getWeak(key);
4032 if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
4033 return data ? data[this._i] : undefined;
4034 }
4035 },
4036 set: function set(key, value) {
4037 return weak.def(validate(this, WEAK_MAP), key, value);
4038 }
4039};
4040
4041var $WeakMap = module.exports = __w_pdfjs_require__(110)(WEAK_MAP, wrapper, methods, weak, true, true);
4042
4043if (fails(function () {
4044 return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7;
4045})) {
4046 InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
4047 assign(InternalMap.prototype, methods);
4048 meta.NEED = true;
4049 each(['delete', 'has', 'get', 'set'], function (key) {
4050 var proto = $WeakMap.prototype;
4051 var method = proto[key];
4052 redefine(proto, key, function (a, b) {
4053 if (isObject(a) && !isExtensible(a)) {
4054 if (!this._f) this._f = new InternalMap();
4055
4056 var result = this._f[key](a, b);
4057
4058 return key == 'set' ? this : result;
4059 }
4060
4061 return method.call(this, a, b);
4062 });
4063 });
4064}
4065
4066/***/ }),
4067/* 103 */
4068/***/ (function(module, exports, __w_pdfjs_require__) {
4069
4070"use strict";
4071
4072
4073var ctx = __w_pdfjs_require__(23);
4074
4075var IObject = __w_pdfjs_require__(43);
4076
4077var toObject = __w_pdfjs_require__(61);
4078
4079var toLength = __w_pdfjs_require__(25);
4080
4081var asc = __w_pdfjs_require__(104);
4082
4083module.exports = function (TYPE, $create) {
4084 var IS_MAP = TYPE == 1;
4085 var IS_FILTER = TYPE == 2;
4086 var IS_SOME = TYPE == 3;
4087 var IS_EVERY = TYPE == 4;
4088 var IS_FIND_INDEX = TYPE == 6;
4089 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
4090 var create = $create || asc;
4091 return function ($this, callbackfn, that) {
4092 var O = toObject($this);
4093 var self = IObject(O);
4094 var f = ctx(callbackfn, that, 3);
4095 var length = toLength(self.length);
4096 var index = 0;
4097 var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
4098 var val, res;
4099
4100 for (; length > index; index++) {
4101 if (NO_HOLES || index in self) {
4102 val = self[index];
4103 res = f(val, index, O);
4104
4105 if (TYPE) {
4106 if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {
4107 case 3:
4108 return true;
4109
4110 case 5:
4111 return val;
4112
4113 case 6:
4114 return index;
4115
4116 case 2:
4117 result.push(val);
4118 } else if (IS_EVERY) return false;
4119 }
4120 }
4121 }
4122
4123 return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
4124 };
4125};
4126
4127/***/ }),
4128/* 104 */
4129/***/ (function(module, exports, __w_pdfjs_require__) {
4130
4131"use strict";
4132
4133
4134var speciesConstructor = __w_pdfjs_require__(105);
4135
4136module.exports = function (original, length) {
4137 return new (speciesConstructor(original))(length);
4138};
4139
4140/***/ }),
4141/* 105 */
4142/***/ (function(module, exports, __w_pdfjs_require__) {
4143
4144"use strict";
4145
4146
4147var isObject = __w_pdfjs_require__(13);
4148
4149var isArray = __w_pdfjs_require__(106);
4150
4151var SPECIES = __w_pdfjs_require__(30)('species');
4152
4153module.exports = function (original) {
4154 var C;
4155
4156 if (isArray(original)) {
4157 C = original.constructor;
4158 if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
4159
4160 if (isObject(C)) {
4161 C = C[SPECIES];
4162 if (C === null) C = undefined;
4163 }
4164 }
4165
4166 return C === undefined ? Array : C;
4167};
4168
4169/***/ }),
4170/* 106 */
4171/***/ (function(module, exports, __w_pdfjs_require__) {
4172
4173"use strict";
4174
4175
4176var cof = __w_pdfjs_require__(29);
4177
4178module.exports = Array.isArray || function isArray(arg) {
4179 return cof(arg) == 'Array';
4180};
4181
4182/***/ }),
4183/* 107 */
4184/***/ (function(module, exports, __w_pdfjs_require__) {
4185
4186"use strict";
4187
4188
4189function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4190
4191var META = __w_pdfjs_require__(22)('meta');
4192
4193var isObject = __w_pdfjs_require__(13);
4194
4195var has = __w_pdfjs_require__(21);
4196
4197var setDesc = __w_pdfjs_require__(11).f;
4198
4199var id = 0;
4200
4201var isExtensible = Object.isExtensible || function () {
4202 return true;
4203};
4204
4205var FREEZE = !__w_pdfjs_require__(16)(function () {
4206 return isExtensible(Object.preventExtensions({}));
4207});
4208
4209var setMeta = function setMeta(it) {
4210 setDesc(it, META, {
4211 value: {
4212 i: 'O' + ++id,
4213 w: {}
4214 }
4215 });
4216};
4217
4218var fastKey = function fastKey(it, create) {
4219 if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
4220
4221 if (!has(it, META)) {
4222 if (!isExtensible(it)) return 'F';
4223 if (!create) return 'E';
4224 setMeta(it);
4225 }
4226
4227 return it[META].i;
4228};
4229
4230var getWeak = function getWeak(it, create) {
4231 if (!has(it, META)) {
4232 if (!isExtensible(it)) return true;
4233 if (!create) return false;
4234 setMeta(it);
4235 }
4236
4237 return it[META].w;
4238};
4239
4240var onFreeze = function onFreeze(it) {
4241 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
4242 return it;
4243};
4244
4245var meta = module.exports = {
4246 KEY: META,
4247 NEED: false,
4248 fastKey: fastKey,
4249 getWeak: getWeak,
4250 onFreeze: onFreeze
4251};
4252
4253/***/ }),
4254/* 108 */
4255/***/ (function(module, exports, __w_pdfjs_require__) {
4256
4257"use strict";
4258
4259
4260var redefineAll = __w_pdfjs_require__(97);
4261
4262var getWeak = __w_pdfjs_require__(107).getWeak;
4263
4264var anObject = __w_pdfjs_require__(12);
4265
4266var isObject = __w_pdfjs_require__(13);
4267
4268var anInstance = __w_pdfjs_require__(87);
4269
4270var forOf = __w_pdfjs_require__(88);
4271
4272var createArrayMethod = __w_pdfjs_require__(103);
4273
4274var $has = __w_pdfjs_require__(21);
4275
4276var validate = __w_pdfjs_require__(109);
4277
4278var arrayFind = createArrayMethod(5);
4279var arrayFindIndex = createArrayMethod(6);
4280var id = 0;
4281
4282var uncaughtFrozenStore = function uncaughtFrozenStore(that) {
4283 return that._l || (that._l = new UncaughtFrozenStore());
4284};
4285
4286var UncaughtFrozenStore = function UncaughtFrozenStore() {
4287 this.a = [];
4288};
4289
4290var findUncaughtFrozen = function findUncaughtFrozen(store, key) {
4291 return arrayFind(store.a, function (it) {
4292 return it[0] === key;
4293 });
4294};
4295
4296UncaughtFrozenStore.prototype = {
4297 get: function get(key) {
4298 var entry = findUncaughtFrozen(this, key);
4299 if (entry) return entry[1];
4300 },
4301 has: function has(key) {
4302 return !!findUncaughtFrozen(this, key);
4303 },
4304 set: function set(key, value) {
4305 var entry = findUncaughtFrozen(this, key);
4306 if (entry) entry[1] = value;else this.a.push([key, value]);
4307 },
4308 'delete': function _delete(key) {
4309 var index = arrayFindIndex(this.a, function (it) {
4310 return it[0] === key;
4311 });
4312 if (~index) this.a.splice(index, 1);
4313 return !!~index;
4314 }
4315};
4316module.exports = {
4317 getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {
4318 var C = wrapper(function (that, iterable) {
4319 anInstance(that, C, NAME, '_i');
4320 that._t = NAME;
4321 that._i = id++;
4322 that._l = undefined;
4323 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
4324 });
4325 redefineAll(C.prototype, {
4326 'delete': function _delete(key) {
4327 if (!isObject(key)) return false;
4328 var data = getWeak(key);
4329 if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
4330 return data && $has(data, this._i) && delete data[this._i];
4331 },
4332 has: function has(key) {
4333 if (!isObject(key)) return false;
4334 var data = getWeak(key);
4335 if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
4336 return data && $has(data, this._i);
4337 }
4338 });
4339 return C;
4340 },
4341 def: function def(that, key, value) {
4342 var data = getWeak(anObject(key), true);
4343 if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value;
4344 return that;
4345 },
4346 ufstore: uncaughtFrozenStore
4347};
4348
4349/***/ }),
4350/* 109 */
4351/***/ (function(module, exports, __w_pdfjs_require__) {
4352
4353"use strict";
4354
4355
4356var isObject = __w_pdfjs_require__(13);
4357
4358module.exports = function (it, TYPE) {
4359 if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
4360 return it;
4361};
4362
4363/***/ }),
4364/* 110 */
4365/***/ (function(module, exports, __w_pdfjs_require__) {
4366
4367"use strict";
4368
4369
4370var global = __w_pdfjs_require__(8);
4371
4372var $export = __w_pdfjs_require__(7);
4373
4374var redefine = __w_pdfjs_require__(20);
4375
4376var redefineAll = __w_pdfjs_require__(97);
4377
4378var meta = __w_pdfjs_require__(107);
4379
4380var forOf = __w_pdfjs_require__(88);
4381
4382var anInstance = __w_pdfjs_require__(87);
4383
4384var isObject = __w_pdfjs_require__(13);
4385
4386var fails = __w_pdfjs_require__(16);
4387
4388var $iterDetect = __w_pdfjs_require__(68);
4389
4390var setToStringTag = __w_pdfjs_require__(59);
4391
4392var inheritIfRequired = __w_pdfjs_require__(111);
4393
4394module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
4395 var Base = global[NAME];
4396 var C = Base;
4397 var ADDER = IS_MAP ? 'set' : 'add';
4398 var proto = C && C.prototype;
4399 var O = {};
4400
4401 var fixMethod = function fixMethod(KEY) {
4402 var fn = proto[KEY];
4403 redefine(proto, KEY, KEY == 'delete' ? function (a) {
4404 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
4405 } : KEY == 'has' ? function has(a) {
4406 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
4407 } : KEY == 'get' ? function get(a) {
4408 return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
4409 } : KEY == 'add' ? function add(a) {
4410 fn.call(this, a === 0 ? 0 : a);
4411 return this;
4412 } : function set(a, b) {
4413 fn.call(this, a === 0 ? 0 : a, b);
4414 return this;
4415 });
4416 };
4417
4418 if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
4419 new C().entries().next();
4420 }))) {
4421 C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
4422 redefineAll(C.prototype, methods);
4423 meta.NEED = true;
4424 } else {
4425 var instance = new C();
4426 var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
4427 var THROWS_ON_PRIMITIVES = fails(function () {
4428 instance.has(1);
4429 });
4430 var ACCEPT_ITERABLES = $iterDetect(function (iter) {
4431 new C(iter);
4432 });
4433 var BUGGY_ZERO = !IS_WEAK && fails(function () {
4434 var $instance = new C();
4435 var index = 5;
4436
4437 while (index--) {
4438 $instance[ADDER](index, index);
4439 }
4440
4441 return !$instance.has(-0);
4442 });
4443
4444 if (!ACCEPT_ITERABLES) {
4445 C = wrapper(function (target, iterable) {
4446 anInstance(target, C, NAME);
4447 var that = inheritIfRequired(new Base(), target, C);
4448 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
4449 return that;
4450 });
4451 C.prototype = proto;
4452 proto.constructor = C;
4453 }
4454
4455 if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
4456 fixMethod('delete');
4457 fixMethod('has');
4458 IS_MAP && fixMethod('get');
4459 }
4460
4461 if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
4462 if (IS_WEAK && proto.clear) delete proto.clear;
4463 }
4464
4465 setToStringTag(C, NAME);
4466 O[NAME] = C;
4467 $export($export.G + $export.W + $export.F * (C != Base), O);
4468 if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
4469 return C;
4470};
4471
4472/***/ }),
4473/* 111 */
4474/***/ (function(module, exports, __w_pdfjs_require__) {
4475
4476"use strict";
4477
4478
4479var isObject = __w_pdfjs_require__(13);
4480
4481var setPrototypeOf = __w_pdfjs_require__(112).set;
4482
4483module.exports = function (that, target, C) {
4484 var S = target.constructor;
4485 var P;
4486
4487 if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
4488 setPrototypeOf(that, P);
4489 }
4490
4491 return that;
4492};
4493
4494/***/ }),
4495/* 112 */
4496/***/ (function(module, exports, __w_pdfjs_require__) {
4497
4498"use strict";
4499
4500
4501var isObject = __w_pdfjs_require__(13);
4502
4503var anObject = __w_pdfjs_require__(12);
4504
4505var check = function check(O, proto) {
4506 anObject(O);
4507 if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
4508};
4509
4510module.exports = {
4511 set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) {
4512 try {
4513 set = __w_pdfjs_require__(23)(Function.call, __w_pdfjs_require__(113).f(Object.prototype, '__proto__').set, 2);
4514 set(test, []);
4515 buggy = !(test instanceof Array);
4516 } catch (e) {
4517 buggy = true;
4518 }
4519
4520 return function setPrototypeOf(O, proto) {
4521 check(O, proto);
4522 if (buggy) O.__proto__ = proto;else set(O, proto);
4523 return O;
4524 };
4525 }({}, false) : undefined),
4526 check: check
4527};
4528
4529/***/ }),
4530/* 113 */
4531/***/ (function(module, exports, __w_pdfjs_require__) {
4532
4533"use strict";
4534
4535
4536var pIE = __w_pdfjs_require__(73);
4537
4538var createDesc = __w_pdfjs_require__(19);
4539
4540var toIObject = __w_pdfjs_require__(42);
4541
4542var toPrimitive = __w_pdfjs_require__(18);
4543
4544var has = __w_pdfjs_require__(21);
4545
4546var IE8_DOM_DEFINE = __w_pdfjs_require__(14);
4547
4548var gOPD = Object.getOwnPropertyDescriptor;
4549exports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) {
4550 O = toIObject(O);
4551 P = toPrimitive(P, true);
4552 if (IE8_DOM_DEFINE) try {
4553 return gOPD(O, P);
4554 } catch (e) {}
4555 if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
4556};
4557
4558/***/ }),
4559/* 114 */
4560/***/ (function(module, exports, __w_pdfjs_require__) {
4561
4562"use strict";
4563
4564
4565__w_pdfjs_require__(115)('WeakMap');
4566
4567/***/ }),
4568/* 115 */
4569/***/ (function(module, exports, __w_pdfjs_require__) {
4570
4571"use strict";
4572
4573
4574var $export = __w_pdfjs_require__(7);
4575
4576module.exports = function (COLLECTION) {
4577 $export($export.S, COLLECTION, {
4578 of: function of() {
4579 var length = arguments.length;
4580 var A = new Array(length);
4581
4582 while (length--) {
4583 A[length] = arguments[length];
4584 }
4585
4586 return new this(A);
4587 }
4588 });
4589};
4590
4591/***/ }),
4592/* 116 */
4593/***/ (function(module, exports, __w_pdfjs_require__) {
4594
4595"use strict";
4596
4597
4598__w_pdfjs_require__(117)('WeakMap');
4599
4600/***/ }),
4601/* 117 */
4602/***/ (function(module, exports, __w_pdfjs_require__) {
4603
4604"use strict";
4605
4606
4607var $export = __w_pdfjs_require__(7);
4608
4609var aFunction = __w_pdfjs_require__(24);
4610
4611var ctx = __w_pdfjs_require__(23);
4612
4613var forOf = __w_pdfjs_require__(88);
4614
4615module.exports = function (COLLECTION) {
4616 $export($export.S, COLLECTION, {
4617 from: function from(source) {
4618 var mapFn = arguments[1];
4619 var mapping, A, n, cb;
4620 aFunction(this);
4621 mapping = mapFn !== undefined;
4622 if (mapping) aFunction(mapFn);
4623 if (source == undefined) return new this();
4624 A = [];
4625
4626 if (mapping) {
4627 n = 0;
4628 cb = ctx(mapFn, arguments[2], 2);
4629 forOf(source, false, function (nextItem) {
4630 A.push(cb(nextItem, n++));
4631 });
4632 } else {
4633 forOf(source, false, A.push, A);
4634 }
4635
4636 return new this(A);
4637 }
4638 });
4639};
4640
4641/***/ }),
4642/* 118 */
4643/***/ (function(module, exports, __w_pdfjs_require__) {
4644
4645"use strict";
4646
4647
4648__w_pdfjs_require__(82);
4649
4650__w_pdfjs_require__(83);
4651
4652__w_pdfjs_require__(119);
4653
4654__w_pdfjs_require__(120);
4655
4656__w_pdfjs_require__(121);
4657
4658module.exports = __w_pdfjs_require__(9).WeakSet;
4659
4660/***/ }),
4661/* 119 */
4662/***/ (function(module, exports, __w_pdfjs_require__) {
4663
4664"use strict";
4665
4666
4667var weak = __w_pdfjs_require__(108);
4668
4669var validate = __w_pdfjs_require__(109);
4670
4671var WEAK_SET = 'WeakSet';
4672
4673__w_pdfjs_require__(110)(WEAK_SET, function (get) {
4674 return function WeakSet() {
4675 return get(this, arguments.length > 0 ? arguments[0] : undefined);
4676 };
4677}, {
4678 add: function add(value) {
4679 return weak.def(validate(this, WEAK_SET), value, true);
4680 }
4681}, weak, false, true);
4682
4683/***/ }),
4684/* 120 */
4685/***/ (function(module, exports, __w_pdfjs_require__) {
4686
4687"use strict";
4688
4689
4690__w_pdfjs_require__(115)('WeakSet');
4691
4692/***/ }),
4693/* 121 */
4694/***/ (function(module, exports, __w_pdfjs_require__) {
4695
4696"use strict";
4697
4698
4699__w_pdfjs_require__(117)('WeakSet');
4700
4701/***/ }),
4702/* 122 */
4703/***/ (function(module, exports, __w_pdfjs_require__) {
4704
4705"use strict";
4706
4707
4708__w_pdfjs_require__(123);
4709
4710module.exports = __w_pdfjs_require__(9).String.codePointAt;
4711
4712/***/ }),
4713/* 123 */
4714/***/ (function(module, exports, __w_pdfjs_require__) {
4715
4716"use strict";
4717
4718
4719var $export = __w_pdfjs_require__(7);
4720
4721var $at = __w_pdfjs_require__(48)(false);
4722
4723$export($export.P, 'String', {
4724 codePointAt: function codePointAt(pos) {
4725 return $at(this, pos);
4726 }
4727});
4728
4729/***/ }),
4730/* 124 */
4731/***/ (function(module, exports, __w_pdfjs_require__) {
4732
4733"use strict";
4734
4735
4736__w_pdfjs_require__(125);
4737
4738module.exports = __w_pdfjs_require__(9).String.fromCodePoint;
4739
4740/***/ }),
4741/* 125 */
4742/***/ (function(module, exports, __w_pdfjs_require__) {
4743
4744"use strict";
4745
4746
4747var $export = __w_pdfjs_require__(7);
4748
4749var toAbsoluteIndex = __w_pdfjs_require__(44);
4750
4751var fromCharCode = String.fromCharCode;
4752var $fromCodePoint = String.fromCodePoint;
4753$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
4754 fromCodePoint: function fromCodePoint(x) {
4755 var res = [];
4756 var aLen = arguments.length;
4757 var i = 0;
4758 var code;
4759
4760 while (aLen > i) {
4761 code = +arguments[i++];
4762 if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
4763 res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00));
4764 }
4765
4766 return res.join('');
4767 }
4768});
4769
4770/***/ }),
4771/* 126 */
4772/***/ (function(module, exports, __w_pdfjs_require__) {
4773
4774"use strict";
4775
4776
4777__w_pdfjs_require__(127);
4778
4779__w_pdfjs_require__(82);
4780
4781module.exports = __w_pdfjs_require__(9).Symbol;
4782
4783/***/ }),
4784/* 127 */
4785/***/ (function(module, exports, __w_pdfjs_require__) {
4786
4787"use strict";
4788
4789
4790function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4791
4792var global = __w_pdfjs_require__(8);
4793
4794var has = __w_pdfjs_require__(21);
4795
4796var DESCRIPTORS = __w_pdfjs_require__(15);
4797
4798var $export = __w_pdfjs_require__(7);
4799
4800var redefine = __w_pdfjs_require__(20);
4801
4802var META = __w_pdfjs_require__(107).KEY;
4803
4804var $fails = __w_pdfjs_require__(16);
4805
4806var shared = __w_pdfjs_require__(31);
4807
4808var setToStringTag = __w_pdfjs_require__(59);
4809
4810var uid = __w_pdfjs_require__(22);
4811
4812var wks = __w_pdfjs_require__(30);
4813
4814var wksExt = __w_pdfjs_require__(128);
4815
4816var wksDefine = __w_pdfjs_require__(129);
4817
4818var enumKeys = __w_pdfjs_require__(130);
4819
4820var isArray = __w_pdfjs_require__(106);
4821
4822var anObject = __w_pdfjs_require__(12);
4823
4824var isObject = __w_pdfjs_require__(13);
4825
4826var toIObject = __w_pdfjs_require__(42);
4827
4828var toPrimitive = __w_pdfjs_require__(18);
4829
4830var createDesc = __w_pdfjs_require__(19);
4831
4832var _create = __w_pdfjs_require__(52);
4833
4834var gOPNExt = __w_pdfjs_require__(131);
4835
4836var $GOPD = __w_pdfjs_require__(113);
4837
4838var $DP = __w_pdfjs_require__(11);
4839
4840var $keys = __w_pdfjs_require__(54);
4841
4842var gOPD = $GOPD.f;
4843var dP = $DP.f;
4844var gOPN = gOPNExt.f;
4845var $Symbol = global.Symbol;
4846var $JSON = global.JSON;
4847
4848var _stringify = $JSON && $JSON.stringify;
4849
4850var PROTOTYPE = 'prototype';
4851var HIDDEN = wks('_hidden');
4852var TO_PRIMITIVE = wks('toPrimitive');
4853var isEnum = {}.propertyIsEnumerable;
4854var SymbolRegistry = shared('symbol-registry');
4855var AllSymbols = shared('symbols');
4856var OPSymbols = shared('op-symbols');
4857var ObjectProto = Object[PROTOTYPE];
4858var USE_NATIVE = typeof $Symbol == 'function';
4859var QObject = global.QObject;
4860var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
4861var setSymbolDesc = DESCRIPTORS && $fails(function () {
4862 return _create(dP({}, 'a', {
4863 get: function get() {
4864 return dP(this, 'a', {
4865 value: 7
4866 }).a;
4867 }
4868 })).a != 7;
4869}) ? function (it, key, D) {
4870 var protoDesc = gOPD(ObjectProto, key);
4871 if (protoDesc) delete ObjectProto[key];
4872 dP(it, key, D);
4873 if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
4874} : dP;
4875
4876var wrap = function wrap(tag) {
4877 var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
4878
4879 sym._k = tag;
4880 return sym;
4881};
4882
4883var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) {
4884 return _typeof(it) == 'symbol';
4885} : function (it) {
4886 return it instanceof $Symbol;
4887};
4888
4889var $defineProperty = function defineProperty(it, key, D) {
4890 if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
4891 anObject(it);
4892 key = toPrimitive(key, true);
4893 anObject(D);
4894
4895 if (has(AllSymbols, key)) {
4896 if (!D.enumerable) {
4897 if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
4898 it[HIDDEN][key] = true;
4899 } else {
4900 if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
4901 D = _create(D, {
4902 enumerable: createDesc(0, false)
4903 });
4904 }
4905
4906 return setSymbolDesc(it, key, D);
4907 }
4908
4909 return dP(it, key, D);
4910};
4911
4912var $defineProperties = function defineProperties(it, P) {
4913 anObject(it);
4914 var keys = enumKeys(P = toIObject(P));
4915 var i = 0;
4916 var l = keys.length;
4917 var key;
4918
4919 while (l > i) {
4920 $defineProperty(it, key = keys[i++], P[key]);
4921 }
4922
4923 return it;
4924};
4925
4926var $create = function create(it, P) {
4927 return P === undefined ? _create(it) : $defineProperties(_create(it), P);
4928};
4929
4930var $propertyIsEnumerable = function propertyIsEnumerable(key) {
4931 var E = isEnum.call(this, key = toPrimitive(key, true));
4932 if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
4933 return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
4934};
4935
4936var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
4937 it = toIObject(it);
4938 key = toPrimitive(key, true);
4939 if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
4940 var D = gOPD(it, key);
4941 if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
4942 return D;
4943};
4944
4945var $getOwnPropertyNames = function getOwnPropertyNames(it) {
4946 var names = gOPN(toIObject(it));
4947 var result = [];
4948 var i = 0;
4949 var key;
4950
4951 while (names.length > i) {
4952 if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
4953 }
4954
4955 return result;
4956};
4957
4958var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
4959 var IS_OP = it === ObjectProto;
4960 var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
4961 var result = [];
4962 var i = 0;
4963 var key;
4964
4965 while (names.length > i) {
4966 if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
4967 }
4968
4969 return result;
4970};
4971
4972if (!USE_NATIVE) {
4973 $Symbol = function _Symbol() {
4974 if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
4975 var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
4976
4977 var $set = function $set(value) {
4978 if (this === ObjectProto) $set.call(OPSymbols, value);
4979 if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
4980 setSymbolDesc(this, tag, createDesc(1, value));
4981 };
4982
4983 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {
4984 configurable: true,
4985 set: $set
4986 });
4987 return wrap(tag);
4988 };
4989
4990 redefine($Symbol[PROTOTYPE], 'toString', function toString() {
4991 return this._k;
4992 });
4993 $GOPD.f = $getOwnPropertyDescriptor;
4994 $DP.f = $defineProperty;
4995 __w_pdfjs_require__(132).f = gOPNExt.f = $getOwnPropertyNames;
4996 __w_pdfjs_require__(73).f = $propertyIsEnumerable;
4997 __w_pdfjs_require__(72).f = $getOwnPropertySymbols;
4998
4999 if (DESCRIPTORS && !__w_pdfjs_require__(32)) {
5000 redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
5001 }
5002
5003 wksExt.f = function (name) {
5004 return wrap(wks(name));
5005 };
5006}
5007
5008$export($export.G + $export.W + $export.F * !USE_NATIVE, {
5009 Symbol: $Symbol
5010});
5011
5012for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) {
5013 wks(es6Symbols[j++]);
5014}
5015
5016for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) {
5017 wksDefine(wellKnownSymbols[k++]);
5018}
5019
5020$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
5021 'for': function _for(key) {
5022 return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key);
5023 },
5024 keyFor: function keyFor(sym) {
5025 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
5026
5027 for (var key in SymbolRegistry) {
5028 if (SymbolRegistry[key] === sym) return key;
5029 }
5030 },
5031 useSetter: function useSetter() {
5032 setter = true;
5033 },
5034 useSimple: function useSimple() {
5035 setter = false;
5036 }
5037});
5038$export($export.S + $export.F * !USE_NATIVE, 'Object', {
5039 create: $create,
5040 defineProperty: $defineProperty,
5041 defineProperties: $defineProperties,
5042 getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
5043 getOwnPropertyNames: $getOwnPropertyNames,
5044 getOwnPropertySymbols: $getOwnPropertySymbols
5045});
5046$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
5047 var S = $Symbol();
5048 return _stringify([S]) != '[null]' || _stringify({
5049 a: S
5050 }) != '{}' || _stringify(Object(S)) != '{}';
5051})), 'JSON', {
5052 stringify: function stringify(it) {
5053 var args = [it];
5054 var i = 1;
5055 var replacer, $replacer;
5056
5057 while (arguments.length > i) {
5058 args.push(arguments[i++]);
5059 }
5060
5061 $replacer = replacer = args[1];
5062 if (!isObject(replacer) && it === undefined || isSymbol(it)) return;
5063 if (!isArray(replacer)) replacer = function replacer(key, value) {
5064 if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
5065 if (!isSymbol(value)) return value;
5066 };
5067 args[1] = replacer;
5068 return _stringify.apply($JSON, args);
5069 }
5070});
5071$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
5072setToStringTag($Symbol, 'Symbol');
5073setToStringTag(Math, 'Math', true);
5074setToStringTag(global.JSON, 'JSON', true);
5075
5076/***/ }),
5077/* 128 */
5078/***/ (function(module, exports, __w_pdfjs_require__) {
5079
5080"use strict";
5081
5082
5083exports.f = __w_pdfjs_require__(30);
5084
5085/***/ }),
5086/* 129 */
5087/***/ (function(module, exports, __w_pdfjs_require__) {
5088
5089"use strict";
5090
5091
5092var global = __w_pdfjs_require__(8);
5093
5094var core = __w_pdfjs_require__(9);
5095
5096var LIBRARY = __w_pdfjs_require__(32);
5097
5098var wksExt = __w_pdfjs_require__(128);
5099
5100var defineProperty = __w_pdfjs_require__(11).f;
5101
5102module.exports = function (name) {
5103 var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
5104 if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, {
5105 value: wksExt.f(name)
5106 });
5107};
5108
5109/***/ }),
5110/* 130 */
5111/***/ (function(module, exports, __w_pdfjs_require__) {
5112
5113"use strict";
5114
5115
5116var getKeys = __w_pdfjs_require__(54);
5117
5118var gOPS = __w_pdfjs_require__(72);
5119
5120var pIE = __w_pdfjs_require__(73);
5121
5122module.exports = function (it) {
5123 var result = getKeys(it);
5124 var getSymbols = gOPS.f;
5125
5126 if (getSymbols) {
5127 var symbols = getSymbols(it);
5128 var isEnum = pIE.f;
5129 var i = 0;
5130 var key;
5131
5132 while (symbols.length > i) {
5133 if (isEnum.call(it, key = symbols[i++])) result.push(key);
5134 }
5135 }
5136
5137 return result;
5138};
5139
5140/***/ }),
5141/* 131 */
5142/***/ (function(module, exports, __w_pdfjs_require__) {
5143
5144"use strict";
5145
5146
5147function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
5148
5149var toIObject = __w_pdfjs_require__(42);
5150
5151var gOPN = __w_pdfjs_require__(132).f;
5152
5153var toString = {}.toString;
5154var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
5155
5156var getWindowNames = function getWindowNames(it) {
5157 try {
5158 return gOPN(it);
5159 } catch (e) {
5160 return windowNames.slice();
5161 }
5162};
5163
5164module.exports.f = function getOwnPropertyNames(it) {
5165 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
5166};
5167
5168/***/ }),
5169/* 132 */
5170/***/ (function(module, exports, __w_pdfjs_require__) {
5171
5172"use strict";
5173
5174
5175var $keys = __w_pdfjs_require__(55);
5176
5177var hiddenKeys = __w_pdfjs_require__(57).concat('length', 'prototype');
5178
5179exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
5180 return $keys(O, hiddenKeys);
5181};
5182
5183/***/ }),
5184/* 133 */
5185/***/ (function(module, exports, __w_pdfjs_require__) {
5186
5187"use strict";
5188
5189
5190__w_pdfjs_require__(134);
5191
5192module.exports = __w_pdfjs_require__(9).String.padStart;
5193
5194/***/ }),
5195/* 134 */
5196/***/ (function(module, exports, __w_pdfjs_require__) {
5197
5198"use strict";
5199
5200
5201var $export = __w_pdfjs_require__(7);
5202
5203var $pad = __w_pdfjs_require__(135);
5204
5205var userAgent = __w_pdfjs_require__(95);
5206
5207$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
5208 padStart: function padStart(maxLength) {
5209 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
5210 }
5211});
5212
5213/***/ }),
5214/* 135 */
5215/***/ (function(module, exports, __w_pdfjs_require__) {
5216
5217"use strict";
5218
5219
5220var toLength = __w_pdfjs_require__(25);
5221
5222var repeat = __w_pdfjs_require__(136);
5223
5224var defined = __w_pdfjs_require__(33);
5225
5226module.exports = function (that, maxLength, fillString, left) {
5227 var S = String(defined(that));
5228 var stringLength = S.length;
5229 var fillStr = fillString === undefined ? ' ' : String(fillString);
5230 var intMaxLength = toLength(maxLength);
5231 if (intMaxLength <= stringLength || fillStr == '') return S;
5232 var fillLen = intMaxLength - stringLength;
5233 var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
5234 if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
5235 return left ? stringFiller + S : S + stringFiller;
5236};
5237
5238/***/ }),
5239/* 136 */
5240/***/ (function(module, exports, __w_pdfjs_require__) {
5241
5242"use strict";
5243
5244
5245var toInteger = __w_pdfjs_require__(26);
5246
5247var defined = __w_pdfjs_require__(33);
5248
5249module.exports = function repeat(count) {
5250 var str = String(defined(this));
5251 var res = '';
5252 var n = toInteger(count);
5253 if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
5254
5255 for (; n > 0; (n >>>= 1) && (str += str)) {
5256 if (n & 1) res += str;
5257 }
5258
5259 return res;
5260};
5261
5262/***/ }),
5263/* 137 */
5264/***/ (function(module, exports, __w_pdfjs_require__) {
5265
5266"use strict";
5267
5268
5269__w_pdfjs_require__(138);
5270
5271module.exports = __w_pdfjs_require__(9).String.padEnd;
5272
5273/***/ }),
5274/* 138 */
5275/***/ (function(module, exports, __w_pdfjs_require__) {
5276
5277"use strict";
5278
5279
5280var $export = __w_pdfjs_require__(7);
5281
5282var $pad = __w_pdfjs_require__(135);
5283
5284var userAgent = __w_pdfjs_require__(95);
5285
5286$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
5287 padEnd: function padEnd(maxLength) {
5288 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
5289 }
5290});
5291
5292/***/ }),
5293/* 139 */
5294/***/ (function(module, exports, __w_pdfjs_require__) {
5295
5296"use strict";
5297
5298
5299__w_pdfjs_require__(140);
5300
5301module.exports = __w_pdfjs_require__(9).Object.values;
5302
5303/***/ }),
5304/* 140 */
5305/***/ (function(module, exports, __w_pdfjs_require__) {
5306
5307"use strict";
5308
5309
5310var $export = __w_pdfjs_require__(7);
5311
5312var $values = __w_pdfjs_require__(141)(false);
5313
5314$export($export.S, 'Object', {
5315 values: function values(it) {
5316 return $values(it);
5317 }
5318});
5319
5320/***/ }),
5321/* 141 */
5322/***/ (function(module, exports, __w_pdfjs_require__) {
5323
5324"use strict";
5325
5326
5327var getKeys = __w_pdfjs_require__(54);
5328
5329var toIObject = __w_pdfjs_require__(42);
5330
5331var isEnum = __w_pdfjs_require__(73).f;
5332
5333module.exports = function (isEntries) {
5334 return function (it) {
5335 var O = toIObject(it);
5336 var keys = getKeys(O);
5337 var length = keys.length;
5338 var i = 0;
5339 var result = [];
5340 var key;
5341
5342 while (length > i) {
5343 if (isEnum.call(O, key = keys[i++])) {
5344 result.push(isEntries ? [key, O[key]] : O[key]);
5345 }
5346 }
5347
5348 return result;
5349 };
5350};
5351
5352/***/ }),
5353/* 142 */
5354/***/ (function(module, exports, __w_pdfjs_require__) {
5355
5356"use strict";
5357
5358
5359{
5360 var isReadableStreamSupported = false;
5361
5362 if (typeof ReadableStream !== 'undefined') {
5363 try {
5364 new ReadableStream({
5365 start: function start(controller) {
5366 controller.close();
5367 }
5368 });
5369 isReadableStreamSupported = true;
5370 } catch (e) {}
5371 }
5372
5373 if (isReadableStreamSupported) {
5374 exports.ReadableStream = ReadableStream;
5375 } else {
5376 exports.ReadableStream = __w_pdfjs_require__(143).ReadableStream;
5377 }
5378}
5379
5380/***/ }),
5381/* 143 */
5382/***/ (function(module, exports, __w_pdfjs_require__) {
5383
5384"use strict";
5385
5386
5387function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
5388
5389(function (e, a) {
5390 for (var i in a) {
5391 e[i] = a[i];
5392 }
5393})(exports, function (modules) {
5394 var installedModules = {};
5395
5396 function __w_pdfjs_require__(moduleId) {
5397 if (installedModules[moduleId]) return installedModules[moduleId].exports;
5398 var module = installedModules[moduleId] = {
5399 i: moduleId,
5400 l: false,
5401 exports: {}
5402 };
5403 modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);
5404 module.l = true;
5405 return module.exports;
5406 }
5407
5408 __w_pdfjs_require__.m = modules;
5409 __w_pdfjs_require__.c = installedModules;
5410
5411 __w_pdfjs_require__.i = function (value) {
5412 return value;
5413 };
5414
5415 __w_pdfjs_require__.d = function (exports, name, getter) {
5416 if (!__w_pdfjs_require__.o(exports, name)) {
5417 Object.defineProperty(exports, name, {
5418 configurable: false,
5419 enumerable: true,
5420 get: getter
5421 });
5422 }
5423 };
5424
5425 __w_pdfjs_require__.n = function (module) {
5426 var getter = module && module.__esModule ? function getDefault() {
5427 return module['default'];
5428 } : function getModuleExports() {
5429 return module;
5430 };
5431
5432 __w_pdfjs_require__.d(getter, 'a', getter);
5433
5434 return getter;
5435 };
5436
5437 __w_pdfjs_require__.o = function (object, property) {
5438 return Object.prototype.hasOwnProperty.call(object, property);
5439 };
5440
5441 __w_pdfjs_require__.p = "";
5442 return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);
5443}([function (module, exports, __w_pdfjs_require__) {
5444 "use strict";
5445
5446 var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) {
5447 return _typeof2(obj);
5448 } : function (obj) {
5449 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
5450 };
5451
5452 var _require = __w_pdfjs_require__(1),
5453 assert = _require.assert;
5454
5455 function IsPropertyKey(argument) {
5456 return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';
5457 }
5458
5459 exports.typeIsObject = function (x) {
5460 return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';
5461 };
5462
5463 exports.createDataProperty = function (o, p, v) {
5464 assert(exports.typeIsObject(o));
5465 Object.defineProperty(o, p, {
5466 value: v,
5467 writable: true,
5468 enumerable: true,
5469 configurable: true
5470 });
5471 };
5472
5473 exports.createArrayFromList = function (elements) {
5474 return elements.slice();
5475 };
5476
5477 exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {
5478 new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);
5479 };
5480
5481 exports.CreateIterResultObject = function (value, done) {
5482 assert(typeof done === 'boolean');
5483 var obj = {};
5484 Object.defineProperty(obj, 'value', {
5485 value: value,
5486 enumerable: true,
5487 writable: true,
5488 configurable: true
5489 });
5490 Object.defineProperty(obj, 'done', {
5491 value: done,
5492 enumerable: true,
5493 writable: true,
5494 configurable: true
5495 });
5496 return obj;
5497 };
5498
5499 exports.IsFiniteNonNegativeNumber = function (v) {
5500 if (Number.isNaN(v)) {
5501 return false;
5502 }
5503
5504 if (v === Infinity) {
5505 return false;
5506 }
5507
5508 if (v < 0) {
5509 return false;
5510 }
5511
5512 return true;
5513 };
5514
5515 function Call(F, V, args) {
5516 if (typeof F !== 'function') {
5517 throw new TypeError('Argument is not a function');
5518 }
5519
5520 return Function.prototype.apply.call(F, V, args);
5521 }
5522
5523 exports.InvokeOrNoop = function (O, P, args) {
5524 assert(O !== undefined);
5525 assert(IsPropertyKey(P));
5526 assert(Array.isArray(args));
5527 var method = O[P];
5528
5529 if (method === undefined) {
5530 return undefined;
5531 }
5532
5533 return Call(method, O, args);
5534 };
5535
5536 exports.PromiseInvokeOrNoop = function (O, P, args) {
5537 assert(O !== undefined);
5538 assert(IsPropertyKey(P));
5539 assert(Array.isArray(args));
5540
5541 try {
5542 return Promise.resolve(exports.InvokeOrNoop(O, P, args));
5543 } catch (returnValueE) {
5544 return Promise.reject(returnValueE);
5545 }
5546 };
5547
5548 exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {
5549 assert(O !== undefined);
5550 assert(IsPropertyKey(P));
5551 assert(Array.isArray(args));
5552 assert(Array.isArray(argsF));
5553 var method = void 0;
5554
5555 try {
5556 method = O[P];
5557 } catch (methodE) {
5558 return Promise.reject(methodE);
5559 }
5560
5561 if (method === undefined) {
5562 return F.apply(null, argsF);
5563 }
5564
5565 try {
5566 return Promise.resolve(Call(method, O, args));
5567 } catch (e) {
5568 return Promise.reject(e);
5569 }
5570 };
5571
5572 exports.TransferArrayBuffer = function (O) {
5573 return O.slice();
5574 };
5575
5576 exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {
5577 highWaterMark = Number(highWaterMark);
5578
5579 if (Number.isNaN(highWaterMark) || highWaterMark < 0) {
5580 throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');
5581 }
5582
5583 return highWaterMark;
5584 };
5585
5586 exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {
5587 if (size !== undefined && typeof size !== 'function') {
5588 throw new TypeError('size property of a queuing strategy must be a function');
5589 }
5590
5591 highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);
5592 return {
5593 size: size,
5594 highWaterMark: highWaterMark
5595 };
5596 };
5597}, function (module, exports, __w_pdfjs_require__) {
5598 "use strict";
5599
5600 function rethrowAssertionErrorRejection(e) {
5601 if (e && e.constructor === AssertionError) {
5602 setTimeout(function () {
5603 throw e;
5604 }, 0);
5605 }
5606 }
5607
5608 function AssertionError(message) {
5609 this.name = 'AssertionError';
5610 this.message = message || '';
5611 this.stack = new Error().stack;
5612 }
5613
5614 AssertionError.prototype = Object.create(Error.prototype);
5615 AssertionError.prototype.constructor = AssertionError;
5616
5617 function assert(value, message) {
5618 if (!value) {
5619 throw new AssertionError(message);
5620 }
5621 }
5622
5623 module.exports = {
5624 rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,
5625 AssertionError: AssertionError,
5626 assert: assert
5627 };
5628}, function (module, exports, __w_pdfjs_require__) {
5629 "use strict";
5630
5631 var _createClass = function () {
5632 function defineProperties(target, props) {
5633 for (var i = 0; i < props.length; i++) {
5634 var descriptor = props[i];
5635 descriptor.enumerable = descriptor.enumerable || false;
5636 descriptor.configurable = true;
5637 if ("value" in descriptor) descriptor.writable = true;
5638 Object.defineProperty(target, descriptor.key, descriptor);
5639 }
5640 }
5641
5642 return function (Constructor, protoProps, staticProps) {
5643 if (protoProps) defineProperties(Constructor.prototype, protoProps);
5644 if (staticProps) defineProperties(Constructor, staticProps);
5645 return Constructor;
5646 };
5647 }();
5648
5649 function _classCallCheck(instance, Constructor) {
5650 if (!(instance instanceof Constructor)) {
5651 throw new TypeError("Cannot call a class as a function");
5652 }
5653 }
5654
5655 var _require = __w_pdfjs_require__(0),
5656 InvokeOrNoop = _require.InvokeOrNoop,
5657 PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,
5658 ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,
5659 typeIsObject = _require.typeIsObject;
5660
5661 var _require2 = __w_pdfjs_require__(1),
5662 assert = _require2.assert,
5663 rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;
5664
5665 var _require3 = __w_pdfjs_require__(3),
5666 DequeueValue = _require3.DequeueValue,
5667 EnqueueValueWithSize = _require3.EnqueueValueWithSize,
5668 PeekQueueValue = _require3.PeekQueueValue,
5669 ResetQueue = _require3.ResetQueue;
5670
5671 var WritableStream = function () {
5672 function WritableStream() {
5673 var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5674
5675 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
5676 size = _ref.size,
5677 _ref$highWaterMark = _ref.highWaterMark,
5678 highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;
5679
5680 _classCallCheck(this, WritableStream);
5681
5682 this._state = 'writable';
5683 this._storedError = undefined;
5684 this._writer = undefined;
5685 this._writableStreamController = undefined;
5686 this._writeRequests = [];
5687 this._inFlightWriteRequest = undefined;
5688 this._closeRequest = undefined;
5689 this._inFlightCloseRequest = undefined;
5690 this._pendingAbortRequest = undefined;
5691 this._backpressure = false;
5692 var type = underlyingSink.type;
5693
5694 if (type !== undefined) {
5695 throw new RangeError('Invalid type is specified');
5696 }
5697
5698 this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);
5699
5700 this._writableStreamController.__startSteps();
5701 }
5702
5703 _createClass(WritableStream, [{
5704 key: 'abort',
5705 value: function abort(reason) {
5706 if (IsWritableStream(this) === false) {
5707 return Promise.reject(streamBrandCheckException('abort'));
5708 }
5709
5710 if (IsWritableStreamLocked(this) === true) {
5711 return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));
5712 }
5713
5714 return WritableStreamAbort(this, reason);
5715 }
5716 }, {
5717 key: 'getWriter',
5718 value: function getWriter() {
5719 if (IsWritableStream(this) === false) {
5720 throw streamBrandCheckException('getWriter');
5721 }
5722
5723 return AcquireWritableStreamDefaultWriter(this);
5724 }
5725 }, {
5726 key: 'locked',
5727 get: function get() {
5728 if (IsWritableStream(this) === false) {
5729 throw streamBrandCheckException('locked');
5730 }
5731
5732 return IsWritableStreamLocked(this);
5733 }
5734 }]);
5735
5736 return WritableStream;
5737 }();
5738
5739 module.exports = {
5740 AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,
5741 IsWritableStream: IsWritableStream,
5742 IsWritableStreamLocked: IsWritableStreamLocked,
5743 WritableStream: WritableStream,
5744 WritableStreamAbort: WritableStreamAbort,
5745 WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,
5746 WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,
5747 WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,
5748 WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,
5749 WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight
5750 };
5751
5752 function AcquireWritableStreamDefaultWriter(stream) {
5753 return new WritableStreamDefaultWriter(stream);
5754 }
5755
5756 function IsWritableStream(x) {
5757 if (!typeIsObject(x)) {
5758 return false;
5759 }
5760
5761 if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {
5762 return false;
5763 }
5764
5765 return true;
5766 }
5767
5768 function IsWritableStreamLocked(stream) {
5769 assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');
5770
5771 if (stream._writer === undefined) {
5772 return false;
5773 }
5774
5775 return true;
5776 }
5777
5778 function WritableStreamAbort(stream, reason) {
5779 var state = stream._state;
5780
5781 if (state === 'closed') {
5782 return Promise.resolve(undefined);
5783 }
5784
5785 if (state === 'errored') {
5786 return Promise.reject(stream._storedError);
5787 }
5788
5789 var error = new TypeError('Requested to abort');
5790
5791 if (stream._pendingAbortRequest !== undefined) {
5792 return Promise.reject(error);
5793 }
5794
5795 assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');
5796 var wasAlreadyErroring = false;
5797
5798 if (state === 'erroring') {
5799 wasAlreadyErroring = true;
5800 reason = undefined;
5801 }
5802
5803 var promise = new Promise(function (resolve, reject) {
5804 stream._pendingAbortRequest = {
5805 _resolve: resolve,
5806 _reject: reject,
5807 _reason: reason,
5808 _wasAlreadyErroring: wasAlreadyErroring
5809 };
5810 });
5811
5812 if (wasAlreadyErroring === false) {
5813 WritableStreamStartErroring(stream, error);
5814 }
5815
5816 return promise;
5817 }
5818
5819 function WritableStreamAddWriteRequest(stream) {
5820 assert(IsWritableStreamLocked(stream) === true);
5821 assert(stream._state === 'writable');
5822 var promise = new Promise(function (resolve, reject) {
5823 var writeRequest = {
5824 _resolve: resolve,
5825 _reject: reject
5826 };
5827
5828 stream._writeRequests.push(writeRequest);
5829 });
5830 return promise;
5831 }
5832
5833 function WritableStreamDealWithRejection(stream, error) {
5834 var state = stream._state;
5835
5836 if (state === 'writable') {
5837 WritableStreamStartErroring(stream, error);
5838 return;
5839 }
5840
5841 assert(state === 'erroring');
5842 WritableStreamFinishErroring(stream);
5843 }
5844
5845 function WritableStreamStartErroring(stream, reason) {
5846 assert(stream._storedError === undefined, 'stream._storedError === undefined');
5847 assert(stream._state === 'writable', 'state must be writable');
5848 var controller = stream._writableStreamController;
5849 assert(controller !== undefined, 'controller must not be undefined');
5850 stream._state = 'erroring';
5851 stream._storedError = reason;
5852 var writer = stream._writer;
5853
5854 if (writer !== undefined) {
5855 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);
5856 }
5857
5858 if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {
5859 WritableStreamFinishErroring(stream);
5860 }
5861 }
5862
5863 function WritableStreamFinishErroring(stream) {
5864 assert(stream._state === 'erroring', 'stream._state === erroring');
5865 assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');
5866 stream._state = 'errored';
5867
5868 stream._writableStreamController.__errorSteps();
5869
5870 var storedError = stream._storedError;
5871
5872 for (var i = 0; i < stream._writeRequests.length; i++) {
5873 var writeRequest = stream._writeRequests[i];
5874
5875 writeRequest._reject(storedError);
5876 }
5877
5878 stream._writeRequests = [];
5879
5880 if (stream._pendingAbortRequest === undefined) {
5881 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
5882 return;
5883 }
5884
5885 var abortRequest = stream._pendingAbortRequest;
5886 stream._pendingAbortRequest = undefined;
5887
5888 if (abortRequest._wasAlreadyErroring === true) {
5889 abortRequest._reject(storedError);
5890
5891 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
5892 return;
5893 }
5894
5895 var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);
5896
5897 promise.then(function () {
5898 abortRequest._resolve();
5899
5900 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
5901 }, function (reason) {
5902 abortRequest._reject(reason);
5903
5904 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
5905 });
5906 }
5907
5908 function WritableStreamFinishInFlightWrite(stream) {
5909 assert(stream._inFlightWriteRequest !== undefined);
5910
5911 stream._inFlightWriteRequest._resolve(undefined);
5912
5913 stream._inFlightWriteRequest = undefined;
5914 }
5915
5916 function WritableStreamFinishInFlightWriteWithError(stream, error) {
5917 assert(stream._inFlightWriteRequest !== undefined);
5918
5919 stream._inFlightWriteRequest._reject(error);
5920
5921 stream._inFlightWriteRequest = undefined;
5922 assert(stream._state === 'writable' || stream._state === 'erroring');
5923 WritableStreamDealWithRejection(stream, error);
5924 }
5925
5926 function WritableStreamFinishInFlightClose(stream) {
5927 assert(stream._inFlightCloseRequest !== undefined);
5928
5929 stream._inFlightCloseRequest._resolve(undefined);
5930
5931 stream._inFlightCloseRequest = undefined;
5932 var state = stream._state;
5933 assert(state === 'writable' || state === 'erroring');
5934
5935 if (state === 'erroring') {
5936 stream._storedError = undefined;
5937
5938 if (stream._pendingAbortRequest !== undefined) {
5939 stream._pendingAbortRequest._resolve();
5940
5941 stream._pendingAbortRequest = undefined;
5942 }
5943 }
5944
5945 stream._state = 'closed';
5946 var writer = stream._writer;
5947
5948 if (writer !== undefined) {
5949 defaultWriterClosedPromiseResolve(writer);
5950 }
5951
5952 assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');
5953 assert(stream._storedError === undefined, 'stream._storedError === undefined');
5954 }
5955
5956 function WritableStreamFinishInFlightCloseWithError(stream, error) {
5957 assert(stream._inFlightCloseRequest !== undefined);
5958
5959 stream._inFlightCloseRequest._reject(error);
5960
5961 stream._inFlightCloseRequest = undefined;
5962 assert(stream._state === 'writable' || stream._state === 'erroring');
5963
5964 if (stream._pendingAbortRequest !== undefined) {
5965 stream._pendingAbortRequest._reject(error);
5966
5967 stream._pendingAbortRequest = undefined;
5968 }
5969
5970 WritableStreamDealWithRejection(stream, error);
5971 }
5972
5973 function WritableStreamCloseQueuedOrInFlight(stream) {
5974 if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {
5975 return false;
5976 }
5977
5978 return true;
5979 }
5980
5981 function WritableStreamHasOperationMarkedInFlight(stream) {
5982 if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {
5983 return false;
5984 }
5985
5986 return true;
5987 }
5988
5989 function WritableStreamMarkCloseRequestInFlight(stream) {
5990 assert(stream._inFlightCloseRequest === undefined);
5991 assert(stream._closeRequest !== undefined);
5992 stream._inFlightCloseRequest = stream._closeRequest;
5993 stream._closeRequest = undefined;
5994 }
5995
5996 function WritableStreamMarkFirstWriteRequestInFlight(stream) {
5997 assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');
5998 assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');
5999 stream._inFlightWriteRequest = stream._writeRequests.shift();
6000 }
6001
6002 function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {
6003 assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`');
6004
6005 if (stream._closeRequest !== undefined) {
6006 assert(stream._inFlightCloseRequest === undefined);
6007
6008 stream._closeRequest._reject(stream._storedError);
6009
6010 stream._closeRequest = undefined;
6011 }
6012
6013 var writer = stream._writer;
6014
6015 if (writer !== undefined) {
6016 defaultWriterClosedPromiseReject(writer, stream._storedError);
6017
6018 writer._closedPromise.catch(function () {});
6019 }
6020 }
6021
6022 function WritableStreamUpdateBackpressure(stream, backpressure) {
6023 assert(stream._state === 'writable');
6024 assert(WritableStreamCloseQueuedOrInFlight(stream) === false);
6025 var writer = stream._writer;
6026
6027 if (writer !== undefined && backpressure !== stream._backpressure) {
6028 if (backpressure === true) {
6029 defaultWriterReadyPromiseReset(writer);
6030 } else {
6031 assert(backpressure === false);
6032 defaultWriterReadyPromiseResolve(writer);
6033 }
6034 }
6035
6036 stream._backpressure = backpressure;
6037 }
6038
6039 var WritableStreamDefaultWriter = function () {
6040 function WritableStreamDefaultWriter(stream) {
6041 _classCallCheck(this, WritableStreamDefaultWriter);
6042
6043 if (IsWritableStream(stream) === false) {
6044 throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');
6045 }
6046
6047 if (IsWritableStreamLocked(stream) === true) {
6048 throw new TypeError('This stream has already been locked for exclusive writing by another writer');
6049 }
6050
6051 this._ownerWritableStream = stream;
6052 stream._writer = this;
6053 var state = stream._state;
6054
6055 if (state === 'writable') {
6056 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {
6057 defaultWriterReadyPromiseInitialize(this);
6058 } else {
6059 defaultWriterReadyPromiseInitializeAsResolved(this);
6060 }
6061
6062 defaultWriterClosedPromiseInitialize(this);
6063 } else if (state === 'erroring') {
6064 defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);
6065
6066 this._readyPromise.catch(function () {});
6067
6068 defaultWriterClosedPromiseInitialize(this);
6069 } else if (state === 'closed') {
6070 defaultWriterReadyPromiseInitializeAsResolved(this);
6071 defaultWriterClosedPromiseInitializeAsResolved(this);
6072 } else {
6073 assert(state === 'errored', 'state must be errored');
6074 var storedError = stream._storedError;
6075 defaultWriterReadyPromiseInitializeAsRejected(this, storedError);
6076
6077 this._readyPromise.catch(function () {});
6078
6079 defaultWriterClosedPromiseInitializeAsRejected(this, storedError);
6080
6081 this._closedPromise.catch(function () {});
6082 }
6083 }
6084
6085 _createClass(WritableStreamDefaultWriter, [{
6086 key: 'abort',
6087 value: function abort(reason) {
6088 if (IsWritableStreamDefaultWriter(this) === false) {
6089 return Promise.reject(defaultWriterBrandCheckException('abort'));
6090 }
6091
6092 if (this._ownerWritableStream === undefined) {
6093 return Promise.reject(defaultWriterLockException('abort'));
6094 }
6095
6096 return WritableStreamDefaultWriterAbort(this, reason);
6097 }
6098 }, {
6099 key: 'close',
6100 value: function close() {
6101 if (IsWritableStreamDefaultWriter(this) === false) {
6102 return Promise.reject(defaultWriterBrandCheckException('close'));
6103 }
6104
6105 var stream = this._ownerWritableStream;
6106
6107 if (stream === undefined) {
6108 return Promise.reject(defaultWriterLockException('close'));
6109 }
6110
6111 if (WritableStreamCloseQueuedOrInFlight(stream) === true) {
6112 return Promise.reject(new TypeError('cannot close an already-closing stream'));
6113 }
6114
6115 return WritableStreamDefaultWriterClose(this);
6116 }
6117 }, {
6118 key: 'releaseLock',
6119 value: function releaseLock() {
6120 if (IsWritableStreamDefaultWriter(this) === false) {
6121 throw defaultWriterBrandCheckException('releaseLock');
6122 }
6123
6124 var stream = this._ownerWritableStream;
6125
6126 if (stream === undefined) {
6127 return;
6128 }
6129
6130 assert(stream._writer !== undefined);
6131 WritableStreamDefaultWriterRelease(this);
6132 }
6133 }, {
6134 key: 'write',
6135 value: function write(chunk) {
6136 if (IsWritableStreamDefaultWriter(this) === false) {
6137 return Promise.reject(defaultWriterBrandCheckException('write'));
6138 }
6139
6140 if (this._ownerWritableStream === undefined) {
6141 return Promise.reject(defaultWriterLockException('write to'));
6142 }
6143
6144 return WritableStreamDefaultWriterWrite(this, chunk);
6145 }
6146 }, {
6147 key: 'closed',
6148 get: function get() {
6149 if (IsWritableStreamDefaultWriter(this) === false) {
6150 return Promise.reject(defaultWriterBrandCheckException('closed'));
6151 }
6152
6153 return this._closedPromise;
6154 }
6155 }, {
6156 key: 'desiredSize',
6157 get: function get() {
6158 if (IsWritableStreamDefaultWriter(this) === false) {
6159 throw defaultWriterBrandCheckException('desiredSize');
6160 }
6161
6162 if (this._ownerWritableStream === undefined) {
6163 throw defaultWriterLockException('desiredSize');
6164 }
6165
6166 return WritableStreamDefaultWriterGetDesiredSize(this);
6167 }
6168 }, {
6169 key: 'ready',
6170 get: function get() {
6171 if (IsWritableStreamDefaultWriter(this) === false) {
6172 return Promise.reject(defaultWriterBrandCheckException('ready'));
6173 }
6174
6175 return this._readyPromise;
6176 }
6177 }]);
6178
6179 return WritableStreamDefaultWriter;
6180 }();
6181
6182 function IsWritableStreamDefaultWriter(x) {
6183 if (!typeIsObject(x)) {
6184 return false;
6185 }
6186
6187 if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {
6188 return false;
6189 }
6190
6191 return true;
6192 }
6193
6194 function WritableStreamDefaultWriterAbort(writer, reason) {
6195 var stream = writer._ownerWritableStream;
6196 assert(stream !== undefined);
6197 return WritableStreamAbort(stream, reason);
6198 }
6199
6200 function WritableStreamDefaultWriterClose(writer) {
6201 var stream = writer._ownerWritableStream;
6202 assert(stream !== undefined);
6203 var state = stream._state;
6204
6205 if (state === 'closed' || state === 'errored') {
6206 return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));
6207 }
6208
6209 assert(state === 'writable' || state === 'erroring');
6210 assert(WritableStreamCloseQueuedOrInFlight(stream) === false);
6211 var promise = new Promise(function (resolve, reject) {
6212 var closeRequest = {
6213 _resolve: resolve,
6214 _reject: reject
6215 };
6216 stream._closeRequest = closeRequest;
6217 });
6218
6219 if (stream._backpressure === true && state === 'writable') {
6220 defaultWriterReadyPromiseResolve(writer);
6221 }
6222
6223 WritableStreamDefaultControllerClose(stream._writableStreamController);
6224 return promise;
6225 }
6226
6227 function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {
6228 var stream = writer._ownerWritableStream;
6229 assert(stream !== undefined);
6230 var state = stream._state;
6231
6232 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
6233 return Promise.resolve();
6234 }
6235
6236 if (state === 'errored') {
6237 return Promise.reject(stream._storedError);
6238 }
6239
6240 assert(state === 'writable' || state === 'erroring');
6241 return WritableStreamDefaultWriterClose(writer);
6242 }
6243
6244 function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {
6245 if (writer._closedPromiseState === 'pending') {
6246 defaultWriterClosedPromiseReject(writer, error);
6247 } else {
6248 defaultWriterClosedPromiseResetToRejected(writer, error);
6249 }
6250
6251 writer._closedPromise.catch(function () {});
6252 }
6253
6254 function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {
6255 if (writer._readyPromiseState === 'pending') {
6256 defaultWriterReadyPromiseReject(writer, error);
6257 } else {
6258 defaultWriterReadyPromiseResetToRejected(writer, error);
6259 }
6260
6261 writer._readyPromise.catch(function () {});
6262 }
6263
6264 function WritableStreamDefaultWriterGetDesiredSize(writer) {
6265 var stream = writer._ownerWritableStream;
6266 var state = stream._state;
6267
6268 if (state === 'errored' || state === 'erroring') {
6269 return null;
6270 }
6271
6272 if (state === 'closed') {
6273 return 0;
6274 }
6275
6276 return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);
6277 }
6278
6279 function WritableStreamDefaultWriterRelease(writer) {
6280 var stream = writer._ownerWritableStream;
6281 assert(stream !== undefined);
6282 assert(stream._writer === writer);
6283 var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness');
6284 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);
6285 WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);
6286 stream._writer = undefined;
6287 writer._ownerWritableStream = undefined;
6288 }
6289
6290 function WritableStreamDefaultWriterWrite(writer, chunk) {
6291 var stream = writer._ownerWritableStream;
6292 assert(stream !== undefined);
6293 var controller = stream._writableStreamController;
6294 var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);
6295
6296 if (stream !== writer._ownerWritableStream) {
6297 return Promise.reject(defaultWriterLockException('write to'));
6298 }
6299
6300 var state = stream._state;
6301
6302 if (state === 'errored') {
6303 return Promise.reject(stream._storedError);
6304 }
6305
6306 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
6307 return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));
6308 }
6309
6310 if (state === 'erroring') {
6311 return Promise.reject(stream._storedError);
6312 }
6313
6314 assert(state === 'writable');
6315 var promise = WritableStreamAddWriteRequest(stream);
6316 WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);
6317 return promise;
6318 }
6319
6320 var WritableStreamDefaultController = function () {
6321 function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {
6322 _classCallCheck(this, WritableStreamDefaultController);
6323
6324 if (IsWritableStream(stream) === false) {
6325 throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');
6326 }
6327
6328 if (stream._writableStreamController !== undefined) {
6329 throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');
6330 }
6331
6332 this._controlledWritableStream = stream;
6333 this._underlyingSink = underlyingSink;
6334 this._queue = undefined;
6335 this._queueTotalSize = undefined;
6336 ResetQueue(this);
6337 this._started = false;
6338 var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);
6339 this._strategySize = normalizedStrategy.size;
6340 this._strategyHWM = normalizedStrategy.highWaterMark;
6341 var backpressure = WritableStreamDefaultControllerGetBackpressure(this);
6342 WritableStreamUpdateBackpressure(stream, backpressure);
6343 }
6344
6345 _createClass(WritableStreamDefaultController, [{
6346 key: 'error',
6347 value: function error(e) {
6348 if (IsWritableStreamDefaultController(this) === false) {
6349 throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');
6350 }
6351
6352 var state = this._controlledWritableStream._state;
6353
6354 if (state !== 'writable') {
6355 return;
6356 }
6357
6358 WritableStreamDefaultControllerError(this, e);
6359 }
6360 }, {
6361 key: '__abortSteps',
6362 value: function __abortSteps(reason) {
6363 return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);
6364 }
6365 }, {
6366 key: '__errorSteps',
6367 value: function __errorSteps() {
6368 ResetQueue(this);
6369 }
6370 }, {
6371 key: '__startSteps',
6372 value: function __startSteps() {
6373 var _this = this;
6374
6375 var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);
6376 var stream = this._controlledWritableStream;
6377 Promise.resolve(startResult).then(function () {
6378 assert(stream._state === 'writable' || stream._state === 'erroring');
6379 _this._started = true;
6380 WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);
6381 }, function (r) {
6382 assert(stream._state === 'writable' || stream._state === 'erroring');
6383 _this._started = true;
6384 WritableStreamDealWithRejection(stream, r);
6385 }).catch(rethrowAssertionErrorRejection);
6386 }
6387 }]);
6388
6389 return WritableStreamDefaultController;
6390 }();
6391
6392 function WritableStreamDefaultControllerClose(controller) {
6393 EnqueueValueWithSize(controller, 'close', 0);
6394 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
6395 }
6396
6397 function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {
6398 var strategySize = controller._strategySize;
6399
6400 if (strategySize === undefined) {
6401 return 1;
6402 }
6403
6404 try {
6405 return strategySize(chunk);
6406 } catch (chunkSizeE) {
6407 WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);
6408 return 1;
6409 }
6410 }
6411
6412 function WritableStreamDefaultControllerGetDesiredSize(controller) {
6413 return controller._strategyHWM - controller._queueTotalSize;
6414 }
6415
6416 function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {
6417 var writeRecord = {
6418 chunk: chunk
6419 };
6420
6421 try {
6422 EnqueueValueWithSize(controller, writeRecord, chunkSize);
6423 } catch (enqueueE) {
6424 WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);
6425 return;
6426 }
6427
6428 var stream = controller._controlledWritableStream;
6429
6430 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {
6431 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
6432 WritableStreamUpdateBackpressure(stream, backpressure);
6433 }
6434
6435 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
6436 }
6437
6438 function IsWritableStreamDefaultController(x) {
6439 if (!typeIsObject(x)) {
6440 return false;
6441 }
6442
6443 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {
6444 return false;
6445 }
6446
6447 return true;
6448 }
6449
6450 function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {
6451 var stream = controller._controlledWritableStream;
6452
6453 if (controller._started === false) {
6454 return;
6455 }
6456
6457 if (stream._inFlightWriteRequest !== undefined) {
6458 return;
6459 }
6460
6461 var state = stream._state;
6462
6463 if (state === 'closed' || state === 'errored') {
6464 return;
6465 }
6466
6467 if (state === 'erroring') {
6468 WritableStreamFinishErroring(stream);
6469 return;
6470 }
6471
6472 if (controller._queue.length === 0) {
6473 return;
6474 }
6475
6476 var writeRecord = PeekQueueValue(controller);
6477
6478 if (writeRecord === 'close') {
6479 WritableStreamDefaultControllerProcessClose(controller);
6480 } else {
6481 WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);
6482 }
6483 }
6484
6485 function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {
6486 if (controller._controlledWritableStream._state === 'writable') {
6487 WritableStreamDefaultControllerError(controller, error);
6488 }
6489 }
6490
6491 function WritableStreamDefaultControllerProcessClose(controller) {
6492 var stream = controller._controlledWritableStream;
6493 WritableStreamMarkCloseRequestInFlight(stream);
6494 DequeueValue(controller);
6495 assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');
6496 var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);
6497 sinkClosePromise.then(function () {
6498 WritableStreamFinishInFlightClose(stream);
6499 }, function (reason) {
6500 WritableStreamFinishInFlightCloseWithError(stream, reason);
6501 }).catch(rethrowAssertionErrorRejection);
6502 }
6503
6504 function WritableStreamDefaultControllerProcessWrite(controller, chunk) {
6505 var stream = controller._controlledWritableStream;
6506 WritableStreamMarkFirstWriteRequestInFlight(stream);
6507 var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);
6508 sinkWritePromise.then(function () {
6509 WritableStreamFinishInFlightWrite(stream);
6510 var state = stream._state;
6511 assert(state === 'writable' || state === 'erroring');
6512 DequeueValue(controller);
6513
6514 if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {
6515 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
6516 WritableStreamUpdateBackpressure(stream, backpressure);
6517 }
6518
6519 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
6520 }, function (reason) {
6521 WritableStreamFinishInFlightWriteWithError(stream, reason);
6522 }).catch(rethrowAssertionErrorRejection);
6523 }
6524
6525 function WritableStreamDefaultControllerGetBackpressure(controller) {
6526 var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);
6527 return desiredSize <= 0;
6528 }
6529
6530 function WritableStreamDefaultControllerError(controller, error) {
6531 var stream = controller._controlledWritableStream;
6532 assert(stream._state === 'writable');
6533 WritableStreamStartErroring(stream, error);
6534 }
6535
6536 function streamBrandCheckException(name) {
6537 return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');
6538 }
6539
6540 function defaultWriterBrandCheckException(name) {
6541 return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');
6542 }
6543
6544 function defaultWriterLockException(name) {
6545 return new TypeError('Cannot ' + name + ' a stream using a released writer');
6546 }
6547
6548 function defaultWriterClosedPromiseInitialize(writer) {
6549 writer._closedPromise = new Promise(function (resolve, reject) {
6550 writer._closedPromise_resolve = resolve;
6551 writer._closedPromise_reject = reject;
6552 writer._closedPromiseState = 'pending';
6553 });
6554 }
6555
6556 function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {
6557 writer._closedPromise = Promise.reject(reason);
6558 writer._closedPromise_resolve = undefined;
6559 writer._closedPromise_reject = undefined;
6560 writer._closedPromiseState = 'rejected';
6561 }
6562
6563 function defaultWriterClosedPromiseInitializeAsResolved(writer) {
6564 writer._closedPromise = Promise.resolve(undefined);
6565 writer._closedPromise_resolve = undefined;
6566 writer._closedPromise_reject = undefined;
6567 writer._closedPromiseState = 'resolved';
6568 }
6569
6570 function defaultWriterClosedPromiseReject(writer, reason) {
6571 assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');
6572 assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');
6573 assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');
6574
6575 writer._closedPromise_reject(reason);
6576
6577 writer._closedPromise_resolve = undefined;
6578 writer._closedPromise_reject = undefined;
6579 writer._closedPromiseState = 'rejected';
6580 }
6581
6582 function defaultWriterClosedPromiseResetToRejected(writer, reason) {
6583 assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');
6584 assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');
6585 assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');
6586 writer._closedPromise = Promise.reject(reason);
6587 writer._closedPromiseState = 'rejected';
6588 }
6589
6590 function defaultWriterClosedPromiseResolve(writer) {
6591 assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');
6592 assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');
6593 assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');
6594
6595 writer._closedPromise_resolve(undefined);
6596
6597 writer._closedPromise_resolve = undefined;
6598 writer._closedPromise_reject = undefined;
6599 writer._closedPromiseState = 'resolved';
6600 }
6601
6602 function defaultWriterReadyPromiseInitialize(writer) {
6603 writer._readyPromise = new Promise(function (resolve, reject) {
6604 writer._readyPromise_resolve = resolve;
6605 writer._readyPromise_reject = reject;
6606 });
6607 writer._readyPromiseState = 'pending';
6608 }
6609
6610 function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {
6611 writer._readyPromise = Promise.reject(reason);
6612 writer._readyPromise_resolve = undefined;
6613 writer._readyPromise_reject = undefined;
6614 writer._readyPromiseState = 'rejected';
6615 }
6616
6617 function defaultWriterReadyPromiseInitializeAsResolved(writer) {
6618 writer._readyPromise = Promise.resolve(undefined);
6619 writer._readyPromise_resolve = undefined;
6620 writer._readyPromise_reject = undefined;
6621 writer._readyPromiseState = 'fulfilled';
6622 }
6623
6624 function defaultWriterReadyPromiseReject(writer, reason) {
6625 assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');
6626 assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');
6627
6628 writer._readyPromise_reject(reason);
6629
6630 writer._readyPromise_resolve = undefined;
6631 writer._readyPromise_reject = undefined;
6632 writer._readyPromiseState = 'rejected';
6633 }
6634
6635 function defaultWriterReadyPromiseReset(writer) {
6636 assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');
6637 assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');
6638 writer._readyPromise = new Promise(function (resolve, reject) {
6639 writer._readyPromise_resolve = resolve;
6640 writer._readyPromise_reject = reject;
6641 });
6642 writer._readyPromiseState = 'pending';
6643 }
6644
6645 function defaultWriterReadyPromiseResetToRejected(writer, reason) {
6646 assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');
6647 assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');
6648 writer._readyPromise = Promise.reject(reason);
6649 writer._readyPromiseState = 'rejected';
6650 }
6651
6652 function defaultWriterReadyPromiseResolve(writer) {
6653 assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');
6654 assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');
6655
6656 writer._readyPromise_resolve(undefined);
6657
6658 writer._readyPromise_resolve = undefined;
6659 writer._readyPromise_reject = undefined;
6660 writer._readyPromiseState = 'fulfilled';
6661 }
6662}, function (module, exports, __w_pdfjs_require__) {
6663 "use strict";
6664
6665 var _require = __w_pdfjs_require__(0),
6666 IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;
6667
6668 var _require2 = __w_pdfjs_require__(1),
6669 assert = _require2.assert;
6670
6671 exports.DequeueValue = function (container) {
6672 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');
6673 assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');
6674
6675 var pair = container._queue.shift();
6676
6677 container._queueTotalSize -= pair.size;
6678
6679 if (container._queueTotalSize < 0) {
6680 container._queueTotalSize = 0;
6681 }
6682
6683 return pair.value;
6684 };
6685
6686 exports.EnqueueValueWithSize = function (container, value, size) {
6687 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');
6688 size = Number(size);
6689
6690 if (!IsFiniteNonNegativeNumber(size)) {
6691 throw new RangeError('Size must be a finite, non-NaN, non-negative number.');
6692 }
6693
6694 container._queue.push({
6695 value: value,
6696 size: size
6697 });
6698
6699 container._queueTotalSize += size;
6700 };
6701
6702 exports.PeekQueueValue = function (container) {
6703 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');
6704 assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');
6705 var pair = container._queue[0];
6706 return pair.value;
6707 };
6708
6709 exports.ResetQueue = function (container) {
6710 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');
6711 container._queue = [];
6712 container._queueTotalSize = 0;
6713 };
6714}, function (module, exports, __w_pdfjs_require__) {
6715 "use strict";
6716
6717 var _createClass = function () {
6718 function defineProperties(target, props) {
6719 for (var i = 0; i < props.length; i++) {
6720 var descriptor = props[i];
6721 descriptor.enumerable = descriptor.enumerable || false;
6722 descriptor.configurable = true;
6723 if ("value" in descriptor) descriptor.writable = true;
6724 Object.defineProperty(target, descriptor.key, descriptor);
6725 }
6726 }
6727
6728 return function (Constructor, protoProps, staticProps) {
6729 if (protoProps) defineProperties(Constructor.prototype, protoProps);
6730 if (staticProps) defineProperties(Constructor, staticProps);
6731 return Constructor;
6732 };
6733 }();
6734
6735 function _classCallCheck(instance, Constructor) {
6736 if (!(instance instanceof Constructor)) {
6737 throw new TypeError("Cannot call a class as a function");
6738 }
6739 }
6740
6741 var _require = __w_pdfjs_require__(0),
6742 ArrayBufferCopy = _require.ArrayBufferCopy,
6743 CreateIterResultObject = _require.CreateIterResultObject,
6744 IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,
6745 InvokeOrNoop = _require.InvokeOrNoop,
6746 PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,
6747 TransferArrayBuffer = _require.TransferArrayBuffer,
6748 ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,
6749 ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;
6750
6751 var _require2 = __w_pdfjs_require__(0),
6752 createArrayFromList = _require2.createArrayFromList,
6753 createDataProperty = _require2.createDataProperty,
6754 typeIsObject = _require2.typeIsObject;
6755
6756 var _require3 = __w_pdfjs_require__(1),
6757 assert = _require3.assert,
6758 rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;
6759
6760 var _require4 = __w_pdfjs_require__(3),
6761 DequeueValue = _require4.DequeueValue,
6762 EnqueueValueWithSize = _require4.EnqueueValueWithSize,
6763 ResetQueue = _require4.ResetQueue;
6764
6765 var _require5 = __w_pdfjs_require__(2),
6766 AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,
6767 IsWritableStream = _require5.IsWritableStream,
6768 IsWritableStreamLocked = _require5.IsWritableStreamLocked,
6769 WritableStreamAbort = _require5.WritableStreamAbort,
6770 WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,
6771 WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,
6772 WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,
6773 WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;
6774
6775 var ReadableStream = function () {
6776 function ReadableStream() {
6777 var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6778
6779 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
6780 size = _ref.size,
6781 highWaterMark = _ref.highWaterMark;
6782
6783 _classCallCheck(this, ReadableStream);
6784
6785 this._state = 'readable';
6786 this._reader = undefined;
6787 this._storedError = undefined;
6788 this._disturbed = false;
6789 this._readableStreamController = undefined;
6790 var type = underlyingSource.type;
6791 var typeString = String(type);
6792
6793 if (typeString === 'bytes') {
6794 if (highWaterMark === undefined) {
6795 highWaterMark = 0;
6796 }
6797
6798 this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);
6799 } else if (type === undefined) {
6800 if (highWaterMark === undefined) {
6801 highWaterMark = 1;
6802 }
6803
6804 this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);
6805 } else {
6806 throw new RangeError('Invalid type is specified');
6807 }
6808 }
6809
6810 _createClass(ReadableStream, [{
6811 key: 'cancel',
6812 value: function cancel(reason) {
6813 if (IsReadableStream(this) === false) {
6814 return Promise.reject(streamBrandCheckException('cancel'));
6815 }
6816
6817 if (IsReadableStreamLocked(this) === true) {
6818 return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));
6819 }
6820
6821 return ReadableStreamCancel(this, reason);
6822 }
6823 }, {
6824 key: 'getReader',
6825 value: function getReader() {
6826 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
6827 mode = _ref2.mode;
6828
6829 if (IsReadableStream(this) === false) {
6830 throw streamBrandCheckException('getReader');
6831 }
6832
6833 if (mode === undefined) {
6834 return AcquireReadableStreamDefaultReader(this);
6835 }
6836
6837 mode = String(mode);
6838
6839 if (mode === 'byob') {
6840 return AcquireReadableStreamBYOBReader(this);
6841 }
6842
6843 throw new RangeError('Invalid mode is specified');
6844 }
6845 }, {
6846 key: 'pipeThrough',
6847 value: function pipeThrough(_ref3, options) {
6848 var writable = _ref3.writable,
6849 readable = _ref3.readable;
6850 var promise = this.pipeTo(writable, options);
6851 ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);
6852 return readable;
6853 }
6854 }, {
6855 key: 'pipeTo',
6856 value: function pipeTo(dest) {
6857 var _this = this;
6858
6859 var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
6860 preventClose = _ref4.preventClose,
6861 preventAbort = _ref4.preventAbort,
6862 preventCancel = _ref4.preventCancel;
6863
6864 if (IsReadableStream(this) === false) {
6865 return Promise.reject(streamBrandCheckException('pipeTo'));
6866 }
6867
6868 if (IsWritableStream(dest) === false) {
6869 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream'));
6870 }
6871
6872 preventClose = Boolean(preventClose);
6873 preventAbort = Boolean(preventAbort);
6874 preventCancel = Boolean(preventCancel);
6875
6876 if (IsReadableStreamLocked(this) === true) {
6877 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));
6878 }
6879
6880 if (IsWritableStreamLocked(dest) === true) {
6881 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));
6882 }
6883
6884 var reader = AcquireReadableStreamDefaultReader(this);
6885 var writer = AcquireWritableStreamDefaultWriter(dest);
6886 var shuttingDown = false;
6887 var currentWrite = Promise.resolve();
6888 return new Promise(function (resolve, reject) {
6889 function pipeLoop() {
6890 currentWrite = Promise.resolve();
6891
6892 if (shuttingDown === true) {
6893 return Promise.resolve();
6894 }
6895
6896 return writer._readyPromise.then(function () {
6897 return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {
6898 var value = _ref5.value,
6899 done = _ref5.done;
6900
6901 if (done === true) {
6902 return;
6903 }
6904
6905 currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});
6906 });
6907 }).then(pipeLoop);
6908 }
6909
6910 isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {
6911 if (preventAbort === false) {
6912 shutdownWithAction(function () {
6913 return WritableStreamAbort(dest, storedError);
6914 }, true, storedError);
6915 } else {
6916 shutdown(true, storedError);
6917 }
6918 });
6919 isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {
6920 if (preventCancel === false) {
6921 shutdownWithAction(function () {
6922 return ReadableStreamCancel(_this, storedError);
6923 }, true, storedError);
6924 } else {
6925 shutdown(true, storedError);
6926 }
6927 });
6928 isOrBecomesClosed(_this, reader._closedPromise, function () {
6929 if (preventClose === false) {
6930 shutdownWithAction(function () {
6931 return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);
6932 });
6933 } else {
6934 shutdown();
6935 }
6936 });
6937
6938 if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {
6939 var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');
6940
6941 if (preventCancel === false) {
6942 shutdownWithAction(function () {
6943 return ReadableStreamCancel(_this, destClosed);
6944 }, true, destClosed);
6945 } else {
6946 shutdown(true, destClosed);
6947 }
6948 }
6949
6950 pipeLoop().catch(function (err) {
6951 currentWrite = Promise.resolve();
6952 rethrowAssertionErrorRejection(err);
6953 });
6954
6955 function waitForWritesToFinish() {
6956 var oldCurrentWrite = currentWrite;
6957 return currentWrite.then(function () {
6958 return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;
6959 });
6960 }
6961
6962 function isOrBecomesErrored(stream, promise, action) {
6963 if (stream._state === 'errored') {
6964 action(stream._storedError);
6965 } else {
6966 promise.catch(action).catch(rethrowAssertionErrorRejection);
6967 }
6968 }
6969
6970 function isOrBecomesClosed(stream, promise, action) {
6971 if (stream._state === 'closed') {
6972 action();
6973 } else {
6974 promise.then(action).catch(rethrowAssertionErrorRejection);
6975 }
6976 }
6977
6978 function shutdownWithAction(action, originalIsError, originalError) {
6979 if (shuttingDown === true) {
6980 return;
6981 }
6982
6983 shuttingDown = true;
6984
6985 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
6986 waitForWritesToFinish().then(doTheRest);
6987 } else {
6988 doTheRest();
6989 }
6990
6991 function doTheRest() {
6992 action().then(function () {
6993 return finalize(originalIsError, originalError);
6994 }, function (newError) {
6995 return finalize(true, newError);
6996 }).catch(rethrowAssertionErrorRejection);
6997 }
6998 }
6999
7000 function shutdown(isError, error) {
7001 if (shuttingDown === true) {
7002 return;
7003 }
7004
7005 shuttingDown = true;
7006
7007 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
7008 waitForWritesToFinish().then(function () {
7009 return finalize(isError, error);
7010 }).catch(rethrowAssertionErrorRejection);
7011 } else {
7012 finalize(isError, error);
7013 }
7014 }
7015
7016 function finalize(isError, error) {
7017 WritableStreamDefaultWriterRelease(writer);
7018 ReadableStreamReaderGenericRelease(reader);
7019
7020 if (isError) {
7021 reject(error);
7022 } else {
7023 resolve(undefined);
7024 }
7025 }
7026 });
7027 }
7028 }, {
7029 key: 'tee',
7030 value: function tee() {
7031 if (IsReadableStream(this) === false) {
7032 throw streamBrandCheckException('tee');
7033 }
7034
7035 var branches = ReadableStreamTee(this, false);
7036 return createArrayFromList(branches);
7037 }
7038 }, {
7039 key: 'locked',
7040 get: function get() {
7041 if (IsReadableStream(this) === false) {
7042 throw streamBrandCheckException('locked');
7043 }
7044
7045 return IsReadableStreamLocked(this);
7046 }
7047 }]);
7048
7049 return ReadableStream;
7050 }();
7051
7052 module.exports = {
7053 ReadableStream: ReadableStream,
7054 IsReadableStreamDisturbed: IsReadableStreamDisturbed,
7055 ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,
7056 ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,
7057 ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,
7058 ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize
7059 };
7060
7061 function AcquireReadableStreamBYOBReader(stream) {
7062 return new ReadableStreamBYOBReader(stream);
7063 }
7064
7065 function AcquireReadableStreamDefaultReader(stream) {
7066 return new ReadableStreamDefaultReader(stream);
7067 }
7068
7069 function IsReadableStream(x) {
7070 if (!typeIsObject(x)) {
7071 return false;
7072 }
7073
7074 if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {
7075 return false;
7076 }
7077
7078 return true;
7079 }
7080
7081 function IsReadableStreamDisturbed(stream) {
7082 assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');
7083 return stream._disturbed;
7084 }
7085
7086 function IsReadableStreamLocked(stream) {
7087 assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');
7088
7089 if (stream._reader === undefined) {
7090 return false;
7091 }
7092
7093 return true;
7094 }
7095
7096 function ReadableStreamTee(stream, cloneForBranch2) {
7097 assert(IsReadableStream(stream) === true);
7098 assert(typeof cloneForBranch2 === 'boolean');
7099 var reader = AcquireReadableStreamDefaultReader(stream);
7100 var teeState = {
7101 closedOrErrored: false,
7102 canceled1: false,
7103 canceled2: false,
7104 reason1: undefined,
7105 reason2: undefined
7106 };
7107 teeState.promise = new Promise(function (resolve) {
7108 teeState._resolve = resolve;
7109 });
7110 var pull = create_ReadableStreamTeePullFunction();
7111 pull._reader = reader;
7112 pull._teeState = teeState;
7113 pull._cloneForBranch2 = cloneForBranch2;
7114 var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();
7115 cancel1._stream = stream;
7116 cancel1._teeState = teeState;
7117 var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();
7118 cancel2._stream = stream;
7119 cancel2._teeState = teeState;
7120 var underlyingSource1 = Object.create(Object.prototype);
7121 createDataProperty(underlyingSource1, 'pull', pull);
7122 createDataProperty(underlyingSource1, 'cancel', cancel1);
7123 var branch1Stream = new ReadableStream(underlyingSource1);
7124 var underlyingSource2 = Object.create(Object.prototype);
7125 createDataProperty(underlyingSource2, 'pull', pull);
7126 createDataProperty(underlyingSource2, 'cancel', cancel2);
7127 var branch2Stream = new ReadableStream(underlyingSource2);
7128 pull._branch1 = branch1Stream._readableStreamController;
7129 pull._branch2 = branch2Stream._readableStreamController;
7130
7131 reader._closedPromise.catch(function (r) {
7132 if (teeState.closedOrErrored === true) {
7133 return;
7134 }
7135
7136 ReadableStreamDefaultControllerError(pull._branch1, r);
7137 ReadableStreamDefaultControllerError(pull._branch2, r);
7138 teeState.closedOrErrored = true;
7139 });
7140
7141 return [branch1Stream, branch2Stream];
7142 }
7143
7144 function create_ReadableStreamTeePullFunction() {
7145 function f() {
7146 var reader = f._reader,
7147 branch1 = f._branch1,
7148 branch2 = f._branch2,
7149 teeState = f._teeState;
7150 return ReadableStreamDefaultReaderRead(reader).then(function (result) {
7151 assert(typeIsObject(result));
7152 var value = result.value;
7153 var done = result.done;
7154 assert(typeof done === 'boolean');
7155
7156 if (done === true && teeState.closedOrErrored === false) {
7157 if (teeState.canceled1 === false) {
7158 ReadableStreamDefaultControllerClose(branch1);
7159 }
7160
7161 if (teeState.canceled2 === false) {
7162 ReadableStreamDefaultControllerClose(branch2);
7163 }
7164
7165 teeState.closedOrErrored = true;
7166 }
7167
7168 if (teeState.closedOrErrored === true) {
7169 return;
7170 }
7171
7172 var value1 = value;
7173 var value2 = value;
7174
7175 if (teeState.canceled1 === false) {
7176 ReadableStreamDefaultControllerEnqueue(branch1, value1);
7177 }
7178
7179 if (teeState.canceled2 === false) {
7180 ReadableStreamDefaultControllerEnqueue(branch2, value2);
7181 }
7182 });
7183 }
7184
7185 return f;
7186 }
7187
7188 function create_ReadableStreamTeeBranch1CancelFunction() {
7189 function f(reason) {
7190 var stream = f._stream,
7191 teeState = f._teeState;
7192 teeState.canceled1 = true;
7193 teeState.reason1 = reason;
7194
7195 if (teeState.canceled2 === true) {
7196 var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);
7197 var cancelResult = ReadableStreamCancel(stream, compositeReason);
7198
7199 teeState._resolve(cancelResult);
7200 }
7201
7202 return teeState.promise;
7203 }
7204
7205 return f;
7206 }
7207
7208 function create_ReadableStreamTeeBranch2CancelFunction() {
7209 function f(reason) {
7210 var stream = f._stream,
7211 teeState = f._teeState;
7212 teeState.canceled2 = true;
7213 teeState.reason2 = reason;
7214
7215 if (teeState.canceled1 === true) {
7216 var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);
7217 var cancelResult = ReadableStreamCancel(stream, compositeReason);
7218
7219 teeState._resolve(cancelResult);
7220 }
7221
7222 return teeState.promise;
7223 }
7224
7225 return f;
7226 }
7227
7228 function ReadableStreamAddReadIntoRequest(stream) {
7229 assert(IsReadableStreamBYOBReader(stream._reader) === true);
7230 assert(stream._state === 'readable' || stream._state === 'closed');
7231 var promise = new Promise(function (resolve, reject) {
7232 var readIntoRequest = {
7233 _resolve: resolve,
7234 _reject: reject
7235 };
7236
7237 stream._reader._readIntoRequests.push(readIntoRequest);
7238 });
7239 return promise;
7240 }
7241
7242 function ReadableStreamAddReadRequest(stream) {
7243 assert(IsReadableStreamDefaultReader(stream._reader) === true);
7244 assert(stream._state === 'readable');
7245 var promise = new Promise(function (resolve, reject) {
7246 var readRequest = {
7247 _resolve: resolve,
7248 _reject: reject
7249 };
7250
7251 stream._reader._readRequests.push(readRequest);
7252 });
7253 return promise;
7254 }
7255
7256 function ReadableStreamCancel(stream, reason) {
7257 stream._disturbed = true;
7258
7259 if (stream._state === 'closed') {
7260 return Promise.resolve(undefined);
7261 }
7262
7263 if (stream._state === 'errored') {
7264 return Promise.reject(stream._storedError);
7265 }
7266
7267 ReadableStreamClose(stream);
7268
7269 var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);
7270
7271 return sourceCancelPromise.then(function () {
7272 return undefined;
7273 });
7274 }
7275
7276 function ReadableStreamClose(stream) {
7277 assert(stream._state === 'readable');
7278 stream._state = 'closed';
7279 var reader = stream._reader;
7280
7281 if (reader === undefined) {
7282 return undefined;
7283 }
7284
7285 if (IsReadableStreamDefaultReader(reader) === true) {
7286 for (var i = 0; i < reader._readRequests.length; i++) {
7287 var _resolve = reader._readRequests[i]._resolve;
7288
7289 _resolve(CreateIterResultObject(undefined, true));
7290 }
7291
7292 reader._readRequests = [];
7293 }
7294
7295 defaultReaderClosedPromiseResolve(reader);
7296 return undefined;
7297 }
7298
7299 function ReadableStreamError(stream, e) {
7300 assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');
7301 assert(stream._state === 'readable', 'state must be readable');
7302 stream._state = 'errored';
7303 stream._storedError = e;
7304 var reader = stream._reader;
7305
7306 if (reader === undefined) {
7307 return undefined;
7308 }
7309
7310 if (IsReadableStreamDefaultReader(reader) === true) {
7311 for (var i = 0; i < reader._readRequests.length; i++) {
7312 var readRequest = reader._readRequests[i];
7313
7314 readRequest._reject(e);
7315 }
7316
7317 reader._readRequests = [];
7318 } else {
7319 assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');
7320
7321 for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {
7322 var readIntoRequest = reader._readIntoRequests[_i];
7323
7324 readIntoRequest._reject(e);
7325 }
7326
7327 reader._readIntoRequests = [];
7328 }
7329
7330 defaultReaderClosedPromiseReject(reader, e);
7331
7332 reader._closedPromise.catch(function () {});
7333 }
7334
7335 function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {
7336 var reader = stream._reader;
7337 assert(reader._readIntoRequests.length > 0);
7338
7339 var readIntoRequest = reader._readIntoRequests.shift();
7340
7341 readIntoRequest._resolve(CreateIterResultObject(chunk, done));
7342 }
7343
7344 function ReadableStreamFulfillReadRequest(stream, chunk, done) {
7345 var reader = stream._reader;
7346 assert(reader._readRequests.length > 0);
7347
7348 var readRequest = reader._readRequests.shift();
7349
7350 readRequest._resolve(CreateIterResultObject(chunk, done));
7351 }
7352
7353 function ReadableStreamGetNumReadIntoRequests(stream) {
7354 return stream._reader._readIntoRequests.length;
7355 }
7356
7357 function ReadableStreamGetNumReadRequests(stream) {
7358 return stream._reader._readRequests.length;
7359 }
7360
7361 function ReadableStreamHasBYOBReader(stream) {
7362 var reader = stream._reader;
7363
7364 if (reader === undefined) {
7365 return false;
7366 }
7367
7368 if (IsReadableStreamBYOBReader(reader) === false) {
7369 return false;
7370 }
7371
7372 return true;
7373 }
7374
7375 function ReadableStreamHasDefaultReader(stream) {
7376 var reader = stream._reader;
7377
7378 if (reader === undefined) {
7379 return false;
7380 }
7381
7382 if (IsReadableStreamDefaultReader(reader) === false) {
7383 return false;
7384 }
7385
7386 return true;
7387 }
7388
7389 var ReadableStreamDefaultReader = function () {
7390 function ReadableStreamDefaultReader(stream) {
7391 _classCallCheck(this, ReadableStreamDefaultReader);
7392
7393 if (IsReadableStream(stream) === false) {
7394 throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');
7395 }
7396
7397 if (IsReadableStreamLocked(stream) === true) {
7398 throw new TypeError('This stream has already been locked for exclusive reading by another reader');
7399 }
7400
7401 ReadableStreamReaderGenericInitialize(this, stream);
7402 this._readRequests = [];
7403 }
7404
7405 _createClass(ReadableStreamDefaultReader, [{
7406 key: 'cancel',
7407 value: function cancel(reason) {
7408 if (IsReadableStreamDefaultReader(this) === false) {
7409 return Promise.reject(defaultReaderBrandCheckException('cancel'));
7410 }
7411
7412 if (this._ownerReadableStream === undefined) {
7413 return Promise.reject(readerLockException('cancel'));
7414 }
7415
7416 return ReadableStreamReaderGenericCancel(this, reason);
7417 }
7418 }, {
7419 key: 'read',
7420 value: function read() {
7421 if (IsReadableStreamDefaultReader(this) === false) {
7422 return Promise.reject(defaultReaderBrandCheckException('read'));
7423 }
7424
7425 if (this._ownerReadableStream === undefined) {
7426 return Promise.reject(readerLockException('read from'));
7427 }
7428
7429 return ReadableStreamDefaultReaderRead(this);
7430 }
7431 }, {
7432 key: 'releaseLock',
7433 value: function releaseLock() {
7434 if (IsReadableStreamDefaultReader(this) === false) {
7435 throw defaultReaderBrandCheckException('releaseLock');
7436 }
7437
7438 if (this._ownerReadableStream === undefined) {
7439 return;
7440 }
7441
7442 if (this._readRequests.length > 0) {
7443 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
7444 }
7445
7446 ReadableStreamReaderGenericRelease(this);
7447 }
7448 }, {
7449 key: 'closed',
7450 get: function get() {
7451 if (IsReadableStreamDefaultReader(this) === false) {
7452 return Promise.reject(defaultReaderBrandCheckException('closed'));
7453 }
7454
7455 return this._closedPromise;
7456 }
7457 }]);
7458
7459 return ReadableStreamDefaultReader;
7460 }();
7461
7462 var ReadableStreamBYOBReader = function () {
7463 function ReadableStreamBYOBReader(stream) {
7464 _classCallCheck(this, ReadableStreamBYOBReader);
7465
7466 if (!IsReadableStream(stream)) {
7467 throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');
7468 }
7469
7470 if (IsReadableByteStreamController(stream._readableStreamController) === false) {
7471 throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');
7472 }
7473
7474 if (IsReadableStreamLocked(stream)) {
7475 throw new TypeError('This stream has already been locked for exclusive reading by another reader');
7476 }
7477
7478 ReadableStreamReaderGenericInitialize(this, stream);
7479 this._readIntoRequests = [];
7480 }
7481
7482 _createClass(ReadableStreamBYOBReader, [{
7483 key: 'cancel',
7484 value: function cancel(reason) {
7485 if (!IsReadableStreamBYOBReader(this)) {
7486 return Promise.reject(byobReaderBrandCheckException('cancel'));
7487 }
7488
7489 if (this._ownerReadableStream === undefined) {
7490 return Promise.reject(readerLockException('cancel'));
7491 }
7492
7493 return ReadableStreamReaderGenericCancel(this, reason);
7494 }
7495 }, {
7496 key: 'read',
7497 value: function read(view) {
7498 if (!IsReadableStreamBYOBReader(this)) {
7499 return Promise.reject(byobReaderBrandCheckException('read'));
7500 }
7501
7502 if (this._ownerReadableStream === undefined) {
7503 return Promise.reject(readerLockException('read from'));
7504 }
7505
7506 if (!ArrayBuffer.isView(view)) {
7507 return Promise.reject(new TypeError('view must be an array buffer view'));
7508 }
7509
7510 if (view.byteLength === 0) {
7511 return Promise.reject(new TypeError('view must have non-zero byteLength'));
7512 }
7513
7514 return ReadableStreamBYOBReaderRead(this, view);
7515 }
7516 }, {
7517 key: 'releaseLock',
7518 value: function releaseLock() {
7519 if (!IsReadableStreamBYOBReader(this)) {
7520 throw byobReaderBrandCheckException('releaseLock');
7521 }
7522
7523 if (this._ownerReadableStream === undefined) {
7524 return;
7525 }
7526
7527 if (this._readIntoRequests.length > 0) {
7528 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
7529 }
7530
7531 ReadableStreamReaderGenericRelease(this);
7532 }
7533 }, {
7534 key: 'closed',
7535 get: function get() {
7536 if (!IsReadableStreamBYOBReader(this)) {
7537 return Promise.reject(byobReaderBrandCheckException('closed'));
7538 }
7539
7540 return this._closedPromise;
7541 }
7542 }]);
7543
7544 return ReadableStreamBYOBReader;
7545 }();
7546
7547 function IsReadableStreamBYOBReader(x) {
7548 if (!typeIsObject(x)) {
7549 return false;
7550 }
7551
7552 if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {
7553 return false;
7554 }
7555
7556 return true;
7557 }
7558
7559 function IsReadableStreamDefaultReader(x) {
7560 if (!typeIsObject(x)) {
7561 return false;
7562 }
7563
7564 if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {
7565 return false;
7566 }
7567
7568 return true;
7569 }
7570
7571 function ReadableStreamReaderGenericInitialize(reader, stream) {
7572 reader._ownerReadableStream = stream;
7573 stream._reader = reader;
7574
7575 if (stream._state === 'readable') {
7576 defaultReaderClosedPromiseInitialize(reader);
7577 } else if (stream._state === 'closed') {
7578 defaultReaderClosedPromiseInitializeAsResolved(reader);
7579 } else {
7580 assert(stream._state === 'errored', 'state must be errored');
7581 defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);
7582
7583 reader._closedPromise.catch(function () {});
7584 }
7585 }
7586
7587 function ReadableStreamReaderGenericCancel(reader, reason) {
7588 var stream = reader._ownerReadableStream;
7589 assert(stream !== undefined);
7590 return ReadableStreamCancel(stream, reason);
7591 }
7592
7593 function ReadableStreamReaderGenericRelease(reader) {
7594 assert(reader._ownerReadableStream !== undefined);
7595 assert(reader._ownerReadableStream._reader === reader);
7596
7597 if (reader._ownerReadableStream._state === 'readable') {
7598 defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
7599 } else {
7600 defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
7601 }
7602
7603 reader._closedPromise.catch(function () {});
7604
7605 reader._ownerReadableStream._reader = undefined;
7606 reader._ownerReadableStream = undefined;
7607 }
7608
7609 function ReadableStreamBYOBReaderRead(reader, view) {
7610 var stream = reader._ownerReadableStream;
7611 assert(stream !== undefined);
7612 stream._disturbed = true;
7613
7614 if (stream._state === 'errored') {
7615 return Promise.reject(stream._storedError);
7616 }
7617
7618 return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);
7619 }
7620
7621 function ReadableStreamDefaultReaderRead(reader) {
7622 var stream = reader._ownerReadableStream;
7623 assert(stream !== undefined);
7624 stream._disturbed = true;
7625
7626 if (stream._state === 'closed') {
7627 return Promise.resolve(CreateIterResultObject(undefined, true));
7628 }
7629
7630 if (stream._state === 'errored') {
7631 return Promise.reject(stream._storedError);
7632 }
7633
7634 assert(stream._state === 'readable');
7635 return stream._readableStreamController.__pullSteps();
7636 }
7637
7638 var ReadableStreamDefaultController = function () {
7639 function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {
7640 _classCallCheck(this, ReadableStreamDefaultController);
7641
7642 if (IsReadableStream(stream) === false) {
7643 throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');
7644 }
7645
7646 if (stream._readableStreamController !== undefined) {
7647 throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');
7648 }
7649
7650 this._controlledReadableStream = stream;
7651 this._underlyingSource = underlyingSource;
7652 this._queue = undefined;
7653 this._queueTotalSize = undefined;
7654 ResetQueue(this);
7655 this._started = false;
7656 this._closeRequested = false;
7657 this._pullAgain = false;
7658 this._pulling = false;
7659 var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);
7660 this._strategySize = normalizedStrategy.size;
7661 this._strategyHWM = normalizedStrategy.highWaterMark;
7662 var controller = this;
7663 var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);
7664 Promise.resolve(startResult).then(function () {
7665 controller._started = true;
7666 assert(controller._pulling === false);
7667 assert(controller._pullAgain === false);
7668 ReadableStreamDefaultControllerCallPullIfNeeded(controller);
7669 }, function (r) {
7670 ReadableStreamDefaultControllerErrorIfNeeded(controller, r);
7671 }).catch(rethrowAssertionErrorRejection);
7672 }
7673
7674 _createClass(ReadableStreamDefaultController, [{
7675 key: 'close',
7676 value: function close() {
7677 if (IsReadableStreamDefaultController(this) === false) {
7678 throw defaultControllerBrandCheckException('close');
7679 }
7680
7681 if (this._closeRequested === true) {
7682 throw new TypeError('The stream has already been closed; do not close it again!');
7683 }
7684
7685 var state = this._controlledReadableStream._state;
7686
7687 if (state !== 'readable') {
7688 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');
7689 }
7690
7691 ReadableStreamDefaultControllerClose(this);
7692 }
7693 }, {
7694 key: 'enqueue',
7695 value: function enqueue(chunk) {
7696 if (IsReadableStreamDefaultController(this) === false) {
7697 throw defaultControllerBrandCheckException('enqueue');
7698 }
7699
7700 if (this._closeRequested === true) {
7701 throw new TypeError('stream is closed or draining');
7702 }
7703
7704 var state = this._controlledReadableStream._state;
7705
7706 if (state !== 'readable') {
7707 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');
7708 }
7709
7710 return ReadableStreamDefaultControllerEnqueue(this, chunk);
7711 }
7712 }, {
7713 key: 'error',
7714 value: function error(e) {
7715 if (IsReadableStreamDefaultController(this) === false) {
7716 throw defaultControllerBrandCheckException('error');
7717 }
7718
7719 var stream = this._controlledReadableStream;
7720
7721 if (stream._state !== 'readable') {
7722 throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');
7723 }
7724
7725 ReadableStreamDefaultControllerError(this, e);
7726 }
7727 }, {
7728 key: '__cancelSteps',
7729 value: function __cancelSteps(reason) {
7730 ResetQueue(this);
7731 return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);
7732 }
7733 }, {
7734 key: '__pullSteps',
7735 value: function __pullSteps() {
7736 var stream = this._controlledReadableStream;
7737
7738 if (this._queue.length > 0) {
7739 var chunk = DequeueValue(this);
7740
7741 if (this._closeRequested === true && this._queue.length === 0) {
7742 ReadableStreamClose(stream);
7743 } else {
7744 ReadableStreamDefaultControllerCallPullIfNeeded(this);
7745 }
7746
7747 return Promise.resolve(CreateIterResultObject(chunk, false));
7748 }
7749
7750 var pendingPromise = ReadableStreamAddReadRequest(stream);
7751 ReadableStreamDefaultControllerCallPullIfNeeded(this);
7752 return pendingPromise;
7753 }
7754 }, {
7755 key: 'desiredSize',
7756 get: function get() {
7757 if (IsReadableStreamDefaultController(this) === false) {
7758 throw defaultControllerBrandCheckException('desiredSize');
7759 }
7760
7761 return ReadableStreamDefaultControllerGetDesiredSize(this);
7762 }
7763 }]);
7764
7765 return ReadableStreamDefaultController;
7766 }();
7767
7768 function IsReadableStreamDefaultController(x) {
7769 if (!typeIsObject(x)) {
7770 return false;
7771 }
7772
7773 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {
7774 return false;
7775 }
7776
7777 return true;
7778 }
7779
7780 function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {
7781 var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);
7782
7783 if (shouldPull === false) {
7784 return undefined;
7785 }
7786
7787 if (controller._pulling === true) {
7788 controller._pullAgain = true;
7789 return undefined;
7790 }
7791
7792 assert(controller._pullAgain === false);
7793 controller._pulling = true;
7794 var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);
7795 pullPromise.then(function () {
7796 controller._pulling = false;
7797
7798 if (controller._pullAgain === true) {
7799 controller._pullAgain = false;
7800 return ReadableStreamDefaultControllerCallPullIfNeeded(controller);
7801 }
7802
7803 return undefined;
7804 }, function (e) {
7805 ReadableStreamDefaultControllerErrorIfNeeded(controller, e);
7806 }).catch(rethrowAssertionErrorRejection);
7807 return undefined;
7808 }
7809
7810 function ReadableStreamDefaultControllerShouldCallPull(controller) {
7811 var stream = controller._controlledReadableStream;
7812
7813 if (stream._state === 'closed' || stream._state === 'errored') {
7814 return false;
7815 }
7816
7817 if (controller._closeRequested === true) {
7818 return false;
7819 }
7820
7821 if (controller._started === false) {
7822 return false;
7823 }
7824
7825 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
7826 return true;
7827 }
7828
7829 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
7830
7831 if (desiredSize > 0) {
7832 return true;
7833 }
7834
7835 return false;
7836 }
7837
7838 function ReadableStreamDefaultControllerClose(controller) {
7839 var stream = controller._controlledReadableStream;
7840 assert(controller._closeRequested === false);
7841 assert(stream._state === 'readable');
7842 controller._closeRequested = true;
7843
7844 if (controller._queue.length === 0) {
7845 ReadableStreamClose(stream);
7846 }
7847 }
7848
7849 function ReadableStreamDefaultControllerEnqueue(controller, chunk) {
7850 var stream = controller._controlledReadableStream;
7851 assert(controller._closeRequested === false);
7852 assert(stream._state === 'readable');
7853
7854 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
7855 ReadableStreamFulfillReadRequest(stream, chunk, false);
7856 } else {
7857 var chunkSize = 1;
7858
7859 if (controller._strategySize !== undefined) {
7860 var strategySize = controller._strategySize;
7861
7862 try {
7863 chunkSize = strategySize(chunk);
7864 } catch (chunkSizeE) {
7865 ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);
7866 throw chunkSizeE;
7867 }
7868 }
7869
7870 try {
7871 EnqueueValueWithSize(controller, chunk, chunkSize);
7872 } catch (enqueueE) {
7873 ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);
7874 throw enqueueE;
7875 }
7876 }
7877
7878 ReadableStreamDefaultControllerCallPullIfNeeded(controller);
7879 return undefined;
7880 }
7881
7882 function ReadableStreamDefaultControllerError(controller, e) {
7883 var stream = controller._controlledReadableStream;
7884 assert(stream._state === 'readable');
7885 ResetQueue(controller);
7886 ReadableStreamError(stream, e);
7887 }
7888
7889 function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {
7890 if (controller._controlledReadableStream._state === 'readable') {
7891 ReadableStreamDefaultControllerError(controller, e);
7892 }
7893 }
7894
7895 function ReadableStreamDefaultControllerGetDesiredSize(controller) {
7896 var stream = controller._controlledReadableStream;
7897 var state = stream._state;
7898
7899 if (state === 'errored') {
7900 return null;
7901 }
7902
7903 if (state === 'closed') {
7904 return 0;
7905 }
7906
7907 return controller._strategyHWM - controller._queueTotalSize;
7908 }
7909
7910 var ReadableStreamBYOBRequest = function () {
7911 function ReadableStreamBYOBRequest(controller, view) {
7912 _classCallCheck(this, ReadableStreamBYOBRequest);
7913
7914 this._associatedReadableByteStreamController = controller;
7915 this._view = view;
7916 }
7917
7918 _createClass(ReadableStreamBYOBRequest, [{
7919 key: 'respond',
7920 value: function respond(bytesWritten) {
7921 if (IsReadableStreamBYOBRequest(this) === false) {
7922 throw byobRequestBrandCheckException('respond');
7923 }
7924
7925 if (this._associatedReadableByteStreamController === undefined) {
7926 throw new TypeError('This BYOB request has been invalidated');
7927 }
7928
7929 ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);
7930 }
7931 }, {
7932 key: 'respondWithNewView',
7933 value: function respondWithNewView(view) {
7934 if (IsReadableStreamBYOBRequest(this) === false) {
7935 throw byobRequestBrandCheckException('respond');
7936 }
7937
7938 if (this._associatedReadableByteStreamController === undefined) {
7939 throw new TypeError('This BYOB request has been invalidated');
7940 }
7941
7942 if (!ArrayBuffer.isView(view)) {
7943 throw new TypeError('You can only respond with array buffer views');
7944 }
7945
7946 ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);
7947 }
7948 }, {
7949 key: 'view',
7950 get: function get() {
7951 return this._view;
7952 }
7953 }]);
7954
7955 return ReadableStreamBYOBRequest;
7956 }();
7957
7958 var ReadableByteStreamController = function () {
7959 function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {
7960 _classCallCheck(this, ReadableByteStreamController);
7961
7962 if (IsReadableStream(stream) === false) {
7963 throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');
7964 }
7965
7966 if (stream._readableStreamController !== undefined) {
7967 throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');
7968 }
7969
7970 this._controlledReadableStream = stream;
7971 this._underlyingByteSource = underlyingByteSource;
7972 this._pullAgain = false;
7973 this._pulling = false;
7974 ReadableByteStreamControllerClearPendingPullIntos(this);
7975 this._queue = this._queueTotalSize = undefined;
7976 ResetQueue(this);
7977 this._closeRequested = false;
7978 this._started = false;
7979 this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);
7980 var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;
7981
7982 if (autoAllocateChunkSize !== undefined) {
7983 if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {
7984 throw new RangeError('autoAllocateChunkSize must be a positive integer');
7985 }
7986 }
7987
7988 this._autoAllocateChunkSize = autoAllocateChunkSize;
7989 this._pendingPullIntos = [];
7990 var controller = this;
7991 var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);
7992 Promise.resolve(startResult).then(function () {
7993 controller._started = true;
7994 assert(controller._pulling === false);
7995 assert(controller._pullAgain === false);
7996 ReadableByteStreamControllerCallPullIfNeeded(controller);
7997 }, function (r) {
7998 if (stream._state === 'readable') {
7999 ReadableByteStreamControllerError(controller, r);
8000 }
8001 }).catch(rethrowAssertionErrorRejection);
8002 }
8003
8004 _createClass(ReadableByteStreamController, [{
8005 key: 'close',
8006 value: function close() {
8007 if (IsReadableByteStreamController(this) === false) {
8008 throw byteStreamControllerBrandCheckException('close');
8009 }
8010
8011 if (this._closeRequested === true) {
8012 throw new TypeError('The stream has already been closed; do not close it again!');
8013 }
8014
8015 var state = this._controlledReadableStream._state;
8016
8017 if (state !== 'readable') {
8018 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');
8019 }
8020
8021 ReadableByteStreamControllerClose(this);
8022 }
8023 }, {
8024 key: 'enqueue',
8025 value: function enqueue(chunk) {
8026 if (IsReadableByteStreamController(this) === false) {
8027 throw byteStreamControllerBrandCheckException('enqueue');
8028 }
8029
8030 if (this._closeRequested === true) {
8031 throw new TypeError('stream is closed or draining');
8032 }
8033
8034 var state = this._controlledReadableStream._state;
8035
8036 if (state !== 'readable') {
8037 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');
8038 }
8039
8040 if (!ArrayBuffer.isView(chunk)) {
8041 throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');
8042 }
8043
8044 ReadableByteStreamControllerEnqueue(this, chunk);
8045 }
8046 }, {
8047 key: 'error',
8048 value: function error(e) {
8049 if (IsReadableByteStreamController(this) === false) {
8050 throw byteStreamControllerBrandCheckException('error');
8051 }
8052
8053 var stream = this._controlledReadableStream;
8054
8055 if (stream._state !== 'readable') {
8056 throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');
8057 }
8058
8059 ReadableByteStreamControllerError(this, e);
8060 }
8061 }, {
8062 key: '__cancelSteps',
8063 value: function __cancelSteps(reason) {
8064 if (this._pendingPullIntos.length > 0) {
8065 var firstDescriptor = this._pendingPullIntos[0];
8066 firstDescriptor.bytesFilled = 0;
8067 }
8068
8069 ResetQueue(this);
8070 return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);
8071 }
8072 }, {
8073 key: '__pullSteps',
8074 value: function __pullSteps() {
8075 var stream = this._controlledReadableStream;
8076 assert(ReadableStreamHasDefaultReader(stream) === true);
8077
8078 if (this._queueTotalSize > 0) {
8079 assert(ReadableStreamGetNumReadRequests(stream) === 0);
8080
8081 var entry = this._queue.shift();
8082
8083 this._queueTotalSize -= entry.byteLength;
8084 ReadableByteStreamControllerHandleQueueDrain(this);
8085 var view = void 0;
8086
8087 try {
8088 view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);
8089 } catch (viewE) {
8090 return Promise.reject(viewE);
8091 }
8092
8093 return Promise.resolve(CreateIterResultObject(view, false));
8094 }
8095
8096 var autoAllocateChunkSize = this._autoAllocateChunkSize;
8097
8098 if (autoAllocateChunkSize !== undefined) {
8099 var buffer = void 0;
8100
8101 try {
8102 buffer = new ArrayBuffer(autoAllocateChunkSize);
8103 } catch (bufferE) {
8104 return Promise.reject(bufferE);
8105 }
8106
8107 var pullIntoDescriptor = {
8108 buffer: buffer,
8109 byteOffset: 0,
8110 byteLength: autoAllocateChunkSize,
8111 bytesFilled: 0,
8112 elementSize: 1,
8113 ctor: Uint8Array,
8114 readerType: 'default'
8115 };
8116
8117 this._pendingPullIntos.push(pullIntoDescriptor);
8118 }
8119
8120 var promise = ReadableStreamAddReadRequest(stream);
8121 ReadableByteStreamControllerCallPullIfNeeded(this);
8122 return promise;
8123 }
8124 }, {
8125 key: 'byobRequest',
8126 get: function get() {
8127 if (IsReadableByteStreamController(this) === false) {
8128 throw byteStreamControllerBrandCheckException('byobRequest');
8129 }
8130
8131 if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {
8132 var firstDescriptor = this._pendingPullIntos[0];
8133 var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);
8134 this._byobRequest = new ReadableStreamBYOBRequest(this, view);
8135 }
8136
8137 return this._byobRequest;
8138 }
8139 }, {
8140 key: 'desiredSize',
8141 get: function get() {
8142 if (IsReadableByteStreamController(this) === false) {
8143 throw byteStreamControllerBrandCheckException('desiredSize');
8144 }
8145
8146 return ReadableByteStreamControllerGetDesiredSize(this);
8147 }
8148 }]);
8149
8150 return ReadableByteStreamController;
8151 }();
8152
8153 function IsReadableByteStreamController(x) {
8154 if (!typeIsObject(x)) {
8155 return false;
8156 }
8157
8158 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {
8159 return false;
8160 }
8161
8162 return true;
8163 }
8164
8165 function IsReadableStreamBYOBRequest(x) {
8166 if (!typeIsObject(x)) {
8167 return false;
8168 }
8169
8170 if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {
8171 return false;
8172 }
8173
8174 return true;
8175 }
8176
8177 function ReadableByteStreamControllerCallPullIfNeeded(controller) {
8178 var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);
8179
8180 if (shouldPull === false) {
8181 return undefined;
8182 }
8183
8184 if (controller._pulling === true) {
8185 controller._pullAgain = true;
8186 return undefined;
8187 }
8188
8189 assert(controller._pullAgain === false);
8190 controller._pulling = true;
8191 var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);
8192 pullPromise.then(function () {
8193 controller._pulling = false;
8194
8195 if (controller._pullAgain === true) {
8196 controller._pullAgain = false;
8197 ReadableByteStreamControllerCallPullIfNeeded(controller);
8198 }
8199 }, function (e) {
8200 if (controller._controlledReadableStream._state === 'readable') {
8201 ReadableByteStreamControllerError(controller, e);
8202 }
8203 }).catch(rethrowAssertionErrorRejection);
8204 return undefined;
8205 }
8206
8207 function ReadableByteStreamControllerClearPendingPullIntos(controller) {
8208 ReadableByteStreamControllerInvalidateBYOBRequest(controller);
8209 controller._pendingPullIntos = [];
8210 }
8211
8212 function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {
8213 assert(stream._state !== 'errored', 'state must not be errored');
8214 var done = false;
8215
8216 if (stream._state === 'closed') {
8217 assert(pullIntoDescriptor.bytesFilled === 0);
8218 done = true;
8219 }
8220
8221 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
8222
8223 if (pullIntoDescriptor.readerType === 'default') {
8224 ReadableStreamFulfillReadRequest(stream, filledView, done);
8225 } else {
8226 assert(pullIntoDescriptor.readerType === 'byob');
8227 ReadableStreamFulfillReadIntoRequest(stream, filledView, done);
8228 }
8229 }
8230
8231 function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {
8232 var bytesFilled = pullIntoDescriptor.bytesFilled;
8233 var elementSize = pullIntoDescriptor.elementSize;
8234 assert(bytesFilled <= pullIntoDescriptor.byteLength);
8235 assert(bytesFilled % elementSize === 0);
8236 return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);
8237 }
8238
8239 function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {
8240 controller._queue.push({
8241 buffer: buffer,
8242 byteOffset: byteOffset,
8243 byteLength: byteLength
8244 });
8245
8246 controller._queueTotalSize += byteLength;
8247 }
8248
8249 function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {
8250 var elementSize = pullIntoDescriptor.elementSize;
8251 var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;
8252 var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);
8253 var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;
8254 var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;
8255 var totalBytesToCopyRemaining = maxBytesToCopy;
8256 var ready = false;
8257
8258 if (maxAlignedBytes > currentAlignedBytes) {
8259 totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;
8260 ready = true;
8261 }
8262
8263 var queue = controller._queue;
8264
8265 while (totalBytesToCopyRemaining > 0) {
8266 var headOfQueue = queue[0];
8267 var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);
8268 var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
8269 ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);
8270
8271 if (headOfQueue.byteLength === bytesToCopy) {
8272 queue.shift();
8273 } else {
8274 headOfQueue.byteOffset += bytesToCopy;
8275 headOfQueue.byteLength -= bytesToCopy;
8276 }
8277
8278 controller._queueTotalSize -= bytesToCopy;
8279 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);
8280 totalBytesToCopyRemaining -= bytesToCopy;
8281 }
8282
8283 if (ready === false) {
8284 assert(controller._queueTotalSize === 0, 'queue must be empty');
8285 assert(pullIntoDescriptor.bytesFilled > 0);
8286 assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);
8287 }
8288
8289 return ready;
8290 }
8291
8292 function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {
8293 assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);
8294 ReadableByteStreamControllerInvalidateBYOBRequest(controller);
8295 pullIntoDescriptor.bytesFilled += size;
8296 }
8297
8298 function ReadableByteStreamControllerHandleQueueDrain(controller) {
8299 assert(controller._controlledReadableStream._state === 'readable');
8300
8301 if (controller._queueTotalSize === 0 && controller._closeRequested === true) {
8302 ReadableStreamClose(controller._controlledReadableStream);
8303 } else {
8304 ReadableByteStreamControllerCallPullIfNeeded(controller);
8305 }
8306 }
8307
8308 function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {
8309 if (controller._byobRequest === undefined) {
8310 return;
8311 }
8312
8313 controller._byobRequest._associatedReadableByteStreamController = undefined;
8314 controller._byobRequest._view = undefined;
8315 controller._byobRequest = undefined;
8316 }
8317
8318 function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {
8319 assert(controller._closeRequested === false);
8320
8321 while (controller._pendingPullIntos.length > 0) {
8322 if (controller._queueTotalSize === 0) {
8323 return;
8324 }
8325
8326 var pullIntoDescriptor = controller._pendingPullIntos[0];
8327
8328 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
8329 ReadableByteStreamControllerShiftPendingPullInto(controller);
8330 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);
8331 }
8332 }
8333 }
8334
8335 function ReadableByteStreamControllerPullInto(controller, view) {
8336 var stream = controller._controlledReadableStream;
8337 var elementSize = 1;
8338
8339 if (view.constructor !== DataView) {
8340 elementSize = view.constructor.BYTES_PER_ELEMENT;
8341 }
8342
8343 var ctor = view.constructor;
8344 var pullIntoDescriptor = {
8345 buffer: view.buffer,
8346 byteOffset: view.byteOffset,
8347 byteLength: view.byteLength,
8348 bytesFilled: 0,
8349 elementSize: elementSize,
8350 ctor: ctor,
8351 readerType: 'byob'
8352 };
8353
8354 if (controller._pendingPullIntos.length > 0) {
8355 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
8356
8357 controller._pendingPullIntos.push(pullIntoDescriptor);
8358
8359 return ReadableStreamAddReadIntoRequest(stream);
8360 }
8361
8362 if (stream._state === 'closed') {
8363 var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);
8364 return Promise.resolve(CreateIterResultObject(emptyView, true));
8365 }
8366
8367 if (controller._queueTotalSize > 0) {
8368 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
8369 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
8370 ReadableByteStreamControllerHandleQueueDrain(controller);
8371 return Promise.resolve(CreateIterResultObject(filledView, false));
8372 }
8373
8374 if (controller._closeRequested === true) {
8375 var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
8376 ReadableByteStreamControllerError(controller, e);
8377 return Promise.reject(e);
8378 }
8379 }
8380
8381 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
8382
8383 controller._pendingPullIntos.push(pullIntoDescriptor);
8384
8385 var promise = ReadableStreamAddReadIntoRequest(stream);
8386 ReadableByteStreamControllerCallPullIfNeeded(controller);
8387 return promise;
8388 }
8389
8390 function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {
8391 firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);
8392 assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');
8393 var stream = controller._controlledReadableStream;
8394
8395 if (ReadableStreamHasBYOBReader(stream) === true) {
8396 while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {
8397 var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);
8398 ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);
8399 }
8400 }
8401 }
8402
8403 function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {
8404 if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {
8405 throw new RangeError('bytesWritten out of range');
8406 }
8407
8408 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);
8409
8410 if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {
8411 return;
8412 }
8413
8414 ReadableByteStreamControllerShiftPendingPullInto(controller);
8415 var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;
8416
8417 if (remainderSize > 0) {
8418 var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
8419 var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);
8420 ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);
8421 }
8422
8423 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
8424 pullIntoDescriptor.bytesFilled -= remainderSize;
8425 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);
8426 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
8427 }
8428
8429 function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {
8430 var firstDescriptor = controller._pendingPullIntos[0];
8431 var stream = controller._controlledReadableStream;
8432
8433 if (stream._state === 'closed') {
8434 if (bytesWritten !== 0) {
8435 throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');
8436 }
8437
8438 ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);
8439 } else {
8440 assert(stream._state === 'readable');
8441 ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);
8442 }
8443 }
8444
8445 function ReadableByteStreamControllerShiftPendingPullInto(controller) {
8446 var descriptor = controller._pendingPullIntos.shift();
8447
8448 ReadableByteStreamControllerInvalidateBYOBRequest(controller);
8449 return descriptor;
8450 }
8451
8452 function ReadableByteStreamControllerShouldCallPull(controller) {
8453 var stream = controller._controlledReadableStream;
8454
8455 if (stream._state !== 'readable') {
8456 return false;
8457 }
8458
8459 if (controller._closeRequested === true) {
8460 return false;
8461 }
8462
8463 if (controller._started === false) {
8464 return false;
8465 }
8466
8467 if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
8468 return true;
8469 }
8470
8471 if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {
8472 return true;
8473 }
8474
8475 if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {
8476 return true;
8477 }
8478
8479 return false;
8480 }
8481
8482 function ReadableByteStreamControllerClose(controller) {
8483 var stream = controller._controlledReadableStream;
8484 assert(controller._closeRequested === false);
8485 assert(stream._state === 'readable');
8486
8487 if (controller._queueTotalSize > 0) {
8488 controller._closeRequested = true;
8489 return;
8490 }
8491
8492 if (controller._pendingPullIntos.length > 0) {
8493 var firstPendingPullInto = controller._pendingPullIntos[0];
8494
8495 if (firstPendingPullInto.bytesFilled > 0) {
8496 var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
8497 ReadableByteStreamControllerError(controller, e);
8498 throw e;
8499 }
8500 }
8501
8502 ReadableStreamClose(stream);
8503 }
8504
8505 function ReadableByteStreamControllerEnqueue(controller, chunk) {
8506 var stream = controller._controlledReadableStream;
8507 assert(controller._closeRequested === false);
8508 assert(stream._state === 'readable');
8509 var buffer = chunk.buffer;
8510 var byteOffset = chunk.byteOffset;
8511 var byteLength = chunk.byteLength;
8512 var transferredBuffer = TransferArrayBuffer(buffer);
8513
8514 if (ReadableStreamHasDefaultReader(stream) === true) {
8515 if (ReadableStreamGetNumReadRequests(stream) === 0) {
8516 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
8517 } else {
8518 assert(controller._queue.length === 0);
8519 var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);
8520 ReadableStreamFulfillReadRequest(stream, transferredView, false);
8521 }
8522 } else if (ReadableStreamHasBYOBReader(stream) === true) {
8523 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
8524 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
8525 } else {
8526 assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');
8527 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
8528 }
8529 }
8530
8531 function ReadableByteStreamControllerError(controller, e) {
8532 var stream = controller._controlledReadableStream;
8533 assert(stream._state === 'readable');
8534 ReadableByteStreamControllerClearPendingPullIntos(controller);
8535 ResetQueue(controller);
8536 ReadableStreamError(stream, e);
8537 }
8538
8539 function ReadableByteStreamControllerGetDesiredSize(controller) {
8540 var stream = controller._controlledReadableStream;
8541 var state = stream._state;
8542
8543 if (state === 'errored') {
8544 return null;
8545 }
8546
8547 if (state === 'closed') {
8548 return 0;
8549 }
8550
8551 return controller._strategyHWM - controller._queueTotalSize;
8552 }
8553
8554 function ReadableByteStreamControllerRespond(controller, bytesWritten) {
8555 bytesWritten = Number(bytesWritten);
8556
8557 if (IsFiniteNonNegativeNumber(bytesWritten) === false) {
8558 throw new RangeError('bytesWritten must be a finite');
8559 }
8560
8561 assert(controller._pendingPullIntos.length > 0);
8562 ReadableByteStreamControllerRespondInternal(controller, bytesWritten);
8563 }
8564
8565 function ReadableByteStreamControllerRespondWithNewView(controller, view) {
8566 assert(controller._pendingPullIntos.length > 0);
8567 var firstDescriptor = controller._pendingPullIntos[0];
8568
8569 if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {
8570 throw new RangeError('The region specified by view does not match byobRequest');
8571 }
8572
8573 if (firstDescriptor.byteLength !== view.byteLength) {
8574 throw new RangeError('The buffer of view has different capacity than byobRequest');
8575 }
8576
8577 firstDescriptor.buffer = view.buffer;
8578 ReadableByteStreamControllerRespondInternal(controller, view.byteLength);
8579 }
8580
8581 function streamBrandCheckException(name) {
8582 return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');
8583 }
8584
8585 function readerLockException(name) {
8586 return new TypeError('Cannot ' + name + ' a stream using a released reader');
8587 }
8588
8589 function defaultReaderBrandCheckException(name) {
8590 return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');
8591 }
8592
8593 function defaultReaderClosedPromiseInitialize(reader) {
8594 reader._closedPromise = new Promise(function (resolve, reject) {
8595 reader._closedPromise_resolve = resolve;
8596 reader._closedPromise_reject = reject;
8597 });
8598 }
8599
8600 function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {
8601 reader._closedPromise = Promise.reject(reason);
8602 reader._closedPromise_resolve = undefined;
8603 reader._closedPromise_reject = undefined;
8604 }
8605
8606 function defaultReaderClosedPromiseInitializeAsResolved(reader) {
8607 reader._closedPromise = Promise.resolve(undefined);
8608 reader._closedPromise_resolve = undefined;
8609 reader._closedPromise_reject = undefined;
8610 }
8611
8612 function defaultReaderClosedPromiseReject(reader, reason) {
8613 assert(reader._closedPromise_resolve !== undefined);
8614 assert(reader._closedPromise_reject !== undefined);
8615
8616 reader._closedPromise_reject(reason);
8617
8618 reader._closedPromise_resolve = undefined;
8619 reader._closedPromise_reject = undefined;
8620 }
8621
8622 function defaultReaderClosedPromiseResetToRejected(reader, reason) {
8623 assert(reader._closedPromise_resolve === undefined);
8624 assert(reader._closedPromise_reject === undefined);
8625 reader._closedPromise = Promise.reject(reason);
8626 }
8627
8628 function defaultReaderClosedPromiseResolve(reader) {
8629 assert(reader._closedPromise_resolve !== undefined);
8630 assert(reader._closedPromise_reject !== undefined);
8631
8632 reader._closedPromise_resolve(undefined);
8633
8634 reader._closedPromise_resolve = undefined;
8635 reader._closedPromise_reject = undefined;
8636 }
8637
8638 function byobReaderBrandCheckException(name) {
8639 return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');
8640 }
8641
8642 function defaultControllerBrandCheckException(name) {
8643 return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');
8644 }
8645
8646 function byobRequestBrandCheckException(name) {
8647 return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');
8648 }
8649
8650 function byteStreamControllerBrandCheckException(name) {
8651 return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');
8652 }
8653
8654 function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {
8655 try {
8656 Promise.prototype.then.call(promise, undefined, function () {});
8657 } catch (e) {}
8658 }
8659}, function (module, exports, __w_pdfjs_require__) {
8660 "use strict";
8661
8662 var transformStream = __w_pdfjs_require__(6);
8663
8664 var readableStream = __w_pdfjs_require__(4);
8665
8666 var writableStream = __w_pdfjs_require__(2);
8667
8668 exports.TransformStream = transformStream.TransformStream;
8669 exports.ReadableStream = readableStream.ReadableStream;
8670 exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;
8671 exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;
8672 exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;
8673 exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;
8674 exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;
8675 exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;
8676 exports.IsWritableStream = writableStream.IsWritableStream;
8677 exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;
8678 exports.WritableStream = writableStream.WritableStream;
8679 exports.WritableStreamAbort = writableStream.WritableStreamAbort;
8680 exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;
8681 exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;
8682 exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;
8683 exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;
8684}, function (module, exports, __w_pdfjs_require__) {
8685 "use strict";
8686
8687 var _createClass = function () {
8688 function defineProperties(target, props) {
8689 for (var i = 0; i < props.length; i++) {
8690 var descriptor = props[i];
8691 descriptor.enumerable = descriptor.enumerable || false;
8692 descriptor.configurable = true;
8693 if ("value" in descriptor) descriptor.writable = true;
8694 Object.defineProperty(target, descriptor.key, descriptor);
8695 }
8696 }
8697
8698 return function (Constructor, protoProps, staticProps) {
8699 if (protoProps) defineProperties(Constructor.prototype, protoProps);
8700 if (staticProps) defineProperties(Constructor, staticProps);
8701 return Constructor;
8702 };
8703 }();
8704
8705 function _classCallCheck(instance, Constructor) {
8706 if (!(instance instanceof Constructor)) {
8707 throw new TypeError("Cannot call a class as a function");
8708 }
8709 }
8710
8711 var _require = __w_pdfjs_require__(1),
8712 assert = _require.assert;
8713
8714 var _require2 = __w_pdfjs_require__(0),
8715 InvokeOrNoop = _require2.InvokeOrNoop,
8716 PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,
8717 PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,
8718 typeIsObject = _require2.typeIsObject;
8719
8720 var _require3 = __w_pdfjs_require__(4),
8721 ReadableStream = _require3.ReadableStream,
8722 ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,
8723 ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,
8724 ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,
8725 ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;
8726
8727 var _require4 = __w_pdfjs_require__(2),
8728 WritableStream = _require4.WritableStream,
8729 WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;
8730
8731 function TransformStreamCloseReadable(transformStream) {
8732 if (transformStream._errored === true) {
8733 throw new TypeError('TransformStream is already errored');
8734 }
8735
8736 if (transformStream._readableClosed === true) {
8737 throw new TypeError('Readable side is already closed');
8738 }
8739
8740 TransformStreamCloseReadableInternal(transformStream);
8741 }
8742
8743 function TransformStreamEnqueueToReadable(transformStream, chunk) {
8744 if (transformStream._errored === true) {
8745 throw new TypeError('TransformStream is already errored');
8746 }
8747
8748 if (transformStream._readableClosed === true) {
8749 throw new TypeError('Readable side is already closed');
8750 }
8751
8752 var controller = transformStream._readableController;
8753
8754 try {
8755 ReadableStreamDefaultControllerEnqueue(controller, chunk);
8756 } catch (e) {
8757 transformStream._readableClosed = true;
8758 TransformStreamErrorIfNeeded(transformStream, e);
8759 throw transformStream._storedError;
8760 }
8761
8762 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
8763 var maybeBackpressure = desiredSize <= 0;
8764
8765 if (maybeBackpressure === true && transformStream._backpressure === false) {
8766 TransformStreamSetBackpressure(transformStream, true);
8767 }
8768 }
8769
8770 function TransformStreamError(transformStream, e) {
8771 if (transformStream._errored === true) {
8772 throw new TypeError('TransformStream is already errored');
8773 }
8774
8775 TransformStreamErrorInternal(transformStream, e);
8776 }
8777
8778 function TransformStreamCloseReadableInternal(transformStream) {
8779 assert(transformStream._errored === false);
8780 assert(transformStream._readableClosed === false);
8781
8782 try {
8783 ReadableStreamDefaultControllerClose(transformStream._readableController);
8784 } catch (e) {
8785 assert(false);
8786 }
8787
8788 transformStream._readableClosed = true;
8789 }
8790
8791 function TransformStreamErrorIfNeeded(transformStream, e) {
8792 if (transformStream._errored === false) {
8793 TransformStreamErrorInternal(transformStream, e);
8794 }
8795 }
8796
8797 function TransformStreamErrorInternal(transformStream, e) {
8798 assert(transformStream._errored === false);
8799 transformStream._errored = true;
8800 transformStream._storedError = e;
8801
8802 if (transformStream._writableDone === false) {
8803 WritableStreamDefaultControllerError(transformStream._writableController, e);
8804 }
8805
8806 if (transformStream._readableClosed === false) {
8807 ReadableStreamDefaultControllerError(transformStream._readableController, e);
8808 }
8809 }
8810
8811 function TransformStreamReadableReadyPromise(transformStream) {
8812 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
8813
8814 if (transformStream._backpressure === false) {
8815 return Promise.resolve();
8816 }
8817
8818 assert(transformStream._backpressure === true, '_backpressure should have been initialized');
8819 return transformStream._backpressureChangePromise;
8820 }
8821
8822 function TransformStreamSetBackpressure(transformStream, backpressure) {
8823 assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');
8824
8825 if (transformStream._backpressureChangePromise !== undefined) {
8826 transformStream._backpressureChangePromise_resolve(backpressure);
8827 }
8828
8829 transformStream._backpressureChangePromise = new Promise(function (resolve) {
8830 transformStream._backpressureChangePromise_resolve = resolve;
8831 });
8832
8833 transformStream._backpressureChangePromise.then(function (resolution) {
8834 assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');
8835 });
8836
8837 transformStream._backpressure = backpressure;
8838 }
8839
8840 function TransformStreamDefaultTransform(chunk, transformStreamController) {
8841 var transformStream = transformStreamController._controlledTransformStream;
8842 TransformStreamEnqueueToReadable(transformStream, chunk);
8843 return Promise.resolve();
8844 }
8845
8846 function TransformStreamTransform(transformStream, chunk) {
8847 assert(transformStream._errored === false);
8848 assert(transformStream._transforming === false);
8849 assert(transformStream._backpressure === false);
8850 transformStream._transforming = true;
8851 var transformer = transformStream._transformer;
8852 var controller = transformStream._transformStreamController;
8853 var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);
8854 return transformPromise.then(function () {
8855 transformStream._transforming = false;
8856 return TransformStreamReadableReadyPromise(transformStream);
8857 }, function (e) {
8858 TransformStreamErrorIfNeeded(transformStream, e);
8859 return Promise.reject(e);
8860 });
8861 }
8862
8863 function IsTransformStreamDefaultController(x) {
8864 if (!typeIsObject(x)) {
8865 return false;
8866 }
8867
8868 if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {
8869 return false;
8870 }
8871
8872 return true;
8873 }
8874
8875 function IsTransformStream(x) {
8876 if (!typeIsObject(x)) {
8877 return false;
8878 }
8879
8880 if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {
8881 return false;
8882 }
8883
8884 return true;
8885 }
8886
8887 var TransformStreamSink = function () {
8888 function TransformStreamSink(transformStream, startPromise) {
8889 _classCallCheck(this, TransformStreamSink);
8890
8891 this._transformStream = transformStream;
8892 this._startPromise = startPromise;
8893 }
8894
8895 _createClass(TransformStreamSink, [{
8896 key: 'start',
8897 value: function start(c) {
8898 var transformStream = this._transformStream;
8899 transformStream._writableController = c;
8900 return this._startPromise.then(function () {
8901 return TransformStreamReadableReadyPromise(transformStream);
8902 });
8903 }
8904 }, {
8905 key: 'write',
8906 value: function write(chunk) {
8907 var transformStream = this._transformStream;
8908 return TransformStreamTransform(transformStream, chunk);
8909 }
8910 }, {
8911 key: 'abort',
8912 value: function abort() {
8913 var transformStream = this._transformStream;
8914 transformStream._writableDone = true;
8915 TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));
8916 }
8917 }, {
8918 key: 'close',
8919 value: function close() {
8920 var transformStream = this._transformStream;
8921 assert(transformStream._transforming === false);
8922 transformStream._writableDone = true;
8923 var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);
8924 return flushPromise.then(function () {
8925 if (transformStream._errored === true) {
8926 return Promise.reject(transformStream._storedError);
8927 }
8928
8929 if (transformStream._readableClosed === false) {
8930 TransformStreamCloseReadableInternal(transformStream);
8931 }
8932
8933 return Promise.resolve();
8934 }).catch(function (r) {
8935 TransformStreamErrorIfNeeded(transformStream, r);
8936 return Promise.reject(transformStream._storedError);
8937 });
8938 }
8939 }]);
8940
8941 return TransformStreamSink;
8942 }();
8943
8944 var TransformStreamSource = function () {
8945 function TransformStreamSource(transformStream, startPromise) {
8946 _classCallCheck(this, TransformStreamSource);
8947
8948 this._transformStream = transformStream;
8949 this._startPromise = startPromise;
8950 }
8951
8952 _createClass(TransformStreamSource, [{
8953 key: 'start',
8954 value: function start(c) {
8955 var transformStream = this._transformStream;
8956 transformStream._readableController = c;
8957 return this._startPromise.then(function () {
8958 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
8959
8960 if (transformStream._backpressure === true) {
8961 return Promise.resolve();
8962 }
8963
8964 assert(transformStream._backpressure === false, '_backpressure should have been initialized');
8965 return transformStream._backpressureChangePromise;
8966 });
8967 }
8968 }, {
8969 key: 'pull',
8970 value: function pull() {
8971 var transformStream = this._transformStream;
8972 assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');
8973 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
8974 TransformStreamSetBackpressure(transformStream, false);
8975 return transformStream._backpressureChangePromise;
8976 }
8977 }, {
8978 key: 'cancel',
8979 value: function cancel() {
8980 var transformStream = this._transformStream;
8981 transformStream._readableClosed = true;
8982 TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));
8983 }
8984 }]);
8985
8986 return TransformStreamSource;
8987 }();
8988
8989 var TransformStreamDefaultController = function () {
8990 function TransformStreamDefaultController(transformStream) {
8991 _classCallCheck(this, TransformStreamDefaultController);
8992
8993 if (IsTransformStream(transformStream) === false) {
8994 throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');
8995 }
8996
8997 if (transformStream._transformStreamController !== undefined) {
8998 throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');
8999 }
9000
9001 this._controlledTransformStream = transformStream;
9002 }
9003
9004 _createClass(TransformStreamDefaultController, [{
9005 key: 'enqueue',
9006 value: function enqueue(chunk) {
9007 if (IsTransformStreamDefaultController(this) === false) {
9008 throw defaultControllerBrandCheckException('enqueue');
9009 }
9010
9011 TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);
9012 }
9013 }, {
9014 key: 'close',
9015 value: function close() {
9016 if (IsTransformStreamDefaultController(this) === false) {
9017 throw defaultControllerBrandCheckException('close');
9018 }
9019
9020 TransformStreamCloseReadable(this._controlledTransformStream);
9021 }
9022 }, {
9023 key: 'error',
9024 value: function error(reason) {
9025 if (IsTransformStreamDefaultController(this) === false) {
9026 throw defaultControllerBrandCheckException('error');
9027 }
9028
9029 TransformStreamError(this._controlledTransformStream, reason);
9030 }
9031 }, {
9032 key: 'desiredSize',
9033 get: function get() {
9034 if (IsTransformStreamDefaultController(this) === false) {
9035 throw defaultControllerBrandCheckException('desiredSize');
9036 }
9037
9038 var transformStream = this._controlledTransformStream;
9039 var readableController = transformStream._readableController;
9040 return ReadableStreamDefaultControllerGetDesiredSize(readableController);
9041 }
9042 }]);
9043
9044 return TransformStreamDefaultController;
9045 }();
9046
9047 var TransformStream = function () {
9048 function TransformStream() {
9049 var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9050
9051 _classCallCheck(this, TransformStream);
9052
9053 this._transformer = transformer;
9054 var readableStrategy = transformer.readableStrategy,
9055 writableStrategy = transformer.writableStrategy;
9056 this._transforming = false;
9057 this._errored = false;
9058 this._storedError = undefined;
9059 this._writableController = undefined;
9060 this._readableController = undefined;
9061 this._transformStreamController = undefined;
9062 this._writableDone = false;
9063 this._readableClosed = false;
9064 this._backpressure = undefined;
9065 this._backpressureChangePromise = undefined;
9066 this._backpressureChangePromise_resolve = undefined;
9067 this._transformStreamController = new TransformStreamDefaultController(this);
9068 var startPromise_resolve = void 0;
9069 var startPromise = new Promise(function (resolve) {
9070 startPromise_resolve = resolve;
9071 });
9072 var source = new TransformStreamSource(this, startPromise);
9073 this._readable = new ReadableStream(source, readableStrategy);
9074 var sink = new TransformStreamSink(this, startPromise);
9075 this._writable = new WritableStream(sink, writableStrategy);
9076 assert(this._writableController !== undefined);
9077 assert(this._readableController !== undefined);
9078 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);
9079 TransformStreamSetBackpressure(this, desiredSize <= 0);
9080 var transformStream = this;
9081 var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);
9082 startPromise_resolve(startResult);
9083 startPromise.catch(function (e) {
9084 if (transformStream._errored === false) {
9085 transformStream._errored = true;
9086 transformStream._storedError = e;
9087 }
9088 });
9089 }
9090
9091 _createClass(TransformStream, [{
9092 key: 'readable',
9093 get: function get() {
9094 if (IsTransformStream(this) === false) {
9095 throw streamBrandCheckException('readable');
9096 }
9097
9098 return this._readable;
9099 }
9100 }, {
9101 key: 'writable',
9102 get: function get() {
9103 if (IsTransformStream(this) === false) {
9104 throw streamBrandCheckException('writable');
9105 }
9106
9107 return this._writable;
9108 }
9109 }]);
9110
9111 return TransformStream;
9112 }();
9113
9114 module.exports = {
9115 TransformStream: TransformStream
9116 };
9117
9118 function defaultControllerBrandCheckException(name) {
9119 return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');
9120 }
9121
9122 function streamBrandCheckException(name) {
9123 return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');
9124 }
9125}, function (module, exports, __w_pdfjs_require__) {
9126 module.exports = __w_pdfjs_require__(5);
9127}]));
9128
9129/***/ }),
9130/* 144 */
9131/***/ (function(module, exports, __w_pdfjs_require__) {
9132
9133"use strict";
9134
9135
9136function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
9137
9138{
9139 var isURLSupported = false;
9140
9141 try {
9142 if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {
9143 var u = new URL('b', 'http://a');
9144 u.pathname = 'c%20d';
9145 isURLSupported = u.href === 'http://a/c%20d';
9146 }
9147 } catch (ex) {}
9148
9149 if (isURLSupported) {
9150 exports.URL = URL;
9151 } else {
9152 var PolyfillURL = __w_pdfjs_require__(145).URL;
9153
9154 var OriginalURL = __w_pdfjs_require__(3).URL;
9155
9156 if (OriginalURL) {
9157 PolyfillURL.createObjectURL = function (blob) {
9158 return OriginalURL.createObjectURL.apply(OriginalURL, arguments);
9159 };
9160
9161 PolyfillURL.revokeObjectURL = function (url) {
9162 OriginalURL.revokeObjectURL(url);
9163 };
9164 }
9165
9166 exports.URL = PolyfillURL;
9167 }
9168}
9169
9170/***/ }),
9171/* 145 */
9172/***/ (function(module, exports, __w_pdfjs_require__) {
9173
9174"use strict";
9175
9176
9177(function URLConstructorClosure() {
9178 'use strict';
9179
9180 var relative = Object.create(null);
9181 relative['ftp'] = 21;
9182 relative['file'] = 0;
9183 relative['gopher'] = 70;
9184 relative['http'] = 80;
9185 relative['https'] = 443;
9186 relative['ws'] = 80;
9187 relative['wss'] = 443;
9188 var relativePathDotMapping = Object.create(null);
9189 relativePathDotMapping['%2e'] = '.';
9190 relativePathDotMapping['.%2e'] = '..';
9191 relativePathDotMapping['%2e.'] = '..';
9192 relativePathDotMapping['%2e%2e'] = '..';
9193
9194 function isRelativeScheme(scheme) {
9195 return relative[scheme] !== undefined;
9196 }
9197
9198 function invalid() {
9199 clear.call(this);
9200 this._isInvalid = true;
9201 }
9202
9203 function IDNAToASCII(h) {
9204 if (h === '') {
9205 invalid.call(this);
9206 }
9207
9208 return h.toLowerCase();
9209 }
9210
9211 function percentEscape(c) {
9212 var unicode = c.charCodeAt(0);
9213
9214 if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {
9215 return c;
9216 }
9217
9218 return encodeURIComponent(c);
9219 }
9220
9221 function percentEscapeQuery(c) {
9222 var unicode = c.charCodeAt(0);
9223
9224 if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {
9225 return c;
9226 }
9227
9228 return encodeURIComponent(c);
9229 }
9230
9231 var EOF,
9232 ALPHA = /[a-zA-Z]/,
9233 ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/;
9234
9235 function parse(input, stateOverride, base) {
9236 function err(message) {
9237 errors.push(message);
9238 }
9239
9240 var state = stateOverride || 'scheme start',
9241 cursor = 0,
9242 buffer = '',
9243 seenAt = false,
9244 seenBracket = false,
9245 errors = [];
9246
9247 loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {
9248 var c = input[cursor];
9249
9250 switch (state) {
9251 case 'scheme start':
9252 if (c && ALPHA.test(c)) {
9253 buffer += c.toLowerCase();
9254 state = 'scheme';
9255 } else if (!stateOverride) {
9256 buffer = '';
9257 state = 'no scheme';
9258 continue;
9259 } else {
9260 err('Invalid scheme.');
9261 break loop;
9262 }
9263
9264 break;
9265
9266 case 'scheme':
9267 if (c && ALPHANUMERIC.test(c)) {
9268 buffer += c.toLowerCase();
9269 } else if (c === ':') {
9270 this._scheme = buffer;
9271 buffer = '';
9272
9273 if (stateOverride) {
9274 break loop;
9275 }
9276
9277 if (isRelativeScheme(this._scheme)) {
9278 this._isRelative = true;
9279 }
9280
9281 if (this._scheme === 'file') {
9282 state = 'relative';
9283 } else if (this._isRelative && base && base._scheme === this._scheme) {
9284 state = 'relative or authority';
9285 } else if (this._isRelative) {
9286 state = 'authority first slash';
9287 } else {
9288 state = 'scheme data';
9289 }
9290 } else if (!stateOverride) {
9291 buffer = '';
9292 cursor = 0;
9293 state = 'no scheme';
9294 continue;
9295 } else if (c === EOF) {
9296 break loop;
9297 } else {
9298 err('Code point not allowed in scheme: ' + c);
9299 break loop;
9300 }
9301
9302 break;
9303
9304 case 'scheme data':
9305 if (c === '?') {
9306 this._query = '?';
9307 state = 'query';
9308 } else if (c === '#') {
9309 this._fragment = '#';
9310 state = 'fragment';
9311 } else {
9312 if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
9313 this._schemeData += percentEscape(c);
9314 }
9315 }
9316
9317 break;
9318
9319 case 'no scheme':
9320 if (!base || !isRelativeScheme(base._scheme)) {
9321 err('Missing scheme.');
9322 invalid.call(this);
9323 } else {
9324 state = 'relative';
9325 continue;
9326 }
9327
9328 break;
9329
9330 case 'relative or authority':
9331 if (c === '/' && input[cursor + 1] === '/') {
9332 state = 'authority ignore slashes';
9333 } else {
9334 err('Expected /, got: ' + c);
9335 state = 'relative';
9336 continue;
9337 }
9338
9339 break;
9340
9341 case 'relative':
9342 this._isRelative = true;
9343
9344 if (this._scheme !== 'file') {
9345 this._scheme = base._scheme;
9346 }
9347
9348 if (c === EOF) {
9349 this._host = base._host;
9350 this._port = base._port;
9351 this._path = base._path.slice();
9352 this._query = base._query;
9353 this._username = base._username;
9354 this._password = base._password;
9355 break loop;
9356 } else if (c === '/' || c === '\\') {
9357 if (c === '\\') {
9358 err('\\ is an invalid code point.');
9359 }
9360
9361 state = 'relative slash';
9362 } else if (c === '?') {
9363 this._host = base._host;
9364 this._port = base._port;
9365 this._path = base._path.slice();
9366 this._query = '?';
9367 this._username = base._username;
9368 this._password = base._password;
9369 state = 'query';
9370 } else if (c === '#') {
9371 this._host = base._host;
9372 this._port = base._port;
9373 this._path = base._path.slice();
9374 this._query = base._query;
9375 this._fragment = '#';
9376 this._username = base._username;
9377 this._password = base._password;
9378 state = 'fragment';
9379 } else {
9380 var nextC = input[cursor + 1];
9381 var nextNextC = input[cursor + 2];
9382
9383 if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\' && nextNextC !== '?' && nextNextC !== '#') {
9384 this._host = base._host;
9385 this._port = base._port;
9386 this._username = base._username;
9387 this._password = base._password;
9388 this._path = base._path.slice();
9389
9390 this._path.pop();
9391 }
9392
9393 state = 'relative path';
9394 continue;
9395 }
9396
9397 break;
9398
9399 case 'relative slash':
9400 if (c === '/' || c === '\\') {
9401 if (c === '\\') {
9402 err('\\ is an invalid code point.');
9403 }
9404
9405 if (this._scheme === 'file') {
9406 state = 'file host';
9407 } else {
9408 state = 'authority ignore slashes';
9409 }
9410 } else {
9411 if (this._scheme !== 'file') {
9412 this._host = base._host;
9413 this._port = base._port;
9414 this._username = base._username;
9415 this._password = base._password;
9416 }
9417
9418 state = 'relative path';
9419 continue;
9420 }
9421
9422 break;
9423
9424 case 'authority first slash':
9425 if (c === '/') {
9426 state = 'authority second slash';
9427 } else {
9428 err('Expected \'/\', got: ' + c);
9429 state = 'authority ignore slashes';
9430 continue;
9431 }
9432
9433 break;
9434
9435 case 'authority second slash':
9436 state = 'authority ignore slashes';
9437
9438 if (c !== '/') {
9439 err('Expected \'/\', got: ' + c);
9440 continue;
9441 }
9442
9443 break;
9444
9445 case 'authority ignore slashes':
9446 if (c !== '/' && c !== '\\') {
9447 state = 'authority';
9448 continue;
9449 } else {
9450 err('Expected authority, got: ' + c);
9451 }
9452
9453 break;
9454
9455 case 'authority':
9456 if (c === '@') {
9457 if (seenAt) {
9458 err('@ already seen.');
9459 buffer += '%40';
9460 }
9461
9462 seenAt = true;
9463
9464 for (var i = 0; i < buffer.length; i++) {
9465 var cp = buffer[i];
9466
9467 if (cp === '\t' || cp === '\n' || cp === '\r') {
9468 err('Invalid whitespace in authority.');
9469 continue;
9470 }
9471
9472 if (cp === ':' && this._password === null) {
9473 this._password = '';
9474 continue;
9475 }
9476
9477 var tempC = percentEscape(cp);
9478
9479 if (this._password !== null) {
9480 this._password += tempC;
9481 } else {
9482 this._username += tempC;
9483 }
9484 }
9485
9486 buffer = '';
9487 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
9488 cursor -= buffer.length;
9489 buffer = '';
9490 state = 'host';
9491 continue;
9492 } else {
9493 buffer += c;
9494 }
9495
9496 break;
9497
9498 case 'file host':
9499 if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
9500 if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) {
9501 state = 'relative path';
9502 } else if (buffer.length === 0) {
9503 state = 'relative path start';
9504 } else {
9505 this._host = IDNAToASCII.call(this, buffer);
9506 buffer = '';
9507 state = 'relative path start';
9508 }
9509
9510 continue;
9511 } else if (c === '\t' || c === '\n' || c === '\r') {
9512 err('Invalid whitespace in file host.');
9513 } else {
9514 buffer += c;
9515 }
9516
9517 break;
9518
9519 case 'host':
9520 case 'hostname':
9521 if (c === ':' && !seenBracket) {
9522 this._host = IDNAToASCII.call(this, buffer);
9523 buffer = '';
9524 state = 'port';
9525
9526 if (stateOverride === 'hostname') {
9527 break loop;
9528 }
9529 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
9530 this._host = IDNAToASCII.call(this, buffer);
9531 buffer = '';
9532 state = 'relative path start';
9533
9534 if (stateOverride) {
9535 break loop;
9536 }
9537
9538 continue;
9539 } else if (c !== '\t' && c !== '\n' && c !== '\r') {
9540 if (c === '[') {
9541 seenBracket = true;
9542 } else if (c === ']') {
9543 seenBracket = false;
9544 }
9545
9546 buffer += c;
9547 } else {
9548 err('Invalid code point in host/hostname: ' + c);
9549 }
9550
9551 break;
9552
9553 case 'port':
9554 if (/[0-9]/.test(c)) {
9555 buffer += c;
9556 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) {
9557 if (buffer !== '') {
9558 var temp = parseInt(buffer, 10);
9559
9560 if (temp !== relative[this._scheme]) {
9561 this._port = temp + '';
9562 }
9563
9564 buffer = '';
9565 }
9566
9567 if (stateOverride) {
9568 break loop;
9569 }
9570
9571 state = 'relative path start';
9572 continue;
9573 } else if (c === '\t' || c === '\n' || c === '\r') {
9574 err('Invalid code point in port: ' + c);
9575 } else {
9576 invalid.call(this);
9577 }
9578
9579 break;
9580
9581 case 'relative path start':
9582 if (c === '\\') {
9583 err('\'\\\' not allowed in path.');
9584 }
9585
9586 state = 'relative path';
9587
9588 if (c !== '/' && c !== '\\') {
9589 continue;
9590 }
9591
9592 break;
9593
9594 case 'relative path':
9595 if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) {
9596 if (c === '\\') {
9597 err('\\ not allowed in relative path.');
9598 }
9599
9600 var tmp;
9601
9602 if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {
9603 buffer = tmp;
9604 }
9605
9606 if (buffer === '..') {
9607 this._path.pop();
9608
9609 if (c !== '/' && c !== '\\') {
9610 this._path.push('');
9611 }
9612 } else if (buffer === '.' && c !== '/' && c !== '\\') {
9613 this._path.push('');
9614 } else if (buffer !== '.') {
9615 if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') {
9616 buffer = buffer[0] + ':';
9617 }
9618
9619 this._path.push(buffer);
9620 }
9621
9622 buffer = '';
9623
9624 if (c === '?') {
9625 this._query = '?';
9626 state = 'query';
9627 } else if (c === '#') {
9628 this._fragment = '#';
9629 state = 'fragment';
9630 }
9631 } else if (c !== '\t' && c !== '\n' && c !== '\r') {
9632 buffer += percentEscape(c);
9633 }
9634
9635 break;
9636
9637 case 'query':
9638 if (!stateOverride && c === '#') {
9639 this._fragment = '#';
9640 state = 'fragment';
9641 } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
9642 this._query += percentEscapeQuery(c);
9643 }
9644
9645 break;
9646
9647 case 'fragment':
9648 if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
9649 this._fragment += c;
9650 }
9651
9652 break;
9653 }
9654
9655 cursor++;
9656 }
9657 }
9658
9659 function clear() {
9660 this._scheme = '';
9661 this._schemeData = '';
9662 this._username = '';
9663 this._password = null;
9664 this._host = '';
9665 this._port = '';
9666 this._path = [];
9667 this._query = '';
9668 this._fragment = '';
9669 this._isInvalid = false;
9670 this._isRelative = false;
9671 }
9672
9673 function JURL(url, base) {
9674 if (base !== undefined && !(base instanceof JURL)) {
9675 base = new JURL(String(base));
9676 }
9677
9678 this._url = url;
9679 clear.call(this);
9680 var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, '');
9681 parse.call(this, input, null, base);
9682 }
9683
9684 JURL.prototype = {
9685 toString: function toString() {
9686 return this.href;
9687 },
9688
9689 get href() {
9690 if (this._isInvalid) {
9691 return this._url;
9692 }
9693
9694 var authority = '';
9695
9696 if (this._username !== '' || this._password !== null) {
9697 authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';
9698 }
9699
9700 return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;
9701 },
9702
9703 set href(value) {
9704 clear.call(this);
9705 parse.call(this, value);
9706 },
9707
9708 get protocol() {
9709 return this._scheme + ':';
9710 },
9711
9712 set protocol(value) {
9713 if (this._isInvalid) {
9714 return;
9715 }
9716
9717 parse.call(this, value + ':', 'scheme start');
9718 },
9719
9720 get host() {
9721 return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;
9722 },
9723
9724 set host(value) {
9725 if (this._isInvalid || !this._isRelative) {
9726 return;
9727 }
9728
9729 parse.call(this, value, 'host');
9730 },
9731
9732 get hostname() {
9733 return this._host;
9734 },
9735
9736 set hostname(value) {
9737 if (this._isInvalid || !this._isRelative) {
9738 return;
9739 }
9740
9741 parse.call(this, value, 'hostname');
9742 },
9743
9744 get port() {
9745 return this._port;
9746 },
9747
9748 set port(value) {
9749 if (this._isInvalid || !this._isRelative) {
9750 return;
9751 }
9752
9753 parse.call(this, value, 'port');
9754 },
9755
9756 get pathname() {
9757 return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;
9758 },
9759
9760 set pathname(value) {
9761 if (this._isInvalid || !this._isRelative) {
9762 return;
9763 }
9764
9765 this._path = [];
9766 parse.call(this, value, 'relative path start');
9767 },
9768
9769 get search() {
9770 return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;
9771 },
9772
9773 set search(value) {
9774 if (this._isInvalid || !this._isRelative) {
9775 return;
9776 }
9777
9778 this._query = '?';
9779
9780 if (value[0] === '?') {
9781 value = value.slice(1);
9782 }
9783
9784 parse.call(this, value, 'query');
9785 },
9786
9787 get hash() {
9788 return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;
9789 },
9790
9791 set hash(value) {
9792 if (this._isInvalid) {
9793 return;
9794 }
9795
9796 this._fragment = '#';
9797
9798 if (value[0] === '#') {
9799 value = value.slice(1);
9800 }
9801
9802 parse.call(this, value, 'fragment');
9803 },
9804
9805 get origin() {
9806 var host;
9807
9808 if (this._isInvalid || !this._scheme) {
9809 return '';
9810 }
9811
9812 switch (this._scheme) {
9813 case 'data':
9814 case 'file':
9815 case 'javascript':
9816 case 'mailto':
9817 return 'null';
9818
9819 case 'blob':
9820 try {
9821 return new JURL(this._schemeData).origin || 'null';
9822 } catch (_) {}
9823
9824 return 'null';
9825 }
9826
9827 host = this.host;
9828
9829 if (!host) {
9830 return '';
9831 }
9832
9833 return this._scheme + '://' + host;
9834 }
9835
9836 };
9837 exports.URL = JURL;
9838})();
9839
9840/***/ }),
9841/* 146 */
9842/***/ (function(module, exports, __w_pdfjs_require__) {
9843
9844"use strict";
9845
9846
9847Object.defineProperty(exports, "__esModule", {
9848 value: true
9849});
9850exports.getDocument = getDocument;
9851exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;
9852exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;
9853
9854var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
9855
9856var _util = __w_pdfjs_require__(1);
9857
9858var _dom_utils = __w_pdfjs_require__(151);
9859
9860var _font_loader = __w_pdfjs_require__(152);
9861
9862var _api_compatibility = __w_pdfjs_require__(153);
9863
9864var _canvas = __w_pdfjs_require__(154);
9865
9866var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));
9867
9868var _worker_options = __w_pdfjs_require__(156);
9869
9870var _message_handler = __w_pdfjs_require__(157);
9871
9872var _metadata = __w_pdfjs_require__(158);
9873
9874var _transport_stream = __w_pdfjs_require__(160);
9875
9876var _webgl = __w_pdfjs_require__(161);
9877
9878function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9879
9880function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
9881
9882function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
9883
9884function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
9885
9886function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
9887
9888function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
9889
9890function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9891
9892function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
9893
9894function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
9895
9896function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
9897
9898function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
9899
9900function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9901
9902function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
9903
9904function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
9905
9906function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
9907
9908var DEFAULT_RANGE_CHUNK_SIZE = 65536;
9909var isWorkerDisabled = false;
9910var fallbackWorkerSrc;
9911var fakeWorkerFilesLoader = null;
9912{
9913 var useRequireEnsure = false;
9914
9915 if (typeof window === 'undefined') {
9916 isWorkerDisabled = true;
9917
9918 if (typeof require.ensure === 'undefined') {
9919 require.ensure = require('node-ensure');
9920 }
9921
9922 useRequireEnsure = true;
9923 } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') {
9924 useRequireEnsure = true;
9925 }
9926
9927 if (typeof requirejs !== 'undefined' && requirejs.toUrl) {
9928 fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');
9929 }
9930
9931 var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load;
9932 fakeWorkerFilesLoader = useRequireEnsure ? function () {
9933 return new Promise(function (resolve, reject) {
9934 require.ensure([], function () {
9935 try {
9936 var worker;
9937 worker = require('./pdf.worker.js');
9938 resolve(worker.WorkerMessageHandler);
9939 } catch (ex) {
9940 reject(ex);
9941 }
9942 }, reject, 'pdfjsWorker');
9943 });
9944 } : dynamicLoaderSupported ? function () {
9945 return new Promise(function (resolve, reject) {
9946 requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) {
9947 try {
9948 resolve(worker.WorkerMessageHandler);
9949 } catch (ex) {
9950 reject(ex);
9951 }
9952 }, reject);
9953 });
9954 } : null;
9955
9956 if (!fallbackWorkerSrc && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && 'currentScript' in document) {
9957 var pdfjsFilePath = document.currentScript && document.currentScript.src;
9958
9959 if (pdfjsFilePath) {
9960 fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2');
9961 }
9962 }
9963}
9964var createPDFNetworkStream;
9965
9966function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {
9967 createPDFNetworkStream = pdfNetworkStreamFactory;
9968}
9969
9970function getDocument(src) {
9971 var task = new PDFDocumentLoadingTask();
9972 var source;
9973
9974 if (typeof src === 'string') {
9975 source = {
9976 url: src
9977 };
9978 } else if ((0, _util.isArrayBuffer)(src)) {
9979 source = {
9980 data: src
9981 };
9982 } else if (src instanceof PDFDataRangeTransport) {
9983 source = {
9984 range: src
9985 };
9986 } else {
9987 if (_typeof(src) !== 'object') {
9988 throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object');
9989 }
9990
9991 if (!src.url && !src.data && !src.range) {
9992 throw new Error('Invalid parameter object: need either .data, .range or .url');
9993 }
9994
9995 source = src;
9996 }
9997
9998 var params = Object.create(null);
9999 var rangeTransport = null,
10000 worker = null;
10001
10002 for (var key in source) {
10003 if (key === 'url' && typeof window !== 'undefined') {
10004 params[key] = new _util.URL(source[key], window.location).href;
10005 continue;
10006 } else if (key === 'range') {
10007 rangeTransport = source[key];
10008 continue;
10009 } else if (key === 'worker') {
10010 worker = source[key];
10011 continue;
10012 } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {
10013 var pdfBytes = source[key];
10014
10015 if (typeof pdfBytes === 'string') {
10016 params[key] = (0, _util.stringToBytes)(pdfBytes);
10017 } else if (_typeof(pdfBytes) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) {
10018 params[key] = new Uint8Array(pdfBytes);
10019 } else if ((0, _util.isArrayBuffer)(pdfBytes)) {
10020 params[key] = new Uint8Array(pdfBytes);
10021 } else {
10022 throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.');
10023 }
10024
10025 continue;
10026 }
10027
10028 params[key] = source[key];
10029 }
10030
10031 params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;
10032 params.CMapReaderFactory = params.CMapReaderFactory || _dom_utils.DOMCMapReaderFactory;
10033 params.ignoreErrors = params.stopAtErrors !== true;
10034 params.pdfBug = params.pdfBug === true;
10035 var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);
10036
10037 if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {
10038 params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE;
10039 }
10040
10041 if (!Number.isInteger(params.maxImageSize)) {
10042 params.maxImageSize = -1;
10043 }
10044
10045 if (typeof params.isEvalSupported !== 'boolean') {
10046 params.isEvalSupported = true;
10047 }
10048
10049 if (typeof params.disableFontFace !== 'boolean') {
10050 params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;
10051 }
10052
10053 if (typeof params.disableRange !== 'boolean') {
10054 params.disableRange = false;
10055 }
10056
10057 if (typeof params.disableStream !== 'boolean') {
10058 params.disableStream = false;
10059 }
10060
10061 if (typeof params.disableAutoFetch !== 'boolean') {
10062 params.disableAutoFetch = false;
10063 }
10064
10065 if (typeof params.disableCreateObjectURL !== 'boolean') {
10066 params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false;
10067 }
10068
10069 (0, _util.setVerbosityLevel)(params.verbosity);
10070
10071 if (!worker) {
10072 var workerParams = {
10073 postMessageTransfers: params.postMessageTransfers,
10074 verbosity: params.verbosity,
10075 port: _worker_options.GlobalWorkerOptions.workerPort
10076 };
10077 worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);
10078 task._worker = worker;
10079 }
10080
10081 var docId = task.docId;
10082 worker.promise.then(function () {
10083 if (task.destroyed) {
10084 throw new Error('Loading aborted');
10085 }
10086
10087 return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {
10088 if (task.destroyed) {
10089 throw new Error('Loading aborted');
10090 }
10091
10092 var networkStream;
10093
10094 if (rangeTransport) {
10095 networkStream = new _transport_stream.PDFDataTransportStream({
10096 length: params.length,
10097 initialData: params.initialData,
10098 disableRange: params.disableRange,
10099 disableStream: params.disableStream
10100 }, rangeTransport);
10101 } else if (!params.data) {
10102 networkStream = createPDFNetworkStream({
10103 url: params.url,
10104 length: params.length,
10105 httpHeaders: params.httpHeaders,
10106 withCredentials: params.withCredentials,
10107 rangeChunkSize: params.rangeChunkSize,
10108 disableRange: params.disableRange,
10109 disableStream: params.disableStream
10110 });
10111 }
10112
10113 var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);
10114 messageHandler.postMessageTransfers = worker.postMessageTransfers;
10115 var transport = new WorkerTransport(messageHandler, task, networkStream, params);
10116 task._transport = transport;
10117 messageHandler.send('Ready', null);
10118 });
10119 }).catch(task._capability.reject);
10120 return task;
10121}
10122
10123function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
10124 if (worker.destroyed) {
10125 return Promise.reject(new Error('Worker was destroyed'));
10126 }
10127
10128 if (pdfDataRangeTransport) {
10129 source.length = pdfDataRangeTransport.length;
10130 source.initialData = pdfDataRangeTransport.initialData;
10131 }
10132
10133 return worker.messageHandler.sendWithPromise('GetDocRequest', {
10134 docId: docId,
10135 apiVersion: '2.1.266',
10136 source: {
10137 data: source.data,
10138 url: source.url,
10139 password: source.password,
10140 disableAutoFetch: source.disableAutoFetch,
10141 rangeChunkSize: source.rangeChunkSize,
10142 length: source.length
10143 },
10144 maxImageSize: source.maxImageSize,
10145 disableFontFace: source.disableFontFace,
10146 disableCreateObjectURL: source.disableCreateObjectURL,
10147 postMessageTransfers: worker.postMessageTransfers,
10148 docBaseUrl: source.docBaseUrl,
10149 nativeImageDecoderSupport: source.nativeImageDecoderSupport,
10150 ignoreErrors: source.ignoreErrors,
10151 isEvalSupported: source.isEvalSupported
10152 }).then(function (workerId) {
10153 if (worker.destroyed) {
10154 throw new Error('Worker was destroyed');
10155 }
10156
10157 return workerId;
10158 });
10159}
10160
10161var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {
10162 var nextDocumentId = 0;
10163
10164 var PDFDocumentLoadingTask =
10165 /*#__PURE__*/
10166 function () {
10167 function PDFDocumentLoadingTask() {
10168 _classCallCheck(this, PDFDocumentLoadingTask);
10169
10170 this._capability = (0, _util.createPromiseCapability)();
10171 this._transport = null;
10172 this._worker = null;
10173 this.docId = 'd' + nextDocumentId++;
10174 this.destroyed = false;
10175 this.onPassword = null;
10176 this.onProgress = null;
10177 this.onUnsupportedFeature = null;
10178 }
10179
10180 _createClass(PDFDocumentLoadingTask, [{
10181 key: "destroy",
10182 value: function destroy() {
10183 var _this = this;
10184
10185 this.destroyed = true;
10186 var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();
10187 return transportDestroyed.then(function () {
10188 _this._transport = null;
10189
10190 if (_this._worker) {
10191 _this._worker.destroy();
10192
10193 _this._worker = null;
10194 }
10195 });
10196 }
10197 }, {
10198 key: "then",
10199 value: function then(onFulfilled, onRejected) {
10200 (0, _util.deprecated)('PDFDocumentLoadingTask.then method, ' + 'use the `promise` getter instead.');
10201 return this.promise.then.apply(this.promise, arguments);
10202 }
10203 }, {
10204 key: "promise",
10205 get: function get() {
10206 return this._capability.promise;
10207 }
10208 }]);
10209
10210 return PDFDocumentLoadingTask;
10211 }();
10212
10213 return PDFDocumentLoadingTask;
10214}();
10215
10216var PDFDataRangeTransport =
10217/*#__PURE__*/
10218function () {
10219 function PDFDataRangeTransport(length, initialData) {
10220 _classCallCheck(this, PDFDataRangeTransport);
10221
10222 this.length = length;
10223 this.initialData = initialData;
10224 this._rangeListeners = [];
10225 this._progressListeners = [];
10226 this._progressiveReadListeners = [];
10227 this._readyCapability = (0, _util.createPromiseCapability)();
10228 }
10229
10230 _createClass(PDFDataRangeTransport, [{
10231 key: "addRangeListener",
10232 value: function addRangeListener(listener) {
10233 this._rangeListeners.push(listener);
10234 }
10235 }, {
10236 key: "addProgressListener",
10237 value: function addProgressListener(listener) {
10238 this._progressListeners.push(listener);
10239 }
10240 }, {
10241 key: "addProgressiveReadListener",
10242 value: function addProgressiveReadListener(listener) {
10243 this._progressiveReadListeners.push(listener);
10244 }
10245 }, {
10246 key: "onDataRange",
10247 value: function onDataRange(begin, chunk) {
10248 var _iteratorNormalCompletion = true;
10249 var _didIteratorError = false;
10250 var _iteratorError = undefined;
10251
10252 try {
10253 for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
10254 var listener = _step.value;
10255 listener(begin, chunk);
10256 }
10257 } catch (err) {
10258 _didIteratorError = true;
10259 _iteratorError = err;
10260 } finally {
10261 try {
10262 if (!_iteratorNormalCompletion && _iterator.return != null) {
10263 _iterator.return();
10264 }
10265 } finally {
10266 if (_didIteratorError) {
10267 throw _iteratorError;
10268 }
10269 }
10270 }
10271 }
10272 }, {
10273 key: "onDataProgress",
10274 value: function onDataProgress(loaded) {
10275 var _this2 = this;
10276
10277 this._readyCapability.promise.then(function () {
10278 var _iteratorNormalCompletion2 = true;
10279 var _didIteratorError2 = false;
10280 var _iteratorError2 = undefined;
10281
10282 try {
10283 for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
10284 var listener = _step2.value;
10285 listener(loaded);
10286 }
10287 } catch (err) {
10288 _didIteratorError2 = true;
10289 _iteratorError2 = err;
10290 } finally {
10291 try {
10292 if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
10293 _iterator2.return();
10294 }
10295 } finally {
10296 if (_didIteratorError2) {
10297 throw _iteratorError2;
10298 }
10299 }
10300 }
10301 });
10302 }
10303 }, {
10304 key: "onDataProgressiveRead",
10305 value: function onDataProgressiveRead(chunk) {
10306 var _this3 = this;
10307
10308 this._readyCapability.promise.then(function () {
10309 var _iteratorNormalCompletion3 = true;
10310 var _didIteratorError3 = false;
10311 var _iteratorError3 = undefined;
10312
10313 try {
10314 for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
10315 var listener = _step3.value;
10316 listener(chunk);
10317 }
10318 } catch (err) {
10319 _didIteratorError3 = true;
10320 _iteratorError3 = err;
10321 } finally {
10322 try {
10323 if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
10324 _iterator3.return();
10325 }
10326 } finally {
10327 if (_didIteratorError3) {
10328 throw _iteratorError3;
10329 }
10330 }
10331 }
10332 });
10333 }
10334 }, {
10335 key: "transportReady",
10336 value: function transportReady() {
10337 this._readyCapability.resolve();
10338 }
10339 }, {
10340 key: "requestDataRange",
10341 value: function requestDataRange(begin, end) {
10342 (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange');
10343 }
10344 }, {
10345 key: "abort",
10346 value: function abort() {}
10347 }]);
10348
10349 return PDFDataRangeTransport;
10350}();
10351
10352exports.PDFDataRangeTransport = PDFDataRangeTransport;
10353
10354var PDFDocumentProxy =
10355/*#__PURE__*/
10356function () {
10357 function PDFDocumentProxy(pdfInfo, transport, loadingTask) {
10358 _classCallCheck(this, PDFDocumentProxy);
10359
10360 this.loadingTask = loadingTask;
10361 this._pdfInfo = pdfInfo;
10362 this._transport = transport;
10363 }
10364
10365 _createClass(PDFDocumentProxy, [{
10366 key: "getPage",
10367 value: function getPage(pageNumber) {
10368 return this._transport.getPage(pageNumber);
10369 }
10370 }, {
10371 key: "getPageIndex",
10372 value: function getPageIndex(ref) {
10373 return this._transport.getPageIndex(ref);
10374 }
10375 }, {
10376 key: "getDestinations",
10377 value: function getDestinations() {
10378 return this._transport.getDestinations();
10379 }
10380 }, {
10381 key: "getDestination",
10382 value: function getDestination(id) {
10383 return this._transport.getDestination(id);
10384 }
10385 }, {
10386 key: "getPageLabels",
10387 value: function getPageLabels() {
10388 return this._transport.getPageLabels();
10389 }
10390 }, {
10391 key: "getPageMode",
10392 value: function getPageMode() {
10393 return this._transport.getPageMode();
10394 }
10395 }, {
10396 key: "getOpenActionDestination",
10397 value: function getOpenActionDestination() {
10398 return this._transport.getOpenActionDestination();
10399 }
10400 }, {
10401 key: "getAttachments",
10402 value: function getAttachments() {
10403 return this._transport.getAttachments();
10404 }
10405 }, {
10406 key: "getJavaScript",
10407 value: function getJavaScript() {
10408 return this._transport.getJavaScript();
10409 }
10410 }, {
10411 key: "getOutline",
10412 value: function getOutline() {
10413 return this._transport.getOutline();
10414 }
10415 }, {
10416 key: "getPermissions",
10417 value: function getPermissions() {
10418 return this._transport.getPermissions();
10419 }
10420 }, {
10421 key: "getMetadata",
10422 value: function getMetadata() {
10423 return this._transport.getMetadata();
10424 }
10425 }, {
10426 key: "getData",
10427 value: function getData() {
10428 return this._transport.getData();
10429 }
10430 }, {
10431 key: "getDownloadInfo",
10432 value: function getDownloadInfo() {
10433 return this._transport.downloadInfoCapability.promise;
10434 }
10435 }, {
10436 key: "getStats",
10437 value: function getStats() {
10438 return this._transport.getStats();
10439 }
10440 }, {
10441 key: "cleanup",
10442 value: function cleanup() {
10443 this._transport.startCleanup();
10444 }
10445 }, {
10446 key: "destroy",
10447 value: function destroy() {
10448 return this.loadingTask.destroy();
10449 }
10450 }, {
10451 key: "numPages",
10452 get: function get() {
10453 return this._pdfInfo.numPages;
10454 }
10455 }, {
10456 key: "fingerprint",
10457 get: function get() {
10458 return this._pdfInfo.fingerprint;
10459 }
10460 }, {
10461 key: "loadingParams",
10462 get: function get() {
10463 return this._transport.loadingParams;
10464 }
10465 }]);
10466
10467 return PDFDocumentProxy;
10468}();
10469
10470exports.PDFDocumentProxy = PDFDocumentProxy;
10471
10472var PDFPageProxy =
10473/*#__PURE__*/
10474function () {
10475 function PDFPageProxy(pageIndex, pageInfo, transport) {
10476 var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
10477
10478 _classCallCheck(this, PDFPageProxy);
10479
10480 this.pageIndex = pageIndex;
10481 this._pageInfo = pageInfo;
10482 this._transport = transport;
10483 this._stats = pdfBug ? new _dom_utils.StatTimer() : _dom_utils.DummyStatTimer;
10484 this._pdfBug = pdfBug;
10485 this.commonObjs = transport.commonObjs;
10486 this.objs = new PDFObjects();
10487 this.cleanupAfterRender = false;
10488 this.pendingCleanup = false;
10489 this.intentStates = Object.create(null);
10490 this.destroyed = false;
10491 }
10492
10493 _createClass(PDFPageProxy, [{
10494 key: "getViewport",
10495 value: function getViewport() {
10496 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
10497 scale = _ref.scale,
10498 _ref$rotation = _ref.rotation,
10499 rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation,
10500 _ref$dontFlip = _ref.dontFlip,
10501 dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip;
10502
10503 if (arguments.length > 1 || typeof arguments[0] === 'number') {
10504 (0, _util.deprecated)('getViewport is called with obsolete arguments.');
10505 scale = arguments[0];
10506 rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate;
10507 dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false;
10508 }
10509
10510 return new _dom_utils.PageViewport({
10511 viewBox: this.view,
10512 scale: scale,
10513 rotation: rotation,
10514 dontFlip: dontFlip
10515 });
10516 }
10517 }, {
10518 key: "getAnnotations",
10519 value: function getAnnotations() {
10520 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
10521 _ref2$intent = _ref2.intent,
10522 intent = _ref2$intent === void 0 ? null : _ref2$intent;
10523
10524 if (!this.annotationsPromise || this.annotationsIntent !== intent) {
10525 this.annotationsPromise = this._transport.getAnnotations(this.pageIndex, intent);
10526 this.annotationsIntent = intent;
10527 }
10528
10529 return this.annotationsPromise;
10530 }
10531 }, {
10532 key: "render",
10533 value: function render(_ref3) {
10534 var _this4 = this;
10535
10536 var canvasContext = _ref3.canvasContext,
10537 viewport = _ref3.viewport,
10538 _ref3$intent = _ref3.intent,
10539 intent = _ref3$intent === void 0 ? 'display' : _ref3$intent,
10540 _ref3$enableWebGL = _ref3.enableWebGL,
10541 enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL,
10542 _ref3$renderInteracti = _ref3.renderInteractiveForms,
10543 renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti,
10544 _ref3$transform = _ref3.transform,
10545 transform = _ref3$transform === void 0 ? null : _ref3$transform,
10546 _ref3$imageLayer = _ref3.imageLayer,
10547 imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer,
10548 _ref3$canvasFactory = _ref3.canvasFactory,
10549 canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory,
10550 _ref3$background = _ref3.background,
10551 background = _ref3$background === void 0 ? null : _ref3$background;
10552 var stats = this._stats;
10553 stats.time('Overall');
10554 this.pendingCleanup = false;
10555 var renderingIntent = intent === 'print' ? 'print' : 'display';
10556 var canvasFactoryInstance = canvasFactory || new _dom_utils.DOMCanvasFactory();
10557 var webGLContext = new _webgl.WebGLContext({
10558 enable: enableWebGL
10559 });
10560
10561 if (!this.intentStates[renderingIntent]) {
10562 this.intentStates[renderingIntent] = Object.create(null);
10563 }
10564
10565 var intentState = this.intentStates[renderingIntent];
10566
10567 if (!intentState.displayReadyCapability) {
10568 intentState.receivingOperatorList = true;
10569 intentState.displayReadyCapability = (0, _util.createPromiseCapability)();
10570 intentState.operatorList = {
10571 fnArray: [],
10572 argsArray: [],
10573 lastChunk: false
10574 };
10575 stats.time('Page Request');
10576
10577 this._transport.messageHandler.send('RenderPageRequest', {
10578 pageIndex: this.pageNumber - 1,
10579 intent: renderingIntent,
10580 renderInteractiveForms: renderInteractiveForms === true
10581 });
10582 }
10583
10584 var complete = function complete(error) {
10585 var i = intentState.renderTasks.indexOf(internalRenderTask);
10586
10587 if (i >= 0) {
10588 intentState.renderTasks.splice(i, 1);
10589 }
10590
10591 if (_this4.cleanupAfterRender) {
10592 _this4.pendingCleanup = true;
10593 }
10594
10595 _this4._tryCleanup();
10596
10597 if (error) {
10598 internalRenderTask.capability.reject(error);
10599 } else {
10600 internalRenderTask.capability.resolve();
10601 }
10602
10603 stats.timeEnd('Rendering');
10604 stats.timeEnd('Overall');
10605 };
10606
10607 var internalRenderTask = new InternalRenderTask({
10608 callback: complete,
10609 params: {
10610 canvasContext: canvasContext,
10611 viewport: viewport,
10612 transform: transform,
10613 imageLayer: imageLayer,
10614 background: background
10615 },
10616 objs: this.objs,
10617 commonObjs: this.commonObjs,
10618 operatorList: intentState.operatorList,
10619 pageNumber: this.pageNumber,
10620 canvasFactory: canvasFactoryInstance,
10621 webGLContext: webGLContext,
10622 useRequestAnimationFrame: renderingIntent !== 'print',
10623 pdfBug: this._pdfBug
10624 });
10625
10626 if (!intentState.renderTasks) {
10627 intentState.renderTasks = [];
10628 }
10629
10630 intentState.renderTasks.push(internalRenderTask);
10631 var renderTask = internalRenderTask.task;
10632 intentState.displayReadyCapability.promise.then(function (transparency) {
10633 if (_this4.pendingCleanup) {
10634 complete();
10635 return;
10636 }
10637
10638 stats.time('Rendering');
10639 internalRenderTask.initializeGraphics(transparency);
10640 internalRenderTask.operatorListChanged();
10641 }).catch(complete);
10642 return renderTask;
10643 }
10644 }, {
10645 key: "getOperatorList",
10646 value: function getOperatorList() {
10647 function operatorListChanged() {
10648 if (intentState.operatorList.lastChunk) {
10649 intentState.opListReadCapability.resolve(intentState.operatorList);
10650 var i = intentState.renderTasks.indexOf(opListTask);
10651
10652 if (i >= 0) {
10653 intentState.renderTasks.splice(i, 1);
10654 }
10655 }
10656 }
10657
10658 var renderingIntent = 'oplist';
10659
10660 if (!this.intentStates[renderingIntent]) {
10661 this.intentStates[renderingIntent] = Object.create(null);
10662 }
10663
10664 var intentState = this.intentStates[renderingIntent];
10665 var opListTask;
10666
10667 if (!intentState.opListReadCapability) {
10668 opListTask = {};
10669 opListTask.operatorListChanged = operatorListChanged;
10670 intentState.receivingOperatorList = true;
10671 intentState.opListReadCapability = (0, _util.createPromiseCapability)();
10672 intentState.renderTasks = [];
10673 intentState.renderTasks.push(opListTask);
10674 intentState.operatorList = {
10675 fnArray: [],
10676 argsArray: [],
10677 lastChunk: false
10678 };
10679
10680 this._stats.time('Page Request');
10681
10682 this._transport.messageHandler.send('RenderPageRequest', {
10683 pageIndex: this.pageIndex,
10684 intent: renderingIntent
10685 });
10686 }
10687
10688 return intentState.opListReadCapability.promise;
10689 }
10690 }, {
10691 key: "streamTextContent",
10692 value: function streamTextContent() {
10693 var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
10694 _ref4$normalizeWhites = _ref4.normalizeWhitespace,
10695 normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites,
10696 _ref4$disableCombineT = _ref4.disableCombineTextItems,
10697 disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT;
10698
10699 var TEXT_CONTENT_CHUNK_SIZE = 100;
10700 return this._transport.messageHandler.sendWithStream('GetTextContent', {
10701 pageIndex: this.pageNumber - 1,
10702 normalizeWhitespace: normalizeWhitespace === true,
10703 combineTextItems: disableCombineTextItems !== true
10704 }, {
10705 highWaterMark: TEXT_CONTENT_CHUNK_SIZE,
10706 size: function size(textContent) {
10707 return textContent.items.length;
10708 }
10709 });
10710 }
10711 }, {
10712 key: "getTextContent",
10713 value: function getTextContent() {
10714 var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10715 var readableStream = this.streamTextContent(params);
10716 return new Promise(function (resolve, reject) {
10717 function pump() {
10718 reader.read().then(function (_ref5) {
10719 var _textContent$items;
10720
10721 var value = _ref5.value,
10722 done = _ref5.done;
10723
10724 if (done) {
10725 resolve(textContent);
10726 return;
10727 }
10728
10729 Object.assign(textContent.styles, value.styles);
10730
10731 (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));
10732
10733 pump();
10734 }, reject);
10735 }
10736
10737 var reader = readableStream.getReader();
10738 var textContent = {
10739 items: [],
10740 styles: Object.create(null)
10741 };
10742 pump();
10743 });
10744 }
10745 }, {
10746 key: "_destroy",
10747 value: function _destroy() {
10748 this.destroyed = true;
10749 this._transport.pageCache[this.pageIndex] = null;
10750 var waitOn = [];
10751 Object.keys(this.intentStates).forEach(function (intent) {
10752 if (intent === 'oplist') {
10753 return;
10754 }
10755
10756 var intentState = this.intentStates[intent];
10757 intentState.renderTasks.forEach(function (renderTask) {
10758 var renderCompleted = renderTask.capability.promise.catch(function () {});
10759 waitOn.push(renderCompleted);
10760 renderTask.cancel();
10761 });
10762 }, this);
10763 this.objs.clear();
10764 this.annotationsPromise = null;
10765 this.pendingCleanup = false;
10766 return Promise.all(waitOn);
10767 }
10768 }, {
10769 key: "cleanup",
10770 value: function cleanup() {
10771 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
10772 this.pendingCleanup = true;
10773
10774 this._tryCleanup(resetStats);
10775 }
10776 }, {
10777 key: "_tryCleanup",
10778 value: function _tryCleanup() {
10779 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
10780
10781 if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) {
10782 var intentState = this.intentStates[intent];
10783 return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList;
10784 }, this)) {
10785 return;
10786 }
10787
10788 Object.keys(this.intentStates).forEach(function (intent) {
10789 delete this.intentStates[intent];
10790 }, this);
10791 this.objs.clear();
10792 this.annotationsPromise = null;
10793
10794 if (resetStats && this._stats instanceof _dom_utils.StatTimer) {
10795 this._stats = new _dom_utils.StatTimer();
10796 }
10797
10798 this.pendingCleanup = false;
10799 }
10800 }, {
10801 key: "_startRenderPage",
10802 value: function _startRenderPage(transparency, intent) {
10803 var intentState = this.intentStates[intent];
10804
10805 if (intentState.displayReadyCapability) {
10806 intentState.displayReadyCapability.resolve(transparency);
10807 }
10808 }
10809 }, {
10810 key: "_renderPageChunk",
10811 value: function _renderPageChunk(operatorListChunk, intent) {
10812 var intentState = this.intentStates[intent];
10813
10814 for (var i = 0, ii = operatorListChunk.length; i < ii; i++) {
10815 intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);
10816 intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);
10817 }
10818
10819 intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
10820
10821 for (var _i = 0; _i < intentState.renderTasks.length; _i++) {
10822 intentState.renderTasks[_i].operatorListChanged();
10823 }
10824
10825 if (operatorListChunk.lastChunk) {
10826 intentState.receivingOperatorList = false;
10827
10828 this._tryCleanup();
10829 }
10830 }
10831 }, {
10832 key: "pageNumber",
10833 get: function get() {
10834 return this.pageIndex + 1;
10835 }
10836 }, {
10837 key: "rotate",
10838 get: function get() {
10839 return this._pageInfo.rotate;
10840 }
10841 }, {
10842 key: "ref",
10843 get: function get() {
10844 return this._pageInfo.ref;
10845 }
10846 }, {
10847 key: "userUnit",
10848 get: function get() {
10849 return this._pageInfo.userUnit;
10850 }
10851 }, {
10852 key: "view",
10853 get: function get() {
10854 return this._pageInfo.view;
10855 }
10856 }, {
10857 key: "stats",
10858 get: function get() {
10859 return this._stats instanceof _dom_utils.StatTimer ? this._stats : null;
10860 }
10861 }]);
10862
10863 return PDFPageProxy;
10864}();
10865
10866exports.PDFPageProxy = PDFPageProxy;
10867
10868var LoopbackPort =
10869/*#__PURE__*/
10870function () {
10871 function LoopbackPort() {
10872 var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
10873
10874 _classCallCheck(this, LoopbackPort);
10875
10876 this._listeners = [];
10877 this._defer = defer;
10878 this._deferred = Promise.resolve(undefined);
10879 }
10880
10881 _createClass(LoopbackPort, [{
10882 key: "postMessage",
10883 value: function postMessage(obj, transfers) {
10884 var _this5 = this;
10885
10886 function cloneValue(value) {
10887 if (_typeof(value) !== 'object' || value === null) {
10888 return value;
10889 }
10890
10891 if (cloned.has(value)) {
10892 return cloned.get(value);
10893 }
10894
10895 var buffer, result;
10896
10897 if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {
10898 var transferable = transfers && transfers.includes(buffer);
10899
10900 if (value === buffer) {
10901 result = value;
10902 } else if (transferable) {
10903 result = new value.constructor(buffer, value.byteOffset, value.byteLength);
10904 } else {
10905 result = new value.constructor(value);
10906 }
10907
10908 cloned.set(value, result);
10909 return result;
10910 }
10911
10912 result = Array.isArray(value) ? [] : {};
10913 cloned.set(value, result);
10914
10915 for (var i in value) {
10916 var desc = void 0,
10917 p = value;
10918
10919 while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {
10920 p = Object.getPrototypeOf(p);
10921 }
10922
10923 if (typeof desc.value === 'undefined' || typeof desc.value === 'function') {
10924 continue;
10925 }
10926
10927 result[i] = cloneValue(desc.value);
10928 }
10929
10930 return result;
10931 }
10932
10933 if (!this._defer) {
10934 this._listeners.forEach(function (listener) {
10935 listener.call(this, {
10936 data: obj
10937 });
10938 }, this);
10939
10940 return;
10941 }
10942
10943 var cloned = new WeakMap();
10944 var e = {
10945 data: cloneValue(obj)
10946 };
10947
10948 this._deferred.then(function () {
10949 _this5._listeners.forEach(function (listener) {
10950 listener.call(this, e);
10951 }, _this5);
10952 });
10953 }
10954 }, {
10955 key: "addEventListener",
10956 value: function addEventListener(name, listener) {
10957 this._listeners.push(listener);
10958 }
10959 }, {
10960 key: "removeEventListener",
10961 value: function removeEventListener(name, listener) {
10962 var i = this._listeners.indexOf(listener);
10963
10964 this._listeners.splice(i, 1);
10965 }
10966 }, {
10967 key: "terminate",
10968 value: function terminate() {
10969 this._listeners = [];
10970 }
10971 }]);
10972
10973 return LoopbackPort;
10974}();
10975
10976exports.LoopbackPort = LoopbackPort;
10977
10978var PDFWorker = function PDFWorkerClosure() {
10979 var pdfWorkerPorts = new WeakMap();
10980 var nextFakeWorkerId = 0;
10981 var fakeWorkerFilesLoadedCapability;
10982
10983 function _getWorkerSrc() {
10984 if (_worker_options.GlobalWorkerOptions.workerSrc) {
10985 return _worker_options.GlobalWorkerOptions.workerSrc;
10986 }
10987
10988 if (typeof fallbackWorkerSrc !== 'undefined') {
10989 return fallbackWorkerSrc;
10990 }
10991
10992 throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
10993 }
10994
10995 function getMainThreadWorkerMessageHandler() {
10996 try {
10997 if (typeof window !== 'undefined') {
10998 return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler;
10999 }
11000 } catch (ex) {}
11001
11002 return null;
11003 }
11004
11005 function setupFakeWorkerGlobal() {
11006 if (fakeWorkerFilesLoadedCapability) {
11007 return fakeWorkerFilesLoadedCapability.promise;
11008 }
11009
11010 fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)();
11011 var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();
11012
11013 if (mainWorkerMessageHandler) {
11014 fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);
11015 return fakeWorkerFilesLoadedCapability.promise;
11016 }
11017
11018 var loader = fakeWorkerFilesLoader || function () {
11019 return (0, _dom_utils.loadScript)(_getWorkerSrc()).then(function () {
11020 return window.pdfjsWorker.WorkerMessageHandler;
11021 });
11022 };
11023
11024 loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject);
11025 return fakeWorkerFilesLoadedCapability.promise;
11026 }
11027
11028 function createCDNWrapper(url) {
11029 var wrapper = 'importScripts(\'' + url + '\');';
11030 return _util.URL.createObjectURL(new Blob([wrapper]));
11031 }
11032
11033 var PDFWorker =
11034 /*#__PURE__*/
11035 function () {
11036 function PDFWorker() {
11037 var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
11038 _ref6$name = _ref6.name,
11039 name = _ref6$name === void 0 ? null : _ref6$name,
11040 _ref6$port = _ref6.port,
11041 port = _ref6$port === void 0 ? null : _ref6$port,
11042 _ref6$postMessageTran = _ref6.postMessageTransfers,
11043 postMessageTransfers = _ref6$postMessageTran === void 0 ? true : _ref6$postMessageTran,
11044 _ref6$verbosity = _ref6.verbosity,
11045 verbosity = _ref6$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref6$verbosity;
11046
11047 _classCallCheck(this, PDFWorker);
11048
11049 if (port && pdfWorkerPorts.has(port)) {
11050 throw new Error('Cannot use more than one PDFWorker per port');
11051 }
11052
11053 this.name = name;
11054 this.destroyed = false;
11055 this.postMessageTransfers = postMessageTransfers !== false;
11056 this.verbosity = verbosity;
11057 this._readyCapability = (0, _util.createPromiseCapability)();
11058 this._port = null;
11059 this._webWorker = null;
11060 this._messageHandler = null;
11061
11062 if (port) {
11063 pdfWorkerPorts.set(port, this);
11064
11065 this._initializeFromPort(port);
11066
11067 return;
11068 }
11069
11070 this._initialize();
11071 }
11072
11073 _createClass(PDFWorker, [{
11074 key: "_initializeFromPort",
11075 value: function _initializeFromPort(port) {
11076 this._port = port;
11077 this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port);
11078
11079 this._messageHandler.on('ready', function () {});
11080
11081 this._readyCapability.resolve();
11082 }
11083 }, {
11084 key: "_initialize",
11085 value: function _initialize() {
11086 var _this6 = this;
11087
11088 if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {
11089 var workerSrc = _getWorkerSrc();
11090
11091 try {
11092 if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {
11093 workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href);
11094 }
11095
11096 var worker = new Worker(workerSrc);
11097 var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker);
11098
11099 var terminateEarly = function terminateEarly() {
11100 worker.removeEventListener('error', onWorkerError);
11101 messageHandler.destroy();
11102 worker.terminate();
11103
11104 if (_this6.destroyed) {
11105 _this6._readyCapability.reject(new Error('Worker was destroyed'));
11106 } else {
11107 _this6._setupFakeWorker();
11108 }
11109 };
11110
11111 var onWorkerError = function onWorkerError() {
11112 if (!_this6._webWorker) {
11113 terminateEarly();
11114 }
11115 };
11116
11117 worker.addEventListener('error', onWorkerError);
11118 messageHandler.on('test', function (data) {
11119 worker.removeEventListener('error', onWorkerError);
11120
11121 if (_this6.destroyed) {
11122 terminateEarly();
11123 return;
11124 }
11125
11126 if (data && data.supportTypedArray) {
11127 _this6._messageHandler = messageHandler;
11128 _this6._port = worker;
11129 _this6._webWorker = worker;
11130
11131 if (!data.supportTransfers) {
11132 _this6.postMessageTransfers = false;
11133 }
11134
11135 _this6._readyCapability.resolve();
11136
11137 messageHandler.send('configure', {
11138 verbosity: _this6.verbosity
11139 });
11140 } else {
11141 _this6._setupFakeWorker();
11142
11143 messageHandler.destroy();
11144 worker.terminate();
11145 }
11146 });
11147 messageHandler.on('ready', function (data) {
11148 worker.removeEventListener('error', onWorkerError);
11149
11150 if (_this6.destroyed) {
11151 terminateEarly();
11152 return;
11153 }
11154
11155 try {
11156 sendTest();
11157 } catch (e) {
11158 _this6._setupFakeWorker();
11159 }
11160 });
11161
11162 var sendTest = function sendTest() {
11163 var testObj = new Uint8Array([_this6.postMessageTransfers ? 255 : 0]);
11164
11165 try {
11166 messageHandler.send('test', testObj, [testObj.buffer]);
11167 } catch (ex) {
11168 (0, _util.info)('Cannot use postMessage transfers');
11169 testObj[0] = 0;
11170 messageHandler.send('test', testObj);
11171 }
11172 };
11173
11174 sendTest();
11175 return;
11176 } catch (e) {
11177 (0, _util.info)('The worker has been disabled.');
11178 }
11179 }
11180
11181 this._setupFakeWorker();
11182 }
11183 }, {
11184 key: "_setupFakeWorker",
11185 value: function _setupFakeWorker() {
11186 var _this7 = this;
11187
11188 if (!isWorkerDisabled) {
11189 (0, _util.warn)('Setting up fake worker.');
11190 isWorkerDisabled = true;
11191 }
11192
11193 setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {
11194 if (_this7.destroyed) {
11195 _this7._readyCapability.reject(new Error('Worker was destroyed'));
11196
11197 return;
11198 }
11199
11200 var port = new LoopbackPort();
11201 _this7._port = port;
11202 var id = 'fake' + nextFakeWorkerId++;
11203 var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port);
11204 WorkerMessageHandler.setup(workerHandler, port);
11205 var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port);
11206 _this7._messageHandler = messageHandler;
11207
11208 _this7._readyCapability.resolve();
11209 }).catch(function (reason) {
11210 _this7._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\".")));
11211 });
11212 }
11213 }, {
11214 key: "destroy",
11215 value: function destroy() {
11216 this.destroyed = true;
11217
11218 if (this._webWorker) {
11219 this._webWorker.terminate();
11220
11221 this._webWorker = null;
11222 }
11223
11224 pdfWorkerPorts.delete(this._port);
11225 this._port = null;
11226
11227 if (this._messageHandler) {
11228 this._messageHandler.destroy();
11229
11230 this._messageHandler = null;
11231 }
11232 }
11233 }, {
11234 key: "promise",
11235 get: function get() {
11236 return this._readyCapability.promise;
11237 }
11238 }, {
11239 key: "port",
11240 get: function get() {
11241 return this._port;
11242 }
11243 }, {
11244 key: "messageHandler",
11245 get: function get() {
11246 return this._messageHandler;
11247 }
11248 }], [{
11249 key: "fromPort",
11250 value: function fromPort(params) {
11251 if (!params || !params.port) {
11252 throw new Error('PDFWorker.fromPort - invalid method signature.');
11253 }
11254
11255 if (pdfWorkerPorts.has(params.port)) {
11256 return pdfWorkerPorts.get(params.port);
11257 }
11258
11259 return new PDFWorker(params);
11260 }
11261 }, {
11262 key: "getWorkerSrc",
11263 value: function getWorkerSrc() {
11264 return _getWorkerSrc();
11265 }
11266 }]);
11267
11268 return PDFWorker;
11269 }();
11270
11271 return PDFWorker;
11272}();
11273
11274exports.PDFWorker = PDFWorker;
11275
11276var WorkerTransport =
11277/*#__PURE__*/
11278function () {
11279 function WorkerTransport(messageHandler, loadingTask, networkStream, params) {
11280 _classCallCheck(this, WorkerTransport);
11281
11282 this.messageHandler = messageHandler;
11283 this.loadingTask = loadingTask;
11284 this.commonObjs = new PDFObjects();
11285 this.fontLoader = new _font_loader.FontLoader({
11286 docId: loadingTask.docId,
11287 onUnsupportedFeature: this._onUnsupportedFeature.bind(this)
11288 });
11289 this._params = params;
11290 this.CMapReaderFactory = new params.CMapReaderFactory({
11291 baseUrl: params.cMapUrl,
11292 isCompressed: params.cMapPacked
11293 });
11294 this.destroyed = false;
11295 this.destroyCapability = null;
11296 this._passwordCapability = null;
11297 this._networkStream = networkStream;
11298 this._fullReader = null;
11299 this._lastProgress = null;
11300 this.pageCache = [];
11301 this.pagePromises = [];
11302 this.downloadInfoCapability = (0, _util.createPromiseCapability)();
11303 this.setupMessageHandler();
11304 }
11305
11306 _createClass(WorkerTransport, [{
11307 key: "destroy",
11308 value: function destroy() {
11309 var _this8 = this;
11310
11311 if (this.destroyCapability) {
11312 return this.destroyCapability.promise;
11313 }
11314
11315 this.destroyed = true;
11316 this.destroyCapability = (0, _util.createPromiseCapability)();
11317
11318 if (this._passwordCapability) {
11319 this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback'));
11320 }
11321
11322 var waitOn = [];
11323 this.pageCache.forEach(function (page) {
11324 if (page) {
11325 waitOn.push(page._destroy());
11326 }
11327 });
11328 this.pageCache = [];
11329 this.pagePromises = [];
11330 var terminated = this.messageHandler.sendWithPromise('Terminate', null);
11331 waitOn.push(terminated);
11332 Promise.all(waitOn).then(function () {
11333 _this8.fontLoader.clear();
11334
11335 if (_this8._networkStream) {
11336 _this8._networkStream.cancelAllRequests();
11337 }
11338
11339 if (_this8.messageHandler) {
11340 _this8.messageHandler.destroy();
11341
11342 _this8.messageHandler = null;
11343 }
11344
11345 _this8.destroyCapability.resolve();
11346 }, this.destroyCapability.reject);
11347 return this.destroyCapability.promise;
11348 }
11349 }, {
11350 key: "setupMessageHandler",
11351 value: function setupMessageHandler() {
11352 var messageHandler = this.messageHandler,
11353 loadingTask = this.loadingTask;
11354 messageHandler.on('GetReader', function (data, sink) {
11355 var _this9 = this;
11356
11357 (0, _util.assert)(this._networkStream);
11358 this._fullReader = this._networkStream.getFullReader();
11359
11360 this._fullReader.onProgress = function (evt) {
11361 _this9._lastProgress = {
11362 loaded: evt.loaded,
11363 total: evt.total
11364 };
11365 };
11366
11367 sink.onPull = function () {
11368 _this9._fullReader.read().then(function (_ref7) {
11369 var value = _ref7.value,
11370 done = _ref7.done;
11371
11372 if (done) {
11373 sink.close();
11374 return;
11375 }
11376
11377 (0, _util.assert)((0, _util.isArrayBuffer)(value));
11378 sink.enqueue(new Uint8Array(value), 1, [value]);
11379 }).catch(function (reason) {
11380 sink.error(reason);
11381 });
11382 };
11383
11384 sink.onCancel = function (reason) {
11385 _this9._fullReader.cancel(reason);
11386 };
11387 }, this);
11388 messageHandler.on('ReaderHeadersReady', function (data) {
11389 var _this10 = this;
11390
11391 var headersCapability = (0, _util.createPromiseCapability)();
11392 var fullReader = this._fullReader;
11393 fullReader.headersReady.then(function () {
11394 if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {
11395 if (_this10._lastProgress && loadingTask.onProgress) {
11396 loadingTask.onProgress(_this10._lastProgress);
11397 }
11398
11399 fullReader.onProgress = function (evt) {
11400 if (loadingTask.onProgress) {
11401 loadingTask.onProgress({
11402 loaded: evt.loaded,
11403 total: evt.total
11404 });
11405 }
11406 };
11407 }
11408
11409 headersCapability.resolve({
11410 isStreamingSupported: fullReader.isStreamingSupported,
11411 isRangeSupported: fullReader.isRangeSupported,
11412 contentLength: fullReader.contentLength
11413 });
11414 }, headersCapability.reject);
11415 return headersCapability.promise;
11416 }, this);
11417 messageHandler.on('GetRangeReader', function (data, sink) {
11418 (0, _util.assert)(this._networkStream);
11419
11420 var rangeReader = this._networkStream.getRangeReader(data.begin, data.end);
11421
11422 sink.onPull = function () {
11423 rangeReader.read().then(function (_ref8) {
11424 var value = _ref8.value,
11425 done = _ref8.done;
11426
11427 if (done) {
11428 sink.close();
11429 return;
11430 }
11431
11432 (0, _util.assert)((0, _util.isArrayBuffer)(value));
11433 sink.enqueue(new Uint8Array(value), 1, [value]);
11434 }).catch(function (reason) {
11435 sink.error(reason);
11436 });
11437 };
11438
11439 sink.onCancel = function (reason) {
11440 rangeReader.cancel(reason);
11441 };
11442 }, this);
11443 messageHandler.on('GetDoc', function (_ref9) {
11444 var pdfInfo = _ref9.pdfInfo;
11445 this.numPages = pdfInfo.numPages;
11446 this.pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask);
11447
11448 loadingTask._capability.resolve(this.pdfDocument);
11449 }, this);
11450 messageHandler.on('PasswordRequest', function (exception) {
11451 var _this11 = this;
11452
11453 this._passwordCapability = (0, _util.createPromiseCapability)();
11454
11455 if (loadingTask.onPassword) {
11456 var updatePassword = function updatePassword(password) {
11457 _this11._passwordCapability.resolve({
11458 password: password
11459 });
11460 };
11461
11462 try {
11463 loadingTask.onPassword(updatePassword, exception.code);
11464 } catch (ex) {
11465 this._passwordCapability.reject(ex);
11466 }
11467 } else {
11468 this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));
11469 }
11470
11471 return this._passwordCapability.promise;
11472 }, this);
11473 messageHandler.on('PasswordException', function (exception) {
11474 loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code));
11475 }, this);
11476 messageHandler.on('InvalidPDF', function (exception) {
11477 loadingTask._capability.reject(new _util.InvalidPDFException(exception.message));
11478 }, this);
11479 messageHandler.on('MissingPDF', function (exception) {
11480 loadingTask._capability.reject(new _util.MissingPDFException(exception.message));
11481 }, this);
11482 messageHandler.on('UnexpectedResponse', function (exception) {
11483 loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status));
11484 }, this);
11485 messageHandler.on('UnknownError', function (exception) {
11486 loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details));
11487 }, this);
11488 messageHandler.on('DataLoaded', function (data) {
11489 if (loadingTask.onProgress) {
11490 loadingTask.onProgress({
11491 loaded: data.length,
11492 total: data.length
11493 });
11494 }
11495
11496 this.downloadInfoCapability.resolve(data);
11497 }, this);
11498 messageHandler.on('StartRenderPage', function (data) {
11499 if (this.destroyed) {
11500 return;
11501 }
11502
11503 var page = this.pageCache[data.pageIndex];
11504
11505 page._stats.timeEnd('Page Request');
11506
11507 page._startRenderPage(data.transparency, data.intent);
11508 }, this);
11509 messageHandler.on('RenderPageChunk', function (data) {
11510 if (this.destroyed) {
11511 return;
11512 }
11513
11514 var page = this.pageCache[data.pageIndex];
11515
11516 page._renderPageChunk(data.operatorList, data.intent);
11517 }, this);
11518 messageHandler.on('commonobj', function (data) {
11519 var _this12 = this;
11520
11521 if (this.destroyed) {
11522 return;
11523 }
11524
11525 var _data = _slicedToArray(data, 3),
11526 id = _data[0],
11527 type = _data[1],
11528 exportedData = _data[2];
11529
11530 if (this.commonObjs.has(id)) {
11531 return;
11532 }
11533
11534 switch (type) {
11535 case 'Font':
11536 var params = this._params;
11537
11538 if ('error' in exportedData) {
11539 var exportedError = exportedData.error;
11540 (0, _util.warn)("Error during font loading: ".concat(exportedError));
11541 this.commonObjs.resolve(id, exportedError);
11542 break;
11543 }
11544
11545 var fontRegistry = null;
11546
11547 if (params.pdfBug && _global_scope.default.FontInspector && _global_scope.default.FontInspector.enabled) {
11548 fontRegistry = {
11549 registerFont: function registerFont(font, url) {
11550 _global_scope.default['FontInspector'].fontAdded(font, url);
11551 }
11552 };
11553 }
11554
11555 var font = new _font_loader.FontFaceObject(exportedData, {
11556 isEvalSupported: params.isEvalSupported,
11557 disableFontFace: params.disableFontFace,
11558 ignoreErrors: params.ignoreErrors,
11559 onUnsupportedFeature: this._onUnsupportedFeature.bind(this),
11560 fontRegistry: fontRegistry
11561 });
11562 this.fontLoader.bind(font).then(function () {
11563 _this12.commonObjs.resolve(id, font);
11564 }, function (reason) {
11565 messageHandler.sendWithPromise('FontFallback', {
11566 id: id
11567 }).finally(function () {
11568 _this12.commonObjs.resolve(id, font);
11569 });
11570 });
11571 break;
11572
11573 case 'FontPath':
11574 this.commonObjs.resolve(id, exportedData);
11575 break;
11576
11577 default:
11578 throw new Error("Got unknown common object type ".concat(type));
11579 }
11580 }, this);
11581 messageHandler.on('obj', function (data) {
11582 if (this.destroyed) {
11583 return;
11584 }
11585
11586 var _data2 = _slicedToArray(data, 4),
11587 id = _data2[0],
11588 pageIndex = _data2[1],
11589 type = _data2[2],
11590 imageData = _data2[3];
11591
11592 var pageProxy = this.pageCache[pageIndex];
11593
11594 if (pageProxy.objs.has(id)) {
11595 return;
11596 }
11597
11598 switch (type) {
11599 case 'JpegStream':
11600 return new Promise(function (resolve, reject) {
11601 var img = new Image();
11602
11603 img.onload = function () {
11604 resolve(img);
11605 };
11606
11607 img.onerror = function () {
11608 reject(new Error('Error during JPEG image loading'));
11609 };
11610
11611 img.src = imageData;
11612 }).then(function (img) {
11613 pageProxy.objs.resolve(id, img);
11614 });
11615
11616 case 'Image':
11617 pageProxy.objs.resolve(id, imageData);
11618 var MAX_IMAGE_SIZE_TO_STORE = 8000000;
11619
11620 if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {
11621 pageProxy.cleanupAfterRender = true;
11622 }
11623
11624 break;
11625
11626 default:
11627 throw new Error("Got unknown object type ".concat(type));
11628 }
11629 }, this);
11630 messageHandler.on('DocProgress', function (data) {
11631 if (this.destroyed) {
11632 return;
11633 }
11634
11635 if (loadingTask.onProgress) {
11636 loadingTask.onProgress({
11637 loaded: data.loaded,
11638 total: data.total
11639 });
11640 }
11641 }, this);
11642 messageHandler.on('PageError', function (data) {
11643 if (this.destroyed) {
11644 return;
11645 }
11646
11647 var page = this.pageCache[data.pageNum - 1];
11648 var intentState = page.intentStates[data.intent];
11649
11650 if (intentState.displayReadyCapability) {
11651 intentState.displayReadyCapability.reject(data.error);
11652 } else {
11653 throw new Error(data.error);
11654 }
11655
11656 if (intentState.operatorList) {
11657 intentState.operatorList.lastChunk = true;
11658
11659 for (var i = 0; i < intentState.renderTasks.length; i++) {
11660 intentState.renderTasks[i].operatorListChanged();
11661 }
11662 }
11663 }, this);
11664 messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this);
11665 messageHandler.on('JpegDecode', function (data) {
11666 if (this.destroyed) {
11667 return Promise.reject(new Error('Worker was destroyed'));
11668 }
11669
11670 if (typeof document === 'undefined') {
11671 return Promise.reject(new Error('"document" is not defined.'));
11672 }
11673
11674 var _data3 = _slicedToArray(data, 2),
11675 imageUrl = _data3[0],
11676 components = _data3[1];
11677
11678 if (components !== 3 && components !== 1) {
11679 return Promise.reject(new Error('Only 3 components or 1 component can be returned'));
11680 }
11681
11682 return new Promise(function (resolve, reject) {
11683 var img = new Image();
11684
11685 img.onload = function () {
11686 var width = img.width;
11687 var height = img.height;
11688 var size = width * height;
11689 var rgbaLength = size * 4;
11690 var buf = new Uint8ClampedArray(size * components);
11691 var tmpCanvas = document.createElement('canvas');
11692 tmpCanvas.width = width;
11693 tmpCanvas.height = height;
11694 var tmpCtx = tmpCanvas.getContext('2d');
11695 tmpCtx.drawImage(img, 0, 0);
11696 var data = tmpCtx.getImageData(0, 0, width, height).data;
11697
11698 if (components === 3) {
11699 for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {
11700 buf[j] = data[i];
11701 buf[j + 1] = data[i + 1];
11702 buf[j + 2] = data[i + 2];
11703 }
11704 } else if (components === 1) {
11705 for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) {
11706 buf[_j] = data[_i2];
11707 }
11708 }
11709
11710 resolve({
11711 data: buf,
11712 width: width,
11713 height: height
11714 });
11715 };
11716
11717 img.onerror = function () {
11718 reject(new Error('JpegDecode failed to load image'));
11719 };
11720
11721 img.src = imageUrl;
11722 });
11723 }, this);
11724 messageHandler.on('FetchBuiltInCMap', function (data) {
11725 if (this.destroyed) {
11726 return Promise.reject(new Error('Worker was destroyed'));
11727 }
11728
11729 return this.CMapReaderFactory.fetch({
11730 name: data.name
11731 });
11732 }, this);
11733 }
11734 }, {
11735 key: "_onUnsupportedFeature",
11736 value: function _onUnsupportedFeature(_ref10) {
11737 var featureId = _ref10.featureId;
11738
11739 if (this.destroyed) {
11740 return;
11741 }
11742
11743 if (this.loadingTask.onUnsupportedFeature) {
11744 this.loadingTask.onUnsupportedFeature(featureId);
11745 }
11746 }
11747 }, {
11748 key: "getData",
11749 value: function getData() {
11750 return this.messageHandler.sendWithPromise('GetData', null);
11751 }
11752 }, {
11753 key: "getPage",
11754 value: function getPage(pageNumber) {
11755 var _this13 = this;
11756
11757 if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) {
11758 return Promise.reject(new Error('Invalid page request'));
11759 }
11760
11761 var pageIndex = pageNumber - 1;
11762
11763 if (pageIndex in this.pagePromises) {
11764 return this.pagePromises[pageIndex];
11765 }
11766
11767 var promise = this.messageHandler.sendWithPromise('GetPage', {
11768 pageIndex: pageIndex
11769 }).then(function (pageInfo) {
11770 if (_this13.destroyed) {
11771 throw new Error('Transport destroyed');
11772 }
11773
11774 var page = new PDFPageProxy(pageIndex, pageInfo, _this13, _this13._params.pdfBug);
11775 _this13.pageCache[pageIndex] = page;
11776 return page;
11777 });
11778 this.pagePromises[pageIndex] = promise;
11779 return promise;
11780 }
11781 }, {
11782 key: "getPageIndex",
11783 value: function getPageIndex(ref) {
11784 return this.messageHandler.sendWithPromise('GetPageIndex', {
11785 ref: ref
11786 }).catch(function (reason) {
11787 return Promise.reject(new Error(reason));
11788 });
11789 }
11790 }, {
11791 key: "getAnnotations",
11792 value: function getAnnotations(pageIndex, intent) {
11793 return this.messageHandler.sendWithPromise('GetAnnotations', {
11794 pageIndex: pageIndex,
11795 intent: intent
11796 });
11797 }
11798 }, {
11799 key: "getDestinations",
11800 value: function getDestinations() {
11801 return this.messageHandler.sendWithPromise('GetDestinations', null);
11802 }
11803 }, {
11804 key: "getDestination",
11805 value: function getDestination(id) {
11806 if (typeof id !== 'string') {
11807 return Promise.reject(new Error('Invalid destination request.'));
11808 }
11809
11810 return this.messageHandler.sendWithPromise('GetDestination', {
11811 id: id
11812 });
11813 }
11814 }, {
11815 key: "getPageLabels",
11816 value: function getPageLabels() {
11817 return this.messageHandler.sendWithPromise('GetPageLabels', null);
11818 }
11819 }, {
11820 key: "getPageMode",
11821 value: function getPageMode() {
11822 return this.messageHandler.sendWithPromise('GetPageMode', null);
11823 }
11824 }, {
11825 key: "getOpenActionDestination",
11826 value: function getOpenActionDestination() {
11827 return this.messageHandler.sendWithPromise('getOpenActionDestination', null);
11828 }
11829 }, {
11830 key: "getAttachments",
11831 value: function getAttachments() {
11832 return this.messageHandler.sendWithPromise('GetAttachments', null);
11833 }
11834 }, {
11835 key: "getJavaScript",
11836 value: function getJavaScript() {
11837 return this.messageHandler.sendWithPromise('GetJavaScript', null);
11838 }
11839 }, {
11840 key: "getOutline",
11841 value: function getOutline() {
11842 return this.messageHandler.sendWithPromise('GetOutline', null);
11843 }
11844 }, {
11845 key: "getPermissions",
11846 value: function getPermissions() {
11847 return this.messageHandler.sendWithPromise('GetPermissions', null);
11848 }
11849 }, {
11850 key: "getMetadata",
11851 value: function getMetadata() {
11852 var _this14 = this;
11853
11854 return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) {
11855 return {
11856 info: results[0],
11857 metadata: results[1] ? new _metadata.Metadata(results[1]) : null,
11858 contentDispositionFilename: _this14._fullReader ? _this14._fullReader.filename : null
11859 };
11860 });
11861 }
11862 }, {
11863 key: "getStats",
11864 value: function getStats() {
11865 return this.messageHandler.sendWithPromise('GetStats', null);
11866 }
11867 }, {
11868 key: "startCleanup",
11869 value: function startCleanup() {
11870 var _this15 = this;
11871
11872 this.messageHandler.sendWithPromise('Cleanup', null).then(function () {
11873 for (var i = 0, ii = _this15.pageCache.length; i < ii; i++) {
11874 var page = _this15.pageCache[i];
11875
11876 if (page) {
11877 page.cleanup();
11878 }
11879 }
11880
11881 _this15.commonObjs.clear();
11882
11883 _this15.fontLoader.clear();
11884 });
11885 }
11886 }, {
11887 key: "loadingParams",
11888 get: function get() {
11889 var params = this._params;
11890 return (0, _util.shadow)(this, 'loadingParams', {
11891 disableAutoFetch: params.disableAutoFetch,
11892 disableCreateObjectURL: params.disableCreateObjectURL,
11893 disableFontFace: params.disableFontFace,
11894 nativeImageDecoderSupport: params.nativeImageDecoderSupport
11895 });
11896 }
11897 }]);
11898
11899 return WorkerTransport;
11900}();
11901
11902var PDFObjects =
11903/*#__PURE__*/
11904function () {
11905 function PDFObjects() {
11906 _classCallCheck(this, PDFObjects);
11907
11908 this._objs = Object.create(null);
11909 }
11910
11911 _createClass(PDFObjects, [{
11912 key: "_ensureObj",
11913 value: function _ensureObj(objId) {
11914 if (this._objs[objId]) {
11915 return this._objs[objId];
11916 }
11917
11918 return this._objs[objId] = {
11919 capability: (0, _util.createPromiseCapability)(),
11920 data: null,
11921 resolved: false
11922 };
11923 }
11924 }, {
11925 key: "get",
11926 value: function get(objId) {
11927 var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
11928
11929 if (callback) {
11930 this._ensureObj(objId).capability.promise.then(callback);
11931
11932 return null;
11933 }
11934
11935 var obj = this._objs[objId];
11936
11937 if (!obj || !obj.resolved) {
11938 throw new Error("Requesting object that isn't resolved yet ".concat(objId, "."));
11939 }
11940
11941 return obj.data;
11942 }
11943 }, {
11944 key: "has",
11945 value: function has(objId) {
11946 var obj = this._objs[objId];
11947 return obj ? obj.resolved : false;
11948 }
11949 }, {
11950 key: "resolve",
11951 value: function resolve(objId, data) {
11952 var obj = this._ensureObj(objId);
11953
11954 obj.resolved = true;
11955 obj.data = data;
11956 obj.capability.resolve(data);
11957 }
11958 }, {
11959 key: "clear",
11960 value: function clear() {
11961 this._objs = Object.create(null);
11962 }
11963 }]);
11964
11965 return PDFObjects;
11966}();
11967
11968var RenderTask =
11969/*#__PURE__*/
11970function () {
11971 function RenderTask(internalRenderTask) {
11972 _classCallCheck(this, RenderTask);
11973
11974 this._internalRenderTask = internalRenderTask;
11975 this.onContinue = null;
11976 }
11977
11978 _createClass(RenderTask, [{
11979 key: "cancel",
11980 value: function cancel() {
11981 this._internalRenderTask.cancel();
11982 }
11983 }, {
11984 key: "then",
11985 value: function then(onFulfilled, onRejected) {
11986 (0, _util.deprecated)('RenderTask.then method, use the `promise` getter instead.');
11987 return this.promise.then.apply(this.promise, arguments);
11988 }
11989 }, {
11990 key: "promise",
11991 get: function get() {
11992 return this._internalRenderTask.capability.promise;
11993 }
11994 }]);
11995
11996 return RenderTask;
11997}();
11998
11999var InternalRenderTask = function InternalRenderTaskClosure() {
12000 var canvasInRendering = new WeakSet();
12001
12002 var InternalRenderTask =
12003 /*#__PURE__*/
12004 function () {
12005 function InternalRenderTask(_ref11) {
12006 var callback = _ref11.callback,
12007 params = _ref11.params,
12008 objs = _ref11.objs,
12009 commonObjs = _ref11.commonObjs,
12010 operatorList = _ref11.operatorList,
12011 pageNumber = _ref11.pageNumber,
12012 canvasFactory = _ref11.canvasFactory,
12013 webGLContext = _ref11.webGLContext,
12014 _ref11$useRequestAnim = _ref11.useRequestAnimationFrame,
12015 useRequestAnimationFrame = _ref11$useRequestAnim === void 0 ? false : _ref11$useRequestAnim,
12016 _ref11$pdfBug = _ref11.pdfBug,
12017 pdfBug = _ref11$pdfBug === void 0 ? false : _ref11$pdfBug;
12018
12019 _classCallCheck(this, InternalRenderTask);
12020
12021 this.callback = callback;
12022 this.params = params;
12023 this.objs = objs;
12024 this.commonObjs = commonObjs;
12025 this.operatorListIdx = null;
12026 this.operatorList = operatorList;
12027 this.pageNumber = pageNumber;
12028 this.canvasFactory = canvasFactory;
12029 this.webGLContext = webGLContext;
12030 this._pdfBug = pdfBug;
12031 this.running = false;
12032 this.graphicsReadyCallback = null;
12033 this.graphicsReady = false;
12034 this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== 'undefined';
12035 this.cancelled = false;
12036 this.capability = (0, _util.createPromiseCapability)();
12037 this.task = new RenderTask(this);
12038 this._continueBound = this._continue.bind(this);
12039 this._scheduleNextBound = this._scheduleNext.bind(this);
12040 this._nextBound = this._next.bind(this);
12041 this._canvas = params.canvasContext.canvas;
12042 }
12043
12044 _createClass(InternalRenderTask, [{
12045 key: "initializeGraphics",
12046 value: function initializeGraphics() {
12047 var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
12048
12049 if (this.cancelled) {
12050 return;
12051 }
12052
12053 if (this._canvas) {
12054 if (canvasInRendering.has(this._canvas)) {
12055 throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.');
12056 }
12057
12058 canvasInRendering.add(this._canvas);
12059 }
12060
12061 if (this._pdfBug && _global_scope.default.StepperManager && _global_scope.default.StepperManager.enabled) {
12062 this.stepper = _global_scope.default.StepperManager.create(this.pageNumber - 1);
12063 this.stepper.init(this.operatorList);
12064 this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
12065 }
12066
12067 var _this$params = this.params,
12068 canvasContext = _this$params.canvasContext,
12069 viewport = _this$params.viewport,
12070 transform = _this$params.transform,
12071 imageLayer = _this$params.imageLayer,
12072 background = _this$params.background;
12073 this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer);
12074 this.gfx.beginDrawing({
12075 transform: transform,
12076 viewport: viewport,
12077 transparency: transparency,
12078 background: background
12079 });
12080 this.operatorListIdx = 0;
12081 this.graphicsReady = true;
12082
12083 if (this.graphicsReadyCallback) {
12084 this.graphicsReadyCallback();
12085 }
12086 }
12087 }, {
12088 key: "cancel",
12089 value: function cancel() {
12090 var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
12091 this.running = false;
12092 this.cancelled = true;
12093
12094 if (this.gfx) {
12095 this.gfx.endDrawing();
12096 }
12097
12098 if (this._canvas) {
12099 canvasInRendering.delete(this._canvas);
12100 }
12101
12102 this.callback(error || new _dom_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this.pageNumber), 'canvas'));
12103 }
12104 }, {
12105 key: "operatorListChanged",
12106 value: function operatorListChanged() {
12107 if (!this.graphicsReady) {
12108 if (!this.graphicsReadyCallback) {
12109 this.graphicsReadyCallback = this._continueBound;
12110 }
12111
12112 return;
12113 }
12114
12115 if (this.stepper) {
12116 this.stepper.updateOperatorList(this.operatorList);
12117 }
12118
12119 if (this.running) {
12120 return;
12121 }
12122
12123 this._continue();
12124 }
12125 }, {
12126 key: "_continue",
12127 value: function _continue() {
12128 this.running = true;
12129
12130 if (this.cancelled) {
12131 return;
12132 }
12133
12134 if (this.task.onContinue) {
12135 this.task.onContinue(this._scheduleNextBound);
12136 } else {
12137 this._scheduleNext();
12138 }
12139 }
12140 }, {
12141 key: "_scheduleNext",
12142 value: function _scheduleNext() {
12143 var _this16 = this;
12144
12145 if (this._useRequestAnimationFrame) {
12146 window.requestAnimationFrame(function () {
12147 _this16._nextBound().catch(_this16.cancel.bind(_this16));
12148 });
12149 } else {
12150 Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));
12151 }
12152 }
12153 }, {
12154 key: "_next",
12155 value: function () {
12156 var _next2 = _asyncToGenerator(
12157 /*#__PURE__*/
12158 _regenerator.default.mark(function _callee() {
12159 return _regenerator.default.wrap(function _callee$(_context) {
12160 while (1) {
12161 switch (_context.prev = _context.next) {
12162 case 0:
12163 if (!this.cancelled) {
12164 _context.next = 2;
12165 break;
12166 }
12167
12168 return _context.abrupt("return");
12169
12170 case 2:
12171 this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);
12172
12173 if (this.operatorListIdx === this.operatorList.argsArray.length) {
12174 this.running = false;
12175
12176 if (this.operatorList.lastChunk) {
12177 this.gfx.endDrawing();
12178
12179 if (this._canvas) {
12180 canvasInRendering.delete(this._canvas);
12181 }
12182
12183 this.callback();
12184 }
12185 }
12186
12187 case 4:
12188 case "end":
12189 return _context.stop();
12190 }
12191 }
12192 }, _callee, this);
12193 }));
12194
12195 function _next() {
12196 return _next2.apply(this, arguments);
12197 }
12198
12199 return _next;
12200 }()
12201 }]);
12202
12203 return InternalRenderTask;
12204 }();
12205
12206 return InternalRenderTask;
12207}();
12208
12209var version = '2.1.266';
12210exports.version = version;
12211var build = '81f5835c';
12212exports.build = build;
12213
12214/***/ }),
12215/* 147 */
12216/***/ (function(module, exports, __w_pdfjs_require__) {
12217
12218"use strict";
12219
12220
12221module.exports = __w_pdfjs_require__(148);
12222
12223/***/ }),
12224/* 148 */
12225/***/ (function(module, exports, __w_pdfjs_require__) {
12226
12227"use strict";
12228
12229
12230function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
12231
12232var g = function () {
12233 return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" && self;
12234}() || Function("return this")();
12235
12236var hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0;
12237var oldRuntime = hadRuntime && g.regeneratorRuntime;
12238g.regeneratorRuntime = undefined;
12239module.exports = __w_pdfjs_require__(149);
12240
12241if (hadRuntime) {
12242 g.regeneratorRuntime = oldRuntime;
12243} else {
12244 try {
12245 delete g.regeneratorRuntime;
12246 } catch (e) {
12247 g.regeneratorRuntime = undefined;
12248 }
12249}
12250
12251/***/ }),
12252/* 149 */
12253/***/ (function(module, exports, __w_pdfjs_require__) {
12254
12255"use strict";
12256/* WEBPACK VAR INJECTION */(function(module) {
12257
12258function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
12259
12260!function (global) {
12261 "use strict";
12262
12263 var Op = Object.prototype;
12264 var hasOwn = Op.hasOwnProperty;
12265 var undefined;
12266 var $Symbol = typeof Symbol === "function" ? Symbol : {};
12267 var iteratorSymbol = $Symbol.iterator || "@@iterator";
12268 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
12269 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
12270 var inModule = ( false ? undefined : _typeof(module)) === "object";
12271 var runtime = global.regeneratorRuntime;
12272
12273 if (runtime) {
12274 if (inModule) {
12275 module.exports = runtime;
12276 }
12277
12278 return;
12279 }
12280
12281 runtime = global.regeneratorRuntime = inModule ? module.exports : {};
12282
12283 function wrap(innerFn, outerFn, self, tryLocsList) {
12284 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
12285 var generator = Object.create(protoGenerator.prototype);
12286 var context = new Context(tryLocsList || []);
12287 generator._invoke = makeInvokeMethod(innerFn, self, context);
12288 return generator;
12289 }
12290
12291 runtime.wrap = wrap;
12292
12293 function tryCatch(fn, obj, arg) {
12294 try {
12295 return {
12296 type: "normal",
12297 arg: fn.call(obj, arg)
12298 };
12299 } catch (err) {
12300 return {
12301 type: "throw",
12302 arg: err
12303 };
12304 }
12305 }
12306
12307 var GenStateSuspendedStart = "suspendedStart";
12308 var GenStateSuspendedYield = "suspendedYield";
12309 var GenStateExecuting = "executing";
12310 var GenStateCompleted = "completed";
12311 var ContinueSentinel = {};
12312
12313 function Generator() {}
12314
12315 function GeneratorFunction() {}
12316
12317 function GeneratorFunctionPrototype() {}
12318
12319 var IteratorPrototype = {};
12320
12321 IteratorPrototype[iteratorSymbol] = function () {
12322 return this;
12323 };
12324
12325 var getProto = Object.getPrototypeOf;
12326 var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
12327
12328 if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
12329 IteratorPrototype = NativeIteratorPrototype;
12330 }
12331
12332 var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
12333 GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
12334 GeneratorFunctionPrototype.constructor = GeneratorFunction;
12335 GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction";
12336
12337 function defineIteratorMethods(prototype) {
12338 ["next", "throw", "return"].forEach(function (method) {
12339 prototype[method] = function (arg) {
12340 return this._invoke(method, arg);
12341 };
12342 });
12343 }
12344
12345 runtime.isGeneratorFunction = function (genFun) {
12346 var ctor = typeof genFun === "function" && genFun.constructor;
12347 return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false;
12348 };
12349
12350 runtime.mark = function (genFun) {
12351 if (Object.setPrototypeOf) {
12352 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
12353 } else {
12354 genFun.__proto__ = GeneratorFunctionPrototype;
12355
12356 if (!(toStringTagSymbol in genFun)) {
12357 genFun[toStringTagSymbol] = "GeneratorFunction";
12358 }
12359 }
12360
12361 genFun.prototype = Object.create(Gp);
12362 return genFun;
12363 };
12364
12365 runtime.awrap = function (arg) {
12366 return {
12367 __await: arg
12368 };
12369 };
12370
12371 function AsyncIterator(generator) {
12372 function invoke(method, arg, resolve, reject) {
12373 var record = tryCatch(generator[method], generator, arg);
12374
12375 if (record.type === "throw") {
12376 reject(record.arg);
12377 } else {
12378 var result = record.arg;
12379 var value = result.value;
12380
12381 if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) {
12382 return Promise.resolve(value.__await).then(function (value) {
12383 invoke("next", value, resolve, reject);
12384 }, function (err) {
12385 invoke("throw", err, resolve, reject);
12386 });
12387 }
12388
12389 return Promise.resolve(value).then(function (unwrapped) {
12390 result.value = unwrapped;
12391 resolve(result);
12392 }, function (error) {
12393 return invoke("throw", error, resolve, reject);
12394 });
12395 }
12396 }
12397
12398 var previousPromise;
12399
12400 function enqueue(method, arg) {
12401 function callInvokeWithMethodAndArg() {
12402 return new Promise(function (resolve, reject) {
12403 invoke(method, arg, resolve, reject);
12404 });
12405 }
12406
12407 return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
12408 }
12409
12410 this._invoke = enqueue;
12411 }
12412
12413 defineIteratorMethods(AsyncIterator.prototype);
12414
12415 AsyncIterator.prototype[asyncIteratorSymbol] = function () {
12416 return this;
12417 };
12418
12419 runtime.AsyncIterator = AsyncIterator;
12420
12421 runtime.async = function (innerFn, outerFn, self, tryLocsList) {
12422 var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));
12423 return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
12424 return result.done ? result.value : iter.next();
12425 });
12426 };
12427
12428 function makeInvokeMethod(innerFn, self, context) {
12429 var state = GenStateSuspendedStart;
12430 return function invoke(method, arg) {
12431 if (state === GenStateExecuting) {
12432 throw new Error("Generator is already running");
12433 }
12434
12435 if (state === GenStateCompleted) {
12436 if (method === "throw") {
12437 throw arg;
12438 }
12439
12440 return doneResult();
12441 }
12442
12443 context.method = method;
12444 context.arg = arg;
12445
12446 while (true) {
12447 var delegate = context.delegate;
12448
12449 if (delegate) {
12450 var delegateResult = maybeInvokeDelegate(delegate, context);
12451
12452 if (delegateResult) {
12453 if (delegateResult === ContinueSentinel) continue;
12454 return delegateResult;
12455 }
12456 }
12457
12458 if (context.method === "next") {
12459 context.sent = context._sent = context.arg;
12460 } else if (context.method === "throw") {
12461 if (state === GenStateSuspendedStart) {
12462 state = GenStateCompleted;
12463 throw context.arg;
12464 }
12465
12466 context.dispatchException(context.arg);
12467 } else if (context.method === "return") {
12468 context.abrupt("return", context.arg);
12469 }
12470
12471 state = GenStateExecuting;
12472 var record = tryCatch(innerFn, self, context);
12473
12474 if (record.type === "normal") {
12475 state = context.done ? GenStateCompleted : GenStateSuspendedYield;
12476
12477 if (record.arg === ContinueSentinel) {
12478 continue;
12479 }
12480
12481 return {
12482 value: record.arg,
12483 done: context.done
12484 };
12485 } else if (record.type === "throw") {
12486 state = GenStateCompleted;
12487 context.method = "throw";
12488 context.arg = record.arg;
12489 }
12490 }
12491 };
12492 }
12493
12494 function maybeInvokeDelegate(delegate, context) {
12495 var method = delegate.iterator[context.method];
12496
12497 if (method === undefined) {
12498 context.delegate = null;
12499
12500 if (context.method === "throw") {
12501 if (delegate.iterator.return) {
12502 context.method = "return";
12503 context.arg = undefined;
12504 maybeInvokeDelegate(delegate, context);
12505
12506 if (context.method === "throw") {
12507 return ContinueSentinel;
12508 }
12509 }
12510
12511 context.method = "throw";
12512 context.arg = new TypeError("The iterator does not provide a 'throw' method");
12513 }
12514
12515 return ContinueSentinel;
12516 }
12517
12518 var record = tryCatch(method, delegate.iterator, context.arg);
12519
12520 if (record.type === "throw") {
12521 context.method = "throw";
12522 context.arg = record.arg;
12523 context.delegate = null;
12524 return ContinueSentinel;
12525 }
12526
12527 var info = record.arg;
12528
12529 if (!info) {
12530 context.method = "throw";
12531 context.arg = new TypeError("iterator result is not an object");
12532 context.delegate = null;
12533 return ContinueSentinel;
12534 }
12535
12536 if (info.done) {
12537 context[delegate.resultName] = info.value;
12538 context.next = delegate.nextLoc;
12539
12540 if (context.method !== "return") {
12541 context.method = "next";
12542 context.arg = undefined;
12543 }
12544 } else {
12545 return info;
12546 }
12547
12548 context.delegate = null;
12549 return ContinueSentinel;
12550 }
12551
12552 defineIteratorMethods(Gp);
12553 Gp[toStringTagSymbol] = "Generator";
12554
12555 Gp[iteratorSymbol] = function () {
12556 return this;
12557 };
12558
12559 Gp.toString = function () {
12560 return "[object Generator]";
12561 };
12562
12563 function pushTryEntry(locs) {
12564 var entry = {
12565 tryLoc: locs[0]
12566 };
12567
12568 if (1 in locs) {
12569 entry.catchLoc = locs[1];
12570 }
12571
12572 if (2 in locs) {
12573 entry.finallyLoc = locs[2];
12574 entry.afterLoc = locs[3];
12575 }
12576
12577 this.tryEntries.push(entry);
12578 }
12579
12580 function resetTryEntry(entry) {
12581 var record = entry.completion || {};
12582 record.type = "normal";
12583 delete record.arg;
12584 entry.completion = record;
12585 }
12586
12587 function Context(tryLocsList) {
12588 this.tryEntries = [{
12589 tryLoc: "root"
12590 }];
12591 tryLocsList.forEach(pushTryEntry, this);
12592 this.reset(true);
12593 }
12594
12595 runtime.keys = function (object) {
12596 var keys = [];
12597
12598 for (var key in object) {
12599 keys.push(key);
12600 }
12601
12602 keys.reverse();
12603 return function next() {
12604 while (keys.length) {
12605 var key = keys.pop();
12606
12607 if (key in object) {
12608 next.value = key;
12609 next.done = false;
12610 return next;
12611 }
12612 }
12613
12614 next.done = true;
12615 return next;
12616 };
12617 };
12618
12619 function values(iterable) {
12620 if (iterable) {
12621 var iteratorMethod = iterable[iteratorSymbol];
12622
12623 if (iteratorMethod) {
12624 return iteratorMethod.call(iterable);
12625 }
12626
12627 if (typeof iterable.next === "function") {
12628 return iterable;
12629 }
12630
12631 if (!isNaN(iterable.length)) {
12632 var i = -1,
12633 next = function next() {
12634 while (++i < iterable.length) {
12635 if (hasOwn.call(iterable, i)) {
12636 next.value = iterable[i];
12637 next.done = false;
12638 return next;
12639 }
12640 }
12641
12642 next.value = undefined;
12643 next.done = true;
12644 return next;
12645 };
12646
12647 return next.next = next;
12648 }
12649 }
12650
12651 return {
12652 next: doneResult
12653 };
12654 }
12655
12656 runtime.values = values;
12657
12658 function doneResult() {
12659 return {
12660 value: undefined,
12661 done: true
12662 };
12663 }
12664
12665 Context.prototype = {
12666 constructor: Context,
12667 reset: function reset(skipTempReset) {
12668 this.prev = 0;
12669 this.next = 0;
12670 this.sent = this._sent = undefined;
12671 this.done = false;
12672 this.delegate = null;
12673 this.method = "next";
12674 this.arg = undefined;
12675 this.tryEntries.forEach(resetTryEntry);
12676
12677 if (!skipTempReset) {
12678 for (var name in this) {
12679 if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {
12680 this[name] = undefined;
12681 }
12682 }
12683 }
12684 },
12685 stop: function stop() {
12686 this.done = true;
12687 var rootEntry = this.tryEntries[0];
12688 var rootRecord = rootEntry.completion;
12689
12690 if (rootRecord.type === "throw") {
12691 throw rootRecord.arg;
12692 }
12693
12694 return this.rval;
12695 },
12696 dispatchException: function dispatchException(exception) {
12697 if (this.done) {
12698 throw exception;
12699 }
12700
12701 var context = this;
12702
12703 function handle(loc, caught) {
12704 record.type = "throw";
12705 record.arg = exception;
12706 context.next = loc;
12707
12708 if (caught) {
12709 context.method = "next";
12710 context.arg = undefined;
12711 }
12712
12713 return !!caught;
12714 }
12715
12716 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
12717 var entry = this.tryEntries[i];
12718 var record = entry.completion;
12719
12720 if (entry.tryLoc === "root") {
12721 return handle("end");
12722 }
12723
12724 if (entry.tryLoc <= this.prev) {
12725 var hasCatch = hasOwn.call(entry, "catchLoc");
12726 var hasFinally = hasOwn.call(entry, "finallyLoc");
12727
12728 if (hasCatch && hasFinally) {
12729 if (this.prev < entry.catchLoc) {
12730 return handle(entry.catchLoc, true);
12731 } else if (this.prev < entry.finallyLoc) {
12732 return handle(entry.finallyLoc);
12733 }
12734 } else if (hasCatch) {
12735 if (this.prev < entry.catchLoc) {
12736 return handle(entry.catchLoc, true);
12737 }
12738 } else if (hasFinally) {
12739 if (this.prev < entry.finallyLoc) {
12740 return handle(entry.finallyLoc);
12741 }
12742 } else {
12743 throw new Error("try statement without catch or finally");
12744 }
12745 }
12746 }
12747 },
12748 abrupt: function abrupt(type, arg) {
12749 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
12750 var entry = this.tryEntries[i];
12751
12752 if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
12753 var finallyEntry = entry;
12754 break;
12755 }
12756 }
12757
12758 if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {
12759 finallyEntry = null;
12760 }
12761
12762 var record = finallyEntry ? finallyEntry.completion : {};
12763 record.type = type;
12764 record.arg = arg;
12765
12766 if (finallyEntry) {
12767 this.method = "next";
12768 this.next = finallyEntry.finallyLoc;
12769 return ContinueSentinel;
12770 }
12771
12772 return this.complete(record);
12773 },
12774 complete: function complete(record, afterLoc) {
12775 if (record.type === "throw") {
12776 throw record.arg;
12777 }
12778
12779 if (record.type === "break" || record.type === "continue") {
12780 this.next = record.arg;
12781 } else if (record.type === "return") {
12782 this.rval = this.arg = record.arg;
12783 this.method = "return";
12784 this.next = "end";
12785 } else if (record.type === "normal" && afterLoc) {
12786 this.next = afterLoc;
12787 }
12788
12789 return ContinueSentinel;
12790 },
12791 finish: function finish(finallyLoc) {
12792 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
12793 var entry = this.tryEntries[i];
12794
12795 if (entry.finallyLoc === finallyLoc) {
12796 this.complete(entry.completion, entry.afterLoc);
12797 resetTryEntry(entry);
12798 return ContinueSentinel;
12799 }
12800 }
12801 },
12802 "catch": function _catch(tryLoc) {
12803 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
12804 var entry = this.tryEntries[i];
12805
12806 if (entry.tryLoc === tryLoc) {
12807 var record = entry.completion;
12808
12809 if (record.type === "throw") {
12810 var thrown = record.arg;
12811 resetTryEntry(entry);
12812 }
12813
12814 return thrown;
12815 }
12816 }
12817
12818 throw new Error("illegal catch attempt");
12819 },
12820 delegateYield: function delegateYield(iterable, resultName, nextLoc) {
12821 this.delegate = {
12822 iterator: values(iterable),
12823 resultName: resultName,
12824 nextLoc: nextLoc
12825 };
12826
12827 if (this.method === "next") {
12828 this.arg = undefined;
12829 }
12830
12831 return ContinueSentinel;
12832 }
12833 };
12834}(function () {
12835 return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" && self;
12836}() || Function("return this")());
12837/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(150)(module)))
12838
12839/***/ }),
12840/* 150 */
12841/***/ (function(module, exports, __w_pdfjs_require__) {
12842
12843"use strict";
12844
12845
12846module.exports = function (module) {
12847 if (!module.webpackPolyfill) {
12848 module.deprecate = function () {};
12849
12850 module.paths = [];
12851 if (!module.children) module.children = [];
12852 Object.defineProperty(module, "loaded", {
12853 enumerable: true,
12854 get: function get() {
12855 return module.l;
12856 }
12857 });
12858 Object.defineProperty(module, "id", {
12859 enumerable: true,
12860 get: function get() {
12861 return module.i;
12862 }
12863 });
12864 module.webpackPolyfill = 1;
12865 }
12866
12867 return module;
12868};
12869
12870/***/ }),
12871/* 151 */
12872/***/ (function(module, exports, __w_pdfjs_require__) {
12873
12874"use strict";
12875
12876
12877Object.defineProperty(exports, "__esModule", {
12878 value: true
12879});
12880exports.addLinkAttributes = addLinkAttributes;
12881exports.getFilenameFromUrl = getFilenameFromUrl;
12882exports.loadScript = loadScript;
12883exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;
12884
12885var _util = __w_pdfjs_require__(1);
12886
12887function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12888
12889function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
12890
12891function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
12892
12893var DEFAULT_LINK_REL = 'noopener noreferrer nofollow';
12894exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;
12895var SVG_NS = 'http://www.w3.org/2000/svg';
12896
12897var DOMCanvasFactory =
12898/*#__PURE__*/
12899function () {
12900 function DOMCanvasFactory() {
12901 _classCallCheck(this, DOMCanvasFactory);
12902 }
12903
12904 _createClass(DOMCanvasFactory, [{
12905 key: "create",
12906 value: function create(width, height) {
12907 if (width <= 0 || height <= 0) {
12908 throw new Error('invalid canvas size');
12909 }
12910
12911 var canvas = document.createElement('canvas');
12912 var context = canvas.getContext('2d');
12913 canvas.width = width;
12914 canvas.height = height;
12915 return {
12916 canvas: canvas,
12917 context: context
12918 };
12919 }
12920 }, {
12921 key: "reset",
12922 value: function reset(canvasAndContext, width, height) {
12923 if (!canvasAndContext.canvas) {
12924 throw new Error('canvas is not specified');
12925 }
12926
12927 if (width <= 0 || height <= 0) {
12928 throw new Error('invalid canvas size');
12929 }
12930
12931 canvasAndContext.canvas.width = width;
12932 canvasAndContext.canvas.height = height;
12933 }
12934 }, {
12935 key: "destroy",
12936 value: function destroy(canvasAndContext) {
12937 if (!canvasAndContext.canvas) {
12938 throw new Error('canvas is not specified');
12939 }
12940
12941 canvasAndContext.canvas.width = 0;
12942 canvasAndContext.canvas.height = 0;
12943 canvasAndContext.canvas = null;
12944 canvasAndContext.context = null;
12945 }
12946 }]);
12947
12948 return DOMCanvasFactory;
12949}();
12950
12951exports.DOMCanvasFactory = DOMCanvasFactory;
12952
12953var DOMCMapReaderFactory =
12954/*#__PURE__*/
12955function () {
12956 function DOMCMapReaderFactory(_ref) {
12957 var _ref$baseUrl = _ref.baseUrl,
12958 baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl,
12959 _ref$isCompressed = _ref.isCompressed,
12960 isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed;
12961
12962 _classCallCheck(this, DOMCMapReaderFactory);
12963
12964 this.baseUrl = baseUrl;
12965 this.isCompressed = isCompressed;
12966 }
12967
12968 _createClass(DOMCMapReaderFactory, [{
12969 key: "fetch",
12970 value: function fetch(_ref2) {
12971 var _this = this;
12972
12973 var name = _ref2.name;
12974
12975 if (!this.baseUrl) {
12976 return Promise.reject(new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'));
12977 }
12978
12979 if (!name) {
12980 return Promise.reject(new Error('CMap name must be specified.'));
12981 }
12982
12983 return new Promise(function (resolve, reject) {
12984 var url = _this.baseUrl + name + (_this.isCompressed ? '.bcmap' : '');
12985 var request = new XMLHttpRequest();
12986 request.open('GET', url, true);
12987
12988 if (_this.isCompressed) {
12989 request.responseType = 'arraybuffer';
12990 }
12991
12992 request.onreadystatechange = function () {
12993 if (request.readyState !== XMLHttpRequest.DONE) {
12994 return;
12995 }
12996
12997 if (request.status === 200 || request.status === 0) {
12998 var data;
12999
13000 if (_this.isCompressed && request.response) {
13001 data = new Uint8Array(request.response);
13002 } else if (!_this.isCompressed && request.responseText) {
13003 data = (0, _util.stringToBytes)(request.responseText);
13004 }
13005
13006 if (data) {
13007 resolve({
13008 cMapData: data,
13009 compressionType: _this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE
13010 });
13011 return;
13012 }
13013 }
13014
13015 reject(new Error('Unable to load ' + (_this.isCompressed ? 'binary ' : '') + 'CMap at: ' + url));
13016 };
13017
13018 request.send(null);
13019 });
13020 }
13021 }]);
13022
13023 return DOMCMapReaderFactory;
13024}();
13025
13026exports.DOMCMapReaderFactory = DOMCMapReaderFactory;
13027
13028var DOMSVGFactory =
13029/*#__PURE__*/
13030function () {
13031 function DOMSVGFactory() {
13032 _classCallCheck(this, DOMSVGFactory);
13033 }
13034
13035 _createClass(DOMSVGFactory, [{
13036 key: "create",
13037 value: function create(width, height) {
13038 (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions');
13039 var svg = document.createElementNS(SVG_NS, 'svg:svg');
13040 svg.setAttribute('version', '1.1');
13041 svg.setAttribute('width', width + 'px');
13042 svg.setAttribute('height', height + 'px');
13043 svg.setAttribute('preserveAspectRatio', 'none');
13044 svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height);
13045 return svg;
13046 }
13047 }, {
13048 key: "createElement",
13049 value: function createElement(type) {
13050 (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type');
13051 return document.createElementNS(SVG_NS, type);
13052 }
13053 }]);
13054
13055 return DOMSVGFactory;
13056}();
13057
13058exports.DOMSVGFactory = DOMSVGFactory;
13059
13060var PageViewport =
13061/*#__PURE__*/
13062function () {
13063 function PageViewport(_ref3) {
13064 var viewBox = _ref3.viewBox,
13065 scale = _ref3.scale,
13066 rotation = _ref3.rotation,
13067 _ref3$offsetX = _ref3.offsetX,
13068 offsetX = _ref3$offsetX === void 0 ? 0 : _ref3$offsetX,
13069 _ref3$offsetY = _ref3.offsetY,
13070 offsetY = _ref3$offsetY === void 0 ? 0 : _ref3$offsetY,
13071 _ref3$dontFlip = _ref3.dontFlip,
13072 dontFlip = _ref3$dontFlip === void 0 ? false : _ref3$dontFlip;
13073
13074 _classCallCheck(this, PageViewport);
13075
13076 this.viewBox = viewBox;
13077 this.scale = scale;
13078 this.rotation = rotation;
13079 this.offsetX = offsetX;
13080 this.offsetY = offsetY;
13081 var centerX = (viewBox[2] + viewBox[0]) / 2;
13082 var centerY = (viewBox[3] + viewBox[1]) / 2;
13083 var rotateA, rotateB, rotateC, rotateD;
13084 rotation = rotation % 360;
13085 rotation = rotation < 0 ? rotation + 360 : rotation;
13086
13087 switch (rotation) {
13088 case 180:
13089 rotateA = -1;
13090 rotateB = 0;
13091 rotateC = 0;
13092 rotateD = 1;
13093 break;
13094
13095 case 90:
13096 rotateA = 0;
13097 rotateB = 1;
13098 rotateC = 1;
13099 rotateD = 0;
13100 break;
13101
13102 case 270:
13103 rotateA = 0;
13104 rotateB = -1;
13105 rotateC = -1;
13106 rotateD = 0;
13107 break;
13108
13109 default:
13110 rotateA = 1;
13111 rotateB = 0;
13112 rotateC = 0;
13113 rotateD = -1;
13114 break;
13115 }
13116
13117 if (dontFlip) {
13118 rotateC = -rotateC;
13119 rotateD = -rotateD;
13120 }
13121
13122 var offsetCanvasX, offsetCanvasY;
13123 var width, height;
13124
13125 if (rotateA === 0) {
13126 offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
13127 offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
13128 width = Math.abs(viewBox[3] - viewBox[1]) * scale;
13129 height = Math.abs(viewBox[2] - viewBox[0]) * scale;
13130 } else {
13131 offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
13132 offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
13133 width = Math.abs(viewBox[2] - viewBox[0]) * scale;
13134 height = Math.abs(viewBox[3] - viewBox[1]) * scale;
13135 }
13136
13137 this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];
13138 this.width = width;
13139 this.height = height;
13140 }
13141
13142 _createClass(PageViewport, [{
13143 key: "clone",
13144 value: function clone() {
13145 var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
13146 _ref4$scale = _ref4.scale,
13147 scale = _ref4$scale === void 0 ? this.scale : _ref4$scale,
13148 _ref4$rotation = _ref4.rotation,
13149 rotation = _ref4$rotation === void 0 ? this.rotation : _ref4$rotation,
13150 _ref4$dontFlip = _ref4.dontFlip,
13151 dontFlip = _ref4$dontFlip === void 0 ? false : _ref4$dontFlip;
13152
13153 return new PageViewport({
13154 viewBox: this.viewBox.slice(),
13155 scale: scale,
13156 rotation: rotation,
13157 offsetX: this.offsetX,
13158 offsetY: this.offsetY,
13159 dontFlip: dontFlip
13160 });
13161 }
13162 }, {
13163 key: "convertToViewportPoint",
13164 value: function convertToViewportPoint(x, y) {
13165 return _util.Util.applyTransform([x, y], this.transform);
13166 }
13167 }, {
13168 key: "convertToViewportRectangle",
13169 value: function convertToViewportRectangle(rect) {
13170 var tl = _util.Util.applyTransform([rect[0], rect[1]], this.transform);
13171
13172 var br = _util.Util.applyTransform([rect[2], rect[3]], this.transform);
13173
13174 return [tl[0], tl[1], br[0], br[1]];
13175 }
13176 }, {
13177 key: "convertToPdfPoint",
13178 value: function convertToPdfPoint(x, y) {
13179 return _util.Util.applyInverseTransform([x, y], this.transform);
13180 }
13181 }]);
13182
13183 return PageViewport;
13184}();
13185
13186exports.PageViewport = PageViewport;
13187
13188var RenderingCancelledException = function RenderingCancelledException() {
13189 function RenderingCancelledException(msg, type) {
13190 this.message = msg;
13191 this.type = type;
13192 }
13193
13194 RenderingCancelledException.prototype = new Error();
13195 RenderingCancelledException.prototype.name = 'RenderingCancelledException';
13196 RenderingCancelledException.constructor = RenderingCancelledException;
13197 return RenderingCancelledException;
13198}();
13199
13200exports.RenderingCancelledException = RenderingCancelledException;
13201var LinkTarget = {
13202 NONE: 0,
13203 SELF: 1,
13204 BLANK: 2,
13205 PARENT: 3,
13206 TOP: 4
13207};
13208exports.LinkTarget = LinkTarget;
13209var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top'];
13210
13211function addLinkAttributes(link) {
13212 var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
13213 url = _ref5.url,
13214 target = _ref5.target,
13215 rel = _ref5.rel;
13216
13217 link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : '';
13218
13219 if (url) {
13220 var LinkTargetValues = Object.values(LinkTarget);
13221 var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE;
13222 link.target = LinkTargetStringMap[targetIndex];
13223 link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL;
13224 }
13225}
13226
13227function getFilenameFromUrl(url) {
13228 var anchor = url.indexOf('#');
13229 var query = url.indexOf('?');
13230 var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);
13231 return url.substring(url.lastIndexOf('/', end) + 1, end);
13232}
13233
13234var StatTimer =
13235/*#__PURE__*/
13236function () {
13237 function StatTimer() {
13238 var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
13239
13240 _classCallCheck(this, StatTimer);
13241
13242 this.enabled = !!enable;
13243 this.started = Object.create(null);
13244 this.times = [];
13245 }
13246
13247 _createClass(StatTimer, [{
13248 key: "time",
13249 value: function time(name) {
13250 if (!this.enabled) {
13251 return;
13252 }
13253
13254 if (name in this.started) {
13255 (0, _util.warn)('Timer is already running for ' + name);
13256 }
13257
13258 this.started[name] = Date.now();
13259 }
13260 }, {
13261 key: "timeEnd",
13262 value: function timeEnd(name) {
13263 if (!this.enabled) {
13264 return;
13265 }
13266
13267 if (!(name in this.started)) {
13268 (0, _util.warn)('Timer has not been started for ' + name);
13269 }
13270
13271 this.times.push({
13272 'name': name,
13273 'start': this.started[name],
13274 'end': Date.now()
13275 });
13276 delete this.started[name];
13277 }
13278 }, {
13279 key: "toString",
13280 value: function toString() {
13281 var times = this.times;
13282 var out = '',
13283 longest = 0;
13284
13285 for (var i = 0, ii = times.length; i < ii; ++i) {
13286 var name = times[i]['name'];
13287
13288 if (name.length > longest) {
13289 longest = name.length;
13290 }
13291 }
13292
13293 for (var _i = 0, _ii = times.length; _i < _ii; ++_i) {
13294 var span = times[_i];
13295 var duration = span.end - span.start;
13296 out += "".concat(span['name'].padEnd(longest), " ").concat(duration, "ms\n");
13297 }
13298
13299 return out;
13300 }
13301 }]);
13302
13303 return StatTimer;
13304}();
13305
13306exports.StatTimer = StatTimer;
13307
13308var DummyStatTimer =
13309/*#__PURE__*/
13310function () {
13311 function DummyStatTimer() {
13312 _classCallCheck(this, DummyStatTimer);
13313
13314 (0, _util.unreachable)('Cannot initialize DummyStatTimer.');
13315 }
13316
13317 _createClass(DummyStatTimer, null, [{
13318 key: "time",
13319 value: function time(name) {}
13320 }, {
13321 key: "timeEnd",
13322 value: function timeEnd(name) {}
13323 }, {
13324 key: "toString",
13325 value: function toString() {
13326 return '';
13327 }
13328 }]);
13329
13330 return DummyStatTimer;
13331}();
13332
13333exports.DummyStatTimer = DummyStatTimer;
13334
13335function loadScript(src) {
13336 return new Promise(function (resolve, reject) {
13337 var script = document.createElement('script');
13338 script.src = src;
13339 script.onload = resolve;
13340
13341 script.onerror = function () {
13342 reject(new Error("Cannot load script at: ".concat(script.src)));
13343 };
13344
13345 (document.head || document.documentElement).appendChild(script);
13346 });
13347}
13348
13349/***/ }),
13350/* 152 */
13351/***/ (function(module, exports, __w_pdfjs_require__) {
13352
13353"use strict";
13354
13355
13356Object.defineProperty(exports, "__esModule", {
13357 value: true
13358});
13359exports.FontLoader = exports.FontFaceObject = void 0;
13360
13361var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
13362
13363var _util = __w_pdfjs_require__(1);
13364
13365function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13366
13367function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
13368
13369function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
13370
13371function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
13372
13373function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
13374
13375function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
13376
13377function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
13378
13379function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
13380
13381function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
13382
13383function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13384
13385function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
13386
13387function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
13388
13389var BaseFontLoader =
13390/*#__PURE__*/
13391function () {
13392 function BaseFontLoader(_ref) {
13393 var docId = _ref.docId,
13394 onUnsupportedFeature = _ref.onUnsupportedFeature;
13395
13396 _classCallCheck(this, BaseFontLoader);
13397
13398 if (this.constructor === BaseFontLoader) {
13399 (0, _util.unreachable)('Cannot initialize BaseFontLoader.');
13400 }
13401
13402 this.docId = docId;
13403 this._onUnsupportedFeature = onUnsupportedFeature;
13404 this.nativeFontFaces = [];
13405 this.styleElement = null;
13406 }
13407
13408 _createClass(BaseFontLoader, [{
13409 key: "addNativeFontFace",
13410 value: function addNativeFontFace(nativeFontFace) {
13411 this.nativeFontFaces.push(nativeFontFace);
13412 document.fonts.add(nativeFontFace);
13413 }
13414 }, {
13415 key: "insertRule",
13416 value: function insertRule(rule) {
13417 var styleElement = this.styleElement;
13418
13419 if (!styleElement) {
13420 styleElement = this.styleElement = document.createElement('style');
13421 styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId);
13422 document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement);
13423 }
13424
13425 var styleSheet = styleElement.sheet;
13426 styleSheet.insertRule(rule, styleSheet.cssRules.length);
13427 }
13428 }, {
13429 key: "clear",
13430 value: function clear() {
13431 this.nativeFontFaces.forEach(function (nativeFontFace) {
13432 document.fonts.delete(nativeFontFace);
13433 });
13434 this.nativeFontFaces.length = 0;
13435
13436 if (this.styleElement) {
13437 this.styleElement.remove();
13438 this.styleElement = null;
13439 }
13440 }
13441 }, {
13442 key: "bind",
13443 value: function () {
13444 var _bind = _asyncToGenerator(
13445 /*#__PURE__*/
13446 _regenerator.default.mark(function _callee(font) {
13447 var _this = this;
13448
13449 var nativeFontFace, rule;
13450 return _regenerator.default.wrap(function _callee$(_context) {
13451 while (1) {
13452 switch (_context.prev = _context.next) {
13453 case 0:
13454 if (!(font.attached || font.missingFile)) {
13455 _context.next = 2;
13456 break;
13457 }
13458
13459 return _context.abrupt("return");
13460
13461 case 2:
13462 font.attached = true;
13463
13464 if (!this.isFontLoadingAPISupported) {
13465 _context.next = 19;
13466 break;
13467 }
13468
13469 nativeFontFace = font.createNativeFontFace();
13470
13471 if (!nativeFontFace) {
13472 _context.next = 18;
13473 break;
13474 }
13475
13476 this.addNativeFontFace(nativeFontFace);
13477 _context.prev = 7;
13478 _context.next = 10;
13479 return nativeFontFace.loaded;
13480
13481 case 10:
13482 _context.next = 18;
13483 break;
13484
13485 case 12:
13486 _context.prev = 12;
13487 _context.t0 = _context["catch"](7);
13488
13489 this._onUnsupportedFeature({
13490 featureId: _util.UNSUPPORTED_FEATURES.font
13491 });
13492
13493 (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'."));
13494 font.disableFontFace = true;
13495 throw _context.t0;
13496
13497 case 18:
13498 return _context.abrupt("return");
13499
13500 case 19:
13501 rule = font.createFontFaceRule();
13502
13503 if (!rule) {
13504 _context.next = 25;
13505 break;
13506 }
13507
13508 this.insertRule(rule);
13509
13510 if (!this.isSyncFontLoadingSupported) {
13511 _context.next = 24;
13512 break;
13513 }
13514
13515 return _context.abrupt("return");
13516
13517 case 24:
13518 return _context.abrupt("return", new Promise(function (resolve) {
13519 var request = _this._queueLoadingCallback(resolve);
13520
13521 _this._prepareFontLoadEvent([rule], [font], request);
13522 }));
13523
13524 case 25:
13525 case "end":
13526 return _context.stop();
13527 }
13528 }
13529 }, _callee, this, [[7, 12]]);
13530 }));
13531
13532 function bind(_x) {
13533 return _bind.apply(this, arguments);
13534 }
13535
13536 return bind;
13537 }()
13538 }, {
13539 key: "_queueLoadingCallback",
13540 value: function _queueLoadingCallback(callback) {
13541 (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.');
13542 }
13543 }, {
13544 key: "_prepareFontLoadEvent",
13545 value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {
13546 (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.');
13547 }
13548 }, {
13549 key: "isFontLoadingAPISupported",
13550 get: function get() {
13551 (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.');
13552 }
13553 }, {
13554 key: "isSyncFontLoadingSupported",
13555 get: function get() {
13556 (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.');
13557 }
13558 }, {
13559 key: "_loadTestFont",
13560 get: function get() {
13561 (0, _util.unreachable)('Abstract method `_loadTestFont`.');
13562 }
13563 }]);
13564
13565 return BaseFontLoader;
13566}();
13567
13568var FontLoader;
13569exports.FontLoader = FontLoader;
13570{
13571 exports.FontLoader = FontLoader =
13572 /*#__PURE__*/
13573 function (_BaseFontLoader) {
13574 _inherits(GenericFontLoader, _BaseFontLoader);
13575
13576 function GenericFontLoader(docId) {
13577 var _this2;
13578
13579 _classCallCheck(this, GenericFontLoader);
13580
13581 _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId));
13582 _this2.loadingContext = {
13583 requests: [],
13584 nextRequestId: 0
13585 };
13586 _this2.loadTestFontId = 0;
13587 return _this2;
13588 }
13589
13590 _createClass(GenericFontLoader, [{
13591 key: "_queueLoadingCallback",
13592 value: function _queueLoadingCallback(callback) {
13593 function completeRequest() {
13594 (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.');
13595 request.done = true;
13596
13597 while (context.requests.length > 0 && context.requests[0].done) {
13598 var otherRequest = context.requests.shift();
13599 setTimeout(otherRequest.callback, 0);
13600 }
13601 }
13602
13603 var context = this.loadingContext;
13604 var request = {
13605 id: "pdfjs-font-loading-".concat(context.nextRequestId++),
13606 done: false,
13607 complete: completeRequest,
13608 callback: callback
13609 };
13610 context.requests.push(request);
13611 return request;
13612 }
13613 }, {
13614 key: "_prepareFontLoadEvent",
13615 value: function _prepareFontLoadEvent(rules, fonts, request) {
13616 function int32(data, offset) {
13617 return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;
13618 }
13619
13620 function spliceString(s, offset, remove, insert) {
13621 var chunk1 = s.substring(0, offset);
13622 var chunk2 = s.substring(offset + remove);
13623 return chunk1 + insert + chunk2;
13624 }
13625
13626 var i, ii;
13627 var canvas = document.createElement('canvas');
13628 canvas.width = 1;
13629 canvas.height = 1;
13630 var ctx = canvas.getContext('2d');
13631 var called = 0;
13632
13633 function isFontReady(name, callback) {
13634 called++;
13635
13636 if (called > 30) {
13637 (0, _util.warn)('Load test font never loaded.');
13638 callback();
13639 return;
13640 }
13641
13642 ctx.font = '30px ' + name;
13643 ctx.fillText('.', 0, 20);
13644 var imageData = ctx.getImageData(0, 0, 1, 1);
13645
13646 if (imageData.data[3] > 0) {
13647 callback();
13648 return;
13649 }
13650
13651 setTimeout(isFontReady.bind(null, name, callback));
13652 }
13653
13654 var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++);
13655 var data = this._loadTestFont;
13656 var COMMENT_OFFSET = 976;
13657 data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
13658 var CFF_CHECKSUM_OFFSET = 16;
13659 var XXXX_VALUE = 0x58585858;
13660 var checksum = int32(data, CFF_CHECKSUM_OFFSET);
13661
13662 for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
13663 checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;
13664 }
13665
13666 if (i < loadTestFontId.length) {
13667 checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0;
13668 }
13669
13670 data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));
13671 var url = "url(data:font/opentype;base64,".concat(btoa(data), ");");
13672 var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}");
13673 this.insertRule(rule);
13674 var names = [];
13675
13676 for (i = 0, ii = fonts.length; i < ii; i++) {
13677 names.push(fonts[i].loadedName);
13678 }
13679
13680 names.push(loadTestFontId);
13681 var div = document.createElement('div');
13682 div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;');
13683
13684 for (i = 0, ii = names.length; i < ii; ++i) {
13685 var span = document.createElement('span');
13686 span.textContent = 'Hi';
13687 span.style.fontFamily = names[i];
13688 div.appendChild(span);
13689 }
13690
13691 document.body.appendChild(div);
13692 isFontReady(loadTestFontId, function () {
13693 document.body.removeChild(div);
13694 request.complete();
13695 });
13696 }
13697 }, {
13698 key: "isFontLoadingAPISupported",
13699 get: function get() {
13700 var supported = typeof document !== 'undefined' && !!document.fonts;
13701
13702 if (supported && typeof navigator !== 'undefined') {
13703 var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
13704
13705 if (m && m[1] < 63) {
13706 supported = false;
13707 }
13708 }
13709
13710 return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported);
13711 }
13712 }, {
13713 key: "isSyncFontLoadingSupported",
13714 get: function get() {
13715 var supported = false;
13716
13717 if (typeof navigator === 'undefined') {
13718 supported = true;
13719 } else {
13720 var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
13721
13722 if (m && m[1] >= 14) {
13723 supported = true;
13724 }
13725 }
13726
13727 return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported);
13728 }
13729 }, {
13730 key: "_loadTestFont",
13731 get: function get() {
13732 var getLoadTestFont = function getLoadTestFont() {
13733 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==');
13734 };
13735
13736 return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont());
13737 }
13738 }]);
13739
13740 return GenericFontLoader;
13741 }(BaseFontLoader);
13742}
13743var IsEvalSupportedCached = {
13744 get value() {
13745 return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());
13746 }
13747
13748};
13749
13750var FontFaceObject =
13751/*#__PURE__*/
13752function () {
13753 function FontFaceObject(translatedData, _ref2) {
13754 var _ref2$isEvalSupported = _ref2.isEvalSupported,
13755 isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported,
13756 _ref2$disableFontFace = _ref2.disableFontFace,
13757 disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace,
13758 _ref2$ignoreErrors = _ref2.ignoreErrors,
13759 ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors,
13760 _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature,
13761 onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe,
13762 _ref2$fontRegistry = _ref2.fontRegistry,
13763 fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry;
13764
13765 _classCallCheck(this, FontFaceObject);
13766
13767 this.compiledGlyphs = Object.create(null);
13768
13769 for (var i in translatedData) {
13770 this[i] = translatedData[i];
13771 }
13772
13773 this.isEvalSupported = isEvalSupported !== false;
13774 this.disableFontFace = disableFontFace === true;
13775 this.ignoreErrors = ignoreErrors === true;
13776 this._onUnsupportedFeature = onUnsupportedFeature;
13777 this.fontRegistry = fontRegistry;
13778 }
13779
13780 _createClass(FontFaceObject, [{
13781 key: "createNativeFontFace",
13782 value: function createNativeFontFace() {
13783 if (!this.data || this.disableFontFace) {
13784 return null;
13785 }
13786
13787 var nativeFontFace = new FontFace(this.loadedName, this.data, {});
13788
13789 if (this.fontRegistry) {
13790 this.fontRegistry.registerFont(this);
13791 }
13792
13793 return nativeFontFace;
13794 }
13795 }, {
13796 key: "createFontFaceRule",
13797 value: function createFontFaceRule() {
13798 if (!this.data || this.disableFontFace) {
13799 return null;
13800 }
13801
13802 var data = (0, _util.bytesToString)(new Uint8Array(this.data));
13803 var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");");
13804 var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}");
13805
13806 if (this.fontRegistry) {
13807 this.fontRegistry.registerFont(this, url);
13808 }
13809
13810 return rule;
13811 }
13812 }, {
13813 key: "getPathGenerator",
13814 value: function getPathGenerator(objs, character) {
13815 if (this.compiledGlyphs[character] !== undefined) {
13816 return this.compiledGlyphs[character];
13817 }
13818
13819 var cmds, current;
13820
13821 try {
13822 cmds = objs.get(this.loadedName + '_path_' + character);
13823 } catch (ex) {
13824 if (!this.ignoreErrors) {
13825 throw ex;
13826 }
13827
13828 if (this._onUnsupportedFeature) {
13829 this._onUnsupportedFeature({
13830 featureId: _util.UNSUPPORTED_FEATURES.font
13831 });
13832 }
13833
13834 (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\"."));
13835 return this.compiledGlyphs[character] = function (c, size) {};
13836 }
13837
13838 if (this.isEvalSupported && IsEvalSupportedCached.value) {
13839 var args,
13840 js = '';
13841
13842 for (var i = 0, ii = cmds.length; i < ii; i++) {
13843 current = cmds[i];
13844
13845 if (current.args !== undefined) {
13846 args = current.args.join(',');
13847 } else {
13848 args = '';
13849 }
13850
13851 js += 'c.' + current.cmd + '(' + args + ');\n';
13852 }
13853
13854 return this.compiledGlyphs[character] = new Function('c', 'size', js);
13855 }
13856
13857 return this.compiledGlyphs[character] = function (c, size) {
13858 for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) {
13859 current = cmds[_i];
13860
13861 if (current.cmd === 'scale') {
13862 current.args = [size, -size];
13863 }
13864
13865 c[current.cmd].apply(c, current.args);
13866 }
13867 };
13868 }
13869 }]);
13870
13871 return FontFaceObject;
13872}();
13873
13874exports.FontFaceObject = FontFaceObject;
13875
13876/***/ }),
13877/* 153 */
13878/***/ (function(module, exports, __w_pdfjs_require__) {
13879
13880"use strict";
13881
13882
13883var compatibilityParams = Object.create(null);
13884{
13885 var isNodeJS = __w_pdfjs_require__(4);
13886
13887 var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || '';
13888 var isIE = /Trident/.test(userAgent);
13889 var isIOSChrome = /CriOS/.test(userAgent);
13890
13891 (function checkOnBlobSupport() {
13892 if (isIE || isIOSChrome) {
13893 compatibilityParams.disableCreateObjectURL = true;
13894 }
13895 })();
13896
13897 (function checkFontFaceAndImage() {
13898 if (isNodeJS()) {
13899 compatibilityParams.disableFontFace = true;
13900 compatibilityParams.nativeImageDecoderSupport = 'none';
13901 }
13902 })();
13903}
13904exports.apiCompatibilityParams = Object.freeze(compatibilityParams);
13905
13906/***/ }),
13907/* 154 */
13908/***/ (function(module, exports, __w_pdfjs_require__) {
13909
13910"use strict";
13911
13912
13913Object.defineProperty(exports, "__esModule", {
13914 value: true
13915});
13916exports.CanvasGraphics = void 0;
13917
13918var _util = __w_pdfjs_require__(1);
13919
13920var _pattern_helper = __w_pdfjs_require__(155);
13921
13922var MIN_FONT_SIZE = 16;
13923var MAX_FONT_SIZE = 100;
13924var MAX_GROUP_SIZE = 4096;
13925var MIN_WIDTH_FACTOR = 0.65;
13926var COMPILE_TYPE3_GLYPHS = true;
13927var MAX_SIZE_TO_COMPILE = 1000;
13928var FULL_CHUNK_HEIGHT = 16;
13929var IsLittleEndianCached = {
13930 get value() {
13931 return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)());
13932 }
13933
13934};
13935
13936function addContextCurrentTransform(ctx) {
13937 if (!ctx.mozCurrentTransform) {
13938 ctx._originalSave = ctx.save;
13939 ctx._originalRestore = ctx.restore;
13940 ctx._originalRotate = ctx.rotate;
13941 ctx._originalScale = ctx.scale;
13942 ctx._originalTranslate = ctx.translate;
13943 ctx._originalTransform = ctx.transform;
13944 ctx._originalSetTransform = ctx.setTransform;
13945 ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];
13946 ctx._transformStack = [];
13947 Object.defineProperty(ctx, 'mozCurrentTransform', {
13948 get: function getCurrentTransform() {
13949 return this._transformMatrix;
13950 }
13951 });
13952 Object.defineProperty(ctx, 'mozCurrentTransformInverse', {
13953 get: function getCurrentTransformInverse() {
13954 var m = this._transformMatrix;
13955 var a = m[0],
13956 b = m[1],
13957 c = m[2],
13958 d = m[3],
13959 e = m[4],
13960 f = m[5];
13961 var ad_bc = a * d - b * c;
13962 var bc_ad = b * c - a * d;
13963 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];
13964 }
13965 });
13966
13967 ctx.save = function ctxSave() {
13968 var old = this._transformMatrix;
13969
13970 this._transformStack.push(old);
13971
13972 this._transformMatrix = old.slice(0, 6);
13973
13974 this._originalSave();
13975 };
13976
13977 ctx.restore = function ctxRestore() {
13978 var prev = this._transformStack.pop();
13979
13980 if (prev) {
13981 this._transformMatrix = prev;
13982
13983 this._originalRestore();
13984 }
13985 };
13986
13987 ctx.translate = function ctxTranslate(x, y) {
13988 var m = this._transformMatrix;
13989 m[4] = m[0] * x + m[2] * y + m[4];
13990 m[5] = m[1] * x + m[3] * y + m[5];
13991
13992 this._originalTranslate(x, y);
13993 };
13994
13995 ctx.scale = function ctxScale(x, y) {
13996 var m = this._transformMatrix;
13997 m[0] = m[0] * x;
13998 m[1] = m[1] * x;
13999 m[2] = m[2] * y;
14000 m[3] = m[3] * y;
14001
14002 this._originalScale(x, y);
14003 };
14004
14005 ctx.transform = function ctxTransform(a, b, c, d, e, f) {
14006 var m = this._transformMatrix;
14007 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]];
14008
14009 ctx._originalTransform(a, b, c, d, e, f);
14010 };
14011
14012 ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {
14013 this._transformMatrix = [a, b, c, d, e, f];
14014
14015 ctx._originalSetTransform(a, b, c, d, e, f);
14016 };
14017
14018 ctx.rotate = function ctxRotate(angle) {
14019 var cosValue = Math.cos(angle);
14020 var sinValue = Math.sin(angle);
14021 var m = this._transformMatrix;
14022 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]];
14023
14024 this._originalRotate(angle);
14025 };
14026 }
14027}
14028
14029var CachedCanvases = function CachedCanvasesClosure() {
14030 function CachedCanvases(canvasFactory) {
14031 this.canvasFactory = canvasFactory;
14032 this.cache = Object.create(null);
14033 }
14034
14035 CachedCanvases.prototype = {
14036 getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {
14037 var canvasEntry;
14038
14039 if (this.cache[id] !== undefined) {
14040 canvasEntry = this.cache[id];
14041 this.canvasFactory.reset(canvasEntry, width, height);
14042 canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);
14043 } else {
14044 canvasEntry = this.canvasFactory.create(width, height);
14045 this.cache[id] = canvasEntry;
14046 }
14047
14048 if (trackTransform) {
14049 addContextCurrentTransform(canvasEntry.context);
14050 }
14051
14052 return canvasEntry;
14053 },
14054 clear: function clear() {
14055 for (var id in this.cache) {
14056 var canvasEntry = this.cache[id];
14057 this.canvasFactory.destroy(canvasEntry);
14058 delete this.cache[id];
14059 }
14060 }
14061 };
14062 return CachedCanvases;
14063}();
14064
14065function compileType3Glyph(imgData) {
14066 var POINT_TO_PROCESS_LIMIT = 1000;
14067 var width = imgData.width,
14068 height = imgData.height;
14069 var i,
14070 j,
14071 j0,
14072 width1 = width + 1;
14073 var points = new Uint8Array(width1 * (height + 1));
14074 var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);
14075 var lineSize = width + 7 & ~7,
14076 data0 = imgData.data;
14077 var data = new Uint8Array(lineSize * height),
14078 pos = 0,
14079 ii;
14080
14081 for (i = 0, ii = data0.length; i < ii; i++) {
14082 var mask = 128,
14083 elem = data0[i];
14084
14085 while (mask > 0) {
14086 data[pos++] = elem & mask ? 0 : 255;
14087 mask >>= 1;
14088 }
14089 }
14090
14091 var count = 0;
14092 pos = 0;
14093
14094 if (data[pos] !== 0) {
14095 points[0] = 1;
14096 ++count;
14097 }
14098
14099 for (j = 1; j < width; j++) {
14100 if (data[pos] !== data[pos + 1]) {
14101 points[j] = data[pos] ? 2 : 1;
14102 ++count;
14103 }
14104
14105 pos++;
14106 }
14107
14108 if (data[pos] !== 0) {
14109 points[j] = 2;
14110 ++count;
14111 }
14112
14113 for (i = 1; i < height; i++) {
14114 pos = i * lineSize;
14115 j0 = i * width1;
14116
14117 if (data[pos - lineSize] !== data[pos]) {
14118 points[j0] = data[pos] ? 1 : 8;
14119 ++count;
14120 }
14121
14122 var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);
14123
14124 for (j = 1; j < width; j++) {
14125 sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);
14126
14127 if (POINT_TYPES[sum]) {
14128 points[j0 + j] = POINT_TYPES[sum];
14129 ++count;
14130 }
14131
14132 pos++;
14133 }
14134
14135 if (data[pos - lineSize] !== data[pos]) {
14136 points[j0 + j] = data[pos] ? 2 : 4;
14137 ++count;
14138 }
14139
14140 if (count > POINT_TO_PROCESS_LIMIT) {
14141 return null;
14142 }
14143 }
14144
14145 pos = lineSize * (height - 1);
14146 j0 = i * width1;
14147
14148 if (data[pos] !== 0) {
14149 points[j0] = 8;
14150 ++count;
14151 }
14152
14153 for (j = 1; j < width; j++) {
14154 if (data[pos] !== data[pos + 1]) {
14155 points[j0 + j] = data[pos] ? 4 : 8;
14156 ++count;
14157 }
14158
14159 pos++;
14160 }
14161
14162 if (data[pos] !== 0) {
14163 points[j0 + j] = 4;
14164 ++count;
14165 }
14166
14167 if (count > POINT_TO_PROCESS_LIMIT) {
14168 return null;
14169 }
14170
14171 var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);
14172 var outlines = [];
14173
14174 for (i = 0; count && i <= height; i++) {
14175 var p = i * width1;
14176 var end = p + width;
14177
14178 while (p < end && !points[p]) {
14179 p++;
14180 }
14181
14182 if (p === end) {
14183 continue;
14184 }
14185
14186 var coords = [p % width1, i];
14187 var type = points[p],
14188 p0 = p,
14189 pp;
14190
14191 do {
14192 var step = steps[type];
14193
14194 do {
14195 p += step;
14196 } while (!points[p]);
14197
14198 pp = points[p];
14199
14200 if (pp !== 5 && pp !== 10) {
14201 type = pp;
14202 points[p] = 0;
14203 } else {
14204 type = pp & 0x33 * type >> 4;
14205 points[p] &= type >> 2 | type << 2;
14206 }
14207
14208 coords.push(p % width1);
14209 coords.push(p / width1 | 0);
14210 --count;
14211 } while (p0 !== p);
14212
14213 outlines.push(coords);
14214 --i;
14215 }
14216
14217 var drawOutline = function drawOutline(c) {
14218 c.save();
14219 c.scale(1 / width, -1 / height);
14220 c.translate(0, -height);
14221 c.beginPath();
14222
14223 for (var i = 0, ii = outlines.length; i < ii; i++) {
14224 var o = outlines[i];
14225 c.moveTo(o[0], o[1]);
14226
14227 for (var j = 2, jj = o.length; j < jj; j += 2) {
14228 c.lineTo(o[j], o[j + 1]);
14229 }
14230 }
14231
14232 c.fill();
14233 c.beginPath();
14234 c.restore();
14235 };
14236
14237 return drawOutline;
14238}
14239
14240var CanvasExtraState = function CanvasExtraStateClosure() {
14241 function CanvasExtraState() {
14242 this.alphaIsShape = false;
14243 this.fontSize = 0;
14244 this.fontSizeScale = 1;
14245 this.textMatrix = _util.IDENTITY_MATRIX;
14246 this.textMatrixScale = 1;
14247 this.fontMatrix = _util.FONT_IDENTITY_MATRIX;
14248 this.leading = 0;
14249 this.x = 0;
14250 this.y = 0;
14251 this.lineX = 0;
14252 this.lineY = 0;
14253 this.charSpacing = 0;
14254 this.wordSpacing = 0;
14255 this.textHScale = 1;
14256 this.textRenderingMode = _util.TextRenderingMode.FILL;
14257 this.textRise = 0;
14258 this.fillColor = '#000000';
14259 this.strokeColor = '#000000';
14260 this.patternFill = false;
14261 this.fillAlpha = 1;
14262 this.strokeAlpha = 1;
14263 this.lineWidth = 1;
14264 this.activeSMask = null;
14265 this.resumeSMaskCtx = null;
14266 }
14267
14268 CanvasExtraState.prototype = {
14269 clone: function CanvasExtraState_clone() {
14270 return Object.create(this);
14271 },
14272 setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {
14273 this.x = x;
14274 this.y = y;
14275 }
14276 };
14277 return CanvasExtraState;
14278}();
14279
14280var CanvasGraphics = function CanvasGraphicsClosure() {
14281 var EXECUTION_TIME = 15;
14282 var EXECUTION_STEPS = 10;
14283
14284 function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) {
14285 this.ctx = canvasCtx;
14286 this.current = new CanvasExtraState();
14287 this.stateStack = [];
14288 this.pendingClip = null;
14289 this.pendingEOFill = false;
14290 this.res = null;
14291 this.xobjs = null;
14292 this.commonObjs = commonObjs;
14293 this.objs = objs;
14294 this.canvasFactory = canvasFactory;
14295 this.webGLContext = webGLContext;
14296 this.imageLayer = imageLayer;
14297 this.groupStack = [];
14298 this.processingType3 = null;
14299 this.baseTransform = null;
14300 this.baseTransformStack = [];
14301 this.groupLevel = 0;
14302 this.smaskStack = [];
14303 this.smaskCounter = 0;
14304 this.tempSMask = null;
14305 this.cachedCanvases = new CachedCanvases(this.canvasFactory);
14306
14307 if (canvasCtx) {
14308 addContextCurrentTransform(canvasCtx);
14309 }
14310
14311 this._cachedGetSinglePixelWidth = null;
14312 }
14313
14314 function putBinaryImageData(ctx, imgData) {
14315 if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) {
14316 ctx.putImageData(imgData, 0, 0);
14317 return;
14318 }
14319
14320 var height = imgData.height,
14321 width = imgData.width;
14322 var partialChunkHeight = height % FULL_CHUNK_HEIGHT;
14323 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
14324 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
14325 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
14326 var srcPos = 0,
14327 destPos;
14328 var src = imgData.data;
14329 var dest = chunkImgData.data;
14330 var i, j, thisChunkHeight, elemsInThisChunk;
14331
14332 if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {
14333 var srcLength = src.byteLength;
14334 var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);
14335 var dest32DataLength = dest32.length;
14336 var fullSrcDiff = width + 7 >> 3;
14337 var white = 0xFFFFFFFF;
14338 var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF;
14339
14340 for (i = 0; i < totalChunks; i++) {
14341 thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
14342 destPos = 0;
14343
14344 for (j = 0; j < thisChunkHeight; j++) {
14345 var srcDiff = srcLength - srcPos;
14346 var k = 0;
14347 var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;
14348 var kEndUnrolled = kEnd & ~7;
14349 var mask = 0;
14350 var srcByte = 0;
14351
14352 for (; k < kEndUnrolled; k += 8) {
14353 srcByte = src[srcPos++];
14354 dest32[destPos++] = srcByte & 128 ? white : black;
14355 dest32[destPos++] = srcByte & 64 ? white : black;
14356 dest32[destPos++] = srcByte & 32 ? white : black;
14357 dest32[destPos++] = srcByte & 16 ? white : black;
14358 dest32[destPos++] = srcByte & 8 ? white : black;
14359 dest32[destPos++] = srcByte & 4 ? white : black;
14360 dest32[destPos++] = srcByte & 2 ? white : black;
14361 dest32[destPos++] = srcByte & 1 ? white : black;
14362 }
14363
14364 for (; k < kEnd; k++) {
14365 if (mask === 0) {
14366 srcByte = src[srcPos++];
14367 mask = 128;
14368 }
14369
14370 dest32[destPos++] = srcByte & mask ? white : black;
14371 mask >>= 1;
14372 }
14373 }
14374
14375 while (destPos < dest32DataLength) {
14376 dest32[destPos++] = 0;
14377 }
14378
14379 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
14380 }
14381 } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {
14382 j = 0;
14383 elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;
14384
14385 for (i = 0; i < fullChunks; i++) {
14386 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
14387 srcPos += elemsInThisChunk;
14388 ctx.putImageData(chunkImgData, 0, j);
14389 j += FULL_CHUNK_HEIGHT;
14390 }
14391
14392 if (i < totalChunks) {
14393 elemsInThisChunk = width * partialChunkHeight * 4;
14394 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
14395 ctx.putImageData(chunkImgData, 0, j);
14396 }
14397 } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {
14398 thisChunkHeight = FULL_CHUNK_HEIGHT;
14399 elemsInThisChunk = width * thisChunkHeight;
14400
14401 for (i = 0; i < totalChunks; i++) {
14402 if (i >= fullChunks) {
14403 thisChunkHeight = partialChunkHeight;
14404 elemsInThisChunk = width * thisChunkHeight;
14405 }
14406
14407 destPos = 0;
14408
14409 for (j = elemsInThisChunk; j--;) {
14410 dest[destPos++] = src[srcPos++];
14411 dest[destPos++] = src[srcPos++];
14412 dest[destPos++] = src[srcPos++];
14413 dest[destPos++] = 255;
14414 }
14415
14416 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
14417 }
14418 } else {
14419 throw new Error("bad image kind: ".concat(imgData.kind));
14420 }
14421 }
14422
14423 function putBinaryImageMask(ctx, imgData) {
14424 var height = imgData.height,
14425 width = imgData.width;
14426 var partialChunkHeight = height % FULL_CHUNK_HEIGHT;
14427 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
14428 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
14429 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
14430 var srcPos = 0;
14431 var src = imgData.data;
14432 var dest = chunkImgData.data;
14433
14434 for (var i = 0; i < totalChunks; i++) {
14435 var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
14436 var destPos = 3;
14437
14438 for (var j = 0; j < thisChunkHeight; j++) {
14439 var mask = 0;
14440
14441 for (var k = 0; k < width; k++) {
14442 if (!mask) {
14443 var elem = src[srcPos++];
14444 mask = 128;
14445 }
14446
14447 dest[destPos] = elem & mask ? 0 : 255;
14448 destPos += 4;
14449 mask >>= 1;
14450 }
14451 }
14452
14453 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
14454 }
14455 }
14456
14457 function copyCtxState(sourceCtx, destCtx) {
14458 var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font'];
14459
14460 for (var i = 0, ii = properties.length; i < ii; i++) {
14461 var property = properties[i];
14462
14463 if (sourceCtx[property] !== undefined) {
14464 destCtx[property] = sourceCtx[property];
14465 }
14466 }
14467
14468 if (sourceCtx.setLineDash !== undefined) {
14469 destCtx.setLineDash(sourceCtx.getLineDash());
14470 destCtx.lineDashOffset = sourceCtx.lineDashOffset;
14471 }
14472 }
14473
14474 function resetCtxToDefault(ctx) {
14475 ctx.strokeStyle = '#000000';
14476 ctx.fillStyle = '#000000';
14477 ctx.fillRule = 'nonzero';
14478 ctx.globalAlpha = 1;
14479 ctx.lineWidth = 1;
14480 ctx.lineCap = 'butt';
14481 ctx.lineJoin = 'miter';
14482 ctx.miterLimit = 10;
14483 ctx.globalCompositeOperation = 'source-over';
14484 ctx.font = '10px sans-serif';
14485
14486 if (ctx.setLineDash !== undefined) {
14487 ctx.setLineDash([]);
14488 ctx.lineDashOffset = 0;
14489 }
14490 }
14491
14492 function composeSMaskBackdrop(bytes, r0, g0, b0) {
14493 var length = bytes.length;
14494
14495 for (var i = 3; i < length; i += 4) {
14496 var alpha = bytes[i];
14497
14498 if (alpha === 0) {
14499 bytes[i - 3] = r0;
14500 bytes[i - 2] = g0;
14501 bytes[i - 1] = b0;
14502 } else if (alpha < 255) {
14503 var alpha_ = 255 - alpha;
14504 bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;
14505 bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;
14506 bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;
14507 }
14508 }
14509 }
14510
14511 function composeSMaskAlpha(maskData, layerData, transferMap) {
14512 var length = maskData.length;
14513 var scale = 1 / 255;
14514
14515 for (var i = 3; i < length; i += 4) {
14516 var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];
14517 layerData[i] = layerData[i] * alpha * scale | 0;
14518 }
14519 }
14520
14521 function composeSMaskLuminosity(maskData, layerData, transferMap) {
14522 var length = maskData.length;
14523
14524 for (var i = 3; i < length; i += 4) {
14525 var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;
14526 layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;
14527 }
14528 }
14529
14530 function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {
14531 var hasBackdrop = !!backdrop;
14532 var r0 = hasBackdrop ? backdrop[0] : 0;
14533 var g0 = hasBackdrop ? backdrop[1] : 0;
14534 var b0 = hasBackdrop ? backdrop[2] : 0;
14535 var composeFn;
14536
14537 if (subtype === 'Luminosity') {
14538 composeFn = composeSMaskLuminosity;
14539 } else {
14540 composeFn = composeSMaskAlpha;
14541 }
14542
14543 var PIXELS_TO_PROCESS = 1048576;
14544 var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));
14545
14546 for (var row = 0; row < height; row += chunkSize) {
14547 var chunkHeight = Math.min(chunkSize, height - row);
14548 var maskData = maskCtx.getImageData(0, row, width, chunkHeight);
14549 var layerData = layerCtx.getImageData(0, row, width, chunkHeight);
14550
14551 if (hasBackdrop) {
14552 composeSMaskBackdrop(maskData.data, r0, g0, b0);
14553 }
14554
14555 composeFn(maskData.data, layerData.data, transferMap);
14556 maskCtx.putImageData(layerData, 0, row);
14557 }
14558 }
14559
14560 function composeSMask(ctx, smask, layerCtx, webGLContext) {
14561 var mask = smask.canvas;
14562 var maskCtx = smask.context;
14563 ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);
14564 var backdrop = smask.backdrop || null;
14565
14566 if (!smask.transferMap && webGLContext.isEnabled) {
14567 var composed = webGLContext.composeSMask({
14568 layer: layerCtx.canvas,
14569 mask: mask,
14570 properties: {
14571 subtype: smask.subtype,
14572 backdrop: backdrop
14573 }
14574 });
14575 ctx.setTransform(1, 0, 0, 1, 0, 0);
14576 ctx.drawImage(composed, smask.offsetX, smask.offsetY);
14577 return;
14578 }
14579
14580 genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);
14581 ctx.drawImage(mask, 0, 0);
14582 }
14583
14584 var LINE_CAP_STYLES = ['butt', 'round', 'square'];
14585 var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];
14586 var NORMAL_CLIP = {};
14587 var EO_CLIP = {};
14588 CanvasGraphics.prototype = {
14589 beginDrawing: function beginDrawing(_ref) {
14590 var transform = _ref.transform,
14591 viewport = _ref.viewport,
14592 _ref$transparency = _ref.transparency,
14593 transparency = _ref$transparency === void 0 ? false : _ref$transparency,
14594 _ref$background = _ref.background,
14595 background = _ref$background === void 0 ? null : _ref$background;
14596 var width = this.ctx.canvas.width;
14597 var height = this.ctx.canvas.height;
14598 this.ctx.save();
14599 this.ctx.fillStyle = background || 'rgb(255, 255, 255)';
14600 this.ctx.fillRect(0, 0, width, height);
14601 this.ctx.restore();
14602
14603 if (transparency) {
14604 var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true);
14605 this.compositeCtx = this.ctx;
14606 this.transparentCanvas = transparentCanvas.canvas;
14607 this.ctx = transparentCanvas.context;
14608 this.ctx.save();
14609 this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);
14610 }
14611
14612 this.ctx.save();
14613 resetCtxToDefault(this.ctx);
14614
14615 if (transform) {
14616 this.ctx.transform.apply(this.ctx, transform);
14617 }
14618
14619 this.ctx.transform.apply(this.ctx, viewport.transform);
14620 this.baseTransform = this.ctx.mozCurrentTransform.slice();
14621
14622 if (this.imageLayer) {
14623 this.imageLayer.beginLayout();
14624 }
14625 },
14626 executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {
14627 var argsArray = operatorList.argsArray;
14628 var fnArray = operatorList.fnArray;
14629 var i = executionStartIdx || 0;
14630 var argsArrayLen = argsArray.length;
14631
14632 if (argsArrayLen === i) {
14633 return i;
14634 }
14635
14636 var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function';
14637 var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;
14638 var steps = 0;
14639 var commonObjs = this.commonObjs;
14640 var objs = this.objs;
14641 var fnId;
14642
14643 while (true) {
14644 if (stepper !== undefined && i === stepper.nextBreakPoint) {
14645 stepper.breakIt(i, continueCallback);
14646 return i;
14647 }
14648
14649 fnId = fnArray[i];
14650
14651 if (fnId !== _util.OPS.dependency) {
14652 this[fnId].apply(this, argsArray[i]);
14653 } else {
14654 var deps = argsArray[i];
14655
14656 for (var n = 0, nn = deps.length; n < nn; n++) {
14657 var depObjId = deps[n];
14658 var common = depObjId[0] === 'g' && depObjId[1] === '_';
14659 var objsPool = common ? commonObjs : objs;
14660
14661 if (!objsPool.has(depObjId)) {
14662 objsPool.get(depObjId, continueCallback);
14663 return i;
14664 }
14665 }
14666 }
14667
14668 i++;
14669
14670 if (i === argsArrayLen) {
14671 return i;
14672 }
14673
14674 if (chunkOperations && ++steps > EXECUTION_STEPS) {
14675 if (Date.now() > endTime) {
14676 continueCallback();
14677 return i;
14678 }
14679
14680 steps = 0;
14681 }
14682 }
14683 },
14684 endDrawing: function CanvasGraphics_endDrawing() {
14685 if (this.current.activeSMask !== null) {
14686 this.endSMaskGroup();
14687 }
14688
14689 this.ctx.restore();
14690
14691 if (this.transparentCanvas) {
14692 this.ctx = this.compositeCtx;
14693 this.ctx.save();
14694 this.ctx.setTransform(1, 0, 0, 1, 0, 0);
14695 this.ctx.drawImage(this.transparentCanvas, 0, 0);
14696 this.ctx.restore();
14697 this.transparentCanvas = null;
14698 }
14699
14700 this.cachedCanvases.clear();
14701 this.webGLContext.clear();
14702
14703 if (this.imageLayer) {
14704 this.imageLayer.endLayout();
14705 }
14706 },
14707 setLineWidth: function CanvasGraphics_setLineWidth(width) {
14708 this.current.lineWidth = width;
14709 this.ctx.lineWidth = width;
14710 },
14711 setLineCap: function CanvasGraphics_setLineCap(style) {
14712 this.ctx.lineCap = LINE_CAP_STYLES[style];
14713 },
14714 setLineJoin: function CanvasGraphics_setLineJoin(style) {
14715 this.ctx.lineJoin = LINE_JOIN_STYLES[style];
14716 },
14717 setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {
14718 this.ctx.miterLimit = limit;
14719 },
14720 setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {
14721 var ctx = this.ctx;
14722
14723 if (ctx.setLineDash !== undefined) {
14724 ctx.setLineDash(dashArray);
14725 ctx.lineDashOffset = dashPhase;
14726 }
14727 },
14728 setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {},
14729 setFlatness: function CanvasGraphics_setFlatness(flatness) {},
14730 setGState: function CanvasGraphics_setGState(states) {
14731 for (var i = 0, ii = states.length; i < ii; i++) {
14732 var state = states[i];
14733 var key = state[0];
14734 var value = state[1];
14735
14736 switch (key) {
14737 case 'LW':
14738 this.setLineWidth(value);
14739 break;
14740
14741 case 'LC':
14742 this.setLineCap(value);
14743 break;
14744
14745 case 'LJ':
14746 this.setLineJoin(value);
14747 break;
14748
14749 case 'ML':
14750 this.setMiterLimit(value);
14751 break;
14752
14753 case 'D':
14754 this.setDash(value[0], value[1]);
14755 break;
14756
14757 case 'RI':
14758 this.setRenderingIntent(value);
14759 break;
14760
14761 case 'FL':
14762 this.setFlatness(value);
14763 break;
14764
14765 case 'Font':
14766 this.setFont(value[0], value[1]);
14767 break;
14768
14769 case 'CA':
14770 this.current.strokeAlpha = state[1];
14771 break;
14772
14773 case 'ca':
14774 this.current.fillAlpha = state[1];
14775 this.ctx.globalAlpha = state[1];
14776 break;
14777
14778 case 'BM':
14779 this.ctx.globalCompositeOperation = value;
14780 break;
14781
14782 case 'SMask':
14783 if (this.current.activeSMask) {
14784 if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {
14785 this.suspendSMaskGroup();
14786 } else {
14787 this.endSMaskGroup();
14788 }
14789 }
14790
14791 this.current.activeSMask = value ? this.tempSMask : null;
14792
14793 if (this.current.activeSMask) {
14794 this.beginSMaskGroup();
14795 }
14796
14797 this.tempSMask = null;
14798 break;
14799 }
14800 }
14801 },
14802 beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {
14803 var activeSMask = this.current.activeSMask;
14804 var drawnWidth = activeSMask.canvas.width;
14805 var drawnHeight = activeSMask.canvas.height;
14806 var cacheId = 'smaskGroupAt' + this.groupLevel;
14807 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);
14808 var currentCtx = this.ctx;
14809 var currentTransform = currentCtx.mozCurrentTransform;
14810 this.ctx.save();
14811 var groupCtx = scratchCanvas.context;
14812 groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);
14813 groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);
14814 groupCtx.transform.apply(groupCtx, currentTransform);
14815 activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;
14816 copyCtxState(currentCtx, groupCtx);
14817 this.ctx = groupCtx;
14818 this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);
14819 this.groupStack.push(currentCtx);
14820 this.groupLevel++;
14821 },
14822 suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {
14823 var groupCtx = this.ctx;
14824 this.groupLevel--;
14825 this.ctx = this.groupStack.pop();
14826 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
14827 this.ctx.restore();
14828 this.ctx.save();
14829 copyCtxState(groupCtx, this.ctx);
14830 this.current.resumeSMaskCtx = groupCtx;
14831
14832 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);
14833
14834 this.ctx.transform.apply(this.ctx, deltaTransform);
14835 groupCtx.save();
14836 groupCtx.setTransform(1, 0, 0, 1, 0, 0);
14837 groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);
14838 groupCtx.restore();
14839 },
14840 resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {
14841 var groupCtx = this.current.resumeSMaskCtx;
14842 var currentCtx = this.ctx;
14843 this.ctx = groupCtx;
14844 this.groupStack.push(currentCtx);
14845 this.groupLevel++;
14846 },
14847 endSMaskGroup: function CanvasGraphics_endSMaskGroup() {
14848 var groupCtx = this.ctx;
14849 this.groupLevel--;
14850 this.ctx = this.groupStack.pop();
14851 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
14852 this.ctx.restore();
14853 copyCtxState(groupCtx, this.ctx);
14854
14855 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);
14856
14857 this.ctx.transform.apply(this.ctx, deltaTransform);
14858 },
14859 save: function CanvasGraphics_save() {
14860 this.ctx.save();
14861 var old = this.current;
14862 this.stateStack.push(old);
14863 this.current = old.clone();
14864 this.current.resumeSMaskCtx = null;
14865 },
14866 restore: function CanvasGraphics_restore() {
14867 if (this.current.resumeSMaskCtx) {
14868 this.resumeSMaskGroup();
14869 }
14870
14871 if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {
14872 this.endSMaskGroup();
14873 }
14874
14875 if (this.stateStack.length !== 0) {
14876 this.current = this.stateStack.pop();
14877 this.ctx.restore();
14878 this.pendingClip = null;
14879 this._cachedGetSinglePixelWidth = null;
14880 }
14881 },
14882 transform: function CanvasGraphics_transform(a, b, c, d, e, f) {
14883 this.ctx.transform(a, b, c, d, e, f);
14884 this._cachedGetSinglePixelWidth = null;
14885 },
14886 constructPath: function CanvasGraphics_constructPath(ops, args) {
14887 var ctx = this.ctx;
14888 var current = this.current;
14889 var x = current.x,
14890 y = current.y;
14891
14892 for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {
14893 switch (ops[i] | 0) {
14894 case _util.OPS.rectangle:
14895 x = args[j++];
14896 y = args[j++];
14897 var width = args[j++];
14898 var height = args[j++];
14899
14900 if (width === 0) {
14901 width = this.getSinglePixelWidth();
14902 }
14903
14904 if (height === 0) {
14905 height = this.getSinglePixelWidth();
14906 }
14907
14908 var xw = x + width;
14909 var yh = y + height;
14910 this.ctx.moveTo(x, y);
14911 this.ctx.lineTo(xw, y);
14912 this.ctx.lineTo(xw, yh);
14913 this.ctx.lineTo(x, yh);
14914 this.ctx.lineTo(x, y);
14915 this.ctx.closePath();
14916 break;
14917
14918 case _util.OPS.moveTo:
14919 x = args[j++];
14920 y = args[j++];
14921 ctx.moveTo(x, y);
14922 break;
14923
14924 case _util.OPS.lineTo:
14925 x = args[j++];
14926 y = args[j++];
14927 ctx.lineTo(x, y);
14928 break;
14929
14930 case _util.OPS.curveTo:
14931 x = args[j + 4];
14932 y = args[j + 5];
14933 ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);
14934 j += 6;
14935 break;
14936
14937 case _util.OPS.curveTo2:
14938 ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);
14939 x = args[j + 2];
14940 y = args[j + 3];
14941 j += 4;
14942 break;
14943
14944 case _util.OPS.curveTo3:
14945 x = args[j + 2];
14946 y = args[j + 3];
14947 ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);
14948 j += 4;
14949 break;
14950
14951 case _util.OPS.closePath:
14952 ctx.closePath();
14953 break;
14954 }
14955 }
14956
14957 current.setCurrentPoint(x, y);
14958 },
14959 closePath: function CanvasGraphics_closePath() {
14960 this.ctx.closePath();
14961 },
14962 stroke: function CanvasGraphics_stroke(consumePath) {
14963 consumePath = typeof consumePath !== 'undefined' ? consumePath : true;
14964 var ctx = this.ctx;
14965 var strokeColor = this.current.strokeColor;
14966 ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);
14967 ctx.globalAlpha = this.current.strokeAlpha;
14968
14969 if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') {
14970 ctx.save();
14971 ctx.strokeStyle = strokeColor.getPattern(ctx, this);
14972 ctx.stroke();
14973 ctx.restore();
14974 } else {
14975 ctx.stroke();
14976 }
14977
14978 if (consumePath) {
14979 this.consumePath();
14980 }
14981
14982 ctx.globalAlpha = this.current.fillAlpha;
14983 },
14984 closeStroke: function CanvasGraphics_closeStroke() {
14985 this.closePath();
14986 this.stroke();
14987 },
14988 fill: function CanvasGraphics_fill(consumePath) {
14989 consumePath = typeof consumePath !== 'undefined' ? consumePath : true;
14990 var ctx = this.ctx;
14991 var fillColor = this.current.fillColor;
14992 var isPatternFill = this.current.patternFill;
14993 var needRestore = false;
14994
14995 if (isPatternFill) {
14996 ctx.save();
14997
14998 if (this.baseTransform) {
14999 ctx.setTransform.apply(ctx, this.baseTransform);
15000 }
15001
15002 ctx.fillStyle = fillColor.getPattern(ctx, this);
15003 needRestore = true;
15004 }
15005
15006 if (this.pendingEOFill) {
15007 ctx.fill('evenodd');
15008 this.pendingEOFill = false;
15009 } else {
15010 ctx.fill();
15011 }
15012
15013 if (needRestore) {
15014 ctx.restore();
15015 }
15016
15017 if (consumePath) {
15018 this.consumePath();
15019 }
15020 },
15021 eoFill: function CanvasGraphics_eoFill() {
15022 this.pendingEOFill = true;
15023 this.fill();
15024 },
15025 fillStroke: function CanvasGraphics_fillStroke() {
15026 this.fill(false);
15027 this.stroke(false);
15028 this.consumePath();
15029 },
15030 eoFillStroke: function CanvasGraphics_eoFillStroke() {
15031 this.pendingEOFill = true;
15032 this.fillStroke();
15033 },
15034 closeFillStroke: function CanvasGraphics_closeFillStroke() {
15035 this.closePath();
15036 this.fillStroke();
15037 },
15038 closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {
15039 this.pendingEOFill = true;
15040 this.closePath();
15041 this.fillStroke();
15042 },
15043 endPath: function CanvasGraphics_endPath() {
15044 this.consumePath();
15045 },
15046 clip: function CanvasGraphics_clip() {
15047 this.pendingClip = NORMAL_CLIP;
15048 },
15049 eoClip: function CanvasGraphics_eoClip() {
15050 this.pendingClip = EO_CLIP;
15051 },
15052 beginText: function CanvasGraphics_beginText() {
15053 this.current.textMatrix = _util.IDENTITY_MATRIX;
15054 this.current.textMatrixScale = 1;
15055 this.current.x = this.current.lineX = 0;
15056 this.current.y = this.current.lineY = 0;
15057 },
15058 endText: function CanvasGraphics_endText() {
15059 var paths = this.pendingTextPaths;
15060 var ctx = this.ctx;
15061
15062 if (paths === undefined) {
15063 ctx.beginPath();
15064 return;
15065 }
15066
15067 ctx.save();
15068 ctx.beginPath();
15069
15070 for (var i = 0; i < paths.length; i++) {
15071 var path = paths[i];
15072 ctx.setTransform.apply(ctx, path.transform);
15073 ctx.translate(path.x, path.y);
15074 path.addToPath(ctx, path.fontSize);
15075 }
15076
15077 ctx.restore();
15078 ctx.clip();
15079 ctx.beginPath();
15080 delete this.pendingTextPaths;
15081 },
15082 setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {
15083 this.current.charSpacing = spacing;
15084 },
15085 setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {
15086 this.current.wordSpacing = spacing;
15087 },
15088 setHScale: function CanvasGraphics_setHScale(scale) {
15089 this.current.textHScale = scale / 100;
15090 },
15091 setLeading: function CanvasGraphics_setLeading(leading) {
15092 this.current.leading = -leading;
15093 },
15094 setFont: function CanvasGraphics_setFont(fontRefName, size) {
15095 var fontObj = this.commonObjs.get(fontRefName);
15096 var current = this.current;
15097
15098 if (!fontObj) {
15099 throw new Error("Can't find font for ".concat(fontRefName));
15100 }
15101
15102 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;
15103
15104 if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {
15105 (0, _util.warn)('Invalid font matrix for font ' + fontRefName);
15106 }
15107
15108 if (size < 0) {
15109 size = -size;
15110 current.fontDirection = -1;
15111 } else {
15112 current.fontDirection = 1;
15113 }
15114
15115 this.current.font = fontObj;
15116 this.current.fontSize = size;
15117
15118 if (fontObj.isType3Font) {
15119 return;
15120 }
15121
15122 var name = fontObj.loadedName || 'sans-serif';
15123 var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal';
15124 var italic = fontObj.italic ? 'italic' : 'normal';
15125 var typeface = "\"".concat(name, "\", ").concat(fontObj.fallbackName);
15126 var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size;
15127 this.current.fontSizeScale = size / browserFontSize;
15128 this.ctx.font = "".concat(italic, " ").concat(bold, " ").concat(browserFontSize, "px ").concat(typeface);
15129 },
15130 setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {
15131 this.current.textRenderingMode = mode;
15132 },
15133 setTextRise: function CanvasGraphics_setTextRise(rise) {
15134 this.current.textRise = rise;
15135 },
15136 moveText: function CanvasGraphics_moveText(x, y) {
15137 this.current.x = this.current.lineX += x;
15138 this.current.y = this.current.lineY += y;
15139 },
15140 setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {
15141 this.setLeading(-y);
15142 this.moveText(x, y);
15143 },
15144 setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {
15145 this.current.textMatrix = [a, b, c, d, e, f];
15146 this.current.textMatrixScale = Math.sqrt(a * a + b * b);
15147 this.current.x = this.current.lineX = 0;
15148 this.current.y = this.current.lineY = 0;
15149 },
15150 nextLine: function CanvasGraphics_nextLine() {
15151 this.moveText(0, this.current.leading);
15152 },
15153 paintChar: function paintChar(character, x, y, patternTransform) {
15154 var ctx = this.ctx;
15155 var current = this.current;
15156 var font = current.font;
15157 var textRenderingMode = current.textRenderingMode;
15158 var fontSize = current.fontSize / current.fontSizeScale;
15159 var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
15160 var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);
15161 var patternFill = current.patternFill && font.data;
15162 var addToPath;
15163
15164 if (font.disableFontFace || isAddToPathSet || patternFill) {
15165 addToPath = font.getPathGenerator(this.commonObjs, character);
15166 }
15167
15168 if (font.disableFontFace || patternFill) {
15169 ctx.save();
15170 ctx.translate(x, y);
15171 ctx.beginPath();
15172 addToPath(ctx, fontSize);
15173
15174 if (patternTransform) {
15175 ctx.setTransform.apply(ctx, patternTransform);
15176 }
15177
15178 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
15179 ctx.fill();
15180 }
15181
15182 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
15183 ctx.stroke();
15184 }
15185
15186 ctx.restore();
15187 } else {
15188 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
15189 ctx.fillText(character, x, y);
15190 }
15191
15192 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
15193 ctx.strokeText(character, x, y);
15194 }
15195 }
15196
15197 if (isAddToPathSet) {
15198 var paths = this.pendingTextPaths || (this.pendingTextPaths = []);
15199 paths.push({
15200 transform: ctx.mozCurrentTransform,
15201 x: x,
15202 y: y,
15203 fontSize: fontSize,
15204 addToPath: addToPath
15205 });
15206 }
15207 },
15208
15209 get isFontSubpixelAAEnabled() {
15210 var ctx = this.canvasFactory.create(10, 10).context;
15211 ctx.scale(1.5, 1);
15212 ctx.fillText('I', 0, 10);
15213 var data = ctx.getImageData(0, 0, 10, 10).data;
15214 var enabled = false;
15215
15216 for (var i = 3; i < data.length; i += 4) {
15217 if (data[i] > 0 && data[i] < 255) {
15218 enabled = true;
15219 break;
15220 }
15221 }
15222
15223 return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled);
15224 },
15225
15226 showText: function CanvasGraphics_showText(glyphs) {
15227 var current = this.current;
15228 var font = current.font;
15229
15230 if (font.isType3Font) {
15231 return this.showType3Text(glyphs);
15232 }
15233
15234 var fontSize = current.fontSize;
15235
15236 if (fontSize === 0) {
15237 return;
15238 }
15239
15240 var ctx = this.ctx;
15241 var fontSizeScale = current.fontSizeScale;
15242 var charSpacing = current.charSpacing;
15243 var wordSpacing = current.wordSpacing;
15244 var fontDirection = current.fontDirection;
15245 var textHScale = current.textHScale * fontDirection;
15246 var glyphsLength = glyphs.length;
15247 var vertical = font.vertical;
15248 var spacingDir = vertical ? 1 : -1;
15249 var defaultVMetrics = font.defaultVMetrics;
15250 var widthAdvanceScale = fontSize * current.fontMatrix[0];
15251 var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;
15252 ctx.save();
15253 var patternTransform;
15254
15255 if (current.patternFill) {
15256 ctx.save();
15257 var pattern = current.fillColor.getPattern(ctx, this);
15258 patternTransform = ctx.mozCurrentTransform;
15259 ctx.restore();
15260 ctx.fillStyle = pattern;
15261 }
15262
15263 ctx.transform.apply(ctx, current.textMatrix);
15264 ctx.translate(current.x, current.y + current.textRise);
15265
15266 if (fontDirection > 0) {
15267 ctx.scale(textHScale, -1);
15268 } else {
15269 ctx.scale(textHScale, 1);
15270 }
15271
15272 var lineWidth = current.lineWidth;
15273 var scale = current.textMatrixScale;
15274
15275 if (scale === 0 || lineWidth === 0) {
15276 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
15277
15278 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
15279 this._cachedGetSinglePixelWidth = null;
15280 lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;
15281 }
15282 } else {
15283 lineWidth /= scale;
15284 }
15285
15286 if (fontSizeScale !== 1.0) {
15287 ctx.scale(fontSizeScale, fontSizeScale);
15288 lineWidth /= fontSizeScale;
15289 }
15290
15291 ctx.lineWidth = lineWidth;
15292 var x = 0,
15293 i;
15294
15295 for (i = 0; i < glyphsLength; ++i) {
15296 var glyph = glyphs[i];
15297
15298 if ((0, _util.isNum)(glyph)) {
15299 x += spacingDir * glyph * fontSize / 1000;
15300 continue;
15301 }
15302
15303 var restoreNeeded = false;
15304 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
15305 var character = glyph.fontChar;
15306 var accent = glyph.accent;
15307 var scaledX, scaledY, scaledAccentX, scaledAccentY;
15308 var width = glyph.width;
15309
15310 if (vertical) {
15311 var vmetric, vx, vy;
15312 vmetric = glyph.vmetric || defaultVMetrics;
15313 vx = glyph.vmetric ? vmetric[1] : width * 0.5;
15314 vx = -vx * widthAdvanceScale;
15315 vy = vmetric[2] * widthAdvanceScale;
15316 width = vmetric ? -vmetric[0] : width;
15317 scaledX = vx / fontSizeScale;
15318 scaledY = (x + vy) / fontSizeScale;
15319 } else {
15320 scaledX = x / fontSizeScale;
15321 scaledY = 0;
15322 }
15323
15324 if (font.remeasure && width > 0) {
15325 var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;
15326
15327 if (width < measuredWidth && this.isFontSubpixelAAEnabled) {
15328 var characterScaleX = width / measuredWidth;
15329 restoreNeeded = true;
15330 ctx.save();
15331 ctx.scale(characterScaleX, 1);
15332 scaledX /= characterScaleX;
15333 } else if (width !== measuredWidth) {
15334 scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;
15335 }
15336 }
15337
15338 if (glyph.isInFont || font.missingFile) {
15339 if (simpleFillText && !accent) {
15340 ctx.fillText(character, scaledX, scaledY);
15341 } else {
15342 this.paintChar(character, scaledX, scaledY, patternTransform);
15343
15344 if (accent) {
15345 scaledAccentX = scaledX + accent.offset.x / fontSizeScale;
15346 scaledAccentY = scaledY - accent.offset.y / fontSizeScale;
15347 this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);
15348 }
15349 }
15350 }
15351
15352 var charWidth = width * widthAdvanceScale + spacing * fontDirection;
15353 x += charWidth;
15354
15355 if (restoreNeeded) {
15356 ctx.restore();
15357 }
15358 }
15359
15360 if (vertical) {
15361 current.y -= x * textHScale;
15362 } else {
15363 current.x += x * textHScale;
15364 }
15365
15366 ctx.restore();
15367 },
15368 showType3Text: function CanvasGraphics_showType3Text(glyphs) {
15369 var ctx = this.ctx;
15370 var current = this.current;
15371 var font = current.font;
15372 var fontSize = current.fontSize;
15373 var fontDirection = current.fontDirection;
15374 var spacingDir = font.vertical ? 1 : -1;
15375 var charSpacing = current.charSpacing;
15376 var wordSpacing = current.wordSpacing;
15377 var textHScale = current.textHScale * fontDirection;
15378 var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;
15379 var glyphsLength = glyphs.length;
15380 var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;
15381 var i, glyph, width, spacingLength;
15382
15383 if (isTextInvisible || fontSize === 0) {
15384 return;
15385 }
15386
15387 this._cachedGetSinglePixelWidth = null;
15388 ctx.save();
15389 ctx.transform.apply(ctx, current.textMatrix);
15390 ctx.translate(current.x, current.y);
15391 ctx.scale(textHScale, fontDirection);
15392
15393 for (i = 0; i < glyphsLength; ++i) {
15394 glyph = glyphs[i];
15395
15396 if ((0, _util.isNum)(glyph)) {
15397 spacingLength = spacingDir * glyph * fontSize / 1000;
15398 this.ctx.translate(spacingLength, 0);
15399 current.x += spacingLength * textHScale;
15400 continue;
15401 }
15402
15403 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
15404 var operatorList = font.charProcOperatorList[glyph.operatorListId];
15405
15406 if (!operatorList) {
15407 (0, _util.warn)("Type3 character \"".concat(glyph.operatorListId, "\" is not available."));
15408 continue;
15409 }
15410
15411 this.processingType3 = glyph;
15412 this.save();
15413 ctx.scale(fontSize, fontSize);
15414 ctx.transform.apply(ctx, fontMatrix);
15415 this.executeOperatorList(operatorList);
15416 this.restore();
15417
15418 var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);
15419
15420 width = transformed[0] * fontSize + spacing;
15421 ctx.translate(width, 0);
15422 current.x += width * textHScale;
15423 }
15424
15425 ctx.restore();
15426 this.processingType3 = null;
15427 },
15428 setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},
15429 setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {
15430 this.ctx.rect(llx, lly, urx - llx, ury - lly);
15431 this.clip();
15432 this.endPath();
15433 },
15434 getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {
15435 var _this = this;
15436
15437 var pattern;
15438
15439 if (IR[0] === 'TilingPattern') {
15440 var color = IR[1];
15441 var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();
15442 var canvasGraphicsFactory = {
15443 createCanvasGraphics: function createCanvasGraphics(ctx) {
15444 return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext);
15445 }
15446 };
15447 pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);
15448 } else {
15449 pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);
15450 }
15451
15452 return pattern;
15453 },
15454 setStrokeColorN: function CanvasGraphics_setStrokeColorN() {
15455 this.current.strokeColor = this.getColorN_Pattern(arguments);
15456 },
15457 setFillColorN: function CanvasGraphics_setFillColorN() {
15458 this.current.fillColor = this.getColorN_Pattern(arguments);
15459 this.current.patternFill = true;
15460 },
15461 setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {
15462 var color = _util.Util.makeCssRgb(r, g, b);
15463
15464 this.ctx.strokeStyle = color;
15465 this.current.strokeColor = color;
15466 },
15467 setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {
15468 var color = _util.Util.makeCssRgb(r, g, b);
15469
15470 this.ctx.fillStyle = color;
15471 this.current.fillColor = color;
15472 this.current.patternFill = false;
15473 },
15474 shadingFill: function CanvasGraphics_shadingFill(patternIR) {
15475 var ctx = this.ctx;
15476 this.save();
15477 var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);
15478 ctx.fillStyle = pattern.getPattern(ctx, this, true);
15479 var inv = ctx.mozCurrentTransformInverse;
15480
15481 if (inv) {
15482 var canvas = ctx.canvas;
15483 var width = canvas.width;
15484 var height = canvas.height;
15485
15486 var bl = _util.Util.applyTransform([0, 0], inv);
15487
15488 var br = _util.Util.applyTransform([0, height], inv);
15489
15490 var ul = _util.Util.applyTransform([width, 0], inv);
15491
15492 var ur = _util.Util.applyTransform([width, height], inv);
15493
15494 var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);
15495 var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);
15496 var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);
15497 var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);
15498 this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);
15499 } else {
15500 this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);
15501 }
15502
15503 this.restore();
15504 },
15505 beginInlineImage: function CanvasGraphics_beginInlineImage() {
15506 (0, _util.unreachable)('Should not call beginInlineImage');
15507 },
15508 beginImageData: function CanvasGraphics_beginImageData() {
15509 (0, _util.unreachable)('Should not call beginImageData');
15510 },
15511 paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {
15512 this.save();
15513 this.baseTransformStack.push(this.baseTransform);
15514
15515 if (Array.isArray(matrix) && matrix.length === 6) {
15516 this.transform.apply(this, matrix);
15517 }
15518
15519 this.baseTransform = this.ctx.mozCurrentTransform;
15520
15521 if (bbox) {
15522 var width = bbox[2] - bbox[0];
15523 var height = bbox[3] - bbox[1];
15524 this.ctx.rect(bbox[0], bbox[1], width, height);
15525 this.clip();
15526 this.endPath();
15527 }
15528 },
15529 paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {
15530 this.restore();
15531 this.baseTransform = this.baseTransformStack.pop();
15532 },
15533 beginGroup: function CanvasGraphics_beginGroup(group) {
15534 this.save();
15535 var currentCtx = this.ctx;
15536
15537 if (!group.isolated) {
15538 (0, _util.info)('TODO: Support non-isolated groups.');
15539 }
15540
15541 if (group.knockout) {
15542 (0, _util.warn)('Knockout groups not supported.');
15543 }
15544
15545 var currentTransform = currentCtx.mozCurrentTransform;
15546
15547 if (group.matrix) {
15548 currentCtx.transform.apply(currentCtx, group.matrix);
15549 }
15550
15551 if (!group.bbox) {
15552 throw new Error('Bounding box is required.');
15553 }
15554
15555 var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);
15556
15557 var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];
15558 bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];
15559 var offsetX = Math.floor(bounds[0]);
15560 var offsetY = Math.floor(bounds[1]);
15561 var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);
15562 var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);
15563 var scaleX = 1,
15564 scaleY = 1;
15565
15566 if (drawnWidth > MAX_GROUP_SIZE) {
15567 scaleX = drawnWidth / MAX_GROUP_SIZE;
15568 drawnWidth = MAX_GROUP_SIZE;
15569 }
15570
15571 if (drawnHeight > MAX_GROUP_SIZE) {
15572 scaleY = drawnHeight / MAX_GROUP_SIZE;
15573 drawnHeight = MAX_GROUP_SIZE;
15574 }
15575
15576 var cacheId = 'groupAt' + this.groupLevel;
15577
15578 if (group.smask) {
15579 cacheId += '_smask_' + this.smaskCounter++ % 2;
15580 }
15581
15582 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);
15583 var groupCtx = scratchCanvas.context;
15584 groupCtx.scale(1 / scaleX, 1 / scaleY);
15585 groupCtx.translate(-offsetX, -offsetY);
15586 groupCtx.transform.apply(groupCtx, currentTransform);
15587
15588 if (group.smask) {
15589 this.smaskStack.push({
15590 canvas: scratchCanvas.canvas,
15591 context: groupCtx,
15592 offsetX: offsetX,
15593 offsetY: offsetY,
15594 scaleX: scaleX,
15595 scaleY: scaleY,
15596 subtype: group.smask.subtype,
15597 backdrop: group.smask.backdrop,
15598 transferMap: group.smask.transferMap || null,
15599 startTransformInverse: null
15600 });
15601 } else {
15602 currentCtx.setTransform(1, 0, 0, 1, 0, 0);
15603 currentCtx.translate(offsetX, offsetY);
15604 currentCtx.scale(scaleX, scaleY);
15605 }
15606
15607 copyCtxState(currentCtx, groupCtx);
15608 this.ctx = groupCtx;
15609 this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);
15610 this.groupStack.push(currentCtx);
15611 this.groupLevel++;
15612 this.current.activeSMask = null;
15613 },
15614 endGroup: function CanvasGraphics_endGroup(group) {
15615 this.groupLevel--;
15616 var groupCtx = this.ctx;
15617 this.ctx = this.groupStack.pop();
15618
15619 if (this.ctx.imageSmoothingEnabled !== undefined) {
15620 this.ctx.imageSmoothingEnabled = false;
15621 } else {
15622 this.ctx.mozImageSmoothingEnabled = false;
15623 }
15624
15625 if (group.smask) {
15626 this.tempSMask = this.smaskStack.pop();
15627 } else {
15628 this.ctx.drawImage(groupCtx.canvas, 0, 0);
15629 }
15630
15631 this.restore();
15632 },
15633 beginAnnotations: function CanvasGraphics_beginAnnotations() {
15634 this.save();
15635
15636 if (this.baseTransform) {
15637 this.ctx.setTransform.apply(this.ctx, this.baseTransform);
15638 }
15639 },
15640 endAnnotations: function CanvasGraphics_endAnnotations() {
15641 this.restore();
15642 },
15643 beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {
15644 this.save();
15645 resetCtxToDefault(this.ctx);
15646 this.current = new CanvasExtraState();
15647
15648 if (Array.isArray(rect) && rect.length === 4) {
15649 var width = rect[2] - rect[0];
15650 var height = rect[3] - rect[1];
15651 this.ctx.rect(rect[0], rect[1], width, height);
15652 this.clip();
15653 this.endPath();
15654 }
15655
15656 this.transform.apply(this, transform);
15657 this.transform.apply(this, matrix);
15658 },
15659 endAnnotation: function CanvasGraphics_endAnnotation() {
15660 this.restore();
15661 },
15662 paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {
15663 var domImage = this.objs.get(objId);
15664
15665 if (!domImage) {
15666 (0, _util.warn)('Dependent image isn\'t ready yet');
15667 return;
15668 }
15669
15670 this.save();
15671 var ctx = this.ctx;
15672 ctx.scale(1 / w, -1 / h);
15673 ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h);
15674
15675 if (this.imageLayer) {
15676 var currentTransform = ctx.mozCurrentTransformInverse;
15677 var position = this.getCanvasPosition(0, 0);
15678 this.imageLayer.appendImage({
15679 objId: objId,
15680 left: position[0],
15681 top: position[1],
15682 width: w / currentTransform[0],
15683 height: h / currentTransform[3]
15684 });
15685 }
15686
15687 this.restore();
15688 },
15689 paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {
15690 var ctx = this.ctx;
15691 var width = img.width,
15692 height = img.height;
15693 var fillColor = this.current.fillColor;
15694 var isPatternFill = this.current.patternFill;
15695 var glyph = this.processingType3;
15696
15697 if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {
15698 if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {
15699 glyph.compiled = compileType3Glyph({
15700 data: img.data,
15701 width: width,
15702 height: height
15703 });
15704 } else {
15705 glyph.compiled = null;
15706 }
15707 }
15708
15709 if (glyph && glyph.compiled) {
15710 glyph.compiled(ctx);
15711 return;
15712 }
15713
15714 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);
15715 var maskCtx = maskCanvas.context;
15716 maskCtx.save();
15717 putBinaryImageMask(maskCtx, img);
15718 maskCtx.globalCompositeOperation = 'source-in';
15719 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
15720 maskCtx.fillRect(0, 0, width, height);
15721 maskCtx.restore();
15722 this.paintInlineImageXObject(maskCanvas.canvas);
15723 },
15724 paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) {
15725 var width = imgData.width;
15726 var height = imgData.height;
15727 var fillColor = this.current.fillColor;
15728 var isPatternFill = this.current.patternFill;
15729 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);
15730 var maskCtx = maskCanvas.context;
15731 maskCtx.save();
15732 putBinaryImageMask(maskCtx, imgData);
15733 maskCtx.globalCompositeOperation = 'source-in';
15734 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
15735 maskCtx.fillRect(0, 0, width, height);
15736 maskCtx.restore();
15737 var ctx = this.ctx;
15738
15739 for (var i = 0, ii = positions.length; i < ii; i += 2) {
15740 ctx.save();
15741 ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);
15742 ctx.scale(1, -1);
15743 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);
15744 ctx.restore();
15745 }
15746 },
15747 paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {
15748 var ctx = this.ctx;
15749 var fillColor = this.current.fillColor;
15750 var isPatternFill = this.current.patternFill;
15751
15752 for (var i = 0, ii = images.length; i < ii; i++) {
15753 var image = images[i];
15754 var width = image.width,
15755 height = image.height;
15756 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);
15757 var maskCtx = maskCanvas.context;
15758 maskCtx.save();
15759 putBinaryImageMask(maskCtx, image);
15760 maskCtx.globalCompositeOperation = 'source-in';
15761 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
15762 maskCtx.fillRect(0, 0, width, height);
15763 maskCtx.restore();
15764 ctx.save();
15765 ctx.transform.apply(ctx, image.transform);
15766 ctx.scale(1, -1);
15767 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);
15768 ctx.restore();
15769 }
15770 },
15771 paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {
15772 var imgData = this.objs.get(objId);
15773
15774 if (!imgData) {
15775 (0, _util.warn)('Dependent image isn\'t ready yet');
15776 return;
15777 }
15778
15779 this.paintInlineImageXObject(imgData);
15780 },
15781 paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {
15782 var imgData = this.objs.get(objId);
15783
15784 if (!imgData) {
15785 (0, _util.warn)('Dependent image isn\'t ready yet');
15786 return;
15787 }
15788
15789 var width = imgData.width;
15790 var height = imgData.height;
15791 var map = [];
15792
15793 for (var i = 0, ii = positions.length; i < ii; i += 2) {
15794 map.push({
15795 transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],
15796 x: 0,
15797 y: 0,
15798 w: width,
15799 h: height
15800 });
15801 }
15802
15803 this.paintInlineImageXObjectGroup(imgData, map);
15804 },
15805 paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {
15806 var width = imgData.width;
15807 var height = imgData.height;
15808 var ctx = this.ctx;
15809 this.save();
15810 ctx.scale(1 / width, -1 / height);
15811 var currentTransform = ctx.mozCurrentTransformInverse;
15812 var a = currentTransform[0],
15813 b = currentTransform[1];
15814 var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);
15815 var c = currentTransform[2],
15816 d = currentTransform[3];
15817 var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);
15818 var imgToPaint, tmpCanvas;
15819
15820 if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) {
15821 imgToPaint = imgData;
15822 } else {
15823 tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height);
15824 var tmpCtx = tmpCanvas.context;
15825 putBinaryImageData(tmpCtx, imgData);
15826 imgToPaint = tmpCanvas.canvas;
15827 }
15828
15829 var paintWidth = width,
15830 paintHeight = height;
15831 var tmpCanvasId = 'prescale1';
15832
15833 while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {
15834 var newWidth = paintWidth,
15835 newHeight = paintHeight;
15836
15837 if (widthScale > 2 && paintWidth > 1) {
15838 newWidth = Math.ceil(paintWidth / 2);
15839 widthScale /= paintWidth / newWidth;
15840 }
15841
15842 if (heightScale > 2 && paintHeight > 1) {
15843 newHeight = Math.ceil(paintHeight / 2);
15844 heightScale /= paintHeight / newHeight;
15845 }
15846
15847 tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);
15848 tmpCtx = tmpCanvas.context;
15849 tmpCtx.clearRect(0, 0, newWidth, newHeight);
15850 tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);
15851 imgToPaint = tmpCanvas.canvas;
15852 paintWidth = newWidth;
15853 paintHeight = newHeight;
15854 tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1';
15855 }
15856
15857 ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);
15858
15859 if (this.imageLayer) {
15860 var position = this.getCanvasPosition(0, -height);
15861 this.imageLayer.appendImage({
15862 imgData: imgData,
15863 left: position[0],
15864 top: position[1],
15865 width: width / currentTransform[0],
15866 height: height / currentTransform[3]
15867 });
15868 }
15869
15870 this.restore();
15871 },
15872 paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {
15873 var ctx = this.ctx;
15874 var w = imgData.width;
15875 var h = imgData.height;
15876 var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h);
15877 var tmpCtx = tmpCanvas.context;
15878 putBinaryImageData(tmpCtx, imgData);
15879
15880 for (var i = 0, ii = map.length; i < ii; i++) {
15881 var entry = map[i];
15882 ctx.save();
15883 ctx.transform.apply(ctx, entry.transform);
15884 ctx.scale(1, -1);
15885 ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);
15886
15887 if (this.imageLayer) {
15888 var position = this.getCanvasPosition(entry.x, entry.y);
15889 this.imageLayer.appendImage({
15890 imgData: imgData,
15891 left: position[0],
15892 top: position[1],
15893 width: w,
15894 height: h
15895 });
15896 }
15897
15898 ctx.restore();
15899 }
15900 },
15901 paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {
15902 this.ctx.fillRect(0, 0, 1, 1);
15903 },
15904 paintXObject: function CanvasGraphics_paintXObject() {
15905 (0, _util.warn)('Unsupported \'paintXObject\' command.');
15906 },
15907 markPoint: function CanvasGraphics_markPoint(tag) {},
15908 markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},
15909 beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},
15910 beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},
15911 endMarkedContent: function CanvasGraphics_endMarkedContent() {},
15912 beginCompat: function CanvasGraphics_beginCompat() {},
15913 endCompat: function CanvasGraphics_endCompat() {},
15914 consumePath: function CanvasGraphics_consumePath() {
15915 var ctx = this.ctx;
15916
15917 if (this.pendingClip) {
15918 if (this.pendingClip === EO_CLIP) {
15919 ctx.clip('evenodd');
15920 } else {
15921 ctx.clip();
15922 }
15923
15924 this.pendingClip = null;
15925 }
15926
15927 ctx.beginPath();
15928 },
15929 getSinglePixelWidth: function getSinglePixelWidth(scale) {
15930 if (this._cachedGetSinglePixelWidth === null) {
15931 var inverse = this.ctx.mozCurrentTransformInverse;
15932 this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));
15933 }
15934
15935 return this._cachedGetSinglePixelWidth;
15936 },
15937 getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {
15938 var transform = this.ctx.mozCurrentTransform;
15939 return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];
15940 }
15941 };
15942
15943 for (var op in _util.OPS) {
15944 CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];
15945 }
15946
15947 return CanvasGraphics;
15948}();
15949
15950exports.CanvasGraphics = CanvasGraphics;
15951
15952/***/ }),
15953/* 155 */
15954/***/ (function(module, exports, __w_pdfjs_require__) {
15955
15956"use strict";
15957
15958
15959Object.defineProperty(exports, "__esModule", {
15960 value: true
15961});
15962exports.getShadingPatternFromIR = getShadingPatternFromIR;
15963exports.TilingPattern = void 0;
15964
15965var _util = __w_pdfjs_require__(1);
15966
15967var ShadingIRs = {};
15968ShadingIRs.RadialAxial = {
15969 fromIR: function RadialAxial_fromIR(raw) {
15970 var type = raw[1];
15971 var colorStops = raw[2];
15972 var p0 = raw[3];
15973 var p1 = raw[4];
15974 var r0 = raw[5];
15975 var r1 = raw[6];
15976 return {
15977 type: 'Pattern',
15978 getPattern: function RadialAxial_getPattern(ctx) {
15979 var grad;
15980
15981 if (type === 'axial') {
15982 grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);
15983 } else if (type === 'radial') {
15984 grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);
15985 }
15986
15987 for (var i = 0, ii = colorStops.length; i < ii; ++i) {
15988 var c = colorStops[i];
15989 grad.addColorStop(c[0], c[1]);
15990 }
15991
15992 return grad;
15993 }
15994 };
15995 }
15996};
15997
15998var createMeshCanvas = function createMeshCanvasClosure() {
15999 function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {
16000 var coords = context.coords,
16001 colors = context.colors;
16002 var bytes = data.data,
16003 rowSize = data.width * 4;
16004 var tmp;
16005
16006 if (coords[p1 + 1] > coords[p2 + 1]) {
16007 tmp = p1;
16008 p1 = p2;
16009 p2 = tmp;
16010 tmp = c1;
16011 c1 = c2;
16012 c2 = tmp;
16013 }
16014
16015 if (coords[p2 + 1] > coords[p3 + 1]) {
16016 tmp = p2;
16017 p2 = p3;
16018 p3 = tmp;
16019 tmp = c2;
16020 c2 = c3;
16021 c3 = tmp;
16022 }
16023
16024 if (coords[p1 + 1] > coords[p2 + 1]) {
16025 tmp = p1;
16026 p1 = p2;
16027 p2 = tmp;
16028 tmp = c1;
16029 c1 = c2;
16030 c2 = tmp;
16031 }
16032
16033 var x1 = (coords[p1] + context.offsetX) * context.scaleX;
16034 var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;
16035 var x2 = (coords[p2] + context.offsetX) * context.scaleX;
16036 var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;
16037 var x3 = (coords[p3] + context.offsetX) * context.scaleX;
16038 var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;
16039
16040 if (y1 >= y3) {
16041 return;
16042 }
16043
16044 var c1r = colors[c1],
16045 c1g = colors[c1 + 1],
16046 c1b = colors[c1 + 2];
16047 var c2r = colors[c2],
16048 c2g = colors[c2 + 1],
16049 c2b = colors[c2 + 2];
16050 var c3r = colors[c3],
16051 c3g = colors[c3 + 1],
16052 c3b = colors[c3 + 2];
16053 var minY = Math.round(y1),
16054 maxY = Math.round(y3);
16055 var xa, car, cag, cab;
16056 var xb, cbr, cbg, cbb;
16057 var k;
16058
16059 for (var y = minY; y <= maxY; y++) {
16060 if (y < y2) {
16061 k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);
16062 xa = x1 - (x1 - x2) * k;
16063 car = c1r - (c1r - c2r) * k;
16064 cag = c1g - (c1g - c2g) * k;
16065 cab = c1b - (c1b - c2b) * k;
16066 } else {
16067 k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3);
16068 xa = x2 - (x2 - x3) * k;
16069 car = c2r - (c2r - c3r) * k;
16070 cag = c2g - (c2g - c3g) * k;
16071 cab = c2b - (c2b - c3b) * k;
16072 }
16073
16074 k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);
16075 xb = x1 - (x1 - x3) * k;
16076 cbr = c1r - (c1r - c3r) * k;
16077 cbg = c1g - (c1g - c3g) * k;
16078 cbb = c1b - (c1b - c3b) * k;
16079 var x1_ = Math.round(Math.min(xa, xb));
16080 var x2_ = Math.round(Math.max(xa, xb));
16081 var j = rowSize * y + x1_ * 4;
16082
16083 for (var x = x1_; x <= x2_; x++) {
16084 k = (xa - x) / (xa - xb);
16085 k = k < 0 ? 0 : k > 1 ? 1 : k;
16086 bytes[j++] = car - (car - cbr) * k | 0;
16087 bytes[j++] = cag - (cag - cbg) * k | 0;
16088 bytes[j++] = cab - (cab - cbb) * k | 0;
16089 bytes[j++] = 255;
16090 }
16091 }
16092 }
16093
16094 function drawFigure(data, figure, context) {
16095 var ps = figure.coords;
16096 var cs = figure.colors;
16097 var i, ii;
16098
16099 switch (figure.type) {
16100 case 'lattice':
16101 var verticesPerRow = figure.verticesPerRow;
16102 var rows = Math.floor(ps.length / verticesPerRow) - 1;
16103 var cols = verticesPerRow - 1;
16104
16105 for (i = 0; i < rows; i++) {
16106 var q = i * verticesPerRow;
16107
16108 for (var j = 0; j < cols; j++, q++) {
16109 drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);
16110 drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);
16111 }
16112 }
16113
16114 break;
16115
16116 case 'triangles':
16117 for (i = 0, ii = ps.length; i < ii; i += 3) {
16118 drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);
16119 }
16120
16121 break;
16122
16123 default:
16124 throw new Error('illegal figure');
16125 }
16126 }
16127
16128 function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {
16129 var EXPECTED_SCALE = 1.1;
16130 var MAX_PATTERN_SIZE = 3000;
16131 var BORDER_SIZE = 2;
16132 var offsetX = Math.floor(bounds[0]);
16133 var offsetY = Math.floor(bounds[1]);
16134 var boundsWidth = Math.ceil(bounds[2]) - offsetX;
16135 var boundsHeight = Math.ceil(bounds[3]) - offsetY;
16136 var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);
16137 var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);
16138 var scaleX = boundsWidth / width;
16139 var scaleY = boundsHeight / height;
16140 var context = {
16141 coords: coords,
16142 colors: colors,
16143 offsetX: -offsetX,
16144 offsetY: -offsetY,
16145 scaleX: 1 / scaleX,
16146 scaleY: 1 / scaleY
16147 };
16148 var paddedWidth = width + BORDER_SIZE * 2;
16149 var paddedHeight = height + BORDER_SIZE * 2;
16150 var canvas, tmpCanvas, i, ii;
16151
16152 if (webGLContext.isEnabled) {
16153 canvas = webGLContext.drawFigures({
16154 width: width,
16155 height: height,
16156 backgroundColor: backgroundColor,
16157 figures: figures,
16158 context: context
16159 });
16160 tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);
16161 tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);
16162 canvas = tmpCanvas.canvas;
16163 } else {
16164 tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);
16165 var tmpCtx = tmpCanvas.context;
16166 var data = tmpCtx.createImageData(width, height);
16167
16168 if (backgroundColor) {
16169 var bytes = data.data;
16170
16171 for (i = 0, ii = bytes.length; i < ii; i += 4) {
16172 bytes[i] = backgroundColor[0];
16173 bytes[i + 1] = backgroundColor[1];
16174 bytes[i + 2] = backgroundColor[2];
16175 bytes[i + 3] = 255;
16176 }
16177 }
16178
16179 for (i = 0; i < figures.length; i++) {
16180 drawFigure(data, figures[i], context);
16181 }
16182
16183 tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);
16184 canvas = tmpCanvas.canvas;
16185 }
16186
16187 return {
16188 canvas: canvas,
16189 offsetX: offsetX - BORDER_SIZE * scaleX,
16190 offsetY: offsetY - BORDER_SIZE * scaleY,
16191 scaleX: scaleX,
16192 scaleY: scaleY
16193 };
16194 }
16195
16196 return createMeshCanvas;
16197}();
16198
16199ShadingIRs.Mesh = {
16200 fromIR: function Mesh_fromIR(raw) {
16201 var coords = raw[2];
16202 var colors = raw[3];
16203 var figures = raw[4];
16204 var bounds = raw[5];
16205 var matrix = raw[6];
16206 var background = raw[8];
16207 return {
16208 type: 'Pattern',
16209 getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {
16210 var scale;
16211
16212 if (shadingFill) {
16213 scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);
16214 } else {
16215 scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);
16216
16217 if (matrix) {
16218 var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);
16219
16220 scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];
16221 }
16222 }
16223
16224 var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);
16225
16226 if (!shadingFill) {
16227 ctx.setTransform.apply(ctx, owner.baseTransform);
16228
16229 if (matrix) {
16230 ctx.transform.apply(ctx, matrix);
16231 }
16232 }
16233
16234 ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);
16235 ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);
16236 return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');
16237 }
16238 };
16239 }
16240};
16241ShadingIRs.Dummy = {
16242 fromIR: function Dummy_fromIR() {
16243 return {
16244 type: 'Pattern',
16245 getPattern: function Dummy_fromIR_getPattern() {
16246 return 'hotpink';
16247 }
16248 };
16249 }
16250};
16251
16252function getShadingPatternFromIR(raw) {
16253 var shadingIR = ShadingIRs[raw[0]];
16254
16255 if (!shadingIR) {
16256 throw new Error("Unknown IR type: ".concat(raw[0]));
16257 }
16258
16259 return shadingIR.fromIR(raw);
16260}
16261
16262var TilingPattern = function TilingPatternClosure() {
16263 var PaintType = {
16264 COLORED: 1,
16265 UNCOLORED: 2
16266 };
16267 var MAX_PATTERN_SIZE = 3000;
16268
16269 function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {
16270 this.operatorList = IR[2];
16271 this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];
16272 this.bbox = IR[4];
16273 this.xstep = IR[5];
16274 this.ystep = IR[6];
16275 this.paintType = IR[7];
16276 this.tilingType = IR[8];
16277 this.color = color;
16278 this.canvasGraphicsFactory = canvasGraphicsFactory;
16279 this.baseTransform = baseTransform;
16280 this.type = 'Pattern';
16281 this.ctx = ctx;
16282 }
16283
16284 TilingPattern.prototype = {
16285 createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {
16286 var operatorList = this.operatorList;
16287 var bbox = this.bbox;
16288 var xstep = this.xstep;
16289 var ystep = this.ystep;
16290 var paintType = this.paintType;
16291 var tilingType = this.tilingType;
16292 var color = this.color;
16293 var canvasGraphicsFactory = this.canvasGraphicsFactory;
16294 (0, _util.info)('TilingType: ' + tilingType);
16295 var x0 = bbox[0],
16296 y0 = bbox[1],
16297 x1 = bbox[2],
16298 y1 = bbox[3];
16299 var topLeft = [x0, y0];
16300 var botRight = [x0 + xstep, y0 + ystep];
16301 var width = botRight[0] - topLeft[0];
16302 var height = botRight[1] - topLeft[1];
16303
16304 var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);
16305
16306 var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);
16307
16308 var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];
16309 width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), MAX_PATTERN_SIZE);
16310 height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), MAX_PATTERN_SIZE);
16311 var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', width, height, true);
16312 var tmpCtx = tmpCanvas.context;
16313 var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);
16314 graphics.groupLevel = owner.groupLevel;
16315 this.setFillAndStrokeStyleToContext(graphics, paintType, color);
16316 this.setScale(width, height, xstep, ystep);
16317 this.transformToScale(graphics);
16318 var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];
16319 graphics.transform.apply(graphics, tmpTranslate);
16320 this.clipBbox(graphics, bbox, x0, y0, x1, y1);
16321 graphics.executeOperatorList(operatorList);
16322 return tmpCanvas.canvas;
16323 },
16324 setScale: function TilingPattern_setScale(width, height, xstep, ystep) {
16325 this.scale = [width / xstep, height / ystep];
16326 },
16327 transformToScale: function TilingPattern_transformToScale(graphics) {
16328 var scale = this.scale;
16329 var tmpScale = [scale[0], 0, 0, scale[1], 0, 0];
16330 graphics.transform.apply(graphics, tmpScale);
16331 },
16332 scaleToContext: function TilingPattern_scaleToContext() {
16333 var scale = this.scale;
16334 this.ctx.scale(1 / scale[0], 1 / scale[1]);
16335 },
16336 clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {
16337 if (Array.isArray(bbox) && bbox.length === 4) {
16338 var bboxWidth = x1 - x0;
16339 var bboxHeight = y1 - y0;
16340 graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);
16341 graphics.clip();
16342 graphics.endPath();
16343 }
16344 },
16345 setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {
16346 var context = graphics.ctx,
16347 current = graphics.current;
16348
16349 switch (paintType) {
16350 case PaintType.COLORED:
16351 var ctx = this.ctx;
16352 context.fillStyle = ctx.fillStyle;
16353 context.strokeStyle = ctx.strokeStyle;
16354 current.fillColor = ctx.fillStyle;
16355 current.strokeColor = ctx.strokeStyle;
16356 break;
16357
16358 case PaintType.UNCOLORED:
16359 var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);
16360
16361 context.fillStyle = cssColor;
16362 context.strokeStyle = cssColor;
16363 current.fillColor = cssColor;
16364 current.strokeColor = cssColor;
16365 break;
16366
16367 default:
16368 throw new _util.FormatError("Unsupported paint type: ".concat(paintType));
16369 }
16370 },
16371 getPattern: function TilingPattern_getPattern(ctx, owner) {
16372 var temporaryPatternCanvas = this.createPatternCanvas(owner);
16373 ctx = this.ctx;
16374 ctx.setTransform.apply(ctx, this.baseTransform);
16375 ctx.transform.apply(ctx, this.matrix);
16376 this.scaleToContext();
16377 return ctx.createPattern(temporaryPatternCanvas, 'repeat');
16378 }
16379 };
16380 return TilingPattern;
16381}();
16382
16383exports.TilingPattern = TilingPattern;
16384
16385/***/ }),
16386/* 156 */
16387/***/ (function(module, exports, __w_pdfjs_require__) {
16388
16389"use strict";
16390
16391
16392Object.defineProperty(exports, "__esModule", {
16393 value: true
16394});
16395exports.GlobalWorkerOptions = void 0;
16396var GlobalWorkerOptions = Object.create(null);
16397exports.GlobalWorkerOptions = GlobalWorkerOptions;
16398GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;
16399GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc;
16400
16401/***/ }),
16402/* 157 */
16403/***/ (function(module, exports, __w_pdfjs_require__) {
16404
16405"use strict";
16406
16407
16408Object.defineProperty(exports, "__esModule", {
16409 value: true
16410});
16411exports.MessageHandler = MessageHandler;
16412
16413var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
16414
16415var _util = __w_pdfjs_require__(1);
16416
16417function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16418
16419function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
16420
16421function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
16422
16423function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
16424
16425function resolveCall(_x, _x2) {
16426 return _resolveCall.apply(this, arguments);
16427}
16428
16429function _resolveCall() {
16430 _resolveCall = _asyncToGenerator(
16431 /*#__PURE__*/
16432 _regenerator.default.mark(function _callee(fn, args) {
16433 var thisArg,
16434 _args = arguments;
16435 return _regenerator.default.wrap(function _callee$(_context) {
16436 while (1) {
16437 switch (_context.prev = _context.next) {
16438 case 0:
16439 thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null;
16440
16441 if (fn) {
16442 _context.next = 3;
16443 break;
16444 }
16445
16446 return _context.abrupt("return");
16447
16448 case 3:
16449 return _context.abrupt("return", fn.apply(thisArg, args));
16450
16451 case 4:
16452 case "end":
16453 return _context.stop();
16454 }
16455 }
16456 }, _callee, this);
16457 }));
16458 return _resolveCall.apply(this, arguments);
16459}
16460
16461function wrapReason(reason) {
16462 if (_typeof(reason) !== 'object') {
16463 return reason;
16464 }
16465
16466 switch (reason.name) {
16467 case 'AbortException':
16468 return new _util.AbortException(reason.message);
16469
16470 case 'MissingPDFException':
16471 return new _util.MissingPDFException(reason.message);
16472
16473 case 'UnexpectedResponseException':
16474 return new _util.UnexpectedResponseException(reason.message, reason.status);
16475
16476 default:
16477 return new _util.UnknownErrorException(reason.message, reason.details);
16478 }
16479}
16480
16481function makeReasonSerializable(reason) {
16482 if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) {
16483 return reason;
16484 }
16485
16486 return new _util.UnknownErrorException(reason.message, reason.toString());
16487}
16488
16489function resolveOrReject(capability, success, reason) {
16490 if (success) {
16491 capability.resolve();
16492 } else {
16493 capability.reject(reason);
16494 }
16495}
16496
16497function finalize(promise) {
16498 return Promise.resolve(promise).catch(function () {});
16499}
16500
16501function MessageHandler(sourceName, targetName, comObj) {
16502 var _this = this;
16503
16504 this.sourceName = sourceName;
16505 this.targetName = targetName;
16506 this.comObj = comObj;
16507 this.callbackId = 1;
16508 this.streamId = 1;
16509 this.postMessageTransfers = true;
16510 this.streamSinks = Object.create(null);
16511 this.streamControllers = Object.create(null);
16512 var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);
16513 var ah = this.actionHandler = Object.create(null);
16514
16515 this._onComObjOnMessage = function (event) {
16516 var data = event.data;
16517
16518 if (data.targetName !== _this.sourceName) {
16519 return;
16520 }
16521
16522 if (data.stream) {
16523 _this._processStreamMessage(data);
16524 } else if (data.isReply) {
16525 var callbackId = data.callbackId;
16526
16527 if (data.callbackId in callbacksCapabilities) {
16528 var callback = callbacksCapabilities[callbackId];
16529 delete callbacksCapabilities[callbackId];
16530
16531 if ('error' in data) {
16532 callback.reject(wrapReason(data.error));
16533 } else {
16534 callback.resolve(data.data);
16535 }
16536 } else {
16537 throw new Error("Cannot resolve callback ".concat(callbackId));
16538 }
16539 } else if (data.action in ah) {
16540 var action = ah[data.action];
16541
16542 if (data.callbackId) {
16543 var _sourceName = _this.sourceName;
16544 var _targetName = data.sourceName;
16545 Promise.resolve().then(function () {
16546 return action[0].call(action[1], data.data);
16547 }).then(function (result) {
16548 comObj.postMessage({
16549 sourceName: _sourceName,
16550 targetName: _targetName,
16551 isReply: true,
16552 callbackId: data.callbackId,
16553 data: result
16554 });
16555 }, function (reason) {
16556 comObj.postMessage({
16557 sourceName: _sourceName,
16558 targetName: _targetName,
16559 isReply: true,
16560 callbackId: data.callbackId,
16561 error: makeReasonSerializable(reason)
16562 });
16563 });
16564 } else if (data.streamId) {
16565 _this._createStreamSink(data);
16566 } else {
16567 action[0].call(action[1], data.data);
16568 }
16569 } else {
16570 throw new Error("Unknown action from worker: ".concat(data.action));
16571 }
16572 };
16573
16574 comObj.addEventListener('message', this._onComObjOnMessage);
16575}
16576
16577MessageHandler.prototype = {
16578 on: function on(actionName, handler, scope) {
16579 var ah = this.actionHandler;
16580
16581 if (ah[actionName]) {
16582 throw new Error("There is already an actionName called \"".concat(actionName, "\""));
16583 }
16584
16585 ah[actionName] = [handler, scope];
16586 },
16587 send: function send(actionName, data, transfers) {
16588 var message = {
16589 sourceName: this.sourceName,
16590 targetName: this.targetName,
16591 action: actionName,
16592 data: data
16593 };
16594 this.postMessage(message, transfers);
16595 },
16596 sendWithPromise: function sendWithPromise(actionName, data, transfers) {
16597 var callbackId = this.callbackId++;
16598 var message = {
16599 sourceName: this.sourceName,
16600 targetName: this.targetName,
16601 action: actionName,
16602 data: data,
16603 callbackId: callbackId
16604 };
16605 var capability = (0, _util.createPromiseCapability)();
16606 this.callbacksCapabilities[callbackId] = capability;
16607
16608 try {
16609 this.postMessage(message, transfers);
16610 } catch (e) {
16611 capability.reject(e);
16612 }
16613
16614 return capability.promise;
16615 },
16616 sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) {
16617 var _this2 = this;
16618
16619 var streamId = this.streamId++;
16620 var sourceName = this.sourceName;
16621 var targetName = this.targetName;
16622 return new _util.ReadableStream({
16623 start: function start(controller) {
16624 var startCapability = (0, _util.createPromiseCapability)();
16625 _this2.streamControllers[streamId] = {
16626 controller: controller,
16627 startCall: startCapability,
16628 isClosed: false
16629 };
16630
16631 _this2.postMessage({
16632 sourceName: sourceName,
16633 targetName: targetName,
16634 action: actionName,
16635 streamId: streamId,
16636 data: data,
16637 desiredSize: controller.desiredSize
16638 });
16639
16640 return startCapability.promise;
16641 },
16642 pull: function pull(controller) {
16643 var pullCapability = (0, _util.createPromiseCapability)();
16644 _this2.streamControllers[streamId].pullCall = pullCapability;
16645
16646 _this2.postMessage({
16647 sourceName: sourceName,
16648 targetName: targetName,
16649 stream: 'pull',
16650 streamId: streamId,
16651 desiredSize: controller.desiredSize
16652 });
16653
16654 return pullCapability.promise;
16655 },
16656 cancel: function cancel(reason) {
16657 var cancelCapability = (0, _util.createPromiseCapability)();
16658 _this2.streamControllers[streamId].cancelCall = cancelCapability;
16659 _this2.streamControllers[streamId].isClosed = true;
16660
16661 _this2.postMessage({
16662 sourceName: sourceName,
16663 targetName: targetName,
16664 stream: 'cancel',
16665 reason: reason,
16666 streamId: streamId
16667 });
16668
16669 return cancelCapability.promise;
16670 }
16671 }, queueingStrategy);
16672 },
16673 _createStreamSink: function _createStreamSink(data) {
16674 var _this3 = this;
16675
16676 var self = this;
16677 var action = this.actionHandler[data.action];
16678 var streamId = data.streamId;
16679 var desiredSize = data.desiredSize;
16680 var sourceName = this.sourceName;
16681 var targetName = data.sourceName;
16682 var capability = (0, _util.createPromiseCapability)();
16683
16684 var sendStreamRequest = function sendStreamRequest(_ref) {
16685 var stream = _ref.stream,
16686 chunk = _ref.chunk,
16687 transfers = _ref.transfers,
16688 success = _ref.success,
16689 reason = _ref.reason;
16690
16691 _this3.postMessage({
16692 sourceName: sourceName,
16693 targetName: targetName,
16694 stream: stream,
16695 streamId: streamId,
16696 chunk: chunk,
16697 success: success,
16698 reason: reason
16699 }, transfers);
16700 };
16701
16702 var streamSink = {
16703 enqueue: function enqueue(chunk) {
16704 var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
16705 var transfers = arguments.length > 2 ? arguments[2] : undefined;
16706
16707 if (this.isCancelled) {
16708 return;
16709 }
16710
16711 var lastDesiredSize = this.desiredSize;
16712 this.desiredSize -= size;
16713
16714 if (lastDesiredSize > 0 && this.desiredSize <= 0) {
16715 this.sinkCapability = (0, _util.createPromiseCapability)();
16716 this.ready = this.sinkCapability.promise;
16717 }
16718
16719 sendStreamRequest({
16720 stream: 'enqueue',
16721 chunk: chunk,
16722 transfers: transfers
16723 });
16724 },
16725 close: function close() {
16726 if (this.isCancelled) {
16727 return;
16728 }
16729
16730 this.isCancelled = true;
16731 sendStreamRequest({
16732 stream: 'close'
16733 });
16734 delete self.streamSinks[streamId];
16735 },
16736 error: function error(reason) {
16737 if (this.isCancelled) {
16738 return;
16739 }
16740
16741 this.isCancelled = true;
16742 sendStreamRequest({
16743 stream: 'error',
16744 reason: reason
16745 });
16746 },
16747 sinkCapability: capability,
16748 onPull: null,
16749 onCancel: null,
16750 isCancelled: false,
16751 desiredSize: desiredSize,
16752 ready: null
16753 };
16754 streamSink.sinkCapability.resolve();
16755 streamSink.ready = streamSink.sinkCapability.promise;
16756 this.streamSinks[streamId] = streamSink;
16757 resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {
16758 sendStreamRequest({
16759 stream: 'start_complete',
16760 success: true
16761 });
16762 }, function (reason) {
16763 sendStreamRequest({
16764 stream: 'start_complete',
16765 success: false,
16766 reason: reason
16767 });
16768 });
16769 },
16770 _processStreamMessage: function _processStreamMessage(data) {
16771 var _this4 = this;
16772
16773 var sourceName = this.sourceName;
16774 var targetName = data.sourceName;
16775 var streamId = data.streamId;
16776
16777 var sendStreamResponse = function sendStreamResponse(_ref2) {
16778 var stream = _ref2.stream,
16779 success = _ref2.success,
16780 reason = _ref2.reason;
16781
16782 _this4.comObj.postMessage({
16783 sourceName: sourceName,
16784 targetName: targetName,
16785 stream: stream,
16786 success: success,
16787 streamId: streamId,
16788 reason: reason
16789 });
16790 };
16791
16792 var deleteStreamController = function deleteStreamController() {
16793 Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {
16794 return capability && finalize(capability.promise);
16795 })).then(function () {
16796 delete _this4.streamControllers[data.streamId];
16797 });
16798 };
16799
16800 switch (data.stream) {
16801 case 'start_complete':
16802 resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));
16803 break;
16804
16805 case 'pull_complete':
16806 resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));
16807 break;
16808
16809 case 'pull':
16810 if (!this.streamSinks[data.streamId]) {
16811 sendStreamResponse({
16812 stream: 'pull_complete',
16813 success: true
16814 });
16815 break;
16816 }
16817
16818 if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {
16819 this.streamSinks[data.streamId].sinkCapability.resolve();
16820 }
16821
16822 this.streamSinks[data.streamId].desiredSize = data.desiredSize;
16823 resolveCall(this.streamSinks[data.streamId].onPull).then(function () {
16824 sendStreamResponse({
16825 stream: 'pull_complete',
16826 success: true
16827 });
16828 }, function (reason) {
16829 sendStreamResponse({
16830 stream: 'pull_complete',
16831 success: false,
16832 reason: reason
16833 });
16834 });
16835 break;
16836
16837 case 'enqueue':
16838 (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller');
16839
16840 if (!this.streamControllers[data.streamId].isClosed) {
16841 this.streamControllers[data.streamId].controller.enqueue(data.chunk);
16842 }
16843
16844 break;
16845
16846 case 'close':
16847 (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller');
16848
16849 if (this.streamControllers[data.streamId].isClosed) {
16850 break;
16851 }
16852
16853 this.streamControllers[data.streamId].isClosed = true;
16854 this.streamControllers[data.streamId].controller.close();
16855 deleteStreamController();
16856 break;
16857
16858 case 'error':
16859 (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller');
16860 this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));
16861 deleteStreamController();
16862 break;
16863
16864 case 'cancel_complete':
16865 resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));
16866 deleteStreamController();
16867 break;
16868
16869 case 'cancel':
16870 if (!this.streamSinks[data.streamId]) {
16871 break;
16872 }
16873
16874 resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {
16875 sendStreamResponse({
16876 stream: 'cancel_complete',
16877 success: true
16878 });
16879 }, function (reason) {
16880 sendStreamResponse({
16881 stream: 'cancel_complete',
16882 success: false,
16883 reason: reason
16884 });
16885 });
16886 this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));
16887 this.streamSinks[data.streamId].isCancelled = true;
16888 delete this.streamSinks[data.streamId];
16889 break;
16890
16891 default:
16892 throw new Error('Unexpected stream case');
16893 }
16894 },
16895 postMessage: function postMessage(message, transfers) {
16896 if (transfers && this.postMessageTransfers) {
16897 this.comObj.postMessage(message, transfers);
16898 } else {
16899 this.comObj.postMessage(message);
16900 }
16901 },
16902 destroy: function destroy() {
16903 this.comObj.removeEventListener('message', this._onComObjOnMessage);
16904 }
16905};
16906
16907/***/ }),
16908/* 158 */
16909/***/ (function(module, exports, __w_pdfjs_require__) {
16910
16911"use strict";
16912
16913
16914Object.defineProperty(exports, "__esModule", {
16915 value: true
16916});
16917exports.Metadata = void 0;
16918
16919var _util = __w_pdfjs_require__(1);
16920
16921var _xml_parser = __w_pdfjs_require__(159);
16922
16923function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16924
16925function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
16926
16927function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
16928
16929var Metadata =
16930/*#__PURE__*/
16931function () {
16932 function Metadata(data) {
16933 _classCallCheck(this, Metadata);
16934
16935 (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string');
16936 data = this._repair(data);
16937 var parser = new _xml_parser.SimpleXMLParser();
16938 var xmlDocument = parser.parseFromString(data);
16939 this._metadata = Object.create(null);
16940
16941 if (xmlDocument) {
16942 this._parse(xmlDocument);
16943 }
16944 }
16945
16946 _createClass(Metadata, [{
16947 key: "_repair",
16948 value: function _repair(data) {
16949 return data.replace(/^([^<]+)/, '').replace(/>\\376\\377([^<]+)/g, function (all, codes) {
16950 var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {
16951 return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);
16952 }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {
16953 switch (name) {
16954 case 'amp':
16955 return '&';
16956
16957 case 'apos':
16958 return '\'';
16959
16960 case 'gt':
16961 return '>';
16962
16963 case 'lt':
16964 return '<';
16965
16966 case 'quot':
16967 return '\"';
16968 }
16969
16970 throw new Error("_repair: ".concat(name, " isn't defined."));
16971 });
16972 var chars = '';
16973
16974 for (var i = 0, ii = bytes.length; i < ii; i += 2) {
16975 var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);
16976
16977 if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {
16978 chars += String.fromCharCode(code);
16979 } else {
16980 chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';';
16981 }
16982 }
16983
16984 return '>' + chars;
16985 });
16986 }
16987 }, {
16988 key: "_parse",
16989 value: function _parse(xmlDocument) {
16990 var rdf = xmlDocument.documentElement;
16991
16992 if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') {
16993 rdf = rdf.firstChild;
16994
16995 while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {
16996 rdf = rdf.nextSibling;
16997 }
16998 }
16999
17000 var nodeName = rdf ? rdf.nodeName.toLowerCase() : null;
17001
17002 if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) {
17003 return;
17004 }
17005
17006 var children = rdf.childNodes;
17007
17008 for (var i = 0, ii = children.length; i < ii; i++) {
17009 var desc = children[i];
17010
17011 if (desc.nodeName.toLowerCase() !== 'rdf:description') {
17012 continue;
17013 }
17014
17015 for (var j = 0, jj = desc.childNodes.length; j < jj; j++) {
17016 if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') {
17017 var entry = desc.childNodes[j];
17018 var name = entry.nodeName.toLowerCase();
17019 this._metadata[name] = entry.textContent.trim();
17020 }
17021 }
17022 }
17023 }
17024 }, {
17025 key: "get",
17026 value: function get(name) {
17027 var data = this._metadata[name];
17028 return typeof data !== 'undefined' ? data : null;
17029 }
17030 }, {
17031 key: "getAll",
17032 value: function getAll() {
17033 return this._metadata;
17034 }
17035 }, {
17036 key: "has",
17037 value: function has(name) {
17038 return typeof this._metadata[name] !== 'undefined';
17039 }
17040 }]);
17041
17042 return Metadata;
17043}();
17044
17045exports.Metadata = Metadata;
17046
17047/***/ }),
17048/* 159 */
17049/***/ (function(module, exports, __w_pdfjs_require__) {
17050
17051"use strict";
17052
17053
17054Object.defineProperty(exports, "__esModule", {
17055 value: true
17056});
17057exports.SimpleXMLParser = void 0;
17058
17059function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
17060
17061function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
17062
17063function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
17064
17065function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
17066
17067function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17068
17069function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
17070
17071function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
17072
17073function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
17074
17075function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
17076
17077function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
17078
17079function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
17080
17081function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
17082
17083function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17084
17085function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
17086
17087function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17088
17089var XMLParserErrorCode = {
17090 NoError: 0,
17091 EndOfDocument: -1,
17092 UnterminatedCdat: -2,
17093 UnterminatedXmlDeclaration: -3,
17094 UnterminatedDoctypeDeclaration: -4,
17095 UnterminatedComment: -5,
17096 MalformedElement: -6,
17097 OutOfMemory: -7,
17098 UnterminatedAttributeValue: -8,
17099 UnterminatedElement: -9,
17100 ElementNeverBegun: -10
17101};
17102
17103function isWhitespace(s, index) {
17104 var ch = s[index];
17105 return ch === ' ' || ch === '\n' || ch === '\r' || ch === '\t';
17106}
17107
17108function isWhitespaceString(s) {
17109 for (var i = 0, ii = s.length; i < ii; i++) {
17110 if (!isWhitespace(s, i)) {
17111 return false;
17112 }
17113 }
17114
17115 return true;
17116}
17117
17118var XMLParserBase =
17119/*#__PURE__*/
17120function () {
17121 function XMLParserBase() {
17122 _classCallCheck(this, XMLParserBase);
17123 }
17124
17125 _createClass(XMLParserBase, [{
17126 key: "_resolveEntities",
17127 value: function _resolveEntities(s) {
17128 var _this = this;
17129
17130 return s.replace(/&([^;]+);/g, function (all, entity) {
17131 if (entity.substring(0, 2) === '#x') {
17132 return String.fromCharCode(parseInt(entity.substring(2), 16));
17133 } else if (entity.substring(0, 1) === '#') {
17134 return String.fromCharCode(parseInt(entity.substring(1), 10));
17135 }
17136
17137 switch (entity) {
17138 case 'lt':
17139 return '<';
17140
17141 case 'gt':
17142 return '>';
17143
17144 case 'amp':
17145 return '&';
17146
17147 case 'quot':
17148 return '\"';
17149 }
17150
17151 return _this.onResolveEntity(entity);
17152 });
17153 }
17154 }, {
17155 key: "_parseContent",
17156 value: function _parseContent(s, start) {
17157 var pos = start,
17158 name,
17159 attributes = [];
17160
17161 function skipWs() {
17162 while (pos < s.length && isWhitespace(s, pos)) {
17163 ++pos;
17164 }
17165 }
17166
17167 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {
17168 ++pos;
17169 }
17170
17171 name = s.substring(start, pos);
17172 skipWs();
17173
17174 while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') {
17175 skipWs();
17176 var attrName = '',
17177 attrValue = '';
17178
17179 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') {
17180 attrName += s[pos];
17181 ++pos;
17182 }
17183
17184 skipWs();
17185
17186 if (s[pos] !== '=') {
17187 return null;
17188 }
17189
17190 ++pos;
17191 skipWs();
17192 var attrEndChar = s[pos];
17193
17194 if (attrEndChar !== '\"' && attrEndChar !== '\'') {
17195 return null;
17196 }
17197
17198 var attrEndIndex = s.indexOf(attrEndChar, ++pos);
17199
17200 if (attrEndIndex < 0) {
17201 return null;
17202 }
17203
17204 attrValue = s.substring(pos, attrEndIndex);
17205 attributes.push({
17206 name: attrName,
17207 value: this._resolveEntities(attrValue)
17208 });
17209 pos = attrEndIndex + 1;
17210 skipWs();
17211 }
17212
17213 return {
17214 name: name,
17215 attributes: attributes,
17216 parsed: pos - start
17217 };
17218 }
17219 }, {
17220 key: "_parseProcessingInstruction",
17221 value: function _parseProcessingInstruction(s, start) {
17222 var pos = start,
17223 name,
17224 value;
17225
17226 function skipWs() {
17227 while (pos < s.length && isWhitespace(s, pos)) {
17228 ++pos;
17229 }
17230 }
17231
17232 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {
17233 ++pos;
17234 }
17235
17236 name = s.substring(start, pos);
17237 skipWs();
17238 var attrStart = pos;
17239
17240 while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) {
17241 ++pos;
17242 }
17243
17244 value = s.substring(attrStart, pos);
17245 return {
17246 name: name,
17247 value: value,
17248 parsed: pos - start
17249 };
17250 }
17251 }, {
17252 key: "parseXml",
17253 value: function parseXml(s) {
17254 var i = 0;
17255
17256 while (i < s.length) {
17257 var ch = s[i];
17258 var j = i;
17259
17260 if (ch === '<') {
17261 ++j;
17262 var ch2 = s[j];
17263 var q = void 0;
17264
17265 switch (ch2) {
17266 case '/':
17267 ++j;
17268 q = s.indexOf('>', j);
17269
17270 if (q < 0) {
17271 this.onError(XMLParserErrorCode.UnterminatedElement);
17272 return;
17273 }
17274
17275 this.onEndElement(s.substring(j, q));
17276 j = q + 1;
17277 break;
17278
17279 case '?':
17280 ++j;
17281
17282 var pi = this._parseProcessingInstruction(s, j);
17283
17284 if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') {
17285 this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);
17286 return;
17287 }
17288
17289 this.onPi(pi.name, pi.value);
17290 j += pi.parsed + 2;
17291 break;
17292
17293 case '!':
17294 if (s.substring(j + 1, j + 3) === '--') {
17295 q = s.indexOf('-->', j + 3);
17296
17297 if (q < 0) {
17298 this.onError(XMLParserErrorCode.UnterminatedComment);
17299 return;
17300 }
17301
17302 this.onComment(s.substring(j + 3, q));
17303 j = q + 3;
17304 } else if (s.substring(j + 1, j + 8) === '[CDATA[') {
17305 q = s.indexOf(']]>', j + 8);
17306
17307 if (q < 0) {
17308 this.onError(XMLParserErrorCode.UnterminatedCdat);
17309 return;
17310 }
17311
17312 this.onCdata(s.substring(j + 8, q));
17313 j = q + 3;
17314 } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') {
17315 var q2 = s.indexOf('[', j + 8);
17316 var complexDoctype = false;
17317 q = s.indexOf('>', j + 8);
17318
17319 if (q < 0) {
17320 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);
17321 return;
17322 }
17323
17324 if (q2 > 0 && q > q2) {
17325 q = s.indexOf(']>', j + 8);
17326
17327 if (q < 0) {
17328 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);
17329 return;
17330 }
17331
17332 complexDoctype = true;
17333 }
17334
17335 var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));
17336 this.onDoctype(doctypeContent);
17337 j = q + (complexDoctype ? 2 : 1);
17338 } else {
17339 this.onError(XMLParserErrorCode.MalformedElement);
17340 return;
17341 }
17342
17343 break;
17344
17345 default:
17346 var content = this._parseContent(s, j);
17347
17348 if (content === null) {
17349 this.onError(XMLParserErrorCode.MalformedElement);
17350 return;
17351 }
17352
17353 var isClosed = false;
17354
17355 if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') {
17356 isClosed = true;
17357 } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') {
17358 this.onError(XMLParserErrorCode.UnterminatedElement);
17359 return;
17360 }
17361
17362 this.onBeginElement(content.name, content.attributes, isClosed);
17363 j += content.parsed + (isClosed ? 2 : 1);
17364 break;
17365 }
17366 } else {
17367 while (j < s.length && s[j] !== '<') {
17368 j++;
17369 }
17370
17371 var text = s.substring(i, j);
17372 this.onText(this._resolveEntities(text));
17373 }
17374
17375 i = j;
17376 }
17377 }
17378 }, {
17379 key: "onResolveEntity",
17380 value: function onResolveEntity(name) {
17381 return "&".concat(name, ";");
17382 }
17383 }, {
17384 key: "onPi",
17385 value: function onPi(name, value) {}
17386 }, {
17387 key: "onComment",
17388 value: function onComment(text) {}
17389 }, {
17390 key: "onCdata",
17391 value: function onCdata(text) {}
17392 }, {
17393 key: "onDoctype",
17394 value: function onDoctype(doctypeContent) {}
17395 }, {
17396 key: "onText",
17397 value: function onText(text) {}
17398 }, {
17399 key: "onBeginElement",
17400 value: function onBeginElement(name, attributes, isEmpty) {}
17401 }, {
17402 key: "onEndElement",
17403 value: function onEndElement(name) {}
17404 }, {
17405 key: "onError",
17406 value: function onError(code) {}
17407 }]);
17408
17409 return XMLParserBase;
17410}();
17411
17412var SimpleDOMNode =
17413/*#__PURE__*/
17414function () {
17415 function SimpleDOMNode(nodeName, nodeValue) {
17416 _classCallCheck(this, SimpleDOMNode);
17417
17418 this.nodeName = nodeName;
17419 this.nodeValue = nodeValue;
17420 Object.defineProperty(this, 'parentNode', {
17421 value: null,
17422 writable: true
17423 });
17424 }
17425
17426 _createClass(SimpleDOMNode, [{
17427 key: "hasChildNodes",
17428 value: function hasChildNodes() {
17429 return this.childNodes && this.childNodes.length > 0;
17430 }
17431 }, {
17432 key: "firstChild",
17433 get: function get() {
17434 return this.childNodes && this.childNodes[0];
17435 }
17436 }, {
17437 key: "nextSibling",
17438 get: function get() {
17439 var childNodes = this.parentNode.childNodes;
17440
17441 if (!childNodes) {
17442 return undefined;
17443 }
17444
17445 var index = childNodes.indexOf(this);
17446
17447 if (index === -1) {
17448 return undefined;
17449 }
17450
17451 return childNodes[index + 1];
17452 }
17453 }, {
17454 key: "textContent",
17455 get: function get() {
17456 if (!this.childNodes) {
17457 return this.nodeValue || '';
17458 }
17459
17460 return this.childNodes.map(function (child) {
17461 return child.textContent;
17462 }).join('');
17463 }
17464 }]);
17465
17466 return SimpleDOMNode;
17467}();
17468
17469var SimpleXMLParser =
17470/*#__PURE__*/
17471function (_XMLParserBase) {
17472 _inherits(SimpleXMLParser, _XMLParserBase);
17473
17474 function SimpleXMLParser() {
17475 var _this2;
17476
17477 _classCallCheck(this, SimpleXMLParser);
17478
17479 _this2 = _possibleConstructorReturn(this, _getPrototypeOf(SimpleXMLParser).call(this));
17480 _this2._currentFragment = null;
17481 _this2._stack = null;
17482 _this2._errorCode = XMLParserErrorCode.NoError;
17483 return _this2;
17484 }
17485
17486 _createClass(SimpleXMLParser, [{
17487 key: "parseFromString",
17488 value: function parseFromString(data) {
17489 this._currentFragment = [];
17490 this._stack = [];
17491 this._errorCode = XMLParserErrorCode.NoError;
17492 this.parseXml(data);
17493
17494 if (this._errorCode !== XMLParserErrorCode.NoError) {
17495 return undefined;
17496 }
17497
17498 var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1),
17499 documentElement = _this$_currentFragmen[0];
17500
17501 if (!documentElement) {
17502 return undefined;
17503 }
17504
17505 return {
17506 documentElement: documentElement
17507 };
17508 }
17509 }, {
17510 key: "onResolveEntity",
17511 value: function onResolveEntity(name) {
17512 switch (name) {
17513 case 'apos':
17514 return '\'';
17515 }
17516
17517 return _get(_getPrototypeOf(SimpleXMLParser.prototype), "onResolveEntity", this).call(this, name);
17518 }
17519 }, {
17520 key: "onText",
17521 value: function onText(text) {
17522 if (isWhitespaceString(text)) {
17523 return;
17524 }
17525
17526 var node = new SimpleDOMNode('#text', text);
17527
17528 this._currentFragment.push(node);
17529 }
17530 }, {
17531 key: "onCdata",
17532 value: function onCdata(text) {
17533 var node = new SimpleDOMNode('#text', text);
17534
17535 this._currentFragment.push(node);
17536 }
17537 }, {
17538 key: "onBeginElement",
17539 value: function onBeginElement(name, attributes, isEmpty) {
17540 var node = new SimpleDOMNode(name);
17541 node.childNodes = [];
17542
17543 this._currentFragment.push(node);
17544
17545 if (isEmpty) {
17546 return;
17547 }
17548
17549 this._stack.push(this._currentFragment);
17550
17551 this._currentFragment = node.childNodes;
17552 }
17553 }, {
17554 key: "onEndElement",
17555 value: function onEndElement(name) {
17556 this._currentFragment = this._stack.pop() || [];
17557 var lastElement = this._currentFragment[this._currentFragment.length - 1];
17558
17559 if (!lastElement) {
17560 return;
17561 }
17562
17563 for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) {
17564 lastElement.childNodes[i].parentNode = lastElement;
17565 }
17566 }
17567 }, {
17568 key: "onError",
17569 value: function onError(code) {
17570 this._errorCode = code;
17571 }
17572 }]);
17573
17574 return SimpleXMLParser;
17575}(XMLParserBase);
17576
17577exports.SimpleXMLParser = SimpleXMLParser;
17578
17579/***/ }),
17580/* 160 */
17581/***/ (function(module, exports, __w_pdfjs_require__) {
17582
17583"use strict";
17584
17585
17586Object.defineProperty(exports, "__esModule", {
17587 value: true
17588});
17589exports.PDFDataTransportStream = void 0;
17590
17591var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
17592
17593var _util = __w_pdfjs_require__(1);
17594
17595function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17596
17597function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
17598
17599function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
17600
17601var PDFDataTransportStream = function PDFDataTransportStreamClosure() {
17602 function PDFDataTransportStream(params, pdfDataRangeTransport) {
17603 var _this = this;
17604
17605 (0, _util.assert)(pdfDataRangeTransport);
17606 this._queuedChunks = [];
17607 var initialData = params.initialData;
17608
17609 if (initialData && initialData.length > 0) {
17610 var buffer = new Uint8Array(initialData).buffer;
17611
17612 this._queuedChunks.push(buffer);
17613 }
17614
17615 this._pdfDataRangeTransport = pdfDataRangeTransport;
17616 this._isStreamingSupported = !params.disableStream;
17617 this._isRangeSupported = !params.disableRange;
17618 this._contentLength = params.length;
17619 this._fullRequestReader = null;
17620 this._rangeReaders = [];
17621
17622 this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {
17623 _this._onReceiveData({
17624 begin: begin,
17625 chunk: chunk
17626 });
17627 });
17628
17629 this._pdfDataRangeTransport.addProgressListener(function (loaded) {
17630 _this._onProgress({
17631 loaded: loaded
17632 });
17633 });
17634
17635 this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {
17636 _this._onReceiveData({
17637 chunk: chunk
17638 });
17639 });
17640
17641 this._pdfDataRangeTransport.transportReady();
17642 }
17643
17644 PDFDataTransportStream.prototype = {
17645 _onReceiveData: function PDFDataTransportStream_onReceiveData(args) {
17646 var buffer = new Uint8Array(args.chunk).buffer;
17647
17648 if (args.begin === undefined) {
17649 if (this._fullRequestReader) {
17650 this._fullRequestReader._enqueue(buffer);
17651 } else {
17652 this._queuedChunks.push(buffer);
17653 }
17654 } else {
17655 var found = this._rangeReaders.some(function (rangeReader) {
17656 if (rangeReader._begin !== args.begin) {
17657 return false;
17658 }
17659
17660 rangeReader._enqueue(buffer);
17661
17662 return true;
17663 });
17664
17665 (0, _util.assert)(found);
17666 }
17667 },
17668 _onProgress: function PDFDataTransportStream_onDataProgress(evt) {
17669 if (this._rangeReaders.length > 0) {
17670 var firstReader = this._rangeReaders[0];
17671
17672 if (firstReader.onProgress) {
17673 firstReader.onProgress({
17674 loaded: evt.loaded
17675 });
17676 }
17677 }
17678 },
17679 _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) {
17680 var i = this._rangeReaders.indexOf(reader);
17681
17682 if (i >= 0) {
17683 this._rangeReaders.splice(i, 1);
17684 }
17685 },
17686 getFullReader: function PDFDataTransportStream_getFullReader() {
17687 (0, _util.assert)(!this._fullRequestReader);
17688 var queuedChunks = this._queuedChunks;
17689 this._queuedChunks = null;
17690 return new PDFDataTransportStreamReader(this, queuedChunks);
17691 },
17692 getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) {
17693 var reader = new PDFDataTransportStreamRangeReader(this, begin, end);
17694
17695 this._pdfDataRangeTransport.requestDataRange(begin, end);
17696
17697 this._rangeReaders.push(reader);
17698
17699 return reader;
17700 },
17701 cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) {
17702 if (this._fullRequestReader) {
17703 this._fullRequestReader.cancel(reason);
17704 }
17705
17706 var readers = this._rangeReaders.slice(0);
17707
17708 readers.forEach(function (rangeReader) {
17709 rangeReader.cancel(reason);
17710 });
17711
17712 this._pdfDataRangeTransport.abort();
17713 }
17714 };
17715
17716 function PDFDataTransportStreamReader(stream, queuedChunks) {
17717 this._stream = stream;
17718 this._done = false;
17719 this._filename = null;
17720 this._queuedChunks = queuedChunks || [];
17721 this._requests = [];
17722 this._headersReady = Promise.resolve();
17723 stream._fullRequestReader = this;
17724 this.onProgress = null;
17725 }
17726
17727 PDFDataTransportStreamReader.prototype = {
17728 _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) {
17729 if (this._done) {
17730 return;
17731 }
17732
17733 if (this._requests.length > 0) {
17734 var requestCapability = this._requests.shift();
17735
17736 requestCapability.resolve({
17737 value: chunk,
17738 done: false
17739 });
17740 return;
17741 }
17742
17743 this._queuedChunks.push(chunk);
17744 },
17745
17746 get headersReady() {
17747 return this._headersReady;
17748 },
17749
17750 get filename() {
17751 return this._filename;
17752 },
17753
17754 get isRangeSupported() {
17755 return this._stream._isRangeSupported;
17756 },
17757
17758 get isStreamingSupported() {
17759 return this._stream._isStreamingSupported;
17760 },
17761
17762 get contentLength() {
17763 return this._stream._contentLength;
17764 },
17765
17766 read: function () {
17767 var _read = _asyncToGenerator(
17768 /*#__PURE__*/
17769 _regenerator.default.mark(function _callee() {
17770 var chunk, requestCapability;
17771 return _regenerator.default.wrap(function _callee$(_context) {
17772 while (1) {
17773 switch (_context.prev = _context.next) {
17774 case 0:
17775 if (!(this._queuedChunks.length > 0)) {
17776 _context.next = 3;
17777 break;
17778 }
17779
17780 chunk = this._queuedChunks.shift();
17781 return _context.abrupt("return", {
17782 value: chunk,
17783 done: false
17784 });
17785
17786 case 3:
17787 if (!this._done) {
17788 _context.next = 5;
17789 break;
17790 }
17791
17792 return _context.abrupt("return", {
17793 value: undefined,
17794 done: true
17795 });
17796
17797 case 5:
17798 requestCapability = (0, _util.createPromiseCapability)();
17799
17800 this._requests.push(requestCapability);
17801
17802 return _context.abrupt("return", requestCapability.promise);
17803
17804 case 8:
17805 case "end":
17806 return _context.stop();
17807 }
17808 }
17809 }, _callee, this);
17810 }));
17811
17812 function read() {
17813 return _read.apply(this, arguments);
17814 }
17815
17816 return read;
17817 }(),
17818 cancel: function PDFDataTransportStreamReader_cancel(reason) {
17819 this._done = true;
17820
17821 this._requests.forEach(function (requestCapability) {
17822 requestCapability.resolve({
17823 value: undefined,
17824 done: true
17825 });
17826 });
17827
17828 this._requests = [];
17829 }
17830 };
17831
17832 function PDFDataTransportStreamRangeReader(stream, begin, end) {
17833 this._stream = stream;
17834 this._begin = begin;
17835 this._end = end;
17836 this._queuedChunk = null;
17837 this._requests = [];
17838 this._done = false;
17839 this.onProgress = null;
17840 }
17841
17842 PDFDataTransportStreamRangeReader.prototype = {
17843 _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) {
17844 if (this._done) {
17845 return;
17846 }
17847
17848 if (this._requests.length === 0) {
17849 this._queuedChunk = chunk;
17850 } else {
17851 var requestsCapability = this._requests.shift();
17852
17853 requestsCapability.resolve({
17854 value: chunk,
17855 done: false
17856 });
17857
17858 this._requests.forEach(function (requestCapability) {
17859 requestCapability.resolve({
17860 value: undefined,
17861 done: true
17862 });
17863 });
17864
17865 this._requests = [];
17866 }
17867
17868 this._done = true;
17869
17870 this._stream._removeRangeReader(this);
17871 },
17872
17873 get isStreamingSupported() {
17874 return false;
17875 },
17876
17877 read: function () {
17878 var _read2 = _asyncToGenerator(
17879 /*#__PURE__*/
17880 _regenerator.default.mark(function _callee2() {
17881 var chunk, requestCapability;
17882 return _regenerator.default.wrap(function _callee2$(_context2) {
17883 while (1) {
17884 switch (_context2.prev = _context2.next) {
17885 case 0:
17886 if (!this._queuedChunk) {
17887 _context2.next = 4;
17888 break;
17889 }
17890
17891 chunk = this._queuedChunk;
17892 this._queuedChunk = null;
17893 return _context2.abrupt("return", {
17894 value: chunk,
17895 done: false
17896 });
17897
17898 case 4:
17899 if (!this._done) {
17900 _context2.next = 6;
17901 break;
17902 }
17903
17904 return _context2.abrupt("return", {
17905 value: undefined,
17906 done: true
17907 });
17908
17909 case 6:
17910 requestCapability = (0, _util.createPromiseCapability)();
17911
17912 this._requests.push(requestCapability);
17913
17914 return _context2.abrupt("return", requestCapability.promise);
17915
17916 case 9:
17917 case "end":
17918 return _context2.stop();
17919 }
17920 }
17921 }, _callee2, this);
17922 }));
17923
17924 function read() {
17925 return _read2.apply(this, arguments);
17926 }
17927
17928 return read;
17929 }(),
17930 cancel: function PDFDataTransportStreamRangeReader_cancel(reason) {
17931 this._done = true;
17932
17933 this._requests.forEach(function (requestCapability) {
17934 requestCapability.resolve({
17935 value: undefined,
17936 done: true
17937 });
17938 });
17939
17940 this._requests = [];
17941
17942 this._stream._removeRangeReader(this);
17943 }
17944 };
17945 return PDFDataTransportStream;
17946}();
17947
17948exports.PDFDataTransportStream = PDFDataTransportStream;
17949
17950/***/ }),
17951/* 161 */
17952/***/ (function(module, exports, __w_pdfjs_require__) {
17953
17954"use strict";
17955
17956
17957Object.defineProperty(exports, "__esModule", {
17958 value: true
17959});
17960exports.WebGLContext = void 0;
17961
17962var _util = __w_pdfjs_require__(1);
17963
17964function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17965
17966function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
17967
17968function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17969
17970var WebGLContext =
17971/*#__PURE__*/
17972function () {
17973 function WebGLContext(_ref) {
17974 var _ref$enable = _ref.enable,
17975 enable = _ref$enable === void 0 ? false : _ref$enable;
17976
17977 _classCallCheck(this, WebGLContext);
17978
17979 this._enabled = enable === true;
17980 }
17981
17982 _createClass(WebGLContext, [{
17983 key: "composeSMask",
17984 value: function composeSMask(_ref2) {
17985 var layer = _ref2.layer,
17986 mask = _ref2.mask,
17987 properties = _ref2.properties;
17988 return WebGLUtils.composeSMask(layer, mask, properties);
17989 }
17990 }, {
17991 key: "drawFigures",
17992 value: function drawFigures(_ref3) {
17993 var width = _ref3.width,
17994 height = _ref3.height,
17995 backgroundColor = _ref3.backgroundColor,
17996 figures = _ref3.figures,
17997 context = _ref3.context;
17998 return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);
17999 }
18000 }, {
18001 key: "clear",
18002 value: function clear() {
18003 WebGLUtils.cleanup();
18004 }
18005 }, {
18006 key: "isEnabled",
18007 get: function get() {
18008 var enabled = this._enabled;
18009
18010 if (enabled) {
18011 enabled = WebGLUtils.tryInitGL();
18012 }
18013
18014 return (0, _util.shadow)(this, 'isEnabled', enabled);
18015 }
18016 }]);
18017
18018 return WebGLContext;
18019}();
18020
18021exports.WebGLContext = WebGLContext;
18022
18023var WebGLUtils = function WebGLUtilsClosure() {
18024 function loadShader(gl, code, shaderType) {
18025 var shader = gl.createShader(shaderType);
18026 gl.shaderSource(shader, code);
18027 gl.compileShader(shader);
18028 var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
18029
18030 if (!compiled) {
18031 var errorMsg = gl.getShaderInfoLog(shader);
18032 throw new Error('Error during shader compilation: ' + errorMsg);
18033 }
18034
18035 return shader;
18036 }
18037
18038 function createVertexShader(gl, code) {
18039 return loadShader(gl, code, gl.VERTEX_SHADER);
18040 }
18041
18042 function createFragmentShader(gl, code) {
18043 return loadShader(gl, code, gl.FRAGMENT_SHADER);
18044 }
18045
18046 function createProgram(gl, shaders) {
18047 var program = gl.createProgram();
18048
18049 for (var i = 0, ii = shaders.length; i < ii; ++i) {
18050 gl.attachShader(program, shaders[i]);
18051 }
18052
18053 gl.linkProgram(program);
18054 var linked = gl.getProgramParameter(program, gl.LINK_STATUS);
18055
18056 if (!linked) {
18057 var errorMsg = gl.getProgramInfoLog(program);
18058 throw new Error('Error during program linking: ' + errorMsg);
18059 }
18060
18061 return program;
18062 }
18063
18064 function createTexture(gl, image, textureId) {
18065 gl.activeTexture(textureId);
18066 var texture = gl.createTexture();
18067 gl.bindTexture(gl.TEXTURE_2D, texture);
18068 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
18069 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
18070 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
18071 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
18072 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
18073 return texture;
18074 }
18075
18076 var currentGL, currentCanvas;
18077
18078 function generateGL() {
18079 if (currentGL) {
18080 return;
18081 }
18082
18083 currentCanvas = document.createElement('canvas');
18084 currentGL = currentCanvas.getContext('webgl', {
18085 premultipliedalpha: false
18086 });
18087 }
18088
18089 var smaskVertexShaderCode = '\
18090 attribute vec2 a_position; \
18091 attribute vec2 a_texCoord; \
18092 \
18093 uniform vec2 u_resolution; \
18094 \
18095 varying vec2 v_texCoord; \
18096 \
18097 void main() { \
18098 vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \
18099 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \
18100 \
18101 v_texCoord = a_texCoord; \
18102 } ';
18103 var smaskFragmentShaderCode = '\
18104 precision mediump float; \
18105 \
18106 uniform vec4 u_backdrop; \
18107 uniform int u_subtype; \
18108 uniform sampler2D u_image; \
18109 uniform sampler2D u_mask; \
18110 \
18111 varying vec2 v_texCoord; \
18112 \
18113 void main() { \
18114 vec4 imageColor = texture2D(u_image, v_texCoord); \
18115 vec4 maskColor = texture2D(u_mask, v_texCoord); \
18116 if (u_backdrop.a > 0.0) { \
18117 maskColor.rgb = maskColor.rgb * maskColor.a + \
18118 u_backdrop.rgb * (1.0 - maskColor.a); \
18119 } \
18120 float lum; \
18121 if (u_subtype == 0) { \
18122 lum = maskColor.a; \
18123 } else { \
18124 lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \
18125 maskColor.b * 0.11; \
18126 } \
18127 imageColor.a *= lum; \
18128 imageColor.rgb *= imageColor.a; \
18129 gl_FragColor = imageColor; \
18130 } ';
18131 var smaskCache = null;
18132
18133 function initSmaskGL() {
18134 var canvas, gl;
18135 generateGL();
18136 canvas = currentCanvas;
18137 currentCanvas = null;
18138 gl = currentGL;
18139 currentGL = null;
18140 var vertexShader = createVertexShader(gl, smaskVertexShaderCode);
18141 var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);
18142 var program = createProgram(gl, [vertexShader, fragmentShader]);
18143 gl.useProgram(program);
18144 var cache = {};
18145 cache.gl = gl;
18146 cache.canvas = canvas;
18147 cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
18148 cache.positionLocation = gl.getAttribLocation(program, 'a_position');
18149 cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop');
18150 cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype');
18151 var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');
18152 var texLayerLocation = gl.getUniformLocation(program, 'u_image');
18153 var texMaskLocation = gl.getUniformLocation(program, 'u_mask');
18154 var texCoordBuffer = gl.createBuffer();
18155 gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
18156 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);
18157 gl.enableVertexAttribArray(texCoordLocation);
18158 gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
18159 gl.uniform1i(texLayerLocation, 0);
18160 gl.uniform1i(texMaskLocation, 1);
18161 smaskCache = cache;
18162 }
18163
18164 function composeSMask(layer, mask, properties) {
18165 var width = layer.width,
18166 height = layer.height;
18167
18168 if (!smaskCache) {
18169 initSmaskGL();
18170 }
18171
18172 var cache = smaskCache,
18173 canvas = cache.canvas,
18174 gl = cache.gl;
18175 canvas.width = width;
18176 canvas.height = height;
18177 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
18178 gl.uniform2f(cache.resolutionLocation, width, height);
18179
18180 if (properties.backdrop) {
18181 gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);
18182 } else {
18183 gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);
18184 }
18185
18186 gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0);
18187 var texture = createTexture(gl, layer, gl.TEXTURE0);
18188 var maskTexture = createTexture(gl, mask, gl.TEXTURE1);
18189 var buffer = gl.createBuffer();
18190 gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
18191 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);
18192 gl.enableVertexAttribArray(cache.positionLocation);
18193 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
18194 gl.clearColor(0, 0, 0, 0);
18195 gl.enable(gl.BLEND);
18196 gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
18197 gl.clear(gl.COLOR_BUFFER_BIT);
18198 gl.drawArrays(gl.TRIANGLES, 0, 6);
18199 gl.flush();
18200 gl.deleteTexture(texture);
18201 gl.deleteTexture(maskTexture);
18202 gl.deleteBuffer(buffer);
18203 return canvas;
18204 }
18205
18206 var figuresVertexShaderCode = '\
18207 attribute vec2 a_position; \
18208 attribute vec3 a_color; \
18209 \
18210 uniform vec2 u_resolution; \
18211 uniform vec2 u_scale; \
18212 uniform vec2 u_offset; \
18213 \
18214 varying vec4 v_color; \
18215 \
18216 void main() { \
18217 vec2 position = (a_position + u_offset) * u_scale; \
18218 vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \
18219 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \
18220 \
18221 v_color = vec4(a_color / 255.0, 1.0); \
18222 } ';
18223 var figuresFragmentShaderCode = '\
18224 precision mediump float; \
18225 \
18226 varying vec4 v_color; \
18227 \
18228 void main() { \
18229 gl_FragColor = v_color; \
18230 } ';
18231 var figuresCache = null;
18232
18233 function initFiguresGL() {
18234 var canvas, gl;
18235 generateGL();
18236 canvas = currentCanvas;
18237 currentCanvas = null;
18238 gl = currentGL;
18239 currentGL = null;
18240 var vertexShader = createVertexShader(gl, figuresVertexShaderCode);
18241 var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);
18242 var program = createProgram(gl, [vertexShader, fragmentShader]);
18243 gl.useProgram(program);
18244 var cache = {};
18245 cache.gl = gl;
18246 cache.canvas = canvas;
18247 cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
18248 cache.scaleLocation = gl.getUniformLocation(program, 'u_scale');
18249 cache.offsetLocation = gl.getUniformLocation(program, 'u_offset');
18250 cache.positionLocation = gl.getAttribLocation(program, 'a_position');
18251 cache.colorLocation = gl.getAttribLocation(program, 'a_color');
18252 figuresCache = cache;
18253 }
18254
18255 function drawFigures(width, height, backgroundColor, figures, context) {
18256 if (!figuresCache) {
18257 initFiguresGL();
18258 }
18259
18260 var cache = figuresCache,
18261 canvas = cache.canvas,
18262 gl = cache.gl;
18263 canvas.width = width;
18264 canvas.height = height;
18265 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
18266 gl.uniform2f(cache.resolutionLocation, width, height);
18267 var count = 0;
18268 var i, ii, rows;
18269
18270 for (i = 0, ii = figures.length; i < ii; i++) {
18271 switch (figures[i].type) {
18272 case 'lattice':
18273 rows = figures[i].coords.length / figures[i].verticesPerRow | 0;
18274 count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;
18275 break;
18276
18277 case 'triangles':
18278 count += figures[i].coords.length;
18279 break;
18280 }
18281 }
18282
18283 var coords = new Float32Array(count * 2);
18284 var colors = new Uint8Array(count * 3);
18285 var coordsMap = context.coords,
18286 colorsMap = context.colors;
18287 var pIndex = 0,
18288 cIndex = 0;
18289
18290 for (i = 0, ii = figures.length; i < ii; i++) {
18291 var figure = figures[i],
18292 ps = figure.coords,
18293 cs = figure.colors;
18294
18295 switch (figure.type) {
18296 case 'lattice':
18297 var cols = figure.verticesPerRow;
18298 rows = ps.length / cols | 0;
18299
18300 for (var row = 1; row < rows; row++) {
18301 var offset = row * cols + 1;
18302
18303 for (var col = 1; col < cols; col++, offset++) {
18304 coords[pIndex] = coordsMap[ps[offset - cols - 1]];
18305 coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];
18306 coords[pIndex + 2] = coordsMap[ps[offset - cols]];
18307 coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];
18308 coords[pIndex + 4] = coordsMap[ps[offset - 1]];
18309 coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];
18310 colors[cIndex] = colorsMap[cs[offset - cols - 1]];
18311 colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];
18312 colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];
18313 colors[cIndex + 3] = colorsMap[cs[offset - cols]];
18314 colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];
18315 colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];
18316 colors[cIndex + 6] = colorsMap[cs[offset - 1]];
18317 colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];
18318 colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];
18319 coords[pIndex + 6] = coords[pIndex + 2];
18320 coords[pIndex + 7] = coords[pIndex + 3];
18321 coords[pIndex + 8] = coords[pIndex + 4];
18322 coords[pIndex + 9] = coords[pIndex + 5];
18323 coords[pIndex + 10] = coordsMap[ps[offset]];
18324 coords[pIndex + 11] = coordsMap[ps[offset] + 1];
18325 colors[cIndex + 9] = colors[cIndex + 3];
18326 colors[cIndex + 10] = colors[cIndex + 4];
18327 colors[cIndex + 11] = colors[cIndex + 5];
18328 colors[cIndex + 12] = colors[cIndex + 6];
18329 colors[cIndex + 13] = colors[cIndex + 7];
18330 colors[cIndex + 14] = colors[cIndex + 8];
18331 colors[cIndex + 15] = colorsMap[cs[offset]];
18332 colors[cIndex + 16] = colorsMap[cs[offset] + 1];
18333 colors[cIndex + 17] = colorsMap[cs[offset] + 2];
18334 pIndex += 12;
18335 cIndex += 18;
18336 }
18337 }
18338
18339 break;
18340
18341 case 'triangles':
18342 for (var j = 0, jj = ps.length; j < jj; j++) {
18343 coords[pIndex] = coordsMap[ps[j]];
18344 coords[pIndex + 1] = coordsMap[ps[j] + 1];
18345 colors[cIndex] = colorsMap[cs[j]];
18346 colors[cIndex + 1] = colorsMap[cs[j] + 1];
18347 colors[cIndex + 2] = colorsMap[cs[j] + 2];
18348 pIndex += 2;
18349 cIndex += 3;
18350 }
18351
18352 break;
18353 }
18354 }
18355
18356 if (backgroundColor) {
18357 gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);
18358 } else {
18359 gl.clearColor(0, 0, 0, 0);
18360 }
18361
18362 gl.clear(gl.COLOR_BUFFER_BIT);
18363 var coordsBuffer = gl.createBuffer();
18364 gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);
18365 gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);
18366 gl.enableVertexAttribArray(cache.positionLocation);
18367 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
18368 var colorsBuffer = gl.createBuffer();
18369 gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);
18370 gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
18371 gl.enableVertexAttribArray(cache.colorLocation);
18372 gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);
18373 gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);
18374 gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);
18375 gl.drawArrays(gl.TRIANGLES, 0, count);
18376 gl.flush();
18377 gl.deleteBuffer(coordsBuffer);
18378 gl.deleteBuffer(colorsBuffer);
18379 return canvas;
18380 }
18381
18382 return {
18383 tryInitGL: function tryInitGL() {
18384 try {
18385 generateGL();
18386 return !!currentGL;
18387 } catch (ex) {}
18388
18389 return false;
18390 },
18391 composeSMask: composeSMask,
18392 drawFigures: drawFigures,
18393 cleanup: function cleanup() {
18394 if (smaskCache && smaskCache.canvas) {
18395 smaskCache.canvas.width = 0;
18396 smaskCache.canvas.height = 0;
18397 }
18398
18399 if (figuresCache && figuresCache.canvas) {
18400 figuresCache.canvas.width = 0;
18401 figuresCache.canvas.height = 0;
18402 }
18403
18404 smaskCache = null;
18405 figuresCache = null;
18406 }
18407 };
18408}();
18409
18410/***/ }),
18411/* 162 */
18412/***/ (function(module, exports, __w_pdfjs_require__) {
18413
18414"use strict";
18415
18416
18417Object.defineProperty(exports, "__esModule", {
18418 value: true
18419});
18420exports.renderTextLayer = void 0;
18421
18422var _util = __w_pdfjs_require__(1);
18423
18424var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));
18425
18426function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18427
18428var renderTextLayer = function renderTextLayerClosure() {
18429 var MAX_TEXT_DIVS_TO_RENDER = 100000;
18430 var NonWhitespaceRegexp = /\S/;
18431
18432 function isAllWhitespace(str) {
18433 return !NonWhitespaceRegexp.test(str);
18434 }
18435
18436 var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';'];
18437
18438 function appendText(task, geom, styles) {
18439 var textDiv = document.createElement('span');
18440 var textDivProperties = {
18441 style: null,
18442 angle: 0,
18443 canvasWidth: 0,
18444 isWhitespace: false,
18445 originalTransform: null,
18446 paddingBottom: 0,
18447 paddingLeft: 0,
18448 paddingRight: 0,
18449 paddingTop: 0,
18450 scale: 1
18451 };
18452
18453 task._textDivs.push(textDiv);
18454
18455 if (isAllWhitespace(geom.str)) {
18456 textDivProperties.isWhitespace = true;
18457
18458 task._textDivProperties.set(textDiv, textDivProperties);
18459
18460 return;
18461 }
18462
18463 var tx = _util.Util.transform(task._viewport.transform, geom.transform);
18464
18465 var angle = Math.atan2(tx[1], tx[0]);
18466 var style = styles[geom.fontName];
18467
18468 if (style.vertical) {
18469 angle += Math.PI / 2;
18470 }
18471
18472 var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);
18473 var fontAscent = fontHeight;
18474
18475 if (style.ascent) {
18476 fontAscent = style.ascent * fontAscent;
18477 } else if (style.descent) {
18478 fontAscent = (1 + style.descent) * fontAscent;
18479 }
18480
18481 var left;
18482 var top;
18483
18484 if (angle === 0) {
18485 left = tx[4];
18486 top = tx[5] - fontAscent;
18487 } else {
18488 left = tx[4] + fontAscent * Math.sin(angle);
18489 top = tx[5] - fontAscent * Math.cos(angle);
18490 }
18491
18492 styleBuf[1] = left;
18493 styleBuf[3] = top;
18494 styleBuf[5] = fontHeight;
18495 styleBuf[7] = style.fontFamily;
18496 textDivProperties.style = styleBuf.join('');
18497 textDiv.setAttribute('style', textDivProperties.style);
18498 textDiv.textContent = geom.str;
18499
18500 if (task._fontInspectorEnabled) {
18501 textDiv.dataset.fontName = geom.fontName;
18502 }
18503
18504 if (angle !== 0) {
18505 textDivProperties.angle = angle * (180 / Math.PI);
18506 }
18507
18508 if (geom.str.length > 1) {
18509 if (style.vertical) {
18510 textDivProperties.canvasWidth = geom.height * task._viewport.scale;
18511 } else {
18512 textDivProperties.canvasWidth = geom.width * task._viewport.scale;
18513 }
18514 }
18515
18516 task._textDivProperties.set(textDiv, textDivProperties);
18517
18518 if (task._textContentStream) {
18519 task._layoutText(textDiv);
18520 }
18521
18522 if (task._enhanceTextSelection) {
18523 var angleCos = 1,
18524 angleSin = 0;
18525
18526 if (angle !== 0) {
18527 angleCos = Math.cos(angle);
18528 angleSin = Math.sin(angle);
18529 }
18530
18531 var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;
18532 var divHeight = fontHeight;
18533 var m, b;
18534
18535 if (angle !== 0) {
18536 m = [angleCos, angleSin, -angleSin, angleCos, left, top];
18537 b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);
18538 } else {
18539 b = [left, top, left + divWidth, top + divHeight];
18540 }
18541
18542 task._bounds.push({
18543 left: b[0],
18544 top: b[1],
18545 right: b[2],
18546 bottom: b[3],
18547 div: textDiv,
18548 size: [divWidth, divHeight],
18549 m: m
18550 });
18551 }
18552 }
18553
18554 function render(task) {
18555 if (task._canceled) {
18556 return;
18557 }
18558
18559 var textDivs = task._textDivs;
18560 var capability = task._capability;
18561 var textDivsLength = textDivs.length;
18562
18563 if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {
18564 task._renderingDone = true;
18565 capability.resolve();
18566 return;
18567 }
18568
18569 if (!task._textContentStream) {
18570 for (var i = 0; i < textDivsLength; i++) {
18571 task._layoutText(textDivs[i]);
18572 }
18573 }
18574
18575 task._renderingDone = true;
18576 capability.resolve();
18577 }
18578
18579 function expand(task) {
18580 var bounds = task._bounds;
18581 var viewport = task._viewport;
18582 var expanded = expandBounds(viewport.width, viewport.height, bounds);
18583
18584 for (var i = 0; i < expanded.length; i++) {
18585 var div = bounds[i].div;
18586
18587 var divProperties = task._textDivProperties.get(div);
18588
18589 if (divProperties.angle === 0) {
18590 divProperties.paddingLeft = bounds[i].left - expanded[i].left;
18591 divProperties.paddingTop = bounds[i].top - expanded[i].top;
18592 divProperties.paddingRight = expanded[i].right - bounds[i].right;
18593 divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;
18594
18595 task._textDivProperties.set(div, divProperties);
18596
18597 continue;
18598 }
18599
18600 var e = expanded[i],
18601 b = bounds[i];
18602 var m = b.m,
18603 c = m[0],
18604 s = m[1];
18605 var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];
18606 var ts = new Float64Array(64);
18607 points.forEach(function (p, i) {
18608 var t = _util.Util.applyTransform(p, m);
18609
18610 ts[i + 0] = c && (e.left - t[0]) / c;
18611 ts[i + 4] = s && (e.top - t[1]) / s;
18612 ts[i + 8] = c && (e.right - t[0]) / c;
18613 ts[i + 12] = s && (e.bottom - t[1]) / s;
18614 ts[i + 16] = s && (e.left - t[0]) / -s;
18615 ts[i + 20] = c && (e.top - t[1]) / c;
18616 ts[i + 24] = s && (e.right - t[0]) / -s;
18617 ts[i + 28] = c && (e.bottom - t[1]) / c;
18618 ts[i + 32] = c && (e.left - t[0]) / -c;
18619 ts[i + 36] = s && (e.top - t[1]) / -s;
18620 ts[i + 40] = c && (e.right - t[0]) / -c;
18621 ts[i + 44] = s && (e.bottom - t[1]) / -s;
18622 ts[i + 48] = s && (e.left - t[0]) / s;
18623 ts[i + 52] = c && (e.top - t[1]) / -c;
18624 ts[i + 56] = s && (e.right - t[0]) / s;
18625 ts[i + 60] = c && (e.bottom - t[1]) / -c;
18626 });
18627
18628 var findPositiveMin = function findPositiveMin(ts, offset, count) {
18629 var result = 0;
18630
18631 for (var i = 0; i < count; i++) {
18632 var t = ts[offset++];
18633
18634 if (t > 0) {
18635 result = result ? Math.min(t, result) : t;
18636 }
18637 }
18638
18639 return result;
18640 };
18641
18642 var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));
18643 divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;
18644 divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;
18645 divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;
18646 divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;
18647
18648 task._textDivProperties.set(div, divProperties);
18649 }
18650 }
18651
18652 function expandBounds(width, height, boxes) {
18653 var bounds = boxes.map(function (box, i) {
18654 return {
18655 x1: box.left,
18656 y1: box.top,
18657 x2: box.right,
18658 y2: box.bottom,
18659 index: i,
18660 x1New: undefined,
18661 x2New: undefined
18662 };
18663 });
18664 expandBoundsLTR(width, bounds);
18665 var expanded = new Array(boxes.length);
18666 bounds.forEach(function (b) {
18667 var i = b.index;
18668 expanded[i] = {
18669 left: b.x1New,
18670 top: 0,
18671 right: b.x2New,
18672 bottom: 0
18673 };
18674 });
18675 boxes.map(function (box, i) {
18676 var e = expanded[i],
18677 b = bounds[i];
18678 b.x1 = box.top;
18679 b.y1 = width - e.right;
18680 b.x2 = box.bottom;
18681 b.y2 = width - e.left;
18682 b.index = i;
18683 b.x1New = undefined;
18684 b.x2New = undefined;
18685 });
18686 expandBoundsLTR(height, bounds);
18687 bounds.forEach(function (b) {
18688 var i = b.index;
18689 expanded[i].top = b.x1New;
18690 expanded[i].bottom = b.x2New;
18691 });
18692 return expanded;
18693 }
18694
18695 function expandBoundsLTR(width, bounds) {
18696 bounds.sort(function (a, b) {
18697 return a.x1 - b.x1 || a.index - b.index;
18698 });
18699 var fakeBoundary = {
18700 x1: -Infinity,
18701 y1: -Infinity,
18702 x2: 0,
18703 y2: Infinity,
18704 index: -1,
18705 x1New: 0,
18706 x2New: 0
18707 };
18708 var horizon = [{
18709 start: -Infinity,
18710 end: Infinity,
18711 boundary: fakeBoundary
18712 }];
18713 bounds.forEach(function (boundary) {
18714 var i = 0;
18715
18716 while (i < horizon.length && horizon[i].end <= boundary.y1) {
18717 i++;
18718 }
18719
18720 var j = horizon.length - 1;
18721
18722 while (j >= 0 && horizon[j].start >= boundary.y2) {
18723 j--;
18724 }
18725
18726 var horizonPart, affectedBoundary;
18727 var q,
18728 k,
18729 maxXNew = -Infinity;
18730
18731 for (q = i; q <= j; q++) {
18732 horizonPart = horizon[q];
18733 affectedBoundary = horizonPart.boundary;
18734 var xNew;
18735
18736 if (affectedBoundary.x2 > boundary.x1) {
18737 xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;
18738 } else if (affectedBoundary.x2New === undefined) {
18739 xNew = (affectedBoundary.x2 + boundary.x1) / 2;
18740 } else {
18741 xNew = affectedBoundary.x2New;
18742 }
18743
18744 if (xNew > maxXNew) {
18745 maxXNew = xNew;
18746 }
18747 }
18748
18749 boundary.x1New = maxXNew;
18750
18751 for (q = i; q <= j; q++) {
18752 horizonPart = horizon[q];
18753 affectedBoundary = horizonPart.boundary;
18754
18755 if (affectedBoundary.x2New === undefined) {
18756 if (affectedBoundary.x2 > boundary.x1) {
18757 if (affectedBoundary.index > boundary.index) {
18758 affectedBoundary.x2New = affectedBoundary.x2;
18759 }
18760 } else {
18761 affectedBoundary.x2New = maxXNew;
18762 }
18763 } else if (affectedBoundary.x2New > maxXNew) {
18764 affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);
18765 }
18766 }
18767
18768 var changedHorizon = [],
18769 lastBoundary = null;
18770
18771 for (q = i; q <= j; q++) {
18772 horizonPart = horizon[q];
18773 affectedBoundary = horizonPart.boundary;
18774 var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;
18775
18776 if (lastBoundary === useBoundary) {
18777 changedHorizon[changedHorizon.length - 1].end = horizonPart.end;
18778 } else {
18779 changedHorizon.push({
18780 start: horizonPart.start,
18781 end: horizonPart.end,
18782 boundary: useBoundary
18783 });
18784 lastBoundary = useBoundary;
18785 }
18786 }
18787
18788 if (horizon[i].start < boundary.y1) {
18789 changedHorizon[0].start = boundary.y1;
18790 changedHorizon.unshift({
18791 start: horizon[i].start,
18792 end: boundary.y1,
18793 boundary: horizon[i].boundary
18794 });
18795 }
18796
18797 if (boundary.y2 < horizon[j].end) {
18798 changedHorizon[changedHorizon.length - 1].end = boundary.y2;
18799 changedHorizon.push({
18800 start: boundary.y2,
18801 end: horizon[j].end,
18802 boundary: horizon[j].boundary
18803 });
18804 }
18805
18806 for (q = i; q <= j; q++) {
18807 horizonPart = horizon[q];
18808 affectedBoundary = horizonPart.boundary;
18809
18810 if (affectedBoundary.x2New !== undefined) {
18811 continue;
18812 }
18813
18814 var used = false;
18815
18816 for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {
18817 used = horizon[k].boundary === affectedBoundary;
18818 }
18819
18820 for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {
18821 used = horizon[k].boundary === affectedBoundary;
18822 }
18823
18824 for (k = 0; !used && k < changedHorizon.length; k++) {
18825 used = changedHorizon[k].boundary === affectedBoundary;
18826 }
18827
18828 if (!used) {
18829 affectedBoundary.x2New = maxXNew;
18830 }
18831 }
18832
18833 Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));
18834 });
18835 horizon.forEach(function (horizonPart) {
18836 var affectedBoundary = horizonPart.boundary;
18837
18838 if (affectedBoundary.x2New === undefined) {
18839 affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);
18840 }
18841 });
18842 }
18843
18844 function TextLayerRenderTask(_ref) {
18845 var textContent = _ref.textContent,
18846 textContentStream = _ref.textContentStream,
18847 container = _ref.container,
18848 viewport = _ref.viewport,
18849 textDivs = _ref.textDivs,
18850 textContentItemsStr = _ref.textContentItemsStr,
18851 enhanceTextSelection = _ref.enhanceTextSelection;
18852 this._textContent = textContent;
18853 this._textContentStream = textContentStream;
18854 this._container = container;
18855 this._viewport = viewport;
18856 this._textDivs = textDivs || [];
18857 this._textContentItemsStr = textContentItemsStr || [];
18858 this._enhanceTextSelection = !!enhanceTextSelection;
18859 this._fontInspectorEnabled = !!(_global_scope.default.FontInspector && _global_scope.default.FontInspector.enabled);
18860 this._reader = null;
18861 this._layoutTextLastFontSize = null;
18862 this._layoutTextLastFontFamily = null;
18863 this._layoutTextCtx = null;
18864 this._textDivProperties = new WeakMap();
18865 this._renderingDone = false;
18866 this._canceled = false;
18867 this._capability = (0, _util.createPromiseCapability)();
18868 this._renderTimer = null;
18869 this._bounds = [];
18870 }
18871
18872 TextLayerRenderTask.prototype = {
18873 get promise() {
18874 return this._capability.promise;
18875 },
18876
18877 cancel: function TextLayer_cancel() {
18878 if (this._reader) {
18879 this._reader.cancel(new _util.AbortException('text layer task cancelled'));
18880
18881 this._reader = null;
18882 }
18883
18884 this._canceled = true;
18885
18886 if (this._renderTimer !== null) {
18887 clearTimeout(this._renderTimer);
18888 this._renderTimer = null;
18889 }
18890
18891 this._capability.reject('canceled');
18892 },
18893 _processItems: function _processItems(items, styleCache) {
18894 for (var i = 0, len = items.length; i < len; i++) {
18895 this._textContentItemsStr.push(items[i].str);
18896
18897 appendText(this, items[i], styleCache);
18898 }
18899 },
18900 _layoutText: function _layoutText(textDiv) {
18901 var textLayerFrag = this._container;
18902
18903 var textDivProperties = this._textDivProperties.get(textDiv);
18904
18905 if (textDivProperties.isWhitespace) {
18906 return;
18907 }
18908
18909 var fontSize = textDiv.style.fontSize;
18910 var fontFamily = textDiv.style.fontFamily;
18911
18912 if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {
18913 this._layoutTextCtx.font = fontSize + ' ' + fontFamily;
18914 this._layoutTextLastFontSize = fontSize;
18915 this._layoutTextLastFontFamily = fontFamily;
18916 }
18917
18918 var width = this._layoutTextCtx.measureText(textDiv.textContent).width;
18919
18920 var transform = '';
18921
18922 if (textDivProperties.canvasWidth !== 0 && width > 0) {
18923 textDivProperties.scale = textDivProperties.canvasWidth / width;
18924 transform = "scaleX(".concat(textDivProperties.scale, ")");
18925 }
18926
18927 if (textDivProperties.angle !== 0) {
18928 transform = "rotate(".concat(textDivProperties.angle, "deg) ").concat(transform);
18929 }
18930
18931 if (transform.length > 0) {
18932 textDivProperties.originalTransform = transform;
18933 textDiv.style.transform = transform;
18934 }
18935
18936 this._textDivProperties.set(textDiv, textDivProperties);
18937
18938 textLayerFrag.appendChild(textDiv);
18939 },
18940 _render: function TextLayer_render(timeout) {
18941 var _this = this;
18942
18943 var capability = (0, _util.createPromiseCapability)();
18944 var styleCache = Object.create(null);
18945 var canvas = document.createElement('canvas');
18946 canvas.mozOpaque = true;
18947 this._layoutTextCtx = canvas.getContext('2d', {
18948 alpha: false
18949 });
18950
18951 if (this._textContent) {
18952 var textItems = this._textContent.items;
18953 var textStyles = this._textContent.styles;
18954
18955 this._processItems(textItems, textStyles);
18956
18957 capability.resolve();
18958 } else if (this._textContentStream) {
18959 var pump = function pump() {
18960 _this._reader.read().then(function (_ref2) {
18961 var value = _ref2.value,
18962 done = _ref2.done;
18963
18964 if (done) {
18965 capability.resolve();
18966 return;
18967 }
18968
18969 Object.assign(styleCache, value.styles);
18970
18971 _this._processItems(value.items, styleCache);
18972
18973 pump();
18974 }, capability.reject);
18975 };
18976
18977 this._reader = this._textContentStream.getReader();
18978 pump();
18979 } else {
18980 throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.');
18981 }
18982
18983 capability.promise.then(function () {
18984 styleCache = null;
18985
18986 if (!timeout) {
18987 render(_this);
18988 } else {
18989 _this._renderTimer = setTimeout(function () {
18990 render(_this);
18991 _this._renderTimer = null;
18992 }, timeout);
18993 }
18994 }, this._capability.reject);
18995 },
18996 expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {
18997 if (!this._enhanceTextSelection || !this._renderingDone) {
18998 return;
18999 }
19000
19001 if (this._bounds !== null) {
19002 expand(this);
19003 this._bounds = null;
19004 }
19005
19006 for (var i = 0, ii = this._textDivs.length; i < ii; i++) {
19007 var div = this._textDivs[i];
19008
19009 var divProperties = this._textDivProperties.get(div);
19010
19011 if (divProperties.isWhitespace) {
19012 continue;
19013 }
19014
19015 if (expandDivs) {
19016 var transform = '',
19017 padding = '';
19018
19019 if (divProperties.scale !== 1) {
19020 transform = 'scaleX(' + divProperties.scale + ')';
19021 }
19022
19023 if (divProperties.angle !== 0) {
19024 transform = 'rotate(' + divProperties.angle + 'deg) ' + transform;
19025 }
19026
19027 if (divProperties.paddingLeft !== 0) {
19028 padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;';
19029 transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)';
19030 }
19031
19032 if (divProperties.paddingTop !== 0) {
19033 padding += ' padding-top: ' + divProperties.paddingTop + 'px;';
19034 transform += ' translateY(' + -divProperties.paddingTop + 'px)';
19035 }
19036
19037 if (divProperties.paddingRight !== 0) {
19038 padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;';
19039 }
19040
19041 if (divProperties.paddingBottom !== 0) {
19042 padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;';
19043 }
19044
19045 if (padding !== '') {
19046 div.setAttribute('style', divProperties.style + padding);
19047 }
19048
19049 if (transform !== '') {
19050 div.style.transform = transform;
19051 }
19052 } else {
19053 div.style.padding = 0;
19054 div.style.transform = divProperties.originalTransform || '';
19055 }
19056 }
19057 }
19058 };
19059
19060 function renderTextLayer(renderParameters) {
19061 var task = new TextLayerRenderTask({
19062 textContent: renderParameters.textContent,
19063 textContentStream: renderParameters.textContentStream,
19064 container: renderParameters.container,
19065 viewport: renderParameters.viewport,
19066 textDivs: renderParameters.textDivs,
19067 textContentItemsStr: renderParameters.textContentItemsStr,
19068 enhanceTextSelection: renderParameters.enhanceTextSelection
19069 });
19070
19071 task._render(renderParameters.timeout);
19072
19073 return task;
19074 }
19075
19076 return renderTextLayer;
19077}();
19078
19079exports.renderTextLayer = renderTextLayer;
19080
19081/***/ }),
19082/* 163 */
19083/***/ (function(module, exports, __w_pdfjs_require__) {
19084
19085"use strict";
19086
19087
19088Object.defineProperty(exports, "__esModule", {
19089 value: true
19090});
19091exports.AnnotationLayer = void 0;
19092
19093var _dom_utils = __w_pdfjs_require__(151);
19094
19095var _util = __w_pdfjs_require__(1);
19096
19097function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
19098
19099function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
19100
19101function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
19102
19103function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
19104
19105function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
19106
19107function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
19108
19109function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
19110
19111function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
19112
19113function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19114
19115function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
19116
19117function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
19118
19119var AnnotationElementFactory =
19120/*#__PURE__*/
19121function () {
19122 function AnnotationElementFactory() {
19123 _classCallCheck(this, AnnotationElementFactory);
19124 }
19125
19126 _createClass(AnnotationElementFactory, null, [{
19127 key: "create",
19128 value: function create(parameters) {
19129 var subtype = parameters.data.annotationType;
19130
19131 switch (subtype) {
19132 case _util.AnnotationType.LINK:
19133 return new LinkAnnotationElement(parameters);
19134
19135 case _util.AnnotationType.TEXT:
19136 return new TextAnnotationElement(parameters);
19137
19138 case _util.AnnotationType.WIDGET:
19139 var fieldType = parameters.data.fieldType;
19140
19141 switch (fieldType) {
19142 case 'Tx':
19143 return new TextWidgetAnnotationElement(parameters);
19144
19145 case 'Btn':
19146 if (parameters.data.radioButton) {
19147 return new RadioButtonWidgetAnnotationElement(parameters);
19148 } else if (parameters.data.checkBox) {
19149 return new CheckboxWidgetAnnotationElement(parameters);
19150 }
19151
19152 return new PushButtonWidgetAnnotationElement(parameters);
19153
19154 case 'Ch':
19155 return new ChoiceWidgetAnnotationElement(parameters);
19156 }
19157
19158 return new WidgetAnnotationElement(parameters);
19159
19160 case _util.AnnotationType.POPUP:
19161 return new PopupAnnotationElement(parameters);
19162
19163 case _util.AnnotationType.LINE:
19164 return new LineAnnotationElement(parameters);
19165
19166 case _util.AnnotationType.SQUARE:
19167 return new SquareAnnotationElement(parameters);
19168
19169 case _util.AnnotationType.CIRCLE:
19170 return new CircleAnnotationElement(parameters);
19171
19172 case _util.AnnotationType.POLYLINE:
19173 return new PolylineAnnotationElement(parameters);
19174
19175 case _util.AnnotationType.INK:
19176 return new InkAnnotationElement(parameters);
19177
19178 case _util.AnnotationType.POLYGON:
19179 return new PolygonAnnotationElement(parameters);
19180
19181 case _util.AnnotationType.HIGHLIGHT:
19182 return new HighlightAnnotationElement(parameters);
19183
19184 case _util.AnnotationType.UNDERLINE:
19185 return new UnderlineAnnotationElement(parameters);
19186
19187 case _util.AnnotationType.SQUIGGLY:
19188 return new SquigglyAnnotationElement(parameters);
19189
19190 case _util.AnnotationType.STRIKEOUT:
19191 return new StrikeOutAnnotationElement(parameters);
19192
19193 case _util.AnnotationType.STAMP:
19194 return new StampAnnotationElement(parameters);
19195
19196 case _util.AnnotationType.FILEATTACHMENT:
19197 return new FileAttachmentAnnotationElement(parameters);
19198
19199 default:
19200 return new AnnotationElement(parameters);
19201 }
19202 }
19203 }]);
19204
19205 return AnnotationElementFactory;
19206}();
19207
19208var AnnotationElement =
19209/*#__PURE__*/
19210function () {
19211 function AnnotationElement(parameters) {
19212 var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
19213 var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
19214
19215 _classCallCheck(this, AnnotationElement);
19216
19217 this.isRenderable = isRenderable;
19218 this.data = parameters.data;
19219 this.layer = parameters.layer;
19220 this.page = parameters.page;
19221 this.viewport = parameters.viewport;
19222 this.linkService = parameters.linkService;
19223 this.downloadManager = parameters.downloadManager;
19224 this.imageResourcesPath = parameters.imageResourcesPath;
19225 this.renderInteractiveForms = parameters.renderInteractiveForms;
19226 this.svgFactory = parameters.svgFactory;
19227
19228 if (isRenderable) {
19229 this.container = this._createContainer(ignoreBorder);
19230 }
19231 }
19232
19233 _createClass(AnnotationElement, [{
19234 key: "_createContainer",
19235 value: function _createContainer() {
19236 var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
19237 var data = this.data,
19238 page = this.page,
19239 viewport = this.viewport;
19240 var container = document.createElement('section');
19241 var width = data.rect[2] - data.rect[0];
19242 var height = data.rect[3] - data.rect[1];
19243 container.setAttribute('data-annotation-id', data.id);
19244
19245 var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);
19246
19247 container.style.transform = 'matrix(' + viewport.transform.join(',') + ')';
19248 container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px';
19249
19250 if (!ignoreBorder && data.borderStyle.width > 0) {
19251 container.style.borderWidth = data.borderStyle.width + 'px';
19252
19253 if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {
19254 width = width - 2 * data.borderStyle.width;
19255 height = height - 2 * data.borderStyle.width;
19256 }
19257
19258 var horizontalRadius = data.borderStyle.horizontalCornerRadius;
19259 var verticalRadius = data.borderStyle.verticalCornerRadius;
19260
19261 if (horizontalRadius > 0 || verticalRadius > 0) {
19262 var radius = horizontalRadius + 'px / ' + verticalRadius + 'px';
19263 container.style.borderRadius = radius;
19264 }
19265
19266 switch (data.borderStyle.style) {
19267 case _util.AnnotationBorderStyleType.SOLID:
19268 container.style.borderStyle = 'solid';
19269 break;
19270
19271 case _util.AnnotationBorderStyleType.DASHED:
19272 container.style.borderStyle = 'dashed';
19273 break;
19274
19275 case _util.AnnotationBorderStyleType.BEVELED:
19276 (0, _util.warn)('Unimplemented border style: beveled');
19277 break;
19278
19279 case _util.AnnotationBorderStyleType.INSET:
19280 (0, _util.warn)('Unimplemented border style: inset');
19281 break;
19282
19283 case _util.AnnotationBorderStyleType.UNDERLINE:
19284 container.style.borderBottomStyle = 'solid';
19285 break;
19286
19287 default:
19288 break;
19289 }
19290
19291 if (data.color) {
19292 container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);
19293 } else {
19294 container.style.borderWidth = 0;
19295 }
19296 }
19297
19298 container.style.left = rect[0] + 'px';
19299 container.style.top = rect[1] + 'px';
19300 container.style.width = width + 'px';
19301 container.style.height = height + 'px';
19302 return container;
19303 }
19304 }, {
19305 key: "_createPopup",
19306 value: function _createPopup(container, trigger, data) {
19307 if (!trigger) {
19308 trigger = document.createElement('div');
19309 trigger.style.height = container.style.height;
19310 trigger.style.width = container.style.width;
19311 container.appendChild(trigger);
19312 }
19313
19314 var popupElement = new PopupElement({
19315 container: container,
19316 trigger: trigger,
19317 color: data.color,
19318 title: data.title,
19319 contents: data.contents,
19320 hideWrapper: true
19321 });
19322 var popup = popupElement.render();
19323 popup.style.left = container.style.width;
19324 container.appendChild(popup);
19325 }
19326 }, {
19327 key: "render",
19328 value: function render() {
19329 (0, _util.unreachable)('Abstract method `AnnotationElement.render` called');
19330 }
19331 }]);
19332
19333 return AnnotationElement;
19334}();
19335
19336var LinkAnnotationElement =
19337/*#__PURE__*/
19338function (_AnnotationElement) {
19339 _inherits(LinkAnnotationElement, _AnnotationElement);
19340
19341 function LinkAnnotationElement(parameters) {
19342 _classCallCheck(this, LinkAnnotationElement);
19343
19344 var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);
19345 return _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotationElement).call(this, parameters, isRenderable));
19346 }
19347
19348 _createClass(LinkAnnotationElement, [{
19349 key: "render",
19350 value: function render() {
19351 this.container.className = 'linkAnnotation';
19352 var data = this.data,
19353 linkService = this.linkService;
19354 var link = document.createElement('a');
19355 (0, _dom_utils.addLinkAttributes)(link, {
19356 url: data.url,
19357 target: data.newWindow ? _dom_utils.LinkTarget.BLANK : linkService.externalLinkTarget,
19358 rel: linkService.externalLinkRel
19359 });
19360
19361 if (!data.url) {
19362 if (data.action) {
19363 this._bindNamedAction(link, data.action);
19364 } else {
19365 this._bindLink(link, data.dest);
19366 }
19367 }
19368
19369 this.container.appendChild(link);
19370 return this.container;
19371 }
19372 }, {
19373 key: "_bindLink",
19374 value: function _bindLink(link, destination) {
19375 var _this = this;
19376
19377 link.href = this.linkService.getDestinationHash(destination);
19378
19379 link.onclick = function () {
19380 if (destination) {
19381 _this.linkService.navigateTo(destination);
19382 }
19383
19384 return false;
19385 };
19386
19387 if (destination) {
19388 link.className = 'internalLink';
19389 }
19390 }
19391 }, {
19392 key: "_bindNamedAction",
19393 value: function _bindNamedAction(link, action) {
19394 var _this2 = this;
19395
19396 link.href = this.linkService.getAnchorUrl('');
19397
19398 link.onclick = function () {
19399 _this2.linkService.executeNamedAction(action);
19400
19401 return false;
19402 };
19403
19404 link.className = 'internalLink';
19405 }
19406 }]);
19407
19408 return LinkAnnotationElement;
19409}(AnnotationElement);
19410
19411var TextAnnotationElement =
19412/*#__PURE__*/
19413function (_AnnotationElement2) {
19414 _inherits(TextAnnotationElement, _AnnotationElement2);
19415
19416 function TextAnnotationElement(parameters) {
19417 _classCallCheck(this, TextAnnotationElement);
19418
19419 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
19420 return _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotationElement).call(this, parameters, isRenderable));
19421 }
19422
19423 _createClass(TextAnnotationElement, [{
19424 key: "render",
19425 value: function render() {
19426 this.container.className = 'textAnnotation';
19427 var image = document.createElement('img');
19428 image.style.height = this.container.style.height;
19429 image.style.width = this.container.style.width;
19430 image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg';
19431 image.alt = '[{{type}} Annotation]';
19432 image.dataset.l10nId = 'text_annotation_type';
19433 image.dataset.l10nArgs = JSON.stringify({
19434 type: this.data.name
19435 });
19436
19437 if (!this.data.hasPopup) {
19438 this._createPopup(this.container, image, this.data);
19439 }
19440
19441 this.container.appendChild(image);
19442 return this.container;
19443 }
19444 }]);
19445
19446 return TextAnnotationElement;
19447}(AnnotationElement);
19448
19449var WidgetAnnotationElement =
19450/*#__PURE__*/
19451function (_AnnotationElement3) {
19452 _inherits(WidgetAnnotationElement, _AnnotationElement3);
19453
19454 function WidgetAnnotationElement() {
19455 _classCallCheck(this, WidgetAnnotationElement);
19456
19457 return _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotationElement).apply(this, arguments));
19458 }
19459
19460 _createClass(WidgetAnnotationElement, [{
19461 key: "render",
19462 value: function render() {
19463 return this.container;
19464 }
19465 }]);
19466
19467 return WidgetAnnotationElement;
19468}(AnnotationElement);
19469
19470var TextWidgetAnnotationElement =
19471/*#__PURE__*/
19472function (_WidgetAnnotationElem) {
19473 _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem);
19474
19475 function TextWidgetAnnotationElement(parameters) {
19476 _classCallCheck(this, TextWidgetAnnotationElement);
19477
19478 var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;
19479 return _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotationElement).call(this, parameters, isRenderable));
19480 }
19481
19482 _createClass(TextWidgetAnnotationElement, [{
19483 key: "render",
19484 value: function render() {
19485 var TEXT_ALIGNMENT = ['left', 'center', 'right'];
19486 this.container.className = 'textWidgetAnnotation';
19487 var element = null;
19488
19489 if (this.renderInteractiveForms) {
19490 if (this.data.multiLine) {
19491 element = document.createElement('textarea');
19492 element.textContent = this.data.fieldValue;
19493 } else {
19494 element = document.createElement('input');
19495 element.type = 'text';
19496 element.setAttribute('value', this.data.fieldValue);
19497 }
19498
19499 element.disabled = this.data.readOnly;
19500
19501 if (this.data.maxLen !== null) {
19502 element.maxLength = this.data.maxLen;
19503 }
19504
19505 if (this.data.comb) {
19506 var fieldWidth = this.data.rect[2] - this.data.rect[0];
19507 var combWidth = fieldWidth / this.data.maxLen;
19508 element.classList.add('comb');
19509 element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)';
19510 }
19511 } else {
19512 element = document.createElement('div');
19513 element.textContent = this.data.fieldValue;
19514 element.style.verticalAlign = 'middle';
19515 element.style.display = 'table-cell';
19516 var font = null;
19517
19518 if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {
19519 font = this.page.commonObjs.get(this.data.fontRefName);
19520 }
19521
19522 this._setTextStyle(element, font);
19523 }
19524
19525 if (this.data.textAlignment !== null) {
19526 element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];
19527 }
19528
19529 this.container.appendChild(element);
19530 return this.container;
19531 }
19532 }, {
19533 key: "_setTextStyle",
19534 value: function _setTextStyle(element, font) {
19535 var style = element.style;
19536 style.fontSize = this.data.fontSize + 'px';
19537 style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr';
19538
19539 if (!font) {
19540 return;
19541 }
19542
19543 style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal';
19544 style.fontStyle = font.italic ? 'italic' : 'normal';
19545 var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : '';
19546 var fallbackName = font.fallbackName || 'Helvetica, sans-serif';
19547 style.fontFamily = fontFamily + fallbackName;
19548 }
19549 }]);
19550
19551 return TextWidgetAnnotationElement;
19552}(WidgetAnnotationElement);
19553
19554var CheckboxWidgetAnnotationElement =
19555/*#__PURE__*/
19556function (_WidgetAnnotationElem2) {
19557 _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2);
19558
19559 function CheckboxWidgetAnnotationElement(parameters) {
19560 _classCallCheck(this, CheckboxWidgetAnnotationElement);
19561
19562 return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
19563 }
19564
19565 _createClass(CheckboxWidgetAnnotationElement, [{
19566 key: "render",
19567 value: function render() {
19568 this.container.className = 'buttonWidgetAnnotation checkBox';
19569 var element = document.createElement('input');
19570 element.disabled = this.data.readOnly;
19571 element.type = 'checkbox';
19572
19573 if (this.data.fieldValue && this.data.fieldValue !== 'Off') {
19574 element.setAttribute('checked', true);
19575 }
19576
19577 this.container.appendChild(element);
19578 return this.container;
19579 }
19580 }]);
19581
19582 return CheckboxWidgetAnnotationElement;
19583}(WidgetAnnotationElement);
19584
19585var RadioButtonWidgetAnnotationElement =
19586/*#__PURE__*/
19587function (_WidgetAnnotationElem3) {
19588 _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3);
19589
19590 function RadioButtonWidgetAnnotationElement(parameters) {
19591 _classCallCheck(this, RadioButtonWidgetAnnotationElement);
19592
19593 return _possibleConstructorReturn(this, _getPrototypeOf(RadioButtonWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
19594 }
19595
19596 _createClass(RadioButtonWidgetAnnotationElement, [{
19597 key: "render",
19598 value: function render() {
19599 this.container.className = 'buttonWidgetAnnotation radioButton';
19600 var element = document.createElement('input');
19601 element.disabled = this.data.readOnly;
19602 element.type = 'radio';
19603 element.name = this.data.fieldName;
19604
19605 if (this.data.fieldValue === this.data.buttonValue) {
19606 element.setAttribute('checked', true);
19607 }
19608
19609 this.container.appendChild(element);
19610 return this.container;
19611 }
19612 }]);
19613
19614 return RadioButtonWidgetAnnotationElement;
19615}(WidgetAnnotationElement);
19616
19617var PushButtonWidgetAnnotationElement =
19618/*#__PURE__*/
19619function (_LinkAnnotationElemen) {
19620 _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen);
19621
19622 function PushButtonWidgetAnnotationElement() {
19623 _classCallCheck(this, PushButtonWidgetAnnotationElement);
19624
19625 return _possibleConstructorReturn(this, _getPrototypeOf(PushButtonWidgetAnnotationElement).apply(this, arguments));
19626 }
19627
19628 _createClass(PushButtonWidgetAnnotationElement, [{
19629 key: "render",
19630 value: function render() {
19631 var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), "render", this).call(this);
19632
19633 container.className = 'buttonWidgetAnnotation pushButton';
19634 return container;
19635 }
19636 }]);
19637
19638 return PushButtonWidgetAnnotationElement;
19639}(LinkAnnotationElement);
19640
19641var ChoiceWidgetAnnotationElement =
19642/*#__PURE__*/
19643function (_WidgetAnnotationElem4) {
19644 _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4);
19645
19646 function ChoiceWidgetAnnotationElement(parameters) {
19647 _classCallCheck(this, ChoiceWidgetAnnotationElement);
19648
19649 return _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
19650 }
19651
19652 _createClass(ChoiceWidgetAnnotationElement, [{
19653 key: "render",
19654 value: function render() {
19655 this.container.className = 'choiceWidgetAnnotation';
19656 var selectElement = document.createElement('select');
19657 selectElement.disabled = this.data.readOnly;
19658
19659 if (!this.data.combo) {
19660 selectElement.size = this.data.options.length;
19661
19662 if (this.data.multiSelect) {
19663 selectElement.multiple = true;
19664 }
19665 }
19666
19667 for (var i = 0, ii = this.data.options.length; i < ii; i++) {
19668 var option = this.data.options[i];
19669 var optionElement = document.createElement('option');
19670 optionElement.textContent = option.displayValue;
19671 optionElement.value = option.exportValue;
19672
19673 if (this.data.fieldValue.includes(option.displayValue)) {
19674 optionElement.setAttribute('selected', true);
19675 }
19676
19677 selectElement.appendChild(optionElement);
19678 }
19679
19680 this.container.appendChild(selectElement);
19681 return this.container;
19682 }
19683 }]);
19684
19685 return ChoiceWidgetAnnotationElement;
19686}(WidgetAnnotationElement);
19687
19688var PopupAnnotationElement =
19689/*#__PURE__*/
19690function (_AnnotationElement4) {
19691 _inherits(PopupAnnotationElement, _AnnotationElement4);
19692
19693 function PopupAnnotationElement(parameters) {
19694 _classCallCheck(this, PopupAnnotationElement);
19695
19696 var isRenderable = !!(parameters.data.title || parameters.data.contents);
19697 return _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotationElement).call(this, parameters, isRenderable));
19698 }
19699
19700 _createClass(PopupAnnotationElement, [{
19701 key: "render",
19702 value: function render() {
19703 var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink'];
19704 this.container.className = 'popupAnnotation';
19705
19706 if (IGNORE_TYPES.includes(this.data.parentType)) {
19707 return this.container;
19708 }
19709
19710 var selector = '[data-annotation-id="' + this.data.parentId + '"]';
19711 var parentElement = this.layer.querySelector(selector);
19712
19713 if (!parentElement) {
19714 return this.container;
19715 }
19716
19717 var popup = new PopupElement({
19718 container: this.container,
19719 trigger: parentElement,
19720 color: this.data.color,
19721 title: this.data.title,
19722 contents: this.data.contents
19723 });
19724 var parentLeft = parseFloat(parentElement.style.left);
19725 var parentWidth = parseFloat(parentElement.style.width);
19726 this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top;
19727 this.container.style.left = parentLeft + parentWidth + 'px';
19728 this.container.appendChild(popup.render());
19729 return this.container;
19730 }
19731 }]);
19732
19733 return PopupAnnotationElement;
19734}(AnnotationElement);
19735
19736var PopupElement =
19737/*#__PURE__*/
19738function () {
19739 function PopupElement(parameters) {
19740 _classCallCheck(this, PopupElement);
19741
19742 this.container = parameters.container;
19743 this.trigger = parameters.trigger;
19744 this.color = parameters.color;
19745 this.title = parameters.title;
19746 this.contents = parameters.contents;
19747 this.hideWrapper = parameters.hideWrapper || false;
19748 this.pinned = false;
19749 }
19750
19751 _createClass(PopupElement, [{
19752 key: "render",
19753 value: function render() {
19754 var BACKGROUND_ENLIGHT = 0.7;
19755 var wrapper = document.createElement('div');
19756 wrapper.className = 'popupWrapper';
19757 this.hideElement = this.hideWrapper ? wrapper : this.container;
19758 this.hideElement.setAttribute('hidden', true);
19759 var popup = document.createElement('div');
19760 popup.className = 'popup';
19761 var color = this.color;
19762
19763 if (color) {
19764 var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];
19765 var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];
19766 var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];
19767 popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);
19768 }
19769
19770 var contents = this._formatContents(this.contents);
19771
19772 var title = document.createElement('h1');
19773 title.textContent = this.title;
19774 this.trigger.addEventListener('click', this._toggle.bind(this));
19775 this.trigger.addEventListener('mouseover', this._show.bind(this, false));
19776 this.trigger.addEventListener('mouseout', this._hide.bind(this, false));
19777 popup.addEventListener('click', this._hide.bind(this, true));
19778 popup.appendChild(title);
19779 popup.appendChild(contents);
19780 wrapper.appendChild(popup);
19781 return wrapper;
19782 }
19783 }, {
19784 key: "_formatContents",
19785 value: function _formatContents(contents) {
19786 var p = document.createElement('p');
19787 var lines = contents.split(/(?:\r\n?|\n)/);
19788
19789 for (var i = 0, ii = lines.length; i < ii; ++i) {
19790 var line = lines[i];
19791 p.appendChild(document.createTextNode(line));
19792
19793 if (i < ii - 1) {
19794 p.appendChild(document.createElement('br'));
19795 }
19796 }
19797
19798 return p;
19799 }
19800 }, {
19801 key: "_toggle",
19802 value: function _toggle() {
19803 if (this.pinned) {
19804 this._hide(true);
19805 } else {
19806 this._show(true);
19807 }
19808 }
19809 }, {
19810 key: "_show",
19811 value: function _show() {
19812 var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
19813
19814 if (pin) {
19815 this.pinned = true;
19816 }
19817
19818 if (this.hideElement.hasAttribute('hidden')) {
19819 this.hideElement.removeAttribute('hidden');
19820 this.container.style.zIndex += 1;
19821 }
19822 }
19823 }, {
19824 key: "_hide",
19825 value: function _hide() {
19826 var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
19827
19828 if (unpin) {
19829 this.pinned = false;
19830 }
19831
19832 if (!this.hideElement.hasAttribute('hidden') && !this.pinned) {
19833 this.hideElement.setAttribute('hidden', true);
19834 this.container.style.zIndex -= 1;
19835 }
19836 }
19837 }]);
19838
19839 return PopupElement;
19840}();
19841
19842var LineAnnotationElement =
19843/*#__PURE__*/
19844function (_AnnotationElement5) {
19845 _inherits(LineAnnotationElement, _AnnotationElement5);
19846
19847 function LineAnnotationElement(parameters) {
19848 _classCallCheck(this, LineAnnotationElement);
19849
19850 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
19851 return _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotationElement).call(this, parameters, isRenderable, true));
19852 }
19853
19854 _createClass(LineAnnotationElement, [{
19855 key: "render",
19856 value: function render() {
19857 this.container.className = 'lineAnnotation';
19858 var data = this.data;
19859 var width = data.rect[2] - data.rect[0];
19860 var height = data.rect[3] - data.rect[1];
19861 var svg = this.svgFactory.create(width, height);
19862 var line = this.svgFactory.createElement('svg:line');
19863 line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]);
19864 line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]);
19865 line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]);
19866 line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]);
19867 line.setAttribute('stroke-width', data.borderStyle.width);
19868 line.setAttribute('stroke', 'transparent');
19869 svg.appendChild(line);
19870 this.container.append(svg);
19871
19872 this._createPopup(this.container, line, data);
19873
19874 return this.container;
19875 }
19876 }]);
19877
19878 return LineAnnotationElement;
19879}(AnnotationElement);
19880
19881var SquareAnnotationElement =
19882/*#__PURE__*/
19883function (_AnnotationElement6) {
19884 _inherits(SquareAnnotationElement, _AnnotationElement6);
19885
19886 function SquareAnnotationElement(parameters) {
19887 _classCallCheck(this, SquareAnnotationElement);
19888
19889 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
19890 return _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotationElement).call(this, parameters, isRenderable, true));
19891 }
19892
19893 _createClass(SquareAnnotationElement, [{
19894 key: "render",
19895 value: function render() {
19896 this.container.className = 'squareAnnotation';
19897 var data = this.data;
19898 var width = data.rect[2] - data.rect[0];
19899 var height = data.rect[3] - data.rect[1];
19900 var svg = this.svgFactory.create(width, height);
19901 var borderWidth = data.borderStyle.width;
19902 var square = this.svgFactory.createElement('svg:rect');
19903 square.setAttribute('x', borderWidth / 2);
19904 square.setAttribute('y', borderWidth / 2);
19905 square.setAttribute('width', width - borderWidth);
19906 square.setAttribute('height', height - borderWidth);
19907 square.setAttribute('stroke-width', borderWidth);
19908 square.setAttribute('stroke', 'transparent');
19909 square.setAttribute('fill', 'none');
19910 svg.appendChild(square);
19911 this.container.append(svg);
19912
19913 this._createPopup(this.container, square, data);
19914
19915 return this.container;
19916 }
19917 }]);
19918
19919 return SquareAnnotationElement;
19920}(AnnotationElement);
19921
19922var CircleAnnotationElement =
19923/*#__PURE__*/
19924function (_AnnotationElement7) {
19925 _inherits(CircleAnnotationElement, _AnnotationElement7);
19926
19927 function CircleAnnotationElement(parameters) {
19928 _classCallCheck(this, CircleAnnotationElement);
19929
19930 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
19931 return _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotationElement).call(this, parameters, isRenderable, true));
19932 }
19933
19934 _createClass(CircleAnnotationElement, [{
19935 key: "render",
19936 value: function render() {
19937 this.container.className = 'circleAnnotation';
19938 var data = this.data;
19939 var width = data.rect[2] - data.rect[0];
19940 var height = data.rect[3] - data.rect[1];
19941 var svg = this.svgFactory.create(width, height);
19942 var borderWidth = data.borderStyle.width;
19943 var circle = this.svgFactory.createElement('svg:ellipse');
19944 circle.setAttribute('cx', width / 2);
19945 circle.setAttribute('cy', height / 2);
19946 circle.setAttribute('rx', width / 2 - borderWidth / 2);
19947 circle.setAttribute('ry', height / 2 - borderWidth / 2);
19948 circle.setAttribute('stroke-width', borderWidth);
19949 circle.setAttribute('stroke', 'transparent');
19950 circle.setAttribute('fill', 'none');
19951 svg.appendChild(circle);
19952 this.container.append(svg);
19953
19954 this._createPopup(this.container, circle, data);
19955
19956 return this.container;
19957 }
19958 }]);
19959
19960 return CircleAnnotationElement;
19961}(AnnotationElement);
19962
19963var PolylineAnnotationElement =
19964/*#__PURE__*/
19965function (_AnnotationElement8) {
19966 _inherits(PolylineAnnotationElement, _AnnotationElement8);
19967
19968 function PolylineAnnotationElement(parameters) {
19969 var _this3;
19970
19971 _classCallCheck(this, PolylineAnnotationElement);
19972
19973 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
19974 _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotationElement).call(this, parameters, isRenderable, true));
19975 _this3.containerClassName = 'polylineAnnotation';
19976 _this3.svgElementName = 'svg:polyline';
19977 return _this3;
19978 }
19979
19980 _createClass(PolylineAnnotationElement, [{
19981 key: "render",
19982 value: function render() {
19983 this.container.className = this.containerClassName;
19984 var data = this.data;
19985 var width = data.rect[2] - data.rect[0];
19986 var height = data.rect[3] - data.rect[1];
19987 var svg = this.svgFactory.create(width, height);
19988 var vertices = data.vertices;
19989 var points = [];
19990
19991 for (var i = 0, ii = vertices.length; i < ii; i++) {
19992 var x = vertices[i].x - data.rect[0];
19993 var y = data.rect[3] - vertices[i].y;
19994 points.push(x + ',' + y);
19995 }
19996
19997 points = points.join(' ');
19998 var borderWidth = data.borderStyle.width;
19999 var polyline = this.svgFactory.createElement(this.svgElementName);
20000 polyline.setAttribute('points', points);
20001 polyline.setAttribute('stroke-width', borderWidth);
20002 polyline.setAttribute('stroke', 'transparent');
20003 polyline.setAttribute('fill', 'none');
20004 svg.appendChild(polyline);
20005 this.container.append(svg);
20006
20007 this._createPopup(this.container, polyline, data);
20008
20009 return this.container;
20010 }
20011 }]);
20012
20013 return PolylineAnnotationElement;
20014}(AnnotationElement);
20015
20016var PolygonAnnotationElement =
20017/*#__PURE__*/
20018function (_PolylineAnnotationEl) {
20019 _inherits(PolygonAnnotationElement, _PolylineAnnotationEl);
20020
20021 function PolygonAnnotationElement(parameters) {
20022 var _this4;
20023
20024 _classCallCheck(this, PolygonAnnotationElement);
20025
20026 _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotationElement).call(this, parameters));
20027 _this4.containerClassName = 'polygonAnnotation';
20028 _this4.svgElementName = 'svg:polygon';
20029 return _this4;
20030 }
20031
20032 return PolygonAnnotationElement;
20033}(PolylineAnnotationElement);
20034
20035var InkAnnotationElement =
20036/*#__PURE__*/
20037function (_AnnotationElement9) {
20038 _inherits(InkAnnotationElement, _AnnotationElement9);
20039
20040 function InkAnnotationElement(parameters) {
20041 var _this5;
20042
20043 _classCallCheck(this, InkAnnotationElement);
20044
20045 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20046 _this5 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotationElement).call(this, parameters, isRenderable, true));
20047 _this5.containerClassName = 'inkAnnotation';
20048 _this5.svgElementName = 'svg:polyline';
20049 return _this5;
20050 }
20051
20052 _createClass(InkAnnotationElement, [{
20053 key: "render",
20054 value: function render() {
20055 this.container.className = this.containerClassName;
20056 var data = this.data;
20057 var width = data.rect[2] - data.rect[0];
20058 var height = data.rect[3] - data.rect[1];
20059 var svg = this.svgFactory.create(width, height);
20060 var inkLists = data.inkLists;
20061
20062 for (var i = 0, ii = inkLists.length; i < ii; i++) {
20063 var inkList = inkLists[i];
20064 var points = [];
20065
20066 for (var j = 0, jj = inkList.length; j < jj; j++) {
20067 var x = inkList[j].x - data.rect[0];
20068 var y = data.rect[3] - inkList[j].y;
20069 points.push(x + ',' + y);
20070 }
20071
20072 points = points.join(' ');
20073 var borderWidth = data.borderStyle.width;
20074 var polyline = this.svgFactory.createElement(this.svgElementName);
20075 polyline.setAttribute('points', points);
20076 polyline.setAttribute('stroke-width', borderWidth);
20077 polyline.setAttribute('stroke', 'transparent');
20078 polyline.setAttribute('fill', 'none');
20079
20080 this._createPopup(this.container, polyline, data);
20081
20082 svg.appendChild(polyline);
20083 }
20084
20085 this.container.append(svg);
20086 return this.container;
20087 }
20088 }]);
20089
20090 return InkAnnotationElement;
20091}(AnnotationElement);
20092
20093var HighlightAnnotationElement =
20094/*#__PURE__*/
20095function (_AnnotationElement10) {
20096 _inherits(HighlightAnnotationElement, _AnnotationElement10);
20097
20098 function HighlightAnnotationElement(parameters) {
20099 _classCallCheck(this, HighlightAnnotationElement);
20100
20101 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20102 return _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotationElement).call(this, parameters, isRenderable, true));
20103 }
20104
20105 _createClass(HighlightAnnotationElement, [{
20106 key: "render",
20107 value: function render() {
20108 this.container.className = 'highlightAnnotation';
20109
20110 if (!this.data.hasPopup) {
20111 this._createPopup(this.container, null, this.data);
20112 }
20113
20114 return this.container;
20115 }
20116 }]);
20117
20118 return HighlightAnnotationElement;
20119}(AnnotationElement);
20120
20121var UnderlineAnnotationElement =
20122/*#__PURE__*/
20123function (_AnnotationElement11) {
20124 _inherits(UnderlineAnnotationElement, _AnnotationElement11);
20125
20126 function UnderlineAnnotationElement(parameters) {
20127 _classCallCheck(this, UnderlineAnnotationElement);
20128
20129 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20130 return _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotationElement).call(this, parameters, isRenderable, true));
20131 }
20132
20133 _createClass(UnderlineAnnotationElement, [{
20134 key: "render",
20135 value: function render() {
20136 this.container.className = 'underlineAnnotation';
20137
20138 if (!this.data.hasPopup) {
20139 this._createPopup(this.container, null, this.data);
20140 }
20141
20142 return this.container;
20143 }
20144 }]);
20145
20146 return UnderlineAnnotationElement;
20147}(AnnotationElement);
20148
20149var SquigglyAnnotationElement =
20150/*#__PURE__*/
20151function (_AnnotationElement12) {
20152 _inherits(SquigglyAnnotationElement, _AnnotationElement12);
20153
20154 function SquigglyAnnotationElement(parameters) {
20155 _classCallCheck(this, SquigglyAnnotationElement);
20156
20157 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20158 return _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotationElement).call(this, parameters, isRenderable, true));
20159 }
20160
20161 _createClass(SquigglyAnnotationElement, [{
20162 key: "render",
20163 value: function render() {
20164 this.container.className = 'squigglyAnnotation';
20165
20166 if (!this.data.hasPopup) {
20167 this._createPopup(this.container, null, this.data);
20168 }
20169
20170 return this.container;
20171 }
20172 }]);
20173
20174 return SquigglyAnnotationElement;
20175}(AnnotationElement);
20176
20177var StrikeOutAnnotationElement =
20178/*#__PURE__*/
20179function (_AnnotationElement13) {
20180 _inherits(StrikeOutAnnotationElement, _AnnotationElement13);
20181
20182 function StrikeOutAnnotationElement(parameters) {
20183 _classCallCheck(this, StrikeOutAnnotationElement);
20184
20185 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20186 return _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotationElement).call(this, parameters, isRenderable, true));
20187 }
20188
20189 _createClass(StrikeOutAnnotationElement, [{
20190 key: "render",
20191 value: function render() {
20192 this.container.className = 'strikeoutAnnotation';
20193
20194 if (!this.data.hasPopup) {
20195 this._createPopup(this.container, null, this.data);
20196 }
20197
20198 return this.container;
20199 }
20200 }]);
20201
20202 return StrikeOutAnnotationElement;
20203}(AnnotationElement);
20204
20205var StampAnnotationElement =
20206/*#__PURE__*/
20207function (_AnnotationElement14) {
20208 _inherits(StampAnnotationElement, _AnnotationElement14);
20209
20210 function StampAnnotationElement(parameters) {
20211 _classCallCheck(this, StampAnnotationElement);
20212
20213 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20214 return _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotationElement).call(this, parameters, isRenderable, true));
20215 }
20216
20217 _createClass(StampAnnotationElement, [{
20218 key: "render",
20219 value: function render() {
20220 this.container.className = 'stampAnnotation';
20221
20222 if (!this.data.hasPopup) {
20223 this._createPopup(this.container, null, this.data);
20224 }
20225
20226 return this.container;
20227 }
20228 }]);
20229
20230 return StampAnnotationElement;
20231}(AnnotationElement);
20232
20233var FileAttachmentAnnotationElement =
20234/*#__PURE__*/
20235function (_AnnotationElement15) {
20236 _inherits(FileAttachmentAnnotationElement, _AnnotationElement15);
20237
20238 function FileAttachmentAnnotationElement(parameters) {
20239 var _this6;
20240
20241 _classCallCheck(this, FileAttachmentAnnotationElement);
20242
20243 _this6 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotationElement).call(this, parameters, true));
20244 var _this6$data$file = _this6.data.file,
20245 filename = _this6$data$file.filename,
20246 content = _this6$data$file.content;
20247 _this6.filename = (0, _dom_utils.getFilenameFromUrl)(filename);
20248 _this6.content = content;
20249
20250 if (_this6.linkService.eventBus) {
20251 _this6.linkService.eventBus.dispatch('fileattachmentannotation', {
20252 source: _assertThisInitialized(_assertThisInitialized(_this6)),
20253 id: (0, _util.stringToPDFString)(filename),
20254 filename: filename,
20255 content: content
20256 });
20257 }
20258
20259 return _this6;
20260 }
20261
20262 _createClass(FileAttachmentAnnotationElement, [{
20263 key: "render",
20264 value: function render() {
20265 this.container.className = 'fileAttachmentAnnotation';
20266 var trigger = document.createElement('div');
20267 trigger.style.height = this.container.style.height;
20268 trigger.style.width = this.container.style.width;
20269 trigger.addEventListener('dblclick', this._download.bind(this));
20270
20271 if (!this.data.hasPopup && (this.data.title || this.data.contents)) {
20272 this._createPopup(this.container, trigger, this.data);
20273 }
20274
20275 this.container.appendChild(trigger);
20276 return this.container;
20277 }
20278 }, {
20279 key: "_download",
20280 value: function _download() {
20281 if (!this.downloadManager) {
20282 (0, _util.warn)('Download cannot be started due to unavailable download manager');
20283 return;
20284 }
20285
20286 this.downloadManager.downloadData(this.content, this.filename, '');
20287 }
20288 }]);
20289
20290 return FileAttachmentAnnotationElement;
20291}(AnnotationElement);
20292
20293var AnnotationLayer =
20294/*#__PURE__*/
20295function () {
20296 function AnnotationLayer() {
20297 _classCallCheck(this, AnnotationLayer);
20298 }
20299
20300 _createClass(AnnotationLayer, null, [{
20301 key: "render",
20302 value: function render(parameters) {
20303 for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {
20304 var data = parameters.annotations[i];
20305
20306 if (!data) {
20307 continue;
20308 }
20309
20310 var element = AnnotationElementFactory.create({
20311 data: data,
20312 layer: parameters.div,
20313 page: parameters.page,
20314 viewport: parameters.viewport,
20315 linkService: parameters.linkService,
20316 downloadManager: parameters.downloadManager,
20317 imageResourcesPath: parameters.imageResourcesPath || '',
20318 renderInteractiveForms: parameters.renderInteractiveForms || false,
20319 svgFactory: new _dom_utils.DOMSVGFactory()
20320 });
20321
20322 if (element.isRenderable) {
20323 parameters.div.appendChild(element.render());
20324 }
20325 }
20326 }
20327 }, {
20328 key: "update",
20329 value: function update(parameters) {
20330 for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {
20331 var data = parameters.annotations[i];
20332 var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]');
20333
20334 if (element) {
20335 element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')';
20336 }
20337 }
20338
20339 parameters.div.removeAttribute('hidden');
20340 }
20341 }]);
20342
20343 return AnnotationLayer;
20344}();
20345
20346exports.AnnotationLayer = AnnotationLayer;
20347
20348/***/ }),
20349/* 164 */
20350/***/ (function(module, exports, __w_pdfjs_require__) {
20351
20352"use strict";
20353
20354
20355Object.defineProperty(exports, "__esModule", {
20356 value: true
20357});
20358exports.SVGGraphics = void 0;
20359
20360var _util = __w_pdfjs_require__(1);
20361
20362var _dom_utils = __w_pdfjs_require__(151);
20363
20364var _is_node = _interopRequireDefault(__w_pdfjs_require__(4));
20365
20366function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20367
20368var SVGGraphics = function SVGGraphics() {
20369 throw new Error('Not implemented: SVGGraphics');
20370};
20371
20372exports.SVGGraphics = SVGGraphics;
20373{
20374 var SVG_DEFAULTS = {
20375 fontStyle: 'normal',
20376 fontWeight: 'normal',
20377 fillColor: '#000000'
20378 };
20379
20380 var convertImgDataToPng = function convertImgDataToPngClosure() {
20381 var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);
20382 var CHUNK_WRAPPER_SIZE = 12;
20383 var crcTable = new Int32Array(256);
20384
20385 for (var i = 0; i < 256; i++) {
20386 var c = i;
20387
20388 for (var h = 0; h < 8; h++) {
20389 if (c & 1) {
20390 c = 0xedB88320 ^ c >> 1 & 0x7fffffff;
20391 } else {
20392 c = c >> 1 & 0x7fffffff;
20393 }
20394 }
20395
20396 crcTable[i] = c;
20397 }
20398
20399 function crc32(data, start, end) {
20400 var crc = -1;
20401
20402 for (var i = start; i < end; i++) {
20403 var a = (crc ^ data[i]) & 0xff;
20404 var b = crcTable[a];
20405 crc = crc >>> 8 ^ b;
20406 }
20407
20408 return crc ^ -1;
20409 }
20410
20411 function writePngChunk(type, body, data, offset) {
20412 var p = offset;
20413 var len = body.length;
20414 data[p] = len >> 24 & 0xff;
20415 data[p + 1] = len >> 16 & 0xff;
20416 data[p + 2] = len >> 8 & 0xff;
20417 data[p + 3] = len & 0xff;
20418 p += 4;
20419 data[p] = type.charCodeAt(0) & 0xff;
20420 data[p + 1] = type.charCodeAt(1) & 0xff;
20421 data[p + 2] = type.charCodeAt(2) & 0xff;
20422 data[p + 3] = type.charCodeAt(3) & 0xff;
20423 p += 4;
20424 data.set(body, p);
20425 p += body.length;
20426 var crc = crc32(data, offset + 4, p);
20427 data[p] = crc >> 24 & 0xff;
20428 data[p + 1] = crc >> 16 & 0xff;
20429 data[p + 2] = crc >> 8 & 0xff;
20430 data[p + 3] = crc & 0xff;
20431 }
20432
20433 function adler32(data, start, end) {
20434 var a = 1;
20435 var b = 0;
20436
20437 for (var i = start; i < end; ++i) {
20438 a = (a + (data[i] & 0xff)) % 65521;
20439 b = (b + a) % 65521;
20440 }
20441
20442 return b << 16 | a;
20443 }
20444
20445 function deflateSync(literals) {
20446 if (!(0, _is_node.default)()) {
20447 return deflateSyncUncompressed(literals);
20448 }
20449
20450 try {
20451 var input;
20452
20453 if (parseInt(process.versions.node) >= 8) {
20454 input = literals;
20455 } else {
20456 input = new Buffer(literals);
20457 }
20458
20459 var output = require('zlib').deflateSync(input, {
20460 level: 9
20461 });
20462
20463 return output instanceof Uint8Array ? output : new Uint8Array(output);
20464 } catch (e) {
20465 (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e);
20466 }
20467
20468 return deflateSyncUncompressed(literals);
20469 }
20470
20471 function deflateSyncUncompressed(literals) {
20472 var len = literals.length;
20473 var maxBlockLength = 0xFFFF;
20474 var deflateBlocks = Math.ceil(len / maxBlockLength);
20475 var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);
20476 var pi = 0;
20477 idat[pi++] = 0x78;
20478 idat[pi++] = 0x9c;
20479 var pos = 0;
20480
20481 while (len > maxBlockLength) {
20482 idat[pi++] = 0x00;
20483 idat[pi++] = 0xff;
20484 idat[pi++] = 0xff;
20485 idat[pi++] = 0x00;
20486 idat[pi++] = 0x00;
20487 idat.set(literals.subarray(pos, pos + maxBlockLength), pi);
20488 pi += maxBlockLength;
20489 pos += maxBlockLength;
20490 len -= maxBlockLength;
20491 }
20492
20493 idat[pi++] = 0x01;
20494 idat[pi++] = len & 0xff;
20495 idat[pi++] = len >> 8 & 0xff;
20496 idat[pi++] = ~len & 0xffff & 0xff;
20497 idat[pi++] = (~len & 0xffff) >> 8 & 0xff;
20498 idat.set(literals.subarray(pos), pi);
20499 pi += literals.length - pos;
20500 var adler = adler32(literals, 0, literals.length);
20501 idat[pi++] = adler >> 24 & 0xff;
20502 idat[pi++] = adler >> 16 & 0xff;
20503 idat[pi++] = adler >> 8 & 0xff;
20504 idat[pi++] = adler & 0xff;
20505 return idat;
20506 }
20507
20508 function encode(imgData, kind, forceDataSchema, isMask) {
20509 var width = imgData.width;
20510 var height = imgData.height;
20511 var bitDepth, colorType, lineSize;
20512 var bytes = imgData.data;
20513
20514 switch (kind) {
20515 case _util.ImageKind.GRAYSCALE_1BPP:
20516 colorType = 0;
20517 bitDepth = 1;
20518 lineSize = width + 7 >> 3;
20519 break;
20520
20521 case _util.ImageKind.RGB_24BPP:
20522 colorType = 2;
20523 bitDepth = 8;
20524 lineSize = width * 3;
20525 break;
20526
20527 case _util.ImageKind.RGBA_32BPP:
20528 colorType = 6;
20529 bitDepth = 8;
20530 lineSize = width * 4;
20531 break;
20532
20533 default:
20534 throw new Error('invalid format');
20535 }
20536
20537 var literals = new Uint8Array((1 + lineSize) * height);
20538 var offsetLiterals = 0,
20539 offsetBytes = 0;
20540 var y, i;
20541
20542 for (y = 0; y < height; ++y) {
20543 literals[offsetLiterals++] = 0;
20544 literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);
20545 offsetBytes += lineSize;
20546 offsetLiterals += lineSize;
20547 }
20548
20549 if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {
20550 offsetLiterals = 0;
20551
20552 for (y = 0; y < height; y++) {
20553 offsetLiterals++;
20554
20555 for (i = 0; i < lineSize; i++) {
20556 literals[offsetLiterals++] ^= 0xFF;
20557 }
20558 }
20559 }
20560
20561 var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);
20562 var idat = deflateSync(literals);
20563 var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;
20564 var data = new Uint8Array(pngLength);
20565 var offset = 0;
20566 data.set(PNG_HEADER, offset);
20567 offset += PNG_HEADER.length;
20568 writePngChunk('IHDR', ihdr, data, offset);
20569 offset += CHUNK_WRAPPER_SIZE + ihdr.length;
20570 writePngChunk('IDATA', idat, data, offset);
20571 offset += CHUNK_WRAPPER_SIZE + idat.length;
20572 writePngChunk('IEND', new Uint8Array(0), data, offset);
20573 return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema);
20574 }
20575
20576 return function convertImgDataToPng(imgData, forceDataSchema, isMask) {
20577 var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;
20578 return encode(imgData, kind, forceDataSchema, isMask);
20579 };
20580 }();
20581
20582 var SVGExtraState = function SVGExtraStateClosure() {
20583 function SVGExtraState() {
20584 this.fontSizeScale = 1;
20585 this.fontWeight = SVG_DEFAULTS.fontWeight;
20586 this.fontSize = 0;
20587 this.textMatrix = _util.IDENTITY_MATRIX;
20588 this.fontMatrix = _util.FONT_IDENTITY_MATRIX;
20589 this.leading = 0;
20590 this.textRenderingMode = _util.TextRenderingMode.FILL;
20591 this.x = 0;
20592 this.y = 0;
20593 this.lineX = 0;
20594 this.lineY = 0;
20595 this.charSpacing = 0;
20596 this.wordSpacing = 0;
20597 this.textHScale = 1;
20598 this.textRise = 0;
20599 this.fillColor = SVG_DEFAULTS.fillColor;
20600 this.strokeColor = '#000000';
20601 this.fillAlpha = 1;
20602 this.strokeAlpha = 1;
20603 this.lineWidth = 1;
20604 this.lineJoin = '';
20605 this.lineCap = '';
20606 this.miterLimit = 0;
20607 this.dashArray = [];
20608 this.dashPhase = 0;
20609 this.dependencies = [];
20610 this.activeClipUrl = null;
20611 this.clipGroup = null;
20612 this.maskId = '';
20613 }
20614
20615 SVGExtraState.prototype = {
20616 clone: function SVGExtraState_clone() {
20617 return Object.create(this);
20618 },
20619 setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) {
20620 this.x = x;
20621 this.y = y;
20622 }
20623 };
20624 return SVGExtraState;
20625 }();
20626
20627 exports.SVGGraphics = SVGGraphics = function SVGGraphicsClosure() {
20628 function opListToTree(opList) {
20629 var opTree = [];
20630 var tmp = [];
20631 var opListLen = opList.length;
20632
20633 for (var x = 0; x < opListLen; x++) {
20634 if (opList[x].fn === 'save') {
20635 opTree.push({
20636 'fnId': 92,
20637 'fn': 'group',
20638 'items': []
20639 });
20640 tmp.push(opTree);
20641 opTree = opTree[opTree.length - 1].items;
20642 continue;
20643 }
20644
20645 if (opList[x].fn === 'restore') {
20646 opTree = tmp.pop();
20647 } else {
20648 opTree.push(opList[x]);
20649 }
20650 }
20651
20652 return opTree;
20653 }
20654
20655 function pf(value) {
20656 if (Number.isInteger(value)) {
20657 return value.toString();
20658 }
20659
20660 var s = value.toFixed(10);
20661 var i = s.length - 1;
20662
20663 if (s[i] !== '0') {
20664 return s;
20665 }
20666
20667 do {
20668 i--;
20669 } while (s[i] === '0');
20670
20671 return s.substring(0, s[i] === '.' ? i : i + 1);
20672 }
20673
20674 function pm(m) {
20675 if (m[4] === 0 && m[5] === 0) {
20676 if (m[1] === 0 && m[2] === 0) {
20677 if (m[0] === 1 && m[3] === 1) {
20678 return '';
20679 }
20680
20681 return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')';
20682 }
20683
20684 if (m[0] === m[3] && m[1] === -m[2]) {
20685 var a = Math.acos(m[0]) * 180 / Math.PI;
20686 return 'rotate(' + pf(a) + ')';
20687 }
20688 } else {
20689 if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {
20690 return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')';
20691 }
20692 }
20693
20694 return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')';
20695 }
20696
20697 function SVGGraphics(commonObjs, objs, forceDataSchema) {
20698 this.svgFactory = new _dom_utils.DOMSVGFactory();
20699 this.current = new SVGExtraState();
20700 this.transformMatrix = _util.IDENTITY_MATRIX;
20701 this.transformStack = [];
20702 this.extraStack = [];
20703 this.commonObjs = commonObjs;
20704 this.objs = objs;
20705 this.pendingClip = null;
20706 this.pendingEOFill = false;
20707 this.embedFonts = false;
20708 this.embeddedFonts = Object.create(null);
20709 this.cssStyle = null;
20710 this.forceDataSchema = !!forceDataSchema;
20711 }
20712
20713 var XML_NS = 'http://www.w3.org/XML/1998/namespace';
20714 var XLINK_NS = 'http://www.w3.org/1999/xlink';
20715 var LINE_CAP_STYLES = ['butt', 'round', 'square'];
20716 var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];
20717 var clipCount = 0;
20718 var maskCount = 0;
20719 SVGGraphics.prototype = {
20720 save: function SVGGraphics_save() {
20721 this.transformStack.push(this.transformMatrix);
20722 var old = this.current;
20723 this.extraStack.push(old);
20724 this.current = old.clone();
20725 },
20726 restore: function SVGGraphics_restore() {
20727 this.transformMatrix = this.transformStack.pop();
20728 this.current = this.extraStack.pop();
20729 this.pendingClip = null;
20730 this.tgrp = null;
20731 },
20732 group: function SVGGraphics_group(items) {
20733 this.save();
20734 this.executeOpTree(items);
20735 this.restore();
20736 },
20737 loadDependencies: function SVGGraphics_loadDependencies(operatorList) {
20738 var _this = this;
20739
20740 var fnArray = operatorList.fnArray;
20741 var fnArrayLen = fnArray.length;
20742 var argsArray = operatorList.argsArray;
20743
20744 for (var i = 0; i < fnArrayLen; i++) {
20745 if (_util.OPS.dependency === fnArray[i]) {
20746 var deps = argsArray[i];
20747
20748 for (var n = 0, nn = deps.length; n < nn; n++) {
20749 var obj = deps[n];
20750 var common = obj.substring(0, 2) === 'g_';
20751 var promise;
20752
20753 if (common) {
20754 promise = new Promise(function (resolve) {
20755 _this.commonObjs.get(obj, resolve);
20756 });
20757 } else {
20758 promise = new Promise(function (resolve) {
20759 _this.objs.get(obj, resolve);
20760 });
20761 }
20762
20763 this.current.dependencies.push(promise);
20764 }
20765 }
20766 }
20767
20768 return Promise.all(this.current.dependencies);
20769 },
20770 transform: function SVGGraphics_transform(a, b, c, d, e, f) {
20771 var transformMatrix = [a, b, c, d, e, f];
20772 this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);
20773 this.tgrp = null;
20774 },
20775 getSVG: function SVGGraphics_getSVG(operatorList, viewport) {
20776 var _this2 = this;
20777
20778 this.viewport = viewport;
20779
20780 var svgElement = this._initialize(viewport);
20781
20782 return this.loadDependencies(operatorList).then(function () {
20783 _this2.transformMatrix = _util.IDENTITY_MATRIX;
20784
20785 var opTree = _this2.convertOpList(operatorList);
20786
20787 _this2.executeOpTree(opTree);
20788
20789 return svgElement;
20790 });
20791 },
20792 convertOpList: function SVGGraphics_convertOpList(operatorList) {
20793 var argsArray = operatorList.argsArray;
20794 var fnArray = operatorList.fnArray;
20795 var fnArrayLen = fnArray.length;
20796 var REVOPS = [];
20797 var opList = [];
20798
20799 for (var op in _util.OPS) {
20800 REVOPS[_util.OPS[op]] = op;
20801 }
20802
20803 for (var x = 0; x < fnArrayLen; x++) {
20804 var fnId = fnArray[x];
20805 opList.push({
20806 'fnId': fnId,
20807 'fn': REVOPS[fnId],
20808 'args': argsArray[x]
20809 });
20810 }
20811
20812 return opListToTree(opList);
20813 },
20814 executeOpTree: function SVGGraphics_executeOpTree(opTree) {
20815 var opTreeLen = opTree.length;
20816
20817 for (var x = 0; x < opTreeLen; x++) {
20818 var fn = opTree[x].fn;
20819 var fnId = opTree[x].fnId;
20820 var args = opTree[x].args;
20821
20822 switch (fnId | 0) {
20823 case _util.OPS.beginText:
20824 this.beginText();
20825 break;
20826
20827 case _util.OPS.dependency:
20828 break;
20829
20830 case _util.OPS.setLeading:
20831 this.setLeading(args);
20832 break;
20833
20834 case _util.OPS.setLeadingMoveText:
20835 this.setLeadingMoveText(args[0], args[1]);
20836 break;
20837
20838 case _util.OPS.setFont:
20839 this.setFont(args);
20840 break;
20841
20842 case _util.OPS.showText:
20843 this.showText(args[0]);
20844 break;
20845
20846 case _util.OPS.showSpacedText:
20847 this.showText(args[0]);
20848 break;
20849
20850 case _util.OPS.endText:
20851 this.endText();
20852 break;
20853
20854 case _util.OPS.moveText:
20855 this.moveText(args[0], args[1]);
20856 break;
20857
20858 case _util.OPS.setCharSpacing:
20859 this.setCharSpacing(args[0]);
20860 break;
20861
20862 case _util.OPS.setWordSpacing:
20863 this.setWordSpacing(args[0]);
20864 break;
20865
20866 case _util.OPS.setHScale:
20867 this.setHScale(args[0]);
20868 break;
20869
20870 case _util.OPS.setTextMatrix:
20871 this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);
20872 break;
20873
20874 case _util.OPS.setTextRise:
20875 this.setTextRise(args[0]);
20876 break;
20877
20878 case _util.OPS.setTextRenderingMode:
20879 this.setTextRenderingMode(args[0]);
20880 break;
20881
20882 case _util.OPS.setLineWidth:
20883 this.setLineWidth(args[0]);
20884 break;
20885
20886 case _util.OPS.setLineJoin:
20887 this.setLineJoin(args[0]);
20888 break;
20889
20890 case _util.OPS.setLineCap:
20891 this.setLineCap(args[0]);
20892 break;
20893
20894 case _util.OPS.setMiterLimit:
20895 this.setMiterLimit(args[0]);
20896 break;
20897
20898 case _util.OPS.setFillRGBColor:
20899 this.setFillRGBColor(args[0], args[1], args[2]);
20900 break;
20901
20902 case _util.OPS.setStrokeRGBColor:
20903 this.setStrokeRGBColor(args[0], args[1], args[2]);
20904 break;
20905
20906 case _util.OPS.setDash:
20907 this.setDash(args[0], args[1]);
20908 break;
20909
20910 case _util.OPS.setGState:
20911 this.setGState(args[0]);
20912 break;
20913
20914 case _util.OPS.fill:
20915 this.fill();
20916 break;
20917
20918 case _util.OPS.eoFill:
20919 this.eoFill();
20920 break;
20921
20922 case _util.OPS.stroke:
20923 this.stroke();
20924 break;
20925
20926 case _util.OPS.fillStroke:
20927 this.fillStroke();
20928 break;
20929
20930 case _util.OPS.eoFillStroke:
20931 this.eoFillStroke();
20932 break;
20933
20934 case _util.OPS.clip:
20935 this.clip('nonzero');
20936 break;
20937
20938 case _util.OPS.eoClip:
20939 this.clip('evenodd');
20940 break;
20941
20942 case _util.OPS.paintSolidColorImageMask:
20943 this.paintSolidColorImageMask();
20944 break;
20945
20946 case _util.OPS.paintJpegXObject:
20947 this.paintJpegXObject(args[0], args[1], args[2]);
20948 break;
20949
20950 case _util.OPS.paintImageXObject:
20951 this.paintImageXObject(args[0]);
20952 break;
20953
20954 case _util.OPS.paintInlineImageXObject:
20955 this.paintInlineImageXObject(args[0]);
20956 break;
20957
20958 case _util.OPS.paintImageMaskXObject:
20959 this.paintImageMaskXObject(args[0]);
20960 break;
20961
20962 case _util.OPS.paintFormXObjectBegin:
20963 this.paintFormXObjectBegin(args[0], args[1]);
20964 break;
20965
20966 case _util.OPS.paintFormXObjectEnd:
20967 this.paintFormXObjectEnd();
20968 break;
20969
20970 case _util.OPS.closePath:
20971 this.closePath();
20972 break;
20973
20974 case _util.OPS.closeStroke:
20975 this.closeStroke();
20976 break;
20977
20978 case _util.OPS.closeFillStroke:
20979 this.closeFillStroke();
20980 break;
20981
20982 case _util.OPS.closeEOFillStroke:
20983 this.closeEOFillStroke();
20984 break;
20985
20986 case _util.OPS.nextLine:
20987 this.nextLine();
20988 break;
20989
20990 case _util.OPS.transform:
20991 this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);
20992 break;
20993
20994 case _util.OPS.constructPath:
20995 this.constructPath(args[0], args[1]);
20996 break;
20997
20998 case _util.OPS.endPath:
20999 this.endPath();
21000 break;
21001
21002 case 92:
21003 this.group(opTree[x].items);
21004 break;
21005
21006 default:
21007 (0, _util.warn)('Unimplemented operator ' + fn);
21008 break;
21009 }
21010 }
21011 },
21012 setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) {
21013 this.current.wordSpacing = wordSpacing;
21014 },
21015 setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) {
21016 this.current.charSpacing = charSpacing;
21017 },
21018 nextLine: function SVGGraphics_nextLine() {
21019 this.moveText(0, this.current.leading);
21020 },
21021 setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) {
21022 var current = this.current;
21023 this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f];
21024 this.current.x = this.current.lineX = 0;
21025 this.current.y = this.current.lineY = 0;
21026 current.xcoords = [];
21027 current.tspan = this.svgFactory.createElement('svg:tspan');
21028 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
21029 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');
21030 current.tspan.setAttributeNS(null, 'y', pf(-current.y));
21031 current.txtElement = this.svgFactory.createElement('svg:text');
21032 current.txtElement.appendChild(current.tspan);
21033 },
21034 beginText: function SVGGraphics_beginText() {
21035 this.current.x = this.current.lineX = 0;
21036 this.current.y = this.current.lineY = 0;
21037 this.current.textMatrix = _util.IDENTITY_MATRIX;
21038 this.current.lineMatrix = _util.IDENTITY_MATRIX;
21039 this.current.tspan = this.svgFactory.createElement('svg:tspan');
21040 this.current.txtElement = this.svgFactory.createElement('svg:text');
21041 this.current.txtgrp = this.svgFactory.createElement('svg:g');
21042 this.current.xcoords = [];
21043 },
21044 moveText: function SVGGraphics_moveText(x, y) {
21045 var current = this.current;
21046 this.current.x = this.current.lineX += x;
21047 this.current.y = this.current.lineY += y;
21048 current.xcoords = [];
21049 current.tspan = this.svgFactory.createElement('svg:tspan');
21050 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
21051 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');
21052 current.tspan.setAttributeNS(null, 'y', pf(-current.y));
21053 },
21054 showText: function SVGGraphics_showText(glyphs) {
21055 var current = this.current;
21056 var font = current.font;
21057 var fontSize = current.fontSize;
21058
21059 if (fontSize === 0) {
21060 return;
21061 }
21062
21063 var charSpacing = current.charSpacing;
21064 var wordSpacing = current.wordSpacing;
21065 var fontDirection = current.fontDirection;
21066 var textHScale = current.textHScale * fontDirection;
21067 var glyphsLength = glyphs.length;
21068 var vertical = font.vertical;
21069 var widthAdvanceScale = fontSize * current.fontMatrix[0];
21070 var x = 0,
21071 i;
21072
21073 for (i = 0; i < glyphsLength; ++i) {
21074 var glyph = glyphs[i];
21075
21076 if (glyph === null) {
21077 x += fontDirection * wordSpacing;
21078 continue;
21079 } else if ((0, _util.isNum)(glyph)) {
21080 x += -glyph * fontSize * 0.001;
21081 continue;
21082 }
21083
21084 var width = glyph.width;
21085 var character = glyph.fontChar;
21086 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
21087 var charWidth = width * widthAdvanceScale + spacing * fontDirection;
21088
21089 if (!glyph.isInFont && !font.missingFile) {
21090 x += charWidth;
21091 continue;
21092 }
21093
21094 current.xcoords.push(current.x + x * textHScale);
21095 current.tspan.textContent += character;
21096 x += charWidth;
21097 }
21098
21099 if (vertical) {
21100 current.y -= x * textHScale;
21101 } else {
21102 current.x += x * textHScale;
21103 }
21104
21105 current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' '));
21106 current.tspan.setAttributeNS(null, 'y', pf(-current.y));
21107 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
21108 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');
21109
21110 if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {
21111 current.tspan.setAttributeNS(null, 'font-style', current.fontStyle);
21112 }
21113
21114 if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {
21115 current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight);
21116 }
21117
21118 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
21119
21120 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
21121 if (current.fillColor !== SVG_DEFAULTS.fillColor) {
21122 current.tspan.setAttributeNS(null, 'fill', current.fillColor);
21123 }
21124
21125 if (current.fillAlpha < 1) {
21126 current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha);
21127 }
21128 } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {
21129 current.tspan.setAttributeNS(null, 'fill', 'transparent');
21130 } else {
21131 current.tspan.setAttributeNS(null, 'fill', 'none');
21132 }
21133
21134 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
21135 this._setStrokeAttributes(current.tspan);
21136 }
21137
21138 var textMatrix = current.textMatrix;
21139
21140 if (current.textRise !== 0) {
21141 textMatrix = textMatrix.slice();
21142 textMatrix[5] += current.textRise;
21143 }
21144
21145 current.txtElement.setAttributeNS(null, 'transform', pm(textMatrix) + ' scale(1, -1)');
21146 current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve');
21147 current.txtElement.appendChild(current.tspan);
21148 current.txtgrp.appendChild(current.txtElement);
21149
21150 this._ensureTransformGroup().appendChild(current.txtElement);
21151 },
21152 setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) {
21153 this.setLeading(-y);
21154 this.moveText(x, y);
21155 },
21156 addFontStyle: function SVGGraphics_addFontStyle(fontObj) {
21157 if (!this.cssStyle) {
21158 this.cssStyle = this.svgFactory.createElement('svg:style');
21159 this.cssStyle.setAttributeNS(null, 'type', 'text/css');
21160 this.defs.appendChild(this.cssStyle);
21161 }
21162
21163 var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);
21164 this.cssStyle.textContent += '@font-face { font-family: "' + fontObj.loadedName + '";' + ' src: url(' + url + '); }\n';
21165 },
21166 setFont: function SVGGraphics_setFont(details) {
21167 var current = this.current;
21168 var fontObj = this.commonObjs.get(details[0]);
21169 var size = details[1];
21170 this.current.font = fontObj;
21171
21172 if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) {
21173 this.addFontStyle(fontObj);
21174 this.embeddedFonts[fontObj.loadedName] = fontObj;
21175 }
21176
21177 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;
21178 var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal';
21179 var italic = fontObj.italic ? 'italic' : 'normal';
21180
21181 if (size < 0) {
21182 size = -size;
21183 current.fontDirection = -1;
21184 } else {
21185 current.fontDirection = 1;
21186 }
21187
21188 current.fontSize = size;
21189 current.fontFamily = fontObj.loadedName;
21190 current.fontWeight = bold;
21191 current.fontStyle = italic;
21192 current.tspan = this.svgFactory.createElement('svg:tspan');
21193 current.tspan.setAttributeNS(null, 'y', pf(-current.y));
21194 current.xcoords = [];
21195 },
21196 endText: function endText() {
21197 var current = this.current;
21198
21199 if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) {
21200 current.element = current.txtElement;
21201 this.clip('nonzero');
21202 this.endPath();
21203 }
21204 },
21205 setLineWidth: function SVGGraphics_setLineWidth(width) {
21206 if (width > 0) {
21207 this.current.lineWidth = width;
21208 }
21209 },
21210 setLineCap: function SVGGraphics_setLineCap(style) {
21211 this.current.lineCap = LINE_CAP_STYLES[style];
21212 },
21213 setLineJoin: function SVGGraphics_setLineJoin(style) {
21214 this.current.lineJoin = LINE_JOIN_STYLES[style];
21215 },
21216 setMiterLimit: function SVGGraphics_setMiterLimit(limit) {
21217 this.current.miterLimit = limit;
21218 },
21219 setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) {
21220 this.current.strokeAlpha = strokeAlpha;
21221 },
21222 setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) {
21223 var color = _util.Util.makeCssRgb(r, g, b);
21224
21225 this.current.strokeColor = color;
21226 },
21227 setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) {
21228 this.current.fillAlpha = fillAlpha;
21229 },
21230 setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) {
21231 var color = _util.Util.makeCssRgb(r, g, b);
21232
21233 this.current.fillColor = color;
21234 this.current.tspan = this.svgFactory.createElement('svg:tspan');
21235 this.current.xcoords = [];
21236 },
21237 setDash: function SVGGraphics_setDash(dashArray, dashPhase) {
21238 this.current.dashArray = dashArray;
21239 this.current.dashPhase = dashPhase;
21240 },
21241 constructPath: function SVGGraphics_constructPath(ops, args) {
21242 var current = this.current;
21243 var x = current.x,
21244 y = current.y;
21245 current.path = this.svgFactory.createElement('svg:path');
21246 var d = [];
21247 var opLength = ops.length;
21248
21249 for (var i = 0, j = 0; i < opLength; i++) {
21250 switch (ops[i] | 0) {
21251 case _util.OPS.rectangle:
21252 x = args[j++];
21253 y = args[j++];
21254 var width = args[j++];
21255 var height = args[j++];
21256 var xw = x + width;
21257 var yh = y + height;
21258 d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z');
21259 break;
21260
21261 case _util.OPS.moveTo:
21262 x = args[j++];
21263 y = args[j++];
21264 d.push('M', pf(x), pf(y));
21265 break;
21266
21267 case _util.OPS.lineTo:
21268 x = args[j++];
21269 y = args[j++];
21270 d.push('L', pf(x), pf(y));
21271 break;
21272
21273 case _util.OPS.curveTo:
21274 x = args[j + 4];
21275 y = args[j + 5];
21276 d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));
21277 j += 6;
21278 break;
21279
21280 case _util.OPS.curveTo2:
21281 x = args[j + 2];
21282 y = args[j + 3];
21283 d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));
21284 j += 4;
21285 break;
21286
21287 case _util.OPS.curveTo3:
21288 x = args[j + 2];
21289 y = args[j + 3];
21290 d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));
21291 j += 4;
21292 break;
21293
21294 case _util.OPS.closePath:
21295 d.push('Z');
21296 break;
21297 }
21298 }
21299
21300 current.path.setAttributeNS(null, 'd', d.join(' '));
21301 current.path.setAttributeNS(null, 'fill', 'none');
21302
21303 this._ensureTransformGroup().appendChild(current.path);
21304
21305 current.element = current.path;
21306 current.setCurrentPoint(x, y);
21307 },
21308 endPath: function SVGGraphics_endPath() {
21309 if (!this.pendingClip) {
21310 return;
21311 }
21312
21313 var current = this.current;
21314 var clipId = 'clippath' + clipCount;
21315 clipCount++;
21316 var clipPath = this.svgFactory.createElement('svg:clipPath');
21317 clipPath.setAttributeNS(null, 'id', clipId);
21318 clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix));
21319 var clipElement = current.element.cloneNode(true);
21320
21321 if (this.pendingClip === 'evenodd') {
21322 clipElement.setAttributeNS(null, 'clip-rule', 'evenodd');
21323 } else {
21324 clipElement.setAttributeNS(null, 'clip-rule', 'nonzero');
21325 }
21326
21327 this.pendingClip = null;
21328 clipPath.appendChild(clipElement);
21329 this.defs.appendChild(clipPath);
21330
21331 if (current.activeClipUrl) {
21332 current.clipGroup = null;
21333 this.extraStack.forEach(function (prev) {
21334 prev.clipGroup = null;
21335 });
21336 clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl);
21337 }
21338
21339 current.activeClipUrl = 'url(#' + clipId + ')';
21340 this.tgrp = null;
21341 },
21342 clip: function SVGGraphics_clip(type) {
21343 this.pendingClip = type;
21344 },
21345 closePath: function SVGGraphics_closePath() {
21346 var current = this.current;
21347
21348 if (current.path) {
21349 var d = current.path.getAttributeNS(null, 'd');
21350 d += 'Z';
21351 current.path.setAttributeNS(null, 'd', d);
21352 }
21353 },
21354 setLeading: function SVGGraphics_setLeading(leading) {
21355 this.current.leading = -leading;
21356 },
21357 setTextRise: function SVGGraphics_setTextRise(textRise) {
21358 this.current.textRise = textRise;
21359 },
21360 setTextRenderingMode: function setTextRenderingMode(textRenderingMode) {
21361 this.current.textRenderingMode = textRenderingMode;
21362 },
21363 setHScale: function SVGGraphics_setHScale(scale) {
21364 this.current.textHScale = scale / 100;
21365 },
21366 setGState: function SVGGraphics_setGState(states) {
21367 for (var i = 0, ii = states.length; i < ii; i++) {
21368 var state = states[i];
21369 var key = state[0];
21370 var value = state[1];
21371
21372 switch (key) {
21373 case 'LW':
21374 this.setLineWidth(value);
21375 break;
21376
21377 case 'LC':
21378 this.setLineCap(value);
21379 break;
21380
21381 case 'LJ':
21382 this.setLineJoin(value);
21383 break;
21384
21385 case 'ML':
21386 this.setMiterLimit(value);
21387 break;
21388
21389 case 'D':
21390 this.setDash(value[0], value[1]);
21391 break;
21392
21393 case 'Font':
21394 this.setFont(value);
21395 break;
21396
21397 case 'CA':
21398 this.setStrokeAlpha(value);
21399 break;
21400
21401 case 'ca':
21402 this.setFillAlpha(value);
21403 break;
21404
21405 default:
21406 (0, _util.warn)('Unimplemented graphic state ' + key);
21407 break;
21408 }
21409 }
21410 },
21411 fill: function SVGGraphics_fill() {
21412 var current = this.current;
21413
21414 if (current.element) {
21415 current.element.setAttributeNS(null, 'fill', current.fillColor);
21416 current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha);
21417 this.endPath();
21418 }
21419 },
21420 stroke: function SVGGraphics_stroke() {
21421 var current = this.current;
21422
21423 if (current.element) {
21424 this._setStrokeAttributes(current.element);
21425
21426 current.element.setAttributeNS(null, 'fill', 'none');
21427 this.endPath();
21428 }
21429 },
21430 _setStrokeAttributes: function _setStrokeAttributes(element) {
21431 var current = this.current;
21432 element.setAttributeNS(null, 'stroke', current.strokeColor);
21433 element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha);
21434 element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit));
21435 element.setAttributeNS(null, 'stroke-linecap', current.lineCap);
21436 element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin);
21437 element.setAttributeNS(null, 'stroke-width', pf(current.lineWidth) + 'px');
21438 element.setAttributeNS(null, 'stroke-dasharray', current.dashArray.map(pf).join(' '));
21439 element.setAttributeNS(null, 'stroke-dashoffset', pf(current.dashPhase) + 'px');
21440 },
21441 eoFill: function SVGGraphics_eoFill() {
21442 if (this.current.element) {
21443 this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');
21444 }
21445
21446 this.fill();
21447 },
21448 fillStroke: function SVGGraphics_fillStroke() {
21449 this.stroke();
21450 this.fill();
21451 },
21452 eoFillStroke: function SVGGraphics_eoFillStroke() {
21453 if (this.current.element) {
21454 this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');
21455 }
21456
21457 this.fillStroke();
21458 },
21459 closeStroke: function SVGGraphics_closeStroke() {
21460 this.closePath();
21461 this.stroke();
21462 },
21463 closeFillStroke: function SVGGraphics_closeFillStroke() {
21464 this.closePath();
21465 this.fillStroke();
21466 },
21467 closeEOFillStroke: function closeEOFillStroke() {
21468 this.closePath();
21469 this.eoFillStroke();
21470 },
21471 paintSolidColorImageMask: function SVGGraphics_paintSolidColorImageMask() {
21472 var current = this.current;
21473 var rect = this.svgFactory.createElement('svg:rect');
21474 rect.setAttributeNS(null, 'x', '0');
21475 rect.setAttributeNS(null, 'y', '0');
21476 rect.setAttributeNS(null, 'width', '1px');
21477 rect.setAttributeNS(null, 'height', '1px');
21478 rect.setAttributeNS(null, 'fill', current.fillColor);
21479
21480 this._ensureTransformGroup().appendChild(rect);
21481 },
21482 paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) {
21483 var imgObj = this.objs.get(objId);
21484 var imgEl = this.svgFactory.createElement('svg:image');
21485 imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src);
21486 imgEl.setAttributeNS(null, 'width', pf(w));
21487 imgEl.setAttributeNS(null, 'height', pf(h));
21488 imgEl.setAttributeNS(null, 'x', '0');
21489 imgEl.setAttributeNS(null, 'y', pf(-h));
21490 imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')');
21491
21492 this._ensureTransformGroup().appendChild(imgEl);
21493 },
21494 paintImageXObject: function SVGGraphics_paintImageXObject(objId) {
21495 var imgData = this.objs.get(objId);
21496
21497 if (!imgData) {
21498 (0, _util.warn)('Dependent image isn\'t ready yet');
21499 return;
21500 }
21501
21502 this.paintInlineImageXObject(imgData);
21503 },
21504 paintInlineImageXObject: function SVGGraphics_paintInlineImageXObject(imgData, mask) {
21505 var width = imgData.width;
21506 var height = imgData.height;
21507 var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);
21508 var cliprect = this.svgFactory.createElement('svg:rect');
21509 cliprect.setAttributeNS(null, 'x', '0');
21510 cliprect.setAttributeNS(null, 'y', '0');
21511 cliprect.setAttributeNS(null, 'width', pf(width));
21512 cliprect.setAttributeNS(null, 'height', pf(height));
21513 this.current.element = cliprect;
21514 this.clip('nonzero');
21515 var imgEl = this.svgFactory.createElement('svg:image');
21516 imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc);
21517 imgEl.setAttributeNS(null, 'x', '0');
21518 imgEl.setAttributeNS(null, 'y', pf(-height));
21519 imgEl.setAttributeNS(null, 'width', pf(width) + 'px');
21520 imgEl.setAttributeNS(null, 'height', pf(height) + 'px');
21521 imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / width) + ' ' + pf(-1 / height) + ')');
21522
21523 if (mask) {
21524 mask.appendChild(imgEl);
21525 } else {
21526 this._ensureTransformGroup().appendChild(imgEl);
21527 }
21528 },
21529 paintImageMaskXObject: function SVGGraphics_paintImageMaskXObject(imgData) {
21530 var current = this.current;
21531 var width = imgData.width;
21532 var height = imgData.height;
21533 var fillColor = current.fillColor;
21534 current.maskId = 'mask' + maskCount++;
21535 var mask = this.svgFactory.createElement('svg:mask');
21536 mask.setAttributeNS(null, 'id', current.maskId);
21537 var rect = this.svgFactory.createElement('svg:rect');
21538 rect.setAttributeNS(null, 'x', '0');
21539 rect.setAttributeNS(null, 'y', '0');
21540 rect.setAttributeNS(null, 'width', pf(width));
21541 rect.setAttributeNS(null, 'height', pf(height));
21542 rect.setAttributeNS(null, 'fill', fillColor);
21543 rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId + ')');
21544 this.defs.appendChild(mask);
21545
21546 this._ensureTransformGroup().appendChild(rect);
21547
21548 this.paintInlineImageXObject(imgData, mask);
21549 },
21550 paintFormXObjectBegin: function SVGGraphics_paintFormXObjectBegin(matrix, bbox) {
21551 if (Array.isArray(matrix) && matrix.length === 6) {
21552 this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
21553 }
21554
21555 if (bbox) {
21556 var width = bbox[2] - bbox[0];
21557 var height = bbox[3] - bbox[1];
21558 var cliprect = this.svgFactory.createElement('svg:rect');
21559 cliprect.setAttributeNS(null, 'x', bbox[0]);
21560 cliprect.setAttributeNS(null, 'y', bbox[1]);
21561 cliprect.setAttributeNS(null, 'width', pf(width));
21562 cliprect.setAttributeNS(null, 'height', pf(height));
21563 this.current.element = cliprect;
21564 this.clip('nonzero');
21565 this.endPath();
21566 }
21567 },
21568 paintFormXObjectEnd: function SVGGraphics_paintFormXObjectEnd() {},
21569 _initialize: function _initialize(viewport) {
21570 var svg = this.svgFactory.create(viewport.width, viewport.height);
21571 var definitions = this.svgFactory.createElement('svg:defs');
21572 svg.appendChild(definitions);
21573 this.defs = definitions;
21574 var rootGroup = this.svgFactory.createElement('svg:g');
21575 rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform));
21576 svg.appendChild(rootGroup);
21577 this.svg = rootGroup;
21578 return svg;
21579 },
21580 _ensureClipGroup: function SVGGraphics_ensureClipGroup() {
21581 if (!this.current.clipGroup) {
21582 var clipGroup = this.svgFactory.createElement('svg:g');
21583 clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl);
21584 this.svg.appendChild(clipGroup);
21585 this.current.clipGroup = clipGroup;
21586 }
21587
21588 return this.current.clipGroup;
21589 },
21590 _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() {
21591 if (!this.tgrp) {
21592 this.tgrp = this.svgFactory.createElement('svg:g');
21593 this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));
21594
21595 if (this.current.activeClipUrl) {
21596 this._ensureClipGroup().appendChild(this.tgrp);
21597 } else {
21598 this.svg.appendChild(this.tgrp);
21599 }
21600 }
21601
21602 return this.tgrp;
21603 }
21604 };
21605 return SVGGraphics;
21606 }();
21607}
21608
21609/***/ }),
21610/* 165 */
21611/***/ (function(module, exports, __w_pdfjs_require__) {
21612
21613"use strict";
21614
21615
21616Object.defineProperty(exports, "__esModule", {
21617 value: true
21618});
21619exports.PDFNodeStream = void 0;
21620
21621var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
21622
21623var _util = __w_pdfjs_require__(1);
21624
21625var _network_utils = __w_pdfjs_require__(166);
21626
21627function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21628
21629function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
21630
21631function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
21632
21633function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
21634
21635function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
21636
21637function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
21638
21639function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
21640
21641function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
21642
21643function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
21644
21645function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
21646
21647function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
21648
21649function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
21650
21651var fs = require('fs');
21652
21653var http = require('http');
21654
21655var https = require('https');
21656
21657var url = require('url');
21658
21659var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//;
21660
21661function parseUrl(sourceUrl) {
21662 var parsedUrl = url.parse(sourceUrl);
21663
21664 if (parsedUrl.protocol === 'file:' || parsedUrl.host) {
21665 return parsedUrl;
21666 }
21667
21668 if (/^[a-z]:[/\\]/i.test(sourceUrl)) {
21669 return url.parse("file:///".concat(sourceUrl));
21670 }
21671
21672 if (!parsedUrl.host) {
21673 parsedUrl.protocol = 'file:';
21674 }
21675
21676 return parsedUrl;
21677}
21678
21679var PDFNodeStream =
21680/*#__PURE__*/
21681function () {
21682 function PDFNodeStream(source) {
21683 _classCallCheck(this, PDFNodeStream);
21684
21685 this.source = source;
21686 this.url = parseUrl(source.url);
21687 this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:';
21688 this.isFsUrl = this.url.protocol === 'file:';
21689 this.httpHeaders = this.isHttp && source.httpHeaders || {};
21690 this._fullRequest = null;
21691 this._rangeRequestReaders = [];
21692 }
21693
21694 _createClass(PDFNodeStream, [{
21695 key: "getFullReader",
21696 value: function getFullReader() {
21697 (0, _util.assert)(!this._fullRequest);
21698 this._fullRequest = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);
21699 return this._fullRequest;
21700 }
21701 }, {
21702 key: "getRangeReader",
21703 value: function getRangeReader(start, end) {
21704 var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);
21705
21706 this._rangeRequestReaders.push(rangeReader);
21707
21708 return rangeReader;
21709 }
21710 }, {
21711 key: "cancelAllRequests",
21712 value: function cancelAllRequests(reason) {
21713 if (this._fullRequest) {
21714 this._fullRequest.cancel(reason);
21715 }
21716
21717 var readers = this._rangeRequestReaders.slice(0);
21718
21719 readers.forEach(function (reader) {
21720 reader.cancel(reason);
21721 });
21722 }
21723 }]);
21724
21725 return PDFNodeStream;
21726}();
21727
21728exports.PDFNodeStream = PDFNodeStream;
21729
21730var BaseFullReader =
21731/*#__PURE__*/
21732function () {
21733 function BaseFullReader(stream) {
21734 _classCallCheck(this, BaseFullReader);
21735
21736 this._url = stream.url;
21737 this._done = false;
21738 this._storedError = null;
21739 this.onProgress = null;
21740 var source = stream.source;
21741 this._contentLength = source.length;
21742 this._loaded = 0;
21743 this._filename = null;
21744 this._disableRange = source.disableRange || false;
21745 this._rangeChunkSize = source.rangeChunkSize;
21746
21747 if (!this._rangeChunkSize && !this._disableRange) {
21748 this._disableRange = true;
21749 }
21750
21751 this._isStreamingSupported = !source.disableStream;
21752 this._isRangeSupported = !source.disableRange;
21753 this._readableStream = null;
21754 this._readCapability = (0, _util.createPromiseCapability)();
21755 this._headersCapability = (0, _util.createPromiseCapability)();
21756 }
21757
21758 _createClass(BaseFullReader, [{
21759 key: "read",
21760 value: function () {
21761 var _read = _asyncToGenerator(
21762 /*#__PURE__*/
21763 _regenerator.default.mark(function _callee() {
21764 var chunk, buffer;
21765 return _regenerator.default.wrap(function _callee$(_context) {
21766 while (1) {
21767 switch (_context.prev = _context.next) {
21768 case 0:
21769 _context.next = 2;
21770 return this._readCapability.promise;
21771
21772 case 2:
21773 if (!this._done) {
21774 _context.next = 4;
21775 break;
21776 }
21777
21778 return _context.abrupt("return", {
21779 value: undefined,
21780 done: true
21781 });
21782
21783 case 4:
21784 if (!this._storedError) {
21785 _context.next = 6;
21786 break;
21787 }
21788
21789 throw this._storedError;
21790
21791 case 6:
21792 chunk = this._readableStream.read();
21793
21794 if (!(chunk === null)) {
21795 _context.next = 10;
21796 break;
21797 }
21798
21799 this._readCapability = (0, _util.createPromiseCapability)();
21800 return _context.abrupt("return", this.read());
21801
21802 case 10:
21803 this._loaded += chunk.length;
21804
21805 if (this.onProgress) {
21806 this.onProgress({
21807 loaded: this._loaded,
21808 total: this._contentLength
21809 });
21810 }
21811
21812 buffer = new Uint8Array(chunk).buffer;
21813 return _context.abrupt("return", {
21814 value: buffer,
21815 done: false
21816 });
21817
21818 case 14:
21819 case "end":
21820 return _context.stop();
21821 }
21822 }
21823 }, _callee, this);
21824 }));
21825
21826 function read() {
21827 return _read.apply(this, arguments);
21828 }
21829
21830 return read;
21831 }()
21832 }, {
21833 key: "cancel",
21834 value: function cancel(reason) {
21835 if (!this._readableStream) {
21836 this._error(reason);
21837
21838 return;
21839 }
21840
21841 this._readableStream.destroy(reason);
21842 }
21843 }, {
21844 key: "_error",
21845 value: function _error(reason) {
21846 this._storedError = reason;
21847
21848 this._readCapability.resolve();
21849 }
21850 }, {
21851 key: "_setReadableStream",
21852 value: function _setReadableStream(readableStream) {
21853 var _this = this;
21854
21855 this._readableStream = readableStream;
21856 readableStream.on('readable', function () {
21857 _this._readCapability.resolve();
21858 });
21859 readableStream.on('end', function () {
21860 readableStream.destroy();
21861 _this._done = true;
21862
21863 _this._readCapability.resolve();
21864 });
21865 readableStream.on('error', function (reason) {
21866 _this._error(reason);
21867 });
21868
21869 if (!this._isStreamingSupported && this._isRangeSupported) {
21870 this._error(new _util.AbortException('streaming is disabled'));
21871 }
21872
21873 if (this._storedError) {
21874 this._readableStream.destroy(this._storedError);
21875 }
21876 }
21877 }, {
21878 key: "headersReady",
21879 get: function get() {
21880 return this._headersCapability.promise;
21881 }
21882 }, {
21883 key: "filename",
21884 get: function get() {
21885 return this._filename;
21886 }
21887 }, {
21888 key: "contentLength",
21889 get: function get() {
21890 return this._contentLength;
21891 }
21892 }, {
21893 key: "isRangeSupported",
21894 get: function get() {
21895 return this._isRangeSupported;
21896 }
21897 }, {
21898 key: "isStreamingSupported",
21899 get: function get() {
21900 return this._isStreamingSupported;
21901 }
21902 }]);
21903
21904 return BaseFullReader;
21905}();
21906
21907var BaseRangeReader =
21908/*#__PURE__*/
21909function () {
21910 function BaseRangeReader(stream) {
21911 _classCallCheck(this, BaseRangeReader);
21912
21913 this._url = stream.url;
21914 this._done = false;
21915 this._storedError = null;
21916 this.onProgress = null;
21917 this._loaded = 0;
21918 this._readableStream = null;
21919 this._readCapability = (0, _util.createPromiseCapability)();
21920 var source = stream.source;
21921 this._isStreamingSupported = !source.disableStream;
21922 }
21923
21924 _createClass(BaseRangeReader, [{
21925 key: "read",
21926 value: function () {
21927 var _read2 = _asyncToGenerator(
21928 /*#__PURE__*/
21929 _regenerator.default.mark(function _callee2() {
21930 var chunk, buffer;
21931 return _regenerator.default.wrap(function _callee2$(_context2) {
21932 while (1) {
21933 switch (_context2.prev = _context2.next) {
21934 case 0:
21935 _context2.next = 2;
21936 return this._readCapability.promise;
21937
21938 case 2:
21939 if (!this._done) {
21940 _context2.next = 4;
21941 break;
21942 }
21943
21944 return _context2.abrupt("return", {
21945 value: undefined,
21946 done: true
21947 });
21948
21949 case 4:
21950 if (!this._storedError) {
21951 _context2.next = 6;
21952 break;
21953 }
21954
21955 throw this._storedError;
21956
21957 case 6:
21958 chunk = this._readableStream.read();
21959
21960 if (!(chunk === null)) {
21961 _context2.next = 10;
21962 break;
21963 }
21964
21965 this._readCapability = (0, _util.createPromiseCapability)();
21966 return _context2.abrupt("return", this.read());
21967
21968 case 10:
21969 this._loaded += chunk.length;
21970
21971 if (this.onProgress) {
21972 this.onProgress({
21973 loaded: this._loaded
21974 });
21975 }
21976
21977 buffer = new Uint8Array(chunk).buffer;
21978 return _context2.abrupt("return", {
21979 value: buffer,
21980 done: false
21981 });
21982
21983 case 14:
21984 case "end":
21985 return _context2.stop();
21986 }
21987 }
21988 }, _callee2, this);
21989 }));
21990
21991 function read() {
21992 return _read2.apply(this, arguments);
21993 }
21994
21995 return read;
21996 }()
21997 }, {
21998 key: "cancel",
21999 value: function cancel(reason) {
22000 if (!this._readableStream) {
22001 this._error(reason);
22002
22003 return;
22004 }
22005
22006 this._readableStream.destroy(reason);
22007 }
22008 }, {
22009 key: "_error",
22010 value: function _error(reason) {
22011 this._storedError = reason;
22012
22013 this._readCapability.resolve();
22014 }
22015 }, {
22016 key: "_setReadableStream",
22017 value: function _setReadableStream(readableStream) {
22018 var _this2 = this;
22019
22020 this._readableStream = readableStream;
22021 readableStream.on('readable', function () {
22022 _this2._readCapability.resolve();
22023 });
22024 readableStream.on('end', function () {
22025 readableStream.destroy();
22026 _this2._done = true;
22027
22028 _this2._readCapability.resolve();
22029 });
22030 readableStream.on('error', function (reason) {
22031 _this2._error(reason);
22032 });
22033
22034 if (this._storedError) {
22035 this._readableStream.destroy(this._storedError);
22036 }
22037 }
22038 }, {
22039 key: "isStreamingSupported",
22040 get: function get() {
22041 return this._isStreamingSupported;
22042 }
22043 }]);
22044
22045 return BaseRangeReader;
22046}();
22047
22048function createRequestOptions(url, headers) {
22049 return {
22050 protocol: url.protocol,
22051 auth: url.auth,
22052 host: url.hostname,
22053 port: url.port,
22054 path: url.path,
22055 method: 'GET',
22056 headers: headers
22057 };
22058}
22059
22060var PDFNodeStreamFullReader =
22061/*#__PURE__*/
22062function (_BaseFullReader) {
22063 _inherits(PDFNodeStreamFullReader, _BaseFullReader);
22064
22065 function PDFNodeStreamFullReader(stream) {
22066 var _this3;
22067
22068 _classCallCheck(this, PDFNodeStreamFullReader);
22069
22070 _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream));
22071
22072 var handleResponse = function handleResponse(response) {
22073 if (response.statusCode === 404) {
22074 var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\"."));
22075 _this3._storedError = error;
22076
22077 _this3._headersCapability.reject(error);
22078
22079 return;
22080 }
22081
22082 _this3._headersCapability.resolve();
22083
22084 _this3._setReadableStream(response);
22085
22086 var getResponseHeader = function getResponseHeader(name) {
22087 return _this3._readableStream.headers[name.toLowerCase()];
22088 };
22089
22090 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
22091 getResponseHeader: getResponseHeader,
22092 isHttp: stream.isHttp,
22093 rangeChunkSize: _this3._rangeChunkSize,
22094 disableRange: _this3._disableRange
22095 }),
22096 allowRangeRequests = _validateRangeRequest.allowRangeRequests,
22097 suggestedLength = _validateRangeRequest.suggestedLength;
22098
22099 _this3._isRangeSupported = allowRangeRequests;
22100 _this3._contentLength = suggestedLength || _this3._contentLength;
22101 _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
22102 };
22103
22104 _this3._request = null;
22105
22106 if (_this3._url.protocol === 'http:') {
22107 _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);
22108 } else {
22109 _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);
22110 }
22111
22112 _this3._request.on('error', function (reason) {
22113 _this3._storedError = reason;
22114
22115 _this3._headersCapability.reject(reason);
22116 });
22117
22118 _this3._request.end();
22119
22120 return _this3;
22121 }
22122
22123 return PDFNodeStreamFullReader;
22124}(BaseFullReader);
22125
22126var PDFNodeStreamRangeReader =
22127/*#__PURE__*/
22128function (_BaseRangeReader) {
22129 _inherits(PDFNodeStreamRangeReader, _BaseRangeReader);
22130
22131 function PDFNodeStreamRangeReader(stream, start, end) {
22132 var _this4;
22133
22134 _classCallCheck(this, PDFNodeStreamRangeReader);
22135
22136 _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream));
22137 _this4._httpHeaders = {};
22138
22139 for (var property in stream.httpHeaders) {
22140 var value = stream.httpHeaders[property];
22141
22142 if (typeof value === 'undefined') {
22143 continue;
22144 }
22145
22146 _this4._httpHeaders[property] = value;
22147 }
22148
22149 _this4._httpHeaders['Range'] = "bytes=".concat(start, "-").concat(end - 1);
22150
22151 var handleResponse = function handleResponse(response) {
22152 if (response.statusCode === 404) {
22153 var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\"."));
22154 _this4._storedError = error;
22155 return;
22156 }
22157
22158 _this4._setReadableStream(response);
22159 };
22160
22161 _this4._request = null;
22162
22163 if (_this4._url.protocol === 'http:') {
22164 _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);
22165 } else {
22166 _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);
22167 }
22168
22169 _this4._request.on('error', function (reason) {
22170 _this4._storedError = reason;
22171 });
22172
22173 _this4._request.end();
22174
22175 return _this4;
22176 }
22177
22178 return PDFNodeStreamRangeReader;
22179}(BaseRangeReader);
22180
22181var PDFNodeStreamFsFullReader =
22182/*#__PURE__*/
22183function (_BaseFullReader2) {
22184 _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2);
22185
22186 function PDFNodeStreamFsFullReader(stream) {
22187 var _this5;
22188
22189 _classCallCheck(this, PDFNodeStreamFsFullReader);
22190
22191 _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream));
22192 var path = decodeURIComponent(_this5._url.path);
22193
22194 if (fileUriRegex.test(_this5._url.href)) {
22195 path = path.replace(/^\//, '');
22196 }
22197
22198 fs.lstat(path, function (error, stat) {
22199 if (error) {
22200 if (error.code === 'ENOENT') {
22201 error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\"."));
22202 }
22203
22204 _this5._storedError = error;
22205
22206 _this5._headersCapability.reject(error);
22207
22208 return;
22209 }
22210
22211 _this5._contentLength = stat.size;
22212
22213 _this5._setReadableStream(fs.createReadStream(path));
22214
22215 _this5._headersCapability.resolve();
22216 });
22217 return _this5;
22218 }
22219
22220 return PDFNodeStreamFsFullReader;
22221}(BaseFullReader);
22222
22223var PDFNodeStreamFsRangeReader =
22224/*#__PURE__*/
22225function (_BaseRangeReader2) {
22226 _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2);
22227
22228 function PDFNodeStreamFsRangeReader(stream, start, end) {
22229 var _this6;
22230
22231 _classCallCheck(this, PDFNodeStreamFsRangeReader);
22232
22233 _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream));
22234 var path = decodeURIComponent(_this6._url.path);
22235
22236 if (fileUriRegex.test(_this6._url.href)) {
22237 path = path.replace(/^\//, '');
22238 }
22239
22240 _this6._setReadableStream(fs.createReadStream(path, {
22241 start: start,
22242 end: end - 1
22243 }));
22244
22245 return _this6;
22246 }
22247
22248 return PDFNodeStreamFsRangeReader;
22249}(BaseRangeReader);
22250
22251/***/ }),
22252/* 166 */
22253/***/ (function(module, exports, __w_pdfjs_require__) {
22254
22255"use strict";
22256
22257
22258Object.defineProperty(exports, "__esModule", {
22259 value: true
22260});
22261exports.createResponseStatusError = createResponseStatusError;
22262exports.extractFilenameFromHeader = extractFilenameFromHeader;
22263exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;
22264exports.validateResponseStatus = validateResponseStatus;
22265
22266var _util = __w_pdfjs_require__(1);
22267
22268var _content_disposition = __w_pdfjs_require__(167);
22269
22270function validateRangeRequestCapabilities(_ref) {
22271 var getResponseHeader = _ref.getResponseHeader,
22272 isHttp = _ref.isHttp,
22273 rangeChunkSize = _ref.rangeChunkSize,
22274 disableRange = _ref.disableRange;
22275 (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero');
22276 var returnValues = {
22277 allowRangeRequests: false,
22278 suggestedLength: undefined
22279 };
22280 var length = parseInt(getResponseHeader('Content-Length'), 10);
22281
22282 if (!Number.isInteger(length)) {
22283 return returnValues;
22284 }
22285
22286 returnValues.suggestedLength = length;
22287
22288 if (length <= 2 * rangeChunkSize) {
22289 return returnValues;
22290 }
22291
22292 if (disableRange || !isHttp) {
22293 return returnValues;
22294 }
22295
22296 if (getResponseHeader('Accept-Ranges') !== 'bytes') {
22297 return returnValues;
22298 }
22299
22300 var contentEncoding = getResponseHeader('Content-Encoding') || 'identity';
22301
22302 if (contentEncoding !== 'identity') {
22303 return returnValues;
22304 }
22305
22306 returnValues.allowRangeRequests = true;
22307 return returnValues;
22308}
22309
22310function extractFilenameFromHeader(getResponseHeader) {
22311 var contentDisposition = getResponseHeader('Content-Disposition');
22312
22313 if (contentDisposition) {
22314 var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);
22315
22316 if (/\.pdf$/i.test(filename)) {
22317 return filename;
22318 }
22319 }
22320
22321 return null;
22322}
22323
22324function createResponseStatusError(status, url) {
22325 if (status === 404 || status === 0 && /^file:/.test(url)) {
22326 return new _util.MissingPDFException('Missing PDF "' + url + '".');
22327 }
22328
22329 return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF "' + url + '".', status);
22330}
22331
22332function validateResponseStatus(status) {
22333 return status === 200 || status === 206;
22334}
22335
22336/***/ }),
22337/* 167 */
22338/***/ (function(module, exports, __w_pdfjs_require__) {
22339
22340"use strict";
22341
22342
22343Object.defineProperty(exports, "__esModule", {
22344 value: true
22345});
22346exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;
22347
22348function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
22349
22350function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
22351
22352function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
22353
22354function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22355
22356function getFilenameFromContentDispositionHeader(contentDisposition) {
22357 var needsEncodingFixup = true;
22358 var tmp = toParamRegExp('filename\\*', 'i').exec(contentDisposition);
22359
22360 if (tmp) {
22361 tmp = tmp[1];
22362 var filename = rfc2616unquote(tmp);
22363 filename = unescape(filename);
22364 filename = rfc5987decode(filename);
22365 filename = rfc2047decode(filename);
22366 return fixupEncoding(filename);
22367 }
22368
22369 tmp = rfc2231getparam(contentDisposition);
22370
22371 if (tmp) {
22372 var _filename = rfc2047decode(tmp);
22373
22374 return fixupEncoding(_filename);
22375 }
22376
22377 tmp = toParamRegExp('filename', 'i').exec(contentDisposition);
22378
22379 if (tmp) {
22380 tmp = tmp[1];
22381
22382 var _filename2 = rfc2616unquote(tmp);
22383
22384 _filename2 = rfc2047decode(_filename2);
22385 return fixupEncoding(_filename2);
22386 }
22387
22388 function toParamRegExp(attributePattern, flags) {
22389 return new RegExp('(?:^|;)\\s*' + attributePattern + '\\s*=\\s*' + '(' + '[^";\\s][^;\\s]*' + '|' + '"(?:[^"\\\\]|\\\\"?)+"?' + ')', flags);
22390 }
22391
22392 function textdecode(encoding, value) {
22393 if (encoding) {
22394 if (!/^[\x00-\xFF]+$/.test(value)) {
22395 return value;
22396 }
22397
22398 try {
22399 var decoder = new TextDecoder(encoding, {
22400 fatal: true
22401 });
22402 var bytes = Array.from(value, function (ch) {
22403 return ch.charCodeAt(0) & 0xFF;
22404 });
22405 value = decoder.decode(new Uint8Array(bytes));
22406 needsEncodingFixup = false;
22407 } catch (e) {
22408 if (/^utf-?8$/i.test(encoding)) {
22409 try {
22410 value = decodeURIComponent(escape(value));
22411 needsEncodingFixup = false;
22412 } catch (err) {}
22413 }
22414 }
22415 }
22416
22417 return value;
22418 }
22419
22420 function fixupEncoding(value) {
22421 if (needsEncodingFixup && /[\x80-\xff]/.test(value)) {
22422 value = textdecode('utf-8', value);
22423
22424 if (needsEncodingFixup) {
22425 value = textdecode('iso-8859-1', value);
22426 }
22427 }
22428
22429 return value;
22430 }
22431
22432 function rfc2231getparam(contentDisposition) {
22433 var matches = [],
22434 match;
22435 var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig');
22436
22437 while ((match = iter.exec(contentDisposition)) !== null) {
22438 var _match = match,
22439 _match2 = _slicedToArray(_match, 4),
22440 n = _match2[1],
22441 quot = _match2[2],
22442 part = _match2[3];
22443
22444 n = parseInt(n, 10);
22445
22446 if (n in matches) {
22447 if (n === 0) {
22448 break;
22449 }
22450
22451 continue;
22452 }
22453
22454 matches[n] = [quot, part];
22455 }
22456
22457 var parts = [];
22458
22459 for (var n = 0; n < matches.length; ++n) {
22460 if (!(n in matches)) {
22461 break;
22462 }
22463
22464 var _matches$n = _slicedToArray(matches[n], 2),
22465 quot = _matches$n[0],
22466 part = _matches$n[1];
22467
22468 part = rfc2616unquote(part);
22469
22470 if (quot) {
22471 part = unescape(part);
22472
22473 if (n === 0) {
22474 part = rfc5987decode(part);
22475 }
22476 }
22477
22478 parts.push(part);
22479 }
22480
22481 return parts.join('');
22482 }
22483
22484 function rfc2616unquote(value) {
22485 if (value.startsWith('"')) {
22486 var parts = value.slice(1).split('\\"');
22487
22488 for (var i = 0; i < parts.length; ++i) {
22489 var quotindex = parts[i].indexOf('"');
22490
22491 if (quotindex !== -1) {
22492 parts[i] = parts[i].slice(0, quotindex);
22493 parts.length = i + 1;
22494 }
22495
22496 parts[i] = parts[i].replace(/\\(.)/g, '$1');
22497 }
22498
22499 value = parts.join('"');
22500 }
22501
22502 return value;
22503 }
22504
22505 function rfc5987decode(extvalue) {
22506 var encodingend = extvalue.indexOf('\'');
22507
22508 if (encodingend === -1) {
22509 return extvalue;
22510 }
22511
22512 var encoding = extvalue.slice(0, encodingend);
22513 var langvalue = extvalue.slice(encodingend + 1);
22514 var value = langvalue.replace(/^[^']*'/, '');
22515 return textdecode(encoding, value);
22516 }
22517
22518 function rfc2047decode(value) {
22519 if (!value.startsWith('=?') || /[\x00-\x19\x80-\xff]/.test(value)) {
22520 return value;
22521 }
22522
22523 return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) {
22524 if (encoding === 'q' || encoding === 'Q') {
22525 text = text.replace(/_/g, ' ');
22526 text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) {
22527 return String.fromCharCode(parseInt(hex, 16));
22528 });
22529 return textdecode(charset, text);
22530 }
22531
22532 try {
22533 text = atob(text);
22534 } catch (e) {}
22535
22536 return textdecode(charset, text);
22537 });
22538 }
22539
22540 return '';
22541}
22542
22543/***/ }),
22544/* 168 */
22545/***/ (function(module, exports, __w_pdfjs_require__) {
22546
22547"use strict";
22548
22549
22550Object.defineProperty(exports, "__esModule", {
22551 value: true
22552});
22553exports.PDFFetchStream = void 0;
22554
22555var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
22556
22557var _util = __w_pdfjs_require__(1);
22558
22559var _network_utils = __w_pdfjs_require__(166);
22560
22561function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22562
22563function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
22564
22565function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
22566
22567function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22568
22569function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
22570
22571function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
22572
22573function createFetchOptions(headers, withCredentials, abortController) {
22574 return {
22575 method: 'GET',
22576 headers: headers,
22577 signal: abortController && abortController.signal,
22578 mode: 'cors',
22579 credentials: withCredentials ? 'include' : 'same-origin',
22580 redirect: 'follow'
22581 };
22582}
22583
22584var PDFFetchStream =
22585/*#__PURE__*/
22586function () {
22587 function PDFFetchStream(source) {
22588 _classCallCheck(this, PDFFetchStream);
22589
22590 this.source = source;
22591 this.isHttp = /^https?:/i.test(source.url);
22592 this.httpHeaders = this.isHttp && source.httpHeaders || {};
22593 this._fullRequestReader = null;
22594 this._rangeRequestReaders = [];
22595 }
22596
22597 _createClass(PDFFetchStream, [{
22598 key: "getFullReader",
22599 value: function getFullReader() {
22600 (0, _util.assert)(!this._fullRequestReader);
22601 this._fullRequestReader = new PDFFetchStreamReader(this);
22602 return this._fullRequestReader;
22603 }
22604 }, {
22605 key: "getRangeReader",
22606 value: function getRangeReader(begin, end) {
22607 var reader = new PDFFetchStreamRangeReader(this, begin, end);
22608
22609 this._rangeRequestReaders.push(reader);
22610
22611 return reader;
22612 }
22613 }, {
22614 key: "cancelAllRequests",
22615 value: function cancelAllRequests(reason) {
22616 if (this._fullRequestReader) {
22617 this._fullRequestReader.cancel(reason);
22618 }
22619
22620 var readers = this._rangeRequestReaders.slice(0);
22621
22622 readers.forEach(function (reader) {
22623 reader.cancel(reason);
22624 });
22625 }
22626 }]);
22627
22628 return PDFFetchStream;
22629}();
22630
22631exports.PDFFetchStream = PDFFetchStream;
22632
22633var PDFFetchStreamReader =
22634/*#__PURE__*/
22635function () {
22636 function PDFFetchStreamReader(stream) {
22637 var _this = this;
22638
22639 _classCallCheck(this, PDFFetchStreamReader);
22640
22641 this._stream = stream;
22642 this._reader = null;
22643 this._loaded = 0;
22644 this._filename = null;
22645 var source = stream.source;
22646 this._withCredentials = source.withCredentials;
22647 this._contentLength = source.length;
22648 this._headersCapability = (0, _util.createPromiseCapability)();
22649 this._disableRange = source.disableRange || false;
22650 this._rangeChunkSize = source.rangeChunkSize;
22651
22652 if (!this._rangeChunkSize && !this._disableRange) {
22653 this._disableRange = true;
22654 }
22655
22656 if (typeof AbortController !== 'undefined') {
22657 this._abortController = new AbortController();
22658 }
22659
22660 this._isStreamingSupported = !source.disableStream;
22661 this._isRangeSupported = !source.disableRange;
22662 this._headers = new Headers();
22663
22664 for (var property in this._stream.httpHeaders) {
22665 var value = this._stream.httpHeaders[property];
22666
22667 if (typeof value === 'undefined') {
22668 continue;
22669 }
22670
22671 this._headers.append(property, value);
22672 }
22673
22674 var url = source.url;
22675 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {
22676 if (!(0, _network_utils.validateResponseStatus)(response.status)) {
22677 throw (0, _network_utils.createResponseStatusError)(response.status, url);
22678 }
22679
22680 _this._reader = response.body.getReader();
22681
22682 _this._headersCapability.resolve();
22683
22684 var getResponseHeader = function getResponseHeader(name) {
22685 return response.headers.get(name);
22686 };
22687
22688 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
22689 getResponseHeader: getResponseHeader,
22690 isHttp: _this._stream.isHttp,
22691 rangeChunkSize: _this._rangeChunkSize,
22692 disableRange: _this._disableRange
22693 }),
22694 allowRangeRequests = _validateRangeRequest.allowRangeRequests,
22695 suggestedLength = _validateRangeRequest.suggestedLength;
22696
22697 _this._isRangeSupported = allowRangeRequests;
22698 _this._contentLength = suggestedLength || _this._contentLength;
22699 _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
22700
22701 if (!_this._isStreamingSupported && _this._isRangeSupported) {
22702 _this.cancel(new _util.AbortException('streaming is disabled'));
22703 }
22704 }).catch(this._headersCapability.reject);
22705 this.onProgress = null;
22706 }
22707
22708 _createClass(PDFFetchStreamReader, [{
22709 key: "read",
22710 value: function () {
22711 var _read = _asyncToGenerator(
22712 /*#__PURE__*/
22713 _regenerator.default.mark(function _callee() {
22714 var _ref, value, done, buffer;
22715
22716 return _regenerator.default.wrap(function _callee$(_context) {
22717 while (1) {
22718 switch (_context.prev = _context.next) {
22719 case 0:
22720 _context.next = 2;
22721 return this._headersCapability.promise;
22722
22723 case 2:
22724 _context.next = 4;
22725 return this._reader.read();
22726
22727 case 4:
22728 _ref = _context.sent;
22729 value = _ref.value;
22730 done = _ref.done;
22731
22732 if (!done) {
22733 _context.next = 9;
22734 break;
22735 }
22736
22737 return _context.abrupt("return", {
22738 value: value,
22739 done: done
22740 });
22741
22742 case 9:
22743 this._loaded += value.byteLength;
22744
22745 if (this.onProgress) {
22746 this.onProgress({
22747 loaded: this._loaded,
22748 total: this._contentLength
22749 });
22750 }
22751
22752 buffer = new Uint8Array(value).buffer;
22753 return _context.abrupt("return", {
22754 value: buffer,
22755 done: false
22756 });
22757
22758 case 13:
22759 case "end":
22760 return _context.stop();
22761 }
22762 }
22763 }, _callee, this);
22764 }));
22765
22766 function read() {
22767 return _read.apply(this, arguments);
22768 }
22769
22770 return read;
22771 }()
22772 }, {
22773 key: "cancel",
22774 value: function cancel(reason) {
22775 if (this._reader) {
22776 this._reader.cancel(reason);
22777 }
22778
22779 if (this._abortController) {
22780 this._abortController.abort();
22781 }
22782 }
22783 }, {
22784 key: "headersReady",
22785 get: function get() {
22786 return this._headersCapability.promise;
22787 }
22788 }, {
22789 key: "filename",
22790 get: function get() {
22791 return this._filename;
22792 }
22793 }, {
22794 key: "contentLength",
22795 get: function get() {
22796 return this._contentLength;
22797 }
22798 }, {
22799 key: "isRangeSupported",
22800 get: function get() {
22801 return this._isRangeSupported;
22802 }
22803 }, {
22804 key: "isStreamingSupported",
22805 get: function get() {
22806 return this._isStreamingSupported;
22807 }
22808 }]);
22809
22810 return PDFFetchStreamReader;
22811}();
22812
22813var PDFFetchStreamRangeReader =
22814/*#__PURE__*/
22815function () {
22816 function PDFFetchStreamRangeReader(stream, begin, end) {
22817 var _this2 = this;
22818
22819 _classCallCheck(this, PDFFetchStreamRangeReader);
22820
22821 this._stream = stream;
22822 this._reader = null;
22823 this._loaded = 0;
22824 var source = stream.source;
22825 this._withCredentials = source.withCredentials;
22826 this._readCapability = (0, _util.createPromiseCapability)();
22827 this._isStreamingSupported = !source.disableStream;
22828
22829 if (typeof AbortController !== 'undefined') {
22830 this._abortController = new AbortController();
22831 }
22832
22833 this._headers = new Headers();
22834
22835 for (var property in this._stream.httpHeaders) {
22836 var value = this._stream.httpHeaders[property];
22837
22838 if (typeof value === 'undefined') {
22839 continue;
22840 }
22841
22842 this._headers.append(property, value);
22843 }
22844
22845 var rangeStr = begin + '-' + (end - 1);
22846
22847 this._headers.append('Range', 'bytes=' + rangeStr);
22848
22849 var url = source.url;
22850 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {
22851 if (!(0, _network_utils.validateResponseStatus)(response.status)) {
22852 throw (0, _network_utils.createResponseStatusError)(response.status, url);
22853 }
22854
22855 _this2._readCapability.resolve();
22856
22857 _this2._reader = response.body.getReader();
22858 });
22859 this.onProgress = null;
22860 }
22861
22862 _createClass(PDFFetchStreamRangeReader, [{
22863 key: "read",
22864 value: function () {
22865 var _read2 = _asyncToGenerator(
22866 /*#__PURE__*/
22867 _regenerator.default.mark(function _callee2() {
22868 var _ref2, value, done, buffer;
22869
22870 return _regenerator.default.wrap(function _callee2$(_context2) {
22871 while (1) {
22872 switch (_context2.prev = _context2.next) {
22873 case 0:
22874 _context2.next = 2;
22875 return this._readCapability.promise;
22876
22877 case 2:
22878 _context2.next = 4;
22879 return this._reader.read();
22880
22881 case 4:
22882 _ref2 = _context2.sent;
22883 value = _ref2.value;
22884 done = _ref2.done;
22885
22886 if (!done) {
22887 _context2.next = 9;
22888 break;
22889 }
22890
22891 return _context2.abrupt("return", {
22892 value: value,
22893 done: done
22894 });
22895
22896 case 9:
22897 this._loaded += value.byteLength;
22898
22899 if (this.onProgress) {
22900 this.onProgress({
22901 loaded: this._loaded
22902 });
22903 }
22904
22905 buffer = new Uint8Array(value).buffer;
22906 return _context2.abrupt("return", {
22907 value: buffer,
22908 done: false
22909 });
22910
22911 case 13:
22912 case "end":
22913 return _context2.stop();
22914 }
22915 }
22916 }, _callee2, this);
22917 }));
22918
22919 function read() {
22920 return _read2.apply(this, arguments);
22921 }
22922
22923 return read;
22924 }()
22925 }, {
22926 key: "cancel",
22927 value: function cancel(reason) {
22928 if (this._reader) {
22929 this._reader.cancel(reason);
22930 }
22931
22932 if (this._abortController) {
22933 this._abortController.abort();
22934 }
22935 }
22936 }, {
22937 key: "isStreamingSupported",
22938 get: function get() {
22939 return this._isStreamingSupported;
22940 }
22941 }]);
22942
22943 return PDFFetchStreamRangeReader;
22944}();
22945
22946/***/ }),
22947/* 169 */
22948/***/ (function(module, exports, __w_pdfjs_require__) {
22949
22950"use strict";
22951
22952
22953Object.defineProperty(exports, "__esModule", {
22954 value: true
22955});
22956exports.PDFNetworkStream = PDFNetworkStream;
22957exports.NetworkManager = NetworkManager;
22958
22959var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
22960
22961var _util = __w_pdfjs_require__(1);
22962
22963var _network_utils = __w_pdfjs_require__(166);
22964
22965var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));
22966
22967function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22968
22969function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
22970
22971function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
22972
22973;
22974var OK_RESPONSE = 200;
22975var PARTIAL_CONTENT_RESPONSE = 206;
22976
22977function NetworkManager(url, args) {
22978 this.url = url;
22979 args = args || {};
22980 this.isHttp = /^https?:/i.test(url);
22981 this.httpHeaders = this.isHttp && args.httpHeaders || {};
22982 this.withCredentials = args.withCredentials || false;
22983
22984 this.getXhr = args.getXhr || function NetworkManager_getXhr() {
22985 return new XMLHttpRequest();
22986 };
22987
22988 this.currXhrId = 0;
22989 this.pendingRequests = Object.create(null);
22990 this.loadedRequests = Object.create(null);
22991}
22992
22993function getArrayBuffer(xhr) {
22994 var data = xhr.response;
22995
22996 if (typeof data !== 'string') {
22997 return data;
22998 }
22999
23000 var array = (0, _util.stringToBytes)(data);
23001 return array.buffer;
23002}
23003
23004var supportsMozChunked = function supportsMozChunkedClosure() {
23005 try {
23006 var x = new XMLHttpRequest();
23007 x.open('GET', _global_scope.default.location.href);
23008 x.responseType = 'moz-chunked-arraybuffer';
23009 return x.responseType === 'moz-chunked-arraybuffer';
23010 } catch (e) {
23011 return false;
23012 }
23013}();
23014
23015NetworkManager.prototype = {
23016 requestRange: function NetworkManager_requestRange(begin, end, listeners) {
23017 var args = {
23018 begin: begin,
23019 end: end
23020 };
23021
23022 for (var prop in listeners) {
23023 args[prop] = listeners[prop];
23024 }
23025
23026 return this.request(args);
23027 },
23028 requestFull: function NetworkManager_requestFull(listeners) {
23029 return this.request(listeners);
23030 },
23031 request: function NetworkManager_request(args) {
23032 var xhr = this.getXhr();
23033 var xhrId = this.currXhrId++;
23034 var pendingRequest = this.pendingRequests[xhrId] = {
23035 xhr: xhr
23036 };
23037 xhr.open('GET', this.url);
23038 xhr.withCredentials = this.withCredentials;
23039
23040 for (var property in this.httpHeaders) {
23041 var value = this.httpHeaders[property];
23042
23043 if (typeof value === 'undefined') {
23044 continue;
23045 }
23046
23047 xhr.setRequestHeader(property, value);
23048 }
23049
23050 if (this.isHttp && 'begin' in args && 'end' in args) {
23051 var rangeStr = args.begin + '-' + (args.end - 1);
23052 xhr.setRequestHeader('Range', 'bytes=' + rangeStr);
23053 pendingRequest.expectedStatus = 206;
23054 } else {
23055 pendingRequest.expectedStatus = 200;
23056 }
23057
23058 var useMozChunkedLoading = supportsMozChunked && !!args.onProgressiveData;
23059
23060 if (useMozChunkedLoading) {
23061 xhr.responseType = 'moz-chunked-arraybuffer';
23062 pendingRequest.onProgressiveData = args.onProgressiveData;
23063 pendingRequest.mozChunked = true;
23064 } else {
23065 xhr.responseType = 'arraybuffer';
23066 }
23067
23068 if (args.onError) {
23069 xhr.onerror = function (evt) {
23070 args.onError(xhr.status);
23071 };
23072 }
23073
23074 xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);
23075 xhr.onprogress = this.onProgress.bind(this, xhrId);
23076 pendingRequest.onHeadersReceived = args.onHeadersReceived;
23077 pendingRequest.onDone = args.onDone;
23078 pendingRequest.onError = args.onError;
23079 pendingRequest.onProgress = args.onProgress;
23080 xhr.send(null);
23081 return xhrId;
23082 },
23083 onProgress: function NetworkManager_onProgress(xhrId, evt) {
23084 var pendingRequest = this.pendingRequests[xhrId];
23085
23086 if (!pendingRequest) {
23087 return;
23088 }
23089
23090 if (pendingRequest.mozChunked) {
23091 var chunk = getArrayBuffer(pendingRequest.xhr);
23092 pendingRequest.onProgressiveData(chunk);
23093 }
23094
23095 var onProgress = pendingRequest.onProgress;
23096
23097 if (onProgress) {
23098 onProgress(evt);
23099 }
23100 },
23101 onStateChange: function NetworkManager_onStateChange(xhrId, evt) {
23102 var pendingRequest = this.pendingRequests[xhrId];
23103
23104 if (!pendingRequest) {
23105 return;
23106 }
23107
23108 var xhr = pendingRequest.xhr;
23109
23110 if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {
23111 pendingRequest.onHeadersReceived();
23112 delete pendingRequest.onHeadersReceived;
23113 }
23114
23115 if (xhr.readyState !== 4) {
23116 return;
23117 }
23118
23119 if (!(xhrId in this.pendingRequests)) {
23120 return;
23121 }
23122
23123 delete this.pendingRequests[xhrId];
23124
23125 if (xhr.status === 0 && this.isHttp) {
23126 if (pendingRequest.onError) {
23127 pendingRequest.onError(xhr.status);
23128 }
23129
23130 return;
23131 }
23132
23133 var xhrStatus = xhr.status || OK_RESPONSE;
23134 var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;
23135
23136 if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {
23137 if (pendingRequest.onError) {
23138 pendingRequest.onError(xhr.status);
23139 }
23140
23141 return;
23142 }
23143
23144 this.loadedRequests[xhrId] = true;
23145 var chunk = getArrayBuffer(xhr);
23146
23147 if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {
23148 var rangeHeader = xhr.getResponseHeader('Content-Range');
23149 var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader);
23150 var begin = parseInt(matches[1], 10);
23151 pendingRequest.onDone({
23152 begin: begin,
23153 chunk: chunk
23154 });
23155 } else if (pendingRequest.onProgressiveData) {
23156 pendingRequest.onDone(null);
23157 } else if (chunk) {
23158 pendingRequest.onDone({
23159 begin: 0,
23160 chunk: chunk
23161 });
23162 } else if (pendingRequest.onError) {
23163 pendingRequest.onError(xhr.status);
23164 }
23165 },
23166 hasPendingRequests: function NetworkManager_hasPendingRequests() {
23167 for (var xhrId in this.pendingRequests) {
23168 return true;
23169 }
23170
23171 return false;
23172 },
23173 getRequestXhr: function NetworkManager_getXhr(xhrId) {
23174 return this.pendingRequests[xhrId].xhr;
23175 },
23176 isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) {
23177 return !!this.pendingRequests[xhrId].onProgressiveData;
23178 },
23179 isPendingRequest: function NetworkManager_isPendingRequest(xhrId) {
23180 return xhrId in this.pendingRequests;
23181 },
23182 isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) {
23183 return xhrId in this.loadedRequests;
23184 },
23185 abortAllRequests: function NetworkManager_abortAllRequests() {
23186 for (var xhrId in this.pendingRequests) {
23187 this.abortRequest(xhrId | 0);
23188 }
23189 },
23190 abortRequest: function NetworkManager_abortRequest(xhrId) {
23191 var xhr = this.pendingRequests[xhrId].xhr;
23192 delete this.pendingRequests[xhrId];
23193 xhr.abort();
23194 }
23195};
23196
23197function PDFNetworkStream(source) {
23198 this._source = source;
23199 this._manager = new NetworkManager(source.url, {
23200 httpHeaders: source.httpHeaders,
23201 withCredentials: source.withCredentials
23202 });
23203 this._rangeChunkSize = source.rangeChunkSize;
23204 this._fullRequestReader = null;
23205 this._rangeRequestReaders = [];
23206}
23207
23208PDFNetworkStream.prototype = {
23209 _onRangeRequestReaderClosed: function PDFNetworkStream_onRangeRequestReaderClosed(reader) {
23210 var i = this._rangeRequestReaders.indexOf(reader);
23211
23212 if (i >= 0) {
23213 this._rangeRequestReaders.splice(i, 1);
23214 }
23215 },
23216 getFullReader: function PDFNetworkStream_getFullReader() {
23217 (0, _util.assert)(!this._fullRequestReader);
23218 this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);
23219 return this._fullRequestReader;
23220 },
23221 getRangeReader: function PDFNetworkStream_getRangeReader(begin, end) {
23222 var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);
23223 reader.onClosed = this._onRangeRequestReaderClosed.bind(this);
23224
23225 this._rangeRequestReaders.push(reader);
23226
23227 return reader;
23228 },
23229 cancelAllRequests: function PDFNetworkStream_cancelAllRequests(reason) {
23230 if (this._fullRequestReader) {
23231 this._fullRequestReader.cancel(reason);
23232 }
23233
23234 var readers = this._rangeRequestReaders.slice(0);
23235
23236 readers.forEach(function (reader) {
23237 reader.cancel(reason);
23238 });
23239 }
23240};
23241
23242function PDFNetworkStreamFullRequestReader(manager, source) {
23243 this._manager = manager;
23244 var args = {
23245 onHeadersReceived: this._onHeadersReceived.bind(this),
23246 onProgressiveData: source.disableStream ? null : this._onProgressiveData.bind(this),
23247 onDone: this._onDone.bind(this),
23248 onError: this._onError.bind(this),
23249 onProgress: this._onProgress.bind(this)
23250 };
23251 this._url = source.url;
23252 this._fullRequestId = manager.requestFull(args);
23253 this._headersReceivedCapability = (0, _util.createPromiseCapability)();
23254 this._disableRange = source.disableRange || false;
23255 this._contentLength = source.length;
23256 this._rangeChunkSize = source.rangeChunkSize;
23257
23258 if (!this._rangeChunkSize && !this._disableRange) {
23259 this._disableRange = true;
23260 }
23261
23262 this._isStreamingSupported = false;
23263 this._isRangeSupported = false;
23264 this._cachedChunks = [];
23265 this._requests = [];
23266 this._done = false;
23267 this._storedError = undefined;
23268 this._filename = null;
23269 this.onProgress = null;
23270}
23271
23272PDFNetworkStreamFullRequestReader.prototype = {
23273 _onHeadersReceived: function PDFNetworkStreamFullRequestReader_onHeadersReceived() {
23274 var fullRequestXhrId = this._fullRequestId;
23275
23276 var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);
23277
23278 var getResponseHeader = function getResponseHeader(name) {
23279 return fullRequestXhr.getResponseHeader(name);
23280 };
23281
23282 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
23283 getResponseHeader: getResponseHeader,
23284 isHttp: this._manager.isHttp,
23285 rangeChunkSize: this._rangeChunkSize,
23286 disableRange: this._disableRange
23287 }),
23288 allowRangeRequests = _validateRangeRequest.allowRangeRequests,
23289 suggestedLength = _validateRangeRequest.suggestedLength;
23290
23291 if (allowRangeRequests) {
23292 this._isRangeSupported = true;
23293 }
23294
23295 this._contentLength = suggestedLength || this._contentLength;
23296 this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
23297 var networkManager = this._manager;
23298
23299 if (networkManager.isStreamingRequest(fullRequestXhrId)) {
23300 this._isStreamingSupported = true;
23301 } else if (this._isRangeSupported) {
23302 networkManager.abortRequest(fullRequestXhrId);
23303 }
23304
23305 this._headersReceivedCapability.resolve();
23306 },
23307 _onProgressiveData: function PDFNetworkStreamFullRequestReader_onProgressiveData(chunk) {
23308 if (this._requests.length > 0) {
23309 var requestCapability = this._requests.shift();
23310
23311 requestCapability.resolve({
23312 value: chunk,
23313 done: false
23314 });
23315 } else {
23316 this._cachedChunks.push(chunk);
23317 }
23318 },
23319 _onDone: function PDFNetworkStreamFullRequestReader_onDone(args) {
23320 if (args) {
23321 this._onProgressiveData(args.chunk);
23322 }
23323
23324 this._done = true;
23325
23326 if (this._cachedChunks.length > 0) {
23327 return;
23328 }
23329
23330 this._requests.forEach(function (requestCapability) {
23331 requestCapability.resolve({
23332 value: undefined,
23333 done: true
23334 });
23335 });
23336
23337 this._requests = [];
23338 },
23339 _onError: function PDFNetworkStreamFullRequestReader_onError(status) {
23340 var url = this._url;
23341 var exception = (0, _network_utils.createResponseStatusError)(status, url);
23342 this._storedError = exception;
23343
23344 this._headersReceivedCapability.reject(exception);
23345
23346 this._requests.forEach(function (requestCapability) {
23347 requestCapability.reject(exception);
23348 });
23349
23350 this._requests = [];
23351 this._cachedChunks = [];
23352 },
23353 _onProgress: function PDFNetworkStreamFullRequestReader_onProgress(data) {
23354 if (this.onProgress) {
23355 this.onProgress({
23356 loaded: data.loaded,
23357 total: data.lengthComputable ? data.total : this._contentLength
23358 });
23359 }
23360 },
23361
23362 get filename() {
23363 return this._filename;
23364 },
23365
23366 get isRangeSupported() {
23367 return this._isRangeSupported;
23368 },
23369
23370 get isStreamingSupported() {
23371 return this._isStreamingSupported;
23372 },
23373
23374 get contentLength() {
23375 return this._contentLength;
23376 },
23377
23378 get headersReady() {
23379 return this._headersReceivedCapability.promise;
23380 },
23381
23382 read: function () {
23383 var _read = _asyncToGenerator(
23384 /*#__PURE__*/
23385 _regenerator.default.mark(function _callee() {
23386 var chunk, requestCapability;
23387 return _regenerator.default.wrap(function _callee$(_context) {
23388 while (1) {
23389 switch (_context.prev = _context.next) {
23390 case 0:
23391 if (!this._storedError) {
23392 _context.next = 2;
23393 break;
23394 }
23395
23396 throw this._storedError;
23397
23398 case 2:
23399 if (!(this._cachedChunks.length > 0)) {
23400 _context.next = 5;
23401 break;
23402 }
23403
23404 chunk = this._cachedChunks.shift();
23405 return _context.abrupt("return", {
23406 value: chunk,
23407 done: false
23408 });
23409
23410 case 5:
23411 if (!this._done) {
23412 _context.next = 7;
23413 break;
23414 }
23415
23416 return _context.abrupt("return", {
23417 value: undefined,
23418 done: true
23419 });
23420
23421 case 7:
23422 requestCapability = (0, _util.createPromiseCapability)();
23423
23424 this._requests.push(requestCapability);
23425
23426 return _context.abrupt("return", requestCapability.promise);
23427
23428 case 10:
23429 case "end":
23430 return _context.stop();
23431 }
23432 }
23433 }, _callee, this);
23434 }));
23435
23436 function read() {
23437 return _read.apply(this, arguments);
23438 }
23439
23440 return read;
23441 }(),
23442 cancel: function PDFNetworkStreamFullRequestReader_cancel(reason) {
23443 this._done = true;
23444
23445 this._headersReceivedCapability.reject(reason);
23446
23447 this._requests.forEach(function (requestCapability) {
23448 requestCapability.resolve({
23449 value: undefined,
23450 done: true
23451 });
23452 });
23453
23454 this._requests = [];
23455
23456 if (this._manager.isPendingRequest(this._fullRequestId)) {
23457 this._manager.abortRequest(this._fullRequestId);
23458 }
23459
23460 this._fullRequestReader = null;
23461 }
23462};
23463
23464function PDFNetworkStreamRangeRequestReader(manager, begin, end) {
23465 this._manager = manager;
23466 var args = {
23467 onDone: this._onDone.bind(this),
23468 onProgress: this._onProgress.bind(this)
23469 };
23470 this._requestId = manager.requestRange(begin, end, args);
23471 this._requests = [];
23472 this._queuedChunk = null;
23473 this._done = false;
23474 this.onProgress = null;
23475 this.onClosed = null;
23476}
23477
23478PDFNetworkStreamRangeRequestReader.prototype = {
23479 _close: function PDFNetworkStreamRangeRequestReader_close() {
23480 if (this.onClosed) {
23481 this.onClosed(this);
23482 }
23483 },
23484 _onDone: function PDFNetworkStreamRangeRequestReader_onDone(data) {
23485 var chunk = data.chunk;
23486
23487 if (this._requests.length > 0) {
23488 var requestCapability = this._requests.shift();
23489
23490 requestCapability.resolve({
23491 value: chunk,
23492 done: false
23493 });
23494 } else {
23495 this._queuedChunk = chunk;
23496 }
23497
23498 this._done = true;
23499
23500 this._requests.forEach(function (requestCapability) {
23501 requestCapability.resolve({
23502 value: undefined,
23503 done: true
23504 });
23505 });
23506
23507 this._requests = [];
23508
23509 this._close();
23510 },
23511 _onProgress: function PDFNetworkStreamRangeRequestReader_onProgress(evt) {
23512 if (!this.isStreamingSupported && this.onProgress) {
23513 this.onProgress({
23514 loaded: evt.loaded
23515 });
23516 }
23517 },
23518
23519 get isStreamingSupported() {
23520 return false;
23521 },
23522
23523 read: function () {
23524 var _read2 = _asyncToGenerator(
23525 /*#__PURE__*/
23526 _regenerator.default.mark(function _callee2() {
23527 var chunk, requestCapability;
23528 return _regenerator.default.wrap(function _callee2$(_context2) {
23529 while (1) {
23530 switch (_context2.prev = _context2.next) {
23531 case 0:
23532 if (!(this._queuedChunk !== null)) {
23533 _context2.next = 4;
23534 break;
23535 }
23536
23537 chunk = this._queuedChunk;
23538 this._queuedChunk = null;
23539 return _context2.abrupt("return", {
23540 value: chunk,
23541 done: false
23542 });
23543
23544 case 4:
23545 if (!this._done) {
23546 _context2.next = 6;
23547 break;
23548 }
23549
23550 return _context2.abrupt("return", {
23551 value: undefined,
23552 done: true
23553 });
23554
23555 case 6:
23556 requestCapability = (0, _util.createPromiseCapability)();
23557
23558 this._requests.push(requestCapability);
23559
23560 return _context2.abrupt("return", requestCapability.promise);
23561
23562 case 9:
23563 case "end":
23564 return _context2.stop();
23565 }
23566 }
23567 }, _callee2, this);
23568 }));
23569
23570 function read() {
23571 return _read2.apply(this, arguments);
23572 }
23573
23574 return read;
23575 }(),
23576 cancel: function PDFNetworkStreamRangeRequestReader_cancel(reason) {
23577 this._done = true;
23578
23579 this._requests.forEach(function (requestCapability) {
23580 requestCapability.resolve({
23581 value: undefined,
23582 done: true
23583 });
23584 });
23585
23586 this._requests = [];
23587
23588 if (this._manager.isPendingRequest(this._requestId)) {
23589 this._manager.abortRequest(this._requestId);
23590 }
23591
23592 this._close();
23593 }
23594};
23595
23596/***/ })
23597/******/ ]);
23598});
23599//# sourceMappingURL=pdf.js.map
\No newline at end of file